430 likes | 453 Views
CS 501: Software Engineering. Lecture 18 Object Oriented Design II. Administration. New syllabus Quiz 4 on Thursday, April 3 (no lecture) Lecture 23 on Wednesday April 16 (evening) Second presentation and report next week Sign up. Assignment will be posted shortly Quiz 3
E N D
CS 501: Software Engineering Lecture 18 Object Oriented Design II
Administration New syllabus Quiz 4 on Thursday, April 3 (no lecture) Lecture 23 on Wednesday April 16 (evening) Second presentation and report next week Sign up. Assignment will be posted shortly Quiz 3 Collect after class No office hours next week
Actor and Use Case Diagram • An actor is a user of a system in a particular role. An actor can be human or an external system. • A use case is a a task that an actor needs to perform with the help of the system. BookBorrower Borrow book
Use Cases and Actors • A scenariois an instance of ause case • Actor is role, not an individual (e.g., librarian can have many roles) • Actor must be a "beneficiary" of the use case (e.g., not librarian who processes book when borrowed) In UML, the system boundary is the set of use cases.
Use Cases for Borrowing Books Borrow copy of book BookBorrower Return copy of book Reserve book Extend loan
Extend loan Relationships Between Use Cases: <<uses>> <<uses>> Check for reservation BookBorrower Borrow copy of book <<uses>>
Relationships Between Use Cases: <<extends>> <<extends>> Refuse loan Borrow copy of book BookBorrower
Use Cases in the Development Cycle • Use cases are a tool in requirements analysis • Intuitive -- easy to discuss with clients • Use cases are often hard to translate into class models • Scenarios are useful to validate design
Modeling Dynamic Aspects of Systems Interaction diagrams: set of objects and their relationships including messages that may be dispatched among them • Sequence diagrams: time ordering of messages • Collaboration diagrams: structural organization of objects that send and receive messages Activity diagram: flow chart showing flow of control from activity to activity Statechart diagram:models a state machine
Notation: States Waiting A state machine is a behavior that specifies the sequence of states an object or an interaction goes through during its lifetime in response to events.
State Diagram returned() returned() not borrowable borrowable borrowed()[last copy] guard expression borrowed()[not last copy] State diagram for class Book
A Quiz Question A machine tool is controlled by a switch and two buttons: power Turn the power on/off (switch) start Start the machine (button) stop Stop the machine (button) There is also a blade guard. To change the blade, the power must be off and the blade guard removed. To run the machine, press the start button. The power must be turned on and the blade guard must be in place. The machine runs until the stop button is pressed. While the machine is running, the blade guard is locked in place.
safe ready run danger change A Quiz Question: States Power off Guard on Power on Guard on Power off Guard off Power on Guard off
A Quiz Question: Transitions Transitions power on power off start stop guard on guard off
A Quiz Question: State Transition Table guard on guard off power on power off start stop ready safe change change safe danger danger ready change ready safe run danger run safe ready not specified
safe ready run danger change A Quiz Question: State Transition Diagram power off start power on stop guard off guard on guard off guard on power on power off
Notation for Classes and Objects Objects Classes anObject:AnyClass AnyClass attribute1 attribute2 operation1() operation2() or :AnyClass or anObject or The names of objects are underlined. AnyClass
Notation: Active Class EventManager eventlist suspend() flush() An active classis a class whose objects own one or more processes or threads and therefore can initiate control activity.
Notation: Interaction display An interaction is a behavior that comprises a set of messages exchanged among a set of objects within a particular context to accomplish a specific purpose.
Actions on Objects returnCopy(c) call return send create destroy okToBorrow() local status notifyReturn(b) asynchronous signal <<create>> stereotypes <<destroy>>
Bouncing Ball Diagrams Example: execution of http://www.cs.cornell.edu/ domain name service TCP connection HTTP get Client Servers
Sequence Diagram: Borrow Copy of a Book libMem: LibraryMember theBook:Book BookBorrower theCopy:Copy borrow(theCopy) okToBorrow borrow borrow
Sequence Diagram: Change in Cornell Program :MEngStudent Cornellian 1 : getName() 1.1 : name 2: new PhDStudent(name) :PhDStudent 3: <<destroy>> sequence numbers added to messages
Sequence Diagram: Painting Mechanism :Thread :Toolkit :ComponentPeer target:HelloWorld run run callbackLoop handleExpose paint
Other Diagrams in UML • Activity diagram is a statechart diagram that shows the flow from activity to activity within a system. • Component diagram shows the organization and dependencies among a set of components. • Deployment diagram shows the configuration of processing nodes and the components that live on them.
Release work order Reschedule Assign tasks Activity Diagram: Process Modeling branch [materials not ready] [materials ready] guard expression
Decompress Stream audio Stream video Activity Diagram: Parallel Activities start state fork join stop state
Implementation Modeling Subsystem A grouping of elements that specifies what a part of a system should do. Component (UML definition) "A distributable piece of implementation of a system, including software code (source, binary, or executable) but also including business documents, etc., in a human system." A component can be thought of as an implementation of a subsystem.
Notation: Collaboration Chain of responsibility A collaboration defines an interaction, i.e., a society of roles and other elements that work together to provide some cooperative behavior.
orderform.java Notation: Component & Node A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. Server A node is a physical element that exists at run time and represents a computational resource.
Component Diagram executable component hello.java hello.hml HelloWorld.class hello.jpg
Components and Classes Classes represent logical abstractions. Components represent physical things. Components may live on nodes. Classes have attributes and operations directly. Componentshave operations that are reachable only through interfaces.
Components and Classes agent.dll AgentAction PatternSearch Policy
Components and Classes agent.dll Realizes AgentAction PatternSearch Policy extended component
Interfaces render.java simulation.exe IRender dependency realization interface
Application Programming Interface (API) API is an interface that is realized by one or more components. simulation.exe IRender IModels ILighting
Components and Replaceability Components allow system to be assembled from binaryreplaceable elements. • A component is physical -- bits not concepts • A component can be replaced by any other component(s) that conforms to the interfaces. • A component is part of a system. • A component provides the realization of a set of interfaces.
An Exam Question: Object Oriented Design A system generates weather maps using data collected from unattended weather stations. Each weather station collects meteorological data and produces summaries of the data. On request, it sends the summary information to an area computer. The area computer uses a database of digitized maps to generate a set of local weather maps.
Exam Question: Noun Identification A system generates weather maps using data collected from unattended weather stations. Each weather station collects meteorological data and produces summaries of the data. On request, it sends the summary information to an area computer. The area computer uses a database of digitized maps to generate a set of local weather maps.
Exam Question: Candidate Classes System general term WeatherMap Data same as MeteorologicalData WeatherStationis this a general term? MeteorologicalDatahow does this relate to WeatherStation? DataSummaryhow does this relate to MeteorologicalData? AreaComputer hardware Database general term DigitizedMap
Exam Question: Observations about the Candidate Classes WeatherMap is a DigitizedMap is derived from 1...* DataSummary WeatherStation has a set of MeteorologicalData MeteorologicalData DataSummary is derived from MeteorologicalData DigitizedMap Can Meteorological Data be an attribute of WeatherStation? Can DataSummary be combined with WeatherMap?
Exam Question: Attributes and Operations WeatherStation location metereologicalData collectData() getSummary() WeatherMap location date-time geographicData weather gatherData() printMap() DigitizedMap location geographicData printMap() Or should MetereologicalData be a separate object?
DigitizedMap Exam Question: Class Diagram WeatherStation location metereologicalData collectData() getSummary() WeatherMap location date-time geographicData weather gatherData() printMap() 1 1...* summary