Formal Analysis of Multi-Dimensional Model Dependencies
Formal Analysis of Multi-Dimensional Model Dependencies
Disciplines
Computer Sciences (100%)
Keywords
-
Software Design,
UML Unified Modeling Language,
Tracability,
Inconsistencies,
Impact Of A Change,
Feature Location
Models are an indispensable tool for software development. They help developers curb system complexity; they also help the many stakeholders convey their concerns to other stakeholders in a manner that is understandable to both and that will ensure the proper treatment of those concerns. However, today, modeling focuses mostly on the contents of models - their insides - and not their connectedness (dependencies) to other models, requirements, and code. The latter is of vital important for understanding the collective meaning of models (analysis, impact of a change, validation and verification). Model dependencies are sometimes implicit in a modeling language but are often expressed explicitly via traceability links. These links are simple and herein lays the single biggest misperception in software modeling: dependencies among semantically rich models cannot actually be described via simple, independent links. Because of this misperception, the gaps between requirements, models, and code are bigger than ever and the most significant obstacle to model-driven development. The goal of this work is to understand the dependencies among models. Model dependencies may be semantically poor (compared to models and their contents) but such dependencies cannot be set arbitrarily - or else they risk violating the meaning and content of the models involved. The proposed work will build a well-defined, theoretic foundation for reasoning about model dependencies, by: 1) analyzing how the semantics (meaning) of models affect model dependencies 2) analyzing how dependencies among models affect dependencies among other models As there are n2 model dependencies among n models, we speak of n2 dimensions to be considered. Almost all current state of the art investigates these dimensions of model dependencies separately, which is weak. Herein lays the power of multi-dimensions reasoning on model dependencies: every dimension of model dependencies (among models, requirements, or code) describes another angle of the overarching traceability problem with implications onto model dependencies everywhere (a crosscutting problem). By integrating these model dependencies, this work will improve trace capture and maintenance. The direct practical implications of this proposed work are improved automation during trace capture and maintenance, higher quality of trace links, and less human intervention (n instead of n2 ). The indirect, more significant benefit of this proposed work is its fundamental role in integrating models and thus its vital support to model-driven software development. Not only software engineering benefits from this work but also other domains and disciplines where model-driven engineering is practiced.
There is more to software development than requirements and code. Developers routinely capture use cases and scenarios to describe workflows. Structural models (architectures, class diagrams) help developers break down complex tasks/systems in smaller, more manageable parts. State machines in turn describe the essential system behaviour. Today, developers use many models to help describe a software system and curb its complexity. The use of such models, however, also has a severe downside. Their very benefit, the separation of concerns, is also the foundation to their very problem. At the end, the separate models should make up a coherent software system. This is where traceability comes in. Traceabiliy describes how artifacts in different models are connected. Such traces are essential for software understanding, change management, error detection, and any forms of analysis. The lack thereof is recognized as a problem. This project developed a novel approach for capturing and validating traceability that addressed several shortcomings in current state of the art. First, traces are known to be error prone and this work was able to 1) recommend corrections to incorrect trace input or, when this was not possible, to 2) isolate incorrect trace input from the reasoning process. Second, traces are often not understood completely and this work was able to recommend missing traceability. Third, traceability is often ambiguous because developers often capture traceability at a later time. By then key people may have moved on or their recollection of facts may be blurred or inconsistent. Here, our work was able to provide a language for capturing traceability that allows for uncertainty and incompleteness in traceability while still able to reason correctly about their logical consequences. As an added bonus, this project also performed a study that investigated the usefulness of traceability. It should be noted that despite the growing popularity of traces and there apparent benefits, there exists no published evaluation about the usefulness of requirements traceability. Do the benefits of traceability justify their cost? After all, trace capture and maintenance is not free. Our study focused on real maintenance tasks across two projects and 71 developers. The result showed that subjects with traceability performed on average 24% faster on a given task and created on average 50% more correct solutions -- suggesting that traceability not only saves effort but can profoundly improve software maintenance quality.
- Universität Linz - 100%
Research Output
- 591 Citations
- 24 Publications
-
2011
Title Do software engineers benefit from source code navigation with traceability? - an experiment in software change Management. Type Journal Article Author Egyed A -
2011
Title Observations on the connectedness between requirements-to-code traces and calling relationships for trace Validation. Type Journal Article Author Egyed A -
2014
Title Recovering Feature-to-Code Mappings in Mixed-Variability Software Systems DOI 10.1109/icsme.2014.67 Type Conference Proceeding Abstract Author Linsbauer L Pages 426-430 -
2013
Title C2O configurator: a tool for guided decision-making DOI 10.1007/s10515-012-0117-4 Type Journal Article Author Nöhrer A Journal Automated Software Engineering Pages 265-296 -
2012
Title Code patterns for automatically validating requirements-to-code traces Type Journal Article Author Egyed A -
2012
Title The quest for ubiquity: A roadmap for software and systems traceability Research. Type Conference Proceeding Abstract Author Gotel O -
2012
Title The Quest for Ubiquity: A Roadmap for Software and Systems Traceability Research DOI 10.1109/re.2012.6345841 Type Conference Proceeding Abstract Author Gotel O Pages 71-80 -
2012
Title Code patterns for automatically validating requirements-to-code traces DOI 10.1145/2351676.2351705 Type Conference Proceeding Abstract Author Ghabi A Pages 200-209 -
2012
Title Managing SAT inconsistencies with HUMUS DOI 10.1145/2110147.2110157 Type Conference Proceeding Abstract Author Nöhrer A Pages 83-91 Link Publication -
2014
Title Do developers benefit from requirements traceability when evolving and maintaining a software system? DOI 10.1007/s10664-014-9314-z Type Journal Article Author Mäder P Journal Empirical Software Engineering Pages 413-441 -
2012
Title Assessing the Effect of Requirements Traceability for Software Maintenance DOI 10.1109/icsm.2012.6405269 Type Conference Proceeding Abstract Author Mäder P Pages 171-180 -
2012
Title Exploiting Traceability Uncertainty between Architectural Models and Code DOI 10.1109/wicsa-ecsa.212.25 Type Conference Proceeding Abstract Author Ghabi A Pages 171-180 -
2012
Title Do Data Dependencies in Source Code complement Call Dependencies for Understanding Requirements Traceability? DOI 10.1109/icsm.2012.6405270 Type Conference Proceeding Abstract Author Kuang H Pages 181-190 -
2011
Title Traceability Fundamentals DOI 10.1007/978-1-4471-2239-5_1 Type Book Chapter Author Gotel O Publisher Springer Nature Pages 3-22 -
2011
Title GoPoMoSA DOI 10.1145/1987875.1987907 Type Conference Proceeding Abstract Author Bai X Pages 194-198 -
2011
Title Observations on the Connectedness between Requirements-to-Code Traces and Calling Relationships for Trace Validation DOI 10.1109/ase.2011.6100087 Type Conference Proceeding Abstract Author Ghabi A Pages 416-419 Link Publication -
2011
Title The Grand Challenge of Traceability (v1.0) DOI 10.1007/978-1-4471-2239-5_16 Type Book Chapter Author Gotel O Publisher Springer Nature Pages 343-409 -
2011
Title Do Software Engineers Benefit from Source Code Navigation with Traceability? DOI 10.1109/ase.2011.6100095 Type Conference Proceeding Abstract Author Mäder P Pages 444-447 -
2015
Title Can method data dependencies support the assessment of traceability between requirements and source code? DOI 10.1002/smr.1736 Type Journal Article Author Kuang H Journal Journal of Software: Evolution and Process Pages 838-866 -
2015
Title DesignSpace DOI 10.1145/2695664.2695697 Type Conference Proceeding Abstract Author Demuth A Pages 1486-1491 -
2013
Title Recovering traceability between features and code in product variants DOI 10.1145/2491627.2491630 Type Conference Proceeding Abstract Author Linsbauer L Pages 131-140 -
2013
Title Constraint-driven modeling through transformation DOI 10.1007/s10270-013-0363-3 Type Journal Article Author Demuth A Journal Software & Systems Modeling Pages 573-596 -
2015
Title Exploiting traceability uncertainty among artifacts and code DOI 10.1016/j.jss.2015.06.037 Type Journal Article Author Ghabi A Journal Journal of Systems and Software Pages 178-192 -
2017
Title Analyzing Closeness of Code Dependencies for Improving IR-Based Traceability Recovery DOI 10.1109/saner.2017.7884610 Type Conference Proceeding Abstract Author Kuang H Pages 68-78