Component-based Software Development (CBSD)
Home | CBSD Links | Aspect-oriented Programming | Desktop Computing | Script Languages |
Abstract
Software Engineering is often perceived as comprising ponderous bureaucratic processes appropriate to the design, development, deployment, and evolution of big, complex, slowly adapting systems. Thus developing software at Internet speed using the currently available software engineering principles and practices are found inefficient and insufficient. This forced researchers in software engineering field to think about the necessity of designing new methodologies and paradigms to take head on these challenges. Thus came the most important component technology, which advocates development of software applications by creating components and assembling them.
As the demand for more flexible, adaptable, extensible, and robust Web-based enterprise application systems accelerates, adopting new software engineering methodologies and development strategies become critical. These strategies must support the construction of enterprise software systems that assemble highly flexible software components coded in different times by different developers. Traditional software development strategies and engineering methodologies, which require development of software systems from scratch fall short in this regard.
What is CBSD?
Component-based software development advocates developing software systems by selecting reliable, reusable and robust software components and assembling them within appropriate software architectures. By promoting the use of software components that commercial vendors or in-house developers build, the component-based software development approach promises large-scale software reuse. Component-based software engineering offers an attractive alternative for building Web-based enterprise application systems.
Software developers create software components mainly with an intention of being reused in various software systems. Components are designed to interact with its environment through its well-defined interfaces but to encapsulate their implementation. Component-based software development brings the potential for
The component-based software development life cycle differs from traditional way of developing software systems in many ways. The CBSD phase includes new activities such as selection and creation of software architectures, as well as selection and customization of a set of software components. In addition, the implementation phase deals with the integration of a set of software components within appropriate software architectures. This requires developing wrappers that glue reusable components together to build the software system, rather than extensive coding to build a software system from scratch. Late integration of components developed by others eliminates the confidence usually drawn from integration testing in a traditional software engineering model. Developers must architect and design extensibility into a system and all its parts otherwise the components in the resulting system will not be independently producible and deployable.
|