Impacts of Software Reuse and Incremental Development on the Quality of Large Systems
MetadataShow full item record
Incremental development, software reuse, product families and component-based development seem to be the potent technologies to achieve benefits in productivity, quality and maintainability, and to reduce the risks of changes. These approaches have multiple and crosscutting impacts on development practices and quality attributes. Empirical studies in industry answer questions about why and when certain approaches are chosen, how these are applied with impact on single instances and how to generalize over classes or systems. Large, long-lived systems place more demands on software engineering approaches. Complexity is increased, systems should have the correct subset of functionality and be maintainable for several years to return the investment. The research in this thesis is based on several empirical studies performed at Ericsson in Grimstad, Norway and in the context of the Norwegian INCO project (INcremental and COmponent-Based Software Development). A product family with two large-scale products that have been developed incrementally is described. The work aimed to assess the impact of development approaches on quality and improve the practice in some aspects. The research has been a mixed-method design and the studies use qualitative data collected from sources such as web pages, text documents and own studies, as well as quantitative data from company’s data repositories for several releases of one product. The thesis contains five main novel contributions: C1. Empirical verification of reuse benefits. Quantitative analyses of defect reports, change requests and component size showed reuse benefits in terms of lower defect-density, higher stability between releases, and no significant difference in change-proneness between reused and non-reused components. C2. Increased understanding of the origin and type of changes in requirements in each release and changes of software between releases. A quantitative analysis of change requests showed that most changes are initiated by the organization. Perfective changes to functionality and quality attributes are most common. Functionality is enhanced and improved in each release, while quality attributes are mostly improved and have fewer changes in form of new requirements. C3. Developing an effort estimation method using use case specifications and the distribution of effort in different phases of incremental software development. The estimation method is tailored for complex use case specifications, incremental changes in these and reuse of software from previous releases. Historical data on effort spent in two releases are used to calibrate and validate the method. C4. Identifying metrics for a combination of reuse of software components and incremental development. Results of quantitative and qualitative studies are used to relate quality attributes to development practices and approaches, and to identify metrics for a combination of software reuse and incremental development. C5. Developing a data mining method for exploring industrial data repositories based on experience from the quantitative studies. This thesis also proposes how to improve the software processes for incremental development of product families. These are considered minor contributions: C6a. Adaptation of the Rational Unified Process for reuse to improve consistency between practice and the software process model. C6b. Improving techniques for incremental inspection of UML models to improve the quality of components. A controlled industrial experiment is performed.
Has partsMohagheghi, Parastoo; Conradi, Reidar. Experiences with Certification of Reusable Components in the GSN Project in Ericsson, Norway. Proc. 4th ICSE Workshop on Component-Based Software Engineering - Component Certification and System Prediction (ICSE'2001): 27-31, 2001.
Mohagheghi, Parastoo; Conradi, Reidar; Naalsund, Erlend; Walseth, Ole Anders. Reuse in Theory and Practice: A Survey of Developer Attitudes at Ericsson. .
Mohagheghi, Parastoo; Nytun, Jan Pettersen; Selo; Najib, Warsun. MDA and Integration of Legacy Systems: An Industrial Case Study. Proc. of the Workshop on Model Driven Architecture - Foundation and Application: 85-90, 2003.
Conradi, Reidar; Mohagheghi, Parastoo; Arif, Tayyaba; Hegde, Lars Christian; Bunde, Geir Arne; Pedersen, Anders. Object-Oriented Reading Techniques for Inspection of UML Models – An Industrial Experiment. Proc. European Conference on Object-Oriented Programming (ECOOP'03): 483-501, 2003.
Mohagheghi, Parastoo; Conradi, Reidar. Using Empirical Studies to Assess Software Development Approaches and Measurement Programs. Proc. of the ESEIW 2003 Workshop on Empirical Software Engineering (WSESE'03) - The Future of Empirical Studies in Software Engineering: 65-76, 2003.
Mohagheghi, Parastoo; Conradi, Reidar. Different Aspects of Product Family Adoption. Lecture Notes iN Computer Science. 3014: 429-434, 2004.
Mohagheghi, Parastoo; Conradi, Reidar. An Industrial Case Study of Product Family Development Using a Component Framework. Proc. the Sixteenth International Conference on Software & Systems Engineering and their Applications (ISCSSEA'2003) - Volume 2, 2003.
Mohagheghi, Parastoo; Conradi, Reidar; Killi, Ole M; Schwarz, Henrik. An Empirical Study of Software Reuse vs. Defect-Density and Stability. 26th International Conference onSoftware Engineering, 2004. ICSE 2004. Proceedings.: 282-291, 2004.
Li, Jingyue; Conradi, Reidar; Mohagheghi, Parastoo; Sæhle, Odd Arne; Wang, Øivind; Naalsund, Erlend; Walseth, Ole Anders. A Study of Developer Attitude to Component Reuse in Three IT Companies. Lecture Notes in Computer Science. 3009: 538-552, 2004.
Mohagheghi, Parastoo; Conradi, Reidar. An empirical study of software change: origin, acceptance rate, and functionality vs. quality attributes. International Symposium on Empirical Software Engineering, 2004. ISESE '04. Proceedings.: 7-16, 2004.
Mohagheghi, Parastoo; Conradi, Reidar. Exploring Industrial Data Repositories: Where Software Development Approaches Meet. Proc. the 8th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering (QAOOSE'04): 61-77, 2004.