• Aucun résultat trouvé

How to Improve Decision Documentation in Software Evolution?

N/A
N/A
Protected

Academic year: 2022

Partager "How to Improve Decision Documentation in Software Evolution?"

Copied!
2
0
0

Texte intégral

(1)

How to Improve Decision Documentation in Software Evolution?

Tom-Michael Hesse, Barbara Paech Tobias Roehm, Bernd Bruegge University of Heidelberg Technische Universit¨at M¨unchen

Heidelberg, Germany Munich, Germany

{hesse, paech}@informatik.uni-heidelberg.de {roehm, bruegge}@in.tum.de

Copyright c2014 for the individual papers by the papers’ authors. Copying permitted for private and academic purposes. This volume is published and copyrighted by its editors.

Abstract:This problem statement describes the lack of effective methodologies and tool support for documenting decision knowledge during software evolution. After a brief description and definition of decisions in software evolution, we outline the current mismatch between the need for decision documentation and the effort required for documentation.

1 Introduction and Definitions

Many decisions are made during the entire lifecycle of complex software systems. Those decisions can concern the project or the system and give direction to all areas of de- velopment. For instance, it is decided which requirements to realize, which architecture to implement or which milestones and work items to plan. Decisionsat least comprise a set of alternatives and criteria to evaluate each alternative [NR05]. But they often become much more complex, as alternatives and criteria are related to particular project and system context aspects. Examples are constraints from requirements or assumptions made when analyzing the decision problem. Moreover, similar decision problems can be decided in different ways leading to different outcomes. They depend on the experience and per- sonality of the involved stakeholders and the available time and resources. For instance, a decision can be madenaturalistic. This means matching the given situation to former ones and apply a solution that already succeeded before. Another way is deciding byrational choice and evaluate all available alternatives in detail. Due to these differences, decisions are usually intertwined withrationalesjustifying them.

The underlying project and system context of decisions is likely to evolve over time.

Within this evolution process, former decisions are challenged. They need to be reviewed, adapted or even withdrawn, because the system shall be kept aligned with the changing context. In order to reconsider those previous decisions, developers must retrieve and un- derstand the related knowledge such as assumptions, alternatives or outcomes. Therefore, decisions should be captured and documented in a structured way.

14

(2)

2 Problem Description

However, capture and documentation of decision knowledge often is not performed at a satisfying level. A major reason was identified by a survey by Tang et al., who asked 127 practitioners for their experience with design decision documentation [TBGH06]. They found that designers agree in the benefits from documented decisions and their rationales, but miss methodologies and tool support for documentation. This is particularly true for context knowledge like possible decision downsides. Whereas 61.7% of all study partici- pants agree in the importance of this knowledge, only 35.8% document it.

While documentation of decision knowledge is appreciated by project staff during evolu- tion, it is not performed sufficiently during development. So, decision knowledge erodes over time and can even vaporize completely, if it remains implicit [JB05]. In consequence, understanding and reflecting previous decisions is hindered, what is a fundamental prob- lem for the quality of future decisions. This fundamental problem can be subdivided into three questions regarding capture, structure and usage of decision knowledge (given on first list level) and their detailed contents (given on second list level):

1. How can decision knowledge be captured with as minimal effort for developers as possible?

• How can documentation support for naturalistic decisions in software devel- opment be realized? How can this knowledge be transformed into rational decision making models? For instance, which parts of decision knowledge require manual or automatic capture?

2. Which entities, relations and attributes are best suited to structure and represent decisions in project and system knowledge?

• Which future uses require which entities or relations? For instance, does risk assessment for decisions require documented assumptions?

3. How can captured decision knowledge be exploited in order to support the systems’

evolution?

• What kind of knowledge presentation or aggregation is useful to support which activity? For instance, which knowledge aggregation of decisions can support change impact analysis, project risk management or software maintenance?

References

[JB05] A. Jansen and J. Bosch. Software Architecture as a Set of Archtectural Design Deci- sions. In5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05), pages 109 – 120, 2005.

[NR05] T. Ngo and G. Ruhe.Engineering and Managing Software Requirements, chapter Deci- sion Support in Requirements Engineering. Springer, 2005.

[TBGH06] A. Tang, M. A. Babar, I. Gorton, and J. Han. Survey of Architecture Design Rationale.

Journal of Systems and Software, 79 (12):1792 – 1804, 2006.

15

Références

Documents relatifs

It helps him for considering decisions relative to the three hierarchic levels: (a) design, configuration and sizing of the most critical resources (bottleneck, expensive

Although the Multilayer Perceptron classifier offers a better solu- tion from the data obtained by the Central Moments extractor, the authors perceive similar results from the

R tools can process our dataset using principal component analysis (fig. 11) to disclosure main types of investors to prepare investment plans for them using

There are two important knowledge types: usage knowledge derives from explicit and implicit user feedback and helps to understand how users utilize software.. Decision

Specifically, we presented (i) a methodology to elicit prioritisation DM processes, (ii) the application of the methodology to industrial use cases, (iii) the derivation of the

The paper presents bi-objective models for next release problem and modularization quality problem that characterized by the presence of two conflicting demands,

But the decision is almost always influenced by external factors such as political, cultural and social pressures as the adoption of these tools are

The notion of architectural view / architectural layer / architectural aspect 8 comes from a very natural analogy: Just like in an house architecture we have