Thursday, December 18, 2008

A brief dive into Variability Testing

With the growth of applications complexity, the amount of variation points and the number of possible combinations among them can be considered as a problem to be concerned with, specially surrounding the creation of test assets that handle many variations. This context depicts a tradeoff between testability and the number of variabilities a product line contains.
In this context, we have just finished a systematic review on Software Product Line Testing (SPLT) which covers, among many other issues regarding this interesting research topic, variability testing concerns.

It is worthwhile to mention this aspect has been gained special attention among the SPLT researchers since this is not a very mature topic with many "open questions" to be addressed.
Following we illustrate the summary of important studies we have collected on this topic, presenting the effort devoted to solve this problem.

One proposes a solution, the cumulative variability coverage which accumulates coverage information across a series of product line instance development activities, to be further exploited in a target testing activities for product line instances. In another solution, constraints are placed into the product line architecture. Instead of having components with large amount of variability, for testability improvement commonalities and variabilities must be separated and the variabilities must be encapsulated into subcomponents. The objective is to reduce the retest of components and products when modifications are made so that independence of feature and components as well as the reduction of side effects are important. Other proposes to establish a coherent traceability from requirements to implementation and test assets. There are some ways to achieve this traceability between test assets and implementation, where the mechanism used in the product to implement the variation can be appropriate for implementing the test software for that portion of the software.

Furthermore, our intention regards to figure out how the SPLT approaches tackle variability along the software lifecycle, even though we have not gained answer to this question yet by reading and analyzing these and other studies. This can indeed be an extra research question to be addressed in future work!

Wednesday, December 17, 2008

A case study on technologies to implement variability in service-oriented product lines


In the course I.N.1.1.7.4 - Advanced Seminars in Software Reuse at CIN/UFPE was presented a case study definition on technologies to implement variability in service-oriented technologies. This post briefly describes the case study definition and some issues founded during the study.



Software Product Line (SPL) and Service-Oriented Architecture(SOA) emerge as two powerful concepts and their combination is a new research area. The combination of these two concepts is expected to become a new development paradigm maximizing reuse and business integration. In order to include services in a product line, developers could include variation points in the architecture implemented as a component or as a service as mentioned in the SOAPL 2007.


Thus, the goal of this case study is to identify the most suitable technology to implement variability in the context of service-oriented product lines. From this perspective, this case study will evaluate service-oriented technologies (OSGi and Web Services) and non-service-oriented technologies (XVCL) through a comparison between the technologies. In conjunction with the technologies, some variability mechanisms are applied to handle the variations in the source code.


Our contribution is that with this evaluation, we can select a technology that will help software engineers or researchers to integrate the technology with guidelines and criteria support in their organization or academic research.


However, some issues remain interesting for discussion:


1. OSGi can be considered as a service-oriented technology?

- The current release of OSGI stated that this technology incorporate interoperability of applications and services based on its component integration platform. However, this the concept of interoperability is not clear, because the OSGi is specific to Java.


2. It is possible combine OSGi and Web Services to solve the first issue?


3. Is it interesting to analyze these two technologies separately or the combination between them?

Tuesday, December 16, 2008

Feature Interaction in Software Product Lines


Software product lines (SPL) is considered a key approach for companies interested in improving software development increasing their productivity, quality and reducing costs. In SPL, features define commonalities and variabilities of the products, but they are not independent from each other, since there are interactions among them. These interactions among features can occur in unexpected ways causing impact in a SPL, affecting, for example, the reusable assets.

In this way, conflicts in most of the cases can be dealed during domain analysis phase through a management of feature dependencies. A feature dependency model represents not only static dependencies, but it also represents dynamic relationships and behavior characteristics among features. Additionally, it helps to trace the dependencies and how to configure the products member in a SPL.

Thus, due to the importance to solve this problem in a SPL environment, a systematic review was made to investigate approaches that proposed a solution for this. The main goal of the review was to identify how to classify and represent these dependencies and the guidelines used to identify the interactions to better understand a solution to avoid this problem.

However, some questions remain interesting for discursion: How identify feature interaction in a domain analysis? What activities are necessary? Is it interesting to have standardization on classification of feature interaction to support the dependencies identification among features?

Saturday, December 13, 2008

Service-Oriented Product Line

This post describes important issues related to service-oriented analysis and design that were identified with a systematic review on the area and also present our future work related to combining service-oriented architecture and software product line. This research is being performed at Cin/UFPE.



The aim of the systematic review was to analyze the existing service-oriented analysis and design approaches with the objective of understand and summarize evidences about analysis and design discipline, identify activities, key points, drawbacks and gaps.

After analyze the existing approaches, we could identify some gaps such as a lack of architecture documentation and concerns with reusability and other quality attributes. We also detected common activities such as service identification from business process and legacy applications, create a service inventory blueprint, service and components specification and realization strategy selection such as wrapper or develop a new service from scratch.

With the systematic review on service-oriented analysis and design approaches concluded and the problems identified on the existing service-oriented approach, together with a systematic review on domain design approaches, a software product line design process, David Parnas’ ideas and based on Attribute Driven Development, our mission is to develop an approach for service-oriented product line.

Service-oriented architecture and software product line share a common goal, both concepts focus on reusability which brings productivity gains, decreased development costs, reduce time to market, higher reliability, and competitive advantage [Soa and Spl conference].

SOA and SPL also need a well defined process to be adopted and reduce its risks as stated by Thomas Erl and Klaus Pohl. This is the main motivation for our research that intends to develop a unified process for service-oriented architecture and software product line.

However, some questions remain interesting for discursion: How to combine service-oriented architecture and software product line? How can components be substituted by services in software product line context? How to consider different organizations with its own business processes to develop a service-oriented architecture as a product regarding variability?

Friday, December 12, 2008

Scoping on Software Product Lines

In the course I.N.1.1.7.4 - Advanced Seminars in Software Reuse at CIN was achieved a research about current status on Software Product Lines (SPL) Scope, phase of SPL planning, related with the identification of the costs and viability of the product line. For one that is not familiar with the theme this text can be interesting.

The research consisted of a systematic review whose objective was to review the software product lines approaches to identify, compare and summarize evidence about the Scope Definition Techniques. The research questions investigated in this review were related with the identification of the activities, scope types, stakeholders, strengths, drawbacks, and the use of metrics for scoping definition.

With the analysis we identify that metrics definition is the problematic aspect of the approaches, where only the papers of Klaus Schmid, Isabel Jhon and Shin Young Park cite metrics for scoping in its studies. Schmid utilize techniques of business objectives operationalization based in GQM, Jhon define characterization metrics and Park uses metrics of cost to analyze economical value for the core assets.

After of the analysis a idea was questioned, what the viability of relate scope techniques for SPL with agiles development methodologies? and what scope techniques are most appropriate with agiles methodologies?

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.

Wednesday, August 27, 2008

Patent Development - China going Deep

In a previous post, I commented the possible Computer Scientists Crisis, especially, involving Americans. This situation can be showing some the future consequences that the country will have to deal.

According to China's State Intellectual Property Office, in the last year, China received more patent applications that any country (694.000). The U.S had the second most applications (484.955), followed by Japan (443,150). [see the note in Communications of the ACM]

Still according to the note, if China's number of patent applications continues at its current rate, it will lead the world in invention patent application by 2012.

About it, some Americans are wondering about this situation in the short future. Yesterday, I had a dinner with David Weiss, director from Avaya Labs, in New Jersey, and we were discussing about politics, previous presidents, their legacy and consequences. David highlighted exactly this issue: The lost of investments for research and education, the interest for students in the area, the fact that nowadays most graduates are not Americans and they are returning for their country. Maybe, we have to wait for the next years and analyze this point which could have a great impact in science and technology around the world.

Thursday, August 14, 2008

CACM - Donald Knuth Interview

Communications of the ACM (CACM) in July and August's editions published a very good interview with Donald Knuth. The two papers The 'Art' of Being Donald Knuth and Donald Knuth: A Life's Work Interrupted are very interesting.

Don Knuth is an Emeritus Professor at Stanford University and won several awards such as Turing Award (1974) and John von Neumann Medal (1995). He is most known by being the creator of the TeX and author of the seminal The Art of Programming book series.

In his interview, Don comments curious moment in his life such as his path from physics, mathematics until arrive in computer science; his first program in 1950s and its lessons; his disappointment as a teacher; his mentor; his first text written in a motel; and his Ph.D. thesis research taken in one hour ("I felt a little guilty that I had solved my Ph.D. problem in one hour, so I dressed it up with a few other chapters of stuff").

Another good point is when he said: "if you ask me what makes me most happy, number on would be somebody saying: I learned something from you. Number two would be somebody saying: I used your software".