Chapter 2, Modeling with UML

Size: px
Start display at page:

Download "Chapter 2, Modeling with UML"

Transcription

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

2 Overview: Modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Next lecture Sequence diagrams Activity diagrams Then Apply UML to Appalcart Project Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

3 What is modeling? Modeling consists of building an abstraction of reality. Abstractions are simplifications because: They ignore irrelevant details and They only represent the relevant details. What is relevant or irrelevant depends on the purpose of the model. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

4 Example: Appalcart route Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

5 Why model software? Software is getting increasingly more complex Windows XP > 40 million lines of code A single programmer cannot manage this amount of code in its entirety. Code is not easily understandable by developers who did not write it We need simpler representations for complex systems Modeling is a mean for dealing with complexity Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

6 Systems, Models and Views A model is an abstraction describing a subset of a system A view depicts selected aspects of a model A notation is a set of graphical or textual rules for depicting views Views and models of a single system may overlap each other Examples: System: Aircraft Models: Flight simulator, scale model Views: All blueprints, electrical wiring, fuel system Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

7 Systems, Models and Views Aircraft System Blueprints Model 1 View 1 Flightsimulator Model 2 View 2 View 3 Scale Model Electrical Wiring Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

8 Models, Views and Systems (UML) System * Model * View Described by Depicted by Airplane: Syste m Scale Model: Model Flight Simulator: Model Blueprints: View Fuel System: View Electrical Wiring: View Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

9 Concepts and Phenomena Phenomenon An object in the world of a domain as you perceive it Example: The lecture you are attending Example: My watch with a heart-rate monitor Concept Describes the properties of phenomena that are common. Example: Lectures on software engineering Example: All watches with a heart-rate monitor Concept is a 3-tuple: Name (To distinguish it from other concepts) Purpose (Properties that determine if a phenomenon is a member of a concept) Members (The set of phenomena which are part of the concept) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

10 Concepts and phenomena Name Purpose Members Clock A device that measures time. Abstraction Classification of phenomena into concepts Modeling Development of abstractions to answer specific questions about a set of phenomena while ignoring irrelevant details. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

11 Concepts in software: Type and Instance Type: An abstraction in the context of programming languages Name: int, Purpose: integral number, Members: 0, -1, 1, 2, -2,... Instance: Member of a specific type The type of a variable represents all possible instances the variable can take The following relationships are similar: type < > instance concept < > phenomenon Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

12 Abstract Data Types & Classes Abstract data type Special type whose implementation is hidden from the rest of the system. Class: An abstraction in the context of objectoriented languages Like an abstract data type, a class encapsulates both state (variables) and behavior (methods) Class ArrayList Unlike abstract data types, classes can be defined in terms of other classes using inheritance time date Watch SetDate(d) CalculatorWatch calculatorstate EnterCalcMode() InputNumber(n) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

13 Application and Solution Domain Application Domain (Requirements Analysis): The environment in which the system is operating Solution Domain (System Design, Object Design): The available technologies to build the system Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

14 What is UML? UML (Unified Modeling Language) An emerging standard for modeling object-oriented software. Resulted from the convergence of notations from three leading object-oriented methods: OMT (James Rumbaugh) OOSE (Ivar Jacobson) Booch (Grady Booch) Reference: The Unified Modeling Language User Guide, Addison Wesley, Supported by several CASE tools Rational ROSE TogetherJ Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

15 UML: First Pass You can model 80% of most problems by using about 20 % UML We teach you those 20% Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

16 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 actors and the system and between objects of the system Statechart diagrams Describe the dynamic behavior of an individual object (essentially a finite state automaton) Activity diagrams Model the dynamic behavior of a system, in particular the workflow (essentially a flowchart) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

17 UML first pass: Use case diagrams Package Watch Use case Actor ReadTim e WatchUser SetTime W atchrepairperson ChangeBattery Use case diagrams represent the functionality of the system from user s point of view 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 Watch PushButton state push() release() 1 LCDDisplay blinkidx blinkseconds() blinkminutes() blinkhours() stopblinking() referesh() 2 Battery load 1 Ti me now Attribute Operations Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

19 UML first pass: Sequence diagram Actor Object :WatchUser :Watch :LCD Display :Time pressbutton1() blinkhours() Message pressbutton1() pressbutton2() blink Minutes() incrementminutes() refresh() pressbuttons1and2() co m mitnewtime() stopblinking() Activation Lifeline Sequence diagrams represent the behavior as interactions Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

20 UML first pass: Statechart diagrams for objects with interesting dynamic behavior Event Initial state State [button1&2pressed] BlinkHours [button2pressed] IncrementHrs Transition [button1pressed] [button1&2pressed] BlinkMinutes [button2pressed] IncrementMin. [button1pressed] [button1&2pressed] [button2pressed] BlinkSeconds IncrementSec. StopBlinking Final state Represent behavior as states and transitions Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

21 Other UML Notations UML provide other notations that we will be introduced in subsequent lectures, as needed. Implementation diagrams Component diagrams Deployment diagrams Introduced in lecture on System Design Object constraint language Introduced in lecture on Object Design Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

22 UML Core Conventions Rectangles are classes or instances Ovals are functions or use cases Instances are denoted with an underlined names m y W a tch:sim plew atch Joe:Firefighter Types are denoted with non underlined names Simple Watch Firefighter Diagrams are graphs Nodes are entities Arcs are relationships between entities Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

23 Use Case Diagrams Used during requirements elicitation to represent external behavior Passenger PurchaseTicket Actors represent roles, that is, a type of user of the system Use cases represent a sequence of interaction for a type of functionality The use case model is the set of all use cases. It is a complete description of the functionality of the system and its environment Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

24 Actors Passenger An actor models an external entity which communicates with the system: User External system Physical environment An actor has a unique name and an optional description. Examples: Passenger: A person in the train GPS satellite: Provides the system with GPS coordinates Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

25 Use Case A use case represents a class of functionality provided by the system as an event flow. PurchaseTicket A use case consists of: Unique name Participating actors Entry conditions Flow of events Exit conditions Special requirements Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

26 Use Case Diagram: Example Name: Purchase ticket Participating actor: Passenger Entry condition: Passengerstanding in front of ticket distributor. Passengerhas sufficient money to purchase ticket. Event flow: 1. Passengerselects the number of zones to be traveled. 2. Distributor displays the amount due. 3. Passengerinserts money, of at least the amount due. 4. Distributor returns change. 5. Distributor issues ticket. Exit condition: Passengerhas ticket. Anything missing? Exceptional cases! Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

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

28 The <<includes>> Relationship Passenger PurchaseSingleTicket <<includes>> PurchaseMultiCard <<includes>> <<includes>> relationship represents behavior that is factored out of the 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 <<extends>> relationships). <<extends>> CollectMoney <<extends>> NoChange Cancel Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

29 Use Case Diagrams: Summary Use case diagrams represent external behavior Use case diagrams are useful as an index into the use cases Use case descriptions provide meat of model, not the use case diagrams. All use cases need to be described for the model to be useful. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

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

31 Classes TarifSchedule zone2price getzones() getprice() Name Attributes Operations TarifSchedule Table zone2price Enumeration getzones() Price getprice(zone) Signature TarifSchedule A class represent 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 31

32 Instances tarif_1974:tarifschedule zone2price = { { 1,.20}, { 2,.40}, { 3,.60}} An instance represents a phenomenon. The name of an instance is underlined and can contain the class of the instance. The attributes are represented with their values. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

33 Actor vs Instances What is the difference between an actor, a class and an instance? Actor: An entity outside the system to be modeled, interacting with the system ( Passenger ) Class: An abstraction modeling an entity in the problem domain, must be modeled inside the system ( User ) 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 33

34 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 source object can legitimately reference. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

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

36 Many-to-Many Associations StockExchange * Lists * Company tickersymbol StockExchange * Lists 1 tickersymbol SX_ID Company Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

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

38 From Problem Statement to Code Problem Statement: A stock exchange lists many companies. Each company is uniquely identified by a ticker symbol. A company may be listed on more than one stock exchange. Class Diagram: StockExchange * Lists * Company tickersymbol Java Code public class StockExchange { private ArrayList m_company = new ArrayList(); }; public class Company { public int m_tickersymbol; private ArrayList m_stockexchange = new ArrayList(); }; Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

39 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 class. Exhaust system Muffler diameter Tailpipe diameter A solid diamond denotes composition, a strong form of aggregation where components cannot exist without the aggregate. (Bill of Material) TicketM achine 3 ZoneButton Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

40 Figure 2-7, Example of describing a model with two different notations. UML Book 1 * Chapter composed-of Booch Book composed-of N Chapter Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

41 Qualifiers Without qualification Directory 1 * File filenam e With qualification Directory filenam e 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 41

42 Inheritance Button CancelButton ZoneButton The children classes inherit the attributes and operations of the parent class. Inheritance simplifies the model by eliminating redundancy. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

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

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

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

46 Object Modeling in Practice: A Banking System Account Bank Name Amount CustomerId AccountId Deposit() Withdraw() GetBalance() * Has Customer Name CustomerId 1) Find New Objects 2) Iterate on Names, Attributes and Methods 3) Find Associations between Objects 4) Label the assocations 5) Determine the multiplicity of the assocations Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46

47 Practice Object Modeling: Iterate, Categorize! Bank Name * Account Amount CustomerId 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 47

48 Watch time date SetDate(d) CalculatorWatch calculatorstate EnterCalcMode() InputNumber(n) Figure 2-8, A UML class diagram depicting two classes: Watch and CalculatorWatch. CalculatorWatch is a refinement of Watch, providing calculator functionality normally not found in normal Watches. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48

49 Figure 2-9, An example of abstract class. OrganicCompound Benzene Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 49

50 Figure 2-10, A UML class diagram depicting instances of two classes. simplewatch1291:watch «instanceof» Watch calculatorwatch1515 :CalculatorWatch «instanceof» CalculatorWatch Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50

51 Packages A package is a UML mechanism for organizing elements into groups (usually not an application domain concept) Packages are the basic grouping construct with which you may organize UML models to increase their readability. DispatcherInterface Notification IncidentManagem ent A 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 51

52 UML sequence diagrams TicketMachine Passenger selectzone() insertcoins() pickupchange() pickupticket() Used during requirements analysis To refine use case descriptions to find additional objects ( participating objects ) Used during system design to refine subsystem interfaces Classes are represented by columns Messages are represented by arrows Activations are represented by narrow rectangles Lifelines are represented by dashed lines Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 52

53 Nested messages Passenger selectzone() ZoneButton TarifSchedule Display lookupprice(selection) price Dataflow displayprice(price) to be continued... The source of an arrow indicates the activation which sent the message An activation is as long as all nested activations Horizontal dashed arrows indicate data flow Vertical dashed lines indicate lifelines Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53

54 Iteration & condition continued from previous slide... ChangeProcessor CoinIdentifier Display CoinDrop Passenger * insertchange(coin) lookupcoin(coin) Iteration price displayprice(oweda mount) Condition [owedamount<0]returnchange(-oweda mount) to be continued... 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 54

55 Creation and destruction continued from previous slide... Passenger ChangeProcessor createticket(selection) Creation print() Ticket free() Destruction 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 55

56 Sequence Diagram Summary UML sequence diagram represent behavior in terms of interactions. Useful to 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 56

57 State Chart Diagrams Event Initial state State [button1&2pressed] BlinkHours [button2pressed] IncrementHrs Transition [button1pressed] [button1&2pressed] BlinkMinutes [button2pressed] IncrementMin. [button1pressed] [button1&2pressed] [button2pressed] BlinkSeconds IncrementSec. StopBlinking Final state Represent behavior as states and transitions Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 57

58 Group Work The following sequence of diagrams are taken from an example developed in the textbook. We will review UML notation by trying to understand these diagrams. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 58

59 Figure 2-13, An example of a UML use case diagram: Incident initiation in an accident management system. FRIEND Report Emergency FieldOfficer OpenIncident Dispatcher AllocateResources Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 59

60 Figure 2-16, An example of an «include» relationship. OpenIncident «include» AllocateResources «include» HelpDispatcher Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 60

61 Figure 2-18, An example of an «extend» relationship. OpenIncident «extend» AllocateResources «extend» ConnectionDown Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 61

62 Figure 2-22, An example of a UML class diagram: classes that participate in the ReportEmergency use case. EmergencyReport reportsgenerated * FieldOfficer reports 1..* 1 Incident * incidentsgenerated Dispatcher name:string badgenumber:integer 1 author name:string badgenumber:integer 1 initiator Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 62

63 Figure 2-23, An example of a UML object diagram: objects that participate in the warehouseonfire scenario. bob:fieldofficer report_1291 incident_1515 name = Bob D. badgenumber = 132 alice:fieldofficer name = Alice W. badgenumber = 23 john:dispatcher name = John D. badgenumber = 12 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 63

64 Figure 2-25, An example of an association class. Allocates FieldOfficer role:string notificationtime:time Incident name:string badgenumber:integer resources 1..* 1 incident Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 64

65 Figure 2-26, Alternative model for Allocation. FieldOfficer name:string badgenumber:integer 1 1..* resources Allocation role:string notificationtime:time 1 incident 1 Incident Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 65

66 Figure 2-32, An example of a generalization. PoliceOfficer name:string badgenumber:integer FieldOfficer author Dispatcher 1 * reportsgenerated EmergencyReport 1..* initiator 1 * incidents 1 Incident Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 66

67 IncidentManagement Report Emergency OpenIncident Dispatcher FieldOfficer AllocateResources IncidentArchive SysAdministration ArchiveIncident ManageUsers Librarian SearchArchive ManageTerminals Figure 2-45, Example of packages: use cases of FRIEND organized by actors. SysAdmin Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 67

68 Figure 2-46, Example of packages. FieldOfficer IncidentManagement Dispatcher Librarian IncidentArchive SysAdministration SysAdmin Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 68

69 Figure 2-47, Example of packages. FieldStation DispatcherStation FieldOfficer Dispatcher EmergencyReport Incident Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 69

70 Figure 2-48, An example of a note. Notes can be attached to a specific element in a diagram. FieldStation DispatcherStation FieldOfficer Dispatcher EmergencyReport The EmergencyReport class is defined in FieldStation and used in both stations. Incident Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 70

71 Activity Diagrams An activity diagram shows flow control within a system Handle Incident Document Incident Archive Incident An activity diagram is a special case of a state chart diagram in which states are activities ( functions ) Two types of states: Action state: Cannot be decomposed any further Happens instantaneously with respect to the level of abstraction used in the model Activity state: Can be decomposed further The activity is modeled by another activity diagram Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 71

72 Statechart Diagram vs. Activity Diagram Statechart Diagram for Incident (similar to Mealy Automaton) (State: Attribute or Collection of Attributes of object of type Incident) Event causes State transition Active Inactive Closed Archived Incident- Incident- Incident- Handled Docu mented Archived Activity Diagram for Incident (similar to Moore (State: Operation or Collection of Operations) Handle Incident Document Incident Archive Incident Completion of activity causes state transition Triggerless Transition Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 72

73 Activity Diagram: Modeling Decisions Open Incident [lowpriority] [fire & highpriority] Allocate Resources [not fire & highpriority] Notify Fire Chief Notify Police Chief Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 73

74 Activity Diagrams: Modeling Concurrency Synchronization of multiple activities Splitting the flow of control into multiple threads Splitting Allocate Resources Synchronization Open Incident Coordinate Resources Archive Incident Document Incident Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 74

75 Activity Diagrams: Swimlanes Actions may be grouped into swimlanes to denote the object or subsystem that implements the actions. 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 75

76 What should be done first? Coding or Modeling? It all depends. Forward Engineering: Creation of code from a model Greenfield projects Reverse Engineering: Creation of a model from code Interface or reengineering projects Roundtrip Engineering: Move constantly between forward and reverse engineering Useful when requirements, technology and schedule are changing frequently Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 76

77 UML Summary UML provides a wide variety of notations for representing many aspects of software development Powerful, but complex language Can be misused to generate unreadable models Can be misunderstood when using too many exotic features For now we concentrate 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 77

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

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 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

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, 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

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

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

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

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" 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

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

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

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

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

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

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

CSE 308. UML Overview Use Case Diagrams. Reference. Class diagrams. Session 6 UML Intro/Use cases. Robert Kelly, B. Bruegge,

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

Course 3 7 March

Course 3 7 March Course 3 7 March adiftene@info.uaic.ro 1 From Courses 1, 2 Modeling Modeling Languages Graphic Languages UML History UML Definition UML Diagram Types UML Use Case Diagram Actors Use Case UML Class Diagrams

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, 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

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

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

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

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

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

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

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

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

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

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

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

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD Slides by: Shree Jaswal What is UML? 2 It is a standard graphical language for modeling object oriented software. It was developed in mid 90 s by collaborative

More information

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 1 Goals of the Lecture Review the material in Chapter 2 of the Textbook Cover key parts of the UML notation

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

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review 1 Responsibility-Driven Design (RDD) Introduced in 1990; a UML-based

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

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

Software Engineering Fall 2014

Software Engineering Fall 2014 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 10/01/2014 Class Announcements Grading is done for the Deliverable #2 (Requirement Elicitation) Will be posed

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

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

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

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 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

Unified Modeling Language

Unified Modeling Language jonas.kvarnstrom@liu.se 2015 Unified Modeling Language A Brief Introduction History In the early 1990s, three common OO modeling approaches James Rumbaugh's Object-modeling technique (OMT) 2 Grady Booch's

More information

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

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: , Q.1 What is Object Orientation? Explain the concept of class, objects, instance, generalization, and associations. Ans :-- In the past, information systems used to be defined primarily by their functionality:

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

UML & OO Fundamentals. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 3 09/04/2012

UML & OO Fundamentals. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 3 09/04/2012 UML & OO Fundamentals CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 3 09/04/2012 1 Goals of the Lecture Review the material in Chapter 2 of the Textbook Cover key parts of the UML notation

More information

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered Object-oriented development Object-oriented Design Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain.

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

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

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

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

How and Why to Use the Unified Modeling Language. among software components, architectural-based

How and Why to Use the Unified Modeling Language. among software components, architectural-based This article addresses the Unified Modeling Language and its purpose, constructs, and application to defense software development applications. The Unified Modeling Language (UML) is a notation that can

More information

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools UML Modeling I Instructor: Yongjie Zheng September 3, 2015 CS 490MT/5555 Software Methods and Tools Object-Oriented Design: Topics & Skills Rational Unified Process Unified Modeling Languages (UML) Provide

More information

UML Diagrams & And Some Of Their Elements

UML Diagrams & And Some Of Their Elements UML Diagrams 2013, J.P.N., page 1 UML Diagrams & And Some Of Their Elements UML Diagrams 2013, J.P.N., page 2 Building blocks of the UML As part of a model you have: modelling elements relationships between

More information

UML: Unified Modeling Language

UML: Unified Modeling Language UML: Unified Modeling Language 1 Modeling Describing a system at a high level of abstraction A model of the system Used for requirements and specification Many notations over time State machines Entity-relationship

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

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

VISHNU INSTITUTE OF TECHNOLOGY Vishnupur, BHIMAVARAM

VISHNU INSTITUTE OF TECHNOLOGY Vishnupur, BHIMAVARAM VISHNU INSTITUTE OF TECHNOLOGY Vishnupur, BHIMAVARAM 534 202 LABORATORY MANUAL IV B.Tech I Sem CSE Unified Modeling Language & Design Patterns Lab DEPARTMENT OF CSE OUR MISSION LEARN TO EXCEL Regd.No

More information

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization OBJECT ORIENTED DESIGN with the Unified Process Use Case Realization Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop detailed sequence diagrams

More information

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Recap 1 to 5 Chapters 1. UML Notation 1. Use Case 2. Class Diagrams 3. Interaction or Sequence Diagrams 4. Machine or State Diagrams 5. Activity Diagrams

More information

Requirements Engineering

Requirements Engineering Chapter 3: Requirements Modeling Requirements Engineering Objectives In this chapter, you will learn about: Functional requirements Modeling requirements Overview of basic modeling paradigms Gus Requirements

More information

12 Tutorial on UML. TIMe TIMe Electronic Textbook

12 Tutorial on UML. TIMe TIMe Electronic Textbook TIMe TIMe Electronic Textbook 12 Tutorial on UML Introduction......................................................2.................................................3 Diagrams in UML..................................................3

More information

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop interaction diagrams based on the principles of object responsibility and use case controllers

More information

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram After studying this chapter you should be able to: Define an object. Understand the terms

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

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

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

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

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading:

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading: CompSci 280 S2 2107 Introduction to Software Development Today s Agenda Topics: Introduction Activity Diagram Object interaction Sequence Diagram Reading: Booch G.,The Unified Modeling Language User Guide,

More information

BASICS OF UML (PART-2)

BASICS OF UML (PART-2) BASICS OF UML (PART-2) 1 USE CASE DIAGRAMS 2 USE CASE DIAGRAMS Use Case Model: a view of a system that emphasizes the behavior as it appears to outside users. A use case model partitions system functionality

More information

Lecture #2 on Object-Oriented Modeling

Lecture #2 on Object-Oriented Modeling Outline Lecture #2 on Object-Oriented Modeling Thierry Géraud EPITA Research and Development Laboratory (LRDE) 2006 Thierry Géraud Lecture #2 on Object-Oriented Modeling EPITA-LRDE 2006 1 / 38 Outline

More information

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1. Outline of UML and Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule Feb. 27th 13:00 Scope and Goal 14:30 Basic Concepts on Representing the World (object, class, association,

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

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

Index. : (colon), 80 <<>> (guillemets), 34, 56

Index. : (colon), 80 <<>> (guillemets), 34, 56 : (colon), 80 (guillemets), 34, 56 A Abstraction, 3 Acronyms, 54 Action field, 140 Actions tab, 140 ActiveX controls (Microsoft), 163 Activities. See also Activity diagrams basic description of, 241

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