CS 452 Software Engineering
This course studies the software life cycle: specification, object-oriented programming and design, program development, validation, testing, debugging, documentation, maintenance, revision control, CASE tools. Prerequisite - C or better in CS 202.
Student must have completed a course in Object Oriented Programming
The course begins with a review of Object Orientation, and of the Software Crisis. Next methods of classification are covered. That is followed by a coverage of UML and various diagrams. Next comes the discussion of Software Development Methods: Incremental and Iterative development, planned and agile methods, phases, milestones , macro and micro processes, are described. Pragmatic issues are covered next: Personnel, Teams, Documentation, Reuse, Tools, Architecture, are discussed next. Next comes the development of functional, static, and dynamic views for example case studies, and a design procedure is given after the completion of these views. Also covered are 3-level architectures, and Jacobson’s stereotypes. The course concludes with a discussion of Object Constraint Language, and Model Driven Architecture. Use of tools for validation of models is described.
Object Oriented Analysis and Design : UML, Processes, Pragmatics, OCL, Model Driven Architecture.
Important Assignments and/or Exam Questions
- Study of a UML Modeling tool such as Modelio
- An Object Oriented Design Case Study
- Quizzes covering aspects of UML , Processes, Pragmatics, Design, OCL and MDA.
 Object-Oriented Analysis and Design with Applications (Third Edition) by Grady Booch et al (Addison-Wesley, 2007, ISBN-13: 978-0-201-89551-3)  UML in Practice by Pascal Roques (Wiley, 2004, ISBN-13: 978-0470848319)  The Object Constraint Language (Second Edition) by Jos Warmer & Anneke Kleppe (Addison-Wesley, 2003, ISBN 978-0-321-17936-4)