This page generated on Mon Apr 30 13:43:26 PDT 2001.
This page is a part of the CS599 course materials
at the California State University, San Bernardino.
It was generated from dick04.mth
by Dr. Dick Botting.
Contents
The Osbert Oglesby Case Study is a better case study. The "XYZ Application" and "XYZ Utilities" classes are needed for Java. Don't do them for C++!
Usecases are classes of scenarios with similar users and goals.
A scenario must be from the user's point of view and not expose (prejudge) any of the internal workings of the software. The scenario determines what is exposed to the user.
Class diagrams can get very complicated (chapter 6 of Fowler and Scott). Never use a notation unless you absolutely have to! Also be ready to change your class diagrams many times. Keep them simple. Remember: It is only a metaphor. Analytical classes are in the user's mmind and may differe (subtly, completely?) from what is actually inside the software.
Ideas: Parameters, stereotypoes, constraints, dependency, objects, classwide scope, aggregation and composition, derived attributes and relations, {constraints}, {abstract}, {frozen}, <<interface>>, lollypops, ...
Use CRC, sequence diagrams, and collaboration diagrams (Chapter 5 of Fowler and Scott) to refine your scenarios. This starts to work on what is inside the software -- how things work together. The often lead you to revise you class diagrams.
Ideas: creation of objects, lifelines, selfcalls and messages, [conditions], * iterations, return, destruction, ...
Statecharts are used in both design and in analysis. They are used differently. In design they help develop code. In analysis they can (if taken strictly) tie the designers hands -- in analysis "It's Only a Metaphor". It says what the user thinks is happening.... not what the software actually is doing.
. . . . . . . . . ( end of section Object-Oriented Analysis) <<Contents | Index>>
Elevator Case Study
Has an bad pair of UseCases. The user may push buttons but
this does not make them usecases. A usecase represents a complete
sequence of interations that achieve something useful. I'd have
a single usecase: "Move from one floor to another".
Evolution
Three things always happen to existing pieces of software:
Good software has to support these three things.
Activities
Object-Oriented Activity
One way to sharpen our grasp of objects is to
use Class, Responsibility, Collaboration (CRC) Cards.
(Fowler and Scott, page 75).
. . . . . . . . . ( end of section Activities) <<Contents | Index>>
Deliverables
. . . . . . . . . ( end of section Outline for Class 4 on Software Engineering) <<Contents | Index>>
Next
[ dick05.html ]