Using UML Patterns and Java ObjectOriented Software Engineering
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 12, Rationale Management
Figure 12 -1, An example of a CTC track section display (simplified for this example). Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
Figure 12 -2, An example of issues. How soon should a dispatcher be notified of a train delay? How should persistent data be stored? train delay? : Issue storage? : Issue technology risk? : Issue Which technology presents the most risk? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
Figure 12 -3, CTC interface issues. display? : Issue How should track sections be displayed? Bernd Bruegge & Allen H. Dutoit input? : Issue How should the dispatcher input commands? Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
Figure 12 -4, An example of proposals and consequent issue. display? : Issue input? : Issue addressed by text-based: Proposal addressed by point&click: Proposal raises terminal? : Issue The display used by the dispatcher can be a text only display with graphic characters to represent track segments. Which terminal emulation should be used for the display? Bernd Bruegge & Allen H. Dutoit The interface for the dispatcher could be realized with a point & click interface. Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Figure 12 -5, An example of criteria and assessments. display? : Issue addressed by text-based: Proposal raises input? : Issue meets addressed by point&click: Proposal meets terminal? : Issue fails usability$: Criterion The time to input commands should be less than two seconds. Bernd Bruegge & Allen H. Dutoit availability$: Criterion The CTC system should have at least a 99% availability. Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Figure 12 -6, An example of an argument. display? : Issue addressed by text-based: Proposal raises input? : Issue meets addressed by point&click: Proposal meets terminal? : Issue fails usability$: Criterion is opposed by availability$: Criterion is supported by availability-first!: Argument Point&click interfaces are more complex to implement than text-based interfaces. Hence, they are also more difficult to test. The point&click interface risks introducing fatal errors in the system that would offset any usability benefit the interface would provide. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Figure 12 -7, An example of closed issue. resolves text-based&keyboard : Resolution display? : Issue input? : Issue addressed by text-based: Proposal raises resolves meets addressed by point&click: Proposal meets terminal? : Issue fails usability$: Criterion is opposed by availability$: Criterion is supported by availability-first!: Argument Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Figure 12 -8, An example of implementation of a resolution. text-based & keyboard : Resolution is implemented by update. SDD: Action. Item For Alice. Update the SDD to reflect the text-based&keyboard resolution. Bernd Bruegge & Allen H. Dutoit investigate. Term: Action. Item For Dave. Investigate different terminal emulation and their advantages for displaying Track. Sections. Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Figure 12 -9, The IBIS model. Issue * responds-to suggests * * Position * * Bernd Bruegge & Allen H. Dutoit * questions generalizes replaces * * * questions objects-to supports * * suggests * Argument * Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Figure 12 -10, Decision Representation Language. is a good alternative for Decision Problem * Alternative achieves * * Goal Achieves. Link Claim * * denies * supports presupposes supports Claim is a result of raises answers Procedure Bernd Bruegge & Allen H. Dutoit * is an answering procedure for * * Object-Oriented Software Engineering: Using UML, Patterns, and Java * Question 11
Figure 12 -11, Questions, Options, Criteria model. Question * objects-to supports responds-to * * is a consequence of Option * positive assessment negative assessment objects-to supports * * * * Argument * * objects-to supports Criterion Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Figure 12 -12, An example of goal refinement using the NFR Framework for the ATM authentication mechanism. X Flexibility + Low cost _ + Security AND _ ¸ Authentication Confidentiality Integrity OR ¸ Account+PIN Bernd Bruegge & Allen H. Dutoit Finger Print Reader Object-Oriented Software Engineering: Using UML, Patterns, and Java Smart. Card+PIN 13
Figure 12 -13, Subsystem decomposition for CTC. main. Server: CTCServer : Dispatcher. Client track. Modems: Modem. Pool UISubsystem Tracking. Subsystem Modem. Manager Storage. Subsystem hot. Backup: CTCServer Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Figure 12 -14, Agenda for the access control discussion of CTC. AGENDA: Integration of access control and notification 1. Purpose The first revisions of the hardware/software mapping and the persistent storage design have been completed. The access control model needs to be defined and its integration with the current subsystems, such as Notification. Service and Tracking. Subsystem, needs to be defined. 2. Desired outcome Resolve issues about the integration of access control with notification. 3. Information sharing [Allocated time: 15 minutes] AI[1]: Dave: Investigate the access control model provided by the middleware. 4. Discussion [Allocated time: 35 minutes] I[1]: Can a dispatcher see other dispatchers’ Track. Sections? I[2]: Can a dispatcher modify another dispatchers’ Track. Sections? I[3]: How should access control be integrated with Track. Sections and Notification. Service? 5. Wrap up [Allocated time: 5 minutes] Review and assign new action items. Meeting critique. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
Figure 12 -15, Proposal P[1]: The access is controlled by the Track. Section object with an access list. 1: subscribe. To. State. Change. Events(ts 1291) : UIClient : Notification. Service 1. 1: is. Accessible(ts 1291) 2: set. Switch. State(s 1515, open) ts 1291: Track. Section 2. 1: who. Is. This() 1. 1. 1: who. Is. This() : System Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Figure 12 -16, Proposal P[2]: The UIClient subscribes to track section events via the subscribe. To. Events() operation on the Track. Section. : UIClient : Notification. Service 1. 2: subscribe. To. State. Change. Events(ts 1291) 1: subscribe. To. Events() ts 1291: Track. Section 2: set. Switch. State(s 1515, open) 2. 1: who. Is. This() 1. 1: who. Is. This() : System Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Figure 12 -17, Proposal P[3]: The access to operations that modify Track. Sections is controlled by the Track. Section object with an access list. 1: subscribe. To. State. Change. Events(ts 1291) : UIClient : Notification. Service 2: set. Switch. State(s 1515, open) ts 1291: Track. Section 2. 1: who. Is. This() 1. 1. 1: who. Is. This() : System Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Figure 12 -18, Chronological minutes for the access control discussion of CTC. CHRONOLOGICAL MINUTES: Integration of access control and notification 4. Discussion. . . I[3]: How should access control be integrated with Track. Sections and Notification. Service? Dave: The Track. Section maintains an access list. The notification service asks the Track. Section about who has access. Alice: We should probably reverse the dependency between Track. Section and Notification. Service. Instead, the UIClient requests subscriptions from the Track. Section, which checks for access and then calls the Notification. Service. This way, all protected methods are in one place. Dave: This way the Track. Section can also more easily unsubscribe dispatchers when their access is revoked. Ed: Hey, no need for access control in Notification. Service: Dispatchers can see all Track. Sections. As long as the Notification. Service is not used for changing the Track. Section state, there is no need to restrict subscriptions. Alice: But thinking about the access control on notification would be more general. Ed: But more complex. Let’s just separate access control and notification at this point and revisit the issue if the requirements change. Alice: Ok. I’ll take care of revising the Tracking. Subsystem API. . Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Figure 12 -19, Structured minutes for the access control discussion of CTC. STRUCTURED MINUTES: Integration of access control and notification 4. Discussion. . . I[3]: How should access control be integrated with Track. Sections and Notification. Service? P[3. 1]: Track. Sections maintain an access list of who can examine or modify the state of the Track. Section. To subscribe to events, a subsystem sends a request to the Notification. Service, which in turns sends a request to the corresponding Track. Section to check access. P[3. 2]: Track. Sections host all protected operations. The UIClient requests subscription to Track. Section events by sending a request to the Track. Section, which checks access and sends a request to the Notification. Service. A[3. 1] for P[3. 2]: Access control and protected operations are centralized into a single class. P[3. 3]: There is no need to restrict the access to the event subscription. The UIClient requests subscriptions directly from the Notification. Service. The Notification. Service need not check access. A[3. 2] for P[3. 3] Dispatchers can see the state of any Track. Sections (see R[1]). A[3. 3] for P[3. 3]: Simplicity. R[3]: P[3. 3]. See action item AI[2]. . Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20
Figure 12 -21, An example of issue database. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Figure 12 -27, Win Issue Model Taxonomy Category Win Condition involves Issue addresses Option covers Bernd Bruegge & Allen H. Dutoit adopts Agreement Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
- Slides: 22