UMass Lowell
Syllabus for Fall 1999
http://www.cs.uml.edu/~lechner/91.522/99f522syl.html
(This syllabus is maintained with Microsoft Office97® and is subject to change)
(Last revision date: 99/09/15)
|
My 99f Class Schedule: |
My 99f Office Hours: (others by appointment) |
|
Monday: 99F522: 5:00-7:30 in OS315 |
Mon-Wed-Fri 2-4PM |
|
MWF : 99f204: 12:30-1:20 in OS414 |
Mon-Wed-Fri 7-9PM |
|
|
|
Course 91.522 is about the principles and practice of OO Analysis and Design: It includes object-oriented techniques for analysis, specification, design and prototyping. Static information models and state-based dynamic behavior models. Rapid prototyping projects that both use and enhance object-oriented CASE tools.
Students will use object-oriented CASE tools to specify event-driven distributed software system as a database of block diagrams with procedural attachments. These can be translated semi-automatically into executable prototypes, which are supported by tools such as automatic code generators, state machine interpreters and web browsers.
Fall course 91.522 (OOAD) is a prerequisite for spring course 91.523 Object-Oriented Software Engineering (OOSE). Project assignments in 91.522 will include in-depth case studies of our locally developed software engineering framework (COOL) or projects from a student's own development environment. 91.523 project teams will continue to re-engineer and enhance the COOL framework.
Required
: 91.304 or 91.502 (Foundations) plus significant programming experience.Recommended: 91.301(Languages), 91.308(OS), and knowledge of an application domain such as graphics, databases, multimedia, or engineering.
91.522 Project Topics
(in $CASE/98f52* in Fall 1999):For a list of possible 99f523 project topics, see: http://www.cs.uml.edu/~lechner/91.523/98f523projects.html.
98F522 OOAD project teams are encouraged to use our locally-developed software engineering framework of portable generic tools, or another OO-CASE environment which can produce portable and maintainable design documentation. (Many tools save proprietary, non-portable formats.) 91.523 project teams are encouraged to re-engineer and enhance this framework.
This framework consists of four generic CASE tool sub-domains BDE, GEN, LCP, BDE2*, and one integrated application, JPsim, which together comprise the CASE Object-Oriented Laboratory (COOL).
(This outline is subject to change; for a summary, see the last page of this file.)
This outline specifies topics to be covered biweekly and relevant reading assignments. Handouts include reprints and project reports are to be read by the next class meeting. Many project reports are online at www.cs.uml.edu/~lechner and under the unix path $CASE = /usr/proj3/case/ in a subdirectory named {toolname/../doc or term/project/../doc}). Each 99f522 student will have a user directory under the semester home directory $CASE/98f522.
Reading assignments follow the template format < Week#: Keynote: <topic list>; Read first: <list of prior handouts and text chapter refs>; Handouts for next meeting: <list> >. The reading assignments present the authors' various perspectives on OOAD. Most differences are incidental. What is important is to understand the common basis underlying all these views and our generic tools. I expect you to peruse the reading assignments at least once before each class and to email a few questions per week to lechner@cs.uml.edu for a FAQ list.
Assignments are due in one week unless otherwise noted.
Please Note: (Email attachments should be plain text ONLY - Do NOT attach base64-encoded .doc or other binary files!)
Assignment 1: (a) Use bde to draw a DSD called SIS.dat for a course scheduling, student enrollment and transcript archiving database. The database relations should caoture rosters and grades of students enrolled in course sections that are scheduled in specific rooms and timeslots, and taught by faculty of academic departments over multiple semesters. 1(b): manually create a test database called Term99f.dat that could be used for demos and testing.. Due at next week's meeting (99F Week 2)
Deliverables: (a) SIS schema definition as a Data Model Diagram and (b) a sample database called Term99f.dat. (Mandatory inclusions: required attributes and descriptive comments and accurate multiplicity annotations on relation links.
Assignment 2: (a) Define the chgen input schema file SIS.sch: (Either run bde2sch/b2s to convert SIS.dat to schema SIS.sch or manually define an equivalent SIS.sch with a text edtor). (b) Run 'chgen -ansi -metafile' on SIS.sch to generate SIS.h and pr*.c database support code. Due in 2 weeks (99F Week 4.)
Deliverables: result of executing this command script (the path to chgen needs to be defined). "whoami; date; pwd; echo GENPATH: $GENPATH; cat SIS.sch; $GENPATH/chgen -ansi -metafile SIS.sch ; ls -l;"
Assignment 3: Write a simple GEN-based SIS application to (a) pr_load and pr_dump Term98f.dat. (b) print a class roster (CS-->EN) and (c) print a student grade report (ST-->EN); compile and link it with SIS.h and pr_util.a; show that it operates correctly. Deliverables: source code, compile-time and run-time printouts.
Assignment 4: (a) Draw the state machine diagram MOC.dat for the Microwave Oven Controller from the OLC text using BDE, and (b) convert it into a State Model database MOCSM.dat using bde2sm. Deliverables: MOC.dat . Read OLC Ch. 3, 4, 5. Handouts for next meeting: JPSim reports,
Assignment 5: (a) Draw typical Use Cases and an Object Communication diagram for the microwave oven controller state machine in our Object Life Cycles text. (b) Design an OLCArch-based test driver to exercise a multi-oven simulation. Deliverables: Diagrams, test driver main program and source or pseudo-code for the oven controller classes whose instances are rows of your schema tables/
Assignment 6: Augment your program actions (5) and driver (6). with require and ensure assertions. Deliverables: Revised source code.
Assignment 7: (a) Adapt your Oven Controller program to use the OPerator class as a simulator controller and stimulus history (script file) reader; (b) Run this program and print the FF state sequence that represents the counter's response to an input sequence of two cooking cases. Deliverables: (a) Source code and Thread of Control diagram (Use Cases), and (b) test run with operator input data and state transition history.
For a list of possible 99fall project topics, see
http://www.cs.uml.edu/~lechner/91.523/99f522projects.html (TBD) and its predecessor http://www.cs.uml.edu/~lechner/91.523/98f523projects.htm.
Course 91.522, Object-Oriented Analysis and Design, evolved out of 91.523, Software Engineering I. OOA&D expands the front-end analysis and design aspects that object orientation requires. It uses the most common implementation languages C and C++ or Java. To avoid overlap, 91.522 is now a prerequisite for 91.523. The follow-on course 91.523 Software Engineering I emphasizes implementation and maintenance phases of large-scale object-oriented software development.
OOA&D also provides relevant information and behavior modeling background for the graduate database course sequence.
OOA&D, like traditional system analysis and design, deals with understanding a vaguely defined problem and mapping it into a software architecture with precisely specified requirements for its solution. OOA is not language-dependent and does not require programming sophistication; however, it does require extensive problem domain knowledge and system integration experience, compared to the traditional view of programming as implementation and testing. Thus, OOA&D techniques are accessible to scientists and engineers with application domain knowledge but without extensive programming experience.
On the other hand, sophisticated OO programming languages and complex reusable class libraries are used to implement OO-designs. These require a steep learning curve due to the paradigm shift required from traditional programming methods. We will use the most common implementation languages, C, and C++ and Java, and graphic user interfaces (X-Windows and Microsoft Windows) and amortize the learning process over two semesters in 91.522 and 91.523.
OOA&D is used to derive a model of the system, specify its requirements, and document its design before effective object-oriented programming can begin. The system model is a set of interrelated data and design object models. These represent interacting real-world entities whose concurrent behavior is simulated as a set of event-driven software processes.
Entity-relationship diagrams, extended with inheritance, model the system's static structure as a network of related classes. All objects are instances of these classes and optionally persist in the form of relational database tables. State transition and event communication diagrams, extended with additional semantics, are used to specify the dynamic life-cycle behavior of concurrently executing objects and their interactions.
There is still no consensus on a standard method of formally specifying software structure and behavior. This course uses the Shlaer-Mellor Object Life Cycle method (OLC), which is designed for imbedded computer systems, and the Unified Modeling Language (UML).
98f522syl.htm: Summary of Readings and Assignments:
|
For this class: |
Read these sections and prior /handouts: |
And complete these Assignments: |
|||||
|
Wk# |
Date |
DMOD |
OLC |
UML |
Other |
# |
Description/URL |
|
1 |
|||||||
|
2 |
|||||||
|
3 |
|||||||
|
4 |
|||||||
|
5 |
|||||||
|
6 |
|||||||
|
7 |
|||||||
|
8 |
|||||||
|
9 |
|||||||
|
10 |
|||||||
|
11 |
|||||||
|
12 |
|||||||
|
13 |
|||||||
|
14 |
|||||||