CMP451-Software Engineering and Management

  1. 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.

  1. Reference Textbook
               Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009), by Roger S.                      Pressman.
  1. Course Material
  2. Students' Grades