Software Is a Directed Multigraph
The architecture of a software system is typically defined as the organization of the system, the relationships among its components and the principles governing their design. By including artifacts coresponding to software engineering processes, the definition gets naturally extended into the architecture of a software system and process. In this paper we propose a holistic model to organize knowledge of such architectures. This model is graph-based. It collects architectural artifacts as vertices and their relationships as edges. It allows operations like metric calculation, refactoring, bad smell detection and pattern discovery as algorithmic transformations on graphs. It is independent of development languages. It can be applied for both formal and adaptive projects. We have implemented prototype tools supporting this model. The artifacts are stored in a graph database. The operations are defined in a graph query language. They have short formulation and are efficiently executed by the graph database engine.
Keywordsarchitecture graph metric model software
Unable to display preview. Download preview PDF.
- 1.Angles, R., Gutiérrez, C.: Survey of graph database models. ACM Computing Surveys 40(1) (2008)Google Scholar
- 2.Beydeda, S., Gruhn, V.: State of the art in testing components. In: Proceedings of Third International Conference on Quality Software, pp. 146–153. IEEE Computer Society, Los Alamitos (2004)Google Scholar
- 3.Broekstra, J., Kampman, A., Harmelen, F.: Sesame: A generic architecture for storing and querying rdf and rdf schema. In: Proceedings of the First International Semantic Web Conference, pp. 54–68 (2002)Google Scholar
- 4.Dąbrowski, R., Stencel, K., Timoszuk, G.: Software is a directed multigraph (and so is software process). arXiv:1103.4056 (2011)Google Scholar
- 6.Fleurey, F., Baudry, B., France, R., Ghosh, S.: A generic approach for automatic model composition. In: Proceeding of MoDELS Workshops, pp. 7–15 (2007)Google Scholar
- 7.Gossens, S., Belli, F., Beydeda, S., Dal Cin, M.: View graphs for analysis and testing of programs at different abstraction levels. In: Proceedings of the Ninth IEEE International Symposium on High-Assurance Systems Engineering, pp. 121–130. IEEE Computer Society, Los Alamitos (2005)CrossRefGoogle Scholar
- 9.Kühne, T., Selic, B., Gervais, M.-P., Terrier, F. (eds.): ECMFA 2010. LNCS, vol. 6138. Springer, Heidelberg (2010)Google Scholar
- 10.Lassila, O., Swick, R.R.: Resource description framework (RDF) model and syntax specification. W3C Recommendation (1999)Google Scholar
- 12.Osterweil, L.: Software processes are software too. In: Proceedings of the 9th International Conference on Software Engineering, pp. 2–13. IEEE Computer Society, Los Alamitos (1987)Google Scholar
- 13.Prud’hommeaux, E., Seaborne, A.: SPARQL query language for RDF. W3C Recommendation (2008)Google Scholar
- 15.Hasse, P., Broekstra, J., Eberhart, A., Volz, R.: A comparison of RDF query languages. The Semantic Web (2004)Google Scholar