1 | introduce software engineering and to explain its importance To set out the answers to key questions about software engineering |
2 | introduce software process models
describe three generic process models and when they may be used
describe outline process models for requirements engineering, software development, testing and evolution
explain the Rational Unified Process model
introduce CASE technology to support software process activities |
3 | explain the main tasks undertaken by project managers
introduce software project management and to describe its distinctive characteristics
discuss project planning and the planning process
show how graphical schedule representations are used by project management |
4 | explain the importance of software change management
describe key change management activities - planning, change management, version management and system building
discuss the use of CASE tools to support change management processes |
5 | introduce the concepts of user and system requirements
describe functional and non-functional requirements
explain how software requirements may be organised in a requirements document |
6 | explain why the context of a system should be modelled as part of the RE process
describe behavioural modelling, data modelling and object modelling
introduce some of the notations used in the Unified Modeling Language (UML) To show how CASE workbenches support system modelling |
7 | introduce architectural design and to discuss its importance
explain the architectural design decisions that have to be made
introduce three complementary architectural styles covering organisation, decomposition and control
discuss reference architectures are used to communicate and compare architectures |
8 | introduce an object-oriented design process for developing OO software.
develop a case study (based on a weather monitoring system) that illustrates some of the models developed as part of an OO process.
illustrate how an OO approach can lead to systems that can evolve in response to new requirements. |
9 | explain the benefits of software reuse and some reuse problems
discuss several different ways to implement software reuse
explain how reusable concepts can be represented as patterns or embedded in program generators
discuss COTS reuse To describe the development of software product lines |
10 | discuss the distinctions between validation testing and defect testing
describe the principles of system and component testing
describe strategies for generating system test cases
understand the essential characteristics of tool used for test automation |
11 | Complete test coverage of a class involves Testing all operations associated with an object; Setting and interrogating all object attributes; Exercising the object in all possible states. Inheritance makes it more difficult to design object class tests as the information to be tested is not localised. |
12 | explain the principle of separation of concerns in software development
introduce the fundamental ideas underlying aspect-oriented development
show how an aspect-oriented approach can be used at all stages of development
discuss problems of testing aspect-oriented systems |
13 | introduce issues that must be considered in the specification and design of secure software
discuss security risk management and the derivation of security requirements from a risk analysis To describe good design practice for secure systems development. To explain the notion of system survivability and to introduce a method of survivability analysis. |
14 | Overview |