Hybrid approach to component based Engineering Introduction Component
Hybrid approach to component based Engineering Introduction. ØComponent based development (CBD). ØPros and Cons of Component based Development. ØUsing hybrid approach. Ø
Introduction Component - A software component is a unit of composition with contractually specified interface and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party's. Ø
Component Based Development and objectives Definition: It is the creation and deployment of software-intensive systems assembled from components, as well as the development and harvesting of such components. ØObjectives: Reuse components, lower development costs, lower maintenance costs and increase productivity. Ø
Differences between CBD and conventional reuse Characteristics Conventional CBD Architecture monolithic modular Components Implementation and white box Interface and black box Process Water-fall Evolutional and concurrent Methodology Build from scratch Composition Organization Monolithic Specialized component vendor, broker and integrator
Differences between component and object Ø Ø Specialization - a component is a specialization of an object. A Component is an object, but an object isn't necessarily a Component. Scale - Components tend to encapsulate more than one object. Functional Responsibilities - The container, or environment, within which the Component lives, may place certain responsibilities on it. Functional Limitations - Again the container may impose restrictions on the functionality of the Component.
Component based development Lifecycle Analysis Component Acquisition Component –Oriented Design Component Composition Integration Test System Test Fig 1: Lifecycle of component based development
Component development and application development Application requirements (component composition) Component Development Application Domain Application Requirements Component based design methodology Domain Analysis Modeling Component design and implementation Domain components Component / application development support Component warehouse and broker Component composition Application systems Fig 2: component development and application development using components
Components notation in UML <<interface>> <<subsystem>> Canonical Form Elided Form
Pros of CBD Ø Ø Ø Ø Ø Unit of maintenance and upgrade Parallel development Scalable Infrastructure standardized. Manageable and self contained units. Higher level capabilities. Reduces complexity. Incremental testing. Higher flexibility in meeting various requirements.
Cons of CBD Requires trusted components. Ø Requires component certification. Ø Composition predictability. Ø Rapidly changing standards. Ø Skilled people are required for developing. Ø
Using hybrid approach Vertical framework – developing vertical components. Ø Horizontal framework – developing horizontal components. Ø
Vertical framework services restricted to single domain such as Accounting, Manufacturing or Insurance Policy Management. Ø
Horizontal framework services across the different verticals. E. g. Network security. Ø
Known Component Models Ø Ø Ø EJB CORBA COM+
References Ø Ø Ø Ivica Crnkovic, “Component-based software engineering – New challenges in software development”, http: //www. idt. mdh. se/~icc/, last visited 10/22/2003. Ivica Crnkovic and Magnus Larson, “Componentbased software engineering – New Paradigm of software development”, http: //www. idt. mdh. se/~icc/, last visited 10/22/2003. Ivica Crnkovic and Magnus Larson, “Demands on component-based Development”, Proc. 22 nd International Conference on software Engineering, ACM Press, 2000
- Slides: 15