Flexible Software Component Design Using A Product Platform Approach
Hemant Jain, Marcus A. Rothenberger, Vijayan Sugumaran
Abstract
Hemant Jain, Marcus A. Rothenberger, Vijayan Sugumaran
Abstract
The concept of reusing software artifacts to improve development efficiency and software quality has been around for quite some time, yet it has focused mostly on in-house reuse with limited success. Recently developments in component-based software development, Web services, and service-oriented architecture are targeting inter-organizational reuse by promoting black-box reuse facilitated by standard Web service-based interface definitions. This reuse paradigm reduces dramatically the cost of component integration and maintenance, as it is no longer necessary to understand implementation details. However, this requires a very high level of standardization and clear functional definitions to facilitate retrieval through search engines. Because of this, its application has been limited to relatively small infrastructure items, such as user interfaces, printing components, and data access modules. Further, the reuse potential of such components is high, as infrastructure functionality is needed across domains. However, without the ability to build the core of an application around reusable software components, the true value of component-based software development that can offer lower cost, high quality, agility, and responsiveness cannot be realized. Thus, in order to move this adoption philosophy forward, domain-specific components must be available. This research develops a method that promotes flexible component design based on a common product platform with derivative products. Following the design research method, the methodology artifact will be evaluated through an experimental evaluation and a formal assessment of its value to component-based development.
OpenAlex reports 4 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
The concept of reusing software artifacts to improve development efficiency and software quality has been around for quite some time, yet it has focused mostly on in-house reuse with limited success. Recently developments in component-based software development, Web services, and service-oriented architecture are targeting inter-organizational reuse by promoting black-box reuse facilitated by standard Web service-based interface definitions. This reuse paradigm reduces dramatically the cost of component integration and maintenance, as it is no longer necessary to understand implementation details. However, this requires a very high level of standardization and clear functional definitions to facilitate retrieval through search engines. Because of this, its application has been limited to relatively small infrastructure items, such as user interfaces, printing components, and data access modules. Further, the reuse potential of such components is high, as infrastructure functionality is needed across domains. However, without the ability to build the core of an application around reusable software components, the true value of component-based software development that can offer lower cost, high quality, agility, and responsiveness cannot be realized. Thus, in order to move this adoption philosophy forward, domain-specific components must be available. This research develops a method that promotes flexible component design based on a common product platform with derivative products. Following the design research method, the methodology artifact will be evaluated through an experimental evaluation and a formal assessment of its value to component-based development.
Key concepts: Computer science, Component-based software engineering, Software engineering, Reuse, Component (thermodynamics), Software development, Artifact (error), Systems engineering