1. Introduction 2. Development Life-Cycle 3. Current Component Technologies 4. Component Quality Assurance 5. Advantages and Disadvantages What is component based software engineering (CBSE)? › Components › Component Model › Component Framework An abstract implementation of functionality that conforms to a component model. Small systems for small pieces of functionality. Designed by third party developers. Specify rules that must be obeyed by the components Standardized Assumptions › Control Flow › Synchronization Needed to remove sources of interface mismatches. 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 1. Requirements Analysis 2. Software Architecture Selection 3. Component Identification and Customization 4. System Integration 5. System Testing 6. Software Maintenance Determine what functionality is required by client. Look at requirements with possible components in mind. 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. 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. Bring all the chosen components together Components are built on top of chosen architecture framework. Other Tasks › Testing › Change and Reintegration Tests are needed for each individual component Tests for the system framework Testing of the components is limited Less testing required for software components 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. Visual Basic Controls (VBX) ActiveX controls Class Libraries JavaBeans CORBA COM 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. 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. 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 Characteristics of Components › Size › Complexity › Reuse Frequency › Reliability Components cannot be too large Large components are costly and may not be cost effective until used multiple times. 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. 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. Probability of failure free operations. Failing components can be easily replaced. How to certify quality of a component? How to certify quality of software systems based on components? Independent extensions Component Market Component models lessen unanticipated interactions between components Reduced time to market Reduced Costs 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. Component-Based Development Components Look at the quality of the components Independent Extensions Reduced Time-to-Market Conflict between reusability and usability