| Syllabus | Schedule | Project | Handouts | ScoreReport | My home page |
| Instructor: | Ye Wu |
| Office: | S&T II 357, (703) 993-1651(Office), (703) 993-1638 (Fax) |
| Email: | wuye@ise.gmu.edu |
| URL: | http://www.ise.gmu.edu/~wuye |
| Prerequisite: | SWSE 619 with SWSE 620 also recommended. (MSCS Students may substitute CS 540 and CS 571 for SWSE 619) |
| Office Hours: | anytime electronically or W 3:00 -- 5:00, or by appointment |
Course Description
This is a course in concepts and methods for the architectural design of software systems of sufficient size and complexity to require the effort of several people for many months. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared, with examples of their use. Students will undertake a term project working in small groups addressing the design of a relatively complex software system.Course Material
SWE 621 Lecture Notes on Software Design, Hassan Gomaa, 2002
Required Course Texts (Available from Johnson Center bookstore):
H. Gomaa, "Designing Concurrent, Distributed, and Real-Time Applications with UML", Addison-Wesley Object Technology Series, July 2000.Optional Course Texts (Available from Johnson Center bookstore):
GradingT. Quatrani, "Visual Modeling with Rational Rose 2000 and UML", Addison Wesley, 1999. G. Booch, J. Rumbaugh, I. Jacobson, "The Unified Modeling Language User Guide", Addison Wesley, Reading MA, 1999.
Term Project 56%Software Laboratory
Small assignments 8%
Final Exam 36%
The Rational Rose CASE tool has been installed in the CAD Lab in Room 17, S&TII and is available for the SWSE 621 term project.COURSE CONTENT AND READINGS
Comparison of Software Design Methods.
Lecture Notes Page 90
Readings: Gomaa text, Chapter 5.
Use case modeling. Use cases, actors, use case associations.
Case study.
Lecture Notes: Page 105
Readings: Gomaa text, Chapter 7.
Static modeling. Classes and relationships. Associations
and links. Composition/aggregation hierarchy, Generalization/specialization
hierarchy - inheritance. Case study.
Lecture Notes: Page 112
Readings: Gomaa text, Chapter 8.
Object and class structuring. Objects and classes, object
structuring criteria - interface objects, entity objects, control objects,
application logic objects. Case study.
Lecture Notes: Page 123
Readings: Gomaa text, Chapter 9.
Finite state machines. State transition diagrams, statecharts.
Events and conditions. Actions and activities. Hierarchical statecharts.
Case study.
Lecture Notes: Page 136
Readings: Gomaa text, Chapter 10.
Dynamic modeling. Object interaction, message sequencing.
Dynamic analysis - from use case model to object interaction model. Case
study.
Lecture Notes: Page 155
Readings: Gomaa text, Chapter 11.
Software Architecture Design. Subsystem Structuring Criteria.
Lecture Notes: Page 182
Readings: Gomaa text, Chapter 12.
Distributed application design. Client / server applications.
Lecture Notes: Page 189
Readings: Gomaa text, Chapter 13.
Concurrent Task Structuring; Task Interfaces - message communication,
event synchronization, information hiding classes.
Lecture Notes: Page 201
Readings: Gomaa text, Chapter 14.
Information hiding class design; designing class operations,
inheritance in software design, class interface specs.
Lecture Notes: Page 219
Readings: Gomaa text, Chapter 15.
Detailed Software Design; Integrating tasks and information
hiding object. Access synchronization. Design of connector classes.
Lecture Notes: Page 237
Readings: Gomaa text, Chapter 16.
Introduction to Architecture and Design Patterns.
Lecture Notes: Page 248
Readings: Gomaa text, Chapters 3,12,13.
Relational Database Design. Mapping static model to relational
database.
Lecture Notes: Page 260.
| Syllabus | Schedule | Project | Handouts | ScoreReport | My home page |