Font Size: a A A

A framework for merging Object-Oriented formal specifications

Posted on:2012-10-14Degree:Ph.DType:Thesis
University:Multimedia University (Malaysia)Candidate:Fathi, TaibiFull Text:PDF
GTID:2458390008494267Subject:Information Technology
Abstract/Summary:
Software development activities are highly collaborative since they involve several people working on different aspects of the same project. Most often, effective collaboration is the key to the success of a software project where development tasks are carried out in a distributed way and the resulting software documents are merged from time to time. Studies have shown that most of the problems with software projects are directly linked to problems with their requirements. Specifying these requirements is a highly complicated and error-prone phase involving several people specifying the requirements of various stakeholders where a shared specification undergoes continuous revisions through collaboration until reaching a version that satisfies the need of all the stakeholders. This raises the need for frameworks aimed at merging specifications in order to detect, process, and consolidate these revisions while maintaining consistency.;Merging informal specifications is unpractical, inefficient, error prone, and time consuming due to the ambiguous and imprecise nature of natural languages and most of the graphical notations used. Hence, the requirements should be formally specified when developing specifications collaboratively since this supports their systematic merging and verification. Moreover, Object-Oriented (OO) formal methods provide an excellent tool for creating these specifications since they combine the strengths of both the formal and OO methods and lead to specifications that are precise, well structured and highly reusable. Furthermore, merging conflicts are inevitable when combining the parallel changes made to a shared specification since they reflect stakeholders with different needs and perspectives. Hence, detecting and resolving these conflicts is crucial and should be effectively supported in order to ensure a consistent resulting specification.;Merging approaches that employ unique identifiers for the elements of the manipulated documents are tool dependent, which prohibits merging documents if they are created and changed using different tools. Even without this limitation, several surveyed approaches suffer from a lack of accuracy of their matching techniques, which leads to inaccurate and highly suboptimal results and hinders the detection and resolution of merging conflicts. Moreover, the models used to represent the manipulated documents and their changes are often too restrictive, and are not appropriate for developing accurate and scalable merging approaches. Furthermore, there is a lack of proper conflicts definition in existing surveyed approaches, and a near absence of accurate and systematic approaches to detect and resolve them. In practice, domain-independent merging approaches lead to a decreased accuracy compared to approaches intended for a specific or restricted domain. Additionally, they do not allow detecting various types of conflicts. Finally, there are no existing approaches intended specifically for merging OO formal specifications.;In this thesis, after studying the research problems thoroughly and analyzing the features of several leading approaches, a set of evaluation criteria have been identified. Addressing these criteria should enable consistency-preserving merging of the changes made to specifications during collaborative development. Based on the results of this analysis, a new framework for merging OO formal specifications has been developed. This framework incorporates approaches to differentiate precisely between versions of a specification, to merge the parallel modifications made to it, and to detect and resolve merging conflicts. Firstly, a graph-based meta-model is proposed to represent the specifications and a formal foundation is used to classify and define their undergone changes and the resulting merging conflicts. Secondly, the differencing approach is intended to compare versions of a specification in order to produce a precise set of primitive edit operations transforming one version into another one and to overcome the tool dependency limitation by matching the elements of these versions independently from the tools used to create and change them. Thirdly, the merging approach combines the parallel modifications made to a shared specification obtained through differencing while maintaining consistency using the proposed conflicts detection and resolution approach. Finally, the developed approaches are empirically evaluated using a benchmark including a wide range of experiments and a set of carefully selected case studies.
Keywords/Search Tags:Merging, Specifications, Formal, Approaches, Framework, Highly, Several
Related items