School of Computer Science

Module 06-25078 (2013)

ICY Software Engineering

Level 1/C I

Rami Bahsoon Semester 2 10 credits
Co-ordinator: Rami Bahsoon
Reviewer: Alan Sexton

The Module Description is a strict subset of this Syllabus Page.


The module will explore some of the fundamentals of software engineering. Topics will include: an introduction to software engineering: the software life cycle and methodologies for software development.


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

Learning Outcomes

On successful completion of this module, the student should be able to:

1 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
2 explain the concept of the software lifecycle
3 demonstrate knowledge of relevant concepts for each stage of the software life-cycle
4 understand the application of software engineering approaches, both as an introduction to professional practice and as an aid to project work

Taught with

  • 06-21936 - Fundamentals: Software Engineering

Teaching methods

2 hrs lectures/tutorials per week

Contact Hours: 24


Sessional: 1.5hr examination (100%)

Supplementary (where allowed): 1.5hr examination (100%)

Detailed Syllabus

1.Introduction: definitions and history of software engineering; models of the software lifecycle.

  1. Requirements definition: outline, documentation, validation.

  2. Design: general concepts of traditional designs (structure, modularity, hierarchy), inheritance; design methods; validation.

  3. Implementation: choice of language and coding strategies; testing and debugging, including white-box and black-box testing.

  4. Validation: techniques for each stage - informal reviews, formal reviews, testing, formal proofs.

  5. Documentation: quality, types, techniques for each stage.

  6. Management of software projects: principles; personnel issues; estimation, scheduling and costing