University Of Massachusetts Lowell
Computer Science Department
http://www.cs.uml.edu
Update (in progress) for Spring and Fall 2005
Professor
Lechner, OS209
lechner@cs.uml.edu
This syllabus is currently being updated for Spring 2005.
Last
revision: 050130
TABLE OF CONTENTS
Software Used to Support Class
Required Textbook and Materials
Class Schedule and Assignments
· To convey classical and object-oriented software development principles and practices by actively applying them to ongoing object-oriented CASE tool development projects.
· To provide the experience of programming-in-the-large and legacy software reuse for hierarchical software systems using C and C++.
· To provide an environment for collaborative work by teams of mature students.
· To build upon the language-independent O-O analysis and design experience of the 91.531 OOPL and 91.502 Formal Models pre-requisites.
· Classical and object-oriented software development principles and practice; OO CASE tool development projects in C/C++ and Java.
· This course emphasizes pragmatic techniques for software analysis, specification, design, verification and testing to improve quality and reusability of systems of programs, at varying levels of abstraction. Object-oriented analysis and design principles are stressed throughout;.
· Topics include (1) project life cycles, (2) design documentation using UML and RDB static structural models (Class Models and EERDs) and dynamic behavior models (object life cycles, UML State Models, Activity/Collaboration Models), (3) configuration and version management (CVS), (4) verification (pre- and post-conditions, OCL), (5) testing and debugging (gdb, test coverage, log/replay/rollback, regression testing, refactoring, and ghost variables).
· The application domain project focus is on tools for Model-Driven Development. Teams will apply information modeling, code generation, event management, and life cycle history modeling techniques to enhance existing executable prototypes of object-oriented CASE tools in C/C++ or Java.
Required Prerequisites:
· 91.304 or 91.502 Formal models and methods
· Programming language principles (91.301 or 91.531)
· Significant programming experience in any OOPL
Recommended Prerequisites:
· 91.515 OS and familiarity with one or more domain-specific application areas such as graphics, databases, communications, multimedia, CAD/CASE.
Software
Used to Support Class
PC and Unix/Linux platforms:
· ../COOL-GEN (chgen and gencpp Database Code Generators).
· Java2, J2SE 1.4.2
· ../eclipse/ Framework [TBD]
Unix/Linux platforms:
· CVS (Concurrent version-control system) (& see man cvs)
· COOL-BDE User Guide Block Diagram Editor
· COOL-LCP State Model Interpreter
· xmkmf/gcc/g++ (& see man xmkmf, man imake)
Office: EB402 and OS315 (CS Dept.)
E-Mail: lechner@cs.uml.edu
Phones:
Home: (781)449-1497 or (781)444-8321
Office: (978)934-3632 (OS209); Fax: (978) 934-3551 (OS313)
Office Hours (Spring 2005):
Tuesday 830PM on (after class); Others by appointment.
Teaching Schedule (Spring 2005):
91.523: Tuesday 530-830PM
Required Textbook and Materials
(Spring 2005):
[OOSE]:
Breugge & Dutoit: ' Object-Oriented
Software Engineering Using UML, Patterns and Java', (2nd Ed), Prentice-Hall 2004
Part I : Getting Started (Chapters 1- 3)
Part II : Dealing with Complexity (Chapters
4-11)
Part III : Managing Change (Chapters 12-16)
Local mods to text lecture slides: ../BreuggeOOSE
Possible text for 91.524 SWEng II : OO Framework Development:
Raistrick et al: Executable MDA (KennedyCarter iUMLLite tool)
_______________________________________________
Recommended bibliography:
Selected
reprints:
·
[OLC]
Shlaer and Mellor: 'An O-O Approach to Domain Analysis', ACM
SIGSOFT SE-Notes 14(5), Jul 1989 pp 66-77: [This
handout previewed the 1992 text: Shlaer & Mellor: 'Object Life Cycles: Modeling the World in
States', Prentice-Hall, which is now
a print-on-demand paperback.]
· [DbyC] B. Meyer: Design by Contract
[This .ppt slide set is based on Chapter 11 of [OOSC] B. Meyer: 'Object-Oriented Software Construction' (2nd Ed, P-H 1997 with CD-ROM).]
· [CVS] Tutorial material (on-line at $CASE/cvs).
·
[OPF]
DonaldFiresmith's website on the OPEN
Process Framework (diagram
components are clickable hyper-links as in bde2htm)
·
[SWEBOK] Guide to
the Software Engineering Body of Knowledge,
IEEE/CS Software
Engineering Coordinating Committee (Ironman Version,
May 2004)
· OthersTBD (see Refs to CharlesBachman, FredBrooks, MannyLehman, DavidParnas; and URLs to ScottAmbler, Martin Fowler, David Boundy, David Hay, JiriSoukup, GradyBooch, OMG/ADTF,...)
Reference material on OOP and Software
Engineering:
(Warning:
The first three are encyclopedic texts.)
[OOSC] B. Meyer: 'Object-Oriented Software Construction' (2nd Ed, P-H 1997 with CD-ROM). (In particular, Chapter 11: Design by Contract)
[CPPL] B. Stroustrup: 'The C++ Programming Language' (3rd.Ed.) A-W 1997.
[UML] Martin Fowler: 'UML Distilled: Applying the Standard Modeling Language' (3rd.Ed.), Addison-Wesley 2004.
[JAVA2] C. Horstmann and G. Cornell: 'Core Java 2 (J2SE5.0), Vol. 1: Fundamentals and Vol. II: Advanced Features', Sun Microsystems 2005.
[JDP] J. Cooper: 'Java Design Patterns, A Tutorial', A-W 2002.
[JOT] ETH Zurich: Journal of Object Technology (published by the Chair of Software Engineering at ETH Zurich, Switzerland).
[MDA] Kleppe, Warmer, Bast: MDA Explained, A-W 2003.
[OCL] Warmer, Kleppe: The Object Constraint Language, AW 1999.
[OODP] C. Horstmann: Object-Oriented Design and Patterns, Wiley 2004.
[OPF] Firesmith's
website on the OPEN Process
Framework
(diagram components
are clickable hyper-links as in bde2htm)
[SWEBOK] Guide to
the Software Engineering Body of Knowledge,
IEEE/CS Software
Engineering Coordinating Committee (Ironman Version,
May 2004)
[ETHICS] Software Engineering Code of
Ethics v5.2: http://www.computer.org/tab/seprof/code.htm
[CURRICULUM2004] ACM/SIGCSE Computing Curricula 2004
http://www.acm.org/education/Overview_Draft_11-22-04.pdf
(Curriculum Guide for five sub-divisions of the BS/CS major: computer engineering, computer science, information systems, information
technology, and software
engineering.) [See curriculumManifesto_rjl.htm
for my 'funnel' view of a common prefix to these curricula.
Project legacy reports
These are in $CASE = /usr/proj3/case/* and/or $PH = http://www.cs.uml.edu/~lechner
(many are browsable, but need to be indexed, from my home page: http://www.cs.uml.edu/~lechner).
Click for a List of Project Suggestions (Obsolete - TBUpdated)
Have the prerequisite OOP language skills and BS/CS background and the motivation to produce understandable and robust software-engineered products.
Participate in team meetings and collaborative design activities including some that may be outside of the regular class schedule.
Have the ability to negotiate and implement agreed-upon interfaces and the discipline to specify requirements semi-formally before [re]design and implementation.
Subscribe to SW Requirements Engineering (re-online@it.uts.edu.au) email list server. (Old messages are in ~lechner/Mail/re) [To subscribe to RE-online mailing list, send e-mail to majordomo@it.uts.edu.au with the following line as the first and only line in the body of the message: subscribe RE-online your email address ]
Email
any changes to your course registration and contact info, team &
project preferences as they become
relevant.
Visit this web link to the Software Engineering Code of Ethics v5.2: http://www.computer.org/tab/seprof/code.htm
· Two hour exams with in-class and take-home parts: 50%.
· Code redesign and other assignments: 10%;
· Project plans, documentation and status reviews: 40%;
· Project responsibilities of team members include:
1. Analysis
(reverse engineering results; impact analysis documentation);
2. Work plan
(task breakdown; incremental build/test plan);
3. Black-box
design requirements: interfaces and behavior specifications: (required
pre-conditions, ensured post-conditions; error handlers;
invariants - see [DbyC];
4. White-box design
decomposition (conformance to build plan);
5.
Source code style that is understandable, robust and complete;
6.
Guides for users and maintainers: (readability and
thoroughness);
7.
Revision history and comments (visible conformance to build
plan)
8.
Testing
Follow this link to
$PH/05s523/05f523Schedule.xls