版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Ch3 Understanding Software ArchitectureSoftware System Design and Architecture閱讀資料理解軟件體系結(jié)構(gòu)Main ContentsMotivation of Software ArchitectureUnderstanding Software architecture: High-Level StructuresUnderstanding Software architecture: Communication (Concerns)Understanding Software Architecture: Design
2、 DecisionsArchitectMotivation of Software ArchitectureAnalogy: Architecture of BuildingsDewayne E. Perry, Alexander L. Wolf, 1992 Foundations for the study of software architectureProgramming-in-the-Small VS Programming-in-the-LargeMar Shaw, 1993Procedure Calls are the Assembly Language of Software
3、Interconnections: Connectors Deserve First-Class StatusAnalogy: Architecture of BuildingsArchitecture is different from, but linked with the product/structureFrom detail-design to program are all implementation(product structure), not architectureAllocation of software entities, not plan of responsi
4、bilities assignmentProperties of structures are induced by the design of the architectureThe architect has a distinctive role and character5Building Architecturemultiple views;architectural styles;style and engineering; style and materials.Programming-in-the-Small VSProgramming-in-the-Large詳細設(shè)計的局限性:
5、使用Module和(單詞匹配的)導(dǎo)入/導(dǎo)出關(guān)系關(guān)注點偏差(載體失配)無法實現(xiàn)交互信息本地化(信息隱藏局限性)無法有效抽象部件的整體特性(無法描述Module Itself)接口的定義缺乏結(jié)構(gòu)性不能有效適應(yīng)大型軟件的特殊開發(fā)方法What is a software architecture?Perry and Wolf:Foundations for the study of software architectureSoftware Architecture = Elements, Form, Rationale what how whyElements= Process + Data + C
6、onnection (glue)Form= Property + Relationship Property: Constraints on an element Relationship: Constraints on an interaction of elementsRational: captures the motivation for the choice of architectural style, the choice of elements, and the form.What is a software architecture?M. Shaw, etc. 1995,Ab
7、stractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering,.Software Architecture = Component + connector+ configuration Programming-in-the-LargeHigh-Level StructuresHiding Programming Mechanisms (Import/Export, and words matching)Module Itself with Qua
8、lity Property ComponentInteractions of Component ConnectorStructuralNone (Programming Mechanisms) implementation ConsiderationsIndependent to componentHigh-Level StructuresAbstract specification VS ImplementationFunctional organizations VS implemented mechanisms to softwareMain ContentsAn Introducti
9、on to Software ArchitectureUnderstanding Software architecture: High-Level StructuresUnderstanding Software architecture: Communication (Concerns)Understanding Software Architecture: Design DecisionArchitectHigh-Level StructuresComponents are the locus of computation and stateConnectors are the locu
10、s of relations among componentsConnector deserve first-classComponentsElements that encapsulate processing and data in a systems architecture are referred to as software componentsDefinitionA software component is an architectural entity that encapsulates a subset of the systems functionality and/or
11、 datarestricts access to that subset via an explicitly defined interfacehas explicitly defined dependencies on its required execution contextComponents typically provide application-specific services14ComponentsThe interface definesName: the component typeProperty: assertions and constraints that ap
12、ply to the entire componentPort: the players which form the bulk of the interface, are the visible semantic units through which the component can interact, request and provide services, or be influenced by external state or events.Components ImplementationPrimitive ComponentsComposite componentsConf
13、iguration of smaller components and connectors軟件實現(xiàn)機制示例模塊(Module)Routine, SubRoutine層(Layer)View, Logical, Model文件(File)DLL, EXE, DAT數(shù)據(jù)庫(Database)Repository, Center Data進程(Process)Sender, Receiver網(wǎng)絡(luò)節(jié)點(Physical Unit)Client, ServerComponents列舉 ComponentsACMEConnectorsIn complex systems interaction may
14、become more important and challenging than the functionality of the individual componentsDefinitionA software connector is an architectural building block tasked with effecting and regulating interactions among componentsThey mediate interactions but are not “things” to be “hooked up;” rather, they
15、provide the rules for hooking-up. Connectors typically provide application-independent interaction facilities19High-Level StructuresConnectors are properly treated separately from components The definition of a connector should be localizedConnectors may be quite sophisticated.Some information about
16、 the system does not have a proper home in any componentAll elements of a structure are “independent”Components should be independentConnectors should be independentRelations among components are not fixed.CSP!:Input, ?:output : P or Q, Internal choice : P or Q, External choiceConnector implementati
17、onPrimitive connectorsComposite connectorsConfiguration of smaller components and connectors實現(xiàn)類型軟件實現(xiàn)機制提供方隱式(Implicit)程序調(diào)用(Procedure Call)編程語言機制共享變量(Shared variable)消息(Message)平臺、框架或高級語言機制管道(Pipe)事件(Event)遠程過程調(diào)用(RPC)網(wǎng)絡(luò)協(xié)議(NetworkProtocol)數(shù)據(jù)庫訪問協(xié)議(Database Access Protocol)顯式(Explicit)適配器(Adaptor)復(fù)雜邏輯實現(xiàn)委
18、托(Delegator)中介(Intermediate)ConnectorACMEConfigurationsComponents and connectors are composed in a specific way in a given systems architecture to accomplish that systems objectiveDefinitionAn architectural configuration, or topology, is a set of specific associations between the components and conn
19、ectors of a software systems architecture26Architectural StructureconnectorcomponentconfigurationportrolePort, role與詳細設(shè)計的Interface有什么區(qū)別?Configurations ACMEMain ContentsAn Introduction to Software ArchitectureUnderstanding Software architecture: High-Level StructuresUnderstanding Software architectur
20、e: Communication (Concerns)Understanding Software Architecture: Design DecisionArchitectHow to get a software architecture在大型軟件系統(tǒng)的開發(fā)中,質(zhì)量屬性是影響軟件系統(tǒng)復(fù)雜度的關(guān)鍵因素,軟件體系結(jié)構(gòu)是處理質(zhì)量屬性和控制復(fù)雜性的主要手段,質(zhì)量屬性是軟件體系結(jié)構(gòu)最為重要的關(guān)注點。為什么?Concernses of Software ArchitectureQualities of the systemavailability, modifiability, performanc
21、e, security, testability, and usability.Project EnvironmentsDevelopment EnvironmentsBusiness EnvironmentsTechnology EnvironmentsBusiness GoalsQualities of the systemAvailabilityMostly depend on architectural aspects:Design fault tolerance to extend work-timeReplication of key components or channelsD
22、esign a less fault system to extend work-timeSeparation relation concernsDesign a component apt to be modified to shorten repair-timeDesign a component interaction apt to find errors to shorten repair-timeQualities of the system ModifiabilityThe quality attribute most close to architectureLocalize M
23、odificationsAnticipate expected changesPrevent Ripple EffectsHide informationRestrict communication pathsUse an intermediaryDefer Binding TimeConfiguration filesPolymorphismComponent replacementQualities of the system PerformanceThe performance of a systems depends on both architectural and non-arch
24、itecture aspects.Architectural aspects of Performance:Communication between componentsPartially on partitioning of functionalityAllocation of resourcesNon-architectural aspects of Performance:Choice of algorithmsHow these algorithms are codedQualities of the system SecuritySecurity aspects:Resisting
25、 attacksDetecting attacksRecovering from attacksMostly depend on architectural aspectsSet authentication serverMonitor and log network eventBuilding system based on services provided by a authentic kernelQualities of the system TestabilityTestability aspects:Input/Output Internal monitoringMostly de
26、pend on architectural aspectsModularize and encapsulate problemsQualities of the system UsabilityExamples of architectural aspects of usability“Undo” patternFeedback PatternNon-architectural aspects of usability :Should we use radio button or check box?What font?Environments DevelopmentStaff skillsB
27、uildability with fixed staffCostUsing familiar technique to keep low costOutsourcingTime to marketUsing COTS if urgentResourcesBuildability with fixed resourcesIntegration with legacy systemsAnalyze the integrating requirements with the legacy systemsEnvironments BusinessBenefitCreativity with high
28、risk and high benefitProjected lifetime of systemModifiability and portability preferred for long lifetimeTargeted marketMaking PL for large marketRollout scheduleIf a product is to be introduced as base functionality with many features released later, the flexibility and customizability of the arch
29、itecture are importantEnvironmentsTechnologyPlatformsHardware DevicesDevelopments ToolsTechnology models and standardsAn ExampleSoftware architecture of a web-based system?Client 1Web-serverApplication ServerClient 2Client nDBAn ExampleA simple architecture學(xué)生查詢、借書、還書等操作界面查詢、借書、還書等教師圖書管理員圖書及借閱信息An Ex
30、ampleA better architectureBetter?Main ContentsAn Introduction to Software ArchitectureUnderstanding Software architecture: High-Level StructuresUnderstanding Software architecture: Communication (Concerns)Understanding Software Architecture: Design DecisionArchitectWhat is Software Architecture?Anot
31、her Definition recentlyA software systems architecture is the set of principal design decisions about the system“Principal” implies a degree of importance that grants a design decision “architectural status”It implies that not all design decisions are architecturalThat is, they do not necessarily im
32、pact a systems architecture 46design decisionWhy architectural design decisions are important and difficult?Design decisions are cross cutting and intertwined:the design decision information is fragmented across various parts of the design, making it hard to find and change the decisions.Design rule
33、s and constraints are violated:designers can easily violate design rules and constraints arising from previously taken design decisionslead to architectural drift and its associated problemsObsolete design decisions are not removedIn the current design practice removing design decisions is avoided,
34、because of the effort needed, and the unexpected effects this removing can have on the system.The design decisions been lostSolutions surviveBut the design decisions have been lostWhen do additions, subtractions and modifications to the software architecture happen, where is the rational?How to do?An exampleMain ContentsAn Introduction to Software ArchitectureUnderstanding Software architecture:
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題二相互作用實驗二探究彈力和彈簧伸長量的關(guān)系練習(xí)含答案
- 江蘇省2015-2015學(xué)年高中英語 Unit3 Amazing people project教案 牛津譯林版必修2
- 八年級歷史下冊 第12課 欣欣向榮的科教文體事業(yè)教案 北師大版
- 2024年九年級語文上冊 第二單元 第6課《敬業(yè)與樂業(yè)》說課稿 新人教版
- 2024-2025學(xué)年高中語文 第二單元 珠星碧月彩云中 4 詞三首(一)教案 語文版必修3
- 2023四年級數(shù)學(xué)下冊 4 小數(shù)的意義和性質(zhì) 3小數(shù)點移動引起小數(shù)大小的變化第2課時 小數(shù)點移動引起小數(shù)大小變化的規(guī)律(2)配套教案 新人教版
- 二年級語文上冊 課文3 9 黃山奇石教案 新人教版
- 2024-2025學(xué)年新教材高中歷史 第八單元 中華民族的抗日戰(zhàn)爭和人民解放戰(zhàn)爭 第24課 全民族浴血奮戰(zhàn)與抗日戰(zhàn)爭的勝利教案3 新人教版必修《中外歷史綱要(上)》
- 變壓器報停委托書
- 租房電器超過使用年限合同(2篇)
- 股票分析師職業(yè)規(guī)劃
- 2024年公務(wù)員考試江蘇省蘇州市吳江市《行政職業(yè)能力測驗》高分沖刺試卷含解析
- 班主任的煩惱如何應(yīng)對學(xué)生問題與家長關(guān)注的挑戰(zhàn)
- 南京市2023-2024學(xué)年八年級上學(xué)期期末道德與法治試卷(含答案解析)
- 半導(dǎo)體ECP工藝特點
- 幼兒園食品安全專題部署會
- 第3課《生命的奇跡》課件
- XXX-工廠制造業(yè)績效考核方案(內(nèi)含崗位職責(zé)及KPI指標(biāo))
- 2024高考語文復(fù)習(xí) 文言文閱讀 《史記》 專題練習(xí)( 解析)
- 2024年廣西玉柴機器集團有限公司招聘筆試參考題庫含答案解析
- 人類社會面臨的物種滅絕與生物多樣性保護
評論
0/150
提交評論