《软件工程-实践者的研究方法》chapter-07-cn-设计概念_第1页
《软件工程-实践者的研究方法》chapter-07-cn-设计概念_第2页
《软件工程-实践者的研究方法》chapter-07-cn-设计概念_第3页
《软件工程-实践者的研究方法》chapter-07-cn-设计概念_第4页
《软件工程-实践者的研究方法》chapter-07-cn-设计概念_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章设计概念SlideSettoaccompany

SoftwareEngineering:APractitioner’sApproach,7/e

byRogerS.PressmanSlidescopyright©1996,2001,2005,2009

byRogerS.PressmanFornon-profiteducationaluseonlyMaybereproducedONLYforstudentuseattheuniversitylevelwhenusedinconjunctionwithSoftwareEngineering:APractitioner'sApproach,7/e.Anyotherreproductionoruseisprohibitedwithouttheexpresswrittenpermissionoftheauthor.AllcopyrightinformationMUSTappeariftheseslidesarepostedonawebsiteforstudentuse.1编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005分析模型->设计模型2编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005设计与质量设计必须实现所有包含在分析模型中的明确需求,并且必须满足客户期望的所有隐含需求。对于那些生成代码的人和那些进行测试以及随后维护的人而言,设计必须是可读的,可理解的指南。设计必须提供软件的全貌,以实现的角度说明数据域、功能域和行为域。3编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005质量指导原则设计应展示出这样一种结构:(a)已经使用可识别的体系结构风格或模式创建。(b)由展示出良好设计特征的构件构成(c)能够以一种演化的方式实现设计应该模块化,也就是说,软件应该按照逻辑划分为元素或子系统设计应该包含数据、体系结构、接口和构件的清楚的表示设计应该导出数据结构,这些数据结构适用于要实现的类,并从可识别的数据模式提取设计应该导出显示独立功能特征的构件设计应该能导出接口设计的导出应根据软件需求分析过程中获取的信息,采用可重复的方法进行应使用能够有效传达其意义的方法来表达设计。4编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005通用设计任务集——设计过程做什么?Page131(TaskSet)5编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005基本概念抽象——数据、过程、控制体系结构——软件的整体结构模式——传递了一个业已验证的设计解决方案的“精髓”模块化——封装了数据和功能隐藏——可控制的接口功能独立——专一功能以及低耦合重构——是一种简化设计的重组织技巧,不改变代码外部行为而改进其内部结构,6编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005数据抽象doorimplementedasadatastructuremanufacturermodelnumbertypeswingdirectioninsertslights

type

numberweightopeningmechanism7编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005过程抽象openimplementedwitha"knowledge"oftheobjectthatisassociatedwithenterdetailsofenteralgorithm8编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005抽象抽象度减弱抽象度增加资产不动产存款银行账户支票股票证券债券在同等层次的元素,通常应改在同等的抽象级别上编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005体系结构——概念系统由哪些构件构成,以及构件之间构成的方式结构属性.软件架构设计表示了系统的组件(模块、对象以及过滤器),以及这些组件如何打包和交互的。非功能属性

体系结构设计需要表示设计的体系结构是如何满足性能、可靠性、安全性、可适配性以及其他一些系统特征。一组相关系统体系结构设计需要基于可重用的模式,这些模式经常在相关的系统中碰到。核心是,设计必须有重用较小的体系结构构件模块的能力。“软件的整体结构,这个结构用某种方式提供了一个系统在概念上的完整性”[SHA95a]10编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005模式设计模式描述了在某个特定场景与可能影响模式应用和使用方式的“影响力”中解决某个特定的设计问题的设计结构。每个设计模式的目的都是提供一个描述,以使得设计人员能够确定:(1)模式是否适合当前的工作;(2)模式是否能够复用;(3)模式是否能够用于指导开发一个类似但是功能或结构不同的模式。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005关注点分离关注点分离是一个设计概念,它表明任何复杂问题如果被分解为可以独立解决和(或)优化的若干块,该复杂问题能够更容易地被处理。一个关注点是一个特征或行为,被指定为软件需求模型的一部分。通过将关注点分割为更小的关注点,使得解决一个问题需要付出更少的工作量和时间。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005模块化设计13编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005模块化(Modularity)将某些复杂的东西切割成可管理的部件帮助人们理解复杂系统编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005举例:模块化将复杂系统切成小模块的例子计费子系统课程注册系统课程目录系统学生管理系统编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005模块化:Trade-offs对于特定的软件设计,怎样的模块数目最合适optimalnumber

ofmodules

costof

softwarenumberofmodulesmoduleintegrationcostmoduledevelopmentcost16编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005信息隐蔽modulecontrolledinterface"secret"•算法•数据结构•detailsofexternalinterface•资源分配策略clientsaspecificdesigndecision内部的修改,不影响客户端的访问。17编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005逐步求精openwalktodoor;reachforknob;opendoor;walkthrough;closedoor.repeatuntildooropensturnknobclockwise;ifknobdoesn'tturn,then

takekeyout;

findcorrectkey;

insertinlock;endifpull/pushdoormoveoutofway;endrepeat18编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005功能独立内聚——一个模块仅执行一个功能耦合——一个模块与其它模块的连接程度模块的独立性高,是指内聚性强、耦合性弱19编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005求精逐步求精是由Niklaus

Wirth最初提出的一种自顶向下的设计策略。通过连续精化层次结构的程序细节来实现程序的开发,层次结构的开发将通过逐步分解功能的宏观陈述直至形成程序设计语言的语句。求精实际上是一个细化的过程。从在高抽象级上定义的功能陈述开始,该陈述概念性地描述了功能或信息,但是没有提供有关功能内部工作的信息或数据内部结构的信息。精化促使设计者在原始陈述上细化,并随着每个精化的持续进行将提供越来越多的细节。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005求精抽象和精化是互补的概念。抽象使得设计人员能够明确说明过程和数据而同时忽略低层细节;精化有助于设计人员在设计过程中揭示低层的细节。这两个概念均有助于设计人员在设计演化中构造出完整的设计模型。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005方面当我们开始进行需求分析时,一组“关注点”就出现了。这些关注点“包括需求、用例、特征、数据结构、服务质量问题、变量、知识产权边界、合作、模式以及合同”。理想情况下,可以按某种方式组织需求模型,该方式允许分离每个关注点,使得能够独立考虑每个关注点。当开始进行设计时,需求被精化为模块设计表示。考虑两个需求,A和B。”如果已经选择了一种软件分解,在这种分解中,如果不考虑需求A的话,需求B就不能得到满足,那么需求A横切需求B。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005重构不改变(设计/代码)外部行为,但改变内部结构Whensoftwareisrefactored,theexistingdesignisexaminedfor是否冗余无用的设计元素低效的或无意义的算法拙劣的或不恰当的数据结构。。。。23编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005面向对象的设计概念设计类实体类边界类控制类继承消息多态性24编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005设计类不同的设计类用户接口类业务域类过程类持久类系统类分析类在设计中,变成多个设计类。25编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005将分析类精化为设计类Page139图7-326编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005设计模型27编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005设计模型元素数据元素数据结构数据库结构体系结构元素

应用领域分析类、分析类之间的关系、协作与行为被转换成设计。模式或风格接口元素

用户接口对其他系统、设备、网络的外部接口。不同设计构件的内部接口。组件元素

部署元素

28编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005数据设计元素数据设计(有时也称为数据体系结构设计)创建在高抽象级上(以客户/用户的数据观点)表示的数据模型和/或信息模型。然后,数据模型被精化为越来越和实现相关的特定表示,即基于计算机的系统能够处理的表示。在很多软件应用中,数据体系结构对必须处理该数据的软件体系结构有深远的影响。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005数据设计元素数据结构通常是软件设计的重要部分。在程序构件级,数据结构设计以及相关的处理这些数据的算法对于创建高质量的应用程序是至关重要的。在应用程序级,数据模型到数据库的转变是实现系统业务目标的关键。在业务级,收集存储在不同的数据库中的信息并重新组织为”数据仓库“,要使用数据挖掘或知识发现技术,这些技术影响业务本身的成功。在各种情况下,数据设计都发挥了重要作用。编辑pptSoftwareEngineering:APractitioner’sApproach,6/eandareprovidedwithpermissionbyR.S.Pressman&Associates,Inc.,copyright©1996,2001,2005SoftwareEngineering:APractiti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论