UMass Lowell
Syllabus for Fall 1998
http://www.cs.uml.edu/~lechner/91.522/98f522syl.html
(This syllabus is maintained with Microsoft Office97® and is subject to change)
(Last revision date: 98/9/15)
|
My 98f Class Schedule: |
My 98f Office Hours: (others by appointment) |
|
Tues: 98F522: 5:15-7:50 in OS415 |
Tues 8-10PM in OS313 |
|
Wed : 98F523: 5:15-7:50 in OS315 |
Wed . 8-10PM in OS313 |
|
Friday: none |
Friday 2-5PM in EB402 |
Course 91.522 covers both principles and practice of OO Analysis and Design. Object-oriented techniques for analysis, specification, design and prototyping. Static information models and state-based dynamic behavior models applied to rapid prototyping projects that both use and implement 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.
Course 91.522 OOAD is a prerequisite for 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 or environment; 91.523 project teams are encouraged to re-engineer and enhance this 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 1998):For a list of possible 98f522, 98f523 and 99s523 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). Click here to browse or download a PowerPoint slide presentation on COOL: htpp://cs.uml.edu/~lechner/COOL/index.htm
(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 98f522 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.
Assignment 1: (a) Use bde to draw a DSD called SIS.dat for a course scheduling, student enrollment and transcript archiving database, and (b) manually create a test database called Term98f.dat. Deliverables: SIS. Data Model Diagram and Term98.dat. (Email plain text ONLY - no base64 or .doc atttachments!)
Assignment 2: Run bde2sch/b2s to convert SIS.dat to schema SIS.sch, and run chgen on SIS.sch 'to generate SIS.h and pr*.c database support code. Deliverables: result of executing this command script:
"whoami; date; pwd; cat SIS.sch; chgen -ansi -metafile SIS.sch ; ls -l;"
Assignment 3: Write a simple 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 a 2-state machine diagram RSFFBDE.dat for an RS-flipflop using bde, and (b) convert it into a State Model database RSFFSM.dat using bde2sm. Deliverables: RSFFBDE.dat and RSFFSM.dat.OLC Ch. 3, 4, 5. Handouts for next meeting: JPSim reports,
Assignment 5: (a) Draw an Object Communication diagram for a 4-bit counter state machine using four RS-flipflop objects, (b) Design an OLCArch-based test driver to exercise this counter. Deliverables: OCD (logic diagram), test driver main program source or pseudo-code).
Assignment 6: Augment your program actions (5) and driver (6). with require and ensure assertions. Deliverables: Revised source code.
Assignment 7: (a) Adapt your 4-bit counter 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 16 count events. Deliverables: (a) Source code and Thread of Control diagram (Use Case), and (b) test run with input and state transition history.
For a list of possible 98fall project topics, see:
http://www.cs.uml.edu/~lechner/91.523/98f523projects.html
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 |
|||||||