Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)

Similar presentations


Presentation on theme: "Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)"— Presentation transcript:

1 Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)

2 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 Outline for this Week Last Lecture: Modeling Functions, Structure and Behavior Use case diagrams Class diagrams Sequence diagrams, State chart diagrams, Activity diagrams Today we review these concepts Review: Why UML? Review: Diagram notations Next Lecture: Deployment diagrams Stereotypes and Profiles UML 2 Meta model

3 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 We use Models to describe Software Systems System model: Object model + functional model + dynamic model Object model: What is the structure of the system? UML Notation: Class diagrams Functional model: What are the functions of the system? UML Notation: Use case diagrams Dynamic model: How does the system react to external events? UML Notation: Sequence, State chart and Activity diagrams

4 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 Another view on UML Diagrams

5 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 Review of Use Case Diagrams: 3 Important Terms An actor represents a role, that is, a type of user of the system Student DoHomework Used during requirements elicitation and analysis to represent 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. A use case represents a class of functionality provided by the system

6 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6 Actor An actor is a model for an external entity which interacts with the system: EndUser, Administrator External system (Another system) Physical environment (e.g. Weather) An actor has a unique name and an optional description Examples: Student: A studying person Teaching Assistant: Member of teaching staff who supports the instructor. Random Number generator Student Name Optional Description

7 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 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. DoHomework

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

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

10 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10 The > Relationship > relationships model exceptional or seldom invoked cases The exceptional event flows are factored out of the main event flow for clarity The direction of an > relationship is to the extended use case Use cases representing exceptional flows can extend more than one use case. Student DoHomework Party > Sleep > FetchLostSheet > DrinkCoffee >

11 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 The > Relationship > relationship represents common functionality needed in more than one use case > behavior is factored out for reuse, not because it is an exception The direction of a > relationship is to the using use case (unlike the direction of the > relationship). Student GiveLecture HoldExercise > AskQuestion > NoAnswer > SillyQuestion > WrongAnswer > DoHomework

12 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12 Textual Use Case Description Example 1. Name: DoHomework 2. Participating actor: Student 3. Entry condition: Student received exercise sheet Student is in good health 4. Exit condition: Student delivered solution 5. Flow of events: 1. Student fetches the exercise sheet 2. Student reads through the assignments 3. Student processes the assignments and types the solution in his Computer. 4. Student prints out the solution 5. Student delivers the solution in the following exercise 6. Special requirements : None. Student DoHomework

13 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13 Review of Class Diagrams Class Association End Name (Role) Multiplicity Class diagrams represent the structure of the system Aggregation Inheritance

14 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 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”).

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

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

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

18 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18 Code Generation from UML to Java I public class Component{ } public class Leaf extends Component{ } public class Composite extends Component{ private Collection components; … }

19 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19 Code Generation from UML to Java II public abstract class Target{ public … operation(); } public class Adapter extends Target { private AdaptedClass adaptedObject; public … operation(){ adaptedObject.specificOperation(); }

20 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20 Where are we? Review functional modeling Use case diagram Review object modeling Class diagram Generating source code from class diagrams  Review dynamic modeling  Sequence diagram Statechart diagram

21 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21 Execution Specification Sequence diagram: Basic Notation Sequence diagrams represent the behavior of a system as messages (“interactions”) between different objects. Lifeline Message

22 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22 Lifeline and Execution Specification A lifeline represents an individual participant (or object) in the interaction A lifeline is shown using a symbol that consists of a rectangle forming its “head” followed by a vertical line (which may be dashed) that represents the lifetime of the participant An execution specification specifies a behavior or interaction within the lifeline An execution specification is represented as a thin rectangle on the lifeline.

23 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23 Messages Define a particular communication between lifelines of an interaction Examples of communication raising a signal invoking an operation creating or destroying an instance Specify (implicitly) sender and receiver are shown as a line from the sender to the receiver Form of line and arrowhead reflect message properties

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

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

26 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26 Sequence Diagrams can also model the Flow of Data 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 Passenger selectZone() ZoneButtonTarifScheduleDisplay lookupPrice(selection) displayPrice(price) price Dataflow …continued on next slide...

27 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27 Sequence Diagrams: Iteration & Condition Iteration is denoted by a * preceding the message name Condition is denoted by boolean expression in [ ] before the message name Passenger ChangeProcessor insertChange(coin) CoinIdentifierDisplayCoinDrop displayPrice(owedAmount) lookupCoin(coin) price [owedAmount<0] returnChange(-owedAmount) Iteration Condition …continued on next slide... …continued from previous slide... *

28 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28 Creation and 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. Passenger ChangeProcessor …continued from previous slide... Ticket createTicket(selection) free() Creation of Ticket Destruction of Ticket print()

29 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29 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).

30 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30 UML Statechart diagram State Initial state Final state Transition Event Represents 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


Download ppt "Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)"

Similar presentations


Ads by Google