Component-Based Software Engineering SEII - Lecture 30
Component acquisition
The process of acquiring components
Local or external components
Component management
Managing organization’s reusable components
Properly cataloged, stored, and made available
Component certification
Process of checking and certifying components
22 trang |
Chia sẻ: dntpro1256 | Lượt xem: 667 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Component-Based Software Engineering SEII - Lecture 30, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Component-Based Software EngineeringSEII-Lecture 30Dr. Muzafar KhanAssistant ProfessorDepartment of Computer ScienceCIIT, Islamabad.RecapCOTS product reuseBenefits of COTS product reuseProblems with COTS product reuseCOTS-solution systemsERP systemsArchitecture of ERP systemsLimitations of reuseConfiguration of COTS-solution systemsCOTS-integrated systemsProblems with COTS-integrated systems2ImportanceIf an organization cannot use COTS systemCBSE is an effective and reuse-oriented wayIt emerged in the late 1990sDesigners’ frustration about the limited reuse of object-oriented approachObject classes are too detailed and specificDetailed knowledgeAccess to source codeSelling and distributing objects as individual reusable components is practically impossible3ComponentsComponents are higher-level abstractions than objectsThese are defined by their interfaces and their implementation details are hiddenCBSE is the process of Defining, implementing, and integrating / composing loosely coupled, independent components into systemsSoftware systems are large and complex Customers demand more dependable software that is delivered and deployed more quickly4Essentials of CBSEIndependent componentsSpecified by their interfacesClear separation between interface and implementationImplementation can be replacedComponent standardsFacilitates the integrationComponents written in different languages MiddlewareSupport for the component integrationHandle low-level issues efficientlyDevelopment process5Characteristics of Component [1/2]StandardizedStandard component modelComponent interfaces, component metadata, documentation, composition, and deploymentIndependentCompose and deploy it without the use of other specific componentsIf it needs externally provided services, it should be clearly described in interface specificationComposableAll external interactions through publicly defined interfacesExternal access to its information (methods and attributes)6Characteristics of Component [2/2]DeployableSelf-contained componentStand-alone entity on a component platformProvide an implementation of the modelNo need to compile it before the deploymentIf it is service, it should be deployed by service providerDocumentedFully documentedSyntax and semantics of component interfacesHelps to decide about the use7Component as a Service ProviderWhen a system needs a service, it calls on a component to provide that serviceExamples – search service and data conversion serviceEmphasize on two critical characteristicsComponent as an independent executable entity that is defined by its interfacesNo need of knowledge about its source code to use itIt can be referenced as an external service or directly included in a programServices are made available through an interfaceAll interactions are through that interfaceInterface is expressed in terms of parameterized operationsInternal state is never exposed8Component Interfaces [1/2]‘Provides’ interfaceDefine the services provided Component APIMethods that can be called by a userIndicated as circle in UML component diagram‘Requires’ interfaceServices must be provided by other componentsIt does not compromise the independence or deployability of a componentIndicated as semicircle in UML component diagram9Component Interfaces [2/2]10Figure source: Software Engineering, I. Sommerville, 9th ed., p. 457Example – Component Interfaces11Figure source: Software Engineering, I. Sommerville, 9th ed., p. 458Component ModelsA definition of standards for component implementation, documentation, and deploymentIt helps to make sure that components can interoperateProviders of component execution infrastructuresExamples: WebServices model, Sun’s Enterprise Java Beans (EJB) model, Microsoft .NET model12Elements of Component Model [1/3]InterfacesHow the interfaces should be defined?Which elements such as operation names and parameters should be included in the definitionModel should specify the language to define interfacesExample: EJB is Java specific so it is used as interface definition languageSome models require specific interface that must be defined by a component13Elements of Component Model [2/3]UsageUnique name or handle to distribute and access remotelyExample: services have unique uniform resource identifier (URI)Component meta-dataspecifies how the binary components can be customized14Elements of Component Model [3/3]DeploymentSpecification of how components should be packaged for deployment as independent, executable entitiesInformation about the contents of a package and its binary organizationGoverning rules an how component replacement is allowedComponent model should define the documentation to be producedComponent model implementation provides comparable shared services for components15Services Provided by Component Model [1/2]Platform servicesFundamental servicesEnable components to communicate and interoperate in a distributed environmentSupport servicesCommon services that are likely to be required by many different componentsExample: authenticationA standard set of middleware services for use by all components16Services Provided by Component Model [2/2]Component is deployed in a “container”An implementation of support services plus a definition of the interfacesComponent can access the support services and the container can access the component interfacesComponent interfaces are not directly accessed by other componentsContainers are large and complex, access to all middleware servicesComponent may not need to access all the servicesStandards for common web services such as transaction management and securityStandards are implemented as program libraries17Example – Middleware Services Defined in a Component Model18Figure source: Software Engineering, I. Sommerville, 9th ed., p. 460CBSE Processes [1/3]Software processes that support component-based software engineeringConsidering the possibilities of reuse and different process activities involvedTwo types of processes at highest levelDevelopment for reuseGood knowledge about the componentsAccess to source code and work for generalizationDevelopment with reuseDiscover the componentsMay not have access to source code19CBSE Processes [2/3]Component acquisitionThe process of acquiring componentsLocal or external componentsComponent managementManaging organization’s reusable componentsProperly cataloged, stored, and made availableComponent certificationProcess of checking and certifying components20CBSE Processes [3/3]21Figure source: Software Engineering, I. Sommerville, 9th ed., p. 462SummaryComponent-based software engineeringEssentials of CBSEIndependent components, component standards, middleware, development processCharacteristics of componentsStandardized, independent, composable, deployable, documentedElements of component modelInterfaces, usage, deploymentCBSE processesDevelopment for reuse, development with reuseComponent acquisition, management, and certification22
Các file đính kèm theo tài liệu này:
- lecture_30_csc392_dr_muzafar_khan_3_2027040.pptx