欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第3章 软件设计基础优秀课件.ppt

    • 资源ID:91040670       资源大小:4.86MB        全文页数:94页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章 软件设计基础优秀课件.ppt

    第第3 3章章 软件设计基础软件设计基础第1页,本讲稿共94页内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审第2页,本讲稿共94页3.1 3.1 软件设计的基本概念软件设计的基本概念n软件设计主要针对软件设计主要针对需求分析需求分析过程得到的软件需求过程得到的软件需求规格说明,综合考虑各种制约因素,探求切实可规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。包括文档、模型等。n软件设计受到资源和技术两方面的制约。软件设计受到资源和技术两方面的制约。n软件设计基本概念是过去数十年里陆续提出的,软件设计基本概念是过去数十年里陆续提出的,软件设计者根据这组概念进行设计决策。软件设计者根据这组概念进行设计决策。n软件设计的最终目标是获得满足软件需求的、明软件设计的最终目标是获得满足软件需求的、明确的、可行的、高质量的软件解决方案。确的、可行的、高质量的软件解决方案。第3页,本讲稿共94页(1 1)抽象与逐步求精)抽象与逐步求精n“抽象抽象”是一个心理学概念,它要求人们将注意力是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次集中在某一层次上考虑问题,而忽略那些低层次的细节。是管理、控制复杂性的基本策略。的细节。是管理、控制复杂性的基本策略。n软件设计过程是在不同抽象级别考虑、处理问题软件设计过程是在不同抽象级别考虑、处理问题的过程。最初应该在最高抽象级别上,用面向问的过程。最初应该在最高抽象级别上,用面向问题域的语言概述问题,包括问题解的形式,然后题域的语言概述问题,包括问题解的形式,然后不断具体化,不断用接近计算机域的语言描述问不断具体化,不断用接近计算机域的语言描述问题,最后,在最低的抽象级别上给出可直接实现题,最后,在最低的抽象级别上给出可直接实现的问题解,即程序。的问题解,即程序。第4页,本讲稿共94页(1 1)抽象与逐步求精)抽象与逐步求精n软件设过程的每一步都是对较高以及抽象的解软件设过程的每一步都是对较高以及抽象的解作一次更具体化的描述。作一次更具体化的描述。过程抽象:把完成特定功能的动作序列抽象过程抽象:把完成特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程。名和实际参数调用此过程。数据抽象:把一个数据对象的定义(或描述)数据抽象:把一个数据对象的定义(或描述)抽象为一个数据类型名,用此类型名可定义抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。多个具有相同性质的数据对象。第5页,本讲稿共94页(1 1)抽象与逐步求精)抽象与逐步求精n“逐逐步步求求精精”可可视视为为一一种种早早期期的的自自顶顶向向下下设设计计策策略略,其其主主要要思思想想是是,针针对对某某个个功功能能的的宏宏观观描描述述用用逐逐步步求求精精的的方方法法不不断断地地分分解解,逐逐步步确确立立过过程程细细节节,直至该功能用程序语言描述的算法实现为止。直至该功能用程序语言描述的算法实现为止。n在在软软件件设设计计过过程程中中,抽抽象象与与逐逐步步求求精精是是一一般般都都是是结合起来进行应用。结合起来进行应用。n系系统统的的层层次次结结构构的的上上一一层层是是下下一一层层的的抽抽象象,下下一一层是上一层的求精。层是上一层的求精。第6页,本讲稿共94页抽象与逐步求精抽象与逐步求精第7页,本讲稿共94页(2 2)模块化与信息隐藏)模块化与信息隐藏n软件体系结就体现了模块化思想,即把软件划分为软件体系结就体现了模块化思想,即把软件划分为可独立命名和访问的部件,每个部件称为一个模块,可独立命名和访问的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的当把所有模块组装到一起时则获得满足问题需要的一个解。一个解。n模块化使得开发活动更加简单的一个重要因素是模模块化使得开发活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必看到其它块的信息隐藏,即一个模块的开发者不必看到其它模块的内部,只需知道其接口即可,这使得每个模模块的内部,只需知道其接口即可,这使得每个模块的开发人员所要处理的复杂性显著降低。块的开发人员所要处理的复杂性显著降低。n信息隐藏指导的模块化设计不仅支持模块的并行开信息隐藏指导的模块化设计不仅支持模块的并行开发,而且还可以减少测试和维护的工作量。发,而且还可以减少测试和维护的工作量。第8页,本讲稿共94页(2 2)模块化与信息隐藏)模块化与信息隐藏n问题求解的研究表明,把两个问题组合起来进行问题求解的研究表明,把两个问题组合起来进行求解的复杂性,一般要比分别对两个问题进行求求解的复杂性,一般要比分别对两个问题进行求解的复杂度之和更大,这个结论导致解的复杂度之和更大,这个结论导致“分治法分治法”的出现,即把一个复杂问题分割成若干个可管理的出现,即把一个复杂问题分割成若干个可管理的、更易于求解的小问题。的、更易于求解的小问题。n但这种分割并不意味着但这种分割并不意味着“无限无限”分割,当模块数分割,当模块数量增加时,模块接口所需要的代价也随之增加。量增加时,模块接口所需要的代价也随之增加。第9页,本讲稿共94页模块数量与成本模块数量与成本第10页,本讲稿共94页(2 2)模块化与信息隐藏)模块化与信息隐藏n恰当的定义模块范围和大小非常重要,这与采恰当的定义模块范围和大小非常重要,这与采用的设计方法密切相关,评价所采用设计方法用的设计方法密切相关,评价所采用设计方法的标准:的标准:模块可分解性模块可分解性模块的组装性模块的组装性模块的可理解性模块的可理解性模块连续性模块连续性模块保护模块保护第11页,本讲稿共94页内聚与耦合内聚与耦合n每个模块应相对独立,其功能相对单一,而模每个模块应相对独立,其功能相对单一,而模块之间的接口应尽可能简单。块之间的接口应尽可能简单。内聚是前述信息隐藏和局部化概念的自然扩内聚是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的展,它标志一个模块内部各成分彼此结合的紧密程度。紧密程度。耦合是对软件结构中模块间关联程度的一种耦合是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂度量。耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过接口传性、进入或调用模块的位置以及通过接口传送数据的多少等。送数据的多少等。追求高内聚、低耦合。追求高内聚、低耦合。(1)抽象与逐步求精)抽象与逐步求精第12页,本讲稿共94页内聚内聚n内聚按其高低程度可划分为不同等级,内聚度内聚按其高低程度可划分为不同等级,内聚度越高越好,从而获得较高的模块独立性。越高越好,从而获得较高的模块独立性。低等级内聚:低等级内聚:偶然性内聚偶然性内聚 逻辑性内聚逻辑性内聚 时序内聚时序内聚中等级内聚:中等级内聚:过程性内聚过程性内聚 通信性内聚通信性内聚高级内聚:高级内聚:顺序性内聚顺序性内聚 功能性内聚:最高程度的内聚功能性内聚:最高程度的内聚第13页,本讲稿共94页耦合耦合n耦合的强弱取决于模块间接口的复杂性、进入耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置、通过接口传输数据量等。或调用模块的位置、通过接口传输数据量等。n模块间的耦合程度直接影响着系统的可理解性、模块间的耦合程度直接影响着系统的可理解性、可测试性、可靠性和可维护性,软件设计应追可测试性、可靠性和可维护性,软件设计应追求尽可能松散的耦合,模块间的联系越少,错求尽可能松散的耦合,模块间的联系越少,错误在模块间传递的可能性就越小。误在模块间传递的可能性就越小。第14页,本讲稿共94页耦合耦合n耦合等级的划分耦合等级的划分低等级耦合:低等级耦合:非直接耦合非直接耦合中等级耦合中等级耦合 数据耦合数据耦合 特征耦合特征耦合 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合高等级耦合:高等级耦合:内容耦合内容耦合n尽量使用数据耦合,减少控制耦合,限制外部尽量使用数据耦合,减少控制耦合,限制外部耦合和公共耦合,杜绝内容耦合。耦合和公共耦合,杜绝内容耦合。传递的信息含有控制信息第15页,本讲稿共94页内聚和耦合的量化指标内聚和耦合的量化指标n类耦合度类耦合度类类的的耦耦合合度度为为与与它它耦耦合合的的其其它它类类的的数数目目,包包括括调调用用其其他他类类的的方方法法、使使用用其其它它类类的的实实例例变变量量。一一个个类类越越独独立立,它它在在应应用用中中就就越越容容易易被被重重用用,类类之之间间的耦合度应尽可能的小。的耦合度应尽可能的小。n方法内聚缺乏程度方法内聚缺乏程度“不不访访问问相相同同成成员员变变量量的的方方法法对对数数目目”减减去去“访访问问相同成员变量的方法对数目相同成员变量的方法对数目”如如果果一一个个类类中中没没有有任任何何两两个个方方法法对对同同一一变变量量进进行行访访问问,则则它它们们没没有有相相似似性性,该该类类的的内内聚聚程程度度将将会会很很低低,缺缺乏乏内内聚聚度度意意味味着着该该类类可可以以分分为为两两个个或或更更多的类。多的类。第16页,本讲稿共94页内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审第17页,本讲稿共94页(1 1)软件设计的一般过程)软件设计的一般过程n软件设计可能是一个多次反复的过程,所以,软软件设计可能是一个多次反复的过程,所以,软件设计一般都可以被看作是迭代的过程。件设计一般都可以被看作是迭代的过程。n迭代有两层含义:迭代有两层含义:第一层含义是,针对给定的需求模型,通过多第一层含义是,针对给定的需求模型,通过多次从抽象到具体的设计过程,得出足够精细的次从抽象到具体的设计过程,得出足够精细的设计模型以供软件实现之用。设计模型以供软件实现之用。第二层含义是,在需求模型发生变化并更新完第二层含义是,在需求模型发生变化并更新完成后,第一层含义的设计过程再随之展开,直成后,第一层含义的设计过程再随之展开,直至获得最终的目标软件产品至获得最终的目标软件产品 。第18页,本讲稿共94页软件设计的迭代软件设计的迭代第19页,本讲稿共94页软件设计的一般过程软件设计的一般过程n软软件件设设计计过过程程包包括括在在不不同同抽抽象象层层次次上上开开发发系系统统的的多多个模型。个模型。n软软件件设设计计可可以以看看作作是是将将需需求求规规格格说说明明转转换换为为可可直直接接提供软件代码实现使用的提供软件代码实现使用的设计规格说明。设计规格说明。n工程管理的角度:工程管理的角度:概要设计:根据需求确定软件和数据总体框架。概要设计:根据需求确定软件和数据总体框架。详详细细设设计计:进进一一步步精精化化成成软软件件的的算算法法表表示示和和数数据据结构。结构。技技术术上上,概概要要设设计计和和详详细细设设计计由由若若干干活活动动组组成成,包包括括软软件件体体系系结结构构设设计计、界界面面设设计计、模模块块/子子系系统统设计、数据模型设计、过程设计、数据模型设计、过程/算法设计。算法设计。第20页,本讲稿共94页软件设计的一般过程软件设计的一般过程第21页,本讲稿共94页1 1)软件设计计划)软件设计计划n在设计过程中,对设计活动进行计划应该最早进行,在设计过程中,对设计活动进行计划应该最早进行,然后按照计划实施体系结构设计、界面设计、模块然后按照计划实施体系结构设计、界面设计、模块/子系统设计、数据模型设计、过程子系统设计、数据模型设计、过程/算法设计等活动。算法设计等活动。n软件设计计划的任务是:明确设计过程的输入制品软件设计计划的任务是:明确设计过程的输入制品并使其处于就绪状态,定义设计过程的目标、输出并使其处于就绪状态,定义设计过程的目标、输出制品及其验收准则,确定覆盖设计过程中各个阶段制品及其验收准则,确定覆盖设计过程中各个阶段的全局性设计策略,分配设计过程相关人员的职责,的全局性设计策略,分配设计过程相关人员的职责,针对设计过程中的活动制订工作计划。针对设计过程中的活动制订工作计划。第22页,本讲稿共94页1 1)软件设计计划)软件设计计划n软件设计计划的步骤:软件设计计划的步骤:确定设计的目标和验收标准确定设计的目标和验收标准明确目标软件系统应遵循的技术标准或规范明确目标软件系统应遵循的技术标准或规范重新审视项目风险管理计划重新审视项目风险管理计划制定本次设计过程的工作计划制定本次设计过程的工作计划对设计过程的工作计划进行评审对设计过程的工作计划进行评审第23页,本讲稿共94页2 2)体系结构设计)体系结构设计n软件体系结构设计的目标是建立软件系统的体系软件体系结构设计的目标是建立软件系统的体系结构,有时也称结构,有时也称“顶层架构顶层架构”。n这种架构既要明确定义软件各子系统、关键构件、这种架构既要明确定义软件各子系统、关键构件、关键类的职责划分及协作关系,同时也要描绘它关键类的职责划分及协作关系,同时也要描绘它们在物理运行环境下的部署模型。们在物理运行环境下的部署模型。n顶层架构还必须针对软件系统全局性、基础性的顶层架构还必须针对软件系统全局性、基础性的技术问题给出技术解决方案,这种方案往往构成技术问题给出技术解决方案,这种方案往往构成目标软件系统的体系结构的技术基础设施。目标软件系统的体系结构的技术基础设施。第24页,本讲稿共94页2 2)体系结构设计)体系结构设计n评价软件体系结构评价软件体系结构宽度和深度:软件控制的层数和跨度宽度和深度:软件控制的层数和跨度扇出率和扇入率:扇出率和扇入率:扇出率:一个模块的扇出率指该模块直接控制的扇出率:一个模块的扇出率指该模块直接控制的 其他模块数。其他模块数。扇入率:一个模块的扇入率指直接控制该模块的扇入率:一个模块的扇入率指直接控制该模块的 模块数模块数。可见性和联通性可见性和联通性 模块的可见性:该模块可直接或间接引用的一组模块。模块的可见性:该模块可直接或间接引用的一组模块。模块的联通性:模块可直接引用的一组模块。模块的联通性:模块可直接引用的一组模块。第25页,本讲稿共94页软件结构有关概念软件结构有关概念第26页,本讲稿共94页3 3)界面设计)界面设计n用户界面设计的目标是,为用户使用目标软件系统以用户界面设计的目标是,为用户使用目标软件系统以实现其所有业务需求而提供友好的人机交互界面。实现其所有业务需求而提供友好的人机交互界面。n软件界面设计需要考虑以下因素软件界面设计需要考虑以下因素 :l适用于软件功能适用于软件功能 l易理解性易理解性 l一致性一致性 l灵敏性灵敏性 l容错性容错性 l人性化人性化 l国际化国际化 l个性化个性化 l合理的布局合理的布局 l和谐的色彩和谐的色彩 界面的易用性界面的美观性第27页,本讲稿共94页4 4)模块)模块/子系统设计子系统设计n子系统和模块的区别:子系统和模块的区别:一个子系统独立构成系统,不依赖其它子系统提一个子系统独立构成系统,不依赖其它子系统提供的服务。供的服务。一个模块通常是一个能提供一个或多个服务的系一个模块通常是一个能提供一个或多个服务的系统部件。它能利用其它模块提供的服务,一般不统部件。它能利用其它模块提供的服务,一般不被看成一个独立的系统。被看成一个独立的系统。n由于模块和子系统都是软件组成部分,它们一般都由于模块和子系统都是软件组成部分,它们一般都有层次结构,相互之间存在接口,其设计方法有很有层次结构,相互之间存在接口,其设计方法有很多类似的方面,因此我们统一称为模块设计。多类似的方面,因此我们统一称为模块设计。第28页,本讲稿共94页模块设计的目标模块设计的目标n模块设计的目标是,确定模块的具体接口定义,模块设计的目标是,确定模块的具体接口定义,并设计模块的内部结构,即,设置包含于其中的并设计模块的内部结构,即,设置包含于其中的(更小粒度的)模块、构件和设计类,(更小粒度的)模块、构件和设计类,n明确它们之间的协作关系,确保它们能够协同实明确它们之间的协作关系,确保它们能够协同实现高层模块接口规定的所有功能和行为。现高层模块接口规定的所有功能和行为。n在进行模块设计时,要尽量保持模块的功能独立在进行模块设计时,要尽量保持模块的功能独立性,遵循性,遵循“高内聚、低耦合高内聚、低耦合”的设计思想。的设计思想。n此外,还要力求将模块的影响限制在模块的控制此外,还要力求将模块的影响限制在模块的控制范围内,使得软件日后的修改和维护工作更加简范围内,使得软件日后的修改和维护工作更加简单。单。第29页,本讲稿共94页5 5)过程)过程/算法设计算法设计n过程过程/算法设计的任务就是对模块内部的工作和执算法设计的任务就是对模块内部的工作和执行过程进行描述,给出有关处理的精确说明,例行过程进行描述,给出有关处理的精确说明,例如事件的顺序、确切的决策位置、循环操作以及如事件的顺序、确切的决策位置、循环操作以及数据的组成等。数据的组成等。n软件结构与软件过程相互关联,软件结构中任何软件结构与软件过程相互关联,软件结构中任何模块的所有从属模块必将被引用出现在该模块的模块的所有从属模块必将被引用出现在该模块的过程说明中。因此,软件过程对应的结构设计亦过程说明中。因此,软件过程对应的结构设计亦构成一个层次结构。构成一个层次结构。n可以使用可以使用UMLUML对模块进行设计对模块进行设计第30页,本讲稿共94页使用使用UMLUML的模块过程设计的模块过程设计第31页,本讲稿共94页6 6)数据模型设计)数据模型设计n我们把数据结构设计、数据库设计、甚至数据文我们把数据结构设计、数据库设计、甚至数据文件设计等统一称为数据模型设计。件设计等统一称为数据模型设计。n在数据模型设计中有一个重要概念:持久数据操在数据模型设计中有一个重要概念:持久数据操作,它包括写入、查询、更新和删除四类基本操作,它包括写入、查询、更新和删除四类基本操作以及由它们复合而成的业务数据操作。作以及由它们复合而成的业务数据操作。n在很多软件系统中,数据是其核心,因此,对数在很多软件系统中,数据是其核心,因此,对数据元素的格式、结构、访存、表示等机制进行良据元素的格式、结构、访存、表示等机制进行良好建模和优化,是提高软件设计质量和系统性能好建模和优化,是提高软件设计质量和系统性能的基础,对软件系统的应用具有重要意义。的基础,对软件系统的应用具有重要意义。第32页,本讲稿共94页内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审第33页,本讲稿共94页软件设计质量的重要性软件设计质量的重要性n软件设计是软件开发过程中的核心活动,软件设计软件设计是软件开发过程中的核心活动,软件设计的质量不但对最终软件产品的质量起着决定性作用,的质量不但对最终软件产品的质量起着决定性作用,还对软件开发过程以及软件以后在使用过程中维护还对软件开发过程以及软件以后在使用过程中维护的难易程度有着重要的影响。的难易程度有着重要的影响。n高质量的软件设计,能够有效缩短软件开发时间,高质量的软件设计,能够有效缩短软件开发时间,减少开发成本,提高最终软件产品质量。减少开发成本,提高最终软件产品质量。第34页,本讲稿共94页软件设计的质量要素软件设计的质量要素n评价软件设计的质量评价软件设计的质量结构良好结构良好充分性充分性可行性可行性简单性简单性实用性实用性灵活性灵活性健壮性健壮性可移植性可移植性可复用性可复用性标准化标准化第35页,本讲稿共94页软件设计的质量软件设计的质量n软件设计对最终软件产品质量产生的影响包括:软件设计对最终软件产品质量产生的影响包括:正确性正确性可靠性可靠性运行效率运行效率可移植性可移植性可维护性可维护性可复用性可复用性第36页,本讲稿共94页软件设计的质量软件设计的质量n软件设计对软件开发过程可能产生的影响包括:软件设计对软件开发过程可能产生的影响包括:开发效率开发效率交付时间交付时间风险管理风险管理资源使用资源使用成本成本人员培训人员培训合法性合法性第37页,本讲稿共94页内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审第38页,本讲稿共94页(1 1)软件体系结构设计方法概述)软件体系结构设计方法概述n软件体系结构的设计方法是指通过一系列的设计软件体系结构的设计方法是指通过一系列的设计活动,获得满足系统功能性需求、并且符合一定活动,获得满足系统功能性需求、并且符合一定非功能性需求约束的软件体系结构模型。非功能性需求约束的软件体系结构模型。n目前存在多种体系结构设计方法,它们的侧重点目前存在多种体系结构设计方法,它们的侧重点有所不同有所不同(功能、非功能、复用功能、非功能、复用)。n在实际应用过程中,这些体系结构设计方法并不在实际应用过程中,这些体系结构设计方法并不是绝对互斥的,根据需要,有可能综合运用不同是绝对互斥的,根据需要,有可能综合运用不同体系结构设计方法的思想,得到最终所需的设计体系结构设计方法的思想,得到最终所需的设计结果。结果。第39页,本讲稿共94页软件体系结构设计方法软件体系结构设计方法n4+14+1多视图建模多视图建模n基于评估与转换的设计方法基于评估与转换的设计方法n模式驱动的设计方法模式驱动的设计方法n领域特定的软件体系结构设计领域特定的软件体系结构设计 复用复用n软件产品线方法软件产品线方法n其它软件体系结构设计方法其它软件体系结构设计方法第40页,本讲稿共94页1 1)多视图建模多视图建模第41页,本讲稿共94页1 1)多视图建模多视图建模n逻辑视图:功能需求、与应用领域密切相关、领域术语、系统功逻辑视图:功能需求、与应用领域密切相关、领域术语、系统功能映射到概念构件和连接件、与硬件和软件细节无关。能映射到概念构件和连接件、与硬件和软件细节无关。n进程视图:非功能需求、设计中关于并发和同步的内容。进程视图:非功能需求、设计中关于并发和同步的内容。n开发视图:软件在开发环境中的静态结构、构件和连接子映射到子系开发视图:软件在开发环境中的静态结构、构件和连接子映射到子系统或模块、关注软件模块的组织。统或模块、关注软件模块的组织。n物理视图:描述软件到硬件的映射关系、关注物理环境的拓物理视图:描述软件到硬件的映射关系、关注物理环境的拓扑结构以及节点间的通信。扑结构以及节点间的通信。n场景:把上述四种视图联系起来,场景(用例的实例)通常是场景:把上述四种视图联系起来,场景(用例的实例)通常是最重要的需求。最重要的需求。以上视图均可用以上视图均可用UMLUML进行建模。进行建模。第42页,本讲稿共94页2 2)基于评估与转换的设计方法)基于评估与转换的设计方法n针对功能特性设计体现结构,对设计结果进行评针对功能特性设计体现结构,对设计结果进行评审,如果不满足要求则进行改进,一直迭代到满审,如果不满足要求则进行改进,一直迭代到满足要求为止。足要求为止。n对设计出的体现结构的质量进行评估、不满足要对设计出的体现结构的质量进行评估、不满足要求时的体现结构转换特别重要。求时的体现结构转换特别重要。第43页,本讲稿共94页2 2)基于评估与转换的设计方法)基于评估与转换的设计方法第44页,本讲稿共94页体系结构的评估体系结构的评估n基于场景的评估基于场景的评估n仿真仿真n数学建模数学建模n基于经验的推理基于经验的推理第45页,本讲稿共94页体系结构设计转换方式体系结构设计转换方式n质量评价结果不满足需求规格说明,需要改变评质量评价结果不满足需求规格说明,需要改变评估环境(修改评估)或修改体系结构设计,有以估环境(修改评估)或修改体系结构设计,有以下三种体系结构转化方式:下三种体系结构转化方式:使用合适的体系结构风格和模式,或者设计模使用合适的体系结构风格和模式,或者设计模式来改进体系结构设计。式来改进体系结构设计。把非功能需求转化为功能性解决方案,该功能把非功能需求转化为功能性解决方案,该功能性方案可以与问题域无关,但可以满足质量属性方案可以与问题域无关,但可以满足质量属性的要求。性的要求。采用采用“分而治之分而治之”的方式,可以把系统级的质的方式,可以把系统级的质量需求分配到子系统或模块中,或者把质量需量需求分配到子系统或模块中,或者把质量需求分解为多个与功能相关的质量需求,分解后求分解为多个与功能相关的质量需求,分解后的质量需求能够比较容易得到满足。的质量需求能够比较容易得到满足。第46页,本讲稿共94页软件设计经验的总结和复用软件设计经验的总结和复用n模式驱动的设计方法模式驱动的设计方法n领域特定的软件体系结构设计领域特定的软件体系结构设计n软件产品线方法软件产品线方法第47页,本讲稿共94页体系结构风格体系结构风格/模式模式n体系结构风格是描述某一特定应用方式中系统组体系结构风格是描述某一特定应用方式中系统组织方式的惯用模式,为设计人员提供公共的模型、织方式的惯用模式,为设计人员提供公共的模型、符号和术语表示,促进设计复用甚至代码复用符号和术语表示,促进设计复用甚至代码复用n体系结构模式是对设计模式的扩展,描述了软件体系结构模式是对设计模式的扩展,描述了软件系统基本的结构化组织方案,是具体体系结构的系统基本的结构化组织方案,是具体体系结构的模板。模板。n体系结构风格描述了软件总体框架的结构,综合体系结构风格描述了软件总体框架的结构,综合考虑整个系统各方面的需求。考虑整个系统各方面的需求。n设计模式是针对单一的问题提供解决方案,层次设计模式是针对单一的问题提供解决方案,层次比软件体系结构风格低。比软件体系结构风格低。第48页,本讲稿共94页3 3)模式驱动的设计方法)模式驱动的设计方法第49页,本讲稿共94页体系结构风格的分类体系结构风格的分类体系结构风格分类独立构件体系结构数据流体系结构数据为中心的体系结构虚拟机体系结构调用与返回体系结构第50页,本讲稿共94页4 4)领域特定的软件体系结构设计)领域特定的软件体系结构设计n领域特定的软件体系结构(领域特定的软件体系结构(Domain Specific Domain Specific Software ArchitectureSoftware Architecture,DSSADSSA)是领域工程的核)是领域工程的核心部分,领域工程分析应用领域的共同特征和可心部分,领域工程分析应用领域的共同特征和可变特征,对刻画这些特征的对象和操作进行选择变特征,对刻画这些特征的对象和操作进行选择和抽象,形成领域模型,并进一步生成和抽象,形成领域模型,并进一步生成DSSADSSA。n领域特定的软件体系结构借鉴领域中已经成熟的领域特定的软件体系结构借鉴领域中已经成熟的软件体系结构,实现解决方案在某个领域内的复软件体系结构,实现解决方案在某个领域内的复用。虽然这些系统实例的细节会有不同,但共同用。虽然这些系统实例的细节会有不同,但共同的体系结构在开发新系统时是能够复用的。的体系结构在开发新系统时是能够复用的。第51页,本讲稿共94页DSSADSSA与体系结构风格的区别与体系结构风格的区别nDSSADSSA与软件体系结构风格是从不同角度出发研究问与软件体系结构风格是从不同角度出发研究问题的两种结果,前者从问题域出发,而后者从解决题的两种结果,前者从问题域出发,而后者从解决域出发。域出发。nDSSADSSA只在某个特定领域中进行经验知识的提取、总只在某个特定领域中进行经验知识的提取、总结与组织,但可以同时使用多种软件体系结构风格;结与组织,但可以同时使用多种软件体系结构风格;而一种软件体系结构风格所呈现的公共结构和设计而一种软件体系结构风格所呈现的公共结构和设计方法可以扩展到多个应用领域。方法可以扩展到多个应用领域。nDSSADSSA的体系结构表示和工具一般只适用于一个较小的体系结构表示和工具一般只适用于一个较小的范围,在其它领域中是不适用并难以复用的。的范围,在其它领域中是不适用并难以复用的。第52页,本讲稿共94页领域特定的软件体系结构类型领域特定的软件体系结构类型n类模型:类模型是从许多实际系统中抽象出来的类模型:类模型是从许多实际系统中抽象出来的一般模型,它们封装这些系统的主要特征。如:一般模型,它们封装这些系统的主要特征。如:编译器模型,大量的编译器几乎都基于同一种体编译器模型,大量的编译器几乎都基于同一种体系结构。系结构。n参考模型:参考模型是更抽象且是描述一大类系参考模型:参考模型是更抽象且是描述一大类系统的模型,它对设计者是有关某类系统的一般结统的模型,它对设计者是有关某类系统的一般结构的指导,通常源自于对某应用领域的研究。它构的指导,通常源自于对某应用领域的研究。它代表了一个理想化的体系结构,包含了系统所有代表了一个理想化的体系结构,包含了系统所有应该具有的特征。如:应该具有的特征。如:OSIOSI七层参考模型。七层参考模型。第53页,本讲稿共94页5 5)软件产品线方法)软件产品线方法n软件复用的更高阶段,已经超出软件体系结构设计方法的软件复用的更高阶段,已经超出软件体系结构设计方法的范畴。范畴。n软件产品线指一组具有公共的、可管理特征(系统需求)软件产品线指一组具有公共的、可管理特征(系统需求)的软件系统,这些系统满足特定的市场需求或者任务领域的软件系统,这些系统满足特定的市场需求或者任务领域需求,并且按照预定义的方式基于公共的核心资产(需求,并且按照预定义的方式基于公共的核心资产(Core Core AssetsAssets)集合开发得到。)集合开发得到。n软件产品线主要由两部分组成:软件产品线主要由两部分组成:核心资产库:产品线的基础,是领域工程所有成果的集合,核心资产库:产品线的基础,是领域工程所有成果的集合,管理支持产品开发的可复用资源。产品管理支持产品开发的可复用资源。产品 线体系结构和构线体系结构和构件是核心资产库中用于产品构建的最重要部分。件是核心资产库中用于产品构建的最重要部分。产品集合产品集合(1)抽象与逐步求精)抽象与逐步求精第54页,本讲稿共94页软件产品线过程模型软件产品线过程模型第55页,本讲稿共94页产品线方法的基本活动产品线方法的基本活动n核心资产开发:如何获得核心资产,可以自己构核心资产开发:如何获得核心资产,可以自己构建、直接购买、委托加工等方式。建、直接购买、委托加工等方式。n产品开发:是产品线的目标,核心资产开发只是产品开发:是产品线的目标,核心资产开发只是达到该目标的一种手段。达到该目标的一种手段。n管理:为各个活动合理分配资源、协调监督、设管理:为各个活动合理分配资源、协调监督、设置恰当的组织机构等。置恰当的组织机构等。循环重复是产品线开发过程、核心资产开发、产品循环重复是产品线开发过程、核心资产开发、产品开发以及对其进行管理的特征。核心资产开发和产开发以及对其进行管理的特征。核心资产开发和产品开发没有先后顺序,管理活动协调整个产品线开品开发没有先后顺序,管理活动协调整个产品线开发过程的各个活动。发过程的各个活动。第56页,本讲稿共94页新产品形成步骤新产品形成步骤n从公共资产库中选取合适的构件;从公共资产库中选取合适的构件;n使用预定义的变化机制进行裁剪,如参数化、使用预定义的变化机制进行裁剪,如参数化、继承等;继承等;n必要时增加新的构件;必要时增加新的构件;n在整个产品线范围内共同的体系结构指导下,在整个产品线范围内共同的体系结构指导下,进行构件组装,形成系统。进行构件组装,形成系统。新产品的开发从新产品的开发从“创造创造”变成变成“组装组装”,占支配地位的,占支配地位的活动是活动是“集成集成”而非而非“编程编程”。软件产品线是对特定领。软件产品线是对特定领域的软件开发更加全面的复用,包括领域特定的软件体域的软件开发更加全面的复用,包括领域特定的软件体系结构设计方法。(到商店里买,去仓库里拿,而不是系结构设计方法。(到商店里买,去仓库里拿,而不是自己慢慢烹饪)自己慢慢烹饪)第57页,本讲稿共94页6 6)其它软件体系结构设计方法)其它软件体系结构设计方法n基于目标图推理的体系结构设计方法基于目标图推理的体系结构设计方法 n基于属性的体系结构设计方法基于属性的体系结构设计方法 n一些常用的软件开发方法学中也包含了软件体系一些常用的软件开发方法学中也包含了软件体系结构的设计,例如:结构的设计,例如:l面向数据流的软件开发方法面向数据流的软件开发方法l面向对象的软件开发方法面向对象的软件开发方法l面向方面的软件开发方法面向方面的软件开发方法 第58页,本讲稿共94页软件体系结构设计步骤软件体系结构设计步骤n始于体系结构设计,自顶向下、逐步精化。始于体系结构设计,自顶向下、逐步精化。n体系结构设计是在需求规格说明、软件设计计划体系结构设计是在需求规格说明、软件设计计划已经完成后开始的。已经完成后开始的。n软件体系机构设计步骤图软件体系机构设计步骤图第59页,本讲稿共94页(2 2)软件体系结构设计步骤)软件体系结构设计步骤1.1.开发软件顶层架构开发软件顶层架构 2.2.搜索并选取可用设计资产搜索并选取可用设计资产 3.3.设计技术支撑方案设计技术支撑方案 4.4.确定设计元素确定设计元素 5.5.开发软件部署模型开发软件部署模型 6.6.设计并发机制设计并发机制 7.7.构建软件体系结构模型构建软件体系结构模型 8.8.评审软件体系结构模型评审软件体系结构模型 第60页,本讲稿共94页内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审第61页,本讲稿共94页(1 1)可信软件的特点)可信软件的特

    注意事项

    本文(第3章 软件设计基础优秀课件.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开