Software Engineering
Objectives
Main objective of the course is to provide necessary background to undertake software development projects. The course will emphasize on thoroughly analysing the user needs, designing a robust system, and constructing reliable software products from design. Focus would be on OO approach and testable description of modules. The course will also enable students to manage software systems to improve the overall quality of software products. Students will be able to use sound engineering approaches and best practices for the development and maintenance of software systems. The practical nature of the course will enable students to collaborate effectively in team-based software projects.
Contents
The Software Development Process; Software Process Models; Analysis Principles, Requirements Gathering and Definition; Modelling/ Description of Requirements; Requirements Specification, Requirements Validation. Design Concepts and Principles, Modelling/Description of Design; Software Architecture and Architectural styles, Design Specification, Design Validation, Coding best practices, Unit test design, static checking, code reviews; Case studies for practical implementation. Overview of software management activities; Software configuration management: Change management, Version management; Software evolution: Software evolution process, Legacy systems, re-engineering; Software metrics: Product metrics, Process metrics; Quality management: Quality concepts, Quality control, Quality assurance; Process evaluation and improvement: Process characteristics, Measuring processes, analysing and changing processes, Introduction to project management; Risk management; Software Engineering Standards, Code of Ethics.
| CLO | Description | Bloom's Level | PLO |
|---|---|---|---|
| CLO1 | Explain the concepts & activities in the entire software engineering process and major umbrella activities | — | — |
| CLO2 | Develop work products for software development activities and apply software testing techniques to evaluate the quality and correctness of software systems | — | — |
| CLO3 | Develop a software system according to the developed analysis and design models for a given set of requirements and evaluate it | — | — |
| CLO4 | Work effectively as a team member/leader to design and implement a software system and defend design/implementation decisions | — | — |
| CLO5 | Carry out software management activities including software configuration management, quality management, and risk management, for effective software project execution. | — | — |