You are on page 1of 6

Professional Graduate Diploma in IT Syllabus

Software Engineering 2 Rationale: In order to develop high quality software it is imperative that Information Systems Professionals have an understanding of software development as an engineering discipline. This understanding should be focused on both the practical and theoretical aspects of the discipline.

Aims: To gain knowledge of:  The principles of software engineering  Software process models and process improvement  Development methods  Requirements and specification  Software design  Software implementation  Verification and validation  Software project management  Software quality

Objectives:       An understanding of a wide variety of software engineering principles, process models and development methods A knowledge of the different phases in software engineering; requirements, specification, design, implementation, verification and validation Project management capability A knowledge of how to produce high quality software An awareness of the special requirements for specific types of system such as safety critical systems An understanding of the practical problems in developing software systems

Prior Knowledge Expected: Candidates are expected to be familiar with the material covered in the Certificate syllabuses and Software Engineering 1 Diploma syllabus and should have knowledge of at least one structured programming language and understand the principles of software design and implementation.

Content: PRINCIPLES OF SOFTWARE ENGINEERING

g. Engineering vs Programming Programming in the Large vs Programming in the Small High Quality Software Systems vs Software Programs PROCESS MODELS Candidates should be aware that there are many process models that can be used as the basis for a software development life-cycle: Overview of Process Models and their importance V-model V-model with prototyping Evolutionary Development Incremental Development Spiral Model Cleanroom Process Model DSDM (a process model not a method) Comparison of Models DEVELOPMENT METHODS AND TECHNIQUES Candidates should show a theoretical and practical understanding of the following: Structured Methods and Techniques (e.g. UML) Use Cases Class Diagrams . SSADM) DataFlow Diagrams Entity-Relationship Diagrams State Transition Diagrams Statecharts Object Oriented Methods and Techniques (e.Candidates must be aware of the fundamental principles underlying Software Engineering and understand why an ‘engineering discipline’ is required to develop high quality software systems.

Petri-Nets SOFTWARE DEVELOPMENT LIFE CYCLE Candidates should show a practical understanding of developing software products through a development life-cycle: Requirements Requirements Analysis and Capture Requirements Engineering. collaboration diagram) Implementation Diagrams (e. e.g. modular vs performance) . Mathematical Specification Use of Abstraction Rapid Prototyping Design Refinement of Specifications System Architectures Different Design Approaches Design Trade-Offs (e.g. B CSP.Behaviour Diagrams (e. Z.g. Mascot. CORE Requirements Tracking Functional Requirements Non-Functional Requirements Specification Refinement of Requirements Natural Language Specification Diagrammatic Formal.g. component diagram) Formal Methods VDM.

black-box and white box. statistical Formal Proof Correctness Arguments Inspections and Reviews Static and Dynamic Analysis Tools Using the Compiler Maintenance PROJECT MANAGEMENT Risk Management Team Management (Personnel and Technical) Project Planning (Resource and Technical) Education and Training Cost Estimation Project Scheduling SOFTWARE QUALITY Software Quality Assurance .Performance Modelling/ Simulation Structured Design vs OO Design Implementation Encapsulation and Modularistion Information Hiding (ADTs/ Interfaces) Coupling and Cohesion Component Reuse Debugging Performance Measurement Validation and Verification Testing.

2005.. some of the books mentioned here are out of print.al. 1995. SSADM in Practice: A Version 4 Text.A. ISBN: 0321210263 One of many books that give an overview of Software Engineering. MacMillan Press Ltd. Gilb T. They are included because they are still relevant and useful and can be found in many libraries. 2003. Principles of Software Engineering Management. Addison-Wesley. Managing Software Quality & Business Risk. UML Distilled. ISBN: 0333469992 A good text on the use of SSADM (out of print). 1999. 1988. Other Texts: As indicated. Fowler M. Provides a good introduction to different software development processes.. Addison-Wesley (7th Ed). Object-Oriented Software Construction. Prentice Hall International (UK) Ltd. 1997.. Addision-Wesley. ISBN: 0321193687 A good overview of the Unified Modelling Language for those with a knowledge of object-oriented analysis and design... ISBN: 0201192462 . Also introduces Eiffel. ISBN: 0136291554 A good introduction to object oriented principles with a view to developing software. Wiley. Software Engineering.Configuration Management and Change Control Software Tools The 'ilities' Standards Documentation Metrics Primary Texts: Sommerville I. Duncan et. Ould M. Meyer B. ISBN: 047199782X An excellent book on development of software development processes through the management of risk and quality.

Prentice Hall. ISBN: 0138221227 A classic text on the economics behind software engineering.. Software Development with Z: A Practical Approach to Formal Methods in Software Engineering. Springer. Wordsworth J. .al. Systematic Software Development using VDM. Software Engineering Economics Prentice Hall. 1994. (Out of print).. Requirements Engineering. Addison-Wesley. ISBN: 0805353402 An alternative introduction to OO principles. 2005. Benjamin Cummings.. Hull. 1992.. Best to ignore the sections on proof the first time you read it. ISBN: 1852338792 An excellent text for those wishing to develop their knowledge of requirements engineering process. 1981. Other Reading: Booch G. ISBN: 0201627574 (out of print) SECTION 4 A good introduction to the specification language Z. Object-Oriented Analysis and Design with Applications. Jones C.A classic text on software engineering management that provides a good description of evolutionary software development. 1990.B. ISBN: 0138807337 (out of print) A great introduction to formal specification using the Vienna Development Method. Boehm B. M E C et. Look out for the deliberate mistake in the first few pages.