Showing posts with label component. Show all posts
Showing posts with label component. Show all posts

Wednesday, September 2, 2009

35th Euromicro Conference on Software Engineering and Advanced Applications


On last week, between 27-29 August, it was run the 12th Euromicro Conference on Digital System Design (DSD) and the 35th Euromicro Conference on Software Engineering and Advanced Applications (SEAA) 2009.

Both conferences took place at the Cultural and Conference Center, in the University of Patras. The event put togther research from various places of the world. All of them interested in discussing new ideas, such work in progress, and concluded work. The RiSE group was represented by Yguaratã Cerqueira Cavalcanti, in the SEAA 2009 sessions, where he presented three works from the group, as follows:

1 - Martins, A. C; Garcia, V. C.; Almeida, E. S.; Meira, S. R. L. Suggesting Software Components for Reuse in Search Engines Using Discovered Knowledge Techniques, 35th IEEE EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), Service and Component Based Software Engineering (SCBSE) Track, Patras, Greece, 2009.

2 - Neiva, D. F. S; Almeida, E. S.; Meira, S. R. L. An Experimental Study on Requirements Engineering for Software Product Lines, 35th IEEE EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), Service and Component Based Software Engineering (SCBSE) Track, Short Paper, Patras, Greece, 2009.

3 - Silva, F. R. C; Almeida, E. S.; Meira, S. R. L. A Component Testing Approach Supported by a CASE Tool, 35th IEEE EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), Service and Component Based Software Engineering (SCBSE) Track, Short Paper, Patras, Greece, 2009.

The paper "A Component Testing Approach Supported by a CASE Tool" was presented in the SCBSE: Component-based Systems Correctness and Test session. In conjunction with this work, several other articles were presented , showing really interesting approaches.

The paper "Suggesting Software Components for Reuse in Search Engines Using Discovered Knowledge Techniques" was presented in the session SCBSE: Experiences and Applications. And th paper "An Experimental Study on Requirements Engineering for Software Product Lines" was showed in the session SPPI: Empirical Approaches.

All the work presented were very interesting. People showed a lot of new ideas to solve the most well know problems regarding SCBSE, and the importance of the empirical approaches session should be emphasized, since there is a lack of well made empirical validation in most of CS work.

Oh, we had also a very amazing gala dinner organized by the Euromicro committee, in front of a very beautiful beach. There we could taste really nice Greek food, and it was also possible to see some Greek dance and to listen Greek music. Really nice!!!

The next Euromicro will take place on Lilly, France. I hope to see you there.

Monday, March 31, 2008

How big should a reusable component be?

Bill Frakes in his website asked to Ted Biggerstaff one of the pioneers in software reuse and specialist in the software generators area, how big should be a reusable component.

What do you thing about it?

Thursday, January 17, 2008

Reusable Component Identification from Existing Object-Oriented Programs

Software Reuse comprises in many different strategies, varying from technical perspective to the organizational and managerial perspective. Among the technical factors in software reuse, a reusable asset repository plays an important role in reuse programs since it stores valuable, experienced knowledge. Despite its benefits, an asset repository must be populated with reusable artifacts in order to be useful to developers; otherwise, its adoption is definitively compromised. On the other hand, already developed software is available from several open repositories on the internet and from companies’ own private repository. The effort needed do identify reusable artifacts from existing sources must be considered.

My master dissertation lies under this motivation. We are trying to answer questions such as, How can we assist engineers in the process of identifying candidates of components from existing source code? What kind of heuristics and metrics should be blend (and how) in order to get better results? How can we make it scalable to large systems?

We have analyzed component identification techniques and tools, mainly focused on software clustering. One early approach is presented by Caldiera and Basili in 1991, in a paper entitled “Identifying and Qualifying reusable software components”. They proposed cost, quality and usefulness as reusability factors which should be addressed by cyclomatic complexity, regularity, reuse frequency and code volume metrics. The approach was fully automated in a tool called “CARE”.

Another method to identify architectural component candidates in a hierarchy of procedural modules has been proposed in Girard and Koschke in 1997. The dominance analysis of the relation on the call graph is performed to group functions/variables into modules and subsystems as component candidates. In short, dominance analysis attempts to identify nodes in a graph that can be grouped from the “dominance” degree of a node over the others.

In the same year, Sahraoui et al. presented an object identification approach based on Galois lattice, used for concept analysis. The concept analysis is a branch of lattice theory that can be used to identify similarities among a set of objects based on their common attributes. The objects are then clustered based on these commonalities.

However, I’m more inclined to think Mitchell’s approach is one of the best due to its capability to arrange many possibilities at the time. He has developed a software clustering tool called Bunch. Bunch produces subsystem decompositions by partitioning a graph of the entities and their relations in the source code. It uses a Hill-Climbing algorithm to iterate over partitions until it find the best one.

Most of current methods on software clustering are concerned in find partitions from the edge strength among the nodes. Although there are many possible ways to that, combining different approaches is a good start to overcome the downsides of a particular approach.

I’ve presented the current research on the Software Reuse Seminar discipline. The slides can be downloaded here.