3. MAPEAMENTO SISTEMÁTICO
3.5. Syntheses and analysis, and lessons learned
In this section, in addition to the discussion of impacts, scenarios and raw results, made in the previous section, a discussion of the main aspects and lessons learned on possible improvements for software evolution analysis, which can be developed for the analyzed tools and new researches, is presented.
The use of multimedia in the RE has been considered since 1992. This indicates that this line of research has been studied for some time. In this period, several solutions have been proposed to incorporate media in the process of requesting and maintaining requirements, however, the number of published studies is still low. This may indicate two things: (1) that the area has already produced definitive results; or (2) that the area is failing to reach its goals.
Second case is the most likely, since multimedia and evolution of software are very important topics in modern software engineering; and multimedia for RE is a broad and relatively young research area, which has much to offer to the software evolution research community.
The results also show that the publications referring to the use of media in the RE involve professionals of different nationalities and are developed in different countries. This denotes that the search for improvements in requirements documentation and communication between stakeholders in the software construction and maintenance presents itself as a global concern being studied in different parts of the world.
Exploratory Study (31.92%) and Controlled Experiment (27.66%) are the main research methods used for evaluating. Despite the second-place finish, these numbers show that few approaches found validated their solutions through controlled experiments, showing the need to increase the use of scientific method in this area, with replications of studies that will allow evaluating if other researchers independently will come up with the same results. Even those that validated, performed a partial validation.
Any approach should focus on the end user and validate its usefulness in well-executed experiments or case studies. This is far from proposing a new multimedia resources association to the requirements and executing a few feasibility studies over it. Researchers and practitioners should focus on answering questions like: Does my approach scale to larger real-world software? How do my results generalize to other users, domains, and systems? Otherwise, there will be always an issue with the external validity of the proposed approach and it will be difficult to move from the state of the art to the state of the practice in software engineering.
Still in this context, the actual adoption of multimedia resources in software engineering industrial environments is very low.
There is actually little collaborative work in the area. Most of the analyzed work tries to develop new approaches as oppose as to validate or add value to existing ones.
Validation and cooperative activities would lead to faster improvement of existing approaches and to a deeper understanding of the area. Researchers never benchmarked deeply their results against other approaches.
Most studies cite shared understanding and specification quality as the main impact of media incorporation in RE. This finding shows that media requirements can help reduce common issues encountered in RE, such as ambiguous, unclear and unchecked requirements.
A wide variety of solutions for recording, preserving, linking, and reviewing requirements using media have been used and tested, as alternative to traditional techniques for requirements elicitation. With respect to environments where the media can be used as a facilitator in software development and maintenance, the scenario is highly favorable, and the use of the media has been exploited in different contexts. It has been used in the development of complex software, which represents high risks (e.g. airport, health and financial systems).
These factors emphasize the reliability of the method approached in this work and show that multimedia resources can improve the process of understanding the code, decreasing evolution and maintenance costs.
Regarding gaps and software evolution analysis, integration with the source code and the construction (programming) phase needs to improve. The lack of closely integration with the code prevents multimedia tools can be effectively used to analyze and understand the data produced during software evolution. In addition to recording or filming the interviews with clients and provide them to the programmer so they can better understand their requirements, a programmer should be able to click on a link in the source code and to see or listen to stakeholders’ interviews and code explanations recorded by a co-worker. At this point, explanations could include increments and evolutions.
Another feature to be improved and considered by the multimedia tools are the strategies of evolution analysis. Temporal strategies, for example, can portray the evolution considering all the versions available for analysis. Given n versions v1, v2, ..., vn, (or a sizeable sequential subset of them), this type of analysis takes into account everything that has happened from version v1 to version vn taking in consideration all the intermediate versions. That would help, for example, to analyze changes between different artifacts and business changes over the software evolution cycle. In other words, the versioning of multimedia resources must be aligned with the versioning of the software, allowing the filming or explanation of a business requirement, for example, to be associated with the evolution of metrics in the code. In another dimension, an issue to be evaluated would be the recording or filming of explanations about the evolution of each software version, allowing the main changes and key decisions to be documented.
Regarding software maintenance, the studies do not specifically or deeply address the use of multimedia resources applied to software maintenance and comprehension. In our research, we are proposing [5], implementing and considering closer coupling to the code, code technical explanations and new ways to find specific excerpts from audios and videos.
It is worth mentioning that the multimedia resources can support various RE activities, by recording interviews, meetings with stakeholders, user stories, and discussions with customers. The management of this content can be done through own initiatives, or through tools available on the market.
Finally, multimedia resources more closely linked to the code and strategies of evolution analysis can help answer two important questions: (1) Where do I see my business in the code? (2) What points have evolved in the code in line with the evolution of my business?
The answer to these questions can help increasing location accuracy of the code to be evolved and changed, increasing the effectiveness of maintenance, reducing costs and providing the prospect of impact on the source code, based on the business evolution.