输入“/”快速插入内容

OOAD: Overly Abstract Design

1月10日修改
Requirements Engineering
One element of the Waterfall Model
Requirements Engineering - Design - Implementation - Testing - Maintenance
Model of the system: describing a system at a high level of abstraction
Who designed OO notations?
Grady Booch (BOOCH)
Jim Rumbaugh (OML: Object Modeling Language)
Ivar Jacobson (OOSE: Object Oriented Software Engineering)
Who won Turing Award for software engineering?
Fred Brooks (Mentioned, for The Mythical Man-Month / No Silver Bullet)
Robert Floyd
Unified Modeling Language (UML)
It is the "union" of all modeling languages, many loosely related styles under one roof
Nearly everything in UML is optional
Static Modeling: Captures the fixed, code-level stuff
Class Diagram
Behavioral Modeling: Captures the dynamic execution of a system
Use-case Diagram
Interaction diagrams, e.g. Sequence Diagram
Statechart Diagram
Activity Diagram
The bad things about UML:
A set of many ideas; visual syntax does not scale well; semantics not completely clear
Use-case Diagram
Captures the requirements of a system from the user's perspective, and is at a higher level of abstraction than other UML elements
Use case: a particular piece of functionality that the system must provide
May include supplemental information: entry / exit conditions, nonfunctional requirements
Marks
Actor (stick figures): a role that a user takes when invoking a use case
A single user may be represented by multiple actors
Use cases (ovals): edges from actor to use case showing that the actor is involved in that use case
Just an "association" relationship, e.g. Normal user cannot cancel session, but refund is related to him, so we also need to link to them other than the admin
75%
25%
Relationships in Use-case
Generalization, e.g. Push train button is a specialization of push button
Extension is an exceptional variation of a use case, e.g. Derail is exceptional for riding
Inclusion, e.g. Push button included in ride
Note: generalization and extend point to parent (I extend my parent), while inclusion point to the children (I include my child)
70%
30%
An example use-case diagram
Statechart Diagram
Shows the various stages of an entity during its lifetime, to show the state transitions
Marks
State: a condition of a modeled entity