Monday, May 26, 2008

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

Yesterday, (May 25, 2008) started the main reuse conference around the world. The initial day started with the Doctoral Symposium. In this symposium, coordinated by Greg Kulczycki (Virginia Tech) with the participation of Bill Frakes (Virginia Tech) and I, three Ph.D. students received feedback from their research related to quality improvement, formal methods and agents. The main issue in this symposium was the lack of the big picture during the presentations. The students had difficulties to explain clearly the main points: the problem, the state-of-the-art, and their proposal. However, I believe that the feedback received will be useful.

In the afternoon, we had the IV RESAFE: International Workshop on Software Reuse and Safety coordinated by Bill Frakes and Jonh Favaro. In this workshop, Bill, John, Dirk Muthig, Greg and I had good discussions about contracts, certification, safety, reliability. John presented his experience with automobile projects in Europe while Bill and Greg discussed their point of views related to Therac accident and contracts respectively. I explained a little about experience with component certification and Dirk showed some directions related to the KobrA approach. After the conference, Bill and John will write a summary about the workshop. By the way, the day was good to meet other researchers such as Ruben-Prieto and Wayne Lim who was presenting his awarded tutorial at RiSS in the ICSR.

Monday, May 19, 2008

Tribute to Honor Jim Gray

If you are in the U.S during May 31, 2008, you should consider participate in the Tribute to Honor Jim Gray. Jim Gray was a computer science pioneer, known for his incredible work as programmer and mentor. The University of Berkeley is organizing this tribute which will have the participation of important names in the computer science community. At this university, Jim Gray earned the university’s first Ph.D. in Computer Science.

Tuesday, May 13, 2008

Can We define a Software Reuse Dictionary?

Yesterday, I was listening the great interview with Krzysztof Czarnecki at Software Engineering Radio when the interviewer commented about the list of buzzwords that we have in the software engineering/reuse community. I agree with them, and I think that sometimes we have the same concepts with different names. I tried to put some ones here, please, help me with it.

Perhaps, we can create a reuse dictionary and after that, uniform it.

A – Application Generators, Application Engineering (AE)

C – Code Generators, Component, Component-Based Development (CBD), Core asset

D – Design Patterns, Domain Analysis, Domain Design, Domain Engineering, Domain Implementation, Domain Model, Domain Modeling, Domain-Specific Software Architecture (DSSA), Domain-Specific Languages (DSL), Domain Scope

F – Facets, Feature, Feature Modeling, Feature-Driven Development (FDD), Feature-Oriented Programming (FOP), Frameworks

G – Generative Programming (GP)

M – Model-Driven Development (MDD), Model-Driven Architecture (MDA)

P – Platform Independent Model (PIM), Platform Specific Model (PSM), Product Development, Product Lines Engineering (PLE), Product Instantiation

R – Reuse Maturity Model (RMM), Reuse Libraries, Repository System, Repository

S – Software Factories, Software Product Lines (SPL), Software Product Line Architecture

T – Transformational Systems

V – Visual Domain-Specific Languages

Thursday, May 8, 2008

Software Measurement: The Initial Climb

Software Measurement: The Initial Climb. Yes, it was the title of my talk at Virginia Tech University, Falls Church, U.S. In this talk, I presented an overview about this topic involving some definitions, the measurement process, the theory of measurement, software measurement programs, including empirical studies and companies reports, and the current state in the area.
You can see our previous discussion about software measurement here.

See the slides of the presentation here.

Saturday, May 3, 2008

Applying a Semantic Layer in a Source Code Retrieval Tool

Today, a master thesis of a RiSE member is published in this blog.

Here is the abstract of the work: The challenge for achieving a more efficient software engineering practice comprises a vast number of obstacles related to the intrinsic complexity of software systems and their surrounding contexts. Consequently, software systems tend to fail in meeting the real needs they were developed to address, consuming more resources, thus having a higher cost, and taking longer to complete than anticipated. The software reuse field is often regarded as the most promising discipline for closing these gaps, however, models and tools are still immature to make its adoption on a systematic fashion.

To promote the development of practices, models and tools are welcome activities to boost the reuse activity in most software development organizations. The lack of knowledge about reusable assets and the use of inappropriate tools are example of reasons for the low reuse activity. In this sense, this work presents a semantic layer applied to a source code search tool with the objective of bringing real relevant returns closer to user need, and, consequently to increase the chance of reuse. Two new components are proposed for the execution of the semantic activities and the resulting semantic search engine is evaluated with a realistic environment configuration analogous to projects from software organizations.

Outline: The main contribution of this work refers to the semantic layer applied to a keyword-based search engine in order to increase the precision of search returns. The proposed solution utilizes a domain ontology for enhancing the construction of the query with related terms and a machine learning technique for source code classification. The implemented proposal configures a viable and practical solution for being utilized in an industrial scenario in favor of source code reuse. Through the real experiment, it was evidenced the increase of precision during the code searches and this finding goes against the semantic conceptual gap between user needs and machine understanding.
The full text you can get here.