N2: Software Architecture-based Testing and Model Checking

Turno Noche (19 a 22 horas)

Henry Muccini, Universitá di L'Aquila, Italia (Curso en inglés)

www.HenryMuccini.com
www.di.univaq.it/muccini

Henry Muccini got its PhD degree in Computer Science from the University of Rome - La Sapienza - in 2002. He is an assistant professor at the University of L'Aquila since 2002, and he has been visiting professor at Information & Computer Science, University of California, Irvine in 2001. Henry's research interests are on software architecture, component-based systems, model-based analysis, testing and model-checking, Web-oriented modeling and product family engineering. Henry Muccini teaches different courses at the University of L'Aquila (Software Engineering II, Modeling Web Applications with the UML, Analysis and Testing of Component-based Systems and Architectures), he has tought courses on Software Quality and Component-based systems at the University of California Irvine, and he is a consultant in some companies. His research and development collaborations are with some research institutes (CNR, Vrije Universiteit, University of California) and companies (Siemens CNX, Terma GmbH, Micron, Marconi).


Objetivos del curso:

In recent years, the study of software architecture (SA) has emerged as an autonomous discipline requiring its own concepts, formalisms, methods, and tools. SA represents a very promising approach since it handles the design and analysis of complex distributed systems and tackles the problem of scaling up in software engineering. Through suitable abstractions, it provides the means to make large applications manageable. SAs support the formal modeling of a system, allowing for both a topological (static) description and a behavioral (dynamic) one. SA specifications can be usefully employed in testing and analysis.

The course, after an introduction to SA and SA modeling, will describe an approach for SA-based conformance testing: architectural tests are selected from a Labelled Transition System (LTS) representing the SA behavior and are then refined into concrete tests to be executed on the implemented system. By employing SA-based testing, conformance between the implementation and the system (architectural) specification is validated. SA-based regression testing methods enable reuse of earlier saved results to test if a modified implementation/architecture conforms to the evolved software architecture. The
approach we consider both top-down and bottom-up evolution - that is, does a slightly modified implementation conform to the initial architecture? or does the (modified) implementation conform an evolved architecture? SA-based model-checking is a very important technique to validate the architectural specification conformance to certain requirements. The course will describe our approach for SA-based model-checking and the tool Charmy developed at the University of L’Aquila. To conclude, the course will show how SA-based model-checking and testing may be combined together in a reasonable analysis process in order to validate SA specifications with respect to requirements and source code with respect to the SA specification.


Programa:

If we consider that the course is organized in five classes of three hours, we can imagine a rough distribution of the contents as follows:

Lecture 1: Introduction to Software Architecture

  • What is an SA
  • Concepts of Components, Connectors, interfaces
  • An Example
Lecture 2: Software Architecture-based Testing
  • Testing basics
  • Specification-based testing basics
  • SA-based Testing
  • An Example
Lecture 3: Software Architecture-based Regression Testing
  • Why Regression Testing
  • Regression Testing Techniques
  • Regression Testing at the architectural level
Lecture 4: Software Architecture-based Model Checking
  • Model-Checking basics
  • Model-checking at the SA level
  • The Charmy approach and tool
Lecture 5: Software Architecture-based Model Checking driven Testing
  • Model-checking vs. testing
  • Combining pros
  • Using Model checking for generating test sequences
  • The TeStor approach and tool

 


Requisitos

This course does not impose any specific prerequisite. Needless to say, a general idea of component-based systems and software architecture would allow the attendees to better understand the course.


Bibliografía

Here an incomplete list of papers used for my lectures. A more complete and precise biblio will be provided on the course web site www.di.univaq.it/muccini/ECI05

  • D. Perry and A.L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineerings Notes, vol. 17, n. 4, pp. 40-52, October 1992
  • D. Garlan and M. Shaw. An Introduction to Software Architecture. World Scientific Publishing Company, New Jersey, 1993
  • H. Muccini. Software Architecture for Testing, Coordination and Views Model Checking. Ph.D. Thesis, year 2002
  • H. Muccini, A. Bertolino, and P. Inverardi. Using Software Architecture for Code Testing. In IEEE Transactions on Software Engineering. Vol. 30, Issue N. 3, March 2004, pp. 160-171.
  • P. Inverardi, H. Muccini, and P. Pelliccione. Charmy: A framework for Designing and Validating Architectural Specifications. Technical Report, Dept. of Comp. Science, Univ. of L'Aquila, May 2005. Submitted for publication. http://www.di.univaq.it/charmy
  • A. Bucchiarone, H. Muccini, P.Pelliccione, and P.Pierini. Model-Checking plus Testing: from Software Architecture Analysis to Code Testing. Proc. International Testing Methodology worksho, LNCS vol. 3236, pp. 351 - 365 (2004), October 2004.
  • Nenad Medvidovic and Richard N. Taylor. "Classification and Comparison Framework for Software Architecture Description Languages." IEEE Transactions on Software Engineering, vol. 26, no. 1 (January 2000).


Notas

GrupoApellido,NombreNota (0..30)
1Hara, Diego Gabriel 30
1Sequeira, Alejandro Eugenio 30
2Visillac, Martin 24
2Oks, Marcelo 24
3Zeano, Maria Virginia 29
4Schapachnik, Fernando 27.5
4Galeotti, Juan Pablo 27.5
6Sarmiento, Nicolas Omar 30
6Pavese, Esteban Jose 30
6Bruzzoni, Carolina 30
10Tarulla, Francisco 26
12Wassermann, Demian 28.5
12Rosner, Nicolas 28.5
12Bourg, Lorena 28.5
15Rodriguez, Pablo Sebastian 27
15Santos, Marcelo Hugo 27
18Guerrini, Maximiliano 28
18Vaccaro, Luis 28