Module 06-21936 (2010)
Fundamentals: Software Engineering
Level 4/M C
|Peter Breuer||Semester 2||10 credits|
Co-ordinator: Peter Breuer
Reviewer: Behzad Bordbar
The Module Description is a strict subset of this Syllabus Page.
The aims of this module are to:
- Introduce the software life-cycle and its main stages
- Demonstrate that the production of quality software in a cost-effective and productive way requires a systematic and disciplined approach
On successful completion of this module, the student should be able to:
- explain why the production of a large, quality-assured piece of software is a task demanding a disciplined approach to all stages, closely analogous to the methodology used in more traditional engineering activities
- explain the concept of the software lifecycle
- demonstrate knowledge of relevant concepts for each stage of the software life-cycle
- understand the application of software engineering approaches, both as an introduction to professional practice and as an aid to project work
- assess the effectiveness of software engineering techniques in a case study
2 hrs lectures/tutorials per week
- Sessional: 1.5hr examination (80%), continuous assessment (20%)
- Supplementary: 1.5 hour examination (100%)
- Introduction: definitions and history of software engineering; models of the software lifecycle.
- Requirements definition: outline, documentation, validation.
- Design: general concepts of traditional designs (structure, modularity, hierarchy), inheritance; design methods; validation.
- Implementation: choice of language and coding strategies; testing and debugging, including white-box and black-box testing.
- Validation: techniques for each stage - informal reviews, formal reviews, testing, formal proofs.
- Documentation: quality, types, techniques for each stage.
- Management of software projects: principles; personnel issues; estimation, scheduling and costing.