An Infrastructure for Certification and Re-engineering of Open Source Software






17 Nov 12 2nd CROSS Workshop

23 Jun 11 1st CROSS Workshop

22 Jun 10 First paper published! (The GUISurfer tool: ...)

24 Feb 10 Kick-Off Meeting

6 Oct 09 CROSS website launched

Project Description

Plan and Methods

The goal of the CROSS project is to strengthen the role of open source software (OSS) in the European IT sector. Actually, open source software is increasingly important for public and industrial organizations, but its quality can be very hard to measure. This makes its use a risk. This risk could be substantially reduced if there were appropriate standards, supported by analysis tools, for certifying such software. Developing such tools, making them widely available for the OSS community, and, in the long term, contributing for the creation of an international certification authority for open source software, such are the general goals of the research context for this project.

Stated as above, this represents a huge working program, certainly far behind what may be achieved in the context of this project. Highly motivated by the OSS certification challenge, the team decided on the following strategic approach which we believe has potential for developing concrete and incisive, even if partial, answers to the problem. The envisaged strategy has 4 fundamental options: select a number of specific problems in OSS certification to address; develop techniques for both code and documentation analysis; develop an open certification infra-structure for OSS projects; frame the whole project into a collaboration with a leading IT company, heavy user of OSS. These 4 options are detailed in the sequel.

(I) Organise a research proposal not claiming any sort of (pseudo-)universal solutions, but addressing a number of very specific problems in the OSS certification domain. Two thirds of CROSS will be devoted to developing new techniques and solutions for such four concrete problems:

  1. How can OSS be certified in terms of safety of execution?
  2. How to certify the composition process on assembling a stack of OSS components?
  3. How to certify the interface layer of OSS applications?
  4. How to extract and analyse underlying architectural information from OSS-based systems?

The choice of these 4 problems was dictated by

- their practical relevance, in particular from the point of view of IT industry aiming at integrating OSS components in larger applications, as indication of the team´s industrial consultant from Multicert;

- the team´s specific expertise in the relevant domains; in particular we intend to harness methods and results from the team involvement on past and current research projects to address the specific problems of the OSS certification challenge, concretely, and by problem:

  1. RESCUE: REliable and Safe Code execUtion for Embedded systems (FCT-funded project PTDC/EIA/65862/2006) which aims at providing innovative, efficient and expressive mechanisms for the secure implementation and execution of code, with an emphasis on problems posed by embedded systems.
  2. CACE: Computer Aided Cryptography Engineering, FP7 European project started in 2008, where the team is involved in the Formal Verification and Validation workpackage, aiming at globally address both functional and security requirements in cryptographic software implementations, analyzing the transformations between different levels of abstraction, and harssning previous scientific results in formal validation, verification and certification of secure software.
  3. Several research projects with industry in the context of the Open Geospatial Consortium (OGC). A team member is serving as leader of the Portuguese OSGeo Local Chapter, promoting and developing Geospatial Open Source technologies in Portugal.
  4. IVY: A model-based usability analysis environment (FCT-funded project POSC/EIA/56646/2004) which aimed at developing a model based tool for the analysis of interactive systems designs.
  5. PURe: Program Understanding and Re-engineering: Calculi and Applications (FCT-funded project POSI/CHS/44304/2002) which was a broad scope project, rated as Excellent in its final evaluation, aimed at developing rigourous calculi for program understanding and re-engineering.

Further we should mention the team involvement in launching and maintaining the OpenCert, in partnership with the United Nations University; and in organising the series of Summer Schools in Generative and Transformational Techniques in Software Engineering (GTTSE), in the broad area of program understanding.

Each of these problems correspond to a specific task in the project workplan (tasks T1 to T4, respectively).

(II) Supporting research on the 4 problems mentioned above, the project include two working directions directly devoted to the development of Program Understanding techniques that can be most useful in the analysis of OSS, despite their certainly broader application. We decided to focus on 2 different techniques, among several possible choices:

  1. Code slicing, which is fundamental to a number of methodologies of program analysis
  2. Documentation mining which is supposed to complement program analysis with knowledge discovery through mining in the extensive on-the-fly documentation that usually accompanies OSS releases. This includes static information (eg, change logs in the source code control system and history files) as well as dynamica data, as in documented on-line discussions (eg, mailing lists, wikis, etc). We believe this line of inquiry is particularly suited for OSS understanding.

The project includes a specific task (tasks T5 and T6) devoted to point a. and b., respectively.

(III) The third strategic option concerns how to render the project results close to the OSS developing community, in order to get their feedback and pave the way for an effective impact of this research effort. Therefore, we decide to organise the CROSS project around the development and animation of an online infrastructure --- the Certification Portal --- in which independently developed analysis and visualisation tools can be inserted and used. All the tools developed within the project will be made available to the OSS community through this Portal, and we expect more will follow.

Monitoring (rather than controlling) is the main idea: the Certification Portal will not only provide support for OSS analysis, but also make the evolution of OSS projects clearly visible to the OSS community. In the long run, it is expectable that, feedback loops made possible through this Portal, will have some effective impact in the overall quality of OSS products, with minimal intrusion on the peculiar, but successful OSS development life-cycle.

The emphasis the team puts in this strategy is witnessed by the decision to mention it explicitly in the project title.

(IV) Last but not least, the team decide to frame this research effort into a collaboration with a leading IT company for which reducing the risk associated to OSS components in its own solutions is a major concern. The team has therefore contacted Multicert and invited its General Manager, Dr J. P. Miranda, to act as non funded consultant to the project.

Multicert has an extensive experience in OSS development and integration, specially in tailored security-related big projects. Those include electronic postmarking (recognized with the 2006 APDC/Siemens innovation award), electronic voting (piloted in the 2004 European Elections and the 2005 National Elections) and electronic invoicing (used by Portugal Telecom). The company is also a reference player in digital certification and OSS security solutions, used in several key projects, namely in the Portuguese Citizen Card, Electronic Passport and Residence Permit. Also related with the CROSS proposal, it should be mentioned that Multicert is one of the proponents of CESecore submission to the Eurostars EC Programme, whose aim is to develop an open source Security Core product, certified against Common Criteria EAL 4+, that will secure a wide range of services.


T1: Safety Analysis for OSS

T2: Combining OSS: Certication of Software Stacks

T3: Graphical User Interface Analysis for OSS

The goal of this task is to develop techniques and tools that will enable analysis of the user interface layer of software systems from source code. GUISurfer, a tool to reverse engineer Java/Swing GUI code, is being used as the starting point for this task. Two complementary lines of work are being pursued:

  • extending the back-end (that is, generalising the approach to new languages and toolkits);
  • extending the front-end (that is, enabling the generation of new types of models in order to extend the analyses which can be performed).

Regarding the back-end, the available version of GUISerfer has been implemented with a view on making it as generic as possible. Experiments have been made that indicate it will be possible to apply to a range of event-based user interface development toolkits and languages. We are building on that initial work to develop new back ends. Currently, we are working with WxHaskell and GWT. WxHaskell, in particular, represents a rather different programming paradigm (functional) but initial results have provided positive indications regarding the feasibility of such attempt.

At the front-end, work at generating state machines has been carried out. State machines seem like a natural candidate for representing a user interface's dialogue control model, but other alternatives need to be explored (for example, task models or human-readable documentation of user interface features).

State charts and ConcurTaskTrees are behavioural models that open the way to a number of possibilities: comparing different systems (or versions of the same system) to determine compatibility at the level of supported user interactions, using metrics and algorithms over graphs to reason about the characteristics of such interactions; or comparing implementations to models - for example, using model based-testing to compare a new version of a system with the model of its previous release as a way of performing regression testing.

Static analysis is also being considered. The goal here is to enable the analyses of the user interface from a structural point of view. GUISurfer is already capable of generating flow diagrams identifying all objects in the interface and the dependencies between them.

T4: Architectural Reconstruction for OSS 

T5: Slicing Techniques Applied to OSS

T6: OSS Documentaion Mining

T7: Development of a Certification Portal for OSS

r9 - 29 Jun 2011 - 16:59:49 - MariaJoaoFrade
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM