skip to main content
10.5555/782010.782016dlproceedingsArticle/Chapter ViewAbstractPublication PagescasconConference Proceedingsconference-collections
Article
Free Access

Repairing software style using graph grammars

Published:10 November 1997Publication History

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.

References

  1. {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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. {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 ScholarGoogle Scholar
  3. {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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. {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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. {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 ScholarGoogle Scholar
  6. {6} Gosling, J., Joy, B., and Steele, G. The Java Language Specification, Addison-Wesley, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. {7} Holt, R. "Binary Relational Algebra Applied to Software Architecture," CSRI Technical Report 345, Computer Systems Research Institute, University of Toronto, June 1996.Google ScholarGoogle Scholar
  8. {8} Holt, R., and West, T. Turing Reference Manual, 5th Edition, H.S.A. Inc., 1994.Google ScholarGoogle Scholar
  9. {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 ScholarGoogle Scholar
  10. {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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. {11} Mancoridis, S. "Customizable Notations for Software Design." In Proceedings of the 7th International Conference on Software Engineering and Knowledge Engineering, Madrid, 1997.Google ScholarGoogle Scholar
  12. {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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. {13} Prieto-Diaz, R and Neighbors, J.M. "Module Interconnection Languages," Journal of Systems and Software, Vol. 6, 1986, pp.307-334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. {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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. {15} Tarski, A. "On the Calculus of Relations," Journal of Symbolic Logic, Vol. 6, No. 3, 1941, pp. 73-89Google ScholarGoogle ScholarCross RefCross Ref
  16. {16} Wills, L.M. "Automated Program Recognition by Graph Parsing," Technical Report 1358, MIT Artificial Intelligence Lab., July 1992. (Ph.D. Thesis.) Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Repairing software style using graph grammars

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image DL Hosted proceedings
                CASCON '97: Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
                November 1997
                542 pages

                Publisher

                IBM Press

                Publication History

                • Published: 10 November 1997

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate24of90submissions,27%

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader