Presentation is loading. Please wait.

Presentation is loading. Please wait.

Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 8, Rationale Management.

Similar presentations


Presentation on theme: "Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 8, Rationale Management."— Presentation transcript:

1 Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 8, Rationale Management

2 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Figure 8-1. An example of a CTC track section display (simplified for this example).

3 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Figure 8-2. An example of issues (UML object diagram). How soon should a dispatcher be notified of a train delay? How should persistent data be stored? Which technology presents the most risk?

4 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 input?:Issuedisplay?:Issue How should track sections be displayed? How should the dispatcher input commands? Figure 8-3. CTC interface issues (UML object diagram).

5 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 input?:Issue addressed by display?:Issue text-based:Proposalpoint&click:Proposal The interface for the dispatcher could be realized with a point & click interface. The display used by the dispatcher can be a text only display with graphic characters to represent track segments. terminal?:Issue raises Which terminal emulation should be used for the display? Figure 8-4. An example of proposals and consequent issue (UML object diagram). Proposals and consequent issue are emphasized in red.

6 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 input?:Issue availability$:Criterionusability$:Criterion terminal?:Issue addressed by raisesmeets fails meets fails display?:Issue point&click:Proposal The time to input commands should be less than two seconds. The CTC system should have at least a 99% availability. text-based:Proposal Figure 8-5. An example of criteria and assessments (UML object diagram). Criteria are emphasized in red. A negative assessment is indicated by an association labeled fails, whereas positive assessments are indicated with an association labeled meets.

7 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 input?:Issue availability$:Criterionusability$:Criterion terminal?:Issue addressed by raisesmeets fails meets fails availability-first!:Argument is supported by is opposed by display?:Issue point&click:Proposal 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. text-based:Proposal Figure 8-6. An example of an argument (UML object diagram). Argument is emphasized in red.

8 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 input?:Issue availability$:Criterionusability$:Criterion terminal?:Issue addressed by raisesmeets fails meets fails availability-first!:Argument is supported by is opposed by text-based&keyboard :Resolution resolves display?:Issue point&click:Proposal text-based:Proposal Figure 8-7. An example of closed issue (UML object diagram). Resolution emphasized in red.

9 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 investigateTerm:ActionItemupdateSDD:ActionItem text-based & keyboard :Resolution is implemented by For Alice. Update the SDD to reflect the text- based&keyboard resolution. For Dave. Investigate different terminal emulation and their advantages for displaying TrackSections. Figure 8-8. An example of implementation of a resolution (UML object diagram). ActionItems emphasized in red

10 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Figure 8-9. The IBIS model (UML class diagram).

11 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11 Figure 8-10. Decision Representation Language (UML class diagram).

12 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Figure 8-11. Questions, Options, Criteria model (UML class diagram).

13 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 Figure 8-12. Subsystem decomposition for CTC (UML deployment diagram). The state of the system is maintained by a mainServer. A hotBackup of the mainServer stands by in case the mainServer fails. The mainServer sends commands and receives state transitions from the tracks via the ModemPool.

14 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 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 NotificationService and TrackingSubsystem, 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’ TrackSections ? I[2]: Can a dispatcher modify another dispatchers’ TrackSections ? I[3]: How should access control be integrated with TrackSections and NotificationService ? 5. Wrap up [Allocated time: 5 minutes] Review and assign new action items. Meeting critique. Figure 8-13. Agenda for the access control discussion of CTC.

15 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 Figure 8-14. Proposal P[1]: The access is controlled by the TrackSection object with an access list. The NotificationService queries the TrackSection to determine if a subsystem can receive notices about a given TrackSection. (UML collaboration diagram)

16 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16 Figure 8-15. Proposal P[2]: The UIClient subscribes to track section events via the subscribeToEvents() operation on the TrackSection. The TrackSection checks access and then invokes the subscribeToTrackSectionEvents() operation on the NotificationService. The NotificationService is not accessible to the UIClient class. (UML collaboration diagram)

17 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17 Figure 8-16. Proposal P[3]: The access to operations that modify TrackSections is controlled by the TrackSection object with an access list. The NotificationService need not be part of the access control, because every dispatcher can see changes of state (UML collaboration diagram).

18 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18 CHRONOLOGICAL MINUTES: Integration of access control and notification 4. Discussion... I[3]: How should access control be integrated with TrackSections and NotificationService ? Dave: The TrackSection maintains an access list. The notification service asks the TrackSection about who has access. Alice: We should probably reverse the dependency between TrackSection and NotificationService. Instead, the UIClient requests subscriptions from the TrackSection, which checks for access and then calls the NotificationService. This way, all protected methods are in one place. Dave: This way the TrackSection can also more easily unsubscribe dispatchers when their access is revoked. Ed: Hey, no need for access control in NotificationService : Dispatchers can see all TrackSections. As long as the NotificationService is not used for changing the TrackSection 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 TrackingSubsystem API.... Figure 8-17. Chronological minutes for the access control discussion of CTC.

19 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19 STRUCTURED MINUTES: Integration of access control and notification 4. Discussion... I[3]: How should access control be integrated with TrackSections and NotificationService ? P[3.1]: TrackSections maintain an access list of who can examine or modify the state of the TrackSection. To subscribe to events, a subsystem sends a request to the NotificationService, which in turns sends a request to the corresponding TrackSection to check access. P[3.2]: TrackSections host all protected operations. The UIClient requests subscription to TrackSection events by sending a request to the TrackSection, which checks access and sends a request to the NotificationService. 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 NotificationService. The NotificationService need not check access. A[3.2] for P[3.3] Dispatchers can see the state of any TrackSections (see R[1]). A[3.3] for P[3.3]: Simplicity. R[3]: P[3.3]. See action item AI[2].... Figure 8-18. Structured minutes for the access control discussion of CTC.

20 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20 Figure 8-20. An example of issue database (LN IBIS database template in Domino Lotus Notes). Developers can access and post issues, proposals, arguments, and resolutions with Web forms.


Download ppt "Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 8, Rationale Management."

Similar presentations


Ads by Google