1 / 31

Component-Based Software Engineering

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.

garin
Download Presentation

Component-Based Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Component-Based Software Engineering Aaron J Miller Software Engineering UW-Platteville milleraar@uwplatt.edu

  2. Overview • 1. Introduction • 2. Development Life-Cycle • 3. Current Component Technologies • 4. Component Quality Assurance • 5. Advantages and Disadvantages

  3. Introduction • What is component based software engineering (CBSE)? • Components • Component Model • Component Framework

  4. Component Development Diagram

  5. 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.

  6. Component Model • Specify rules that must be obeyed by the components • Standardized Assumptions • Control Flow • Synchronization • Needed to remove sources of interface mismatches.

  7. 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

  8. Lego Example

  9. Developing a Component

  10. 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

  11. Requirements Analysis • Determine what functionality is required by client. • Look at requirements with possible components in mind.

  12. 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.

  13. 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.

  14. System Integration • Bring all the chosen components together • Components are built on top of chosen architecture framework. • Other Tasks • Testing • Change and Reintegration

  15. 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

  16. 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.

  17. Current Component Technologies • Visual Basic Controls (VBX) • ActiveX controls • Class Libraries • JavaBeans • CORBA • COM

  18. 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.

  19. 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.

  20. 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.

  21. Technologies Comparison

  22. Quality Assurance • Quality Characteristics of Components • Size • Complexity • Reuse Frequency • Reliability

  23. QA Characteristic: Size • Components cannot be too large • Large components are costly and may not be cost effective until used multiple times.

  24. 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.

  25. 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.

  26. QA Characteristic: Reliability • Probability of failure free operations. • Failing components can be easily replaced.

  27. Other QA Questions • How to certify quality of a component? • How to certify quality of software systems based on components?

  28. Advantages of CBSE • Independent extensions • Component Market • Component models lessen unanticipated interactions between components • Reduced time to market • Reduced Costs

  29. 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.

  30. Review • Component-Based Development • Components • Look at the quality of the components • Independent Extensions • Reduced Time-to-Market • Conflict between reusability and usability

  31. Questions???

More Related