Thirty years ago, I first entered the dark realm of software engineering, through a prior interest in documentation. In those days, documentation pretty much meant functional specifications. The idea that stakeholders in a system (its implementers, its end-users, its maintainers, and so forth) might want something other than an alphabetic list of function definitions was just taking hold. There was an exciting (to me) vision of stakeholders accessing and contributing to explanations of how and why aspects of a system work as they do, tradeoff analysis of concomitant downsides, and perhaps even accounts of why other possible approaches were not followed. There were many challenges to overcome in achieving this vision. The most formidable is the belief that people do not like to create or use do- mentation. This negative image of documentation is (unfortunately) more than just the bias of a few incorrigible system developers. It is more like a deep truth about human information behavior, about how human beings construe and act towards information. Humans are, by default, active users of information; they want to try things out, and get things done. When documentation is interposed as a prerequisite between people and a desired activity, they try to skip through it, circumvent it, or undermine it. Desi- ing information to suit the needs and interests of its users is an abiding challenge, but we have come a long way from functional specifications as the only answer.
विषयसूची
Fundamentals – Rationale Representation, Capture, and Use.- Rationale Management in Software Engineering: Concepts and Techniques.- Three Studies of Design Rationale as Explanation.- Effective Design Rationale: Understanding the Barriers.- Rationale as a By-Product.- Hypermedia Support for Argumentation-Based Rationale.- Rationale Management for Requirements Engineering.- A Hybrid Approach to Upstream Requirements: IBIS and Cognitive Mapping.- From DREAM to Reality: Specificities of Interactive Systems Development With Respect To Rationale Management.- The Win Win Approach: Using a Requirements Negotiation Tool for Rationale Capture and Use.- Design Rationale in Exemplary Business Process Modeling.- Promoting and Supporting Requirements Engineering Creativity.- Design Rationale and Software Architecting.- A Framework for Supporting Architecture Knowledge and Rationale Management.- Capturing and Using Rationale for a Software Architecture.- Rationale-Based Support for Software Maintenance.- The Role of Rationale in the Design of Product Line Architectures – A Case Study from Industry.- The Role and Impact of Assumptions in Software Engineering and its Products.- Design Decisions: The Bridge between Rationale and Architecture.- Rationale for Organizing Bodies of Knowledge.- Reusable Rationale Blocks: Improving Quality and Efficiency of Design Choices.- Defining Agile Patterns.- Capturing and Reusing Rationale Associated with Requirements Engineering Process Improvement: A Case Study.- Using Patterns for Sharing Requirements Engineering Process Rationales.