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

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Rationale Management Bernd Brügge Allen Dutoit Technische Universität München.
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 12, Rationale Management.
Presentation material is based on notes from Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 ECE.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 6, System Design: Decomposing the System.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Example of a Problem Statement: Introduction into.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies: Scrum.
IS 4420 Database Fundamentals Leon Chen. 2 Agenda About yourself About yourself  Name  Major About the instructor About the instructor Syllabus Syllabus.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1 Utdrag ur Bruegges OH-bilder för första.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Defining access control, example Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Defining persistent data stores, example Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS Design goals and System Decomposition, example Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Identifying boundary conditions, example Päivi Ovaska.
CSCI 639 Topics in Software Engineering Assignment #5 Fall 2008.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 9, Testing.
March 20, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #17 Tuesday, March 20, 2001.
1 System Design: Addressing Design Goals We are starting from an initial design, along with a set of design goals. What is the next step?
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Conquering Complex and Changing Systems Object-Oriented Software Engineering System Design:Hardware/ software mapping, example Päivi Ovaska.
Oct. 30, 2003CS WPI1 CS 509 Design of Software Systems Lecture #9 Thursday, Oct. 30, 2003.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 12: Rationale Management.
Tyutyunnick Pavel Stefan Puchner Steklov Institute St. Petersburg, Technical University.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Requirements Analysis Document Template 1.Introduction.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
The Design Discipline.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 11, Project Management.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 3, Project Communication.
Rationale Management Chapter 12. An aircraft example A320  First fly-by-wire passenger aircraft  150 seats, short to medium haul A319 & A321  Derivatives.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 15, Software Life Cycle.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Meeting Management with Scrum.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 3, Project Communication.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 12, Software Life Cycle.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing.
SYSC 4106/TTMG Software Project Management6-1 Rationale Management Sources: 1.B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering:
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 12, Rationale Management.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
CEN Advanced Software Engineering
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 7 System Design: Addressing Design Goals.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 13, Configuration Management.
Oct R McFadyen1 Facade P Problem: There are a set of classes, a subsystem, that you need to interact with for some purpose, but you don’t.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 7, 2001 Project.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 1, Introduction to Software Engineering.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 7, 2001 Rationale.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Two New UML Diagram Types Component Diagram Deployment Diagram.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Cliquez pour modifier le style du titre Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième.
Chapter 12, Rationale Based Meeting Management
Chapter 16, Meeting Management with Scrum
Web Software Model CS 4640 Programming Languages for Web Applications
Model-View-Controller Patterns and Frameworks
Advance Software Engineering (CEN-5011)
Chapter 12, Rationale Based Meeting Management
Addressing Design Goals
Back end Development CS Programming Languages for Web Applications
Presentation transcript:

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

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

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?

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

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.

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.

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.

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.

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

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

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

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

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 Figure 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.

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 Agenda for the access control discussion of CTC.

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 Figure 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)

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16 Figure 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)

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17 Figure 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).

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 Chronological minutes for the access control discussion of CTC.

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 Structured minutes for the access control discussion of CTC.

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20 Figure 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.