Thursday, June 19, 2008

An Approach to Measurement Java Code Quality in a Reuse Environment





A reuse environment was defined by [Frakes, 1994] as an environment where process and tools give support for activities that are important to build components with/for reuse. According to [Griss, 1994], a repository is one of the most important elements in a reuse environment. However, the quality of the assets on the repository had been questionable according to the type of reuse model adopted.

We are thinking about a reuse model where anyone can store assets on the repository without previous analysis. In this model, we have a low reliability about the reusable assets because anyone can store assets and who will reuse don’t have assets' quality assurance. In this model, the main problems are low reliability and a concern about code problems propagation.

We are developing an approach that can minimize these problems. In this approach, the repository can check the stored assets' quality according to metrics. For this initial stage, we are considering a repository where are stored only Java code. Thus, to develop this approach we accomplish the main steps: (i) investigate code metrics that can be used; (ii) select quality attributes; and (iii) quality attributes measurement.

In the first step, we made a time line about software code metrics and selected a set of metrics that can be used in our approach. We analyzed ten metrics groups and we were selecting the metrics according the following criteria: applicable for Java code; there are researche reporting about empiric validation; there are a consistent theoretical validation; and the metrics have a good acceptance, in other words, they were implemented in the analyzed metrics tools. The selected metrics were LOC, Cyclomatic Complexity [McCabe, 1976] and Chindamber and Kemerer metrics [Chidamber, 1994].

The second step was to select what type of quality attributes would be quantified in our approach. We selected the Maintainability quality attribute described in ISO 9126. In the third step, we made a relationship between each quality attribute of Maintainability and a set of metrics selected that can quantify these attributes. So, this approach can quantify a set of quality attributes using code metrics.

The next stage in this work is to integrate the approach automation in a reuse environment. Thus, we want to analyze if the retrieved component's quality is better, and if it is possible this approach to reduce the reuse of low quality code. We believe the main contribution of this research is to introduce a little bit of the quality analysis responsibility of the reusable assets also to the repository. Thus, we can have more reliability in a reuse environment without a certification process for stored assets on the repository, moreover it can reduce the cost to introduce reuse in a begging stage.

Tuesday, June 10, 2008

3rd Workshop for Introducing Reuse in Enterprises (WIRE)

During June 27-28 in Recife, Pernambuco, Brazil will be performed the 3rd Workshop for Introducing Reuse in Enterprises (WIRE). This workshop is inspired in a previous successful one: the Annual Workshop on Institutionalizing Software Reuse (WISR). WIRE will join together researchers and practitioners working with software reuse.

The workshop is composed of talks, tutorials, and panels. This year, Jan Bosch and Hassan Gomma will be the keynotes. The workshop is the right place to discuss practical software reuse. If you have time, combine the workshop with the São João in Caruaru one of the biggest party around the world. After the workshop, this blog will present a summary.

Sunday, June 1, 2008

10th International Conference on Software Reuse (ICSR) – Final Feedback

As I posted before in this blog, last week happened the International Conference on Software Reuse (ICSR) in Beijing, China. The conference was composed of tutorials, workshops, doctoral symposium, demo tools, and regular papers (see the program here). The key researchers working on the topic were there.

The main discussion during the ICSR involved search and retrieval and its related issues, architectures for reuse, COST, and several aspects of product lines (variability, domain analysis, feature interaction, technologies, and quality). Finally, two points should be highlighted: services starting to be discussed also in software reuse and empirical studies in the area. These two points are important: first, it is interesting to see some work investigating the [real] possibility of services work well in the reuse scenario; second, empirical results indicate that the field is each more becoming more mature with solid evaluations.

By the way, in this conference, the RiSE Labs presented two papers related to model-driven reuse and our repository system. In addiction, the RiSE business unit presented two of our products in the tools session.

The next ICSR will be in 2010. So far, we do not know where the conference will be hosted. When it was known, this blog will announce.