}, 22 "@context": "http://schema.org", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_30.jpg", "width": "800" "@context": "http://schema.org",
", "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20 UML Use Case Diagrams An Actor represents a role, that is, a type of user of the system Passenger PurchaseTicket Used during requirements elicitation and analysis to represent external behavior ( visible from the outside of the system ) Use case model: The set of all use cases that completely describe the functionality of the system. "@context": "http://schema.org",
"@type": "ImageObject", "@context": "http://schema.org", ", Use case diagrams Class diagrams Sequence diagrams Activity diagrams. { Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9 UML: First Pass You can model 80% of most problems by using about 20% UML We teach you those 20% 80-20 rule: Pareto principle (http://en.wikipedia.org/wiki/Pareto_principle)http://en.wikipedia.org/wiki/Pareto_principle 80% of your profits come from 20% of your customers 80% of your complaints come from 20% of your customers 80% of your profits come from 20% of the time you spend 80% of your sales come from 20% of your products "name": "Bernd Bruegge & Allen H.", "@context": "http://schema.org", "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22 Use Case 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. Thank you! Using UML, Patterns, and Java Object-Oriented Software Engineering Modeling with UML Chapter 2 Object-Oriented Software Engineering: Using UML, Patterns. "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_2.jpg", "name": "Bernd Bruegge & Allen H.", ", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28 Classes A class represents a concept A class encapsulates state (attributes) and behavior (operations) Table zone2price Enumeration getZones() Price getPrice(Zone) TarifSchedule zone2price getZones() getPrice() TarifSchedule Name Attributes Operations Signature TarifSchedule The class name is the only mandatory information Each attribute has a type Each operation has a signature Type ", { { Weather) An actor has a unique name and an optional description Examples: Passenger: A person in the train GPS satellite: An external system that provides the system with GPS coordinates. Interaction Diagrams A series of diagrams describing the dynamic behavior of an object-oriented system. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 55 Activity Diagrams can model Concurrency Synchronization of multiple activities Splitting the flow of control into multiple threads Synchronization Splitting }, 37 "@context": "http://schema.org", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_58.jpg", ". "@type": "ImageObject", "@type": "ImageObject", "name": "Bernd Bruegge & Allen H.", What is UML? }, 8 { ", Slides by Bruegee and Dutoit, Modified by David A. Gaitros COP 3331 Object Oriented Analysis and Design Chapter 2: Object Oriented Modeling using UML Jean. "name": "Bernd Bruegge & Allen H.",
"contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_23.jpg", "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 UML first pass: Class diagrams 1 2 push() release() 1 1 blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() LCDDisplay Battery Load Time Now 1 Watch Operations state PushButton Attribute Class diagrams represent the structure of the system Class Association Multiplicity. \uf0a8 Software is getting increasingly more complex \uf077 Windows XP > 40 million lines of code \uf077 A single programmer cannot manage this amount of code in its entirety. "width": "800" "width": "800" "@context": "http://schema.org", "@type": "ImageObject", Name: Purchase ticket 2. Exit condition: Passenger has ticket 5. "@context": "http://schema.org", "name": "Bernd Bruegge & Allen H.", { }, 23 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39 Inheritance 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. "name": "Bernd Bruegge & Allen H.", "@context": "http://schema.org",
"description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36 Aggregation \uf0a8 An aggregation is a special case of association denoting a consists-of hierarchy \uf0a8 The aggregate is the parent class, the components are the children classes Exhaust system Muffler diameter Tailpipe diameter TicketMachine ZoneButton 3 A solid diamond denotes composition: A strong form of aggregation where the life time of the component instances is controlled by the aggregate. "width": "800" "name": "Bernd Bruegge & Allen H.", ", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_35.jpg", "name": "Bernd Bruegge & Allen H.", { }, 32 "name": "Bernd Bruegge & Allen H.", "@type": "ImageObject", "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31 Associations Associations denote relationships between classes Price Zone Enumeration getZones() Price getPrice(Zone) TarifSchedule TripLeg * * The multiplicity of an association end denotes how many objects the instance of a class can legitimately reference..", "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19 UML Second Pass \uf0a8 Use case diagrams \uf077 Describe the functional behavior of the system as seen by the user \uf0a8 Class diagrams \uf077 Describe the static structure of the system: Objects, attributes, associations \uf0a8 Sequence diagrams \uf077 Describe the dynamic behavior between objects of the system \uf0a8 State diagrams \uf077 Describe the dynamic behavior of an individual object \uf0a8 Activity diagrams \uf077 Describe the dynamic behavior of a system, in particular the workflow..", }, 58 { ", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_9.jpg", "@context": "http://schema.org", "@context": "http://schema.org", "name": "Bernd Bruegge & Allen H.", has 5) Determine the multiplicity of the assocations Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24 Uses 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. "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_52.jpg", Account Customer Bank. "name": "Bernd Bruegge & Allen H.", "@context": "http://schema.org", "name": "Bernd Bruegge & Allen H.", "width": "800" Passenger inserts money, at least the amount due 4. "@context": "http://schema.org", "@context": "http://schema.org", Special requirements: None. "@context": "http://schema.org", { }, 20 Unified Modeling Language (UML) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park. button1&2Pressed button1Pressed button2Pressed button1Pressed button1&2Pressed Increment Minutes Increment Hours Blink Hours Blink Seconds Blink Minutes Increment Seconds Stop Blinking "@context": "http://schema.org", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40 Packages Packages help you to organize UML models to increase their readability We can use the UML package mechanism to organize classes into subsystems Any complex system can be decomposed into subsystems, where each subsystem is modeled as a package. PurchaseTicket }, 31 "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_25.jpg", Passenger PurchaseTicket TimeOut > NoChange > OutOfOrder > Cancel >. Passenger PurchaseSingleTicket PurchaseMultiCard > CollectMoney > NoChange > Cancel > Cancel >. ", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34 From Problem Statement To Object Model Class Diagram: StockExchange Company tickerSymbol Lists ** Problem Statement: A stock exchange lists many companies. }, 43 "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_13.jpg", Ticket Distributor displays the amount due 3. \uf0a8 Code is not easily understandable by developers who did not write it \uf0a8 We need simpler representations for complex systems \uf077 Modeling is a means for dealing with complexity. "name": "Bernd Bruegge & Allen H.", "@type": "ImageObject", A use case represents a class of functionality provided by the system. { \uf0a8 It all depends\u2026. Passenger selects the number of zones to be traveled 2. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 UML first pass: Class diagrams 1 2 push() release() 1 1 blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() LCDDisplay Battery Load 1 2 1 Time Now 1 Watch Operations state PushButton Attribute Class diagrams represent the structure of the system Class Association Multiplicity "width": "800" "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_6.jpg", Ticket Distributor returns change 5. \uf0a8 What is UML.
", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_29.jpg", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_8.jpg", "@type": "ImageObject", Interaction Diagrams Software Engineering BIT8. "name": "Bernd Bruegge & Allen H.", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17 Other UML Notations UML provides many other notations, for example Deployment diagrams for modeling configurations Useful for testing and for release management We introduce these and other notations as we go along in the lectures OCL: A language for constraining UML models Table zone2price Enumeration getZones() Price getPrice(Zone) TarifSchedule * * Trip zone:Zone Price: Price. { Ticket Distributor issues ticket 6. "@context": "http://schema.org", "@type": "ImageObject", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30 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). If you wish to download it, please recommend it to your friends in any social system. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36 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 1 0..2 TicketMachine ZoneButton 3 A solid diamond denotes composition: A strong form of aggregation where the life time of the component instances is controlled by the aggregate. "name": "Bernd Bruegge & Allen H.", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31 Associations Associations denote relationships between classes Price Zone Enumeration getZones() Price getPrice(Zone) TarifSchedule TripLeg * * The multiplicity of an association end denotes how many objects the instance of a class can legitimately reference. "name": "Bernd Bruegge & Allen H.", "@type": "ImageObject", "width": "800" "@type": "ImageObject", \uf0a8 What is relevant or irrelevant depends on the purpose of the model..", ", "@context": "http://schema.org", ", Abstractions are simplifications because: They ignore irrelevant details and They only represent the relevant details. }, 21 \uf0a8 Use case diagrams \uf0a8 Class diagrams \uf0a8 Sequence diagrams \uf0a8 Activity diagrams. "width": "800" "width": "800" "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_17.jpg", "width": "800" }, 59
"width": "800" Published byBranden Baker "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53 Activity Diagrams \uf0a8 An activity diagram is a special case of a state chart diagram \uf0a8 The states are activities ( functions ) \uf0a8 An activity diagram is useful to depict the workflow in a system. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53 Activity Diagrams An activity diagram is a special case of a state chart diagram The states are activities (functions) An activity diagram is useful to depict the workflow in a system }, 35 "@context": "http://schema.org", "@type": "ImageObject", }, 2 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 What is UML? "width": "800" "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16 UML first pass: Statechart diagrams State Initial state Final state Transition Event Represent behavior of a single object with interesting dynamic behavior. button1&2Pressed button1Pressed button2Pressed button1Pressed button1&2Pressed Increment Minutes Increment Hours Blink Hours Blink Seconds Blink Minutes Increment Seconds Stop Blinking. }, 33 "name": "Bernd Bruegge & Allen H.", { ", "name": "Bernd Bruegge & Allen H.", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 59 Additional References 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, 2 nd edition, 2005 Commercial UML tools Rational Rose XDE for Java http://www-306.ibm.com/software/awdtools/developer/java/ http://www-306.ibm.com/software/awdtools/developer/java/ Together (Eclipse, MS Visual Studio, JBuilder) http://www.borland.com/us/products/together/index.html http://www.borland.com/us/products/together/index.html Open Source UML tools http://java-source.net/open-source/uml-modeling http://java-source.net/open-source/uml-modeling ArgoUML,UMLet,Violet, { "width": "800" "@type": "ImageObject", }, 10 What is relevant or irrelevant depends on the purpose of the model. "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_51.jpg", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12 UML first pass: Use case diagrams Use case diagrams represent the functionality of the system from users point of view Actor Use Case System boundary Classifier "@type": "ImageObject", "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 Object-oriented Modeling Application Domain (Phenomena) Solution Domain (Phenomena) System Model (Concepts) Aircraft TrafficController FlightPlan Airport MapDisplay FlightPlanDatabase Summary Display TrafficControl UML Package (Analysis) (Design). "@context": "http://schema.org", Chapter 4,Use Case and Statechart Diagrams. ", Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 54 Activity Diagrams allow to model Decisions Decision "description": "Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24 Uses Cases can be related \uf0a8 Extends Relationship \uf077 To represent seldom invoked use cases or exceptional functionality \uf0a8 Includes Relationship \uf077 To represent functional behavior common to more than one use case..", Participating actor: Passenger 3. "@type": "ImageObject", Ticket Distributor issues ticket 6. }, 53 "width": "800" "width": "800" ",
"width": "800" "@type": "ImageObject", "contentUrl": "https://images.slideplayer.com/23/6642334/slides/slide_4.jpg", }, 17 "name": "Bernd Bruegge & Allen H.", "@context": "http://schema.org", "@context": "http://schema.org", A use case represents a class of functionality provided by the system *. }, 9 "width": "800"