91.522
Object-Oriented Analysis and Design:
Course update for Fall 2004 - R. Lechner
(lechner@cs.uml.edu)
RJLRef: http://www.cs.uml.edu/~lechner/04f522/04f522SyllabusUpdate040914.htm
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 and software professionals, who
are interested in distributed software system analysis and design using code
generation frameworks. This course provides a sound grounding in dynamic
behavior (state/event) modeling which is cleanly separated from conceptual and
logical static data modeling.
Mellor
& Balcer: Executable
UML: Foundation for Model-Driven Architecture
(ISBN 0-201-74804-5, Addison Wesley Longman
2002).
· How to construct static and
dynamic O-O models;
·
How to build code
generation frameworks for O-O models.
O-O Modeling tools and methodologies are
based on OMG standards:
· OMG: Object
Management Group Consortium (IBM, Sun,
Microsoft, etc);
· UML: OMG's Unified Modeling Language (for data structure AND
behavior)
· OCL: UML
Object Constraint Language (for specifying 'Design-by-Contract' requirements) (UML 1.4)
· ASL: UML
Action Semantic Language (for specifying event-driven state model actions) (UML 1.5)
· MDA: UML
Model-Driven Architecture (automatic code generation from models) (UML 2.0)
O-O code generation frameworks:
Academic versions of commercial tools from author
web-sites:
·
Balcer: Model Compilers;
·
Mellor: Project Technology BridgePoint
suite;
·
Kennedy-Carter: iUML Lite 2.2
·
IBM's Open-Source
Eclipse Framework (for Java).
The COOL (CASE Object-Oriented Laboratory) framework
(developed at UMass Lowell by 91.522/523 students). This is comprised of
·
COOL-GEN: Persistent I/O and class-model
navigation code generator;
·
COOL-LCP: Life Cycle Prototype state model
interpreter;
·
COOL-BDE: Block Diagram Editor:
a.
GUI front end for
GEN- and LCP-based designs;
b.
Run-time GUI for GEN
and LCP-based simulation.
Follow-on Courses:
91.523 Software Engineering or 91.591 Software Project
Directed Study:
·
These are
team-based project courses with more emphasis on the software design,
development and integration process (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.)
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 with modular code generation tools.
Assignments:
Programming; 25%; Other: 15%
Two (open-book) hour exams: each 25%; Team project: 35%.
I rely strongly on email discussions with class members. Answers to student questions will normally be
forwarded to all students. Office hours
are by appointment (OS209, before or after Wed. class). Web site contains
relevant URLs. $CASE=/usr/proj3/case contains most prior projects and CVS repositories.