Master of Technology
Software Engineering Specialisation
The following are brief descriptions of the ISS SE , KE & EBAC core course and electives. For further information on the Software Engineering courses contact Mr. Howard Russon; for information on the Knowledge engineering courses contact Mr. Charles Pang; for information on the Enterprise Business Analytics courses contact Dr. Carol Hargreaves.
SG4101 Basic SE Discipline
1 Introduction to Software Engineering
This is a general introduction to the SE Programme. It gives students the course overview, course rules and regulations. Details of student administration are given, and an introduction to the SE core units and the SE electives units is given. This module is compulsory for all SE students.
2 Software Engineering Process
The objective of this course is to teach how to understand software engineering processes, and how to model these processes using a derivative of the SADT methodology. This module looks at Software development life cycle processes, processes for planning and controlling software development and Quality management processes. This module is compulsory for all SE students.
3 Introduction to Object-Oriented Programming
The objective of this module is to introduce students to the basic concepts of object orientation. The course covers the topics of basic object modeling and OO programming. This is illustrated with the Java Language and development environment. Detailed concepts such as classes and instances, static and packages are covered. Java language concepts such as inheritance, exceptions, basic library classes, Java Collections, and input and output mechanisms will be described. There is also a Java programming assignment. This module is compulsory for all SE students.
SG5101 OO Analysis & Design
1 Object-Oriented Requirements & Analysis
The objectives of this module are to introduce students to OO development. The OO lifecycle will be illustrated using the Rational Unified Process (RUP). The course describes the RUP OOAD method and how to use the Rational CASE tools; The course also describes the various activities and artifacts created during OO requirements analysis, including creating the user requirement specification, Requirements modeling: and developing the Use Case model, creating the domain object model. The course then goes to describe analysis modeling, including constructing the analysis object model and assigning operations. There is also an OO Requirements and analysis assignment. This module is compulsory for all SE students.
2 Object-Oriented Design & Implementation
The objectives of this module are to teach students how to design and implement OO systems, stating from an appropriate analysis model. The course introduces the concepts of architecture, and its role in shaping the final system. The properties and transformations of models are considered, and leading-edge approaches such as Model-Driven Architecture (MDA) are discussed. We describe design activities and responsibilities, and detail many of the transition tasks which are performed when applying a specific architecture on an analysis model. Examples of these activities are given, with in-depth discussions of issues such as RDBMS interaction and distributed computing. A more comprehensive case study, covering the design of a Web-based system according to J2EE architecture, is used to illustrate the complexities of the design phase. The course covers the creation of RUP design artifacts, such as sequence diagrams and design documentation. In the implementation phase, we look at the realization of the models in the Java language, with an OO implementation assignment. Design-to-implementation aspects such as using unit testing and Javadoc commenting are also covered. This module is compulsory for all SE students.
SG5102 Software Project Management
1 Project Initiation and Planning
This module gives an overview of the various Project Management Processes and key areas of responsibility. It takes the students through the activities required of the 1st two project processes, initiation and planning. Students are taught the various tools and techniques necessary for scope management, estimation, work breakdown structures, precedence analysis, risk management, scheduling, and cost benefit analysis. There are workshops and assignments. This module is compulsory for all SE students
2 Project Tracking and control and advanced Project management Topics
Essential project tracking and control techniques, project change control management, producing project plans and quality plans are discussed.
For the advanced topics, the use of parametric models in software cost estimation, particularly the COCOMO model, Issues of software sizing and function point counting is discussed in detail. This module also looks at the human factors in project management, the “softer” side of project management such as working with teams and individuals, with management and resolving conflicts on the project. A primer in agile project management gives an alternate view to traditional project management practices. There are workshops and assignments. This module is compulsory for all SE students.
SG5103 Software Quality Management
1 Introduction to Software Process Improvement & Quality Engineering
The objective of this course is to provide an introduction to Software Process Improvement and Quality Engineering. It covers topics on why process improvement is important and how it can improve an organization's performance. It provides an overview of what frameworks and models are and how they are used for Process Improvement. The course leads into an overview of the world's leading process improvement model for Software and Systems Engineering, known as CMMIR, Capability Maturity Model (Integrated) including what it takes to implement it. This module is compulsory for all SE students.
2 Software Quality Management Systems
The objective of this course is to provide an introduction to SQMS and ISO9001:2000. It describes how to conduct a pre-assessment. It then focuses on developing an SQMS. In particular it describes quality manual development, the quality system framework, life cycle activities and supporting activities. There is a quality manual development assignment, quality audit assignments and pre-assessment assignments. This module is compulsory for all SE students.
3 Peer Reviews
The objective of this course is to teach how to perform peer reviews. It provides an overview of peer reviews, and describes rules, source documents and kin; the software inspection process, and Inspection roles and responsibilities; software inspection defect classifications; defect logging, peer review follow-up. There is a peer review assignment. This module is compulsory for all SE students.
4 Software Testing
The objective of this course is to teach how to effectively test software. Topics covered in the course include; purpose of testing; functional and quality testing; testing techniques; tool support for testing; success criteria; defect tracking and defect cause analysis. This module is compulsory for all SE students.
5 Software Configuration Management
This course focuses on the Configuration Management functions necessary to support the control of product and product components that are being developed and maintained. It describes the various configuration management functions including Configuration Identification, Configuration Control, Baseline, Status Accounting and CM Audits to establish and maintain the integrity of the project's lifecycle work products as well as the final delivered system. This module is compulsory for all SE students.