Changes to a software system are the result of changing requirements or defects
during the development. Each change consumes resources for the analysis,
decision making, implementation, and verification. Hence, having control over
changes is crucial for software development projects to meet schedules, keep
quality standards and budgets. Reuse of functionality helps to create new
products based on already existing building blocks. Integrating mature
components enables to create reliable systems. Software product lines provide
means to develop several similar systems based on reuse. Often new products
also need to be released frequently to fulfil the customer needs. Shortened
lead time for the development then strengthens the importance of reuse. At the
same time, limited budgets and competition on the market requires projects to
utilize resources efficiently. Developing several releases in parallel enables
an even distribution of tasks among different roles in a development
organization. Both developing software based on a product line approach and
parallel releases put requirements on how changes need to be controlled.
In this thesis, software engineering literature is reviewed regarding the
knowledge areas of software release management, software product lines and
software configuration management. Beyond the most considerable research
results also related case studies are presented to show how industry practices
counter existing problems. The major part of the thesis is a case study
conducted at Sony Ericsson Mobile Communications AB.
The outcome of the thesis is an identification of challenges of controlling
changes regarding parallel development and using software product lines based
on available research results and industry case studies. It further provides a
c...