NOTE: This exam will not be offered after January 2018
Primary course
SWE 621 (Software Modeling and Architectural Design) 

Primary textbook 
Gomaa, "Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures”, Cambridge University Press, February 2011, ISBN: 9780521764148

Alternative textbook 
Gomaa, "Designing Concurrent, Distributed, and Real-Time Applications with UML", Addison-Wesley, August 2000. 

Alternative textbook 
Fowler and Kendall, "UML Distilled", Third Edition, Addison-Wesley, 2004. 

Topic  Description  Readings (Gomaa 2011)  Readings (Fowler and Kendall)  Readings (Gomaa 2000) 
Software Processes  Software Process models  Chapter 3    Chapter 2 Chapter 5 
Software Prototyping  Prototyping in the software process, throw-away prototyping, evolutionary prototyping  Chapter 3     Chapter 5 
Object-Oriented Software Engineering with UML  Background. Unified Modeling Language (UML) notation, Object-Oriented Software Life Cycle   Chapters 2 and 5  Chapters 1 and 2  Chapters 2 and 6 
Use case modeling  Use cases, actors, include and extend relationships, use case packages    Chapter 6 Chapter 9  Chapter 7 
Static modeling  Classes, attributes, and relationships. Multiplicity of associations, association classes, aggregation and composition, generalization/specialization; software context class diagrams, entity modeling; object structuring criteria, stereotypes.    Chapters 7 and 8 Chapters 3 and 5  Chapter 8 and 9
Finite state machines and statecharts  States, events, conditions, actions and activities, entry and exit actions; hierarchical statecharts.    Chapter 10 Chapter 10  Chapter 10 
Dynamic Modeling  Object Interaction Modeling; developing interaction models from use cases, ensuring consistency between statecharts and interaction models.    Chapters 9 and 11 Chapters 4 and 12 Chapter 11 
Software Architectural Design  Multiple views of software architecture, Subsystem Structuring Criteria. Distributed application design. Client/server applications.    Chapters 12, 13, and 15    Chapters 12 and 13 
Concurrent Task Design  Concurrent Task Structuring; Task Interfaces - message communication, event synchronization.    Chapter 18    Chapter 14 
Class Design  Information hiding class design; designing class operations, inheritance in software design, class interface specs.    Chapter 14    Chapter 15 
Design Patterns Design patterns and architectural patterns; architectural styles; architectural structure patterns, architectural communication patterns.   Chapters/sections 4.5, 12.3, 12.4, 15.2, 15.3, 16.2, and 17.6, Appendix A      Chapters 3 and 12
Relational Database design   Design of database wrapper classes, identifying primary keys, mapping associations to foreign keys, mapping whole/part and generalization / specialization relationships to relational databases.   Chapter 15