31
Activity & Class Activity & Class Modeling Modeling Labs Discussion Labs Discussion p3 p3 T120B029 T120B029 200 2004 pavasario sem. pavasario sem.

Activity & Class Modeling Labs Discussion p3 T120B029 200 4 pavasario sem

  • Upload
    neola

  • View
    29

  • Download
    1

Embed Size (px)

DESCRIPTION

Activity & Class Modeling Labs Discussion p3 T120B029 200 4 pavasario sem. Discussion Question. Explain the role and place of an activity diagram in system modeling. T120B029. Activity Modeling. Serves as a transition between the use case and the interaction model. - PowerPoint PPT Presentation

Citation preview

Page 1: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

Activity & Class Activity & Class ModelingModeling

Labs DiscussionLabs Discussionp3p3

T120B029T120B02920020044 pavasario sem. pavasario sem.

Page 2: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

2

Discussion Question• Explain the role and place of an

activity diagram in system modeling

T120B029

Page 3: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

3

Activity Modeling• Serves as a transition between the use

case and the interaction model.• Use cases are a necessary pre-condition • Use Cases – Actor or User Perspective• Activity Diagram – System Perspective

T120B029

Page 4: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

4

Activity Modeling

• Activity models show a flow of logic and varying levels of detail necessary to complete computations

• While activity models define the flow of activities, they do not show objects

T120B029

Page 5: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

5

How Activity Models Work• An event from an actor triggers a

use case• This begins the execution of the

activity• The activity proceeds through state

transitions• The activity completes

T120B029

Page 6: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

6

Activity Diagrams• An Activity State is shown as a

rounded rectangle.• To determine activities, look at the

use case documentation. For each use case, determine the system response.

• E.G. Customer chooses purchase function => GetPurchaseDetails()

T120B029

Page 7: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

7

Activity Diagram• The activity diagram shows transitions

between activities• Unless you are writing an infinite loop (e.g.

Multi-media kiosk) you need an initial and final state. – Initial State – Filled Circle– Final State – Bullseye

• Branches in the program logic are shown as a diamond

• Concurrent Processing is a bar line

T120B029

Page 8: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

8

Activity Diagram (Example)

Display Current Configuration

Get Order Request

Display Purchase Form

Get Purchase Details

Store Order

Email Order Details

[ timeout ]

[ incomplete ]

[ OK ]

Multiple exit transitions (branch condition that is internal to activity state)

Explicit branch condition (that appears on exit from activity state)

T120B029

Page 9: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

Class Models and Class Models and Class DiscoveryClass Discovery

Class Models and Class Models and Class DiscoveryClass Discovery

T120B029

Page 10: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

10

The Snowflake Rule

• The Snowflake Rule – For a non-trivial system, no two analysts will come up with the identical class models for the same application domain

T120B029

Page 11: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

11

Class Models• Define the internal state of the system• Elements

– Classes– Attributes– Operations– Association (Generalization, Aggregation,

Composition)• Classes Define Business Objects

T120B029

Page 12: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

12

Class Models (Continued)

• Types of Classes (BCED Approach)– Entity Classes – Database Model &

Permanent Objects– Boundary Classes – GUI– Control Classes – Control program logic– Database Access Classes

• Methodology for Constructing Classes is same as use cases – Use a table and derive candidate classes

T120B029

Page 13: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

13

Package Diagram (BCED)

Boundary Package

Control Package

Entity Package

Database Package

Boundary Package

Control Package

Entity Package

Database Package

T120B029

Page 14: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

14

Determining Classes• Four Questions

– Is this concept a container for data?– Does it have separate attributes that will

take on different values?– Would it have many instance objects?– Is it in the scope of the application domain?

• Remember, this is an iterative task!

T120B029

Page 15: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

15

Specifying Classes• After we have identified our initial set of

classes, we will want to specify them

• Here, we will begin drawing a class diagram and defining class properties

• CASE tools are of great assistance here

T120B029

Page 16: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

16

How do we name classes?

• Names should begin with a capital letter, e.g. Reservation

• In compound words, the first letter of each word should be capitalized, e.g. OnTimeArrival

• The name should be a singular noun• The name should be meaningful in a

business context• The name should not be longer than 30

characters

T120B029

Page 17: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

17

Discovering Class Attributes

• Recall that there are three parts to the class icon in UML (name, attributes, and operations)

• While discovering classes, it is helpful to discover attributes at the same time

• The first step for determining attributes is to identify those attributes that help us to understand the states of the object

T120B029

Page 18: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

18

How do we name attributes?

• Use all lower case letters, e.g. time• Words in a compound name should

be separated by an underscore, e.g. ticket_number

• It would also be helpful to keep them under 30 letters

• It should also be meaningful in a business context as opposed to a pure tech approach

T120B029

Page 19: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

19

Class Attributes

• Class structure is defined by attributes

• Defining attributes is an art, not a science, but there are some techniques we will explore later

T120B029

Page 20: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

20

Class Attributes

Customer

customer_name : Stringcustomer_address : Stringphone_number : Stringemail_address : String

(from Use Case View)

Orderorder_number : Stringorder_date : Dateship_address : Stringorder_total : Currencyorder_status : Stringsalesperson_name : String

T120B029

Page 21: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

21

Modeling Associations

• Recall that associations connect objects in the system

• Associations are the most essential kind of relationships in the model

• Associations support the execution of use cases (i.e. They tie together the state and behavior models)

T120B029

Page 22: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

22

Discovering Associations

• Finding associations should be a side effect of class discovery

• An association is a class attribute with a non primitive data type

• Associations permit object collaboration• Remember that associations should be

binary at most. We need to replace any ternary associations or those with greater extents with a cycle of binary associations

T120B029

Page 23: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

23

Rules for Specifying Associations

• In order to specify associations, we need to:– Name them– Name the association roles– Determine the association multiplicity

• When we name associations, we should name them in the same way as attributes

• We also need to designate the role names. When we use case tools, these will become attributes within the appropriate classes

• It is also good to specify the multiplicities

T120B029

Page 24: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

24

Modeling Aggregation and Composition

• Aggregation and composition are forms of association

• Aggregation and generalization are the two most powerful techniques for re-use in UML

T120B029

Page 25: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

25

Discovering Aggregations and Compositions

• The “litmus test” for discovering aggregation and composition is reading the relationship with the words “has” and “is part of”

• Examples:– “A book has chapters”– “A student is part of a class”

• If it does not make sense in a natural language, then it should not make be an aggregation or composition

T120B029

Page 26: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

26

More about aggregation and composition

• Remember that composition (by value) is stronger than aggregation (by reference)

• Use a solid diamond for composition and a hollow diamond for aggregation

T120B029

Page 27: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

27

Modeling Generalizations and

Relationships• Recall that generalization is a relationship

between a generic class and its sub-classes• Generalization supports inheritance in object

oriented environments• It also allows for substitution and

polymorphism (same operation meaning different things)

• Polymorphism works best when used with inheritance

T120B029

Page 28: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

28

Discovering Generalizations

• We attempt to discover in parallel with class determination

• The litmus test for generalization are the phrases:– “can be”– “is a kind of”

• E.g. a pilot is a kind of employee• In UML, we specify generalizations using

a solid line with an arrowhead pointing to the superclass

T120B029

Page 29: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

In Class Exercise In Class Exercise ContinuedContinued

In Class Exercise In Class Exercise ContinuedContinued

Class DiscoveryClass Discovery

T120B029

Page 30: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

30

Home Exercise

• Assume that the system you reviewed during the first half of the lecture will have an object oriented implementation

• Discover a set of candidate classes, attributes, and relationships amongst these classes

• Write all names on the paper and turn it in (This is your participation for the week)

T120B029

Page 31: Activity & Class Modeling Labs Discussion p3 T120B029 200 4  pavasario sem

31

Next Session• More Fun with UML

– State Charts– Sequence Diagrams

T120B029