Publications about Rationale

Using Rationale for Software Engineering Education; A.H. Dutoit, T. Wolf, B. Paech, L. Borner, J. Rückert

In 18th Conference on Software Engineering Education and Training (CSEE&T 2005), Ottawa, Canada, April 2005

Abstract:

Software engineering courses often use industrial modeling tools for their infrastructure, as it exposes students to the state-of-the practice and increases their awareness about the complexity of their craft. However, this approach has the risk of expending a disproportionate amount of effort on tools as opposed to teaching concepts. Moreover, industrial tools often do not include didactic concepts needed for education.

In this paper, we discuss our experience with an integrated, rationale-based modeling tool in a variety of software engineering courses. By providing an integrated modeling environment, students use a single tool for requirements, system design, test planning, and collaboration. By attaching rationale to the models, students are encouraged to reflect on their work while instructors canmonitor them and provide more insightful feedback.

Eliciting and Maintaining Knowledge for Requirements Evolution; A.H. Dutoit, B. Paech

In A. Aurum, R. Jeffery, Claes Wohlin, & M. Handzic (Eds.) Managing Software Engineering Knowledge.Springer Verlag, September, 2003.

Abstract:

Two of the biggest challenges in knowledge management are to make tacit knowledge explicit and to keep explicit knowledge up-to-date. In this chapter, we focus on how to manage knowledge about a software system with respect to change, so that changes can be evaluated and realized with less effort and without reducing quality. We use a rationale-based approach for making explicit change knowledge and the knowledge activities that need to occur during requirements specification and evolution. The knowledge activities keep the requirements and the change knowledge up-to-date. While these issues have been examined to some extent independently in the requirements, change, and knowledge management communities, we focus on the integration of methods from all three communities. The goal of the chapter is to illustrate the synergy effects and resulting benefits that occur when interleaving knowledge and requirements activities

Keywords: Requirements evolution; Knowledge management; Rationale; Traceability; QOC.

Building Awareness in Distributed Software Enginering: Using Issues as Context; R. Kobylinski, O. Creighton, A.H. Dutoit, B. Bruegge

International Workshop on Distributed Software Development, International Conference on Software Engineering. Orlando, Florida, May 21, 2002.

Abstract:

In this paper, we propose an awareness system that enables participants to monitor the activities of others over a wide range of artifacts (e.g., system artifacts, organizational charts, or rationale models). Participants can subscribe to be notified when specific system artifacts are modified, when specific participants trigger an activity, or when participants trigger activities related to specific issues. Relationships among the system, organizational, and rationale models are then used to provide observers a context to interpret the activities of others. By providing context in terms of issues (as opposed to only system or communication artifacts), we hope to disseminate richer and more targeted awareness information, hence creating more opportunities for informal information exchanges and for distributed collaboration.

Rationale Management in Software Engineering; A.H. Dutoit, B. Paech

In S.K. Chang (Ed.) Handbook of Software Engineering and Knowledge Engineering. World Scientific, December 2001.

Abstract:

In this chapter, we motivate and describe the use of rationale knowledge during software development. Rationale methods aim at capturing, representing, and maintaining records about why developers have made the decisions they have. They improve the quality of decisions through clarification of issues and their related tradeoffs. Moreover, they facilitate the understanding and reevaluation of decisions, which is an important prerequisite for managing change during software development. While there are several approaches for dealing with rationale knowledge, the systematic integration of rationale into software engineering processes and tools has yet to happen.

In this chapter, we first introduce the fundamental rationale concepts. Next, we identify the knowledge management tasks that are related to identifying, eliciting, organizing, disseminating, and using rationale knowledge. Based on this, we survey representative rationale methods and illustrate the issues involved with a more detailed example on rationale management for requirements. We conclude with a discussion of open issues and future directions in rationale research.

Keywords: Design rationale; Software evolution; Negotiation; Issue model; QOC; IBIS.