版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 屋里尖尖角課件
- 西京學(xué)院《影視鑒賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《數(shù)據(jù)采集與預(yù)處理》2022-2023學(xué)年期末試卷
- 孝親敬老,從我做起
- 西京學(xué)院《機器學(xué)習(xí)》2023-2024學(xué)年期末試卷
- 2024-2025學(xué)年高二物理舉一反三系列1.4質(zhì)譜儀和回旋加速器((含答案))
- 爆米花課件背景
- Module 4單元備課(說課稿)-2024-2025學(xué)年外研版(一起)英語三年級上冊
- 西昌學(xué)院《土地評價學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 天然氣凈化高級單選題復(fù)習(xí)試題有答案
- 大學(xué)生職業(yè)生涯規(guī)劃成品
- (高清版)DB42T 2179-2024 裝配式建筑評價標準
- DL∕T 796-2012 風(fēng)力發(fā)電場安全規(guī)程
- 2024廣西繼續(xù)教育公需科目(高質(zhì)量共建“一帶一路”)
- 2024年國家公務(wù)員考試行測真題完整版
- MOOC 數(shù)學(xué)文化十講-南開大學(xué) 中國大學(xué)慕課答案
- 寫作與溝通智慧樹知到課后章節(jié)答案2023年下杭州師范大學(xué)
- 漢語拼音字母表默寫表
- 森林施工組織設(shè)計(完整版)
- 304不銹鋼冷軋剝片缺陷分析及控制
- 立體停車庫詳解
評論
0/150
提交評論