School of Computer Science

Module 06-18191 (2011)

Software Engineering

Level 2/I

Joan Jackson Rami Bahsoon Semester 1 10 credits
Joan Jackson Rami Bahsoon Semester 2 10 credits
Co-ordinator: Rami Bahsoon
Reviewer: Behzad Bordbar

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


The aims of this module are to:

  • show the need for professional discipline and effective management throughout the software development process
  • show the importance of teamwork and good interpersonal skills in successful software development
  • give an appreciation of the importance of requirements engineering as the first phase of the software development process
  • introduce some methods and techniques available to the software engineer for use in the requirements engineering process
  • present standard object-oriented techniques for software analysis and design
  • introduce key object-oriented design principles
  • introduce design patterns and demonstrate how they can facilitate the overall development process

Learning Outcomes

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

  • explain the basic principles of project management, including the role of the project manager
  • apply standard techniques in project management
  • analyse the organizational issues surrounding the development and implementation of systems solutions
  • identify appropriate interpersonal skills to manage and perform the systems development process more effectively
  • explain the importance of successful requirements definition in commercial software development, identifying the difficulties involved
  • explain and apply appropriate techniques which help to define clear and unambiguous requirements
  • explain and apply the knowledge and skills required to act as a contributing junior analyst in a project team working within a disciplined project environment
  • use UML to describe analysis and design models
  • apply important design techniques and patterns where it helps to improve design models
  • explain current methods used for system development

Teaching methods

2 hrs/week, conventional lectures and tutorials.NOTE: This module is taught in 2 parts. Part I lasts 15 weeks (Sem1 and 4 weeks into Sem2). Part II lasts 7 weeks (Sem2).


  • Sessional: 2 hr examination (50%), continuous assessment (50%).
  • Supplementary: By examination only.

Detailed Syllabus

Numbers in parentheses give the approximate number of lectures/exercise classes. Part I consists of Topics 1-9. Part II consists of Topics 10-14. 1. Introduction to the module (1) 2. Project genesis (4) * How projects arise, choosing the right project, software life-cycles. 3. Basic project management techniques (8) * Planning, estimating, monitoring progress. 4. Human factors in project management (2) * Organizations and players in the game, interpersonal skills, project teams. 5. Advanced project management techniques (4) * Risk management, configuration management, quality management, process improvement. 6. Introduction to requirements engineering (1) * The need for RE, difficulties of RE, overview of the process. 7. Requirements elicitation and analysis (4) * Understand the problem domain (problem analysis, business modelling, soft systems analysis). * Identify the stakeholders, business events, context diagram. * Elicitation techniques (interviews, questionnaires, requirements workshop, ethnography, prototyping, scenarios), requirements prioritisation & conflict resolution. 8. Documenting requirements in natural language (3) * Goals, user requirements, functional and non-functional requirements, validation criteria. * Format of the requirements document. * Characteristics of quality requirements. 9. Requirements validation and management (1) * Reviews, prototyping, traceability, change management. 10. Object-Orientation with UML~2.0 - Functional View (2) * Use cases 11. Object-Orientation with UML~2.0 - Structural View (4) * Class diagrams, Object Constraint Language 12. Object-Orientation with UML~2.0 - Behavioural View (4) * Activity diagrams, interaction diagrams, state diagrams 13. Design Patterns (2) 14. Software Development Processes (2)

Programmes containing this module