University of Trento

Laboratory of Software Analysis

Mariano Ceccato & Alessandro Marchetto

ceccato at fbk dot eu & marchetto at fbk dot eu

2007-2008



Important news:

No class on April 1st and April 4th. Regular class on April 8th.

COURSE OBJECTIVES AND CONTENTS:

This course has two objectives:

  1. providing the practical skills involved in software analysis and testing. Some techniques/approaches described during the theoretical lessons of the basic course (Software Analysis and Testing) will be applied to real cases of software systems to be re-engineered and tested.
  2. introducing the students to "Empirical studies in Software engineering"

PROGRAM:

Introduction

  • legacy systems
  • reverse engineering, re-engineering, re-structuring and testing
  • program transformations
  • available tools
  • past projects

    TXL

  • introduction to TXL
  • TXL parsing
  • TXL programming
  • program analysis in TXL
  • program transformations in TXL

    Obfuscation

  • Methods for protecting the code against attacks to software intellectual property
  • Malicious reverse engineering
  • Techniques to avoid tampering with the code

    Web applications

  • Summary of technologies and languages for web applications
  • Methods and tools for unit testing and acceptance testing
  • Acceptance test on web applications

    Empirical Software engineering

  • basics of software engineering experimentation
  • designing experiments
  • analysing the experimental data
  • example of real SE experiment

    Tools

  • code analysis and transformations (TXL)
  • testing tools (Fitnesse)

    Laboratory

  • Basic exercises in TXL
  • UML diagram recovery
  • Porting Pascal to Java
  • Execution of two SE experiment (1) Reverse engineering effort on obfuscated code (2) Acceptance test of web applications

    DEPENDENCES:

    Software Analysis and Testing.

    MATERIAL:

    Project:

    1. Java grammar for Txl
    2. Merged SnapScreen source code
    3. Separated SnapScreen source code
    4. Class diagram
    5. Detailed class diagram

    Exercises:

    1. Ambiguous expression language
    2. Expression Language
    3. Exponential (Syntactic and Semantic)
    4. Constant propagation
    5. case to if
    6. let expression language
    7. goto elimination
    8. factorial
    9. expression with fact
    10. sort
    11. Expression with factorial and exponential
    12. pascal to c

    SLIDES:

    Link to the material presented by Doctor Alessandro Marchetto

    TOOLS: TXL,

    EXAM: The examination consists of a discussion regarding the empirical studies conducted and projects executed (maintenance intervention, re-engineering, porting, testing, etc.)

    DATES:







    Last modified 26/3/2008 by: ceccato at fbk dot eu Mariano Ceccato .