Component-based development

from Wikipedia, the free encyclopedia

In applied computer science which is component-based development ( English Component Based Development , CBD or Component Based Software Engineering , CBSE ) a developed from previous approaches paradigm . This concept is based on software components that are intended to improve the reusability of software artifacts .

Diagram about the development of programming paradigms up to component-based development

From the function or procedure in procedural programming , the object in object-oriented programming and the CORBA object in distributed object computing to the component in component-based programming , the central elements are becoming more and more complex and powerful. Object-oriented programming is the basis of component-based programming.

The basic idea of ​​component-based development is the division of applications into reusable components in order to have to reprogram as little code as possible. Over time, a "component marketplace" can emerge from which applications can be put together according to the modular principle. Additional components only need to be developed for functionality that has not yet been implemented.

In addition to saving time during development, advantages include increased component quality due to a large number of users and various application scenarios that automatically serve as test scenarios. In a software system, assumptions are usually implied about a context in which the system is functioning. The CBSE requires that all of these assumptions be explicitly defined so that the system can be reused in different contexts (by third parties) .

In the practice of different component models such as CORBA , DCOM , CCA , JavaBeans , a separation of implementation and interface is required, which, however, only corresponds to a syntactic context specification. The concept of the contract , on the other hand, requires an explicit context specification that goes beyond the purely syntactic specification.

The semantic context description, for example through the specification of legal sequences of method calls of a component, are assumed by theory, but have not yet found their way into broad practice. In practice, for this reason, the term software component is often limited to stateless services, since such a semantic specification is not technically necessary for these (see Service Oriented Architecture ).

See also

literature

  • Andreas Andresen: Component-based software development with MDA, UML and XML , Hanser Fachbuchverlag, 2003, ISBN 3-446-22282-0
  • George T. Heineman, William T. Council: Component-Based Software Engineering: Putting the Pieces Together , Addison-Wesley Professional, 2001, ISBN 0-201-70485-4