1 / 33

Introduction to CBSE: Definitions, Concepts, and Principles

Introduction to CBSE: Definitions, Concepts, and Principles. Acknowledgements. Dr. George T. Heineman

sirvat
Download Presentation

Introduction to CBSE: Definitions, Concepts, and Principles

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. Introduction to CBSE:Definitions, Concepts, and Principles

  2. Acknowledgements • Dr. George T. Heineman • This course is based on the “CS 509 Design of Software Systems - Spring 2005” by Dr. Heineman with some adjustments to become appropriate for undergraduate students. Dr. Heineman has generously offered his course material (including the slides) and his help during preparation of this course. I am very grateful to him. • The original slides and the course material can be found at: • http://www.cs.wpi.edu/~heineman/html/teaching_/CS509/index.html • Dr. William Councill and other authors of the main textbook • Dr. Clemens Szyperski • Drs. Betty Cheng, Peter Clarke, Bernd Bruegge, and Allen Dutoit

  3. Agenda • Component Based Software Engineering • Definitions • Component Infrastructure • Component Model • Tasks and Responsibilities

  4. Other Engineering Fields • Every other engineering profession • divides problems into sub-problems • Ready-made solutions • Sub-contracted to conform to specifications • conforms to standards • self-imposed industrial regulation • certification regiment for engineers • But not Software Engineering…

  5. Some Excuses • Software is different from hardware • My software needs are unique • We don’t trust software written elsewhere • Users can live with defective software • We want something better…

  6. CBSE Methodology • At its core, CBSE is a methodology that: • constructs applications from software units • supports vendors in producing reusable software units • develops core technologies that support the run-time execution of these units • defines agreed-upon standards • engenders trust among participants We will participate in most of these tasks during this semester

  7. Agenda • Component Based Software Engineering • Definitions • Component Infrastructure • Component Model • Tasks and Responsibilities

  8. Software Component A Software Component is • a software element • that conforms to a component model • and can be independently deployed • and can be composed without modification • all above according to a composition standard

  9. Component Model A Component Model defines specific interaction and composition standards. An interaction standard is the mandatory requirements employed and enforced to enable software elements to directly and indirectly interact with other software elements. consume supply manage SoftwareEntity Component interface

  10. comp Interaction Standard • Based on the concept of an interface • “An abstraction of the behavior of a component” • Provided interface • component implements the interface • Required interface • component interactions with other software elements are captured • Context Dependency in out

  11. Composition Standard • Composition • the combination of two or more software components yielding a new component behavior • Defines several important concepts • Packaging Installing Instantiating • Deploying Configuring

  12. CMI A Component Model Implementation is • the dedicated set of executable software elements • required to support the execution of components • that conform to the model • The “Plumbing” that enables components to connect and interact with each other

  13. Agenda • Component Based Software Engineering • Definitions • Component Infrastructure • Component Model • Tasks and Responsibilities

  14. Big Picture PerformanceRequirements Problem to be Solved Master SoftwareDevelopment Plan Evaluate Success of Software System Decompose problem into projects and subprojects Design logical component infrastructure • Select suitable component model • Provided by vendor; or, if a proprietary component model, must be implemented. Legend Project Subproject

  15. Component Infrastructure Component Model Implementation Logical ComponentInfrastructure Evaluate Success of Software System Increasingly detailed refinement of design leads to an implemented component infrastructure Analyze component infrastructure from multiple viewpoints Legend Component Interaction

  16. Component Infrastructure • A software component infrastructure is • a set of interacting software components • The infrastructure is designed to ensure that a software system constructed using those components will satisfy clearly defined performance requirements

  17. Designing a Component Infrastructure • The Component Infrastructure is layered • Layering is a strategy for decomposing complex structures

  18. Four Layers • User • Workflow and Process Control • Business Services • Data and Operating System Services

  19. User • User components provide the external interface • graphical user interfaces (GUI), Web-based, or batch-oriented • Understand user interactions • Request services from other components in response to commands issued by the user

  20. Workflow and Process Control • Workflow and process control components manage complex, automated business processes that interact with (potentially) many business services

  21. Business Services • Business service and legacy wrapping components provide the implementation of the business rules and the operational activity • This is accomplished using internal business object implementations, or by wrapping legacy systems behind the component interface

  22. User Solution Component Designers Workflow and Process Control Consume Business Supply Component Business Services & Legacy Wrapping Designers Consume Supply Data/Infrastructure Data/Operating System Services Component Designers Design Layers and Designers

  23. Agenda • Component Based Software Engineering • Definitions • Component Infrastructure • Component Model • Tasks and Responsibilities

  24. Component Model • Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Specification of component behavior and properties Definition of Interface Description Language (IDL)

  25. Component Model Interfaces • Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Global unique names for interfaces and components Component X Interface Y

  26. Component Model Interfaces Naming • Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Information about components, interfaces, and their relationships Interfaces to services providing such information X Meta dataY Meta data Component X Interface Y

  27. Component Model Interfaces Naming Meta data • Composition Customization Interoperability Evolution Support Packaging & Deployment Interfaces and rules for combining components to create larger structures and for substituting and adding components to existing structures Component Z ??? Component X Interface Y

  28. Component Model Interfaces Naming Meta data Composition • Customization Interoperability Evolution Support Packaging & Deployment Interfaces for customizing components User-friendly customization tools will use these interfaces CustomizationAPI Component X Interface Y Component X’ Interface Y

  29. Component Model Interfaces Naming Meta data Composition Customization • Interoperability Evolution Support Packaging & Deployment Communication and data exchange among components from different vendors, implemented in different languages Component ZJava Impl. ??? Component XVB Impl. Interface Y

  30. Component Model Interfaces Naming Meta data Composition Customization Interoperability • Evolution Support Packaging & Deployment Rules and services for replacing components or interfaces by newer versions Y Meta data Version 1.0 Version 2.0 X Meta data Version 1 Version 1.1 Component X Interface Y

  31. Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support • Packaging & Deployment Packaging implementation and resources needed for installing and configuring a component X Meta dataY Meta data Component X Interface Y

  32. Agenda • Component Based Software Engineering • Definitions • Component Infrastructure • Component Model • Tasks and Responsibilities

  33. Tasks and Responsibilities • Component Factory • Three primary groups (AD, CD, CMID)

More Related