FG Praktische Informatik / Softwaresystemtechnik
Refine
Year of publication
Document Type
Way of publication
- Open Access (3)
Keywords
- Softwaretechnik (10)
- Konfigurationsmanagement (4)
- Produktlinien (4)
- software evolution (4)
- Applications (2)
- Capture (2)
- Clustering (2)
- Design Rationale (2)
- Research Proposal (2)
- Softwaremetriken (2)
Institute
Modeling tools are commonly adopted in classrooms. However, complex state-based behavioral models still pose a challenge for students to understand and validate, mostly because of the intricate semantics of these models. We investigated this challenge and developed dedicated tool support in the form of a validation framework based on the YAKINDU Statechart Tools. Our validation framework simulates environments that interact with the code generated from statecharts as a means to animate various open-ended scenarios and predefined test cases that challenge the students' models. This enables short and user-friendly feedback cycles, which lowers the barrier for students to learn state-based behavioral models. We designed the validation framework to be extensible and made it available as an open source project together with two example environments and complete teaching materials. We report on our experiences in two undergraduate modeling courses (approx. 100 students each). Our results are promising in the sense that we detected positive effects of tool adoption and a surprising lack thereof, which we discuss w.r.t. lessons learned and future work.
Requirements are identified and elaborated on the basis of stakeholders' decisions. The reasoning behind those decisions can be expressed as rationales. Systematic rationale management offers both short-term benefits, such as clearer requirements leading to fewer defects, and long-term benefits, such as simplified requirements evolution. However, little guidance exists for managing requirements rationales. This article presents guidelines to pragmatically capture, trace, maintain, and reuse such rationales. A list of questions augments the guidelines, improving their usability.
Software cities are visualizations of software systems in the form of virtual cities. They are used as platforms to integrate a large variety of product- and process-related analysis data. Their usability, however, for real-world software development often suffers from their inability to appropriately deal with software changes. Even small structural changes can disrupt the overall structure of the city, which in turn corrupts the mental maps of its users. In this article we describe a systematic approach to utilize the city metaphor for the visualization of evolving software systems as growing software cities. The main contribution is a new layout approach which explicitly takes the development history of software systems into account. The approach has two important effects: first, it creates a stable gestalt of software cities even when the underlying software systems evolve; thus, by preserving its users’ mental maps these cities are especially suitable for use during ongoing system development. Second, it makes history directly visible in the city layouts, which allows for supporting novel analysis scenarios. We illustrate such scenarios by presenting several thematic cities’ maps, each capturing specific development history aspects.
Abstract. In this paper we describe a systematic approach to utilize the citymetaphor for the visualization of large software systems asevolving software cities. The main contribution is a new layoutapproach which explicitly takes the development history ofsoftware systems into account and makes history directly visiblein the layouts. These layouts incrementally evolve in a verysmooth and stable way during the development of the representedsoftware system. They are used as a visualization platform forintegrating a large variety of product and process data and thuscreate a coherent set of specialized visualizations. To illustratethis we present some example maps capturing specificdevelopment history aspects.
Coherent Software Cities are a software visualization approach which adopts the city metaphor to support the comprehension of various aspects of evolving software systems. For this purpose, the approach implements a three-staged modeling chain yielding coherent sets of application specific visualizations. In this context, a new layout approach for software cities is presented, which explicitly takes development history into account. Its effects are twofold: First, evolution becomes visible in the layouts, which allows for supporting new application scenarios. Second, layouts evolve smoothly and stable during system evolution, which allows software cities to be used online, i.e. during ongoing system development and maintenance.
Anpaßbare, explorierbare virtuelle Informationsräume zur Qualitätsbewertung großer Software-Systeme
(2001)
Metrics Based Refactoring
(2001)
In this chapter we introduce the concept of structural quality assessments for industrial software systems (especially object-oriented code). Such a quality assessment can be used both to determine the current state with respect to quality and to plan further actions, i.e. reengineering steps, process adjustments or further education of engineers in an ongoing project. The assessment itself is based on an innovative software analysis workbench that integrates multiple interdependent views on a software system into a coherent analysis environment. These views provide information on four aspects: user-defined metrics and query results with high-level information about the system, detailed cross-reference information, browsing views and diagrams to support efficient understanding of the structure. The workbench applies powerful static analysis techniques on the source code under consideration and uses it to generate, access, visualise and browse the different views and analysis results. For practical assessments the workbench is used in a well-defined process such that a first quality assessment of large systems can be done within a very short period of time.
The quality assessment described here has been applied in various projects. In order to illustrate the results that such an assessment gives for project management, developers or managers of an outsourced project this paper ends with a short description of a typical example project. This is one of the projects supported jointly by SQS and the Software Systems Engineering Research Group Cottbus
In order to increase the level of efficiency and automation, we propose a conceptual model and corresponding tool support to plan and manage the systematic evolution of softwareintensive systems, in particular software product lines (SPL). We support planning on a high abstraction level using decision-making concepts like goals, options, criteria, and rationale. We extend earlier work by broadening the scope in two dimensions: 1) in time, supporting continuous planning over long periods of time and many releases, and 2) in space, supporting traces from high-level decisions down to the implementation. We present a metamodel which allows to represent these concepts, corresponding prototypical tool support, and a first example case using data extracted from an open-source project, Eclipse SWT.
Documenting design rationale (DR) helps to preserve knowledge over long time to diminish software erosion and to ease maintenance and refactoring. However, use of DR in practice is still limited. One reason for this is the lack of concrete guidance for capturing DR. This paper provides a first step towards identifying DR questions that can guide DR capturing and discusses required future research.