Software Engineering Using RATionale
Many decisions have to be made when developing a software system and a successful outcome depends on how well thought out these decisions were. One way that the decisions made, and alternatives considered, can be captured is in the rationale for the system. The rationale goes beyond standard documentation by capturing the developers' intent and all alternatives considered rather than only those selected. While the potential usefulness of this information is seldom questioned, it typically is not captured in practice. We feel that the key to motivating capture is to provide compelling uses and tool support integrated with the development environment. Here we describe the Software Engineering Using RATionale system which inferences over the rationale to evaluate decision alternatives and perform impact assessment when requirements, development criteria, and assumptions change.