10.1145/1029894.1029926acmconferencesArticle/Chapter ViewAccess DenialPublication PagesfseConference Proceedingsconference-collections
Article

Refining code-design mapping with flow analysis

Published:31 October 2004Publication History

ABSTRACT

We address the problem of refining and completing a partially specified high-level design model and a partially-defined mapping from source code to design model. This is related but not identical to tasks that have been automated with a variety of reverse engineering tools to support software modification tasks. We posited that set-based flow analysis algorithms would provide a convenient and powerful basis for refining an initial rough model and partial mapping, and in particular that the ability to compute fixed points of set equations would be useful in propagating constraints on the relations among the model, the mapping, and facts extracted from the implementation. Here we report our experience applying this approach to a modest but realistic example problem. We were successful in expressing a variety of useful transformations very succinctly as flow equations, and the propagation of recursively-defined constraints was indeed useful in refining the mapping from implementation to model. On the other hand, our experience highlights remaining challenges to make this an attractive approach for general use. Special measures are required to identify and remove inconsistent constraints before they propagate through a system. Also, while the required flow equations are succinct, they are also rather opaque; it is not obvious how their expressive power might be preserved in a more accessible notation.

Get full access to this Publication

Purchase, subscribe or recommend this publication to your librarian.

References

  1. A. Aiken. Introduction to set contraint-based program analysis. Science of Computer Programming, 35:79--111, 1999. Google ScholarGoogle Scholar
  2. O. Ciupke. Autmatic detection of design problems in object-oriented reengineering. In Technology of Object-Oriented Languages and Systems (TOOLS 30), pages 18--32, 1999. Google ScholarGoogle Scholar
  3. M. Consens, A. Mendelzon, and A. Ryman. Visualizing and querying software structures. In Proc. ICSE '92, pages 138--156. IEEE Computer Society Press, 1992. Google ScholarGoogle Scholar
  4. M. Dahm. Byte code engineering with the BCEL API. Technical Report B-17-98, Freie Universitat Berlin, Institut fur Informatik, 2001. Available at http://bcel.sourceforge.net.Google ScholarGoogle Scholar
  5. J. Fabry and T. Mens. Language-independent detection of object-oriented design patterns. Computer Languages, Systems, and Structures, 30:21--33, 2004. Google ScholarGoogle Scholar
  6. H.M. Fahmy and R.C. Holt. Using graph rewriting to specify software architectural transformations. In 15th Conf. on Automated Software Engineering (ASE 2000), pages 187--196. IEEE Computer Society Press, 2000. Google ScholarGoogle Scholar
  7. L. Feijs, R. Krikhaar, and R. Van Ommering. A relational approach to support software architecture analysis. Science of Computer Programming, 33:163--212, 1999.Google ScholarGoogle Scholar
  8. L. Feijs and R. Van Ommering. Relation partition algebra---mathematical aspects of uses and part-of relations. Software---Practice and Experience, 28(4):371--400, 1998. Google ScholarGoogle Scholar
  9. P. J. Finnigan, R. C. Holt, I. Kalas, S. Kerr, K. Kontogiannis, H. A. Müller, J. Mylopolous, S. G. Perelgut, M. Stanley, and K. Wong. The software bookshelf. IBM Systems Journal, 36:564--593, 1997. Google ScholarGoogle Scholar
  10. J. Fiskio-Lasseter and M. Young. Flow equations as a generic programming tool for manipulation of attributed graphs. In Proc. ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE '02). ACM Press, November 2002. Google ScholarGoogle Scholar
  11. Apache Software Foundation. Apache Jakarta Tomcat. Java servlet container available at http://jakarta.apache.org/tomcat.Google ScholarGoogle Scholar
  12. E. R. Gansner, E. Koutsofios, S. C. North, and K. Vo. A technique for drawing directed graphs. IEEE Transactions on Software Engineering, 19(3):214--230, 1993. Google ScholarGoogle Scholar
  13. R. C. Holt. Structural manipulations of software architecture using Tarski relational algebra. In 5th Working Conference on Reverse Engineering, pages 210--219. IEEE Computer Society Press, 1998. Google ScholarGoogle Scholar
  14. H. A. Müller, M. A. Orgun, S. R. Tilley, and J. S. Uhl. A reverse engineering approach to subsystem structure identification. Software Maintenance: Research and Practice, 5(4):181--204, December 1993.Google ScholarGoogle Scholar
  15. G. C. Murphy, D. Notkin, and K. Sullivan. Software reflexion models: Bridging the gap between source and high-level models. IEEE Transactions on Software Engineering, 27(4):364--380, 2001. Google ScholarGoogle Scholar
  16. D. Parnas. Designing software for ease of extension and contraction. IEEE Transactions on Software Engineering, 5(3):128--137, 1979.Google ScholarGoogle Scholar
  17. J. Rajamani. Constraint propagation as an aid to program visualization. M.Sc. Thesis, Computer Science Dept., Purdue University, 1997.Google ScholarGoogle Scholar
  18. K. Sartipi and K. Kontogiannis. On modeling software architecture recovery as graph matching. In Proc. ICSM '03. IEEE Computer Society Press, 2003. Google ScholarGoogle Scholar
  19. X. Zhang, M. Young, and J.H.E.F. Lasseter. Electronic appendix to "Refining code-design mapping with flow analysis". Available at http://www.cs.uoregon.edu/~michal/papers/fse04.html.Google ScholarGoogle Scholar

Index Terms

  1. Refining code-design mapping with flow analysis

              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 ACM Conferences
                SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
                October 2004
                282 pages
                ISBN:1581138555
                DOI:10.1145/1029894

                Copyright © 2004 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Check for updates

                Qualifiers

                • Article
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!