DiscoTect: A System for Discovering the Architectures of Running Programs using Colored Petri Nets

Abstract : One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper we describe a technique that uses run time observations about an executing system to construct an architectural view of the system. In this technique we develop mappings that exploit regularities in system implementation and architectural style. These mappings describe how low-level system events can be interpreted as more abstract architectural operations, and are formally defined using Colored Petri Nets. In this paper we describe a system, called DiscoTect, that uses these mappings, and we introduce the DiscoSTEP mapping language and its formal definition. Two case studies showing the application of DiscoTect suggest that the tool is practical to apply to legacy systems and can dynamically verify conformance to a pre-existing architectural specification.

[1]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[2]  Morris Sloman,et al.  GEM: a generalized event monitoring language for distributed systems , 1997, Distributed Syst. Eng..

[3]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[4]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[5]  R. M. Balzer,et al.  Mediating connectors , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems. Workshops on Electronic Commerce and Web-based Applications. Middleware.

[6]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[7]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[8]  Marco Ajmone Marsan,et al.  Modeling the software architecture of a prototype parallel machine , 1987, SIGMETRICS '87.

[9]  Juha Kuusela,et al.  Modeling execution architecture of software system using colored Petri nets , 1998, WOSP '98.

[10]  Debra J. Richardson,et al.  The Role of Event Description in Architecting Dependable Systems , 2002, WADS.

[11]  Adarshpal S. Sethi,et al.  SEL, a new event pattern specification language for event correlation , 2001, Proceedings Tenth International Conference on Computer Communications and Networks (Cat. No.01EX495).

[12]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[13]  Neel Madhav,et al.  Testing Ada 95 Programs for Conformance to Rapide Architectures , 1996, Ada-Europe.

[14]  Kurt Jensen,et al.  An Introduction to the Theoretical Aspects of Coloured Petri Nets , 1993, REX School/Symposium.

[15]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.

[16]  Steven P. Reiss JIVE: visualizing Java in action demonstration description , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[17]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[18]  Gail E. Kaiser,et al.  Kinesthetics eXtreme: an external infrastructure for monitoring distributed legacy systems , 2003, 2003 Autonomic Computing Workshop.

[19]  David C. Luckham,et al.  Rapide: A language and toolset for simulation of distributed systems by partial orderings of events , 1997, Partial Order Methods in Verification.

[20]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[21]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[22]  Martin P. Robillard,et al.  Efficient mapping of software system traces to architectural views , 2000, CASCON.

[23]  Rick Kazman,et al.  A simulation test-bed for mobile adaptive architectures , 2003, Comput. Stand. Interfaces.

[24]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[25]  Christos Scondras Discovering Architectures from Running Systems : Lessons Learned , .

[26]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[27]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[28]  Debra J. Richardson,et al.  Analyzing Software Architecture Based on Statechart Semantics , 2001, SBES.

[29]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[30]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[31]  C. Chambers,et al.  ArchJava: connecting software architecture to implementation , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[32]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[33]  Wolfgang Schröder-Preikschat,et al.  AspectC++: an aspect-oriented extension to the C++ programming language , 2002 .

[34]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[35]  KruchtenPhilippe The 4+1 View Model of Architecture , 1995 .

[36]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.

[37]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[38]  Minjie Zhang,et al.  A Colored Petri Net Based Approach for Multi-agent Interactions , 2004 .

[39]  Sun Fire V20z Sun Microsystems , 1996 .

[40]  Daniel Jackson,et al.  Lightweight Extraction of Object Models from Bytecode , 2001, IEEE Trans. Software Eng..

[41]  David Garlan,et al.  Reconciling the needs of architectural description with object-modeling notations , 2000, Sci. Comput. Program..

[42]  Bradley R. Schmerl,et al.  AcmeStudio: supporting style-centered architecture development , 2004, Proceedings. 26th International Conference on Software Engineering.

[43]  Bradley R. Schmerl,et al.  Increasing System Dependability through Architecture-Based Self-Repair , 2002, WADS.