Sunday, August 6, 2017

Component Based Development

Component Based Development

  • Component-based software engineering (CBSE) is a process that emphasizes the design and construction of computer-based systems using reusable software “components.” 
  • Clements describes CBSE in the following way… 
  • A number of questions arise like …. 
    • Is it possible to construct complex systems by assembling them from a catalog of reusable software components?
    • Can this be accomplished in a cost- and time-effective manner? 
    • Can appropriate incentives be established to encourage software engineers to reuse rather than reinvent? 
    • Is management willing to incur the added expense associated with creating reusable software components? 
  • Increasingly, the answer to each of these questions is “yes.”
  • Domain Engineering 
  • The objective of domain engineering is to identify, construct, catalog, and disseminate (distribute) a set of software components that have applicability to existing and future software in a particular application domain. 
  • The overall goal is to establish mechanisms that enable software engineers to share these components—to reuse them—during work on new and existing systems. 
  • It provides the library of reusable components that are required for component based SE. 
  • Domain engineering includes three major activities 
    • Analysis,
    • Construction,
    • Dissemination [Distribution]
  • Component Qualification :
    • Component qualification ensures that a candidate component will perform the function required, will properly “fit” into the architectural style specified for the system, and will exhibit the quality characteristics (e.g., performance, reliability, usability) that are required for the application. 
  • The following factors are considered during component qualification : 
    • Application programming interface (API). 
    • Development and integration tools required by the component. 
    • Run-time requirements, including resource usage (e.g., memory or storage), 
    • timing or speed, and network protocol. 
    • Service requirements, including operating system interfaces and support from other components. 
    • Security features, including access controls and authentication protocol. 
    • Exception handling
  • Component Adaptation : 
    • Domain engineering creates a library of components that can be easily integrated into an application architecture. 
    • The implication of “easy integration” is that 
      • (1) Consistent methods of resource management have been implemented for all components in the library, 
      • (2) Common activities such as data management exist for all components, 
      • (3) Interfaces within the architecture and with the external environment have been implemented in a consistent manner.
  • Component Composition
  • The component composition task assembles qualified, adapted, and engineered components to populate the architecture established for an application. 
  • A library of components must be available. 
  • Components should have a consistent structure. 
  • A standard should exist, e.g., 
    • OMG/CORBA   [Object Mgt Group / Common Object request broker architecture] 
    • Microsoft COM and .Net   [Com – Common Object Model] 
    • Sun JavaBeans

2 comments: