CO316: Software Engineering
| Course Number : CO316 | ||||||
|---|---|---|---|---|---|---|
| Course Title : Software Engineering | ||||||
| Credits : 3 | ||||||
| Prerequisites : Computer Programming (CO212) | ||||||
| No | Course Content | Time Allocated (hours) | ||||
|   |   |   | L | T | P | A | 
| 01 |  Introduction:
	   Challenges of engineering software  | 1 |   |   |   | |
| 02 |   Software Processes: 
	   Software life-cycle and process models. Waterfall vs. evolutionary models. The SEI capability maturity model  | 2 |   |   |   | |
| 03 |   The Unified Process and The UML:
         The UP as an example of incremental software development. Basic UML diagram types and notation. Object-oriented analysis and design with the UP and the UML  | 3 |   |   |   | |
| 04 |   Software Requirements Specification: 
			   System Vision Statement and Business Case. Writing functional requirements using Use Cases. Supplementary Specification for documenting quality attributes  | 3 | 1 |   | 7 | |
| 05 |  Transitioning from Requirements to Design:
	   Building a domain model. Object-oriented analysis patterns  | 2 | 1 |   | 7 | |
| 06 |  Object-Oriented Design:
	   Low coupling and high cohesion with Responsibility-driven design. Modelling object interactions using sequence/collaboration diagrams and CRC cards. Common design patters: Observer, Decorator, Factory  | 4 | 1 |   | 7 | |
| 07 |  Software Testing: 
			   Design-by-contract. Specifying correct behaviour using Pre-conditions, Post-conditions and Invariants. Using automated unit testing frameworks ( e.g. JUnit)  | 4 |   | 3 |   | |
| 08 |  Project Management: 
	   Team organization and decision-making, Roles and responsibilities in a software team, Project scheduling and tracking, Software measurement and estimation techniques, Risk analysis, Software quality assurance, Project management tools  | 6 |   |   |   | |
| 09 |  Selected Topics: 
	   Component frameworks: EJB/.NET, Agile languages for rapid prototyping: Python/Ruby, Configuration management and automated build integration, Model-View-Controller Web frameworks and Representational State Transfer, Formal methods: Introduction to Algebraic Specification and Model Checking  | 2 |   | 6 |   | |
| Total | 27 | 3 | 9 | 21 | ||
| Assessment | Percentage Marks | |||||
| Continuous Assessment | 40 |   | ||||
|          Tutorials |   | 5 | ||||
|          Practicals |   | 15 | ||||
|          Assignments |   | 20 | ||||
| Written Examinations | 60 |   | ||||
|          Mid-semester |   | 20 | ||||
|          End-semester |   | 40 | ||||