Program Understanding and Re-engineering: Calculi and Applications




Sep 18 Paper Towards a Coordination Model for Interactive Systems by MarcoAntonioBarbosa, JoseCampos and LuisSoaresBarbosa has been accepted for FMIS'06 (Macau).

July 3 Paper Configurations of Web Services by MarcoAntonioBarbosa and LuisSoaresBarbosa has been accepted for FOCLASA'06 (Bonn, Germany).

July 3 Paper Strong Types for Relational Databases by Alexandra Silva and JoostVisser has been accepted for the Haskell Workshop 2006 (Portland, USA).

June 16 Paper Strongly Typed Rewriting For Coupled Software Transformation (by AlcinoCunha and JoostVisser) accepted by RULE 2006 (Seattle, USA).

May, 26 Paper Transposing Partial Coalgebras (by LuisSoaresBarbosa and JoseNunoOliveira) accepted for publication in TCS, Elsevier.

May, 11 Papers Type-safe two-level data transformation (by AlcinoCunha, JoseNunoOliveira and JoostVisser) and Pointfree factorization of operation refinement (by JoseNunoOliveira and Cesar Rodrigues) have been accepted by FM'06 (Canada).

May, 8 A paper entitled An Orchestrator for Dynamic Interconnection of Software Components, by MarcoAntonioBarbosa and LuisSoaresBarbosa, accepted at MTCoord'06 (Bologna).


Project Summary

In a situation in which the only quality certificate of the running software artifact still is life-cycle endurance, customers and software producers are little prepared to modify or improve running code. However, faced with so risky a dependence on legacy software, managers are more and more prepared to spend resources to increase confidence on - i.e. the level of understanding of - their code.

As a research area, program understanding affiliates to reverse engineering, understood as the analysis of a system in order to identify components and intended behaviour to create higher level abstractions of the system.

If forward software engineering can today be regarded as a lost opportunity for formal methods (with notable exceptions in areas such as safety-critical and dependable computing), its converse still looks a promising area for their application. This is due to the complexity of reverse engineering problems and exponential costs involved.

In such a setting, this project intends to develop calculi for program understanding and reverse engineering, building on the formal techniques developed by academics for the production of fresh, high quality software. One of its fundamental goals is to show that such techniques, eventually merged with other, informal program maintenance and debugging procedures, will see the light of (industrial) success in their reverse application to pre-existing code.

The project addresses the areas of program reengineering, classification and refinement. The envisaged notion of a `program' is broad enough to include typical data-processing applications, real-time algorithms or component-based services. As an increasing number of systems are based on the cooperation of distributed, heterogeneous components organised into open software architectures, a particular emphasis is placed on the extension of classical techniques to the classification and reeginering of coordination middlewares. In each of these areas the project aims to develop specific techniques and calculi which, based on sound mathematical foundations, are scalable to the industrial practice and easily applicable by the working software engineer.

r2 - 02 Mar 2009 - 19:23:42 - LuisSoaresBarbosa
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM