SYSC 4106/TTMG 5006 - Software Project Management6-1 Rationale Management Sources: 1.B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering:

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.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Computer Science Department
CS487 Software Engineering Omar Aldawud
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Chapter 3 Process Models
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Chapter 6: Design of Expert Systems
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Requirements Analysis INCOSE Systems Engineering Boot Camp
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Dealing.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] February 10, 2009.
March 20, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #17 Tuesday, March 20, 2001.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Managing Reuse Presented by: Aisha Al-Hammadi. Outline Introduction History. The technical and managerial advantages of Reusing Solutions. The main challenges.
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.
Dealing with NFRs Vahid Jalali Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory,
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
Software Engineering Muhammad Fahad Khan
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Rationale Management Chapter 12. An aircraft example A320  First fly-by-wire passenger aircraft  150 seats, short to medium haul A319 & A321  Derivatives.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
Software Requirements Engineering CSE 305 Lecture-2.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Software Project Management
© Mahindra Satyam 2009 Decision Analysis and Resolution QMS Training.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 8, Rationale Management.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 12, Rationale Management.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Approaching a Problem Where do we start? How do we proceed?
1 Introduction to Software Engineering Lecture 1.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Systems Development Life Cycle
Human Computer Interaction
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
CSE 303 – Software Design and Architecture
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 7, 2001 Rationale.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Advanced Software Engineering Dr. Cheng
Iterative design and prototyping
IEEE Std 1074: Standard for Software Lifecycle
Chapter 12, Rationale Management
HCI in the software process
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Software Requirements analysis & specifications
CS 790M Project preparation (I)
Advance Software Engineering (CEN-5011)
Chapter 2 – Software Processes
HCI in the software process
HCI in the software process
Human Computer Interaction Lecture 14 HCI in Software Process
CS 426 CS 791z Topics on Software Engineering
CS 426 CS 791z Topics on Software Engineering
Presentation transcript:

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 (Chapter 12)

SYSC 4106/TTMG Software Project Management6-2 An aircraft example A320  First fly-by-wire passenger aircraft  150 seats, short to medium haul A319 & A321  Derivatives of A320  Same handling as A320 Design rationale  Reduce pilot training & maintenance costs  Increase flexibility for airline

SYSC 4106/TTMG Software Project Management6-3 An aircraft example (2) A330 & A340  Long haul and ultra long haul  2x seats, 3x range  Similar handling as the A320 family Design rationale  With minimum cross training, A320 pilots can be certified to fly A330 and A340 airplanes Consequence  Any change in these five airplanes must maintain this similarity

SYSC 4106/TTMG Software Project Management6-4 Overview: rationale  What is rationale?  Why is it critical in software engineering?  Centralized traffic control example  Rationale in project management  Consensus building  Consistency with goals  Rapid knowledge construction  Summary

SYSC 4106/TTMG Software Project Management6-5 What is rationale? Rationale is the reasoning that lead to the system. Rationale includes:  the issues that were addressed,  the alternatives that were considered,  the decisions that were made to resolve the issues,  the criteria that were used to guide decisions, and  the debate developers went through to reach a decision.

SYSC 4106/TTMG Software Project Management6-6 Why is rationale important in software engineering? Many software systems are like aircraft: They result from a large number of decisions taken over an extended period of time.  Evolving assumptions  Legacy decisions  Conflicting criteria -> high maintenance cost -> loss & rediscovery of information

SYSC 4106/TTMG Software Project Management6-7 Uses of rationale in software engineering  Improve design support  Avoid duplicate evaluation of poor alternatives  Make consistent and explicit trade-offs  Improve documentation support  Makes it easier for non developers (e.g., managers, lawyers, technical writers) to review the design  Improve maintenance support  Provide maintainers with design context  Improve learning  New staff can learn the design by replaying the decisions that produced it

SYSC 4106/TTMG Software Project Management6-8 Representing rationale: issue models Argumentation is the most promising approach so far:  More information than document: captures trade-offs and discarded alternatives that design documents do not.  Less messy than communication records: communication records contain everything. Issue models represent arguments in a semi-structure form:  Nodes represent argument steps  Links represent their relationships

SYSC 4106/TTMG Software Project Management6-9 Decision: Smart Card + PIN ATM Example Question: Alternative Authentication Mechanisms? References: Service: Authenticate Option 1: Account number Option 2: Finger print reader Option 3: Smart Card + PIN Criteria 1: ATM Unit Cost Criteria 2: Privacy + + +– +–

SYSC 4106/TTMG Software Project Management6-10 Centralized traffic control  CTC systems enable dispatchers to monitor and control trains remotely  CTC allows the planning of routes and replanning in case of problems

SYSC 4106/TTMG Software Project Management6-11 Centralized traffic control (2) CTC systems are ideal examples of rationale capture:  Long lived systems (some systems include relays installed last century)  Extended maintenance life cycle  Although not life critical, downtime is expensive  Low tolerance for bugs  Transition to mature technology

SYSC 4106/TTMG Software Project Management6-12 display?:Issueinput?:Issue Issues  Issues are concrete problem which usually do not have a unique, correct solution.  Issues are phrased as questions. How should the dispatcher input commands? How should track sections be displayed?

SYSC 4106/TTMG Software Project Management6-13 display?:Issue addressed by input?:Issue text-based:Proposalpoint&click:Proposal Proposals  Proposals are possible alternatives to issues.  One proposal can be shared across multiple issues. 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.

SYSC 4106/TTMG Software Project Management6-14 display?:Issue terminal?:Issue addressed by raises input?:Issue text-based:Proposalpoint&click:Proposal Consequent issue  Consequent issues are issues raised by the introduction of a proposal. Which terminal emulation should be used for the display?

SYSC 4106/TTMG Software Project Management6-15 display?:Issue availability$:Criterionusability$:Criterion terminal?:Issue addressed by raisesmeets fails meets fails input?:Issue text-based:Proposalpoint&click:Proposal Criteria  A criteria represent a goodness measure.  Criteria are often design goals or nonfunctional requirements. The CTC system should have at least a 99% availability. The time to input commands should be less than two seconds.

SYSC 4106/TTMG Software Project Management6-16 Arguments  Arguments represent the debate developers went through to arrive to resolve the issue.  Arguments can support or oppose any other part of the rationale.  Arguments constitute the most part of rationale.

SYSC 4106/TTMG Software Project Management6-17 Arguments (2) display?:Issue availability$:Criterionusability$:Criterion terminal?:Issue addressed by raisesmeets fails meets fails availability-first!:Argument is supported by is opposed by input?:Issue text-based:Proposalpoint&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.

SYSC 4106/TTMG Software Project Management6-18 Resolutions  Resolutions represent decisions.  A resolution summarizes the chosen alternative and the argument supporting it.  A resolved issue is said to be closed.  A resolved issue can be re-opened if necessary, in which case the resolution is demoted.

SYSC 4106/TTMG Software Project Management6-19 Resolutions (2) display?: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 input?:Issue text-based:Proposalpoint&click:Proposal

SYSC 4106/TTMG Software Project Management6-20 Questions, Options, Criteria  Designed for capturing rationale after the fact (e.g., quality assessment).  QOC emphasizes criteria Option !Criterion $ Question ? positive assessment + negative assessment - consequent question response Argument. supports + objects-to - supports + objects-to -

SYSC 4106/TTMG Software Project Management6-21 Other issue models: Decision Representation Language

SYSC 4106/TTMG Software Project Management6-22 Overview: rationale  What is rationale?  Why is it critical in software engineering?  Centralized traffic control example  Rationale in project management  Consensus building (WinWin)  Consistency with goals (NFR Framework)  Rapid knowledge construction (Compendium)  Summary

SYSC 4106/TTMG Software Project Management6-23 Consensus building Problem  Any realistic project suffers the tension of conflicting goals  Stakeholders come from different background  Stakeholders have different criteria Example  Requirements engineering  Client: business process (cost and schedule)  User: functionality  Developer: architecture  Manager: development process (cost and schedule)

SYSC 4106/TTMG Software Project Management6-24 Consensus building: WinWin  Incremental, risk-driven spiral process  Identification of stakeholders  Identification of win conditions  Conflict resolution  Asynchronous groupware tool  Stakeholders post win conditions  Facilitator detects conflict  Stakeholders discuss alternatives  Stakeholders make agreements

SYSC 4106/TTMG Software Project Management6-25 Consensus building: Model

SYSC 4106/TTMG Software Project Management6-26 Consensus building: Process 2. Identify stakeholders’ win conditions 3. Reconcile win conditions. Establish alternatives. 4. Evaluate & resolve risks. 5. Define solution 6. Validate 7. Review & commit 1. Identify stakeholders

SYSC 4106/TTMG Software Project Management6-27 Consensus building: Experiences Context  Initial case studies used project courses with real customers  Used in industry Results  Risk management focus  Trust building between developers and clients  Discipline  Inadequate tool support

SYSC 4106/TTMG Software Project Management6-28 Consistency with goals Problem  Once multiple criteria have been acknowledged  Find solutions that satisfy all of them  Document the trade-offs that were made Example  Authentication should be secure, flexible for the user, and low cost.

SYSC 4106/TTMG Software Project Management6-29 Consistency with goals: NFR Framework  NFR goal refinement  NFRs are represented as goals in a graph  Leaf nodes of the graph are operational requirements  Relationships represent “help” “hurt” relationships  One graph can represent many alternatives  NFR evaluation  Make and break values are propagated through the graph automatically  Developer can evaluate different alternatives and compare them

SYSC 4106/TTMG Software Project Management6-30 Consistency with goals: Model   

SYSC 4106/TTMG Software Project Management6-31 Consistency with goals: Process Elicit high-level goals Refine into detailed goals Identify goal dependencies Identify operational goals Evaluate alternatives

SYSC 4106/TTMG Software Project Management6-32 Consistency with goals: Experiences  Case studies on existing systems lead to clearer trade-offs  Research into integrating NFR framework and design patterns  Match NFRs to design pattern “Forces”  Link NFRs, design patterns, and functional requirements  Tool support inexistent

SYSC 4106/TTMG Software Project Management6-33 Rapid knowledge construction Problem  When a company is large enough, it doesn’t know what it does.  Knowledge rarely crosses organizational boundaries  Knowledge rarely crosses physical boundaries Example  Identify resources at risk for Y2K and prioritize responses.

SYSC 4106/TTMG Software Project Management6-34 Rapid knowledge construction: Compendium  Meeting facilitation  Stakeholders from different business units  External facilitator  Real-time construction of knowledge maps  The focus of the meeting is a concept map under construction  Map includes the issue model nodes and custom nodes (e.g., process, resource, etc.)  Knowledge structuring for long term use  Concept map exported as document outline, process model, memos, etc.

SYSC 4106/TTMG Software Project Management6-35 Rapid knowledge construction: Model

SYSC 4106/TTMG Software Project Management6-36 Rapid knowledge construction: Process example

SYSC 4106/TTMG Software Project Management6-37 Rapid knowledge Construction: Experiences Context  Several industrial case studies, including Y2K contingency planning at Bell Atlantic Results  Increased meeting efficiency (templates are reused)  Knowledge reused for other tasks

SYSC 4106/TTMG Software Project Management6-38 Summary  Rationale can be used in project management  To build consensus (WinWin)  To ensure quality (NFR Framework)  To elicit knowledge (Compendium)  Other applications include  Risk management  Change management  Process improvement  Open issues  Tool support  User acceptance