ABSTRACT
Often, software architects impose a particular style on the software systems they design. For large software systems, they would like to ensure that the design continues to conform to this style during the maintenance phase of the software-life cycle.We will assume that the architectural design of a software system is available; for instance, it may have been extracted from the source code of the system using a parser. We will also assume we have a set of stylistic constraints given by the architect. For example, the architect may want to ensure that if a module X is allowed to use a procedure in a module Y, then module Y needs to export that procedure.We define the Style Repair Problem as follows: If the current architectural design does not satisfy a set of stylistic constraints, how can we repair it so that it does? We choose to represent architectural designs as directed graphs; hence, repairing the style of these designs is equivalent to repairing the graph. We show how graph grammars can be used to automatically repair styles, and we show how this provides insight into the problem of style maintenance.
- {1} Blostein, D., Fahmy, H., and Grbavec, A. "Issues in the Practical Use of Graph Rewriting." Lecture Notes in Computer Science, Vol. 1073, 1996, pp.38-55. Google ScholarDigital Library
- {2} Buxton, J. and McDermid, J. "Architectural Design." In Software Engineer's Reference Book (Chapter 17), CRC Press, Boca Raton, Florida, 1993, pp. 17/1-17/22.Google Scholar
- {3} Dean, T.R., Cordy, J.R. "A Syntactic Theory of Software Architecture," IEEE Transactions on Software Engineering, Vol. 21, No. 4, April 1995, pp. 302-313. Google ScholarDigital Library
- {4} Fahmy, H. "Reasoning in the Presence of Uncertainty via Graph-Rewriting," Technical Report 95-382, Department of Computing and Information Science, Queen's University, March 1995. (Ph.D. Thesis) Google ScholarDigital Library
- {5} Garlan, D., and Shaw, M. "Architectures for Software Systems. In tutorial given at ACM SIGSOFT '93: Symposium on the Foundations of Software Engineering (Los Angeles, California, December 1993).Google Scholar
- {6} Gosling, J., Joy, B., and Steele, G. The Java Language Specification, Addison-Wesley, 1997. Google ScholarDigital Library
- {7} Holt, R. "Binary Relational Algebra Applied to Software Architecture," CSRI Technical Report 345, Computer Systems Research Institute, University of Toronto, June 1996.Google Scholar
- {8} Holt, R., and West, T. Turing Reference Manual, 5th Edition, H.S.A. Inc., 1994.Google Scholar
- {9} Holt, R. and Mancoridis, S. "Using Tube Graphs to Model Architectural Designs of Software Systems," CSRI Technical Report 308, Computer Systems Research Institute, University of Toronto, October, 1994.Google Scholar
- {10} Le Métayer, D. "Software Architecture Styles as graph grammars." In Proceedings of the 4th ACM SIGSOFT Symposium Foundations on Software Engineering, (Nov. 1996), pp. 15-23. Google ScholarDigital Library
- {11} Mancoridis, S. "Customizable Notations for Software Design." In Proceedings of the 7th International Conference on Software Engineering and Knowledge Engineering, Madrid, 1997.Google Scholar
- {12} Perry, D.E., and Wolf, A.L. "Foundations for the Study of Software Architectures. Software Engineering Notes, vol. 17, 4 (October 1992), pp. 40-49. Google ScholarDigital Library
- {13} Prieto-Diaz, R and Neighbors, J.M. "Module Interconnection Languages," Journal of Systems and Software, Vol. 6, 1986, pp.307-334. Google ScholarDigital Library
- {14} Schwanke, R.W., Altucher, R.Z., and Platoff, M.A. "Discovering, Visualizing, and Controlling Software Structure." In Proceedings of the Fifth International Workshop on Software Specification and Design (Pittsburgh, Pennsylvania, May 1989), pp. 147-150. Google ScholarDigital Library
- {15} Tarski, A. "On the Calculus of Relations," Journal of Symbolic Logic, Vol. 6, No. 3, 1941, pp. 73-89Google ScholarCross Ref
- {16} Wills, L.M. "Automated Program Recognition by Graph Parsing," Technical Report 1358, MIT Artificial Intelligence Lab., July 1992. (Ph.D. Thesis.) Google ScholarDigital Library
Index Terms
- Repairing software style using graph grammars
Recommendations
Software architecture styles as graph grammars
We present a formalism for the definition of software architectures in terms of graphs. Nodes represent the individual agents and edges define their interconnection. Individual agents can communicate only along the links specified by the architecture. ...
Image Style Recognition Using Graph Network and Perception Layer
Artificial IntelligenceAbstractArt images can usually convey the background of the times, culture and the personal emotions of the painter. Appreciating visual art can not only close the distance with the artist, but also enrich our life. It becomes very meaningful to ...
Comments