Module Information

Module Identifier
COM1220
Module Title
BUILDING HIGH QUALITY SYSTEMS
Academic Year
2009/2010
Co-ordinator
Semester
Available all semesters
Pre-Requisite
Available only to students taking the Diploma/MSc in Computer Science scheme in Singapore.
Pre-Requisite
CO11020
Other Staff

Course Delivery

 

Assessment

Assessment Type Assessment length / details Proportion
Semester Assessment (A1)  Group Project:  50%
Semester Assessment (A3)  Attendance And Participation: 1 presentation plus contributions  10%
Semester Exam 2 Hours   (A2)  40%
Supplementary Exam No supplementary or external re-sit opportunity is available for the assessed coursework component. A supplementary written examination will take the same form as the initial examination. 

Learning Outcomes

The major learning outcome of this module is that the student should:
1. be able to employ best professional software engineering practices in order to complete a medium-sized software project to current industrial standards. (A1)

In addition, on successful completion of this module, students should be able to:
2. demonstrate mastery of advanced concepts in software engineering (A2, A3)
3. select appropriate advanced software engineering techniques to apply to challenging industrial problems (A2, A3)
4. recognise potential problems in software projects, and be able to intervene to avoid them (A1, A2)

Aims

This module aims to expose students to best practice in software engineering and to develop professional skills enabling students to be a valuable part of a software development team. Specifically, it aims to enable students to:

  • select best practices in the engineering activities of project management, quality assurance and standards compliance;
  • identify and employ appropriate practices for the specification, design, testing and operation of large software systems;
  • involve students in the development of a piece of software which approximates as closely as possible in the university environment to the software development conditions found in industry.

Content

1.Introduction- 1 Lecture
The approach and the obligations of the professional engineer. Software as an engineering artifact. Analogies between software and other branches of engineering.

2.The Software Life Cycle - 3 Lectures; 3 Seminars
Description of the phases of a range of software life cycles (including the Waterfall, Prototyping, RAD and Spiral models) and the major deliverables and activities associated with each phase. Rapid application development. Personal software metrics. Extreme programming. Software process improvement.

3.Project Management - 2 Lectures, 2 Seminars
Planning and cost estimation. Progress monitoring. Team structure and team management. Project management in industry.

4.Quality Management - 2 Lectures, 1 Seminar
Validation, verification and testing. Quality plans. Walkthroughs, code inspections and other types of review. Role of the quality assurance group. Standards (international, national and local).

5.Configuration Management - 2 Lectures
Baselines. Change control procedures. Version control. Software tools to support configuration management:

6.Requirements Engineering - 3 Lectures, 2 Seminars
The IEEE standard for requirements specifications. Validation of requirements by e.g., prototyping. Deficiencies in the traditional approach to requirements. Use of UML in requirements gathering. Advances in requirements engineering.

7. Design - 3 Lectures, 2 Seminars
Outline (architectural) design and detailed design. Use of abstraction, information hiding, functional and hierarchical decomposition at levels higher then the individual program. Contents of design documentation. State diagrams. Relevant UML notations: packages, sequence and activity diagrams, active objects. User interface design.

8.Implementation and maintenance - 2 Lectures
Choice of language. Cutover. Types of maintenance. Maintenance process. Refactoring.

9.Testing - 2 Lectures
Testing strategies. Testing tools: static and dynamic analysers, test harnesses and test data generators, simulators. Performance testing. Regression testing. User documentation and training.

10.Tutorials
A tutorial meeting will be associated with this course. The tutorial will be used to organise group project activities.

11. Seminars
A list of papers on advanced software engineering topics will be distributed, and the papers will be presented and applied to sections of the syllabus during seminars, as indicated above.

Reading List

Recommended Text
Ian Sommerville (2004) Software Engineering 7th Edition Addison Wesley Primo search Roger S. Pressman (2004) Software Engineering: A practitioner's approach McGraw-Hill Primo search

Notes

This module is at CQFW Level 7