School of Computer Science

Module 06-18191 (2012)

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.

Aims

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 Sem1. Part II (Sem2).


Assessment

  • 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 (3) * 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 (3) * The need for RE, difficulties of RE, overview of the process, requirements elicitation and analysis, understand the problem domain, elicitation techniques (interviews, questionnaires, requirements workshop, ethnography, prototyping, scenarios), requirements prioritisation & conflict resolution, documenting requirements in natural language, goals, user requirements, functional and non-functional requirements, validation criteria, format of the requirements document, requirements validation and management . 7. Object-Orientation with UML~2.0 - Functional View (2) * Use cases 8. Object-Orientation with UML~2.0 - Structural View (4) * Class diagrams, Object Constraint Language 9. Object-Orientation with UML~2.0 - Behavioural View (4) * Activity diagrams, interaction diagrams, state diagrams 10. Design Patterns (2) 11. Software Development Processes (2)


Programmes containing this module