91.522 Object-Oriented Analysis and Design
http://www.cs.uml.edu/~lechner/02s522/02s522syllabus.htm
(This syllabus is maintained with MSOffice97® and is subject to change)
|
|
|
|
|
|
'02 Spring Class Schedule: |
'02 Spring Office Hours (OS105B): |
|
91.522.201:Tuesday 5:30-8:15 in OS4xx |
Tuesday 4-5PM and 830-10 PM (others by email appointment) |
Required: 91.301 (Languages) and 91.304 (Fundamentals) or C++ or Java programming experience.
Recommended: 91.502 (Foundations) and 91.531 (Languages) plus knowledge of an application domain (e.g., DBMS, CAD, CASE, telecomm, multimedia, E-commerce).
Assignments 1 and 2: http://www.cs.uml.edu/~lechner/02s522/02s522Asgnts1and2r3.htm
91.522 PART I: INFORMATION MODELING (~4 wks: 1/29, 2/5,12,19; Hour Exam, 2/19.) |
|
|
Information Models (Class Diagram, EERD,DSD; IDEF-1X Fully specified Associations, multiplicity, relational integrity, alternate owners.) |
(OLC Ch. 2, FOOD Ch. 3&4; HO: DataModels.ppt, Cardinalty.ppt, XML minOccurs..maxOccurs spec., An O-O Approach to Domain Analysis, SENotes 7/89.) |
|
ERD - RDB - ORDB Conversion |
(HO: ObjRelDBv2.ppt, genv8 User Manual; URLs: chgen and gencpp Reports) |
|
Normal Forms, Optional-MAX method. |
(DMOD Ch. 3; HO: IDEF-1X; Normal Forms.) |
|
Object-Relational Databases, Code Generation, Schema as meta-data |
(HO: meta-data examples {SV, TT, TA, FK}) |
|
|
91.522 PART II STATE-EVENT MODELING (~5 wks: 2/26, 3/5,12,19,26;(Hour Exam 3/26) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Assignments #3 due 3/12; #4 due 3/26; Hour exam on 3/26. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
It is not mandatory to get running code; the quality of your design documentation is more important. Quality depends on adequate presentation of requirements, planning, design and verification. The latter includes pre- and post-condition assertions and test cases.
For my 02s522-592 project suggestion, see Block Diagram Converter (BDC) project at
OOAD student projects may use any OO development environment which can produce portable and maintainable design documentation. Proprietary, non-portable formats are not acceptable. For COOL projects, a unified schema and data compatibility with existing components is an ABSOLUTE requirement!).
(Six factors essential for a maintainable project legacy, that count equally toward project grades):
|
|
|
|
|
|
|
|
|
|
|
|
Information modeling comes first: 01f522 Part I is about the first major challenge of OOAD. Real-world designs require information models that can support code generation for database navigation and persistence. Information models are needed regardless of the implementation language.
Behavior modeling comes next
: 01f522 Part II concerns dynamic behavior models which can supp;ort event-driven distributed concurrent systems, regardless of implementation language.Note
: Neither text fully matches this sequence, and neither does justice to information modeling. We will read both texts sequentially in parallel, to appreciate these similarities and differences:(1) FOOD Part II (Ch. 3-7) uses many UML diagram types in applications, then in Part III (Ch. 8-15) covers more sophisticated O-O design and programming principles (as in course 91.531).
(2) OLC emphasizes OOA; it very briefly reviews info models (Ch. 2) covered in detail in their earlier book [S&M: O-O System Analysis '88]. OLC emphasize dynamic models (Chaps 3-6) then domain composition and integration (Chap 7-8). Their architecture for transitioning OOA to OOD (Ch. 9) inspired our COOL framework component LCP, with which we simulated their Juice Plant case study.
[COOL at UML/CS is not to be confused with other adopters of the COOL acronym: e.g., COOL:Jex (www.ca.com) or COOL:Joe (www.appdevadvisor.com) (both are referenced in Heineman et al: CBSE p. 526)].
The COOL object-oriented framework consists of three generic design support tools: GEN, LCP and BDE. These tools use each other in synergistic ways. JPSim, BDE and LCP all use GEN. JPsim is a major test case for LCP, based on the case study in Shlaer-Mellor's OLC text. An early inspiration for GEN was Bachman's Architecture Definition facility (ADF). All COOL components were developed as 91.522/3 projects and reside in $CASE.
In COOL, an event-based distributed software system is specified as a persistent relational database of block diagrams. This database includes ERD or UML class diagrams to specify an application's information model, OCD object (class) interconnection diagrams to specify collaboration paths, and STD state-transition diagrams to specify event-driven asynchronous behavior for each class method. State model action routines in C++ implement object behavior.
GEN (Database Code Generator) translates Extended ER diagrams into an application-specific library of 'C' database support code. This library maintains a persistent RDB and a memory-resident OODB; chgen converts the RDB into linked C structs; gencpp converts the RDB into linked C++ classes. Both chgen and gendb maintain persistent relational links as foreign key attributes in flat ASCII relational tables. (Ref: $CASE/gen/*/*/doc/.). For an overview of GEN-style Object-Relational DataBases, see
LCP (Life Cycle Prototyping) is an executable event-driven state model interpreter inspired by Shlaer-Mellor's Object Life Cycles approach. See
JPsim (Juice Plant Simulation) is a non-trivial application of LCP and GEN which simulates the large case study in the OLC text. JPsim's data and state models can be browed from a UML/CS account via this URL:
http://www.cs.uml.edu/~lechner/97f522/jp2htm/ksuresh/DEMO/
BDE (Block Diagram Editor) creates and maintains a hierarchical file of generic block diagrams for an application. Supported diagram types include Entity-Relationship, Object Communication, and State-Transition Diagrams. BDE prototypes exist in C, C++, Visual C++ and Java for Wintel and Unix Xwindows platforms. An on-line visual User Guide to BDE is at
BDE exports a text-based canonical representation for generic block diagrams. BDE's tabular output is converted into schema definition tables for GEN code generation, state diagram tables for LCP interpretation, PostScript for printing and html for browsing. Existing conversion tools include:
|
bde2htm (bde2gif) |
converts a file of block diagrams into hyper-linked html files. |
|
bde2sch (b2t/t2b) |
converts EER Diagrams into schema tables for GEN. |
|
bde2SM (bde2STD) |
converts State Diagrams into state model tables for LCP. |
|
bde2XML |
(TBD in 02f 522/3 ?) converts BDE diagrams to XML. |
(Another converter bde2xml (TBD in 02f 52x) will convert any GEN RDB to/from XML.)
CAVEAT: COOL components should be regarded as evolving legacy code, which is in various stages of development. Non-robust legacy code is especially common within BDE's graphic components. Text-based work-arounds exist for GEN and LCP use without BDE. The 02f BDC project is intended to avoid X-Windows or MSWIndows graphics library dependence.