A Classification Framework for Component Models 一種組件models分類框架_第1頁
A Classification Framework for Component Models 一種組件models分類框架_第2頁
A Classification Framework for Component Models 一種組件models分類框架_第3頁
A Classification Framework for Component Models 一種組件models分類框架_第4頁
A Classification Framework for Component Models 一種組件models分類框架_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

ComponentModels

-maincharacteristicsIvicaCrnkovicOutlineMotivationandgoalsforusingcomponentsinSoftwareBasiccharacteristicsofcomponentmodelsClassificationofcomponentmodelsComponentmodelsexamples08-Sep-242ChallangesofSoftwareEngineeringPage3,9/8/2024Thesize&complexityofsoftwareincreasesrapidlySingleproductsbecomepartofproductfamiliesSoftwareisupgradedafterdeploymentTime-tomarkedmustdecreasesignificntelyThecostsof(software)productsmustbereducedObservationsonthepracticeofSEPage4,9/8/2024About80%ofsoftwaredevelopmentdealswithchangingofexistingsoftware“Itisnotthestrongestofthespeciesthatsurvive,northemostintelligent,buttheonesmostresponsivetochanges”DarwinWeneedmethodsthatwillEasyincorporatechangesAdaptationsBeabletofastresponsetothenewrequirementsPage5,9/8/2024Apossiblesolution:Component-basedDevelopmentIdea:Buildsoftwaresystemsfrompre-existingcomponents(likebuildingcarsfromexistingcomponents)BuildingcomponentsthatcanbereusedindifferentapplicationsSeparatedevelopmentofcomponentsfromdevelopmentofsystemsPage6,9/8/2024Thesoftwarearchitectureofaprogramorcomputingsystemisthestructureorstructuresofthesystem,whichcomprisesoftwarecomponents[andconnectors],theexternallyvisiblepropertiesofthosecomponents[andconnectors]andtherelationshipsamongthem.” BassL.,ClementsP.,andKazmanR.,SoftwareArchitectureinPractice,C1C4C2C5C3Systemsandcomponents–SoftwareAchitectures08-Sep-247Whatiscomponent?ThecomponentcaseManydefinitionsSomeacknowledgeones:softwarecomponentisaunitofcompositionwithcontractuallyspecifiedinterfacesandcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparties. SzyperskiAsoftwarecomponentisasoftwareelementthatconformstoacomponentmodelandcanbeindependentlydeployedandcomposedwithoutmodificationaccordingtoacompositionstandard HeinemanandCouncillIntuitiveperceptionmaybequitedifferentatdifferentlevels(model,implementation,run-time)Page8,9/8/2024Compositionunit Asoftwarecomponentisaunitofcompositionwithcontractuallyspecifiedinterfacesandexplicitcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparty.–ClemensSzyperski

Howmuchcomponentsfittogether? Howmuchcoststhegluecode?ComponentsGluecodeSystemPage9,9/8/2024Whatisacontract? Asoftwarecomponentisaunitofcompositionwithcontractuallyspecifiedinterfacesandexplicitcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparty.Contract-Aspecificationattachedtoaninterfacethatmutuallybindstheclientsandprovidersofthecomponents.FunctionalAspects(API)Pre-andpost-conditionsfortheoperationsspecifiedbyAPI.Acomponentmayprovide

/implementseveralinterfacesIBarIFooIFoo2Page10,9/8/2024Whatisanexplicitcontextdependency? Asoftwarecomponentisaunitofcompositionwithcontractually

specifiedinterfacesandexplicitcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparty.Contextdependencies-Specificationofthedeploymentenvironmentandrun-timeenvironmentExample:Whichtools,platforms,resourcesorothercomponentsarerequired?Doexistingcomponentmodelshavesupportfordeclaringthedependencies?Isitpossibletoverifyiftheenvironmentcomplywiththecontextrequired?Page11,9/8/2024Asoftwarecomponentisaunitofcompositionwithcontractually

specifiedinterfaces

andexplicitcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparty.Latebinding-dependenciesareresolvedatloadorrun-time.Replacingofacomponentindependentoftheclient(mainapplication)ifthecontractisnotbroken.Delegation-interactionwithaweakcoupling(forexamplenoinheritance).

Whichproblemscanoccurinrelationtolatebinding? Howcanweguaranteethatareplacementofacomponentwillnotaffectotherpartsofthesystem?

Whatdoesitmeandeployedindependently?Page12,9/8/2024Example:Interfacedescription:(M)IDL(Microsoft)InterfaceDefinitionLanguage

[ uuid(00112233-ABBA-ABBA-ABBA-BADBADBADBAD), object ] interfaceIAddressList{ HRESULTaddAddress([in]name,[in]address); HRESULTdeleteAddress([in]name,[in]address); }languageindependentinterfacespecificationcanbecompiledintolanguagedependentcodeskeletonsPage13,9/8/2024ComponentsandInterfaces-UMLdefinitionComponent–asetofinterfaces required(in-interfaces) provided(out-interfaces)Interface–setofoperationsOperations–inputandoutputparametersofcertaintype

Page14,CBSE–graduatecourseExample:SpecificationofaCOMcomponentinterfaceISpellCheck:IUnknown{ HRESULTcheck([in]BSTR*word,[out]bool*correct);};interfaceICustomSpellCheck:IUnknown{ HRESULTadd([in]BSTR*word); HRESULTremove([in]BSTR*word);};librarySpellCheckerLib{ coclassSpellChecker { [default]interfaceISpellCheck; interfaceICustomSpellCheck; };};Page15,CBSE–graduatecourseSemanticSpecificationExtensionofsyntacticspecificationAstatemodelisassociatedwitheachinterfaceOperationshavepre-andpost-conditionspre:state*in-parameters->boolpost:state*state*in-parameters*out-parameters->boolInvariantsonaninterface’sstatemodelstate->boolIntra-interfaceconditionsforcomponentsstate1*state2*…->boolPage16,CBSE–graduatecourseExample:UMLComponentSpecificationPage17,CBSE–graduatecourseExample:ObjectConstraintLanguage(OCL)contextISpellCheck::check(inword:String,outcorrect:Boolean):HRESULTpre:

word<>“”post:

SUCCEEDED(result)impliescorrect=words->includes(word)contextICustomSpellCheck::add(inword:String):HRESULTpre:

word<>“”post:

SUCCEEDED(result)implieswords=words@pre->including(word)contextSpellCheckerISpellCheck::words=ICustomSpellCheck::wordsPage18,9/8/2024ContractuallyspecifiedinterfacesinaUMLmetamodelFinally-componentshaveattributesExtrafunctionalpropertiesMemorysizeRequiresCPU…PerformanceResponsetimeExecutiontimeQualityattributesReliabilityAvaliability08-Sep-2419ICATSarajevo-2007-10-29Componentsandproperties08-Sep-242008-Sep-2421DifferentsolutionsAplethoraofCBmodels(withmanydifferentcharacteristics)

<<component>>Client

<<component>>ServerIdenticalItfC1

wcet1

f1AC2

wcet2

f2InputportsOutputportsAUTOSARBIPCOMDESCCACorbaCMEJBFractalKOALAKobrAMSCOMOpenComOSGiPINPECOSROBOCOPRUBUSSaveCCMSOFA2.008-Sep-24ICATSarajevo-2007-10-2922QuestionsWhatiscommontocomponentmodels?Itispossibletoidentifycommonprinciplesandcommonfeatures?Isitpossibletoutilize/instantiatetheseprinciplesforparticularcomponentmodelsinparticulardomains?08-Sep-2423Definitions:

SoftwareComponent–ComponentModelDefinition:

ASoftwareComponentisasoftwarebuildingblockthatconformstoacomponentmodel.AComponentModeldefinesstandardsfor(i)propertiesthatindividualcomponentsmustsatisfyand(ii)methods,andpossiblymechanisms,forcomposingcomponents.Classification(i)Commonalities,(ii)Differences

DifferentapproachesSpecificationofMetamodelListofcharacteristicsIdentificationofcategoriesandtheircharacteristicsComponentSpecificationC=<{Interfaces},{Properties}>ComponentComposition:C=C1

?C2Interaction(Interfacecomposition): I(C)=I(C1)?I(C2)Propertycomposition: Pi(C)=Pi(C1)?Pi(C2)ComponentLifecycle08-Sep-242408-Sep-2425TheClassificationFramework-CategoriesLifecycle.

Thelifecycledimensionidentifiesthesupportprovided(explicitlyorimplicitly)bythecomponentmodel,incertainpointsofalifecycleofcomponentsorcomponent-basedsystems.Constructs.Theconstructsdimensionidentifies

(i)thecomponentinterfaceusedfortheinteractionwithothercomponentsandexternalenvironment,and

(ii)themeansofcomponentbindingandcommunication.

Extra-FunctionalProperties.Theextra-functionalpropertiesdimensionidentifiesspecificationsandsupportthatincludestheprovisionofpropertyvaluesandmeansfortheircomposition.Domains.Thisdimensionshowsinwhichapplicationandbusinessdomainscomponentmodelsareused.

lifecycleEFPDomainADomainBThecomponent-baseddevelopmentprocessTheComponentlifecycleComponentlifecycle08-Sep-24ICATSarajevo-2007-10-2928ComponentlifecyclerequirementsmodellingimplementationpackagingdeploymentExecutionSpecificationInterfaceModelsMetadataCodeSourcecodeExecutablecodeExecutablemodelsStorageRepositoryPackageMetadataInstalledFilesExecutablecodeComponentforms08-Sep-2429LifecyclecategoryDifferentstagesofacomponentlifecycleModelling.Thecomponentmodelsprovidesupportforthemodellingandthedesignofcomponent-basedsystemsandcomponents.Implementation.Thecomponentmodelprovidessupportforgeneratingandmaintainingcode.Theimplementationcanstopwiththeprovisionofthesourcecode,orcancontinueuptothegenerationofabinary(executable)code.Storage&Packaging.Sincecomponentscanbedevelopedseparatelyfromsystems,thereisaneedfortheirstorageandpackaging–eitherfortherepositoryorforadistributionDeployment&Execution.Atacertainpointoftime,acomponentisintegratedintoasystem.Thisactivityhappensatdifferentpointsofdevelopmentormaintenancephase.Constructs–componentsInteractionsSpecificationofInterfaceComposition(interaction)08-Sep-2430

<<component>>Client

<<component>>Client

<<component>>ServerDoubleroleofInterfaceConstructs–InterfaceSpecificationCategoriesLevels-Syntactic

-Semantic

-BehavioralSpecificationlanguageDistinquishProvideRequireInterfacetypeOperation-basedPort-based08-Sep-2431

<<component>>Client

<<component>>Client

<<component>>Client08-Sep-2432Constructs–compositions(I)

<<component>>ClientArchitecturalstyle(client-server,pipe-filter)Communicationtype(synchronous,asynchronous)

<<component>>Server08-Sep-2433Constructscompositions(II)

<<component>>Client

<<component>>ServerExogenous

<<component>>Client

<<component>>Server

<<Connector>>Inbetween

<<component>>ServerEndogenousC1.x=C2.ya=C2.yC1.x=a08-Sep-2434Constructscompositions(III)CompositionHorizontal

<<component>>Client

<<component>>Server

<<component>>ServerVertical

<<component>>Client

<<component>>ServerConstructsclassificationInterfaceoperation-based/port-basedprovides/requiresTheinterface

level(syntactic,semantic,behaviour)distinctivefeaturesConnectionsArchitecturalStyleCommunicationtype(synchronous/asynchronous)BindingtypeEndogenous,ExogenousVertical,horisontal08-Sep-243508-Sep-2436Extra-FunctionalPropertiesManagementofextra-functionalpropertiesDoesacomponentprovideanysupportforextra-functionalproperties?Whatarethemechanisms?Whichpropertiesaremanaged?Compositionofextra-functionalpropertiesP(C1oC2)=P(C1)oP(C2)Whatkindofcompositionissupported?Whichproperties?ManagementofEFPEPF–compositiontypes(I)Directlycomposableproperties.Architecture-relatedpropertiesDerivedproperties.Usage-dependedproperties.

Systemenvironmentcontextproperties.

08-Sep-2438EPF–compositiontypes(II)Directlycomposableproperties.Apropertyofanassemblyisafunctionof,andonlyof,thesamepropertyofthecomponentsinvolved.P(A)=f(P(C1),…P(Ci),…,P(Cn))Architecture-relatedproperties.Apropertyofanassemblyisafunctionofthesamepropertyofthecomponentsandofthesoftwarearchitecture.P(A)=f(SA,…P(Ci)…),i=1…nSA=softwarearchitecture08-Sep-2439EPF–compositiontypes(III)Derivedproperties.Apropertyofanassemblydependsonseveraldifferentpropertiesofthecomponents.P(A)=f(SA,…Pi(Cj)…),i=1…m,j=1…nPi=componentpropertiesCj=componentsUsage-dependedproperties.Apropertyofanassemblyisdeterminedbyitsusageprofile.P(A,U)=f(SA,…Pi(Cj,U)…),i=1…m,j=1…nU=UsageprofileSystemenvironmentcontextproperties.Apropertyisdeterminedbyotherpropertiesandbythestateofthesystemenvironment.P(S,U,X)=f(SA,…Pi(Cj,U,X)…),i=1…m,j=1…nS=system,X=systemcontext08-Sep-244008-Sep-2441DomainsApplicationsandbusinessdomainoftheComponentModelsGeneral-purpose:BasicmechanismsfortheproductionandthecompositionofcomponentsProvidenoguidance,norsupportforanyspecificarchitecture.Specialised:Specificapplicationdomains

(i.e.consumerelectronics,automotive,…)Generative:InstantiationofparticularcomponentmodelsProvidecommonprinciplesandsomecommonpartsoftechnologies(forexamplemodelling)Otherpartsarespecific(forexampledifferentimplementations)08-Sep-2442Component

modelLifecycleModellingImplementationPackagingDeploymentAtcompilationAtrun-timeConstructsInterfacespecificationInterfacetypeOperation-basedPort-basedDistinctionofProvides/RequiresInterfaceLanguageInterfaceLevelsSyntaxSemanticBehaviourDistinctivefeaturesInteractionInteraction

StylesCommunication

TypeSynchronousAsynchronousBindingtypeExogenous/EndogenousHierarchicalExtrafunctionalpropertiesManagementEndogenousCollaborativeEndogenousSystemwideExogenousCollaborativeExogenousSystemwideSpecificationCompositionandanalysissupportDomainsGenerativeGeneralpurposeSpecialised08-Sep-2443IllustrationoftheClassificationFrameworkuseSurveyof20componentmodelsSelectionofdocumentationforeachcomponentmodelSatisfiescriteriaDisponibilitythedefinition(Interfaces,composition)Somepointsinthetablehavebeensubjectourinterpretation.08-Sep-2444ChosencomponentmodelsAUTOSARBIPCOMDESCommonComponentArchitecture(CCA)CompoNETSCORBAComponentModel(CCM)TheEntrepriseJavaBeans(EJBFractalTheK-ComponentModelKobrAKoalaPINMicrosoftComponentObjectModel(COM)OpenCOMTheOpenServicesGatewayInitiative(OSGi)PalladioPinRobocopRubusSaveCCM08-Sep-2445Lifecycletable

Component

ModelsModellingImplementationPackagingDeploymentAUTOSARN/ACNon-formalspecificationofcontainerAtcompilationBIPA3-layeredrepresentation:behavior,interaction,andpriorityBIPLanguageN/AAtcompilationBlueArXN/ACN/AAtcompilationCCMN/ALanguageindependentDeploymentUnitarchive(JARs,DLLs)Atrun-timeCOMDESIIADL-likelanguageCN/AAtcompilationCompoNETSBehavourmodeling(PetriNets)LanguageindependentDeploymentUnitarchive(JARs,DLLs)Atrun-timeEJBN/AJavaEJB-JarfilesAtrun-timeFractalADL-likelanguage

(FractalADL,FractalIDL),

Annotations(Fractlet)Java(inJulia,Aokell)C/C++(inThink).Netlang.(inFracNet)FilesystembasedrepositoryAtrun-timeKOALAADL-likelanguages(IDL,CDLandDDL)CFilesystembasedrepositoryAtcompilationKobrAUMLProfileLanguageindependentN/AN/AIEC61131FunctionBlockDiagram(FBD)LadderDiagram(LD)SequentialFunctionChart(SFC)StructuredText(ST)InstructionList(IL)N/AAtcompilationIEC61499FunctionBlockDiagram(FBD)LanguageindependentN/AAtcompilationJavaBeansN/AJavaJarpackagesAtcompilationMSCOMN/AOOlanguagesDLLAtcompilationandatrun-timeOpenCOMN/AOOlanguagesDLLAtrun-timeOSGiN/AJavaJar-files(bundles)Atrun-timeandatcompilationPalladioUMLprofileJavaN/AAtrun-timePECOSADL-likelanguage(CoCo)C++andJavaJarpackagesorDLLAtcompilationPinADL-likelanguage(CCL)CDLLAtcompilationProComADL-likelanguage,timedautomataCFilesystembasedrepositoryAtcompilationROBOCOPADL-likelanguage,resourcemanagementmodelCandC++StructuresinzipfilesAtcompilationandatrun-timeRUBUSRubusDesignLanguageCFilesystembasedrepositoryAtcompilationSaveCCMADL-like(SaveComp),timedautomataCFilesystembasedrepositoryAtcompilationSOFA2.0Meta-modelbasedspecificationlanguageJavaRepositoryAtrun-time08-Sep-2446Lifecycletable

ComponentModelsModellingImplementationPackagingDeploymentAUTOSARN/ACN/AAtcompilationBIPA3-layeredrepresentation:behavior,interactionandprioritySourcecode,implementationinBIPlanguageN/AAtcompilationCCMAbstractmodel:OMG-IDL,Programmingmodel:CIDLLanguageindependent.DeploymentUnitarchive(JARs,DLLs)Atrun-timeFractalADL-likelanguage

(FractalADL,FractalIDL),

Annotations(Fractlet)Julia,Aokell(Java)Think(C/C++)FracNet(.Net)FilesystembasedrepositoryAtrun-timeKOALAADL-likelanguages(IDL,CDLandDDL)CFilesystembasedrepositoryAtcompilationEJBN/AJavabinarycodeEJB-JarfilesAtrun-time08-Sep-2447Constructstable-InterfaceComponent

ModelsInterfacetypeDistinctionof

Provides/RequiresDistinctivefeaturesInterface

LanguageInterfaceLevels(Syntactic,

Semantic,

Behaviour)AUTOSAROperation-based

Port-basedYesAUTOSARInterface*CheaderfilesSyntacticBIPPort-basedNoCompleteinterfaces,IncompleteinterfacesBIPLanguageSyntacticSemanticBehaviourBlueArXPort-basedYesN/ACSyntacticCCMOperation-based

Port-basedYesFacetsandreceptaclesEventsinksandeventsourcesCORBAIDL,CIDLSyntacticCOMDESIIPort-basedYesN/ACheaderfilesStatechartsdiagramsSyntacticBehaviourCompoNETSOperation-based

Port-basedYesFacetsandreceptaclesEventsinksandeventsourcesCORBAIDL,CIDL,

PetrinetsSyntacticBehaviourEJBOperation-basedNoN/AJavaProgrammingLanguage+AnnotationsSyntacticFractalOperation-basedYesComponentInterface,ControlInterfaceIDL,FractalADL,orJavaorC,BehaviouralProtocolSyntacticBehaviourKOALAOperation-basedYesDiversityInterface,OptionalInterfaceIDL,CDLSyntactic08-Sep-2448Constructstable-interactionCOMPONENT

MODELSINTERACTIONSTYLESCOMMUNICATIONTYPEBINDINGTYPEEXOGENOUSHIERARCHICALAUTOSARRequestresponse,MessagespassingSynchronous,AsynchronousNoDelegationBIPTriggeringRendez-vous,BroadcastSynchronous,AsynchronousNoDelegationBlueArXPipe&filterSynchronousNoDelegationCCMRequestresponse,TriggeringSynchronous,AsynchronousNoNoCOMDESIIPipe&filterSynchronousNoNoCompoNETSRequestresponseSynchronous,AsynchronousNoNoEJBRequestresponseSynchronous,AsynchronousNoNoFractalMultipleinteractionstyles

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論