<p> SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Mainframe Environment</p><p> a single program usually does most of the tasks</p><p>Object-Oriented Environment </p><p> interaction required between two or more software objects SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Prior to Object-Oriented design</p><p>Find functions that have to be done by the system.</p><p>During Object-Oriented design </p><p>Determine the responsibilities to objects and allocate the tasks.</p><p>Todays' exercises help determine which object should do which task SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Previous Class Session:</p><p>Develop boundary objects that will be part of an Object Oriented solution.</p><p>This Class Session:</p><p>Robustness analysis</p><p>Find the functions necessary in a use case Use the functions to connect boundary objects to domain objects</p><p>CRC</p><p>Allocate responsibilities to objects. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Ivar Jacobson’s Ideal Object Model:</p><p> use cases define the system's behavior. domain models objects in the "real" world. analysis models should be an ideal description of a robust system structure. </p><p>“The Object Advantage” by Ivan Jacobson, Maria Ericsson, Agneta Jacobson, ISBN 0-201-42289-1</p><p>“Use Case Driven Object Modeling with UML a Practical Approach” by Doug Rosenberg with Kendall Scott, ISBN 0-201-43289-7</p><p>“Understanding UML The Developer’s Guide with a Web-Based Application in Java” by Paul Harmon and Mark Watson, ISBN 1-55860-465-0</p><p> http://source.asset.com/stars/loral/cleanroom/oo/j_act.htm SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Analysis Model </p><p>A logical design that describes 1) how the flow of events is performed by communicating objects, 2) interaction between objects inside the system, 3) interaction between interface objects and external agents, and 4) dynamic behavior of each object. </p><p>Robust System</p><p> is a system that accommodates changes and additions. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Robustness Analysis </p><p> a preliminary design step that links analysis to detailed design.</p><p> keeps trace-ability. </p><p>A minimal usage of UML </p><p> verifies that specified system behavior is reasonable given the set of objects in the use case</p><p> provides a completeness and correctness check (alternate courses)</p><p> enables the ongoing discovery of objects (almost certainly missed some objects during conceptual modeling). helps ensure that most of the major domain classes are identified before starting sequence diagrams. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Create a robustness analysis diagram </p><p> for a use case by parsing use case text, one sentence at a time,</p><p> draw the actors, boundary, entity and controller objects, draw the needed connections between objects. Fit the basic course and all alternate courses on one diagram. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Boundary Objects (Presentation) Windows, </p><p> screens and other interface things used by the actors to communicate with the system. </p><p>Bounary objects should be given explicit names.</p><p>Boundary objects </p><p> can only exchange data with actors and controllers exist as long as the dialog or screen exists. may also perform limited local validation logic that does not require domain object interactions SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Entity Objects Are usually objects from the domain model which store and fetch data, and perform fundamental computations. </p><p>Entity names come from the problem domain </p><p>Entity Objects . only exchange data with controller objects Ÿ frequently includes things like forms, orders, checks, etc. Ÿ may be found in multiple use cases Ÿ most contain data that must persist beyond the execution of a single use case (often map to database tables and files). Ÿ some are “transient” and exist only for the duration of a use case. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Control Objects (Application logic) are created to control or direct communication among objects within a use case </p><p>Control objects often are not real objects but serve as place holders to capture the functionality that "binds" boundary objects to entity objects. </p><p>Control Objects</p><p> can talk to boundary, controller or entity objects contain the application logic, business rules and policies applicable to a given transaction or use case contain the changeable aspects of a system. Later maintenace is then applied to control objects without disrupting the user interface or the database schema. Most are later discarded when their operations are more appropriately placed in other entity or boundary objects. Some may remain as infrastructure objects in the final design Scope of responsiblity is usually the management of a use case SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Summary of interactions allowed among entities</p><p>§ boundary objects can only talk with actors and controllers § entity objects only talk with controller objects § controller objects can talk with boundary, entity or controller objects SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Application of Robustness Diagram for </p><p>Perform Order Entry Use Case</p><p>The system displays an Order Entry window. The Assistant Trader (AT) first selects the investment involved in the order from a list of available investments. The AT then enters the ticket number that appears on the paper ticket for the order and also specifies whether the trade is a buy or a sell. The system verifies that the ticket number is not a duplicate, if the number is unique, the system creates a new order. When the AT chooses to proceed, the system brings up the appropriate trade entry window, which the AT uses to enter the primary data for the trade.</p><p>Alternate courses:</p><p>If the ticket number already exists in the Trade List, the system prompts the AT to enter a new ticket number.</p><p>If the investment associated with the order does not appear in the Investment List, the system invokes the Define Investment use case.</p><p>Robustness Diagram for Perform Order Entry Use Case SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Application of Robustness Diagram for </p><p>Enter Buy Trade Use Case</p><p>The system creates a new trade with the ticket number attached to the order. It also brings up a Bond Trade Entry window. The AT uses this window to enter the appropriate values for the trade. When the AT chooses to submit the trade, the system validates both general trade values and bond-specific values (for instance, it makes sure the coupon rate is "reasonable") before processing the trade. If the grade passes all validation tests, the system submits it to the Trade Queue, from which the trade is later sent to the Back Office system to be cleared and processed further.</p><p>Alternate Course</p><p>If the validation fails, notify the user, highlight the erroneous values, and get new values from the user.</p><p>Robustness Diagram for Entry Buy Trade Use Case SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Each reviewer should be able to do the following for each use case.</p><p>§ read the course of action § Finger trace along the associations on the corresponding ideal diagram. § see a clear match between text and picture. § Identify all the logical functions that must occur in the form of control objects.</p><p>If it is not possible to fulfill the requirements of the use case, determine what objects are missing and start over.</p><p>Limit the number of controllers per use case between 2-5.</p><p>Suggestion. </p><p>Based on this analysis it may be necessary to keep rewriting the use case until the trace makes sense. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Robustness Analysis Do's and Don'ts</p><p> Don't violate the robustness diagram rules. </p><p> Don't start allocating behavior to objects before you have enough information to make good design decisions. </p><p> The boundary object-controller-entity object pattern correlates with the subject-verb-object pattern of basic English. </p><p> Include alternate courses on robustness diagrams. Much of the interesting behavior of a system occurs in the context of alternate courses. </p><p> Robustness analysis helps discover new alternate courses, especially when drawing controllers with labels such as Verify and Validate.</p><p> Controllers serve as placeholders for functionality and system behavior. </p><p> Don't allocate behavior to classes on robustness diagrams because you're not likely to have enough information. </p><p> Don't take too much time trying to perfect robustness diagrams. The robustness diagram serves as a "booster-stage engine" that starts the object- oriented design of use cases. </p><p> Robustness analysis helps discover objects, allocate attributes, and check the use case text for completeness and correctness. </p><p> Don't maintain robustness diagrams. Once we've accomplished the overall mission, we don't need to maintain the work product. It's a means to an end, not an end in itself</p><p> Don't try to do detailed design on robustness diagrams. </p><p> Robustness analysis should be a quick pass across all of the scenarios that will be built. </p><p> Perform a visual trace between the use case text and the robustness diagram.</p><p> Update the static model -- behavior can't be allocated to classes that don't appear in the model. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>When domain modeling and robustness analysis is complete, </p><p> most of the objects in the problem space will be known and assigned some attributes. static relationships will have been assigned among the objects on high-level class diagram and a few dynamic relationships on your robustness diagrams. SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>CRC cards </p><p> are another useful step that precedes creating design</p><p>Original paper by Beck and Cunningham at http://c2.com/doc/oopsla89/paper.html SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>CRC Cards characterize objects by </p><p>· Class Name · Responsibilities (Tasks an object can do alone because of its local knowledge) · Collaborator names (Tasks done by other objects because of their knowledge)</p><p>Class Name = Responsibility Collaborators SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>CRC Card Procedure </p><p>1. Create cards for each relevant object</p><p>· external actors initiating a message to the system · the first object that receives the message · every object from the domain used in the solution of a use case. (Put unused cards off to the side)</p><p>2. Walk through the handling of a system event </p><p>3. Allocate responsibilities by deciding which class handles an event or delegates it to another object</p><p>4. Put the main responsibilities of each class on the card.</p><p>5. Put the collaborators of each class on the card SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>When assigning responsibilities, it may be necessary to </p><p>· Add responsibilities to existing Classes · Create new Classes to handle new functions · Reallocate responsibilities when a Class becomes too complex SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Role Play the Class </p><p>A designer or member of a group can act the part of a "Class" when it is given control in a scenario </p><p>When role playing a class, determine w what can you do, w How are you dependent on others SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Develop responsibilities for a class by the "New Employee" Technique Ÿ A Class asks the requester for information necessary to perform the task</p><p>Ÿ Requester either gives the information or Ÿ Tells the Class that it should know the information (the Class has it or can get it) SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>Spatial arrangement of CRC Cards can be used to show Ÿ Close collaboration Place cards near each other or overlapping each other </p><p>Ÿ Parent - child connection Place Parent card above Child card SE 430 -- Object-oriented Modeling -- Session 6 Ideal Object Model, Robustness Analysis, CRC</p><p>5th Assignment (5 points)</p><p>Pick 1 or more of your more interesting use cases and for each use case,</p><p> Create a robustness diagram Create CRC cards</p>
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages24 Page
-
File Size-