Debugging techniques for locating defects in software architectures

The explicit design of the architecture for a software product is a well established part of development projects. As the software architecture descriptions are becoming larger and more complex, there is more likelihood of defects being present in the software architecture. Studies have shown that a defect in the software architecture that has propagated to the development phase is very expensive to fix. To prevent such propagation of defects, this research proposes to provide debugging support for software architecture design. Debugging is commonly used in programming languages to effectively find the cause of a failure and locate the error to provide a fix. The same should be accomplished in software architectures to debug architecture failures. Without debugging support, the software architect is unable to quickly locate and determine the source of an error. In our work, we define a process for debugging software architecture and provide analysis techniques to locate defects in a software architecture that fails to meet functional and non-functional requirements. We have implemented the techniques and provide an evaluation of the techniques based on examples using an industry standard architecture definition language, Architecture Analysis and Design Language (AADL).

[1]  Nenad Medvidovic,et al.  Model Interpreter Frameworks: A Foundation for the Analysis of Domain-Specific Software Architectures , 2008, J. Univers. Comput. Sci..

[2]  David P. Gluch,et al.  Formal verification of AADL behavior models: a feasibility investigation , 2009, ACM-SE 47.

[3]  Johann Schumann Automatic Debugging Support for UML Designs , 2000, AADEBUG.

[4]  Rick Kazman,et al.  A Software Architecture Reconstruction Method , 1999, WICSA.

[5]  Laurent Pautet,et al.  From the prototype to the final embedded system using the Ocarina AADL tool suite , 2008, TECS.

[6]  Felix Bachmann,et al.  Using ArchE in the Classroom: One Experience , 2007 .

[7]  Ernesto Pimentel,et al.  Debugging UML Designs with Model Checking , 2002, J. Object Technol..

[8]  Bradley R. Schmerl,et al.  Understanding tradeoffs among different architectural modeling approaches , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[9]  Ghulam Rasool,et al.  Software Architecture Recovery , 2007 .

[10]  Carrie Gates,et al.  Defining the insider threat , 2008, CSIIRW '08.

[11]  Muhammad Ali Babar,et al.  An industrial case study of architecture conformance , 2008, ESEM '08.

[12]  Motoshi Saeki,et al.  Evaluating software architectures by coloured petri nets , 2002, SEKE '02.

[13]  Jeff Magee,et al.  Exposing the Skeleton in the Coordination Closet , 1997, COORDINATION.

[14]  John McGregor Pay me now or pay me more later , 2008, J. Object Technol..

[15]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[16]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

[17]  Glenford J. Myers,et al.  Software Reliability: Principles and Practices , 1976 .

[18]  Steve McConnell,et al.  Code Complete, Second Edition , 2004 .

[19]  Dolev Dotan,et al.  Debugging and testing behavioral UML models , 2007, OOPSLA '07.

[20]  Lars Grunske Transformational patterns for the improvement of safety properties in architectural specification , 2003 .

[21]  Gregor Engels,et al.  UML Collaboration Diagrams and their Transformation to Java , 1999, International Conference on the Unified Modeling Language.

[22]  Robert B. France,et al.  A tool-supported approach to testing UML design models , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

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

[24]  John D. McGregor,et al.  Locating Defects in Software Architectures Through Debugging , 2010, SEDE.

[25]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

[26]  John D. McGregor,et al.  Automating test case definition using a domain specific language , 2008, ACM-SE 46.

[27]  Markus Stumptner,et al.  Model-Based Diagnosis of Hardware Designs , 1999, Artif. Intell..

[28]  Standard Glossary of Software Engineering Terminology , 1990 .

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

[30]  Andreas Zeller,et al.  Why Programs Fail: A Guide to Systematic Debugging , 2005 .

[31]  Jianjun Zhao,et al.  A slicing-based approach to extracting reusable software architectures , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[32]  Mary Jean Harrold,et al.  Empirical evaluation of the tarantula automatic fault-localization technique , 2005, ASE.

[33]  Brent Hailpern,et al.  Software debugging, testing, and verification , 2002, IBM Syst. J..

[34]  Nancy G. Leveson,et al.  Safeware: System Safety and Computers , 1995 .

[35]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[36]  Alexander L. Wolf,et al.  Aladdin: A Tool for Architecture-Level Dependence Analysis of Software Systems , 1998 .

[37]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[38]  Franz Wotawa,et al.  Debugging VHDL designs using model-based reasoning , 2000, Artif. Intell. Eng..

[39]  Markus Stumptner,et al.  Debugging of Java Programs using a model-based approach , 1999 .

[40]  Ronnie E. Thebeau Knowledge management of system interfaces and interactions from product development processes , 2001 .

[41]  Rick Kazman,et al.  Architecture, design, implementation , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[42]  John D. McGregor,et al.  Toward a Reasoning Framework for Dependability , 2008 .

[43]  Jeffrey M. Voas Fault Injection for the Masses , 1997, Computer.

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

[45]  Robert Balzer,et al.  Instrumenting, Monitoring, & Debugging Software Architectures , 1998 .

[46]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[47]  David Garlan,et al.  Analyzing architectural styles with alloy , 2006, ROSATEA '06.

[48]  Y. Crouzet,et al.  The SESAME Experience: from Assembly Languages to Declarative Models , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

[49]  John D. Musa,et al.  Software reliability - measurement, prediction, application , 1987, McGraw-Hill series in software engineering and technology.

[50]  John D. McGregor,et al.  Debugging support for security properties of software architectures , 2009, CSIIRW '09.

[51]  John D. McGregor,et al.  The Implications of Variation for Testing in a Software Product Line , 2007, SPLC.