Multi-View Consistency Checking
Engineering is a collaborative effort involving many stakeholders. Yet its day-to-day operations cater to the needs of individuals. Complex and multi-disciplinary problems are broken down to tasks that individual engineers are able to solve with the tools and methods available to them. Thereby, it is common for companies to use a variety of tools - for example, software engineers use tools for requirements capture, specification, design/architecture, programming, or testing; tools that are often fundamentally different from those used by mechanical, electrical, aeronautical or systems engineers. But not only the tools differ, but also the knowledge that developers capture and maintain within these tools. We speak of artifacts. Examples of such artifacts are requirements, model elements, code classes/methods, hardware components, computations, use cases, and many more. Yet, while artifacts captured in tools are syntactically and semantically diverse, they are dependent. Together, these artifacts describe the engineering problem, process, and solution; and inconsistencies may arise if engineers manipulate these artifacts separately.
Consistency check mechanisms are state of the art. However, little support exists for detecting inconsistencies in a multi-tool, multi-view environment. This proposed work will develop a novel methodology for detecting multi-view, cross-tool inconsistencies even if different engineers work on these artifacts at the same time or at different times, even if engineers are willing to share these artifacts with select other engineers as opposed to publishing them for all to see. We propose to investigate a number of possible views that may arise during engineering and how these views influence consistency checking. These views may include individual tools (tool views), which engineers may combine to cover all tools a single engineer is using (engineer views) or any arbitrary grouping of tools that a team of engineers is using (group views). The approach aims to provide scalable, up-to-date inconsistency feedback for these views concurrently while engineers are continuously creating, modifying, and deleting artifacts in their respective tools. Empirical evaluations and case studies will demonstrate the scalability and usefulness of the proposed work. Ultimately, the primary goal of this work is to give developers more freedom as to whether, when, how, and how much inconsistency feedback they want to receive.