




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rè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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備投資計(jì)劃
- 建筑規(guī)劃保安工作計(jì)劃
- 航空領(lǐng)域保安工作的創(chuàng)新計(jì)劃
- 會(huì)計(jì)信息與決策的關(guān)系探討計(jì)劃
- 2025年媒體經(jīng)營項(xiàng)目建議書
- 2025年中國夜游經(jīng)濟(jì)行業(yè)供需態(tài)勢(shì)、競(jìng)爭(zhēng)格局及投資前景分析報(bào)告(智研咨詢)
- 2025年超硬材料項(xiàng)目合作計(jì)劃書
- 2025年特種大型鋁合金型材項(xiàng)目發(fā)展計(jì)劃
- 構(gòu)建直觀易用的用戶操作面板
- 2025年子宮收縮藥項(xiàng)目發(fā)展計(jì)劃
- 《發(fā)展?jié)h語(第二版)中級(jí)綜合(Ⅰ)》第11課+課件
- 醫(yī)師簽名(簽章)留樣備案表
- 0~6歲兒童眼保健和視力檢查標(biāo)準(zhǔn)技術(shù)操作
- 新會(huì)中集:集裝箱ISO尺寸要求
- 項(xiàng)目7選購機(jī)箱和atx電源學(xué)習(xí)資料
- 實(shí)施鄉(xiāng)村振興戰(zhàn)略要求鞏固和完善農(nóng)村基本經(jīng)營制度
- 護(hù)士長護(hù)理管理質(zhì)量評(píng)價(jià)表
- ISO45001職業(yè)健康安全管理體系培訓(xùn)
- 骨科檢查法檢查要點(diǎn)
- 漢語言文學(xué)論文6000字
- 電子商務(wù)概論-課件
評(píng)論
0/150
提交評(píng)論