University of Trento

Laboratory of Software Analysis

Filippo Ricca & Mariano Ceccato

ricca@itc.it & ceccato@itc.it



COURSE OBJECTIVES AND CONTENTS:

This course aims at providing the practical skills involved in software analysis and testing. Algorithms and techniques described during the theoretical lessons of the basic course (Software Analysis and Testing I) are applied to real cases of software systems to be re-engineered and tested. The tool used for analysis, restructuring and testing tasks is TXL (TXL website).

PROGRAM:

Introduction

  • legacy systems
  • reverse engineering, re-engineering, re-structuring and testing
  • available tools

    Re-engineering of a real legacy system (course project)

  • program transformations
  • presentation of the 'legacy code'
  • requirements of the architecture recovery phase
  • re-implementation of the system
  • testing

    Tools

  • introduction to TXL
  • parsing
  • TXL programming
  • program analysis in TXL
  • program transformation in TXL
  • testing tools (JUnit)

    Laboratory

  • basic exercises in TXL
  • architecture recovery
  • design restructuring
  • code generation
  • testing

    DEPENDENCES:

    Formal languages and compilers, Programming I and II, Software Engineering, Software Analysis and Testing I.

    MATERIAL:

    SLIDES:

    TXL EXERCISES:

    ASPECTJ EXERCISES:

    JUNIT EXERCISES:

    CODE: JConsole1.0

    TOOLS: TXL DOT JUNIT AspectJ

    GRAMMARS: AspectJ TXL Grammar

    PAPERS:

  • Applications of Graph Visualization. S. C. North
  • An approach to program testing. J.C.HUANG
  • Branch Coverage for Arbitrary Languages Made Easy. I.D.Baxter
  • An Overview of AspectJ. G.Kiczales et all.
  • Towards the Systematic Testing of Aspect-Oriented Programs. R. T. Alexander et all.

    EXAM: Following this course students will be able to carry out an independent real re-enginnering project. The examination consists of a discussion of the project 16 FEBRUARY 10 A.M - ROOM 12 .

    Last year's course (Analysis and Testing of Software Systems II)

    Thesis proposals




    Last modified 19/1/2005 by Filippo Ricca.