Ph.D. Student Seminar Ph.D. Status Report

November 19, 2003

Software Engineering group, IDI, NTNU

Ph.D. Status Report

Name Surname

Magne Syrstad

Supervisors

Reidar Conradi, Letizia Jaccheri, Tore Dybå

Year of Ph.D.

First year

Title of Ph.D.

‘Software Product Families: Issues on Architecture and Integration’

Description of Ph.D. work

Motivation/background

I have been working with software design/architecture and software product families at Sintef since leaving university in 2001. During this time, I have become more and more interested in these areas.

I have worked in the DAIM project (2000-2002, myself from 2001), a research project run by ICT-Norway with Sintef and 6 companies. The DAIM project focused on software architecture for distributed internet applications, focusing on things like hand-held devices and the challenges unstable internet connections puts on applications. Typical questions was thick vs. thin clients, running the same components, possibly at slightly different configurations on hand-held devices and normal desk top PCs.

From 2003, the DAIM project was continued as the Familier project, with pretty much the same participants. This time the project is a part of the international Families project, run by some of the major electronics companies in Europe (Nokia, Siemens, Philips, etc). My PhD-work is for the major part funded by the Familier project (2.5 out of 3 years). In this project, I am connected to the work package focusing on issues on product family integration. The project focuses on more large scale integration, where product families are merged, or seen as different families in a more diverse product population. My PhD-work, however, is not limited by the project activities, but the project gives access to companies that can be used in case studies or other activities. More on the companies later.

Software Product families came into focus during the late 1990s. The first European workshop was held in 1996, being internal to the Ares project, while the first American (and public) workshop was in 1997. The first conference was held in 2000.

In Europe, the main drive in product families engineering have been through the following series of projects:

·  Esaps (1999-2001)

·  Café (2001-2003)

·  Families (2003-2005)

As can be seen by this, Product Family Engineering has been around for less than 10 years. So far there has been little in the way of empirical work based around this. The European companies behind the Families project has the ambition to be the prime actor for product families in the world. Their main competitor is the Software Engineering Institute at Carnegie Mellon who has produced the first books on the area.

In a product family, the product family architecture (as in software architecture) is widely regarded as the most important asset. It defines the variability points available for each single product, as well as the rules when it comes to how they are to be built. In this respect, the product family architecture is the natural asset to focus studies around, as it defines, or relies on the definition of which products are to be created, and how they are to be connected to the shared components.

Research theme/focus

As stated above, I will focus on software product families with a special edge towards the product family architecture. Interesting points of study will be:

The initiation of product families: How do the companies approach this? The literature describes processes based on pro-active building of the shared components, as well as more reactive approaches, where the first version of the shared components are created together with the first product, fulfilling its needs, and then further expanded as needed when more products are expanded. Also, there is the option of reengineering the existing assets into the reusable components for a product line.

Another interesting view is the product family architecture. How are different companies organizing their product lines? How do they obtain the variability needed for their platform to allow different products and configurations to run? Are there patterns and mechanisms that are common between the companies, or are they completely different?

Measuring the effects of architectural decisions, this could be done through studying a product family over time as new products are made and new demands are put on the architecture. Another option is to view statistics on time spent on maintenance before or after a change of architecture. Problems with measuring will of course be that lots of other things changes as the architecture changes (like major parts of the code), and the fact that there usually is a reason for changing the architecture, which would make it very reasonable to assume there to be an improvement in the interesting quality attributes.

Also, it would be interesting to view the benefit of creating a product family, and of moving a product into an existing product family. The case at DNV mentioned below could be a part of this.

Research design

By nature, reuse based on components, which included product families is large scale approach to reuse. This makes it difficult to make meaningful experiments with students, due to the limited scope available in that context. For the software architecture course during spring, I would like to observe the student’s abilities to do something along the lines of observing their ability to create an architecture well suited for the problem. This can be observed by watching the initially designed architecture, and observing how it has to be revised as the system is finally implemented.

When it comes to working with companies, everything is still very much in the open, but I will here give a brief overview of the ideas I currently have:

I have at this point in time discussed opportunities for empirical work with two different companies. These are AKVAsmart and DNV Software who are both involved in the Familier project.

AKVAsmart is located in downtown Trondheim, and thus easily available. It is a company targeting the fish farming business area. The software development part is currently rather small, 5-6 people. Currently, they are working on initiating a product line that will replace their old application which dates form the early 1990s. The first application of the new product line is expected to launch in March/April next year, after which they will start implementing the product that is the major part of their old product. This is expected to finish sometime during 2005. From the latter parts of 2005 and during 2006 it should be possible to get maintenance data from this application, which can be compared to data that has been collected for the old application. AKVAsmart have previously done project around estimation, and have through this collected data on time estimated, and time spent on modifications and extensions. The quality of this data is unknown to me at the moment, but it is claimed to be at least somewhat useful.

In addition to this, there will be an opportunity to watch their application grow, and as a part of the Familier project, there will be activities to which I can connect. This is likely to be a study of their framework and the mechanisms used. They would be a natural company to use in any comparison between the architectures and different integration approaches of companies.

DNV Software is a much larger organization, and is the internal software house of “Det Norske Veritas” which is a company working with ship classification, risk management and related activities. The group that participates in the Familier project is the one responsible for making the BriX framework for the Nauticus product line which supports ship classification. This is a product line that was put into production around 1998, and is currently making a move from a DCom platform to .Net.

One major activity here, is moving application from the Risk Management Systems area to the BriX platform. There has previously been little reuse among the RMS applications. I believe there will be an option to study applications that are reengineered in order to fit in the product line. As this is a continuous process, there will be an opportunity to study applications that are yet to be included, that are currently being included, and others that have previously been included. This study could take several approaches, ranging from studies of technology and architectural methods, from interview with experiences with the move made by the people responsible for the different products. One complicating factor here is distance. The Nauticus team as well as the BriX team is located at the main Veritas office at Høvik outside Oslo, while the Risk Management System people are located in England.

Like AKVAsmart, DNV Software is also a member of the Familier project. In addition to these two, there are 4 other companies where among of which at least Visma is creating a product family. There are more possibilities through the Familier project than the two mentioned above, but I do not intend to follow these up in the near future.

Preliminary results

The results so far, except for the possible case studies, are an initial version of the state of the art section of my thesis. This one is however, far from complete.

Preliminary conclusion

Not yet.

Open issues

As can be seen from the research design section, everything is still very much in the open. The details of the studies are not decided, and it may be possible to use other companies as well.

Also, the focus of the studies are at the moment somewhat dictated by what the companies can offer, as long as it is within my field of interest.

Status

Papers matrix

What? / Where? / When
Experiences with the ATAM method / ECOOP 2004 –architecture workshop / Summer 2004

Credit plan

Course title / Term
DIF8901 Object Oriented Systems / Spring 2003
Empirical Software Engineering / Spring 2003
IT-Emner / 2003/2004
DIS1056 Business Research Methods – Case Studies / Spring 2005
TDT4240 Software Architecture / Spring 2004
IT3604 Systemutvikling, organisasjon og arbeidsliv / Fall 2004
Presentations

Credit status

Object Oriented Systems and Empirical Software engineering have been completed. I am currently taking the IT-Emner course, and will take DIS1056 in the Spring of 2005. I have participated in lectures in IT3604, but I hope to have it removed from the plan together with the software architecture course and the presentations.

Activity last 6 months

·  Reading state of the art, and starting on writing my own version of it.

·  Classes (DIF8901 and Empirical Software Engineering)

·  Initial work towards companies actual for case studies.

·  Participated in the Families project kick-off in Grassau

Activity next 6 months

·  The main challenge would be to get started at DNV Software. I am not convinced that this would be

·  I would have to follow up the initial contact with AKVAsmart, and get an overview of what previous maintenance data actually exists. I will also continue to follow the Sintef activity toward AKVAsmart in the Familier project.

·  Present my work at the meeting of the Norwegian Familier project at the start of December.

·  Write the paper on experiences with the ATAM method together with former Sintef colleagues.

·  Further participate in the meetings of the international Families project (unless they appear to be outside my interest, by for instance being focused too much on project coordination).

·  Make an attempt at a simple experiment in the architecture course. This should create little extra work for the students.

·  There should be further progress on reading and documenting state of the art.

·  I intend going through the book for DIS1056, as it would be useful before starting working with the companies. The course itself is not until the spring of 2006, however.

1