thesis
Software evolution: hypergraph based model of solution space andhmeta-search
- Publication date
- Publisher
Abstract
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