Software evolution : hypergraph based model of solution space and meta-search

A hypergraph based model of software evolution is proposed. The model uses software assets, and any other higher order patterns, as reusable components. We will use software product lines and software factories concepts as the engineering state-of-the-art framework to model evolution. Using those co...

Full description

Bibliographic Details
Main Author: Vizcaino, Noel
Published: University of Reading 2017
Online Access:https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.758098
Description
Summary:A hypergraph based model of software evolution is proposed. The model uses software assets, and any other higher order patterns, as reusable components. We will use software product lines and software factories concepts as the engineering state-of-the-art framework to model evolution. Using those concepts, the solution space is sliced into sub-spaces using equivalence classes and their corresponding isomorphism. Any valid graph expansions will be required to retain information by being sub-graph isomorphic, forming a chain to a solution. We are also able to traverse the resulting modelled space. A characteristic set of operators and operands is used to find solutions that would be compatible. The result is in a structured manner to explore the combinatorial solution space, classifying solutions as part of families hierarchies. Using a software engineering interpretation a viable prototype implementation of the model has been created. It uses configuration files that are used as design-time instruments analogous to software factory schemas. These form configuration layers we call fragments. These fragments convert to graph node metadata to later allow complex graph queries. A profusion of examples of the modelling and its visualisation options are provided for better understanding. An example of automated generation of a configuration, using current Google Cloud assets, has been generated and added to the prototype. It illustrates automation possibilities by using harvested web data, and later, creating a custom isomorphic relation as a configuration. The feasibility of the model is thus demonstrated. The formalisation adds the rigour needed to further facilitate automation of software craftsmanship. Based on the model operation, we propose a concept of organic growth based on evolution. Evolution events are modelled after incremental change messages. This is communication efficient and it is shown to adhere to the Representational State Transfer architectural style. Finally, The Cloud is presented as an evolved solution part of a family, from the original concept of The Web.