This survey provides an overarching review of solutions that contribute to artefact consistency management and that are rooted in various research areas. The evaluation of related approaches and a summary of their limitations contribute to formulating the requirements of an artefact
consistency management solution (presented in Chapter 4) and they also facilitate the definition of the directions of this research.
One of the focuses of this work is the exploration of possible ways to cater for all types of present and future artefacts, which was derived from the findings of the evaluation, namely that typically only a selected set of artefacts is supported by any given solution. As traceability stems from the requirements engineering community, traceability issues related to requirements have been extensively researched [25]. In MDA, the software development process is driven by modeling [19]. Agile and incremental software development processes emphasise the importance of coding or low level design. A possible solution that concentrates on a specific type of artefact cannot be comprehensive enough as it will not be applicable in a large number of scenarios and such a solution will not span the entire development lifecycle. Another area worth investigating is the level of automation as existing approaches automate some but not all aspects of artefact consistency management. Finally, since most solutions do not cater for all aspects of artefact consistency management, to more effectively address the challenges arising from the differential evolution of software artefacts, a holistic solution is required.
4
CHAPTER
FOUR
HOLISTIC
ARTEFACT
CONSISTENCY
MANAGEMENT
FRAMEWORK
This chapter introduces the concept of a holistic artefact consistency management framework proposed in this thesis to address challenges arising from the differential evolution of software artefacts. It presents these challenges and describes the conceptual foundations of the framework including the stages of managing artefact consistency. The chapter concludes with a discussion of the selected data representation model, the property graph, and the individual framework stages.
4.1
Challenges of Artefact Consistency Management
Artefact consistency management is a complex problem due to the inherent characteristics of software development. The tasks involved in a software project are undertaken by various stakeholders who possess different skills, have exposure to different parts of the system, and carry out their work using different tools, potentially at different geographical locations. Each phase of the development produces various artefacts, which differ in their abstraction level and purpose. Additionally, the nature of the project determines the development process, the structure of teams, stakeholders involved and methodologies applied. Such diversity presents significant challenges to artefact consistency management efforts. These difficulties are considered below.
Diversity of Artefacts
Software development activities produce a number of artefacts, and any artefact at any abstraction level can take multiple forms. This is well illustrated by the different types of UML diagrams, such as class and sequence diagrams modelling different aspects of a system. This complexity in artefact types poses one of the key challenges associated with building an artefact consistency management framework.
Artefacts produced in software development are dependent on the adopted methodology. For example, agile projects, besides source code, produce artefacts that are mostly related to tracking work progress. These may include product backlogs, sprint backlogs (which in turn may contain user stories, goals and tasks associated with the given sprint), and product roadmaps [145]. On the other hand, traditional development methodologies are associated with another set of artefacts. For example, following a waterfall approach may produce a feasibility document, requirements specification, design documents, source code, and various tests [146]. Adopting a spiral model of software development may also produce documents highlighting the results of risk analysis [147].
Another factor influencing artefacts is the project domain. For example, the development process of mission critical systems may be regulated by safety regulations and industry standards [148], which results in rigorous documentation and formal specifications.
Finally, open source projects, which provide direct access to their artefacts, are also worth mentioning. Artefacts stored in open source repositories may include wikis or user manuals, as demonstrated by the systems discussed in Chapter 8.
Diversity of Tools
Software life cycle tasks are undertaken by stakeholders using a variety of CASE tools. Integrated development environments (IDEs) provide support to produce source code and tests. Higher-level artefacts are created using diagram and analysis tools. An ideal framework, to maximise its applicability in software projects, should not impose any specific application on the user and should be configurable to work with any tool.
Usability
Participants of software projects possess different skills and work with different artefacts. Some stakeholders, such as business analysts, may be more concerned with high-level representations, while others, such as developers and testers, may work with source code and tests. This results in different needs that must be accommodated by an artefact consistency management framework.
Customisability is thus an important characteristic. Examples of customisable properties include the level of detail and frequency of changes users want to be notified about.
Automation
Tasks associated with artefact consistency management, when performed manually, are error- prone, tedious and require substantial effort. Some aspects of artefact consistency management can be more easily automated, such as checking consistency violations, while others may present non-trivial challenges. For example identifying relationships between diverse representations is a complex task due to the heterogeneity of artefacts and the fact that semantics and intentions are not explicitly captured. The extent to which automation is possible is an open problem.
Distributed Software Development
Software development is increasingly carried out in a distributed manner [149] with stakeholders based in different geographical locations. Issues caused by this trend are related to knowl- edge management, quality control, synchronous collaboration, and risk, project and process management concerns. Specifically, global software development, where teams are distributed worldwide, introduces an additional level of complexity to artefact consistency management tasks. In this respect, areas of concern are multiple versions of artefacts, creating and maintaining links among distributed artefacts, and the availability and accessibility of the latest version of any given artefact. Artefact repositories and version control systems are often used to mitigate the effects of distribution.