Presentation is loading. Please wait.

Presentation is loading. Please wait.

Analysis Modeling Static Modeling.

Similar presentations


Presentation on theme: "Analysis Modeling Static Modeling."— Presentation transcript:

1 Analysis Modeling Static Modeling

2 Requirements analysis
Results in static and dynamic models Scenario models: use cases (static), swimlane diagrams (dynamic) Class diagrams (static) Flow oriented diagrams (dynamic) Behavioral models: sequence diagrams (dynamic), state diagrams (dynamic) These models bridge the gap between requirements and implementation (code)

3 Classes through Class diagrams
We’ve done use cases, time to move on to candidate classes, all of which should: Retain information Need services Have multiple attributes Have common attributes and operations Be essential requirements (in the problem space)

4 Selecting classes: example
Run this slide to see animation ATMUser Yes PinNum Yes No Maybe retained information needed services multiple attributes common attributes common operations essential requirements

5 Class diagrams A box with at least three compartments:
Student A box with at least three compartments: Class name Attributes Operations Responsibilities User-defined compartment Each class associated with other classes -major: String -gpa: Real -standing: String +add(section: Section) +drop(section: Section) -- The set of students known to the registration system -- An exception occurs if gpa falls below 2.0

6 Attribute syntax [visibility] name [multiplicity] [:type] [=initial-value] [{property-string}] visibility: public “+”, protected “#”, or private “-” name: capitalize first letter of each word that makes up the name, except for the first multiplicity: number, range, or sequence of number or ranges. type: built-in type or any user-defined class initial-value: any constant and user-defined object property-string: e.g, changeable, addOnly, frozen

7 Operation syntax [visibility] name [(parameter-list)] [:return-type] [{property-string}] visibility: “+”, “#”, “-” name: verb or verb phase, capitalize first letter of every word, except first parameter-list: coma separated list of parameters return-type: primitive type or user-defined type property-string: isQuery, sequential, guarded, concurrent

8 Example association Student Section -major: String -GPA: Real -standing: String -name: String -capacity: Integer +add(Student) +drop(Student) +checkPrereq(List<Student>) +add(Section) +drop(Section) Here, a Student is associated with a Section; one or both need the other in order to function

9 Associations An association is a structural relationship that specifies that objects of class may be connected to objects of another class Associations typically represent “long-lived” relationships In a library system a Person always has a name (association), but may infrequently have a book (dependency)

10 Association syntax Connect two classes Have labels and roles
Have multiplicities Are directional (related to “has a” relationship) – the navigation Think about which class needs to know about the other; which class is an attribute of the other? Why/when do I care?

11 Exercise: How many instructors can a class section have?
Student Semester 1..* 0..* 1 0..8 1..* Class Section Instructor 1..3 0..6 1..* <works for 1 1 1..* Department Course

12 How many instructors can a class section have? Answer: 1 to 3
Student Semester 1..* 0..* 1 0..8 1..* Class Section Instructor 1..3 0..6 1..* <works for 1 1 1..* Department Course

13 Attribute vs Association
name is the role on the association (attribute) We generally don’t model built-in classes like String (they are just types for attributes) joe: Student Is basically the same as ... -name: String = “Joe Jones” name joe: Student Joe Jones : String 1

14 Types of associations Relation Generalization Association Dependency
Binary Association N-ary Association Aggregation

15 Generalization A triangle on the side of the general class
Same as inheritance hierarchy in Java Opportunity for reuse Graduate Student Person Student

16 Dependency One class uses another, but it’s a weaker form of association Not necessarily long-lived; the depend-or can exist without a depend-ee in the system Dashed line

17 Aggregation Means “part of” Symbolized by a white diamond Crust
1 1 1 Sauce Serving 1 1 Pizza * Order 1..3 1 1 Cheese Serving 0..9 1 4..* Topping Serving Slice

18 Composition Like aggregation, but the component cannot survive on its own Symbolized by a black diamond Room Building

19 Exercise Take a look at Does John McCain (who has 7 houses) have a problem using this system? If Barack Obama decides to create a Federal sales tax, how would we change the system? Why is there a display method in Item, Book, MusicCD and Software? An ItemOrder is part of how many Orders? Can you explain how a search works using this diagram?

20 Answer Take a look at Does John McCain (who has 7 houses) have a problem using this system? Yes; only 2 addresses associated with a customer If Barack Obama decides to create a Federal sales tax, how would we change the system? add federalTax attribute to Order class Why is there a display method in Item, Book, MusicCD and Software? each subclass has its own implementation, even though one was inherited from the parent An ItemOrder is part of how many Orders? 1 Can you explain how a search works using this diagram? No; this is a static diagram, and does not show “flow” or actions

21 Quiz review What two main components make up a class in a class diagram? How do you represent an attribute? What are all the options/parts? How do you represent a method? What are all the options/parts? What is an association? Draw it. What is a dependency? Draw it. What is a generalization? Draw it. What is an aggregation/composition? Draw it. When do you include an attribute, as opposed to modeling it with an association? What do the arrows mean on associations? What do the multiplicities mean on associations?

22 In-class exercise Let’s make a class diagram for an ATM
Include a dependency Include a generalization Include a composition Include all multiplicities label all attributes Complete the exercises at Due next class

23 Team Project Examine the Quiz Game description/use cases
In your teams, come up classes; At least one dependency, aggregation, and generalization All associations must have navigations and multiplicities All attributes and operations must have types and visibilities Turn in this assignment through XP-Dev


Download ppt "Analysis Modeling Static Modeling."

Similar presentations


Ads by Google