版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1Chapter9ArchitecturalDesignSoftwareEngineering:APractitioner’sApproach,7/e
byRogerS.Pressman1Chapter9ArchitecturalDesign2WhyArchitecture?Thearchitectureisnottheoperationalsoftware.Rather,itisarepresentationthatenablesasoftwareengineerto:(1)analyzetheeffectivenessofthedesigninmeetingitsstatedrequirements,(2)reducetherisksassociatedwiththeconstructionofthesoftware.(3)representations
ofsoftwarearchitectureareanenablerforcommunicationbetweenallparties(stakeholders)interestedinthedevelopmentofacomputer-basedsystem.(4)thearchitecturehighlightsearlydesigndecisionsthatwillhaveanimpactonallsoftwareengineering.2WhyArchitecture?Thearchitec3WhatIsArchitecture?Thesoftwarearchitectureofaprogramorsystemisthestructureofthesystem,whichcomprisesoftwarecomponents,theexternalvisiblepropertiesofthosecomponents,andtherelationshipsamongthem.3WhatIsArchitecture?Thesoft4ArchitecturalDescriptionsTheIEEEComputerSocietyhasproposedIEEE-Std-1471-2000,RecommendedPracticeforArchitecturalDescriptionofSoftware-IntensiveSystem,[IEE00]toestablishaconceptualframeworkandvocabularyforuseduringthedesignofsoftwarearchitecture,toprovidedetailedguidelinesforrepresentinganarchitecturaldescriptionTheIEEEStandarddefinesanarchitecturaldescription(AD)asa“acollectionofproductstodocumentanarchitecture.”4ArchitecturalDescriptionsThe5ArchitecturalStylesData-centeredarchitecturesDataflowarchitecturesCallandreturnarchitecturesObject-orientedarchitecturesLayeredarchitectures5ArchitecturalStylesData-cent6Data-CenteredArchitecture6Data-CenteredArchitecture7DataFlowArchitecture7DataFlowArchitecture8CallandReturnArchitecture8CallandReturnArchitecture9LayeredArchitecture9LayeredArchitecture10ArchitecturalDescriptions-Example分层技术架构10ArchitecturalDescriptions-E11ArchitecturalDescriptions-Example平台功能架构11ArchitecturalDescriptions-E12ArchitecturalDesignThesoftwaremustbeplacedintocontext(环境)thedesignshoulddefinetheexternalentities(othersystems,devices,people)thatthesoftwareinteractswithandthenatureoftheinteractionAsetofarchitecturalarchetypes(原型)shouldbeidentifiedAn
archetypeisanabstraction(similartoaclass)thatrepresentsoneelementofsystembehaviorThedesignerspecifiesthestructureofthesystembydefiningandrefining(精炼)softwarecomponentsthatimplementeacharchetype12ArchitecturalDesignThesoft13ArchitecturalContext13ArchitecturalContext14DefineArchetype14DefineArchetype15ComponentStructure15ComponentStructure16RefinedComponentStructure16RefinedComponentStructure17ADLArchitecturaldescriptionlanguage(ADL)providesasemanticsandsyntaxfordescribingasoftwarearchitectureProvidethedesignerwiththeabilityto:decomposearchitecturalcomponentscomposeindividualcomponentsintolargerarchitecturalblocksandrepresentinterfaces(connectionmechanisms)betweencomponents.17ADLArchitecturaldescription18AnArchitecturalDesignMethod表示层业务逻辑层数据存储层客户管理模块表示层业务逻辑层数据存储层订单管理模块表示层业务逻辑层数据存储层库存管理模块1、垂直方向——功能分解——块2、水平方向——服务分层——层18AnArchitecturalDesignMeth19AnArchitecturalDesignMethod19AnArchitecturalDesignMeth20AnArchitecturalDesignMethod“fourbedrooms,threebaths,…”customerrequirementsarchitecturaldesign20AnArchitecturalDesignMeth21DerivingProgramArchitectureProgramArchitecture21DerivingProgramArchitectur22PartitioningtheArchitecture“horizontal”and“vertical”partitioningarerequired22PartitioningtheArchitectur23Vertical(垂直)Partitioningdefineseparatebranchesofthemodulehierarchyforeachmajorfunctionusecontrolmodulestocoordinatecommunicationbetweenfunctionsfunction1function3function223Vertical(垂直)Partitioningdef24Horizontal(水平)Partitioningdesignsothatdecisionmakingandworkarestratified(分层)decisionmakingmodulesshouldresideatthetopofthearchitectureworkersdecision-makers24Horizontal(水平)Partitioningd25WhyPartitionedArchitecture?resultsinsoftwarethatiseasiertotestleadstosoftwarethatiseasiertomaintainresultsinpropagation(传播)offewersideeffectsresultsinsoftwarethatiseasiertoextend25WhyPartitionedArchitecture26StructuredDesignobjective:toderiveaprogramarchitectureapproach:
aDFDismappedintoaprogramarchitecturethePSPECandSTDareusedtoindicatethecontentofeachmodulenotation:structurechart26StructuredDesignobjective:27FlowCharacteristicsTransformflow(变换中心)TransactionFlow(事务中心)ThiseditionofSEPAdoesnotcovertransactionmapping.ForadetaileddiscussionseetheSEPAwebsite27FlowCharacteristicsTransfor28GeneralMappingApproachisolateincomingandoutgoingflowboundaries;fortransform/transactionflows,isolatethetransform/transactioncenterworkingfromtheboundaryoutward,mapDFDtransform/transformsintocorrespondingmodulesaddcontrolmodulesasrequiredrefinetheresultantprogramstructureusingeffectivemodularityconcepts28GeneralMappingApproachisol29GeneralMappingApproachIsolatethetransform/transformcenterbyspecifyingincomingandoutgoingflowboundariesPerform"first-levelfactoring.”Theprogramarchitecturederivedusingthismappingresultsinatop-downdistributionofcontrol.Factoringleadstoaprogramstructureinwhichtop-levelcomponentsperformdecision-makingandlow-levelcomponentsperformmostinput,computation,andoutputwork.Middle-levelcomponentsperformsomecontrolanddomoderateamountsofwork.Perform"second-levelfactoring."29GeneralMappingApproachIsol30FirstLevelFactoring(变换中心)mainprogramcontrollerinputcontrollerprocessingcontrolleroutputcontroller30FirstLevelFactoring(变换中心)m31Factoring31Factoring32TransformMapping32TransformMapping33SecondLevelMapping33SecondLevelMappingFirstLevelFactoring-事务中心Transactionflow主模块输入模块控制模块变换3变换2变换1FirstLevelFactoring-事务中心Tran35Factoring监控传感器35Factoring监控传感器36FirstLevelFactoring36FirstLevelFactoring37SecondLevelMapping37SecondLevelMapping38RefiningtheArchitecturalDesign38RefiningtheArchitecturalD2022/12/2539结构图SC知识小结SC的组成符号矩形:表示模块带箭头的连线:表示模块间的调用关系SC允许的6种模块
(下图未画源模块和漏模块):传入、传出、加工、控制、源、漏2022/12/2039结构图SC知识小结SC的组成符号2022/12/2540结构图的6种模块传入模块:从下属模块取得数据,经过某些处理,再将其传送给上级模块。传出模块:从上级模块获得数据,进行某些处理,再将其传送给下属模块。源模块:不调用其他模块的传入模块,用于始端;漏模块:不调用其他模块的传出模块,用于传出部分的末端;
变换模块(即加工模块):它从上级模块取得数据,进行特定处理,再传送回上级模块。控制模块:对所有下属模块进行协调和管理。在系统的输入/输出部分或数据加工部分可以找到这样的模块。2022/12/2040结构图的6种模块传入模块:从下属模块2022/12/2541结构图的三种调用表示
简单调用选择调用和循环调用2022/12/2041结构图的三种调用表示简单调用选择调2022/12/2542从DFD到SC映射的3个步骤
鉴别DFD的结构特征,确定它是变换中心还是事务中心。按照SD的规则把DFD转换为初始的SC图。按优化指导原则改进初始SC,获得最终SC。2022/12/2042从DFD到SC映射的3个步骤鉴别D2022/12/2543变换映射步骤1:划分变换边界区分输入流、输出流和变换中心部分。不同设计人员可能选择不同的流边界,导致不同的结构图。2022/12/2043变换映射步骤1:划分变换边界区分输入2022/12/2544变换映射步骤2:建立初始SC设计顶层和第一层模块。第一层模块与主模块之间传送的数据应与数据流图相对应。
2022/12/2044变换映射步骤2:建立初始SC设计顶层2022/12/2545变换映射步骤3:分解结构图输入模块:向它的上级模块提供数据,因而它必须有两个下属模块:一个接收数据;另一个把这些数据变换成它的上级模块所需的数据。输出模块:从调用它的上级模块接收数据,用以输出,因而也应当有两个下属模块:一个将上级模块提供的数据变换成输出的形式;另一个将它们输出。中心变换模块:其下层模块没有通用的设计方法,一般应参照数据流图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。2022/12/2045变换映射步骤3:分解结构图输入模块:2022/12/2546变换映射图例2022/12/2046变换映射图例2022/12/2547变换映射图例2022/12/2047变换映射图例2022/12/2548事务映射步骤1:确定事务中心在DFD上划分3个部分(事务中心、接受部分、发送部分)
2022/12/2048事务映射步骤1:确定事务中心在DF2022/12/2549事务映射步骤2:画出结构图框架事务流映射到包含一个输入分支和一个分类事务处理分支结构(包含调度模块和所控制下属模块。2022/12/2049事务映射步骤2:画出结构图框架事务流2022/12/2550事务映射步骤3:分解动作分支分解和细化事务结构和每条操作路径的结构。每条操作路径的数据流图有它自己的信息流特征,可以是变换流也可以是事务流。与每条操作路径相关的子结构可以依照前面介绍的设计步骤进行设计。2022/12/2050事务映射步骤3:分解动作分支分解和细2022/12/2551结构化设计优化原则
由变换得到的初始结构图需要进一步细化和改进。优化原则如下:规则1:高模块独立性的原则:通过模块分割、合并和修改调用关系,提高内聚、降低耦合、简化接口。2022/12/2051结构化设计优化原则由变换得2022/12/2552原则2:高扇入/低扇出的原则扇入:调用一个给定模块的模块个数。扇出:一个模块直接调用的模块个数。
扇入高则上级模块多,能增加模块的利用率;扇出低意味着需要控制和协调下属模块少,可减少模块调用和控制的复杂程度。2022/12/2052原则2:高扇入/低扇出的原则扇入:调2022/12/2553原则3:深而窄结构的原则2022/12/2053原则3:深而窄结构的原则2022/12/2554原则4:瓮型结构原则
好的软件系统具有两头小、中间大的结构。
2022/12/2054原则4:瓮型结构原则好的软件系2022/12/2555SD实例:教材购销系统
销售子系统DFD2022/12/2055SD实例:教材购销系统销售子系统D2022/12/2556教材购销系统例子(续)采购子系统的DFD2022/12/2056教材购销系统例子(续)采购子系统的D2022/12/2557教材购销系统例子(续)1、鉴别DFD的类型图5.27的2个加工(1.1和1.6)是传入,2个(1.3和1.7)是传出,该图整体上属于事务型结构,但它的两个分支都具有变换型图结构。5.28也是具有两个动作分支的事务型结构。2022/12/2057教材购销系统例子(续)1、鉴别DFD2022/12/2558教材购销系统例子(续)2、画出结构图的框架(只画到事务层)2022/12/2058教材购销系统例子(续)2、画出结构图2022/12/2559教材购销系统例子(续)3、分解动作分支,补充动作层和细节层2022/12/2059教材购销系统例子(续)3、分解动作分2022/12/2560教材购销系统例子(续)2022/12/2060教材购销系统例子(续)2022/12/2561教材购销系统例子(续)4、改进结构图,获得最终结构图:改进系统的上层框架(合并了两个事务层)2022/12/2061教材购销系统例子(续)4、改进结构图2022/12/2562教材购销系统例子(续)改进“获得购/售书单”分支(细化有效性审查)2022/12/2062教材购销系统例子(续)改进“获得购/2022/12/2563教材购销系统例子(续)合并子图2022/12/2063教材购销系统例子(续)合并子图64Chapter9ArchitecturalDesignSoftwareEngineering:APractitioner’sApproach,7/e
byRogerS.Pressman1Chapter9ArchitecturalDesign65WhyArchitecture?Thearchitectureisnottheoperationalsoftware.Rather,itisarepresentationthatenablesasoftwareengineerto:(1)analyzetheeffectivenessofthedesigninmeetingitsstatedrequirements,(2)reducetherisksassociatedwiththeconstructionofthesoftware.(3)representations
ofsoftwarearchitectureareanenablerforcommunicationbetweenallparties(stakeholders)interestedinthedevelopmentofacomputer-basedsystem.(4)thearchitecturehighlightsearlydesigndecisionsthatwillhaveanimpactonallsoftwareengineering.2WhyArchitecture?Thearchitec66WhatIsArchitecture?Thesoftwarearchitectureofaprogramorsystemisthestructureofthesystem,whichcomprisesoftwarecomponents,theexternalvisiblepropertiesofthosecomponents,andtherelationshipsamongthem.3WhatIsArchitecture?Thesoft67ArchitecturalDescriptionsTheIEEEComputerSocietyhasproposedIEEE-Std-1471-2000,RecommendedPracticeforArchitecturalDescriptionofSoftware-IntensiveSystem,[IEE00]toestablishaconceptualframeworkandvocabularyforuseduringthedesignofsoftwarearchitecture,toprovidedetailedguidelinesforrepresentinganarchitecturaldescriptionTheIEEEStandarddefinesanarchitecturaldescription(AD)asa“acollectionofproductstodocumentanarchitecture.”4ArchitecturalDescriptionsThe68ArchitecturalStylesData-centeredarchitecturesDataflowarchitecturesCallandreturnarchitecturesObject-orientedarchitecturesLayeredarchitectures5ArchitecturalStylesData-cent69Data-CenteredArchitecture6Data-CenteredArchitecture70DataFlowArchitecture7DataFlowArchitecture71CallandReturnArchitecture8CallandReturnArchitecture72LayeredArchitecture9LayeredArchitecture73ArchitecturalDescriptions-Example分层技术架构10ArchitecturalDescriptions-E74ArchitecturalDescriptions-Example平台功能架构11ArchitecturalDescriptions-E75ArchitecturalDesignThesoftwaremustbeplacedintocontext(环境)thedesignshoulddefinetheexternalentities(othersystems,devices,people)thatthesoftwareinteractswithandthenatureoftheinteractionAsetofarchitecturalarchetypes(原型)shouldbeidentifiedAn
archetypeisanabstraction(similartoaclass)thatrepresentsoneelementofsystembehaviorThedesignerspecifiesthestructureofthesystembydefiningandrefining(精炼)softwarecomponentsthatimplementeacharchetype12ArchitecturalDesignThesoft76ArchitecturalContext13ArchitecturalContext77DefineArchetype14DefineArchetype78ComponentStructure15ComponentStructure79RefinedComponentStructure16RefinedComponentStructure80ADLArchitecturaldescriptionlanguage(ADL)providesasemanticsandsyntaxfordescribingasoftwarearchitectureProvidethedesignerwiththeabilityto:decomposearchitecturalcomponentscomposeindividualcomponentsintolargerarchitecturalblocksandrepresentinterfaces(connectionmechanisms)betweencomponents.17ADLArchitecturaldescription81AnArchitecturalDesignMethod表示层业务逻辑层数据存储层客户管理模块表示层业务逻辑层数据存储层订单管理模块表示层业务逻辑层数据存储层库存管理模块1、垂直方向——功能分解——块2、水平方向——服务分层——层18AnArchitecturalDesignMeth82AnArchitecturalDesignMethod19AnArchitecturalDesignMeth83AnArchitecturalDesignMethod“fourbedrooms,threebaths,…”customerrequirementsarchitecturaldesign20AnArchitecturalDesignMeth84DerivingProgramArchitectureProgramArchitecture21DerivingProgramArchitectur85PartitioningtheArchitecture“horizontal”and“vertical”partitioningarerequired22PartitioningtheArchitectur86Vertical(垂直)Partitioningdefineseparatebranchesofthemodulehierarchyforeachmajorfunctionusecontrolmodulestocoordinatecommunicationbetweenfunctionsfunction1function3function223Vertical(垂直)Partitioningdef87Horizontal(水平)Partitioningdesignsothatdecisionmakingandworkarestratified(分层)decisionmakingmodulesshouldresideatthetopofthearchitectureworkersdecision-makers24Horizontal(水平)Partitioningd88WhyPartitionedArchitecture?resultsinsoftwarethatiseasiertotestleadstosoftwarethatiseasiertomaintainresultsinpropagation(传播)offewersideeffectsresultsinsoftwarethatiseasiertoextend25WhyPartitionedArchitecture89StructuredDesignobjective:toderiveaprogramarchitectureapproach:
aDFDismappedintoaprogramarchitecturethePSPECandSTDareusedtoindicatethecontentofeachmodulenotation:structurechart26StructuredDesignobjective:90FlowCharacteristicsTransformflow(变换中心)TransactionFlow(事务中心)ThiseditionofSEPAdoesnotcovertransactionmapping.ForadetaileddiscussionseetheSEPAwebsite27FlowCharacteristicsTransfor91GeneralMappingApproachisolateincomingandoutgoingflowboundaries;fortransform/transactionflows,isolatethetransform/transactioncenterworkingfromtheboundaryoutward,mapDFDtransform/transformsintocorrespondingmodulesaddcontrolmodulesasrequiredrefinetheresultantprogramstructureusingeffectivemodularityconcepts28GeneralMappingApproachisol92GeneralMappingApproachIsolatethetransform/transformcenterbyspecifyingincomingandoutgoingflowboundariesPerform"first-levelfactoring.”Theprogramarchitecturederivedusingthismappingresultsinatop-downdistributionofcontrol.Factoringleadstoaprogramstructureinwhichtop-levelcomponentsperformdecision-makingandlow-levelcomponentsperformmostinput,computation,andoutputwork.Middle-levelcomponentsperformsomecontrolanddomoderateamountsofwork.Perform"second-levelfactoring."29GeneralMappingApproachIsol93FirstLevelFactoring(变换中心)mainprogramcontrollerinputcontrollerprocessingcontrolleroutputcontroller30FirstLevelFactoring(变换中心)m94Factoring31Factoring95TransformMapping32TransformMapping96SecondLevelMapping33SecondLevelMappingFirstLevelFactoring-事务中心Transactionflow主模块输入模块控制模块变换3变换2变换1FirstLevelFactoring-事务中心Tran98Factoring监控传感器35Factoring监控传感器99FirstLevelFactoring36FirstLevelFactoring100SecondLevelMapping37SecondLevelMapping101RefiningtheArchitecturalDesign38RefiningtheArchitecturalD2022/12/25102结构图SC知识小结SC的组成符号矩形:表示模块带箭头的连线:表示模块间的调用关系SC允许的6种模块
(下图未画源模块和漏模块):传入、传出、加工、控制、源、漏2022/12/2039结构图SC知识小结SC的组成符号2022/12/25103结构图的6种模块传入模块:从下属模块取得数据,经过某些处理,再将其传送给上级模块。传出模块:从上级模块获得数据,进行某些处理,再将其传送给下属模块。源模块:不调用其他模块的传入模块,用于始端;漏模块:不调用其他模块的传出模块,用于传出部分的末端;
变换模块(即加工模块):它从上级模块取得数据,进行特定处理,再传送回上级模块。控制模块:对所有下属模块进行协调和管理。在系统的输入/输出部分或数据加工部分可以找到这样的模块。2022/12/2040结构图的6种模块传入模块:从下属模块2022/12/25104结构图的三种调用表示
简单调用选择调用和循环调用2022/12/2041结构图的三种调用表示简单调用选择调2022/12/25105从DFD到SC映射的3个步骤
鉴别DFD的结构特征,确定它是变换中心还是事务中心。按照SD的规则把DFD转换为初始的SC图。按优化指导原则改进初始SC,获得最终SC。2022/12/2042从DFD到SC映射的3个步骤鉴别D2022/12/25106变换映射步骤1:划分变换边界区分输入流、输出流和变换中心部分。不同设计人员可能选择不同的流边界,导致不同的结构图。2022/12/2043变换映射步骤1:划分变换边界区分输入2022/12/25107变换映射步骤2:建立初始SC设计顶层和第一层模块。第一层模块与主模块之间传送的数据应与数据流图相对应。
2022/12/2044变换映射步骤2:建立初始SC设计顶层2022/12/25108变换映射步骤3:分解结构图输入模块:向它的上级模块提供数据,因而它必须有两个下属模块:一个接收数据;另一个把这些数据变换成它的上级模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 与个人签订采购合同范例
- 餐饮家具卸货合同范例
- 合伙经营物流合同模板
- 软件对接合同范例
- 2024年度企业咨询服务合同及商业机密保护协议2篇
- 小区园林拆除合同模板
- 电力土建施工合同范例
- 2024年房地产开发商与建筑设计院合作合同
- 青浦专业叉车租赁合同范例
- 2024年度幼儿舞蹈表演活动策划合同3篇
- 【MOOC】大学摄影-河南理工大学 中国大学慕课MOOC答案
- 执纪审查业务专题培训
- 信息安全意识培训课件
- Python试题库(附参考答案)
- 道法第二单元 成长的时空 单元测试 2024-2025学年统编版道德与法治七年级上册
- MOOC 理解马克思-南京大学 中国大学慕课答案
- 海洋的前世今生智慧树知到期末考试答案2024年
- 医疗废物处置流程图
- 烟草专卖食堂燃气泄露及火灾事故现场应急处置方案
- 沃尔玛采购部常用英文专业术语(英译汉)
- (完整版)CMMI3级--EPG的问题及答案
评论
0/150
提交评论