150 likes | 354 Views
JASS 2006. Advanced Topics in Software Engineering Rationale Management. Motivation. Example: Slicing Ham. What is Rationale Management?. Rationale Justification for decisions Rationale Management Capture and organize rationales in Problem Possible solutions Arguments Criteria
E N D
JASS 2006 Advanced Topics in Software Engineering Rationale Management
Motivation Example: Slicing Ham
What is Rationale Management? • RationaleJustification for decisions • Rationale Management Capture and organize rationales in • Problem • Possible solutions • Arguments • Criteria • Decision • Other models tell how – rationale tells why
Why Rationale Management? (I) • Improves Decision making process: • Explicitly splits decision making process into its elements (criteria, priorities, …) • Therefore enables more educated decisions • Makes later changes easier and safer: • Captures knowledge that is not included elsewhere and makes it reusable • Reminds developers of requirements that need to be considered
Why Rationale Management? (II) • Helps new developers • Keeps the reasoning reproducible and comprehensible for third persons • Explains why the model is as it is • Problems • Big investment for gathering and maintaining additional information • Rationale models get very large
Transfer Question Example: Cookbook
Elements of a rationale • Issueunsolved question • Proposalpossible solutions to issue • Criterionqualities proposals should have • Argumentdiscussion for/against proposalssupported by criteria • Resolutionselected solution to issue
Representation of rationales - example storage in database:Resolution resolves storage?:Issue addressed by addressed by database:Proposal files:Proposal raises fails fails which Database?:Issue is opposed by meets meets flexibility$:Criterion simplicity$:Criterion is supported by extensibility-first:Argument
Where can rationales be captured? • Requirements analysisUseful for developing test cases • System designLinks nonfunctional requirements to design goals (important if requirements change) • Project managementDocuments alternatives and risks, can provide fallback solutions • Integration and testingDetermine which decision created conflict
Levels of rationale capture • No explicit rationale captureRationale in E-mails, memos, memories … • Rationale reconstructionCapture rationale afterwards / less detail • Rationale captureRationale model besides other models • Rationale integrationRationale is central model
Capturing Rationale Activities • MeetingsTake minutes, decompose into elements of rationales • Electronic communicationIntegrate rationale model into groupware • ChangesAdapt rationale model, new resolutions • Reconstructing rationaleConstruction of rationale model based on memory and actual system model
Managing rationale Rationale management hardly used in industry • Additional effort • No direct connection between effort and benefit subject for management • Include rational model in development tools • Assign Responsibilities • Minute taker • Rationale editor • Reviewer
Summary Capturing rationale model is • great effort but has • huge benefits Goal: Improvements in capturing and maintaining rationales to make rational management more common
Conservative view & optimization • The major goals of management • Traditional management models • Difference between models • Optimization examples • Rational management implementation Rational models integration experience
Questions ? Source: B. Bruegge & A. Dutoit.Object-Oriented Software Engineering(Second edition, International edition)Pearson Prentice Hall, 2004.