On theory and management of dependencies between models
Software developers often need to manage dependencies.Unfortunately, software dependencies manifest themselves in various forms, and discussions about dependencies can be challenging due to the very different definitions and relationships that developers may have in mind.To reduce misunderstandings, it may be helpful to categorize the various forms of dependencies.A dependency is a relationship between two (or more) different things.Let us exclude relationships with more than two participants and concentrate on binary relations to simplify considerations.During a typical development process, dependencies may emerge across all forms of artifacts, including requirement statements, explicit models, source code, and (readily compiled and deployable) system elements.To be precise, we distinguish development artifacts (which include, e.g., UML/SysML models and source code) and the system elements.For example, an object-oriented system consists of implemented classes and their (logical) aggregations in the form of subsystems and components.System elements are to be distinguished from models and source code, which aggregate into packages, directories, branches, or even (version-controlled) projects.Both sides, i.e., the system and the artifacts describing it, are not entirely independent of each other.Java, in particular, has done a tremendous job reliably connecting classes and their source files in an almost one-to-one relation.Colloquially, we thus do not need to distinguish between a class and its describing source file anymore.However, in this article we mention these two sides because the term "dependency" is used within both sides.Projects depend on each other; components depend on each other; and models depend on each other.
Authors
- Jeff Gray (ORCID: https://orcid.org/0000-0003-0082-6753)
- Bernhard Rumpe⋆ (ORCID: https://orcid.org/0000-0002-2147-1966)
- Marsha Chećhik (ORCID: https://orcid.org/0000-0002-6301-3517)
- Benoît Combemale (ORCID: https://orcid.org/0000-0002-7104-7848)
Institutions
- University of Alabama (US)
- University of Toronto (CA)
- Université de Rennes (FR)
- RWTH Aachen University (DE)
Publication Details
- Journal
- Software & Systems Modeling
- Published
- 2025-06-20
- DOI
- https://doi.org/10.1007/s10270-025-01301-5
- Primary Topic
- Simulation Techniques and Applications
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- RWTH Aachen University