Sunday, November 30, 2008

2nd RiSS - RiSE Summer School

In the last year, we created RiSS - RiSE Summer School on Software Reuse. The main goal of RiSS is to discuss the main software reuse issues with the main experts in the field from industry and university. In this year, we had the second edition and I believe that the summer school was very nice. In the program, a full discussion about software product lines, the main topic on the software reuse area. As lecturers, we had experts from industry and university from several countries around the world. This mix is part of the RiSS successful.

In this year, we had five lecturers, one Workshop on Software Reuse Efforts and an awesome panel with the lecturers answering questions from the attendants.

During three days, we were in front of the sea as you can see and with a full room composed of 100 people interested on the topic.
In this year, we had the award again for the best lecture and Paul Clements joined to Wayne Lim with the best presentation about product line architecture.
















In name of the organization, I would like to say thank you for the participants, lecturers, and authors.

See you next time!!

One more Unforgettable RiSE Day

On November 26th, we had at C.E.S.A.R one more RiSE Day. This special workshop was composed of many discussions involving too many different issues in software reuse. In this edition, we had invited participants:Klaus Schmid, Kyo Kang, Rob Ommering, and Michalis Anastasopoulos.

The great agenda started with an overview about RiSE Labs and continued with the presentations about product lines, service-oriented product lines, bug triage and rise tools. Every year, I believe that this workshop is getting better.

Thanks for all the students and the invited participants for valuable feedback and patience.

Friday, November 7, 2008

Asset Retrieval Tools, Question Answering and Future

Nowadays, we are living in a world widely connected to the Internet where all users from the computer science area or not, are using search engines to find something. Different types of advances are facing these systems including song recognition and face detection. On the other hand, others relevant directions are being explored also. On July 2005, AskJeevs (ask.com) was acquired by InterActiveCorp for roughly $2.3 billions.

As you can see by the name, Ask.com is a question answer system on the web. In a paper from Communications from the ACM (CACM), Roussinov et al. discuss these systems with experimental data and interesting insights. Five years ago, I wrote a “paper” (in Portuguese) called: Common Component Market (CCM): Even your mother will want one! [you can see a draft in English here].

Nowadays, looking again from that paper, the Ask.com scenario, and the current search engines for source code, how far we are from doing questions such as the ones described in my “paper” and others based on requirements, design, and combining other information such as specific metrics.

The time will say it. Source code engines such as B.A.R.T, Merobase, Koders, etc., maybe can show it soon or not.


Tuesday, November 4, 2008

Software Reuse Business

In 1996, Wayne Lim wrote a paper Evolution of the Software Reuse Business published in the 4th International Conference on Software Reuse (ICSR). In his paper, Wayne discussed the roots of software reuse regarding the business point of view.

Wayne presented the case of the Raytheon and its efforts at the Raytheon Missiles Systems Division dating back to the mid-1970’s. In that time, the company developed a system which included logic structures, an index system, a library, some design specifications and coding standards. Some years after (1981), Raytheon through the Raytheon Computer Services created its reusable system ReadyCode. Next, with this experience they created a company, MasterSoftware, called the world’s first fully reusable software company, as described by Wayne.

Nowadays, we do not have any news about this company even tough Raytheon is still on business. In Wayne’s analysis, the main issue was that their system was success within Raytheon and the market outside the company boundaries is sometimes very different. Wayne highlights the importance of marketing since reuse within a company differs from reuse as an external business. The second point is the life cycle stage of the technology. In that time, reuse was a new way for the market and the need for education and culture was/is too important too.

From that time, we can see many companies on the road and some of them created by the main researchers on the field working in different areas. Examples of companies created from academic researchers include Bayfront Technologies Inc, a company located in California, founded in 1992 by James Neighbors, one of the pioneers in domain analysis. Semantic Designs, Inc, located in Austin, Texas, USA, was founded in 1995 by Dr. Ira Baxter and Dr. Christopher Pidgeon. BigLever Software, Inc is also located in Austin, Texas, being founded in 1999 by Charles Krueger, an important expert in software reuse. Other important researchers also have their companies, such as Bill Frakes, with Software Engineering Guild, Ruben Prieto-Diaz, with Reuse, Inc, Ted Biggerstaff, with www.softwaregenerators.com, and Wayne C. Lim, with the Lombard Hill Group, all of them working with consulting and services related to software reuse.
Not directly associated to academic researchers, the Flashline, Inc. company was a large metadata repository vendor, located in Cleveland, OH, USA. It was purchased in 2006 by BEA Systems, Inc, which incorporated Flashline's repository into its product family. Examples of reuse-dedicated companies from other countries include The Reuse Company, located in Madrid, Spain, with tools for knowledge reuse, and Pure-Systems, founded in 2001 in Germany.

In Brazil, RiSE is also a company offering software reuse solutions based on the C.E.S.A.R and RiSE expertise on the topic.

All of these efforts show that the market is looking for ways to increase the productivity, quality and reduce costs and software reuse is an effective way to achieve it. However, in order to be successful it involves a mix of different and important ingredients.

Monday, October 6, 2008

An Integrated Cost Model for Product Line Engineering

Today, we will publish in this blog one more M.Sc. dissertation defended in our group.

Jarley Nobrega's dissertation presents a relevant contribution for the field defining an economic model for software product lines.

Here is the abstract of the work:

In the software development community, the process of using existing artifacts rather than building them from scratch – generally known as software reuse – has been advanced as a way in which the problems associated with cost and schedule overruns can be avoided. Despite the potential rewards from an effective reuse program, it appears that its large-scale adoption is not particularly prevalent. Among the factors that inhibit reuse adoption there are the economic obstacles faced by organizations, which are concerned with the cost related to develop software for reuse and with reuse. Currently, thedecisions concerning large-scale reuse are often related with an economic viewpoint, since the development of software to be reusable can be considered as an investment. Moreover, the adoption of a software product line in a reuse context comes up with some inhibitors, such as the application of cost models in a restricted way, the lack of an investment analysis strategy, and the fact that a few cost models have a reuse scenario-based approach.

In this context, this work presents an integrated cost model for product line engineering in order to help the decisions concerning reuse investment. The foundations of the model were based on an extensive survey on cost models for software reuse and its extension to the product line approach. The model presents the definition of a set of cost and benefits functions, the description of reuse scenarios for product line engineering, and an investment analysis strategy. In addition, a simulation model based on the Monte Carlo method was proposed for simulating the reuse scenarios.

Finally, this work discusses the results of a case study in the context of a real software development environment where the model was applied.

See the full document here.

Sunday, October 5, 2008

Second European Conference on Software Architecture (ECSA) 2008



From september 29th to october 1st, the Second European Conference on Software Architecture (ECSA) was helded in Paphos, Cyprus. The event had 37 presentation followed by poster sections where the research papers. The papers from the conference were divided in several sections. The RiSE Labs was there with the paper titled "Evaluating Domain Design Approaches Using Systematic Review" from Ednaldo Dilorenzo de Souza Filho, Ricardo de Oliveira Cavalcanti1 Danuza F. S. Neiva, Thiago H. B. Oliveira, Liana Barachisio Lisboa, Eduardo Santana de Almeida, and Silvio Romero de Lemos Meira ,in the architecture evaluation section. I presented the paper representing the authors.

The conference shown us the emerging subjects in software architecture. Among them, many interesting articles presented work about aspect orientation in architecture specification. Another discussed area was the documentation of architecture design desicions, that is a topic related with all another areas in software architecture. Software product lines was presented in a significant number of presentations, specificaly in the evaluation and documentation area. What show us that is a still growing topic.

The conference had an interesting format, with the poster section, where the short papers were discussed deeply. They were extremely necessary for a good undertanding of the subjects presented by their authors. As the keynotes we had Colin Atkinson talking about the verification of software architecture by self testing components.

Tuesday, September 23, 2008

Six Steps to Develop a Good Survey

Often, we researchers and scientists have to understand, evaluate, and learn different methods, processes, techniques, technologies, and so on. We discussed previously the importance of empirical studies in the area. On the other hand, another important and probable the most used research method are Surveys.

If you take look, we are often asked to participate in surveys in our life, in different roles such as: electors, consumers, service user, and so on. Doing research, many times we have to design a survey to understand and characterize some particular phenomena. However, in some situations, we forget that there is a bunch of important material about it published in other sciences and, specially, in the software engineering area.

I am designing a survey to characterize the state of reuse measurement based on expert opinion and the series of paper published by Shari Pfleeger and her colleagues were and are being extremely valuable. Thus, if you need to understand, design, construct, and evaluate a survey, I strongly recommending these papers [P1, P2, P3, P4, P5, P6]. These papers gathered experience in the field during the last years and are extremely important for someone interested in this activity.

Regarding to reuse are, I recommend for example two papers in this direction [P1, P2]. The second one presents the state of software reuse in Brazil conducted by RiSE.

Sunday, September 14, 2008

12th International Software Product Line Conference (SPLC) - Conference Report

Last week, during September 8-12, in Limerick, Ireland, was held the 12th International Software Product Line Conference (SPLC). The conference put together more than 220 researchers and practitioners from several places around the world interested in several issues about software product lines.

In the first day, initial ideas were discussed in four workshops approaching Dynamic Software Product Lines (a mix from adaptive systems, middleware and SPL ideas), Aspect Oriented and SPL (conducted by Vander Alves and his colleagues), Service-Oriented Architectures and Software Product Lines and Software Product Line Testing. In my opinion, these workshops discussed current hot topics in the field with some ones more consolidated than others. For example, the community does not have a common understanding about Dynamic Software Product Lines yet. On the other hand, some areas such as testing and AOP start to be more concrete with the integration. In addition, some tutorials were also important to disseminate the topic.

On Tuesday, we had the first keynote speaker: David Parnas. David started discussing his inspiration with the Fred Brooks’ work, and discussed his brilliant ideas about program families and other experiences. His talk was titled Multi-Dimensional Software Families: Document Defined Partitions of a Set of Products. David also discussed about the importance of documentation in software development. Another remarkable moment was his warning about the paper counting process, it was very important. David said that one important point in his papers is that it is still applicable today and makes total sense [This book is a compilation of his work. I strongly recommend it.].
For me, it was special because one day before I was introduced to him by David Weiss. I did not have much time to talk to him but it is very good when you have the opportunity to meet someone that was inspiration in the field for you. David said about his experience in Brazil years ago and other points. My first advice here is to carry on your camera all the time. [I did not have my camera there]. After the talk, David left the conference. Actually, I would like to see him more around.

Next, the sessions were started in parallel. The first one, involving feature models and the second one: SPL experiences. I decided attendant for the second one and it was good. Experiences in banks, automotive and embedded were presented. In this section, Dirk Muthig and his colleagues from Fraunhofer Institute showed their two experiences. Closing the sessions, time for lunch and discussing SPL with different people. In the afternoon sessions, information retrieval and clustering were integrated to discover product lines requirements. At the same time, it was started a panel with experts on scoping. I decided to keep my focus on the first area but I would like to see the second too. During the last sessions, after coffee, I decided to do a merge and saw a presentation about clone detection and SPL and switched for the other room to participate in a good discussion about the SPL roots and its foundations in the software reuse (during the Software Productivity Consortium) area by Grady Campbell. In the end of the day, we went to a reception in a pub with music, food and few of the Irish culture.

On Wednesday, the second keynote speaker, Luc Koch from Phillips Medical System, presented their experience in Phillips Healthcare discussing the past, present and future of this effort. Next, the sessions started and I had to decide again which one to attendant. I did a good choice and DSL and Code Generation was widely discussed. In the afternoon, I participated in a working session about the possible integration between Agile and SPL. It was very good and you can see the summary here. Finally, we ended up in the conference dinner in Irish castle. It was awesome with wine, dance, music, food and more wine.

On Thursday, the conference started with an industrial panel leaded by Charlie Krueger and other companies discussing their experiences in the field. It showed different views and impressions by the companies with different levels of expertise. After the panel, the sessions started and I participated in one about Service-Oriented Product Lines. It was very good but we can see that we have too much room for research in this direction.

After that, it was time to see some tools demo and participated in the Product Line Hall of Fame conducted by David Weiss and Paul Clements. That was awesome. The ceremony is very good with perfect sound, video, lights and sure, their presentation. Everybody loved it. Two companies were nominated. The first one was conducted by Krueger.

In the last day, we have another good agenda with some tutorials, workshops and the Doctoral Symposium. I decided to participate in the last one for two reasons: the first one because I will be the Doctoral Symposium chair in the next year, and the second one, because I was interested in seeing the new research in the field and the future new researchers. The session was conducted by Klaus Schmid and had four presentations discussing since agile and SPL until testing and aspect. The good point here was to see one work from Brazil there. After that, the conference finished.

In summary, the conference was very good with people from industry and academy from different countries, with new ideas, tools and important experiences. Next year, I hope see you in San Francisco, California.

Get the call for papers here.

Tuesday, September 9, 2008

34th IEEE EUROMICRO Conference

During the last week, from September 3rd to 5th, the 34th IEEE EUROMICRO Conference on Software Engineering and Advanced Applications was held in Parma, Italy. Two papers from RiSE group have been accepted for the conference: the first is entitled “A Case Study in Software Product Lines – The Case of the Mobile Game Domain”, from Leandro Nascimento, Eduardo Almeida and Silvio Meira; the other one is entitled “InCoME: Integrated Cost Model for Product Line Engineering”, Jarley Nobrega, Eduardo Almeida and Silvio Meira. I had the pleasure to attend to the conference and present both papers.

The conference was composed of keynote speeches and special sessions including regular papers, work in progress and posters (see the program here).

The keynote speeches were held in the mornings and the special sessions in the afternoons, handling different topics and bringing great discussions among the participants. My presentation was held in the first day of the conference, September 3rd, in the Component-Based Software Engineering (CBSE) track. Two special sessions occurred in this first day: Services and Product Lines. In this last special session, I presented firstly the Jarley’s work followed by my work. During both presentations relevant questions and suggestions came up contributing significantly to the progress of both works. At the end of the day, a welcome cocktail was served in the Palazzo Sanvitale, giving the participants the opportunity to taste a typical Parmesan Cheese.

In the second day of EUROMICRO conference, I participated in two special sessions in the CBSE track: OSGi and Embedded Systems. As it was not a surprise, OSGi has got one dedicated special session as it is considered the new buzzword in academia in aspects related to Component-Based Development (CBD). As the technology is being applied in different context in practice, the three works in OSGi session presented practical solutions for real problems involving bundle updates, resource monitoring in OSGi-based components and OSGi stale references. In the sequence, the Embedded Systems session included papers describing techniques for CBD in the embedded systems context. At the end of the day, we attended to a concert by Corale Verdi, a world famous chorus specialized in opera pieces, followed by a social dinner at Cavallino Bianco.

In the last day of conference, I attended to a special session also in CBSE track named Component Models. Topics related to Model-Driven Development (MDD) and compositional CBD for embedded systems were covered in this special session.

It is very grateful to see the academia recognition of RiSE’s work in different conferences around the world as you could see in older posts in this blog. I hope to see many other posts like this written by conference attendees from RiSE group.

Friday, September 5, 2008

Computer Science and Software Engineering Ranking

Many times, I have met students and they ask me a similar question: What are the best universities and research centers in computer science and software engineering? Who are the main researchers in the software engineering area?

It is a complex question. However, some recent research addressed by important researchers can present some insights. These research were published in the main journals in the field and sure offer a good baseline.

Think in some universities, research labs, and researchers for computer science and software engineering around the world, write your opinion and check the results here [R1,R2, R3, R4]. However, it is important highlights that it is not a final and universal ranking.