Semester Offering: January

Quality is a critical factor in the development, improvement and maintenance of software systems. This course teaches fundamentals and best practices in managing, measuring and improving the quality of software and software development processes.


Software engineering, Software development, Software testing, CASE Tools, Software project management, Software quality and improvement, Open source software


AT 70.xx (Software Development Methodologies)


I  Managing Software Quality

1. Verification and Validation
3. Monitoring and auditing
4. Change management

II  Software Testing

1. Fundamentals
2. Strategies and Tactics
3. Dynamic Analysis

III  Software Improvement


Configuration and change management; Refactoring; Dynamic analysis.


Lecture notes provided by instructor


  • Brown, Malveau, McCormick and Mowbray (1998). AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley.
  • CMMI for Development, Version 1.2. Technical Report, Software Engineering Institute, Carnegie Mellon University, August 2006. Available online.
  • Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. ISBN 0201633612.
  • Pfleeger, S.L. (2001). Software Engineering: Theory and Practice. Prentice-Hall.
  • Pressman, R.S. (2004). Software Engineering: A Practitioner's Approach. McGraw-Hill, 6th edition.
  • Sommerville, I. (2007). Software Engineering. Addison-Wesley, 8th edition. ISBN 0-321-31379-8.


Articles provided by instructor.


Homework (30%),
Project (30%),
Final Exam (40%).