1 / 43

Software Engineering: Object-Oriented Design II Quiz and Lecture - April Schedule

Learn about actor and use case diagrams, relationships, dynamic system aspects modeling, machine tool states, class modeling, and interaction diagrams in software engineering.

gsteven
Download Presentation

Software Engineering: Object-Oriented Design II Quiz and Lecture - April Schedule

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 501: Software Engineering Lecture 18 Object Oriented Design II

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

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

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

  5. Use Cases for Borrowing Books Borrow copy of book BookBorrower Return copy of book Reserve book Extend loan

  6. Extend loan Relationships Between Use Cases: <<uses>> <<uses>> Check for reservation BookBorrower Borrow copy of book <<uses>>

  7. Relationships Between Use Cases: <<extends>> <<extends>> Refuse loan Borrow copy of book BookBorrower

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

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

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

  11. State Diagram returned() returned() not borrowable borrowable borrowed()[last copy] guard expression borrowed()[not last copy] State diagram for class Book

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

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

  14. A Quiz Question: Transitions Transitions power on power off start stop guard on guard off

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

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

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

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

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

  20. Actions on Objects returnCopy(c) call return send create destroy okToBorrow() local status notifyReturn(b) asynchronous signal <<create>> stereotypes <<destroy>>

  21. Bouncing Ball Diagrams Example: execution of http://www.cs.cornell.edu/ domain name service TCP connection HTTP get Client Servers

  22. Sequence Diagram: Borrow Copy of a Book libMem: LibraryMember theBook:Book BookBorrower theCopy:Copy borrow(theCopy) okToBorrow borrow borrow

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

  24. Sequence Diagram: Painting Mechanism :Thread :Toolkit :ComponentPeer target:HelloWorld run run callbackLoop handleExpose paint

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

  26. Release work order Reschedule Assign tasks Activity Diagram: Process Modeling branch [materials not ready] [materials ready] guard expression

  27. Decompress Stream audio Stream video Activity Diagram: Parallel Activities start state fork join stop state

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

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

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

  31. Component Diagram executable component hello.java hello.hml HelloWorld.class hello.jpg

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

  33. Components and Classes agent.dll AgentAction PatternSearch Policy

  34. Components and Classes agent.dll Realizes AgentAction PatternSearch Policy extended component

  35. Interfaces render.java simulation.exe IRender dependency realization interface

  36. Application Programming Interface (API) API is an interface that is realized by one or more components. simulation.exe IRender IModels ILighting

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

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

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

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

  41. 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?

  42. 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?

  43. DigitizedMap Exam Question: Class Diagram WeatherStation location metereologicalData collectData() getSummary() WeatherMap location date-time geographicData weather gatherData() printMap() 1 1...* summary

More Related