Course Overview
A major engineering problem today is the predictable development of reliable
software-intensive systems. The object-oriented paradigm is an important
part of such development. Object-oriented methods can be divided into languages,
distribution, and analysis and design. There change in the language category,
particularly Java and C#. Distribution includes the use of vendor libraries
of classes and also distributed objects as specified by the Object Management
Group etc. Basic to the entire enterprise, however, are analysis and design,
which has remained remarkable stable for years. Object-Oriented Analysis
and Design includes the overall goals of the object paradigm, the selection
of classes, the relationships among them, and their utilization to implement
systems.
Prerequisites
Knowledge of C++ or Java (MET CS 565) and software engineering methods (MET
CS 673) are required. It is preferable to have taken Design Patterns (MET CS
665).
Learning Objectives
Objectives:
- analyze problems from an object perspective
- create OO designs which are ready for coding
- implement a pilot OO project
Methods of Instruction
The course will be primarily lecture-based, with extensive lecture notes made
available by the instructor on the course web site. Questions are encouraged.
Attendance will be taken during each class meeting.
The web-based component is managed through a course companion web site in CourseInfo
that includes
lecture notes,
references, library and other institutional resources, links to Internet resources;
homework assignments and solutions;
on-line homework submission;
grade management: remote private access to grading information for the student,
spreadsheets and grade statistic functions for the instructor;
a wealth of communication types: chat (individua l or groups), threaded discussion,
e-mail (individual or groups), bulleting board;
Evaluation and Grading
You will be required to submit an analyzed, designed and implemented project
according to the deadlines shown in the schedule. Detailed requirements will
follow.
With the instructor's permission, it may be possible to substitute all or part
of the project with an investigation of tools for OOA&D such as Rational
Rose or Together. This will require a detailed evaluation and an investigation
of how these tools are being used extensively in a particular company.
Teams two are permitted, and will be evaluated at a higher standard. All members
must know all parts.
You will be required to give a presentation on at least two of the phases in
your project.
There are three phases for the project, graded as follows:
. phase 1 (problem statement): 1/9
. phase 2 (analysis): 2/9
. phase 3 (design): 1/3
. phase 4 (implementation and critical review): 1/3
Parts are evaluated equally unless otherwise stated.
Late homework is not accepted unless there is a reason why it was impossible
for you. If there is such an impossibility, the work will be graded on a pass/fail
basis.
Please see http://metcs.bu.edu/~ebraude/GradePolicy.htm for more details on
grading computations.
There will be one midterm exam.
The course will consist of homework and a project, weighted as follows:
1. Homework: 30%
2. Project: 70%
There are three phases for the project, graded as follows:
· phase 1 (problem statement):
· phase 2 (analysis):
· phase 3 (design):
· phase 4 (implementation and critical review):
Parts are evaluated equally unless otherwise stated.
Please see http://metcs.bu.edu/~ebraude/GradePolicy.htm for more details on
grading computations.
Academic Honesty
The course is governed by the Academic Conduct
Committee policies regarding plagiarism (any attempt to represent
the work of another person as one's own).
This includes copying (even with modifications) of a program or segment of
code. You can discuss general ideas with other people, but the work you submit
must be your own. Collaboration is not permitted.
Instructor Information
Instructor: Eric Braude, Ph.D.
E-mail: ebraude@bu.edu
Boston University
Department of Computer Science, Metropolitan College
Address: 808 Commonwealth Avenue, Room 250
Boston, MA 02215
Phone: (617) 353-2367
Lab
Students will choose one or -- preferably -- a combination of two of the four
areas in which to design and execute a project, and can purchase recommended
literature accordingly. Past students in this course have begun to develop
a list of references and tools at http://metcs.bu.edu/~ebraude/767/articles/index.htm
.
Homework
The homework will consist of different phases of the project.
References
Required
"Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design,
and the Unified Process " by Larman (Prentice Hall) 2nd edition, Published July
2001, 627 pages, ISBN 0130925691
Other References
· The Unified Modeling Language User Guide by Booch et al (Prentice Hall) ISBN0-201-57168-4
· The Unified Modeling Language Reference Manual James Rumbaugh, Ivar Jacobson,
Grady Booch Addison-Wesley Pub Co; ISBN: 020130998X
· Design Patterns by Gamma et al
· Object-Oriented Software Engineering by I Jacobson
· Object-Oriented Analysis & Design by G. Booch
· Modeling the world in data by S. Schlaer and S. Mellor
· Modeling the world in states by S. Schlaer and S. Mellor
· The Unified Method draft www.rational.com
· Object-oriented Analysis by P. Coad and E. Yourdon
· Object-oriented Design by P. Coad and E. Yourdon
· Object-oriented Programming by P. Coad and A Nicola
· Software Engineering: An Object-Oriented Perspective by Eric Braude
Schedule
-
Week
1
· Review Syllabus
· Review Software Development Process Notes 0-1
Week 2
· Introduction, Overview, and Goals of Design
· UML as required
· Extreme programming and refactoring Notes 1-3
Week 3
· Requirements I: Use Cases Notes 13 part 1
Week 4
· Requirements II: Sequence Diagrams Notes 13 part 2
Week 5
· Requirements III: Completing Domain Classes
· Writing Detailed Requirements
· Review Student Designs Notes 13 part 3Larman 10
Week 6
· Software Architectures Notes 14 part 1
Week 7
· To be determined
Week 8
· Review Design Patterns as required
· Discussion of Tools
· Review Student Designs Notes 4-6
Week 9
· Frameworks· Review Student Designs
Week 10
· Design Topics
· Review Student Designs Notes 14 part 2
Week 11
· Review Student Designs
Week 12
· Detailed Design
· Review Student Designs
Week 13
· Implementing OO designs
· Shlaer-Mellor
Week 14
· Presentations on Finished Applications
Week 15
· Final Exam
