The goal of this project is to connect architecture documentation and models while identifying missing or deviating elements (inconsistencies).
Summary
ArDoCo (Architecture Documentation Consistency) is a framework to connect architecture documentation and models while identifying missing or deviating elements (inconsistencies). An element can be any representable item of the model, like a component or a relation. To do so, ArDoCo first creates trace links and then makes use of them and other information to identify inconsistencies.
Vision
Documenting the architecture of a software system is important, especially to capture reasoning and design decisions. A lot of tacit knowledge is easily lost when the documentation is incomplete, resulting in threats for the software system’s success and increased costs. However, software architecture documentation is often missing or outdated. One explanation for this phenomenon is the tedious and costly process of creating documentation in comparison to (perceived) low benefits. With our project, we want to step forward in our long-term vision, where we plan to persist information from any sources, e.g. from whiteboard discussions, to avoid losing crucial information about a system. A core problem in this vision is the possible inconsistency of information from different sources. A major challenge of ensuring consistency is checking the consistency between formal artifacts, i.e. models, and informal documentation. We plan to address consistency analyses between models and textual natural language artifacts using natural language understanding and plan to include knowledge bases to improve these analyses. After extracting information out of the natural language documents, we plan to create traceability links and check whether statements within the textual documentation are consistent with the software architecture models.
How does it work?
The image shows the idea and processing of the approach. Text (Architecture Documentation) and models (Architecture Model or Code Model) are given as input. If the text is not yet preprocessed, it is done via Stanford Core NLP. The goal of the preprocessing is to analyse the text and annotate additional language information to it. These could be dependencies, named entities, part-of-speech tags, or found relations between words. Based on the given documentation ArDoCo first extracts potential entity names, entity types and relations from the text. This stage is called text extraction or information extraction. After it, the recommendation generation or element generation begins. In this stage, the entity names and types are combined. To increase the performance, we use the meta model as additional input for this phase. Thus, potential types are easier to detect. The name-type combinations are traded as instances on the textual site. Thereby, ArDoCo is able to recommend textual instances as potential trace links without knowledge of the instantiated model. In the following connection generation or link generation, ArDoCo has access to the instantiated model and creates trace links between the recommended instances and the entities of the models. Finally, this information can be used to perform the detection of inconsistencies. E.g., we analyse the existence or non-existence of trace links for certain types of model elements.
You can find open topics for the ArDoCo project in our SDQ Wiki.
Additionally, you can write an email to us.
Tewes, S.
2024. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000170392
Keim, J.; Corallo, S.; Fuchß, D.; Hey, T.; Telge, T.; Koziolek, A.
2024. doi:10.5281/zenodo.10411853
Keim, J.; Corallo, S.; Fuchß, D.; Hey, T.; Telge, T.; Koziolek, A.
2024. ICSE ’24: Proceedings of the IEEE/ACM 46th International Conference on Software Engineering. Ed.: A. Paiva, Art.-Nr.: 215, Association for Computing Machinery (ACM). doi:10.1145/3597503.3639130
Reinbold, F.
2023, October 5. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000165275
Schöppner, R.
2023, September 29. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000165891
Fuchß, D.; Kühn, T.; Wortmann, A.; Pfeiffer, J.; Koziolek, A.
2023. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000162389
Telge, T.
2023, March 17. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000157372
Keim, J.; Corallo, S.; Fuchß, D.; Koziolek, A.
2023. 20th IEEE International Conference on Software Architecture (ICSA), 141–152, Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/ICSA56044.2023.00021
Speit, J.
2023, February 15. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000157373
Mathes, J. P.
2023. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000167656
Ye, J.
2023. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000167655
Steinbuch, D.
2023. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000167654
Fuchß, D.; Kühn, T.; Pfeiffer, J.; Wortmann, A.; Koziolek, A.
2023. doi:10.5281/zenodo.8199850
Keim, J.; Hey, T.; Sauer, B.; Koziolek, A.
2023. Software Architecture. ECSA 2022 Tracks and Workshops – Prague, Czech Republic, September 19–23, 2022, Revised Selected Papers. Ed.: T. Batista, 439–454, Springer International Publishing. doi:10.1007/978-3-031-36889-9_29
Fuchß, D.; Corallo, S.; Keim, J.; Speit, J.; Koziolek, A.
2023. Software Architecture. ECSA 2022 Tracks and Workshops, Prague, Czech Republic, September 19–23, 2022, Revised Selected Papers. Ed.: T. Batista, 455–464, Springer International Publishing. doi:10.1007/978-3-031-36889-9_30
Klaus, P. D.
2022, October 10. doi:10.5445/IR/1000152122
Fuchß, D.; Corallo, S.; Keim, J.; Speit, J.; Koziolek, A.
2022. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000151962
Keim, J.; Hey, T.; Sauer, B.; Koziolek, A.
2022. doi:10.5445/IR/1000149966
Werber, K.
2022. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000148261
Winter, I.
2021, October 15. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000139680
Sauer, B.
2021, October 7. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000139681
Keim, J.; Schulz, S.; Fuchß, D.; Kocher, C.; Speit, J.; Koziolek, A.
2021. Software Architecture. Ed.: S. Biffl, 101–116, Springer-Verlag. doi:10.1007/978-3-030-86044-8_7
Schulz, S.
2020, October 5. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000126194
Keim, J.; Koziolek, A.
2019. IEEE International Conference on Software Architecture Companion (ICSA-C), Hamburg, 25.-29. März 2019, 250–253, Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/ICSA-C.2019.00052
Schulz, R. R.
2019. Karlsruher Institut für Technologie (KIT). doi:10.5445/IR/1000105870
Heine, T.
2019. doi:10.5445/IR/1000105437
Keim, J.; Schneider, Y.; Koziolek, A.
2019. Proceedings of the 2nd International Workshop on Establishing a Community-Wide Infrastructure for Architecture-Based Software Engineering, 6–12, Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/ECASE.2019.00010