Application of CBSE to projects with evolving requirements-a lesson-learned

Component-based software engineering (CBSE) advocates the acquisition, adaptation, and integration of reusable software components, including commercial-of-the-shelf (COTS) products, to rapidly develop and deploy complex software systems with minimum engineering effort and resource cost. While the interest in CBSE continues to increase, underestimating the technical and management risks associated with this software engineering approach has resulted in a large number of unsuccessful projects. It is recognized that further understanding of fundamental challenges associated with CBSE will be needed before significant increase in industrial successes can be observed. This paper describes a 9-month effort, initiated by Motorola, to study the feasibility of applying CBSE to the IRIDIUM system development. Although succeeded, post-mortem of this effort reveals an unanticipated challenge in applying CBSE to projects that lack stable system requirements. This challenge caused by repeated cycles of: component selection, evaluation and integration activities; and requirement evaluation, negotiation, and definition activities that are costly both in time and resource. Mismanaging the risks associated with this cyclical dependency can lead to schedule slippage, costly production, and delivery of unusable solution. The paper concludes with a description of several risk-mitigation strategies that we have effectively adopted for IRIDIUM and subsequent CBSE projects.

[1]  James E. Rumbaugh,et al.  Getting Started: Using Use Cases to Capture Requirements , 1994, J. Object Oriented Program..

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[4]  Ivar Jacobson,et al.  A Growing Consensus on Use Cases , 1995, Journal of object-oriented programming.

[5]  Dar-Biau Liu,et al.  Component-based systems development: challenges and lessons learned , 1997, Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice incorporating Computer Aided Software Engineering.

[6]  Alan W. Brown,et al.  The Current State , 2016 .

[7]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[8]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[9]  M. Aoyama Process and economic model of component-based software development: a study from Software CALS Next Generation Software Engineering program , 1997, Proceedings Fifth International Symposium on Assessment of Software Tools and Technologies.