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 |