软件设计过程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件设计过程.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 过程
- 资源描述:
-
1、2022-7-291第五章第五章 软件设计过程软件设计过程o软件设计是软件工程的重要阶段。软件设计是软件工程的重要阶段。o软件设计过程是对程序结构、数据结构和软件设计过程是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过过程细节逐步求精、复审并编制文档的过程程。5.1 软件设计基础软件设计基础2022-7-292从分析到设计从分析到设计2022-7-2935.1.1 5.1.1 设计过程设计过程软件开发阶段由设计、编码和测试三个基本活动组成软件开发阶段由设计、编码和测试三个基本活动组成,其中其中“设计活动设计活动”是是 获取高质量、低耗费、易维护获取高质量、低耗费、易维护软件最重要的
2、一个环节。软件最重要的一个环节。需求分析阶段获得的需求规格说明书包括对欲实现系需求分析阶段获得的需求规格说明书包括对欲实现系统的信息、功能和行为方面的描述,统的信息、功能和行为方面的描述,这是软件设计这是软件设计的基础。对此采用任一种软件设计方法都将产生系统的基础。对此采用任一种软件设计方法都将产生系统的的总体结构设计总体结构设计(architectural design)(architectural design)、系统的数、系统的数据设计据设计(data design)(data design)和系统的过程设计和系统的过程设计(procedural(procedural design)de
3、sign)。2022-7-294设计过程设计过程o数据设计数据设计把信息描述转换为实现软件所要求的数据把信息描述转换为实现软件所要求的数据结构结构。o总体结构设计总体结构设计旨在确定程序各主要部件之间的关系旨在确定程序各主要部件之间的关系。o过程设计过程设计要要完成每一部件的过程化描述。完成每一部件的过程化描述。o根据设计结果编制代码。然后交给测试人员测试根据设计结果编制代码。然后交给测试人员测试o设计阶段做的决策直接影响软件质量设计阶段做的决策直接影响软件质量,没有良好的设没有良好的设计就没有稳定的系统计就没有稳定的系统,也不会有易维护的软件。也不会有易维护的软件。o统计表明:设计、编码和测
4、试这三个活动一般占用统计表明:设计、编码和测试这三个活动一般占用整个软件开发费用整个软件开发费用(不包括维护阶段不包括维护阶段)的的75%75%以上。以上。2022-7-295开发阶段的信息流开发阶段的信息流2022-7-2965.1.2 5.1.2 软件设计基本概念软件设计基本概念o软件设计基本概念是过去三十年里陆续提出的。软件设计基本概念是过去三十年里陆续提出的。o软件设计者根据这组概念进行设计决策软件设计者根据这组概念进行设计决策如如:划分子部件划分子部件的的标准标准;从软件的概念表示中分离出功能和数据结构的细节从软件的概念表示中分离出功能和数据结构的细节;以统一的标准衡量软件设计质量等
5、等。以统一的标准衡量软件设计质量等等。2022-7-2971 1 抽象与逐步求精抽象与逐步求精抽象抽象是管理、控制复杂性的基本策略是管理、控制复杂性的基本策略 。“抽象抽象”是心理学概念是心理学概念,它要求人们将注意力集中在某一层次它要求人们将注意力集中在某一层次上考虑问题上考虑问题,而忽略那些低层次的细节。使用抽象技术便于人而忽略那些低层次的细节。使用抽象技术便于人们用们用“问题域问题域”的概念和术语描述问题的概念和术语描述问题,而无须过早地转换为而无须过早地转换为那些不熟悉的结构。那些不熟悉的结构。软件设计过程是在不同抽象级别软件设计过程是在不同抽象级别上上考虑、处理问题的过程。考虑、处理
6、问题的过程。()()在在最高抽象级别最高抽象级别上上,用用面向问题域的语言面向问题域的语言叙述叙述“问题问题”,概括概括“问题解问题解”的形式的形式。()()不断地具体化不断地具体化,不断地用不断地用面向过程的语言面向过程的语言描述问题描述问题。()()在最低的抽象级别上给出可直接在最低的抽象级别上给出可直接实现的实现的“问题解问题解”,即,即程序。程序。2022-7-298软件工程过程的每一步都是对较高一级抽象的解作一软件工程过程的每一步都是对较高一级抽象的解作一次较具体化的描述。次较具体化的描述。o在在系统定义系统定义阶段阶段,软件系统被描述为基于计算机的软件系统被描述为基于计算机的大系统
7、的一个组成部分大系统的一个组成部分;o在在软件规划和需求分析软件规划和需求分析阶段阶段,软件用问题域约定的习软件用问题域约定的习惯用语表达惯用语表达;o从从概要设计过渡到详细设计概要设计过渡到详细设计时时,抽象级再一次降低抽象级再一次降低;o编码编码完成后完成后,达到了抽象的最低级。达到了抽象的最低级。2022-7-299在由高级抽象到低级抽象的转换过程中在由高级抽象到低级抽象的转换过程中,伴随着一连伴随着一连串的过程抽象和数据抽象。串的过程抽象和数据抽象。o过程抽象过程抽象把完成一个特定功能的动作序列抽象为一把完成一个特定功能的动作序列抽象为一个过程名和参数表,通过指定过程名和实际参数调用个
8、过程名和参数表,通过指定过程名和实际参数调用此过程此过程;o数据抽象数据抽象把一个数据对象的定义把一个数据对象的定义(或描述或描述 )抽象为一抽象为一个数据类型名,用此类型名可定义多个具有相同性质个数据类型名,用此类型名可定义多个具有相同性质的数据对象。的数据对象。2022-7-2910不同抽象级别的软件形式不同抽象级别的软件形式例例5 51 1考虑适用于低级考虑适用于低级CADCAD的图形软件包。的图形软件包。抽象抽象1 1该该CADCAD软件系统配有能与作图员进行可视化通讯的图形界面。软件系统配有能与作图员进行可视化通讯的图形界面。能用鼠标替代作图板和直尺画各种直线和曲线。能用鼠标替代作图
9、板和直尺画各种直线和曲线。能完成所有几何计算及所有截面视图和辅助视图的设计。能完成所有几何计算及所有截面视图和辅助视图的设计。图形设计的结果存在图形文件中图形设计的结果存在图形文件中,图形文件可包含几何的、正图形文件可包含几何的、正文的和其他各种补充设计信息。文的和其他各种补充设计信息。在这一抽象级别上在这一抽象级别上,问题的解用问题域本身的术语描述。问题的解用问题域本身的术语描述。2022-7-2911抽象抽象2 2CADCAD软件任务软件任务;用户界面任务用户界面任务;创建二维图形任务创建二维图形任务;显示图形任务显示图形任务;管理图形文件任务管理图形文件任务;end CAD.end CA
10、D.在这一抽象级别上在这一抽象级别上,给出了组成给出了组成CADCAD软件任务的所有子任务软件任务的所有子任务,术语与问题域有所不同术语与问题域有所不同,但仍然不是实现用的语言。但仍然不是实现用的语言。2022-7-2912抽象抽象3 3例例“创建二维图形任务创建二维图形任务”PROCEDURE PROCEDURE 创建二维图形创建二维图形REPEATREPEATUNTILUNTIL DODOWHILEWHILE 数字仪接口任务数字仪接口任务;判断作图请求判断作图请求:线线:画线任务画线任务;圆圆:画圆任务画圆任务;END;END;2022-7-2913DODOWHILEWHILE 键盘接口任
11、务键盘接口任务;选择分析或计算选择分析或计算:辅助视图辅助视图:辅助视图任务辅助视图任务;截面视图截面视图:截面视图任务截面视图任务;ENDEND;END REPETITIONEND REPETITION;END PROCEDUREEND PROCEDURE在这一抽象级别上在这一抽象级别上,给出了初步的过程性表示给出了初步的过程性表示,此时所有术语此时所有术语都是面向软件都是面向软件(比如采用比如采用do whiledo while结构结构)并且模块结构也开始明并且模块结构也开始明朗。求精过程还可继续下去朗。求精过程还可继续下去,直至产生源代码。直至产生源代码。2022-7-2914数据抽象与
12、过程抽象一样数据抽象与过程抽象一样,能使设计者按不同的详细程度能使设计者按不同的详细程度表示数据对象。表示数据对象。例例为为CADCAD软件定义软件定义drawing(drawing(图图)的数据对象的数据对象:TYPE TYPE drawing IS STRUCTURE DEFINEDdrawing IS STRUCTURE DEFINEDnumber number IS STRING LENGTH(12);IS STRING LENGTH(12);geometry DEFINEDgeometry DEFINEDnotes notes IS STRING LENGTH(256);IS STR
13、ING LENGTH(256);bombom DEFINEDDEFINEDEND drawing TYPE;END drawing TYPE;drawingdrawing被表示为一种结构被表示为一种结构,各组成部件又可为某种数据各组成部件又可为某种数据抽象抽象,如如geometry geometry 和和bombom。2022-7-2915抽象数据类型抽象数据类型drawingdrawing定义完毕定义完毕,即可用类型名直接说即可用类型名直接说明数据对象明数据对象,而不必涉及其内部构造的细节而不必涉及其内部构造的细节,如如,可用可用语句语句blueprint blueprint IS INST
14、ANCE OF drawing;IS INSTANCE OF drawing;或或schematic schematic IS INSTANCE OF drawing;IS INSTANCE OF drawing;说明说明blueprintblueprint和和schematicschematic具有具有drawingdrawing的特性。的特性。o在抽象数据类型的定义中可以附加一组操作的定义在抽象数据类型的定义中可以附加一组操作的定义,用以确定在此类数据对象上可进行的操作。用以确定在此类数据对象上可进行的操作。o 以抽象数据类型以抽象数据类型drawingdrawing为例为例,可以定义擦除
15、可以定义擦除(erase)(erase)、存储、存储(save)(save)、分类、分类(catalog)(catalog)和拷贝和拷贝(copy)(copy)等操作。等操作。2022-7-2916o由由N.WirthN.Wirth提出提出的的“逐步求精逐步求精”概念概念,与与“抽象抽象”密密切相关切相关,是是早期的自顶向下设计策略早期的自顶向下设计策略。o“逐步求精逐步求精”的的主要思想是针对某个功能的宏观描主要思想是针对某个功能的宏观描述用逐步求精的方法不断地分解述用逐步求精的方法不断地分解,逐步确立过程细节逐步确立过程细节,直至该功能用程序语言描述的算法实现为止直至该功能用程序语言描述的
16、算法实现为止。o求精的每一步都是用更为详细的描述替代上一层次求精的每一步都是用更为详细的描述替代上一层次的抽象描述的抽象描述,在整个设计过程中产生的,具有不同详在整个设计过程中产生的,具有不同详细程度的各种描述组成系统的层次结构。细程度的各种描述组成系统的层次结构。o层次结构的上一层是下一层的抽象层次结构的上一层是下一层的抽象,下一层是上一层下一层是上一层的求精的求精2022-7-29172 2 模块化与信息隐藏模块化与信息隐藏o模块化的概念模块化的概念把软件划分为可独立命名和编址的部件,每个部件称为一把软件划分为可独立命名和编址的部件,每个部件称为一个模块个模块,当把所有模块组装到一起时则获
17、得满足问题需要的一当把所有模块组装到一起时则获得满足问题需要的一个解。个解。o软件总体结构体现了模块化思想软件总体结构体现了模块化思想。o“模块化是软件唯一能使程序获得智能化管理的一个属性模块化是软件唯一能使程序获得智能化管理的一个属性”,完全由一个模块构成的程序,程序控制路径错综复杂完全由一个模块构成的程序,程序控制路径错综复杂,变量被变量被远距离引用,使得程序难于理解与掌握。远距离引用,使得程序难于理解与掌握。下面通过考察一个问题求解的过程来说明下面通过考察一个问题求解的过程来说明2022-7-2918求解问题的过程求解问题的过程假设假设函数函数C(X)C(X)定义了问题定义了问题X X已
18、被觉察到的复杂性已被觉察到的复杂性,函数函数E(X)E(X)定义了求解问题定义了求解问题X X所要求的工作量所要求的工作量(按时间计按时间计),对于问题对于问题P1P1和和P2,P2,如果如果C(P1)C(P1)C(P2)C(P2)(8(81a)1a)则则E(P1)E(P1)E(P2)E(P2)(8(81b)1b)C(P1+P2)C(P1+P2)C(P1)+C(P2)C(P1)+C(P2)(8(82)2)E(P1+P2)E(P1+P2)E(P1)+E(P2)E(P1)+E(P2)(8(83)3)o解决一个复杂问题解决一个复杂问题,比解决一个简单问题耗费多。比解决一个简单问题耗费多。o由由P1P
19、1、P2P2组合而成的问题复杂性组合而成的问题复杂性,比单个问题复杂性的和更比单个问题复杂性的和更大。大。2022-7-2919“分治法分治法”一个复杂问题分割成若干个可管理的小问题后更易一个复杂问题分割成若干个可管理的小问题后更易于求解。但并不意味着可以无限制的划分下去于求解。但并不意味着可以无限制的划分下去如下图所示:对于给定的一个问题如下图所示:对于给定的一个问题o当模块总数增加时当模块总数增加时,每个模块的成本减少了每个模块的成本减少了,但模块但模块接口所需代价随之增加,致使软件总耗费呈一抛物线。接口所需代价随之增加,致使软件总耗费呈一抛物线。o如果模块数为如果模块数为M M时将获得最
20、小开发成本时将获得最小开发成本,那么模块数那么模块数在在M M附近选择附近选择,就能避免模块分割过度和不足。就能避免模块分割过度和不足。这些问题涉及信息隐藏、内聚度与藕合度的概念。这些问题涉及信息隐藏、内聚度与藕合度的概念。2022-7-2920o怎样保证模块数怎样保证模块数“在在M M附近附近”?o依据什么标准划分模块依据什么标准划分模块?2022-7-2921信息隐藏信息隐藏o模块应该设计得使其所含信息模块应该设计得使其所含信息(过程和数据过程和数据)对于那些不需要对于那些不需要这些信息的模块不可访问这些信息的模块不可访问;o每个模块只完成一个相对独立的特定功能每个模块只完成一个相对独立的
21、特定功能;o模块之间仅仅交换那些为完成系统功能必须交换的信息模块之间仅仅交换那些为完成系统功能必须交换的信息,即即模块应该独立。模块应该独立。显然,模块独立的概念是模块化、抽象、信息隐蔽、和局部化显然,模块独立的概念是模块化、抽象、信息隐蔽、和局部化等概念的直接结果等概念的直接结果采用信息隐藏原理指导模块设计采用信息隐藏原理指导模块设计优点优点:o支持模块的并行开发支持模块的并行开发o减少减少软件软件测试和测试和软件软件维护的工作量。维护的工作量。2022-7-29223 3耦合与内聚度耦合与内聚度内聚内聚内聚度:模块内部各成分彼此结合的紧密程度。内聚度:模块内部各成分彼此结合的紧密程度。内聚
22、度按其高低程度可分为七级内聚度按其高低程度可分为七级,内聚度越高越好。内聚度越高越好。2022-7-2923()()偶然性内聚偶然性内聚(Coincidental Cohesion)(Coincidental Cohesion)。模块内各成分为完成一组功能而组合在一起模块内各成分为完成一组功能而组合在一起,它们相互它们相互之间即使有关系之间即使有关系,也很松散。也很松散。函数函数A函数函数B函数函数C函数函数D函数函数E低级内聚度低级内聚度2022-7-2924()()逻 辑 性 内 聚逻 辑 性 内 聚(Logical Cohesion)(Logical Cohesion)模块完成的诸任务逻
23、辑模块完成的诸任务逻辑上相关上相关,如如,一个模块产生所一个模块产生所有与类型无关的输出。有与类型无关的输出。2022-7-2925()()时间性内聚时间性内聚(Temporal Cohesion)(Temporal Cohesion)模块包含的诸任务必须在同一时间段内执行模块包含的诸任务必须在同一时间段内执行,如一个初如一个初始化模块。始化模块。2022-7-2926()()过程性内聚过程性内聚(Procedural Cohesion)(Procedural Cohesion)模块具有过程性内聚度是指模块内成分彼此相关模块具有过程性内聚度是指模块内成分彼此相关,并且必须按特定的次序执行并且必
24、须按特定的次序执行;函数函数A函数函数B函数函数C(循环)(判定)(计算)中级内聚度中级内聚度2022-7-2927()()通信性内聚通信性内聚(Communicational Cohesion)(Communicational Cohesion)模块中各成份都将对数据结构的同一区域进行操模块中各成份都将对数据结构的同一区域进行操作作,以达到通信的目的。以达到通信的目的。函数函数A函数函数B函数函数C数据集2022-7-29282022-7-2929()()顺序性内聚顺序性内聚(Sequential Cohesion)(Sequential Cohesion)模块内的各处理成份均与同一功能相关
25、模块内的各处理成份均与同一功能相关,且这且这些处理必须顺序执行些处理必须顺序执行,则称顺序内聚则称顺序内聚。高级内聚度高级内聚度2022-7-2930()()功能性内聚功能性内聚(Functional Cohesion)(Functional Cohesion)模块内所有成分形成一个整体模块内所有成分形成一个整体,完成单个功能完成单个功能。设计软件时设计软件时,应该能够识别内聚度的高低,并通过修改设计应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度尽可能提高模块内聚度,从而获得较高的模块独立性从而获得较高的模块独立性高级内聚度高级内聚度函数A-处理1函数B-处理2函数C-处理320
展开阅读全文