軟件系統(tǒng)設(shè)計與體系結(jié)構(gòu):Ch3 Understanding Software Architecture_第1頁
軟件系統(tǒng)設(shè)計與體系結(jié)構(gòu):Ch3 Understanding Software Architecture_第2頁
軟件系統(tǒng)設(shè)計與體系結(jié)構(gòu):Ch3 Understanding Software Architecture_第3頁
軟件系統(tǒng)設(shè)計與體系結(jié)構(gòu):Ch3 Understanding Software Architecture_第4頁
軟件系統(tǒng)設(shè)計與體系結(jié)構(gòu):Ch3 Understanding Software Architecture_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論