UMass Lowell

Computer Science Department

91.522 Object-Oriented Analysis and Design

Syllabus for Fall 2001 (01f522)

http://www.cs.uml.edu/~lechner/01f522/01f522syllabus.htm

(This syllabus is maintained with MSOffice97® and is subject to change)

(Last revision date: 010922)

INSTRUCTOR: Dr. Robert Lechner

Office: OS105B
OfficePhone: 978-934-3632
Email: lechner@cs.uml.edu
HomePhone: 781-444-8321
'01Fall Class Schedule: '01fall Office Hours (OS105B):

91.522.201: Wednesday 5:30-8:15 in OS4 ___

Wednesday 4-5PM and 830-10 PM

(others by email appointment)

COURSE DESCRIPTION:

Course 91.522:OOAD covers the basic principles and techniques of object-oriented analysis, specification, design and prototyping. Our ongoing case study is a framework for application development called Collaborative Object-Oriented Laboratory: http://www.cs.uml.edu/~lechner/COOL
 
COOL generates coded for an object-relational database from static information models, and generates executable prototypes from a database of state-based, event-driven dynamic behavior models.

PREREQUISITES:

  • Required: 91.301 (Languages) and 91.304 (Fundamentals) plus 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).
  • REQUIRED TEXTS: (Fall 2000 and 2001)

    [OOD]: Meilir Page-Jones: "Fundamentals of OO Design in UML", A-W 2000
    [OLC]: Shlaer & Mellor: "Object Life Cycles: Modeling the World in States", P-H 1992
    [HO]: Handouts: selected reprints. .ppt slides and and project legacy reports.
    RECOMMENDED TEXT: [DMOD]: Sanders: "Data Modeling", B-F/Thompson 1995 (esp. Chap 3: normalization).:

    01f522 URLs for PowerPoint and BDE presentations:

    Data Models: http://www.cs.uml.edu/~lechner/DataModels2htm/
    COOL: http://www.cs.uml.edu/~lechner/COOL/
    JPSim: http://www.cs.uml.edu/~lechner/97f522/jp2htm/DEMO
    BDE UserGuide: http://www.cs.uml.edu/~lechner/bdeUG2htm/

    http://www.cs.uml.edu/~lechner/01f522/01f522Asgnts1and2.htm

    ^M

    Approximate Schedule:

    91.522 PART I: INFORMATION MODELING

    (~4 wks: Sep. 5, 12, 26, Hour Exam, 9/28)

    Information Models (EERD, DSD, Class Diagram):
    (OLC Ch. 2, OOD Ch. 3&4; HO: EERD's)
    Schema, meta-schema and meta-data
    (HO: schema.sch and TTTA tables)
    Normalization (Optional-MAX method):
    (HO: DataModels.ppt; [also DMOD: Ch. 3]
    Object-Relational Databases, Code Generation:
    (HO: CHGEN UserMan; .idraw/.ppt diag's)
    Assignments 1, 2 due Sep. 12, 28
    * No class Sep. 19 ( RJL away); Makeup 9/28

    91.522 PART II STATE-EVENT MODELING

    (~5 wks Oct. 3, 17, 24, Hour Exam 10/31)*

    User Requirements, Object Life Cycles
    (OLC Ch. 3; OOD Ch. 5)
    Dynamic Behavior and State-Event Models
    (OLC Ch. 4; HO OOD Ch. 6)
    System Dynamics (Inter-object OCD, OIDs)
    (OLC Ch. 5; HO JPsim.ppt)
    State Models (Intra-Object STD's)
    (OLC Ch. 9,)
    Design by Contract
    (OOD Ch. 10,11)
    Assignments 3, 4 due Oct. 10, 24
    * No class Oct. 10 (Mon. sched.)

    91.522 PART III COOL FRAMEWORK

    (~6 wks, Nov. 7, 14, 21 , 28; Dec. 5, 12)

    Sub-domains and Packages
    (OLC Ch. 7&8; OOD Ch. 7&9)
    COOL Framework Evolution
    (HOs- BDE/UG; GENCPP info)
    LCP State Model Architecture
    (OOD Ch. 6, 10; HOs- OLCArch UG)
    GEN/BDE Integration
    (HOs- bde2sch; GENCPP; BDE state models)
    LCP/BDE Integration
    (HOs- bde2SM; OP-class User Guide)
    Event Logs, Distributed Collaboration
    (HOs- genlog; DBDE.ppt)
    Assignments 5, 6 , 7 due Nov. 14, 28, Dec. 12 *
    * Project-related

    Follow-on project course 91.523: OOSE

    Object-Oriented Software Engineering enhances COOL and/or projects from a student's own development environment. [02f523 text: Eliens: "Principles of O-O Software Dev." (2ed.), A-W 2000].

    Assignment submission policy (Please Note):

    I strongly encourage emailed FAQ's and discussion of assignments. I will forward relevant FAQ's and responses to my alias: 01f522 for the class.
     
    Attachments must be PLAIN TEXT ONLY, not base64-encoded WORD or other binary files. (Windows mailers by default attach BASE64 - save-as text, select/copy and paste instead.) See attached Quick Reference to Unix access and text processing commands.

    01f522 GRADING POLICY

    Part I and II exams (including in-class and take-home problems): 50%;
    Part I and II assignments and part III collaborative design projects): 50%.

    It is not mandatory to get running code; quality of design documentation is more important. Quality depends on adequate requirements, planning, design and verification. The latter includes pre- and post-condition assertions and test cases.

    Checklist of documentation requirements for a maintainable project legacy: (these six factors will count equally toward project grades):

    Problem analysis: (reverse engineering, new requirements, class interfaces),
    Project plan: (work breakdown, incremental build/test plan, responsibilities),
    Design specs: (information, communication and state diagrams, event and action specs.),
    Source code: (change history, coding style, embedded assertions, compilation warnings),
    User guide: (version history and re-use info, readability, thoroughness),
    Test and debug logs: (test specs and coverage, analysis of predicted vs. actual results).
     

    01f522 Part I Handouts:

    Bachman
    Data Structure Diagrams (DSD's);
    Ullman et al
    Relational vs. Network Data Models;
    Gale/Appleton
    Summary of IDEF1X Data Modeling Methodology;
    Shlaer & Mellor
    An O-O Approach to Domain Analysis (OLC Intro)

    Course Organization:

    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.

    Detailed design and implementation: 01f522 Part III is last but not least. It analyzes inheritance and encapsulation design decisions which must precede implementation with an OOPL.

    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) POOD 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 (Ch. 2) emphasizes OOA; it very briefly reviews info models (Ch. 2) , which were covered by 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.

    Link to Part I Assignments 1 and 2:

    http://www.cs.uml.edu/~lechner/01f522/01f522Asgnts1and2.htm

    Checklist of documentation requirements

    (Six factors essential for a maintainable project legacy, that count equally toward project grades):

    Problem analysis
    (reverse engineering, new requirements, class interfaces)
    Project plan
    (incremental build/test specs, work breakdown responsibilities)
    Design specs
    (information, communication and state models, event and action specs.),
    Source code
    (change history, coding style, embedded assertions, compilation warnings),
    User guide
    (version history and re-use info, readability, thoroughness),
    Test/debug logs
    (test specs and coverage, bug reports, analysis of predicted vs. actual results).

    Overview of COOL: The Collaborative O-O Laboratory

    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, the major test case for LCP, is based on the case study in Shlaer-Mellor's OLC text. The major 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 database of block diagrams. This database represents ERD or UML class diagrams to specify an application's information model, OCD object(class) interconnection diagrams and STD state-transition diagrams too specify control sequencing and method calls. State model actions are programmed in C++ to implement object behavior.

    COOL Components GEN, LCP, BDE and JPSim:

    GEN translates Extended ER diagrams into an application-specific library of 'C' database support code. This library maintains a memory-resident OODB of C structures emulating C++ classes, which is saved as a persistent RDB of ASCII relational tables. (Ref: GEN project tree at $CASE/gen/ver_11.)

    LCP (Life Cycle Prototyping) is an executable event-driven state model interpreter inspired by Shlaer-Mellor's Object Life Cycles approach. See COOL: http://www.cs.uml.edu/~lechner/COOL/

    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 http://www.cs.uml.edu/~lechner/bdeUG2htm/index.htm

    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 converts a file of block diagrams into hyper-linked html files.
    b2t/t2b converts EER Diagrams into schema tables for GEN.
    bde2SM converts State Diagrams into state model tables for LCP.

    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.

    OOAD Projects in 2kf522 (TBUpdated for 01f522)

    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 2kf523 project suggestions, see: http://www.cs.uml.edu/~lechner/91.523/98f523projects.htm

    OOAD project teams of two to four students are encouraged to use our locally-developed software engineering framework (COOL) of portable generic tools. Browse or download a PowerPoint(TM) slide presentation on COOL at http://ww.cs.uml.edu/~lechner/COOL/