Opportunities for Rationale in Software Engineering Category: 2

Despite the challenges to the capture of rationale discussed in Sect. 1.5, there are also specific contexts in SE where the benefits of rationale capture could outweigh the costs. Below we list four contexts suitable for the four categories of uses introduced in Sect.

−Distributed projects. A current trend of SE projects is the outsourcing of development, sometimes to organizations that are in different time zones. This leads to a breakdown in informal communication, where rationale is usually communicated peer-to-peer. Thus, approaches that use rationale to support collaboration could help here.

−Product-line projects. As products become instances of a product line, the life cycle of the product line becomes longer and the number of products that impact its design is high. Rationale can then be used to relate features of the product lines to specific product needs. It also can be used to externalize knowledge to guard against staff turnover. This could be alleviated by rationale uses focusing on reuse and change.

−Safety critical systems. Traceability of decisions is an important prerequisite for high-quality decisions, in particular when dealing with change requests. Some organizations such as EUROCONTROL require this explicitly. Rationale can support this traceability. Clearly, rationale focusing on quality is most valuable here. Furthermore, in this context the high cost of failure changes the perception of the cost involved in rationale management COTS-based or mobile systems. When systems are assembled from existing parts (either at deployment time of even at execution time in case of mobile systems) rationale can be useful to externalize knowledge between customer and supplier. Approaches focusing on knowledge transfer are most valuable here.