Module Details Module Details

CMP-6010A - Software Engineering 2

Module Code:
Academic Year:
2015 - 16
Credit Value:
Level 6
Module Organiser:
Dr. Joost Noppen


Industrial software development is seldom started from scratch, companies generally have large systems of legacy software that need to be maintained, improved and extended. This module focuses on advanced software engineering topics, such as reverse engineering to understand legacy software, refactoring and design patterns to improve the design of software systems and developing new software products using third-party software components. Assessment will be done by a group project which consists of a design and analysis task, and the group implementation task of a software project. Confidence in Java programming language skills as well as software engineering practice (phased development with agile methods, Unified Modeling Language, test-driven development) are pre-requisites. Software Engineering I (2M02) is required for this module.

Module Objectives

  1. To introduce the theory and processes for understanding and refactoring legacy software systems.
  2. To introduce students to the Object-Oriented Development techniques of application frameworks and design patterns to maximise extensibility and reuse of software systems.
  3. To give students foundational skills and experience of developing a mobile application framework for the Android platform and the creating applications based on this framework.

Learning Outcomes

Module Specific

On completion of this module, students will be able to:

  • Analyse, understand and document a legacy software system using a reverse engineering approach.
  • Identify areas and aspects of legacy systems that need to be redesigned in the light of a set of requirements
  • Create a systematic set of classes and relations, i.e. an application framework combined with design patterns, that can be used as a foundation for the creation of a range of applications
  • Undertake an extensive project that comprises stages of business logic analysis, design and prototype implementation based on legacy software and an application framework
  • Competence and understanding in the use and creation of the Android mobile application environment

Transferable skills

  • Experience of software development processes based on legacy software code bases
  • Understanding of designing software for longevity, reusability and extensibility using industry standard concepts of application frameworks and design patterns
  • Knowledge of contemporary tools and approaches for understanding and documenting existing software systems
  • Understanding of mobile application development for industry standard platforms
  • Improved modelling, communication and presentation skills with respect to software development
  • Improved analysis and problem-solving skills

Teaching and Assessment

Teaching Approach

Teaching Approach:

Contact time: 22 hours lectures, 4 hours seminar, 32 hours supervised lab sessions

Lectures (indicative content)

  1. Module Introduction and Android Basics
  2. Reverse Engineering, Reuse and Application Frameworks
  3. Design Patterns Part 1
  4. Design Patterns Part 2
  5. Android Application Development Topics
  6. Change management and software evolution
  7. Reading Week
  8. Software cost estimations & quality management
  9. Security of Mobile Applications
  10. Guest Lecture
  11. Now and the future of software engineering
  12. Revision

Seminar (Indicative content)

Seminar sessions will be scheduled to support topics covered. Topics will include:

  • Test-driven development
  • Group based software development
  • Documenting the development of a software system

Lab classes (indicative content)

Lab classes will be scheduled to for students to perform a simplified software engineering life cycle for the development of an application framework and mobile application based on a legacy software system. The emphasis will be analysing and refactoring existing software to suit a range of applications using advanced object-oriented development techniques. The labs are divided in the design creation of an application framework phase and a complex mobile application development phase. The development phases will have a deadline at which a design document is to be provided with all the information on the development that has been done up to that point as well as the software that has been created.

  1. Introduction to the Work Environment (ADT)
  2. Analysis and Rev Engineering of Case Study Source Code
  3. Refactoring of the architecture of the case study
  4. Introducing design patterns into the case study
  5. Introducing design patterns into the case study
  6. Finalising refactoring and case study documentation
  7. Seminar/Lab: Define assignment on top of the UEA Open Day Concept
  8. Prototype Implementation Iteration 1
  9. Prototype Implementation Iteration 1
  10. Prototype Implementation Iteration 2
  11. Prototype Implementation Iteration 2
  12. Prototype Implementation Demonstration

Methods of Assessment

Assessment is by project that consists of two stages. Stage 1 consists of the reverse engineering, refactoring and documenting a legacy application framework to support the creation of Android applications in an easy to use manner. Stage 2 consists of the creation of a complex Android application using the application framework created in stage 1. For this part of the project a full documentation, source code and demonstration is expected.


Teaching Resources

Copies of the lecture notes will be made available on the day before the lecture at the latest via the Blackboard system. Materials for seminars and labs will be posted on Blackboard. Instructions for using specialised software (Android Developer Tools, ArgoUML) will be published on Blackboard. Changes in these instructions may become necessary, students therefore are advised to check these regularly. Laboratory sessions take place during a timetabled weekly laboratory period. CMP teaching laboratories are also available to CMP students during term time outside timetabled teaching hours. General computing resources are located elsewhere on campus (e.g. the library).

Library Resources

Additional reading and electronic resources:

Notice that versions stated above may differ from those used in the module. Please refer to the notes provided in the module as these take precedence over the list above.

Conventions and Standards


Written coursework should be submitted by following the standard CMP practice. Students are advised to refer to the Guidelines and Hints on Written Work in CMP.


If coursework is handed in after the deadline day or an agreed extension:


Work submitted Marks deducted
After 15:00 on the due date and before 15:00 on the day following the due date 10 marks
After 15:00 on the second day after the due date and before 15:00 on the third day after the due date 20 marks
After 15:00 on the third day after the due date and before 15:00 on the 20th day after the due date.  All the marks the work merits if submitted on time (ie no marks awarded) 
After 20 working days Work will not be marked and a mark of zero will be entered

Saturdays and Sundays will NOT be taken into account for the purposes of calculation of marks deducted.

All extension requests will be managed through the LTS Hub. A request for an extension to a deadline for the submission of work for assessment should be submitted by the student to the appropriate Learning and Teaching Service Hub, prior to the deadline, on a University Extension Request Form accompanied by appropriate evidence. Extension requests will be considered by the appropriate Learning and Teaching Service Manager in those instances where (a) acceptable extenuating circumstances exist and (b) the request is submitted before the deadline. All other cases will be considered by a Coursework Coordinator in CMP.

For more details, including how to apply for an extension due to extenuating circumstances download Submission for Work Assessment (PDF, 39KB)


Plagiarism is the copying or close paraphrasing of published or unpublished work, including the work of another student; without due acknowledgement. Plagiarism is regarded a serious offence by the University, and all cases will be reported to the Plagiarism Officer. Details from UEA's Policy on Plagiarism and Collusion.

Click the button to print the current page.