Thursday, November 26, 2009

Visualization in Software Product Lines

Software product lines (SPL) have become a reality in software development. Tools are appearing to deal with the different activities in SPL. One fundamental problem in software product line engineering is related to the fact that a product line of industrial size can easily incorporate thousands of variation points, and therefore, imposing a limitation of the amount of information that users are able to manage at the same time.

Visualization has proven useful to deal with large data sets and amplify cognition in many ways, for example, by increasing the “memory” and “amount of processing” available to users, by supporting the search for information, and by encoding information in a manipulable medium [1]. Then, in 2007, Nestor et al. [2] proposes some visualization techniques to improve some common tasks in SPL engineering.

Since, several works have been developed using visualization techniques, in different tasks of software product line engineering, for example: feature modeling, variability management, product derivation, design and implementation. How variability management and product derivation are essentials in SPL, the effort spent on these activities has been greater.

So, some questions remain interesting for discussion:
  • Which others tasks could be benefited by visualization techniques?
Other tasks should be investigated in order to find advantages in using visualization
  • Would be interesting create (implement) a visual framework to support all tasks of SPL projects?
To get more benefits and to avoid inconsistencies between the artifacts, tools should be integrated


[1] S. K. Card, J. D. Mackinlay, and B. Shneiderman, Readings in Information Visualization: Using Vision to Think. Morgan Kaufmann Publishers, 1999.
[2] Daren Nestor, Luke O'Malley, Aaron J. Quigley, Ernst Sikora, Steffen Thiel: Visualisation of Variability in Software Product Line Engineering. First International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS 2007)

Wednesday, September 2, 2009

13th International Software Product Line Conference (SPLC)

Now in its 13th year, the International Software Product Line Conference (SPLC) 2009 was held August 24 – 28 in San Francisco, California. In this edition, the presence of industrial and academy people was remarkable, resulting in more than 150 attendees. Practitioners and researchers from different countries had the opportunity to discuss hot topics regarding to Software Product Lines area.


During the first two days, current SPL topics were discussed through different workshops and tutorials. Some workshops were realized at the first time, which indicates the emergence of new hot topics, indicating the need of investigation and study. For example, 1st workshop on consolidating community consensus in product line practice, which counter with the presence of different companies (SEI, BigLever, Yahoo, IBM), and 1st international workshop on Model-Driven Approaches in Software Product Line Engineering. Although the workshop on Dynamic Software Product Lines (DSPL) is in the third edition, this edition was marked by the research and practitioners discussion that did not achieved a consensus regarding to the concept of dynamic SPL, which highlights the lack of maturity in this field. They were discussing the difference between Dynamic SPLs and Single systems, since to dynamically change the code the software needs to be completely developed and integrated. The workshop Scalable Modeling Techniques for Software Product Lines (SCALE 2009 ), have Tomoki Kishi and Kyo Kang, and they start showing the problems when modeling scalable systems, for example, size, complexity, distributed environment, long life cycle and multiple stakeholders. In SPL context the main problems are variability management, configuration management, model based development and complicated development style. Later, the Service-Oriented Architectures and Software Product Lines (SOAPL) which was marked with the presence of the RiSE group represented by Flavio Medeiros, presenting the paper entitled "Towards an Approach for Service-Oriented Product Line Architectures".

On Wednesday, the first keynote speaker, Richard Gabriel from IBM discuss the about "Science is Not Enough: On Creation of Software", which presented a different perspective in the field. His talk was a mix between a talk and lecture including the strong relationship with arts. During this day, papers regarding to configuration, scoping and variability were presented and discussed.

On Thursday, the second keynote speaker, Jacob G. Refstrup - lead architect for the Owen software product line architecture from HP - which is used across multiple inkjet product families. He talked about "Adapting to Change: Architecture, Processes and Tools: a closer look at HP's Experience in Evolving the Owen Software Product Line".

On Friday, the last keynote speaker, Kyo Chul Kang presents the "FODA: Twenty Years ofk for feature analysis and simple but comprehensive way to modeling commonalities and variabilities. He also report the remaining problems of it, for example, addressing other parts of the life cycle (especially application engineering), clear the mapping between Perspective on Feature Models". Kyo shows that FODA has approximately 1300 citations, highlighting the importance of it. He presents as main contributions of FODA: systematic domain analysis, lying the groundworfeatures and software artifacts, standardization of feature model extensions, trade-offs between expressiveness and simplicity, scalability of feature model, managing complexity in view of many inter-dependent features, feature model evaluation and integration with UML model.

During this day the Goldfish Panel "How to Maximize Business Return of Software Product Line Development", had the presence of the most renowned researchers in the area as John D. McGregor, Dirk Murthig, David M. Weiss, Klaus Smith, Jan Bosch, Charles Krueger and Eduardo Almeida, which put in discussion the Brazilians company reality, reporting that they have not a specific domain and asking how is the best way to introduce the SPL approach in these companies. Others issues to think about were discussed as: Is it worthwhile at all?, What are the three top-most value-generating activities?, How to recognize where to focus efforts? (subsystem, functionality,..) and What was your worst ever product line experience?

Finally, the waiting hall of fame was presented by David Weiss showing the results of the evaluation from 2008 and presented the candidates for 2009. Two new companies were trying to have her names in the hall of fame, the TomTom company presents a GPS software product line and Lockeed Martin . In the end, the TomTom was nominated and will be evaluated during this year. The results will be available in the next SPLC 2010 held in Korea.

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.

Wednesday, July 15, 2009

RiSE’s Interviews: Episode 6 – Software Reuse with Dr. John D. McGregor

After the 4th Workshop to Introduce Reuse in Enterprises (WIRE), in Recife. An interview was performed with John D. McGregor an associate professor of computer science at Clemson University, a founding partner of Luminary Software, and a Visiting Scientist at Software Engineering Institute (SEI).

This interview is available here.

I would like to thank McGregor for accepted the podcast invitation, and inform that was a very nice experience and a pleasure, interview a person with this importance for the research community.

1) Talk a little bit about your career, how do you initiated, your graduation and their relationship with industry. I would like to know about your experiences and the work at the university and industry, your challenges as a reuse practitioner and after in the industry and how as the road to be there because it is a incredible career.

2) You worked a lot with software architecture and software product lines. For you, what is the importance of the industry in the field?

3) In the software product line area, we can see the community increasing. In the last year, during SPLC, we had more than 200 participants and too many from the industry. In your opinion what are the ingredients for this success in this conference?

4) For you, is there difference between domain engineering and software product lines?

5) You had/have many projects with the industry. What are the main problems to introduce software product lines in companies? What are the risks and how to avoid them? Finally, how to define a road to start it in companies?

6) Some companies believe that software product lines can be a good approach to obtain benefits related to time-to-market cost reduction, etc. However, we do not have many specific models to show the risks, the benefits, economic models etc. So, how to show for companies that a software product lines approach can be good?

7) You had many industrial projects in the software product lines area. For you, what were the strong, weak points and main lessons learned?

8) How to introduce software product lines in a software factory working with different domains?

9) We can see in the reuse field, ideas like: modules, objects, components, software product lines, and others ones such as models, services, DSLs. For you what can be the next one?

10) For you what is the state of the practice in the area and the directions for future research?

* This interview was performed by Paulo Anselmo from RiSE Labs.

Saturday, July 4, 2009

IV Workshop to Introduce Reuse in Enterprises (WIRE) - Workshop Report


4th WIRE, the Workshop to Introduce Reuse in Enterprises, the right place to discuss the state of the practice and exchange experiences with the most important reuse experts from Brazil and the world as well, was held at the Hotel Atlante Plaza in Recife, Brazil, in the last June 29 and 30.


The workshop attendance joined reuse practitioners from industry and academy. This year, people from 10 states in Brazil, and from European countries (Portugal, The Netherlands and Ireland) as well, comprising a set of 17 companies and 5 universities, came to the event.


Great discussions on reuse topic were performed, in which practitioners conducted a very interesting environment to discuss such a topic. This edition, WIRE were mainly concerned about the strategic reuse adoption based on Software Product Line (SPL) aspects, with the presence of important experts in this area, John D. McGregor, from Clemson University (US), presenting the tutorial Building Reusable Testing Assets for a Software Product Line and the keynote entitled Goal-driven Product Derivation; Frank van der Linden, from Philips Research (The Netherlands), with the tutorial Software Product Line engineering, the practical aspects, and a speech on Applying open source development in product line engineering; and Eduardo Almeida, from C.E.S.A.R (Brazil), presenting the topic Software Reuse Measurement: What the Experts Think about It.


Moreover, work-in-group sessions (see a picture of this activity in the left) were performed that enabled the attendance to discuss the following questions: 1) What are the main pitfalls and challenges to the SPL adoption in your company and how they can be handled? and 2) Which changes must be implemented in the organization in order to address such issues? This effort made possible to attendance to exchange experience and ideas to be applied in order to solve still opened questions regarding SPL adoption in companies.


At the end of the event it was announced that next WIRE, the 5th edition, will be held in São Paulo - Brazil. We will be pleased to receive you in a next turn in order to make our discussion even better!

In name of the organization, I would like to say thank you for the participants, lecturers, and sponsors. See you next year at WIRE!

Friday, June 26, 2009

9th RiSE Day


Next wednesday, on July 1st, right after IV WIRE(*), RiSE will promote its 9th internal workshop, the RiSE Day, an environment in which RiSE Members present their master and doctoral works, some concluded and some 'working in progress', in order to discuss and have feedback on the issues they have been devoted effort.

The 9th RiSE Day will be held at C.E.S.A.R, in Recife-PE, Brazil, at 10:00 a.m. Software reuse practitioners are welcome to make discussions more interesting!

(*) IV WIRE - Workshop to Introduce Reuse in Enterprises - is promoted by RiSE in conjunction with C.E.S.A.R and CIn, and it will be held in next June 29 and 30, 2009.



*UPDATE - Jul 1st, 2009*



This edition included the following presentations:
  • Towards an Approach for Service-Oriented Product Line Architectures - Lecturer: Flavio Medeiros
  • RiPLE-DE - The RiSE Process for Product Line Engineering Design - Lecturer: Ednaldo Dilorenzo
  • RiSE Adoption Process Framework for Software Reuse Adoption in Brazilian Companies - Lecturer: Vinicius Garcia
  • Towards an approach to deal with feature interaction in software product lines - Lecturer: Hernan Muñoz
  • SPL Architectures - Variability in Quality Attributes - Lecturer: Ricardo Cavalcanti
  • Towards an effective Software Product Line Testing Approach - Lecturers: Paulo Anselmo and Ivan Machado

The Ph.D. student Pàdraig O'Leary, from Lero, The Irish Software Engineering Research Centre, came to this workshop to experience the research the RiSE group has been conducted and exchange ideas with RiSE members as well. He presented the research he's been worked on, entitled A Process Framework for Product Derivation.

We are glad for the comments and contributions from John D. McGregor and Frank van der Linden, who also joined this international RiSE Day.

Best Dissertation Award


In the last Brazilian Symposium on Software Quality, Fernando Raposo, member from the RiSE Labs was awarded with the best M.Sc. dissertation in the software quality area.

In his work, Fernando defined an approach for component testing and a CASE tool to automate it. Moreover, he defined an experimental study evaluating the approach and tool defined.

Congratulations, Fernando!!

Thursday, May 28, 2009

31st International Conference on Software Engineering (ICSE) - Conference Report

Last week, I had the chance to participate in the 31st International Conference on Software Engineering (ICSE), in Vancouver, Canada. The conference had a great program composed of research papers, demonstrations, a track related to software engineering in practice (SEIP), a track also about new ideas and emerging results (NIER) and several parallel events such as the 6th International Working Conference on Mining Software Repositories (MSR), the 17th IEEE International Conference on Program Comprehension (ICPC), and the International Conference on Software Process (ICSP).

In these co-located events it is very good to see the growing of the MSR, it is incredible how it is getting attention from the community. On Monday, I spent the day hanging out the area in the morning and having some discussions with others participants. On Tuesday, it was performed the Software Requirements and Design: A Tribute to Michael Jackson, a full day workshop about his contributions in the field. The workshop was very well conducted by Pamela Zave and Bashar Nuseibeh. I believe that this kind of event it is very important to celebrate outstanding researchers working with software engineering. I had the chance to participate in previous ICSEs including the tribute to Barry Boehm. A book with his work similar to Barry Boehm, David Parnas and Vic Basili will be released soon.

On Wednesday, the conference started. The first keynote was Steve McConnell and his talk about: “10 Most Powerful Ideas in Software Engineering”. His presentation was interesting, especially, when he pointed out some ideas with a gauge showing the silly state of each one. His final list was:

1. Software Development Work is Performed by Human Beings.
2. Incrementalism.
3. Iteration.
4. Cost to Fix A Defect Increases Over Time.
5. Important Kernel of Truth in the Waterfall Model.
6. Software Estimation Can be Improved Over Time.
7. The Most Powerful Form of Reuse is Full Reuse.
8. Risk Management Provides Critical Insights into Many Core Software Development Issues. 9. Different Kinds of Software Call for Different Kinds of Software Development.
10. SWEBOK.


After Steve’s talk started the research papers and I had to run and switch among different rooms and sessions. In this day, I decided to see the following papers:
  • Tesseract: Interactive Visual Exploration of Socio-Technical Relationships in Software Development; and
  • Succession: Measuring Transfer of Code and Developer Productivity.

Next, I participated in NIER session with interesting new ideas and the SCORE competition by student teams. In this competition, Brazil was there with a team from UFPE, congrats, guys and Prof. Jaelson Castro their coach! In the end of the day, we had a small dinner with the conference members. It was good to talk a little bit more and meet others students and professors from Brazilian universities.

On Thursday, Carlo Ghezzi was the second keynote speaker with the theme: “Reflections on Forty-Plus Years of Software Engineering Researched Observed Through ICSE: An Insider’s View”. His presentation was very good with several data, charts, discussing what we produced, how to measure it, lessons learned and how to improve our current scenario. It was awesome!!

After that, I started to switch again among several presentations and I ended up with the following list:
  • Reasoning About Edits to Feature Models
  • How We Refactor, and How We Know It (Winner of ACM SIGSOFT Distinguished Papers Award)
  • The Secret Life of Bugs: Going Past the Errors and Omissions in Software Repositories
  • Discovering and Representing Systematic Code Changes.
Still in this day, we had discussion about Software Engineering for the Planet and Reflecting on Development Processes in the Video Game Industry. Finally, the paper N Degrees of Separation: Multi-Dimensional Separation of Concerns was presented and won the the most influential paper award.

On Friday, Pamela Zave was the last keynote and presented Software Engineering for the Next Internet. After Pamela’s talk, I participated in a session on Multicore Software Engineering and saw some challenges in the area and other papers such as:

  • Does Distributed Development Affect Software Quality? An Empirical Case Study of Windows Vista (Winner of ACM SIGSOFT Distinguished Papers Award); and
  • How to Avoid Drastic Software Process Change (using Stochastic Stability), and
  • Do Code Clones Matter?.

It was the report about this ICSE.

Next year, see you in South Africa.

P.S: I did not see the keynote presentations on the website. However, all the keynotes sent me it after my request. So, try it too.

Thursday, May 7, 2009

World of Reuse is open for Software Reuse experts


After several discussions with RiSE members, we decided to open the World of Reuse blog for the reuse community. As its name, this blog will be the world of reuse as a free place for any software reuse expert presents its ideas, experiences, and insigiths about it.

Thus, join us, request your login and let's build a strong forum for the reuse community.

Monday, March 23, 2009

Scoping in Agile Software Product Lines



Agiles methods and Software Product Lines (SPL) present similar benefits, both proven increasing customer satisfaction and productivity and decreasing time to market. Comparing the two process we can identify values and principles of agile methods which can be supported by SPL.

In context of SPL scoping the majority difficulty to join SPL and agile methods is related at the agile value “working software over comprehensive documentation”, because in SPL the planning is model-driven and vast documentation is required. However, in general, the other agile values can be used in the SPL scoping phase. The agile value ‘‘individuals and interactions over processes and tools” require experience and knowledge of the technical and business stakeholders and efetive communication between them, according to [Carbon et. al., 2006] this activa communication can bring the following benefits: I. The reuse rate can be increased. FE gets information on newly requested features early in an AE project and can evolve the product line assets proactively. Thus, in upcoming iterations AE can build upon the “right” reusable assets; and II. Redundant implementations of product specifics in several AE projects can be reduced. FE developers participate in planning games of all AE projects and thus can coordinate the work done in parallel in the AE projects. The value “customer collaboration over contract negotiation” is interessant to SPL because can help in the customers needs real identification. The value “responding to change over following a plan” can be achieved by adoption of a planning process with flexible execution.

Beyond of the values, agile methods have some principles which can be integrated at SPL in the phase of scoping. With relation at the principle “welcome changes”, the SPL scope can be opened the changes, in [Muhammad et. al., 2008] SPL planning and core asset development can, and in fact often are, conducted in an iterative manner. The principle “communication face to face” can be achieved with workshops or brainstorms, this meeting can help in the features identification in beginning of the scope definition. The principle ‘‘build project around motivated individuals” is related with the choice of representatives stakeholders to the scoping process with roles well-defined.

However, is difficult to combine SPL practices with agile methods and the researches in the area are recent. Therefore, will be possible define a agile scoping approach well-defined and of the relevancy to the industrial scenario?