Introduction to CBSE: Definitions, Concepts, and Principles
description
Transcript of Introduction to CBSE: Definitions, Concepts, and Principles
COP 4009 4th Lecture September 26, 2005
COP 4009 COP 4009 Component-Based Software EngineeringComponent-Based Software Engineering
Fall 2005Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/Teaching/COP-4009-Fall-2005/index.html
Introduction to CBSE:Introduction to CBSE:Definitions, Concepts, and PrinciplesDefinitions, Concepts, and Principles
Fourth Lecture on September 26, 2005 2COP-4009: Component-Based Software Engineering
AcknowledgementsAcknowledgements
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
Fourth Lecture on September 26, 2005 3COP-4009: Component-Based Software Engineering
AgendaAgenda
Component Based Software Engineering
Definitions
Component Infrastructure
Component Model
Tasks and Responsibilities
Fourth Lecture on September 26, 2005 4COP-4009: Component-Based Software Engineering
Other Engineering FieldsOther 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…
Fourth Lecture on September 26, 2005 5COP-4009: Component-Based Software Engineering
Some ExcusesSome 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…
Fourth Lecture on September 26, 2005 6COP-4009: Component-Based Software Engineering
CBSE MethodologyCBSE 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
Fourth Lecture on September 26, 2005 7COP-4009: Component-Based Software Engineering
AgendaAgenda
Component Based Software Engineering
Definitions
Component Infrastructure
Component Model
Tasks and Responsibilities
Fourth Lecture on September 26, 2005 8COP-4009: Component-Based Software Engineering
Software ComponentSoftware 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
Fourth Lecture on September 26, 2005 9COP-4009: Component-Based Software Engineering
Component ModelComponent 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.
Component
interface
SoftwareEntity
supply
manage
consume
Fourth Lecture on September 26, 2005 10COP-4009: Component-Based Software Engineering
comp
Interaction StandardInteraction 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
Fourth Lecture on September 26, 2005 11COP-4009: Component-Based Software Engineering
Composition StandardComposition Standard
Composition– the combination of two or more software
components yielding a new component behavior
Defines several important concepts– Packaging Installing Instantiating– Deploying Configuring
Fourth Lecture on September 26, 2005 12COP-4009: Component-Based Software Engineering
CMICMI
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
Fourth Lecture on September 26, 2005 13COP-4009: Component-Based Software Engineering
AgendaAgenda
Component Based Software Engineering
Definitions
Component Infrastructure
Component Model
Tasks and Responsibilities
Fourth Lecture on September 26, 2005 14COP-4009: Component-Based Software Engineering
Big PictureBig Picture
Decompose problem into projects and subprojects
Design logical component infrastructure
Problem to be
Solved
Problem to be
Solved
• Select suitable component model
• Provided by vendor; or, if a proprietary component model, must be implemented.
Legend
Subproject
Project
PerformanceRequirements
Evaluate Success of Software System
Evaluate Success of Software System
Master SoftwareDevelopment Plan
Fourth Lecture on September 26, 2005 15COP-4009: Component-Based Software Engineering
Increasingly detailed refinement of design leads to an implemented component infrastructure
Evaluate Success of Software System
Evaluate Success of Software System
Analyze component infrastructure from multiple viewpoints
Legend
Interaction
Component
Logical ComponentInfrastructure
Component Model Implementation
Component Infrastructure
Fourth Lecture on September 26, 2005 16COP-4009: Component-Based Software Engineering
Component InfrastructureComponent 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
Fourth Lecture on September 26, 2005 17COP-4009: Component-Based Software Engineering
Designing a Component InfrastructureDesigning a Component Infrastructure
The Component Infrastructure is layered
Layering is a strategy for decomposing complex structures
Fourth Lecture on September 26, 2005 18COP-4009: Component-Based Software Engineering
Four LayersFour Layers
User
Workflow and Process Control
Business Services
Data and Operating System Services
Fourth Lecture on September 26, 2005 19COP-4009: Component-Based Software Engineering
UserUser
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
Fourth Lecture on September 26, 2005 20COP-4009: Component-Based Software Engineering
Workflow and Process ControlWorkflow and Process Control
Workflow and process control components manage complex, automated business processes that interact with (potentially) many business services
Fourth Lecture on September 26, 2005 21COP-4009: Component-Based Software Engineering
Business ServicesBusiness 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
Fourth Lecture on September 26, 2005 22COP-4009: Component-Based Software Engineering
Design Layers and DesignersDesign Layers and Designers
User
Business Services &Legacy Wrapping
Data/Operating System Services
Workflow and ProcessControl
Solution
Component Designers
Business
Component Designers
Data/Infrastructure
Component Designers
Supply
Consume
Supply Consume
Fourth Lecture on September 26, 2005 23COP-4009: Component-Based Software Engineering
AgendaAgenda
Component Based Software Engineering
Definitions
Component Infrastructure
Component Model
Tasks and Responsibilities
Fourth Lecture on September 26, 2005 24COP-4009: Component-Based Software Engineering
Component ModelComponent Model
Interfaces
Naming
Meta data
Composition
Customization
Interoperability
Evolution Support
Packaging & Deployment
Specification of component behavior and properties
Definition of Interface Description Language (IDL)
Fourth Lecture on September 26, 2005 25COP-4009: Component-Based Software Engineering
Component ModelComponent Model
Interfaces Naming
Meta data
Composition
Customization
Interoperability
Evolution Support
Packaging & Deployment
Global unique names for interfaces and components
Interface YComponent X
Fourth Lecture on September 26, 2005 26COP-4009: Component-Based Software Engineering
Component ModelComponent 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
Interface YComponent X
X Meta dataY Meta data
Fourth Lecture on September 26, 2005 27COP-4009: Component-Based Software Engineering
Component ModelComponent 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
Interface YComponent X
Component Z???
Fourth Lecture on September 26, 2005 28COP-4009: Component-Based Software Engineering
Component ModelComponent Model
Interfaces
Naming
Meta data
Composition Customization
Interoperability
Evolution Support
Packaging & Deployment
Interfaces for customizing components
User-friendly customization tools will use these interfaces
Interface YComponent X
CustomizationAPI
Interface YComponent X’
Fourth Lecture on September 26, 2005 29COP-4009: Component-Based Software Engineering
Component ModelComponent 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
Interface Y
Component XVB Impl.
Component ZJava Impl.
???
Fourth Lecture on September 26, 2005 30COP-4009: Component-Based Software Engineering
Component ModelComponent Model
Interfaces
Naming
Meta data
Composition
Customization
Interoperability Evolution Support
Packaging & Deployment
Rules and services for replacing components or interfaces by newer versions
Interface YComponent X
X Meta dataVersion 1
Version 1.1
Y Meta dataVersion 1.0
Version 2.0
Fourth Lecture on September 26, 2005 31COP-4009: Component-Based Software Engineering
Component ModelComponent Model
Interfaces
Naming
Meta data
Composition
Customization
Interoperability
Evolution Support Packaging &
Deployment
Packaging implementation and resources needed for installing and configuring a component
Interface YComponent X
X Meta dataY Meta data
Fourth Lecture on September 26, 2005 32COP-4009: Component-Based Software Engineering
AgendaAgenda
Component Based Software Engineering
Definitions
Component Infrastructure
Component Model
Tasks and Responsibilities
Fourth Lecture on September 26, 2005 33COP-4009: Component-Based Software Engineering
Tasks and ResponsibilitiesTasks and Responsibilities
Component Factory– Three primary groups (AD, CD, CMID)
Tasks and Responsibilities
ApplicationDevelopment
Provides CD with component requests and designsProvides CMID with requirements for infrastructure services
ComponentDevelopment
Builds components to specification and provides to ADProvides feedback on CMI and its services
Component Model ImplementationDevelopment
Provides AD with a component model implementation that satisfies application criteria
Provides CD with suitable tools and an environment for component development
Tasks and Responsibilities
ApplicationDevelopment
Provides CD with component requests and designsProvides CMID with requirements for infrastructure services
ComponentDevelopment
Builds components to specification and provides to ADProvides feedback on CMI and its services
Component Model ImplementationDevelopment
Provides AD with a component model implementation that satisfies application criteria
Provides CD with suitable tools and an environment for component development