School of Computer Science

Module 06-27113 (2017)

Software Engineering 1 (Extended)

Level 4/M

Morteza Azad Semester 2 10 credits
Co-ordinator: Morteza Azad
Reviewer: Rami Bahsoon

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

Outline

Modern society could not function without large, professional software systems. National infrastructures such as energy grids and flight control are run by computer-based systems. Industrial manufacturing and distribution is almost completely automated, as is the financial system. The term Software Engineering was proposed in 1969 at a NATO conference to discuss software development problems in the era of the so-called software crisis. Large software systems were late, did not deliver the functionality needed by their users, cost more than expected, and were increasingly becoming unreliable, endangering businesses and human lives. It became increasingly clear that skilled programmers were insufficient to guarantee software quality. It was proposed that the adoption of an engineering approach to software development would reduce the costs of software development and lead to more reliable software. This course covers topics of professional software engineering and software engineering management. In particular, the course provides an overview of requirements engineering, requirements elicitation and analysis, requirements definition and specification, requirements validation, requirements management, and a brief overview of specification techniques. It then proceeds to the management of the software development process, including: feasibility studies, choosing the right development process, human factors in project management, basic project management techniques (e.g. planning, estimating, monitoring progress), and advanced project management techniques (e.g. risk management, configuration management, quality management, process improvement).


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

Learning Outcomes

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

  1. Explain the importance of successful requirements definition in commercial software development, identifying the difficulties involved.
  2. Explain and apply appropriate techniques which help to define clear and unambiguous requirements.
  3. Explain the basic principles of project management, including the role of the project manager.
  4. Apply standard techniques in project management.
  5. Analyse the organizational issues surrounding the development and implementation of systems solutions.
  6. Identify appropriate interpersonal skills to manage and perform the systems development process more effectively.
  7. Review academic literature on a software engineering topic and reflect on the application of the principles and theories identified in an example software engineering project/case study.

Restrictions

None


Co-requisites

  • 06-27114 - Software Engineering 2 (Extended)

Taught with


Teaching methods

Lectures and Exercise Classes

Contact Hours:

23


Assessment

Sessional: 1.5 hr Examination (80%) Continuous Assessment (20%)

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


Detailed Syllabus

  1. Software Engineering Principles
  2. Software Development Processes
  3. Feasibility Study
  4. Requirements Engineering
  5. Planning
  6. Estimating
  7. Managing Risk
  8. Managing People
  9. Agile Development and Management

Programmes containing this module