91.522
Object-Oriented Analysis and Design:
Course update for Fall 2003 - R. Lechner
lechner@cs.uml.edu
Object-oriented
techniques for analysis, specification, and design; Static information models
and state-based dynamic behavior models; Applications to rapid prototyping
projects - these will both use and implement an object-oriented development
framework (integrated CASE toolset).
Graduate and
senior undergraduate CS/EE/CE majors who have significant programming background, as well as software
professionals, with an interest in
distributed software system analysis and design and/or framework
development. This course provides a sound grounding in behavioral
(state/event) models which are cleanly separated from structural information
models.
Mellor & Balcer: Executable UML: Foundation for
Model-Driven Architecture
(ISBN 0-201-74804-5, Addison Wesley
Longman 2002).
O-O Modeling tools and methodologies based on OMG
standards:
·
OMG:
Object Management Group Consortium
(IBM, Sun, Microsoft,
etc);
·
UML:
Unified Modeling Language (for data structure AND behavior)
·
MDA:
Model-Driven Architecture (automatic code generation from
models)
·
OCL:
Object Constraint Language (for specifying 'Design-by-Contract'
requirements)
·
ASL:
Action Semantic Language (for specifying event-driven state model
actions).
Follow-on
Course:
91.523 Software Engineering - another project course
which has a greater emphasis on OOD patterns and processes (pre-requisite 91.522
OOAD)
Both 522 and 523 include projects. The default OOAD case
study is one of the COOL framework components, or the OLC Juice Plant simulator
proof-of-concept project using that framework. (Alternatively, you can propose an alternate
work-related project.)
Three essential core components support rapid prototype
development:
·
GEN: generates class-models and
persistent database code,
·
LCP: interprets a database of
inter-communicating event-driven state-models.
·
BDE: draws graphic block diagrams
which drive both GEN and LCP.
COOL itself is an in-depth case study of framework
design and implementation, It is
legacy code, currently in the process of language and platform migration. COOL
illustrates the capabilities and differences of both pre-OO and OO
languages with respect to the
implementation of model-driven architectures. It shows how the voluminous UML2
standard can be stripped to its bare essentials and still provide an effective
general purpose rapid prototyping
capability.