Chapter 2, Modeling with UML, Part 2

Size: px
Start display at page:

Download "Chapter 2, Modeling with UML, Part 2"

Transcription

1 Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML, Part 2

2 Outline of this Class What is UML? A more detailed view on ü Use case diagrams ü Class diagrams ü Sequence diagrams ü Activity/Statecharts diagrams Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

3 UML Basic Notation: First Summary UML provides a wide variety of notations for modeling many aspects of software systems UML diagrams cover the three fundamental models for software design: Functional model: Use case diagrams Object model: Class diagrams Dynamic model: Sequence diagrams, statechart diagram Now we go into a little bit more detail Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

4 UML First Pass Use case diagrams Describe the functional behavior of the system as seen by the user Class diagrams Describe the static structure of the system: Objects, attributes, associations Sequence diagrams Describe the dynamic behavior between objects of the system Statechart diagrams Describe the dynamic behavior of an individual object Activity diagrams Describe the dynamic behavior of a system, in particular the workflow. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

5 UML Use Case Diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

6 UML first pass: Use case diagrams Classifier Use Case Actor. System boundary Use case diagrams represent the functionality of the system Bernd Bruegge & Allen H. Dutoit from Object-Oriented user s Software point Engineering: of Using view UML, Patterns, and Java 6

7 UML Use Case Diagrams Passenger Used during requirements elicitation and analysis to represent external behavior ( visible from the outside of the system ) An Actor represents a role, that is, a type of user of the system A use case represents a class of functionality provided by the system PurchaseTicket Use case model: The set of all use cases that completely describe the functionality of the system. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

8 Actors Passenger Name An actor is a model for an external entity which interacts (communicates) with the system: User External system (Another system) Physical environment (e.g. Weather) An actor has a unique name and an optional description Examples: Passenger: A person in the train Optional Description GPS satellite: An external system that provides the system with GPS coordinates. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

9 Use Case PurchaseTicket A use case represents a class of functionality provided by the system Use cases can be described textually, with a focus on the event flow between actor and system The textual use case description consists of 6 parts: 1. Unique name 2. Participating actors 3. Entry conditions 4. Exit conditions 5. Flow of events 6. Special requirements. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

10 Textual Use Case Description Example Passenger PurchaseTicket 1. Name: Purchase ticket 2. Participating actor: Passenger 3. Entry condition: (GOOD) Passenger selects an option from the display (WRONG) Passenger stands in front of ticket distributor (Very WRONG) Passenger has sufficient money to purchase ticket 4. Exit condition: Passenger has ticket (Better): System delivered ticket 5. Flow of events: 1. Passenger selects the number of zones to be traveled 2. Distributor displays the amount due 3. Passenger inserts money, at least the amount due 4. Ticket Distributor returns change 5. Ticket Distributor issues ticket 6. Special requirements: None. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

11 Use Cases can be related Extends Relationship To represent seldom invoked use cases or exceptional functionality Includes Relationship To represent functional behavior common to more than one use case. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

12 The <<extends>> Relationship <<extends>> relationships model exceptional or seldom invoked cases <<extends>> Passenger PurchaseTicket <<extends>> The exceptional event flows are factored out of the main event flow for clarity The direction of an <<extends>> relationship is to the extended use case Use cases representing exceptional flows can extend more than one use case. <<extends>> OutOfOrder <<extends>> TimeOut Cancel NoChange Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

13 The <<includes>> Relationship Passenger PurchaseSingleTicket <<includes>> PurchaseMultiCard <<includes>> <<includes>> relationship represents common functionality needed in more than one use case <<includes>> behavior is factored out for reuse, not because it is an exception The direction of a <<includes>> relationship is to the using use case (unlike the direction of the <<extends>> relationship). <<extends>> CollectMoney <<extends>> <<extends>> NoChange Cancel TimeOut Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

14 Use Case Models can be packaged Classifier Use Case Actor. System boundary Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

15 Historical Remark: UML 1 used packages Package Course Instructor GiveLecture HoldExercise Student Teaching Assistent DoHomework Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

16 UML Class Diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

17 UML first pass: Class diagrams Association Class Multiplicity 2 PushButton SimpleWatch Display Battery Time Class diagrams represent the structure of the system Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

18 UML first pass: Class diagrams Class diagrams represent the structure of the system Association Class Multiplicity 2 PushButton state push() release() Attribute 1 1 LCDDisplay blinkidx blinkseconds() blinkminutes() blinkhours() stopblinking() referesh() Watch Battery Load 1 Time Now Operations Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

19 Class Diagrams Class diagrams represent the structure of the system Used during requirements analysis to model application domain concepts during system design to model subsystems during object design to specify the detailed behavior and attributes of classes. TarifSchedule Table zone2price Enumeration getzones() Price getprice(zone) * * Trip zone:zone Price: Price Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

20 Classes Type TarifSchedule zone2price getzones() getprice() Name Attributes Operations TarifSchedule Table zone2price Enumeration getzones() Price getprice(zone) Signature TarifSchedule A class represents a concept A class encapsulates state (attributes) and behavior (operations) Each attribute has a type Each operation has a signature The class name is the only mandatory information Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

21 Actor vs Class vs Object Actor An entity outside the system to be modeled, interacting with the system ( Passenger ) Class An abstraction modeling an entity in the application or solution domain The class is part of the system model ( User, Ticket distributor, Server ) Object A specific instance of a class ( Joe, the passenger who is purchasing a ticket from the ticket distributor ). Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

22 Instances tarif2006:tarifschedule zone2price = { { 1, 0.20}, { 2, 0.40}, { 3, 0.60}} :TarifSchedule zone2price = { { 1, 0.20}, { 2, 0.40}, { 3, 0.60}} An instance represents a phenomenon The attributes are represented with their values The name of an instance is underlined The name can contain only the class name of the instance (anonymous instance) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

23 Associations TarifSchedule Enumeration getzones() Price getprice(zone) * * TripLeg Price Zone Associations denote relationships between classes The multiplicity of an association end denotes how many objects the instance of a class can legitimately reference. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

24 1-to-1 and 1-to-many Associations Country 1 1 City name:string name:string 1-to-1 association Polygon draw() * Point x: Integer y: Integer 1-to-many association Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

25 Many-to-many Associations StockExchange * Lists * Company tickersymbol A stock exchange lists many companies. Each company is identified by a ticker symbol Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

26 From Problem Statement To Object Model Problem Statement: A stock exchange lists many companies. Each company is uniquely identified by a ticker symbol Class Diagram: StockExchange * Lists * Company tickersymbol Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

27 From Problem Statement to Code Problem Statement : A stock exchange lists many companies. Each company is identified by a ticker symbol Class Diagram: StockExchange * Lists * Company tickersymbol Java Code public class StockExchange { private Vector m_company = new Vector(); }; public class Company { private int m_tickersymbol; private Vector m_stockexchange = new Vector(); }; Associations are mapped to Attributes! Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

28 Qualifiers Without qualification Directory 1 * File filename With qualification Directory filename File Qualifiers can be used to reduce the multiplicity of an association Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

29 Qualification: Another Example Company StockExchange * Lists * tickersymbol StockExchange * tickersymbol Lists 1 * Company Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

30 Aggregation An aggregation is a special case of association denoting a consists-of hierarchy The aggregate is the parent class, the components are the children classes Exhaust system Muffler diameter Tailpipe diameter A solid diamond denotes composition: A strong form of aggregation where the life time of the component instances is controlled by the aggregate. That is, the parts don t exist on their won ( the whole controls/destroys the parts ) TicketMachine 3 ZoneButton Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

31 Inheritance Button CancelButton ZoneButton Inheritance is another special case of an association denoting a kind-of hierarchy Inheritance simplifies the analysis model by introducing a taxonomy The children classes inherit the attributes and operations of the parent class. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

32 Association class Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

33 Ternary associations Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

34 Packages Packages help you to organize UML models to increase their readability We can use the UML package mechanism to organize classes into subsystems Account Bank Customer Any complex system can be decomposed into subsystems, where each subsystem is modeled as a package. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

35 Object Modeling in Practice Foo Amount CustomerId Deposit() Withdraw() GetBalance() Class Identification: Name of Class, Attributes and Methods Is Foo the right name? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

36 Object Modeling in Practice: Brainstorming Dada Amount CustomerId Deposit() Withdraw() GetBalance() Foo Amount CustomerId Deposit() Withdraw() GetBalance() Account Amount CustomerId Is Foo the right name? Deposit() Withdraw() GetBalance() Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

37 Object Modeling in Practice: More classes Account Bank Name Amount CustomerId AccountId Deposit() Withdraw() GetBalance() Customer Name CustomerId 1) Find New Classes 2) Review Names, Attributes and Methods Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37

38 Object Modeling in Practice: Associations Account Bank Name? has * Amount CustomerId AccountId AccountId Deposit() Withdraw() GetBalance() * owns 2 Customer Name CustomerId 1) Find New Classes 2) Review Names, Attributes and Methods 3) Find Associations between Classes 4) Label the generic assocations 5) Determine the multiplicity of the assocations 6) Review associations Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

39 Practice Object Modeling: Find Taxonomies Bank Name * Account Amount CustomerId AccountId AccountId * Has Customer Name Deposit() Withdraw() GetBalance() CustomerId() Savings Account Checking Account Mortgage Account Withdraw() Withdraw() Withdraw() Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

40 Practice Object Modeling: Simplify, Organize Account Amount CustomerId AccountId AccountId Deposit() Withdraw() GetBalance() Show Taxonomies separately Savings Account Checking Account Mortgage Account Withdraw() Withdraw() Withdraw() Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

41 Practice Object Modeling: Simplify, Organize Bank Name * Account Amount CustomerId AccountId AccountId * Has Customer Name Deposit() Withdraw() GetBalance() CustomerId() Use the 7+-2 heuristics or better 5+-2! Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

42 UML Sequence Diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

43 UML first pass: Sequence diagram Actor Message Object Lifeline :WatchUser pressbutton1() pressbutton1() pressbutton2() Activation :Watch blinkhours() blinkminutes() :LCDDisplay incrementminutes() pressbutton1and2() commitnewtime() stopblinking() refresh() :Time Sequence diagrams represent the behavior of a system as messages ( interactions ) between different objects Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43

44 Sequence Diagrams Focus on Controlflow Passenger selectzone() insertcoins() pickupchange() pickupticket() TicketMachine Used during analysis To refine use case descriptions to find additional objects ( participating objects ) Used during system design TicketMachine to refine subsystem interfaces zone2price Instances are represented Messages -> by selectzone() rectangles. Actors Operations by sticky on insertcoins() figures participating Object pickupchange() Lifelines are represented by pickupticket() dashed lines Messages are represented by arrows Activations are represented by narrow rectangles. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44

45 Scenarios, use case and sequence diagrams A scenario is an instance of a use case describing a concrete set of actions (no alternative paths are in it) A use case is an abstraction that describes all possible scenarios involving the described functionality. Scenarios are used as examples for illustrating common cases; their focus is on understandability. Use cases are used to describe all possible cases; their focus is on completeness. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 45

46 How to describe scenarios We describe a scenario using a template with three fields: The name of the scenario enables us to refer to it unambiguously. The name of a scenario is underlined to indicate that it is an instance. The participating actor instances field indicates which actor instances are involved in this scenario. Actor instances also have underlined names. The flow of events of a scenario describes the sequence of events step by step. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46

47 Scenario: an example Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47

48 Sequence Diagrams can also model the Flow of Data Passenger ZoneButton TarifSchedule Display selectzone() lookupprice(selection) price Dataflow displayprice(price) continued on next slide... The source of an arrow indicates the activation which sent the message Horizontal dashed arrows indicate data flow, for example return results from a message Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48

49 Sequence Diagrams: Iteration & Condition continued from previous slide... ChangeProcessor CoinIdentifier Display CoinDrop Passenger * insertchange(coin) lookupcoin(coin) Iteration price displayprice(owedamount) Condition [owedamount<0] returnchange(-owedamount) continued on next slide... Iteration is denoted by a * preceding the message name Condition is denoted by boolean expression in [ ] before the message name Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 49

50 Creation and destruction continued from previous slide... Passenger ChangeProcessor Creation of Ticket createticket(selection) print() Ticket free() Destruction of Ticket Creation is denoted by a message arrow pointing to the object Destruction is denoted by an X mark at the end of the destruction activation In garbage collection environments, destruction can be used to denote the end of the useful life of an object. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50

51 Message Types Asynchronous Synchronous Call and Object creation Reply Lost Found Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51

52 Sequence Diagram Properties UML sequence diagram represent behavior in terms of interactions Useful to identify or find missing objects Time consuming to build, but worth the investment Complement the class diagrams (which represent structure). Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 52

53 Interaction Diagrams Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53

54 Interaction Diagrams UML 2.0: New concept of interaction fragments Before we go into detail with interaction fragments, let s cover the concept of an interaction. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 54

55 Interaction Diagrams Four types of interaction diagrams: Sequence diagrams We will not study the following (by now at least): Communication diagrams Interaction overview diagrams Timing diagrams The basic building block of an interaction diagram is the interaction An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 55

56 Example of an Interaction: Sequence Diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 56

57 Interaction Fragment Interaction Fragment Is a piece of an interaction Acts like an interaction itself Combined Fragment Is a subtype of interaction fragment defines an expression of interaction fragments An expression of interaction fragments is defined by an interaction operator and interaction operands. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 57

58 Example of a Combined Fragment using the alt operator The interaction operator alt indicates a choice of behavior between interaction fragments Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 58

59 Alt Operator The interaction operator alt indicates a choice of behavior between interaction fragments At most one interaction fragment (that is, an InteractionOperand) is chosen The chosen interaction fragment must have an explicit or implicit guard expression that evaluates to true at this point in the interaction A guard can be a boolean expression (called InteractionConstraint) else (a reserved word) If the fragment has no guard expression, true is implied. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 59

60 Interaction Operators The following operators are allowed in the combination of interaction fragments: alt opt par loop critical neg assert strict seq Ignore consider Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 60

61 Opt and Break Operators option: The interaction operator opt designates a choice of behavior where either the (sole) operand happens or nothing happens. break: The interaction operator break represents a breaking scenario: The operand is a scenario that is performed instead of the remainder of the enclosing interaction fragment. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 61

62 Parallel and Critical Operator par The interaction operator par designates a parallel merge between the behaviors of the operands of a combined fragment. critical The interaction operator critical designates that the combined fragment represents a critical region. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 62

63 Example of a Critical Region Problem statement: The telephone Operator must make sure to forward a 911-call from a Caller to the Emergency system before doing anything else. Normal calls can be freely interleaved. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 63

64 UML Statechart Diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 64

65 State diagrams and states State diagrams are used to give an abstract description of the behaviour of a system. This behaviour is analysed and represented as a series of events that can occur in one or more possible states. A state represents a step in the behaviour pattern of an object It is a configuration of the set of state-attributes of the behaving object Transition from one state to another is triggered by events An event may be either internal or external to the object Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 65

66 UML first pass: Statechart diagrams Event button1&2pressed Transition Blink Hours Initial state button2pressed button1pressed displayrefreshed Increment Hours Wrong state, It s an action!! State button1&2pressed Blink Minutes button2pressed displayrefreshed Increment Minutes button1pressed Stop Blinking Blink Seconds Final state button2pressed displayrefreshed Increment Seconds Represent behavior of a single object with interesting dynamic behavior. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 66

67 Transition notation: event [guard][/action] Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 67

68 Statechart for the Incident class Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 68

69 State machine diagram for 2Bwatch Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 69

70 Internal transitions in 2BWatch statechart Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 70

71 Review: UML Statechart Diagram Notation Event with parameters attr Action Name of State State1 do/activity entry /action exit/action Event Event(attr) [condition]/action Guard condition State2 Note: Events are italics Conditions are enclosed with brackets: [] Actions are prefixed with a slash / Actions and Activities in State Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 71

72 Example of Concurrency within an Object Nested states Splitting control Synchronization Emitting do/dispense Cash Cash taken Setting Up Ready Ready to reset do/eject Card Card taken Nested diagrams: a portion of behavior is specified by a statechart within an higher level state Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 72

73 State diagram Exit??? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 73

74 UML Activity Diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 74

75 UML Activity Diagrams An activity diagram consists of nodes and edges Nodes describe activities and objects Control nodes Executable nodes Most prominent: Action Object nodes E.g. a document Edge is a directed connection between nodes There are two types of edges Control flow edges Object flow edges Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 75

76 Activity diagrams In activity diagrams transitions from node to node happen automatically upon completion of activities Transitions do not depend upon the arrival of events as it happens in statecharts Activity diagrams represent the UML notation for the well known flowchart Each node in a flowchart represents an action to be executed. So it is not a state, but when applied to the program's state, it results in a transition to another state. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 76

77 State vs Activity diagram action1 E2[test=1]/action2 E2[test=0]/action4 action2 test=1 test=0 action4 s4 action3 Statechart Activity diagram (flowchart) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 77

78 Activity Diagrams: Grouping of Activities Activities may be grouped into swimlanes to denote the object or subsystem that implements the activities. Allocate Resources Dispatcher Open Incident Coordinate Resources Archive Incident Document Incident FieldOfficer Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 78

79 Activity diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 79

80 State Chart Diagrams vs Activity Diagrams An activity diagram that contains only activities can be seen as a special case of a state chart diagram Such an activity diagram is useful to describe the overall workflow of a system Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 80

81 Statechart Diagram vs Activity Diagram Statechart Diagram for Incident Focus on the set of attributes of a single abstraction (object, system) Event causes state transition Active Inactive Closed Archived Incident- Incident- Incident- Handled Documented Archived Activity Diagram for Incident (Focus on actions performed and dataflow in a system) Completion of activity causes state transition Triggerless transition Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 81

82 Example: Structure of the Text Book Problem Statement Object Node Requirements elicitation ( Ch.4) An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state nonfunctional requirements functional model use case diagram Analysis (Ch.5) class diagram System design ( Ch.6 & 7 ) analysis object model dynamic model statechart diagram sequence diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 82

83 Example: Structure of the Text Book (2) System design (Ch. 6 & 7) subsystem decomposition design goals Object design (Ch. 8 & 9) class diagram object design model source code Implementation (Ch. 10) Test (Ch. 11) deliverable system Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 83

84 Summary: Activity Diagram Example Initial node [order rejected] Decision node Fork node Join node Merge node Receive Order Control flow edge Fill Order [order accepted] Ship Order Close Order Send Invoice Make Payment Accept Payment Final node Object node Invoice Object flow edge Action Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 84

85 Object flow (Details on new notation) Recent versions of UML adopt a solid line for object flow An alternative notation includes OutputPins/ InputPins (they represent the objects delivered as output or consumed as input by activities) OutputPin InputPin Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 85

86 Additional References OMG Unified Modeling Language (OMG UML) Version Martin Fowler UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd ed., Addison-Wesley, 2003 Grady Booch,James Rumbaugh,Ivar Jacobson The Unified Modeling Language User Guide, Addison Wesley Open Source UML tools Astah Community: Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 86

87 UML Summary UML provides a wide variety of notations for representing many aspects of software development Powerful, but complex UML is a programming language Can be misused to generate unreadable models Can be misunderstood when using too many exotic features We concentrated on a few notations: Functional model: Use case diagram Object model: class diagram Dynamic model: sequence diagrams, statechart and activity diagrams. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 87

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on ü Use case diagrams ü Class diagrams ü

More information

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on ü Use case diagrams ü Class diagrams ü

More information

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on Use case diagrams Class diagrams Sequence

More information

Chapter 2, lecture 2 Modeling with UML

Chapter 2, lecture 2 Modeling with UML Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, lecture 2 Modeling with UML Overview: More detail on modeling with UML Use case diagrams Class diagrams Sequence diagrams Activity

More information

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML MSc programme (induction week) Department of Informatics INTRODUCTION TO UML Some of this material is based on Bernd Bruegge and Allen H. Dutoit (2009) Object-Oriented Software Engineering: Using UML,

More information

Chapter 2, Modeling with UML

Chapter 2, Modeling with UML Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML Overview: modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Sequence diagrams

More information

Chapter 2, Modeling with UML

Chapter 2, Modeling with UML Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML Overview: modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Next lecture

More information

Chapter 2, Modeling with UML

Chapter 2, Modeling with UML Chapter 2, Modeling with UML Using UML, Patterns, and Java Object-Oriented Software Engineering Overview: Modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Next lecture

More information

Design Patterns. Design Patterns

Design Patterns. Design Patterns Design Patterns As software engineers, we commonly have to make decisions about how to create complex objects, how to encapsulate some actions, how to allow for the undoing of certain operations, etc.

More information

Course "Softwaretechnik Modeling with UML Stephan Salinger

Course Softwaretechnik Modeling with UML Stephan Salinger Course "Softwaretechnik Modeling with UML Stephan Salinger (Foliensatz/Inhalt: Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit) Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/

More information

Software Engineering

Software Engineering Software Engineering Object-Oriented Analysis and Design and Modeling with UML Assoc. Prof. Marenglen Biba MSc in Computer Science, UoG-UNYT Foundation Programme 3-1 Material Get the material from http://www.marenglenbiba.net/foundprog/

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik Modeling, models and UML Static view: Class diagrams

More information

Recap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development.

Recap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development. L5-1 Recap : UML artefacts Actors Use Cases Use Case Diagrams Storyboards Black Box Requirements System Validation Test Cases System Test Functional Specification System Development Notes Details Signatures

More information

Object Relationships UML Class diagrams. Software Requirements and Design CITS 4401 Lecture 4

Object Relationships UML Class diagrams. Software Requirements and Design CITS 4401 Lecture 4 Object Relationships UML Class diagrams Software Requirements and Design CITS 440 Lecture 4 UML Class Diagrams Describe the static structure of the system classes, class attributes, associations between

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Modeling,

More information

2. Modeling with UML

2. Modeling with UML 2. Modeling with UML Outline! History of Object Oriented Method! More Object Oriented Concepts! Modeling Concepts! An Overview of UML! UML Diagrams! Case Study 1. History of Object Oriented Method Software

More information

Modern methods in Software Engineering UML.

Modern methods in Software Engineering UML. Modern methods in Software Engineering UML www.imit.kth.se/courses/2g1522 Introduction Content Software modeling (concepts and phenomena) OO modeling UML Use case Diagrams Organizational diagrams Class

More information

Chapter 2, lecture 1, Modeling with UML

Chapter 2, lecture 1, Modeling with UML Chapter 2, lecture 1, Modeling with UML Using UML, Patterns, and Java Object-Oriented Software Engineering Overview: modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Sequence

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) 1 / 45 Unified Modeling Language (UML) Miaoqing Huang University of Arkansas 2 / 45 Outline 1 Introduction 2 Use Case Diagram 3 Class Diagram 4 Sequence Diagram 3 / 45 Outline 1 Introduction 2 Use Case

More information

Chapter 2, Modeling with UML: UML 2 Hightlights

Chapter 2, Modeling with UML: UML 2 Hightlights Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML: UML 2 Hightlights Outline for this class ü Overview of important changes in UML 2 Ø Deployment diagrams

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park Overview Unified Modeling Language (UML) Models & views Class diagrams Sequence

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 5, Analysis: Dynamic Modeling ü Requirements Elicitation (Ch.4) ü Introduction (Ch 1-3) OOSE- Galaxy ü Nonfunctional Requirements

More information

Overview of the OOA Process...

Overview of the OOA Process... Object-Oriented Analysis and Modeling Object-oriented analysis (OOA) What are the relevant objects? How do they relate to one another? How do we specify/model a problem so that we can create an effective

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling An overview of OOSE development activities and their products Problem Statement Requirements Elicitation

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Page 1. Dynamic Modeling. How do you find classes? Dynamic Modeling with UML. UML Interaction Diagrams. UML State Chart Diagram.

Page 1. Dynamic Modeling. How do you find classes? Dynamic Modeling with UML. UML Interaction Diagrams. UML State Chart Diagram. Dynamic Modeling How do you find classes? We have already established several sources for class identification: Application domain analysis: We find classes by talking to the client and identify abstractions

More information

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Software technology Szoftvertechnológia Dr. Balázs Simon BME, IIT Outline UML Diagrams: Sequence Diagram Communication Diagram Interaction Overview Diagram Dr. Balázs Simon, BME,

More information

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions

More information

CS 370 REVIEW: UML Diagrams D R. M I C H A E L J. R E A L E F A L L

CS 370 REVIEW: UML Diagrams D R. M I C H A E L J. R E A L E F A L L CS 370 REVIEW: UML Diagrams D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction UML Unified Modeling Language Very well recognized specification for modeling architectures, use cases, etc. UML

More information

Lecture 16+17: Modeling with UML

Lecture 16+17: Modeling with UML Chair of Software Engineering Software Engineering Spring Semester 2008 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 16+17: Modeling with UML What is modeling? Building an abstraction

More information

A Rapid Overview of UML

A Rapid Overview of UML A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system

More information

Lecture 15: Modeling with UML

Lecture 15: Modeling with UML Chair of Software Engineering What is modeling? Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 15: Modeling with

More information

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch Class diagrams Modeling with UML Chapter 2, part 2 CS 4354 Summer II 2014 Jill Seaman Used to describe the internal structure of the system. Also used to describe the application domain. They describe

More information

Meltem Özturan

Meltem Özturan Meltem Özturan www.mis.boun.edu.tr/ozturan/samd 1 2 Modeling System Requirements Object Oriented Approach to Requirements OOA considers an IS as a set of objects that work together to carry out the function.

More information

Chapter 5, Analysis: Object Modeling

Chapter 5, Analysis: Object Modeling Chapter 5, Analysis: Object Modeling Résumé Maintenant: Modélisation des objets du domaine La partie statique (diagramme de classe) Les activités durant la modélisation des objets L identification des

More information

Engineering Design w/embedded Systems

Engineering Design w/embedded Systems 1 / 40 Engineering Design w/embedded Systems Lecture 33 UML Patrick Lam University of Waterloo April 4, 2013 2 / 40 What is UML? Unified Modelling Language (UML): specify and document architecture of large

More information

Interactions A link message

Interactions A link message Interactions An interaction is a behavior that is composed of a set of messages exchanged among a set of objects within a context to accomplish a purpose. A message specifies the communication between

More information

The learning objectives of this chapter are the followings. At the end of this chapter, you shall

The learning objectives of this chapter are the followings. At the end of this chapter, you shall Chapter 5 Sequence diagrams In the previous chapters, we have seen different diagrams. Use case diagrams describe tasks that a system is supposed to perform. It gives high-level information about how a

More information

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch Class diagrams Modeling with UML Chapter 2, part 2 CS 4354 Summer II 2015 Jill Seaman Used to describe the internal structure of the system. Also used to describe the application domain. They describe

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering Slide 16.1 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 16 Slide 16.2 MORE ON UML 1 Chapter Overview Slide

More information

What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships

What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships Class Diagram What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships Why do we need Class Diagram? Focus on the conceptual and specification

More information

What is a Class Diagram? Class Diagram. Why do we need Class Diagram? Class - Notation. Class - Semantic 04/11/51

What is a Class Diagram? Class Diagram. Why do we need Class Diagram? Class - Notation. Class - Semantic 04/11/51 What is a Class Diagram? Class Diagram A diagram that shows a set of classes, interfaces, and collaborations and their relationships Why do we need Class Diagram? Focus on the conceptual and specification

More information

Object-Interaction Diagrams: Sequence Diagrams UML

Object-Interaction Diagrams: Sequence Diagrams UML Object-Interaction Diagrams: Sequence Diagrams UML Communication and Time In communication diagrams, ordering of messages is achieved by labelling them with sequence numbers This does not make temporal

More information

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science Lesson 11 INTRODUCING UML W.C.Udwela Department of Mathematics & Computer Science Why we model? Central part of all the activities We build model to Communicate Visualize and control Better understand

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 09/29/2015 http://cs.gsu.edu/~ncasturi1 Class Announcements Grading is done for the Deliverable #2 (Requirement Elicitation)

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 5, Analysis: Dynamic Modeling ü Requirements Elicitation (Ch.4) ü Introduction (Ch 1-3) OOSE- Galaxy ü Nonfunctional Requirements

More information

UML (Unified Modeling Language)

UML (Unified Modeling Language) UML (Unified Modeling Language) UML Outline Software Institute of Nanjing University 2009 Instructor 刘嘉 (Liu Jia) Email : liujia@software.nju.edu.cn ext : 509 Office : 705 2 References [1] The Unified

More information

Chapter 4 Requirements Elicitation

Chapter 4 Requirements Elicitation Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 4 Requirements Elicitation Outline Today: Motivation: Software Lifecycle Requirements elicitation challenges Problem statement

More information

Chapter 5, Object Modeling

Chapter 5, Object Modeling Chapter 5, Object Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Where we are, where we are going problem statement Requirements elicitation Requirements Specification nonfunctional

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Chapter 5, Analysis: Dynamic Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Dynamic Modeling with UML Diagrams for dynamic modeling Interaction diagrams describe the dynamic

More information

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram Modeling with UML A language or notation intended for analyzing, describing and documenting all aspects of the object-oriented software system. UML uses graphical notations to express the design of software

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : , Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,

More information

System Modeling III: Dynamic Modeling

System Modeling III: Dynamic Modeling System Modeling III: Dynamic Modeling Introduction into Software Engineering Lecture 7 9 May 2007 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Reverse Engineering Challenge

More information

Practical UML - A Hands-On Introduction for Developers

Practical UML - A Hands-On Introduction for Developers Practical UML - A Hands-On Introduction for Developers By: Randy Miller (http://gp.codegear.com/authors/edit/661.aspx) Abstract: This tutorial provides a quick introduction to the Unified Modeling Language

More information

CS 451 Software Engineering

CS 451 Software Engineering CS 451 Software Engineering Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Elaboration 2 Elaboration: Building the Analysis Model An analysis model provides a description

More information

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) Subject Code: 17630 Model Answer Page No: 1 /32 Important Instructions to examiners: 1) The answers should be examined by keywords and not as word-to-word as given in the model answer scheme. 2) The model

More information

Object Design II: Design Patterns

Object Design II: Design Patterns Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game

More information

Use Case Modeling. Bernd Bruegge Carnegie Mellon University School of Computer Science. 8 September Bernd Brügge Software Engineering 1

Use Case Modeling. Bernd Bruegge Carnegie Mellon University School of Computer Science. 8 September Bernd Brügge Software Engineering 1 15-413 Use Case Modeling 2 Bernd Bruegge Carnegie Mellon University School of Computer Science 8 September 1998 Bernd Brügge Software Engineering 1 Outline of Today s Class Use Case Model Actors Use cases

More information

UNIT-4 Behavioral Diagrams

UNIT-4 Behavioral Diagrams UNIT-4 Behavioral Diagrams P. P. Mahale Behavioral Diagrams Use Case Diagram high-level behaviors of the system, user goals, external entities: actors Sequence Diagram focus on time ordering of messages

More information

CSE 308. UML Overview Use Case Diagrams. Reference. en.wikipedia.org/wiki/class_diagram. Robert Kelly, B. Bruegge,

CSE 308. UML Overview Use Case Diagrams. Reference. en.wikipedia.org/wiki/class_diagram. Robert Kelly, B. Bruegge, CSE 308 UML Overview Use Case Diagrams Class diagrams Reference en.wikipedia.org/wiki/class_diagram 2 1 What is Modeling? Modeling consists of building an abstraction of reality Abstractions are simplifications

More information

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lecture 33 April 4, 2013 Patrick Lam version 1 Unied Modelling Language The Unied Modelling Language (UML) is a language for specifying and

More information

Object Interaction Sequence Diagrams

Object Interaction Sequence Diagrams Object Interaction Sequence Diagrams Based on Chapter 9 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using UML 4 th Edition, McGraw Hill, 2010 2010 Bennett, McRobb and Farmer

More information

Interaction Modelling: Sequence Diagrams

Interaction Modelling: Sequence Diagrams Interaction Modelling: Sequence Diagrams Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Interaction Modelling

More information

Interaction Modelling: Use Cases

Interaction Modelling: Use Cases Interaction Modelling: Use Cases Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Interaction Modelling: INPUT 1

More information

Week 9 Implementation

Week 9 Implementation Week 9 Implementation Dr. Eliane l. Bodanese What is more important From a software engineering perspective: Good Gui? does what customer wants maintainable, extensible, reusable Commented Code? how is

More information

Introduction to Software Engineering. 6. Modeling Behaviour

Introduction to Software Engineering. 6. Modeling Behaviour Introduction to Software Engineering 6. Modeling Behaviour Roadmap > Use Case Diagrams > Sequence Diagrams > Collaboration (Communication) Diagrams > Activity Diagrams > Statechart Diagrams Nested statecharts

More information

Practical UML : A Hands-On Introduction for Developers

Practical UML : A Hands-On Introduction for Developers Borland.com Borland Developer Network Borland Support Center Borland University Worldwide Sites Login My Account Help Search Practical UML : A Hands-On Introduction for Developers - by Randy Miller Rating:

More information

Class modelling (part 2)

Class modelling (part 2) Class modelling (part 2) Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Qualified Associations What is the meaning

More information

Object Oriented Modeling

Object Oriented Modeling Overview UML Unified Modeling Language What is Modeling? What is UML? A brief history of UML Understanding the basics of UML UML diagrams UML Modeling tools 2 Modeling Object Oriented Modeling Describing

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 10: Analysis Packages 1 Analysis Workflow: Packages The analysis workflow consists of the following activities: Architectural analysis Analyze a use

More information

Class modelling (part 2)

Class modelling (part 2) Class modelling (part 2) Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Qualified Associations What is the meaning

More information

Object-Oriented Modeling. Sequence Diagram. Slides accompanying Version 1.0

Object-Oriented Modeling. Sequence Diagram. Slides accompanying Version 1.0 Object-Oriented Modeling Sequence Diagram Slides accompanying UML@Classroom Version 1.0 Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 2 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents What are software requirements? Requirements Engineering Process Domain

More information

Course "Softwaretechnik" Book Chapter 5 Analysis: Dynamic Modeling

Course Softwaretechnik Book Chapter 5 Analysis: Dynamic Modeling Course "Softwaretechnik" Book Chapter 5 Analysis: Dynamic Modeling Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/

More information

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification Object Oriented Design Part 2 Analysis Design Implementation Program Design Analysis Phase Functional Specification Completely defines tasks to be solved Free from internal contradictions Readable both

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Unified Modeling Language (UML) Department of Computer Science University of Maryland, College Park UML (Unified Modeling Language) UML is a modeling language for

More information

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling

More information

UML Primer. -Elango Sundaram

UML Primer. -Elango Sundaram UML Primer -Elango Sundaram About UML UML Can be thought of as a blue print for Software Graphical notation for expressing underlying OOA&D ideas Can be used to design any type of application, hardware,

More information

Business Process Modeling. Version /10/2017

Business Process Modeling. Version /10/2017 Business Process Modeling Version 1.2.1-16/10/2017 Maurizio Morisio, Marco Torchiano, 2012-2017 3 BP Aspects Process flow Process modeling UML Activity Diagrams BPMN Information Conceptual modeling UML

More information

Question Sheet There are a number of criticisms to UML. List a number of these criticisms.

Question Sheet There are a number of criticisms to UML. List a number of these criticisms. Question Sheet 1 Name: ID: These questions do not have a formal, definitive answer. They are meant to be food for thoughts. Feel free to seek answers on browsing the Internet, talking to other software

More information

Chapter 7, System Design: Addressing Design Goals

Chapter 7, System Design: Addressing Design Goals Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 7, System Design: Addressing Design Goals Overview System Design I ü 0. Overview of System Design ü 1. Design Goals ü 2. Subsystem

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation Progress Report Object-Oriented Software Development: Requirements elicitation and analysis CS 4354 Fall 2012 Jill Seaman So far we have learned about the tools used in object-oriented design and implementation

More information

Activity Diagram Written Date : September 02, 2016

Activity Diagram Written Date : September 02, 2016 Written Date : September 02, 2016 s describe how activities are coordinated to provide a service which can be at different levels of abstraction. Typically, an event needs to be achieved by some operation,

More information

Stateflow Best Practices By Michael Burke

Stateflow Best Practices By Michael Burke Stateflow Best Practices By Michael Burke 2012 The MathWorks, Inc. 1 Topics Background Overview of terms Readability Stateflow hierarchy Modeling tips Basic rules: MAAB style guide 2 Background Objective

More information

SEEM4570 System Design and Implementation Lecture 11 UML

SEEM4570 System Design and Implementation Lecture 11 UML SEEM4570 System Design and Implementation Lecture 11 UML Introduction In the previous lecture, we talked about software development life cycle in a conceptual level E.g. we need to write documents, diagrams,

More information

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis. SOFTWARE ENGINEERING UML FUNDAMENTALS Saulius Ragaišis saulius.ragaisis@mif.vu.lt Information source Slides are prepared on the basis of Bernd Oestereich, Developing Software with UML: Object- Oriented

More information

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams Today s Topic Lecture 5 Introduction to UML What is UML Why use UML? UML Static Use case, Class, Object Deployment, Component (Physical ) Dynamic Sequence, Collaboration (Interaction ) Activity, State

More information

Advanced Interaction

Advanced Interaction 8 Advanced nteraction Modeling The interaction model has several advanced features that can be helpful. You can skip this chapter on a first reading of the book. 8.1 Use Case Relationships ndependent use

More information

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation

More information

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester Lab Manual Object Oriented Analysis And Design TE(Computer) VI semester Index Sr. No. Title of Programming Assignment Page No. 1 2 3 4 5 6 7 8 9 10 Study of Use Case Diagram Study of Activity Diagram Study

More information

16.1 Introduction... 2

16.1 Introduction... 2 Department of Computer Science Tackling Design Patterns Chapter 16: UML Activity Diagrams Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 16.1 Introduction.................................

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/03/2015 http://cs.gsu.edu/~ncasturi1 Object Design Software Engineering -CSC4350/6350 - Rao Casturi 2 Object Design Close

More information

OBJECT ORIENTED MODELLING & DESIGN 1

OBJECT ORIENTED MODELLING & DESIGN 1 OBJECT ORIENTED MODELLING & DESIGN 1 Contents 1. OBJECT ORIENTED CONCEPTS... 6 OBJECT... 6 CLASS... 6 CLASS vs OBJECT... 6 WHAT IS OBJECT ORIENTED?... 6 OBJECT ORIENTED METHODOLOGY... 7 ADVANTAGES OF OBJECT

More information

The Unified Modeling Language (UML)

The Unified Modeling Language (UML) The Unified Modeling Language (UML) A Very Distilled Introduction to The Unified Modeling Language (UML). A quick introduction to UML is given. Thereafter, the surface of class and activity diagrams and

More information

Modeling with UML eerin gin n are E oftw S ted rien ject-o b O

Modeling with UML eerin gin n are E oftw S ted rien ject-o b O Object-Oriented Software Engineering Modeling with UML What is modeling? Modeling consists of building an abstraction of reality. Abstractions are simplifications because: They ignore irrelevant details

More information

From Analysis to Design. LTOOD/OOAD Verified Software Systems

From Analysis to Design. LTOOD/OOAD Verified Software Systems From Analysis to Design 1 Use Cases: Notation Overview Actor Use case System X System boundary UCBase «extend» UCExt Actor A UCVar1 UCVar2 Extending case Generalization «include» Actor B UCIncl Included

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information