Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Dynamically discovering architectures with DiscoTect

Published: 01 September 2005 Publication History

Abstract

One of the challenges for software architects is ensuring that an implemented system faithfully represents its architecture. We describe and demonstrate a tool, called DiscoTect, that addresses this challenge by dynamically monitoring a running system and deriving the software architecture as that system runs. The derivation process is based on mappings that relate low level system-level events to higher-level architectural events. The resulting architecture is then fed into existing architectural design tools so that comparisons can be conducted with the design time architecture and architectural analyses can be re-run to ensure that they are still valid. In addition to the demonstration, we briefly describe the mapping language and formal definition of the language in terms of Colored Petri Nets.

References

[1]
J. Aldrich, C. Chambers, and D. Notkin. ArchJava: Connecting Software Architecture to Implementation. In Proc. ICSE 2002.
[2]
R. Allen, D. Garlan Formalizing Architectural Connection. In Proc. ICSE 1994.
[3]
R.M. Balzer and N.M Goldman. Mediating Connectors. Proc. 1999 ICDCD Workshop on Electronic Commerce and Web-Based Applications, 1999.
[4]
M. Dias and D. Richardson. The Role of Event Description on Architecting Dependable Systems (extended version from WADS). Lecture Notes in Computer Science - Book on Architecting Dependable Systems (Spring-Verlag), 2003.
[5]
M.D. Ernst, J. Cockrell, W.G. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE Tans. on Soft. Eng., 27(2), 2001.
[6]
D. Garlan, B. Schmerl, and J. Chang. Using Gauges for Architecture-Based Monitoring and Adaptation. Proc. 1st Working Conference on Complex and Dynamic Systems Architecture, 2001.
[7]
IBM. AspectJ Home Page. http://www.aspectj.org.
[8]
K. Jensen. Coloured Petri Nets: A High-level Language for System Design and Analysis. In Advances in Petri Nets 1990. LNCS 483, G. Rozenberg (Ed), 1991.
[9]
G. Kaiser, J. Parekh, P. Gross, and G. Veletto. Kinesthetics eXtreme: An External Infrastructure for Monitoring Distributed Legacy Systems. Proc. 5th International Active Middleware Workshop, 2003.
[10]
R. Kazman, and S.J. Carriere. Playing Detective: Reconstructing Software Architecture from Available Evidence. Journal of Automated Software Engineering 6(2), 1999.
[11]
D.C. Luckham. Rapide: A Language and Toolset for Simulation of Distributed Systems by Partial Orderings of Events. DIMACS Partial Order Methods Workshop, 1996.
[12]
N. Madhav. Testing Ada 95 Programs for Confomance to Rapide Archtiectures. Proc. Reliable Software Technologies - Ada Europe 96, 1996.
[13]
S. Reiss. JIVE: Visualizing Java in Action (Demonstration Description). Proc. ICSE 2003.
[14]
B. Schmerl, D. Garlan. AcmeStudio: Supporting Style-Centered Architecture Development. Proc. ICSE 2004.
[15]
M. Vieira, M. Dias, D.J. Richardson. Software Architecture based on Statechart Semantics. Proc. the 10th International Workshop on Component Based Software Engineering, 2001.
[16]
R.J. Walker, G.C. Murphy, B. Freeman-Benson, D. Wright, D. Swanson, J. Isaak. Visualizing Dynamic Software System Information through High-level Models. In Proc. OOPSLA'98.
[17]
R.J. Walker, G.C. Murphy, J. Steinbok, and M.P. Robillard. Efficient Mapping of Software System Traces to Architectural Views. In S.A. MacKay and J.H. Johnson (eds) In Proc. CASCON 2000.
[18]
D. Wells and P. Pazandak. Taming Cyber Incognito: Surveying Dynamic/Reconfigurable Software Landscapes. Proc. 1st Working Conference on Complex and Dynamic Systems Architectures, 2001.
[19]
XML Query. http://www.w3.org/XML/Query.
[20]
H. Yan, D. Garlan, B.Schmerl, J. Aldrich, R. Kazman. DiscoTect: A System for Discovering Architectures from Running Systems. Proc. ICSE 2004.
[21]
H. Yan, D. Garlan, B. Schmerl, J. Aldrich, R. Kazman. Discovering Architectures from Running Systems using Colored Petri Nets. Submitted for publication.
[22]
A. Zeller. Animating Data Structures in DDD. Proc. SIGCSE/SIGCUE Program Visualization Workshop, 2000.

Cited By

View all
  • (2014)An Automated Tool to Support the Software Design ProcessInnovations and Advances in Computing, Informatics, Systems Sciences, Networking and Engineering10.1007/978-3-319-06773-5_12(85-93)Online publication date: 16-Oct-2014
  • (2009)Assisting the synchronization of UCM-based architectural documentation with implementation2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture10.1109/WICSA.2009.5290801(151-160)Online publication date: Sep-2009
  • (2018)Bug localization in test-driven developmentAdvances in Software Engineering10.1155/2011/4927572011(1-18)Online publication date: 11-Dec-2018
  • Show More Cited By

Recommendations

Reviews

Mario Kupries

This paper is intended for an audience familiar with the structural and operational aspects of software architectures. It offers a solid and systematic explanation of its topics, and applies a common architectural vocabulary, Extensible Markup Language (XML), and colored Petri nets. The authors outline the challenge of creating and adopting an agile software architecture to continuously represent an implemented system. This is an ambiguous requirement for dynamic structures and behaviors. The approach chosen, however, is an interpretative one; it is an approach described in previously published work. Also described in previously published papers are the limitations of such a formalized approach in reflecting changed components and connectors. The latest developments, like schema evolution and partial compilation, never appear, either as ideas or in the reference list. Another big minus is the omission of any architectural operations. In their introduction, the authors motivate the challenges and benefits of dynamically detecting software architectural structures. To achieve the discovery of dynamic architectures, the tool DiscoTect is introduced in section 2. Section 3 addresses implementation details, and is followed by an overview of related work (section 4). In their conclusion, the authors sum up the drawbacks of the chosen approach, and the discrepancies between their vision and realized work. The authors employ a well-defined, homogeneous vocabulary, which allows the reader to follow their explanations easily. The clear structure of the paper, and the systematic description of the tool DiscoTect, enables the reader to easily identify and understand the method applied and the results achieved. The graphical and formal means of expression, which are consistently applied throughout the entire text, illustrating the structure and operation of DiscoTect, are solidly reproducible. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 5
September 2005
462 pages
ISSN:0163-5948
DOI:10.1145/1095430
Issue’s Table of Contents
  • cover image ACM Conferences
    ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
    September 2005
    402 pages
    ISBN:1595930140
    DOI:10.1145/1081706
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 2005
Published in SIGSOFT Volume 30, Issue 5

Check for updates

Author Tags

  1. architecture design tools and analyses
  2. architecture discovery
  3. reverse engineering

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2014)An Automated Tool to Support the Software Design ProcessInnovations and Advances in Computing, Informatics, Systems Sciences, Networking and Engineering10.1007/978-3-319-06773-5_12(85-93)Online publication date: 16-Oct-2014
  • (2009)Assisting the synchronization of UCM-based architectural documentation with implementation2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture10.1109/WICSA.2009.5290801(151-160)Online publication date: Sep-2009
  • (2018)Bug localization in test-driven developmentAdvances in Software Engineering10.1155/2011/4927572011(1-18)Online publication date: 11-Dec-2018
  • (2014)Extraction and Reconstruction of Enterprise ModelsEnterprise and Organizational Modeling and Simulation10.1007/978-3-662-44860-1_1(3-20)Online publication date: 1-Oct-2014
  • (2013)PANDArchProceedings of the 7th European conference on Software Architecture10.1007/978-3-642-39031-9_21(240-248)Online publication date: 1-Jul-2013

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media