310 likes | 545 Views
Component-Based Software Engineering. Aaron J Miller Software Engineering UW-Platteville milleraar@uwplatt.edu. Overview. 1. Introduction 2. Development Life-Cycle 3. Current Component Technologies 4. Component Quality Assurance 5. Advantages and Disadvantages. Introduction.
E N D
Component-Based Software Engineering Aaron J Miller Software Engineering UW-Platteville milleraar@uwplatt.edu
Overview • 1. Introduction • 2. Development Life-Cycle • 3. Current Component Technologies • 4. Component Quality Assurance • 5. Advantages and Disadvantages
Introduction • What is component based software engineering (CBSE)? • Components • Component Model • Component Framework
What is a Component? • An abstract implementation of functionality that conforms to a component model. • Small systems for small pieces of functionality. • Designed by third party developers.
Component Model • Specify rules that must be obeyed by the components • Standardized Assumptions • Control Flow • Synchronization • Needed to remove sources of interface mismatches.
Component Framework • Software services to support and enforce a component model. • Usually designed by the developer using the component model. • Can be viewed as a mini operating system
Life-Cycle of CBSE • 1. Requirements Analysis • 2. Software Architecture Selection • 3. Component Identification and Customization • 4. System Integration • 5. System Testing • 6. Software Maintenance
Requirements Analysis • Determine what functionality is required by client. • Look at requirements with possible components in mind.
Architecture Selection • Choosing a component model to be used in your solution. • Determines what components will be available to you. • Different software architectures can be more appropriate than others based on the application.
Component Identification • Most important phase of CBSE • Two main parts of this phase • 1. Evaluation of each component canidate • 2. Customization of the chosen components • Need to look at included functionality and customization options of each component.
System Integration • Bring all the chosen components together • Components are built on top of chosen architecture framework. • Other Tasks • Testing • Change and Reintegration
System Testing • Tests are needed for each individual component • Tests for the system framework • Testing of the components is limited • Less testing required for software components
Software Maintenance • Correcting faults, improving system performance, and adapting the system. • Most controllable maintenance is done on the component architecture/framework • Maintenance of components handled primarily by developer of the component.
Current Component Technologies • Visual Basic Controls (VBX) • ActiveX controls • Class Libraries • JavaBeans • CORBA • COM
CORBA • Common object request broker architecture • Allows for communication between applications developed separately. • A server object call ORB controls things. • ORB locates the objects that clients call to use.
JavaBeans • Model consists of two parts • The clients side component development • Server side component development • Uses portable Java bytecodes and java applets trust security. • Offers a portable, secure, and reliable environment for developing robust components.
COM • Component object model • Defines how clients and components will interact • Provides a binary standard that components and clients must follow. • Extension of COM known as DCOM or distributed COM.
Quality Assurance • Quality Characteristics of Components • Size • Complexity • Reuse Frequency • Reliability
QA Characteristic: Size • Components cannot be too large • Large components are costly and may not be cost effective until used multiple times.
QA Characteristic: Complexity • Makes the components difficult to use. • Overly simple components may not be beneficial for reuse. • Quality is more difficult to ensure with a complex system.
QA Characteristic: Reuse Frequency • The number of times that a component is used is a very valuable indicator of how useful a component is. • Offer financial saving, which can allow resources to be used elsewhere to improve quality.
QA Characteristic: Reliability • Probability of failure free operations. • Failing components can be easily replaced.
Other QA Questions • How to certify quality of a component? • How to certify quality of software systems based on components?
Advantages of CBSE • Independent extensions • Component Market • Component models lessen unanticipated interactions between components • Reduced time to market • Reduced Costs
Disadvantages of CBSE • Time to develop software components takes a big effort. • Components can be pricey. • Requirements in component technologies lacking • Conflict between usability and reusability of components. • Maintenance cost for components increased.
Review • Component-Based Development • Components • Look at the quality of the components • Independent Extensions • Reduced Time-to-Market • Conflict between reusability and usability