CMP451-Software Engineering and Management
- Course Syllabus
Software design: fundamental design concepts and principles; design patterns; software architecture; good designers; engineering trade-offs; introduction to usability testing. Software processes: software life-cycle and process models; process assessment models; software process metrics. Software requirements and specifications: requirements elicitation; requirements analysis modeling techniques; functional and non-functional requirements; prototyping; basic concepts of formal specification techniques. structured design; object-oriented analysis and design; component level design; design for reuse. Software validation: Validation planning; testing fundamentals, including test plan creation and test case generation; black-box and white-box testing techniques; unit, integration, validation, and system testing; object-oriented testing; inspections.
Software evolution: software maintenance; characteristics of maintainable software; reengineering; legacy systems; software reuse. Software project management.
Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009), by Roger S. Pressman.
- Reference Textbook
- Course Material
- Chapter 1 - Software and Software Engineering
- Chapter 2 - Process Models.
- Chapter 3 - Agile Development.
- Chapter 4 - Principles that Guide Practice.
- Chapter 5 - Understanding Requirements.
- Chapter 6 - Requirements Modeling: Scenarios, Information and Analysis classes.
- Chapter 7 - Requirements Modeling: Flow, Behaviour, Patterns and WebApps.
- Chapter 8 - Design Concepts.
- Chapter 9 - Architectural Design.
- Students' Grades