《软件设计概要讲义34365.pptx》由会员分享,可在线阅读,更多相关《软件设计概要讲义34365.pptx(83页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 概要设计概要设计1一、软件设计的目标和任务一、软件设计的目标和任务1 1、目标、目标 软件设计的目标是根据用信息域常用的表示方法把软软件设计的目标是根据用信息域常用的表示方法把软软件设计的目标是根据用信息域常用的表示方法把软软件设计的目标是根据用信息域常用的表示方法把软件需求件需求件需求件需求,功能和性能等需求规格说明书中计算机语言功能和性能等需求规格说明书中计算机语言功能和性能等需求规格说明书中计算机语言功能和性能等需求规格说明书中计算机语言描述的用户的需求完全地翻译成计算机程序设计语言描述的用户的需求完全地翻译成计算机程序设计语言描述的用户的需求完全地翻译成计算机程序设计语言
2、描述的用户的需求完全地翻译成计算机程序设计语言能看懂的东西。能看懂的东西。能看懂的东西。能看懂的东西。数据设计数据设计侧重于数据结构的定义,就是把需求分侧重于数据结构的定义,就是把需求分侧重于数据结构的定义,就是把需求分侧重于数据结构的定义,就是把需求分析里面的层次方框图或析里面的层次方框图或析里面的层次方框图或析里面的层次方框图或warnierwarnierwarnierwarnier图表示的数据结构图表示的数据结构图表示的数据结构图表示的数据结构以及参考数据字典里面的内容从程序设计角度上看以及参考数据字典里面的内容从程序设计角度上看以及参考数据字典里面的内容从程序设计角度上看以及参考数据字
3、典里面的内容从程序设计角度上看怎样设计数据结构更合理。怎样设计数据结构更合理。怎样设计数据结构更合理。怎样设计数据结构更合理。2一、软件设计的目标和任务一、软件设计的目标和任务1 1、目标目标 系统结构设计系统结构设计定义软件系统各主要成份之间的关定义软件系统各主要成份之间的关定义软件系统各主要成份之间的关定义软件系统各主要成份之间的关系。系。系。系。过程设计。过程设计。把结构成份转换成软件的过程性描述。把结构成份转换成软件的过程性描述。把结构成份转换成软件的过程性描述。把结构成份转换成软件的过程性描述。3开发阶段的信息流把需求翻把需求翻译成文档译成文档452 2、软件设计的任务、软件设计的任
4、务概要设计概要设计概要设计概要设计(系统设计系统设计系统设计系统设计),将软件需求转化为数据结构,将软件需求转化为数据结构,将软件需求转化为数据结构,将软件需求转化为数据结构和软件的系统结构。和软件的系统结构。和软件的系统结构。和软件的系统结构。概要设计由技术总监,部门经概要设计由技术总监,部门经概要设计由技术总监,部门经概要设计由技术总监,部门经理和项目经理来做的,有可能会加一两个核心程序理和项目经理来做的,有可能会加一两个核心程序理和项目经理来做的,有可能会加一两个核心程序理和项目经理来做的,有可能会加一两个核心程序员。员。员。员。一、软件设计的目标和任务一、软件设计的目标和任务62 2、
5、软件设计的任务、软件设计的任务 详细设计详细设计(过程设计过程设计),通过对结构表示进行细,通过对结构表示进行细化,得到软件的详细的数据结构和算法。化,得到软件的详细的数据结构和算法。一、软件设计的目标和任务一、软件设计的目标和任务78具体设计过程设计阶段高层设计阶段架构设计用户界面设计数据库设计模块设计实现与测试需求开发概要设计详细设计9角色名称角色名称主要职责主要职责项目总监负责审批设计的相关文档,在公司级别协调设计过程中需要的技术支持项目经理负责分配设计任务,追踪设计阶段进度,在项目组内协调设计过程中所需资源,参与设计文档的同行评审系统分析员完成相关的设计任务,编写设计文档,修改设计评审
6、中发现的问题项目组开发人员代表参与设计文档的同行评审其他项目经理参与设计文档的同行评审其他项目系统分析员参与设计文档的同行评审质量保证员检查设计过程及设计阶段产生的文档,跟踪发现的问题的解决情况10软件设计过程软件设计过程1 1、制定规范、制定规范 在进入软件开发阶段之初,首先应为软件开发在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。组内各成员的工作。n n 阅读和理解软件需求说明书,确认用户要求阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的能否实现,明确实现的条件,
7、从而确定设计的目标,以及它们的优先顺序。目标,以及它们的优先顺序。n n 根据目标确定最合适的设计方法。根据目标确定最合适的设计方法。n n 规定设计文档的编制标准。规定设计文档的编制标准。n n 规定编码的信息形式,与硬件,操作系统的规定编码的信息形式,与硬件,操作系统的接口规约,接口规约,112.2.软件系统结构的总体设计软件系统结构的总体设计 采用某种设计方法,将系统按功能划分成模块的采用某种设计方法,将系统按功能划分成模块的采用某种设计方法,将系统按功能划分成模块的采用某种设计方法,将系统按功能划分成模块的层次结构层次结构层次结构层次结构 确定每个模块的功能。确定每个模块的功能。确定每
8、个模块的功能。确定每个模块的功能。建立与已确定的软件需求的对应关系建立与已确定的软件需求的对应关系建立与已确定的软件需求的对应关系建立与已确定的软件需求的对应关系 确定模块间的调用关系确定模块间的调用关系确定模块间的调用关系确定模块间的调用关系 确定模块间的接口确定模块间的接口确定模块间的接口确定模块间的接口 评估模块划分的质量评估模块划分的质量评估模块划分的质量评估模块划分的质量软件设计过程软件设计过程123.3.处理方式设计处理方式设计确定实现系统功能需求所必需的算法,评估算法的确定实现系统功能需求所必需的算法,评估算法的确定实现系统功能需求所必需的算法,评估算法的确定实现系统功能需求所必
9、需的算法,评估算法的性能。性能。性能。性能。确定满足系统性能需求所必需的算法和模块间的控确定满足系统性能需求所必需的算法和模块间的控确定满足系统性能需求所必需的算法和模块间的控确定满足系统性能需求所必需的算法和模块间的控制方式。制方式。制方式。制方式。a.a.a.a.周转时间周转时间周转时间周转时间b.b.b.b.响应时间响应时间响应时间响应时间c.c.c.c.吞吐量吞吐量吞吐量吞吐量d.d.d.d.精度精度精度精度确定外部信号的接收发送形式。确定外部信号的接收发送形式。确定外部信号的接收发送形式。确定外部信号的接收发送形式。软件设计过程软件设计过程134.4.数据结构设计数据结构设计确定软件
10、涉及的文件系统的结构以及数据库的模式、确定软件涉及的文件系统的结构以及数据库的模式、确定软件涉及的文件系统的结构以及数据库的模式、确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。子模式,进行数据完整性和安全性的设计。子模式,进行数据完整性和安全性的设计。子模式,进行数据完整性和安全性的设计。确定输入,输出文件的详细的数据结构。确定输入,输出文件的详细的数据结构。确定输入,输出文件的详细的数据结构。确定输入,输出文件的详细的数据结构。结合算法设计,确定算法所必需的逻辑数据结构及结合算法设计,确定算法所必需的逻辑数据结构及结合算法设计,确定算法所必需的逻辑数据结
11、构及结合算法设计,确定算法所必需的逻辑数据结构及其操作。其操作。其操作。其操作。确定对逻辑数据结构所必需的那些操作的程序模块确定对逻辑数据结构所必需的那些操作的程序模块确定对逻辑数据结构所必需的那些操作的程序模块确定对逻辑数据结构所必需的那些操作的程序模块(软件包软件包软件包软件包)软件设计过程软件设计过程14限制和确定各个数据设计决策的影响范围限制和确定各个数据设计决策的影响范围限制和确定各个数据设计决策的影响范围限制和确定各个数据设计决策的影响范围若需要与操作系统或调度程序接口所必须的控制表等数据时,若需要与操作系统或调度程序接口所必须的控制表等数据时,若需要与操作系统或调度程序接口所必须
12、的控制表等数据时,若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则确定其详细的数据结构和使用规则确定其详细的数据结构和使用规则确定其详细的数据结构和使用规则数据的保护性设计数据的保护性设计数据的保护性设计数据的保护性设计a.a.a.a.防卫性设计:在软件设计中就插入自动检错,报错和纠错防卫性设计:在软件设计中就插入自动检错,报错和纠错防卫性设计:在软件设计中就插入自动检错,报错和纠错防卫性设计:在软件设计中就插入自动检错,报错和纠错的功能的功能的功能的功能b.b.b.b.一致性设计:一致性设计:一致性设计:一致性设计:a)a)a)a)保证软件运行过程中所使用
13、的数据的类型和取值范围不保证软件运行过程中所使用的数据的类型和取值范围不保证软件运行过程中所使用的数据的类型和取值范围不保证软件运行过程中所使用的数据的类型和取值范围不变变变变b)b)b)b)在并发处理过程中使用封锁和解除封锁机制保持数据不在并发处理过程中使用封锁和解除封锁机制保持数据不在并发处理过程中使用封锁和解除封锁机制保持数据不在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏被破坏被破坏被破坏c.c.c.c.冗余性设计:针对同一问题,由两个开发者采用不同的程序冗余性设计:针对同一问题,由两个开发者采用不同的程序冗余性设计:针对同一问题,由两个开发者采用不同的程序冗余性设计:针对同一
14、问题,由两个开发者采用不同的程序设计风格不同的算法设计软件,当两者运行结果之差不在允设计风格不同的算法设计软件,当两者运行结果之差不在允设计风格不同的算法设计软件,当两者运行结果之差不在允设计风格不同的算法设计软件,当两者运行结果之差不在允许范围内时,利用检错系统予以纠正,或使用表决技术决定许范围内时,利用检错系统予以纠正,或使用表决技术决定许范围内时,利用检错系统予以纠正,或使用表决技术决定许范围内时,利用检错系统予以纠正,或使用表决技术决定一个正确结果。一个正确结果。一个正确结果。一个正确结果。15数据库设计数据库设计设计准备逻辑设计物理设计安全性设计撰写文档保护性设计设计优化设计评审迭代
15、16数据库设计举例说明用户角色权限1-n1-n所属平台部门或岗位人员角色权限岗位角色对应角色权限对应人员角色对应人员权限对应(平台)人员平台对应人员岗位授权业务范围具体业务人员岗位对应灵活权限分配灵活权限分配改变以前业务绑定人的改变以前业务绑定人的模式模式17数据库设计(续)185.5.可靠性设计可靠性设计可靠性设计也叫做质量设计可靠性设计也叫做质量设计可靠性设计也叫做质量设计可靠性设计也叫做质量设计在运行过程中,为了适应环境的变化和用户新的要求,在运行过程中,为了适应环境的变化和用户新的要求,在运行过程中,为了适应环境的变化和用户新的要求,在运行过程中,为了适应环境的变化和用户新的要求,需经
16、常对软件进行改造和修正。在软件开发的一开始就需经常对软件进行改造和修正。在软件开发的一开始就需经常对软件进行改造和修正。在软件开发的一开始就需经常对软件进行改造和修正。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以要确定软件可靠性和其它质量指标,考虑相应措施,以要确定软件可靠性和其它质量指标,考虑相应措施,以要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护使得软件易于修改和易于维护使得软件易于修改和易于维护使得软件易于修改和易于维护6.6.编写概要设计阶段的文档编写概要设计阶段的文档 概要设计说明书概要设计说明书概要设计说明书概要设计说明书 数据
17、库设计说明书数据库设计说明书数据库设计说明书数据库设计说明书 用户手册用户手册用户手册用户手册 制定初步的测试计划制定初步的测试计划制定初步的测试计划制定初步的测试计划软件设计过程软件设计过程19概要设计说明书1、引言编写目的背景参考资料2、结构模型 架构描述3、功能设计 模块子模块操作流程图4、数据结构 数据库设计 数据字典207.7.概要设计评审概要设计评审可追溯性:确认该设计是否复盖了所有已确定的软件需求,软可追溯性:确认该设计是否复盖了所有已确定的软件需求,软可追溯性:确认该设计是否复盖了所有已确定的软件需求,软可追溯性:确认该设计是否复盖了所有已确定的软件需求,软件每一成份是否可追溯
18、到某一项需求件每一成份是否可追溯到某一项需求件每一成份是否可追溯到某一项需求件每一成份是否可追溯到某一项需求接口:确认该软件的内部接口与外部接口是否已经明确定义。接口:确认该软件的内部接口与外部接口是否已经明确定义。接口:确认该软件的内部接口与外部接口是否已经明确定义。接口:确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其模块是否满足高内聚和低耦合的要求。模块作用范围是否在其模块是否满足高内聚和低耦合的要求。模块作用范围是否在其模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内控制范围之内控制范围之内控制范围之内风险:确认该
19、设计在现有技术条件下和预算范围内是否能按时风险:确认该设计在现有技术条件下和预算范围内是否能按时风险:确认该设计在现有技术条件下和预算范围内是否能按时风险:确认该设计在现有技术条件下和预算范围内是否能按时实现实现实现实现实用性:确认该设计对于需求的解决方案是否实用实用性:确认该设计对于需求的解决方案是否实用实用性:确认该设计对于需求的解决方案是否实用实用性:确认该设计对于需求的解决方案是否实用技术清晰度:确认该设计是否以一种易于翻译成代码的形式表技术清晰度:确认该设计是否以一种易于翻译成代码的形式表技术清晰度:确认该设计是否以一种易于翻译成代码的形式表技术清晰度:确认该设计是否以一种易于翻译成
20、代码的形式表达达达达软件设计过程软件设计过程217.7.概要设计评审概要设计评审可维护性:确认该设计是否考虑了方便未来的维护可维护性:确认该设计是否考虑了方便未来的维护可维护性:确认该设计是否考虑了方便未来的维护可维护性:确认该设计是否考虑了方便未来的维护质量:确认该设计是否表现出良好的质量特征质量:确认该设计是否表现出良好的质量特征质量:确认该设计是否表现出良好的质量特征质量:确认该设计是否表现出良好的质量特征各种选择方案:看是否考虑过其它方案,比较各种选择方案的各种选择方案:看是否考虑过其它方案,比较各种选择方案的各种选择方案:看是否考虑过其它方案,比较各种选择方案的各种选择方案:看是否考
21、虑过其它方案,比较各种选择方案的标准是什么标准是什么标准是什么标准是什么限制:评估对该软件的限制是否现实,是否与需求一致限制:评估对该软件的限制是否现实,是否与需求一致限制:评估对该软件的限制是否现实,是否与需求一致限制:评估对该软件的限制是否现实,是否与需求一致其它具体问题:对于文档、可测试性、设计过程其它具体问题:对于文档、可测试性、设计过程其它具体问题:对于文档、可测试性、设计过程其它具体问题:对于文档、可测试性、设计过程.等进行评估等进行评估等进行评估等进行评估8 8、在详细设计、在详细设计确定软件各个组成部分内的算法以及各部分的内部数据组织确定软件各个组成部分内的算法以及各部分的内部
22、数据组织确定软件各个组成部分内的算法以及各部分的内部数据组织确定软件各个组成部分内的算法以及各部分的内部数据组织选定某种过程的表达形式来描述各种算法。选定某种过程的表达形式来描述各种算法。选定某种过程的表达形式来描述各种算法。选定某种过程的表达形式来描述各种算法。进行详细设计的评审进行详细设计的评审进行详细设计的评审进行详细设计的评审软件设计过程软件设计过程22二、概要设计的过程1.1.设想供选择的方案。设想供选择的方案。设想供选择的方案。设想供选择的方案。技术上最高层的几个人,考技术上最高层的几个人,考虑需求规格说明书,以及之前的可行性报告里虑需求规格说明书,以及之前的可行性报告里面都提到几
23、个可行性的方案,做总体设计的人面都提到几个可行性的方案,做总体设计的人是一个公司里面技术最强的人。是一个公司里面技术最强的人。2.2.选取合理的方案选取合理的方案选取合理的方案选取合理的方案系统流程图。系统流程图。系统流程图。系统流程图。完全从软件角度来画系统的流程。完全从软件角度来画系统的流程。完全从软件角度来画系统的流程。完全从软件角度来画系统的流程。组成系统的物理元素清单。组成系统的物理元素清单。组成系统的物理元素清单。组成系统的物理元素清单。物理元素一般是系统,物理元素一般是系统,物理元素一般是系统,物理元素一般是系统,子系统,模块,子模块,函数,子函数子系统,模块,子模块,函数,子函
24、数子系统,模块,子模块,函数,子函数子系统,模块,子模块,函数,子函数成本成本成本成本/效益分析。效益分析。效益分析。效益分析。就是有不同的开发路线,选择那就是有不同的开发路线,选择那就是有不同的开发路线,选择那就是有不同的开发路线,选择那一条开发路线安全性要好,开发软件质量也还可以,一条开发路线安全性要好,开发软件质量也还可以,一条开发路线安全性要好,开发软件质量也还可以,一条开发路线安全性要好,开发软件质量也还可以,最省钱。最省钱。最省钱。最省钱。开发进度和计划。开发进度和计划。开发进度和计划。开发进度和计划。23二、概要设计的过程二、概要设计的过程3.3.推荐最佳方案。推荐最佳方案。4.
25、4.功能分解。功能分解。把一个功能分成多个小模块,然后把一个功能分成多个小模块,然后每一个块之间怎么样进行沟通。每一个块之间怎么样进行沟通。5.5.设计软件结构设计软件结构。6.6.数据库设计。数据库设计。7.7.制定测试计划。制定测试计划。8.8.书写文档书写文档系统说明系统说明 用户手册用户手册 测试计划测试计划 详细的实现计划详细的实现计划 数据库设计结果数据库设计结果9.9.审查和复查审查和复查24三、软件设计的概念和原理三、软件设计的概念和原理1.1.1.1.自顶向下,逐步细化自顶向下,逐步细化自顶向下,逐步细化自顶向下,逐步细化2.2.2.2.软件结构软件结构软件结构软件结构(搭出
26、一个大框架)(搭出一个大框架)(搭出一个大框架)(搭出一个大框架)3.3.3.3.程序结构程序结构程序结构程序结构4.4.4.4.结构图结构图结构图结构图5.5.5.5.模块化模块化模块化模块化(模块化思想,把软件分成多个模块)(模块化思想,把软件分成多个模块)(模块化思想,把软件分成多个模块)(模块化思想,把软件分成多个模块)6.6.6.6.抽象抽象抽象抽象(通过抽象完成模块之间对外的一个黑盒装置)(通过抽象完成模块之间对外的一个黑盒装置)(通过抽象完成模块之间对外的一个黑盒装置)(通过抽象完成模块之间对外的一个黑盒装置)7.7.7.7.信息屏蔽和局部化信息屏蔽和局部化信息屏蔽和局部化信息屏
27、蔽和局部化8.8.8.8.模块独立模块独立模块独立模块独立25三、软件设计的概念和原理三、软件设计的概念和原理1.1.1.1.自顶向下,逐步细化自顶向下,逐步细化自顶向下,逐步细化自顶向下,逐步细化将软件的体系结构按自顶向下方式,将软件的体系结构按自顶向下方式,将软件的体系结构按自顶向下方式,将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用对各个层次的过程细节和数据细节逐层细化,直到用对各个层次的过程细节和数据细节逐层细化,直到用对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整程序设计语言的语句能够实现为止,从而最后确立
28、整程序设计语言的语句能够实现为止,从而最后确立整程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。个的体系结构。个的体系结构。个的体系结构。2.2.2.2.软件结构软件结构软件结构软件结构3.3.3.3.软件结构包括两部分。软件结构包括两部分。软件结构包括两部分。软件结构包括两部分。程序的模块结构和数据的结程序的模块结构和数据的结程序的模块结构和数据的结程序的模块结构和数据的结构。构。构。构。4.4.软件的体系结构通过一个划分过程来完成。软件的体系结构通过一个划分过程来完成。软件的体系结构通过一个划分过程来完成。软件的体系结构通过一个划分过程来完成。该划分过该划分过该划分过该划分过程
29、从需求分析确立的目标系统的模型出发,对整个问程从需求分析确立的目标系统的模型出发,对整个问程从需求分析确立的目标系统的模型出发,对整个问程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加题进行分割,使其每个部分用一个或几个软件成份加题进行分割,使其每个部分用一个或几个软件成份加题进行分割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了。以解决,整个问题就解决了。以解决,整个问题就解决了。以解决,整个问题就解决了。26273.3.3.3.程序结构。表明了程序各个部件程序结构。表明了程序各个部件程序结构。表明了程序各个部件程序结构。表明了程序各
30、个部件(模块模块模块模块)的组织情况,是软件的的组织情况,是软件的的组织情况,是软件的的组织情况,是软件的过程表示。过程表示。过程表示。过程表示。4.4.结构图反映程序中模块之间的层次调用关系和联系:它以特定结构图反映程序中模块之间的层次调用关系和联系:它以特定结构图反映程序中模块之间的层次调用关系和联系:它以特定结构图反映程序中模块之间的层次调用关系和联系:它以特定的符号表示模块、模块间的调用关系和模块间信息的传递的符号表示模块、模块间的调用关系和模块间信息的传递的符号表示模块、模块间的调用关系和模块间信息的传递的符号表示模块、模块间的调用关系和模块间信息的传递三、软件设计的概念和原理三、软
31、件设计的概念和原理28三、软件设计的概念和原理三、软件设计的概念和原理5.5.5.5.模块化的概念模块化的概念模块化的概念模块化的概念软件系统的模块化是指整个软件被划分成若干单软件系统的模块化是指整个软件被划分成若干单软件系统的模块化是指整个软件被划分成若干单软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块独命名和可编址的部分,称之为模块。这些模块独命名和可编址的部分,称之为模块。这些模块独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。可以被组装起来以满足整个问题的需求。可以被组装起来以满足整个问题的需求。可以被组装起来以满足整
32、个问题的需求。把问题子问题的分解与软件开发中的系统子把问题子问题的分解与软件开发中的系统子把问题子问题的分解与软件开发中的系统子把问题子问题的分解与软件开发中的系统子系统或模块子模块对应起来,就能够把一个大系统或模块子模块对应起来,就能够把一个大系统或模块子模块对应起来,就能够把一个大系统或模块子模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的而复杂的软件系统划分成易于理解的比较单纯的而复杂的软件系统划分成易于理解的比较单纯的而复杂的软件系统划分成易于理解的比较单纯的模块结构。模块结构。模块结构。模块结构。公式公式公式公式29计划采购收料发料仓储配送价格管理供应商管理合同
33、管理综合统计管理采购管理库存管理决策平台决策平台管理平台管理平台业务平台业务平台报价询价招标管理计划管理质检管理检验付款编码管理编码经济运营查询经济运营报表经济运营分析结算管理供应商频道商务频道商务平台商务平台分解到二级模块图分解到二级模块图30三、软件设计的概念和原理三、软件设计的概念和原理成本成本成本成本/模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目模块化和软件成本模块化和软件成本31三、软件设计的概念和原理三、软件设计的概念和原理6.6.6.6.抽象抽象抽象抽象n n软件系统进行模块设计时,可有不同的抽象层次。软件系统进行模块设计时,可有不同的抽象层次
34、。软件系统进行模块设计时,可有不同的抽象层次。软件系统进行模块设计时,可有不同的抽象层次。n n在最高的抽象层次上在最高的抽象层次上在最高的抽象层次上在最高的抽象层次上,可以使用问题所处环境的语言概括地描可以使用问题所处环境的语言概括地描可以使用问题所处环境的语言概括地描可以使用问题所处环境的语言概括地描述问题的解法。述问题的解法。述问题的解法。述问题的解法。n n在较低的抽象层次上在较低的抽象层次上在较低的抽象层次上在较低的抽象层次上,则采用过程化的方法则采用过程化的方法则采用过程化的方法则采用过程化的方法.过程的抽象过程的抽象过程的抽象过程的抽象a.a.在软件需求分析阶段,用在软件需求分析
35、阶段,用在软件需求分析阶段,用在软件需求分析阶段,用“问题所处环境的为大问题所处环境的为大问题所处环境的为大问题所处环境的为大家所熟悉的术语家所熟悉的术语家所熟悉的术语家所熟悉的术语”来描述软件的解决方法。来描述软件的解决方法。来描述软件的解决方法。来描述软件的解决方法。b.b.在从概要设计到详细设计的过程中,抽象化的层在从概要设计到详细设计的过程中,抽象化的层在从概要设计到详细设计的过程中,抽象化的层在从概要设计到详细设计的过程中,抽象化的层次逐次降低。次逐次降低。次逐次降低。次逐次降低。数据抽象数据抽象数据抽象数据抽象它实际上是跟数据结构相关连的,前面讲它实际上是跟数据结构相关连的,前面讲
36、它实际上是跟数据结构相关连的,前面讲它实际上是跟数据结构相关连的,前面讲的层次方框图和的层次方框图和的层次方框图和的层次方框图和WarnierWarnierWarnierWarnier图实际上就是一种数据结图实际上就是一种数据结图实际上就是一种数据结图实际上就是一种数据结构的抽象,在面向对象里还会有进一步的数据抽象构的抽象,在面向对象里还会有进一步的数据抽象构的抽象,在面向对象里还会有进一步的数据抽象构的抽象,在面向对象里还会有进一步的数据抽象的方法。的方法。的方法。的方法。32例例 开发一个开发一个CADCAD软件时的三种抽象层次软件时的三种抽象层次(1)(1)(1)(1)过程抽象过程抽象过
37、程抽象过程抽象抽象层次抽象层次抽象层次抽象层次.用问题所处环境的术语来描述这个软件用问题所处环境的术语来描述这个软件用问题所处环境的术语来描述这个软件用问题所处环境的术语来描述这个软件:该软件包括一个计算机绘图界面,向绘图员显示图形,该软件包括一个计算机绘图界面,向绘图员显示图形,该软件包括一个计算机绘图界面,向绘图员显示图形,该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。以及一个数字化仪界面,用以代替绘图板和丁字尺。以及一个数字化仪界面,用以代替绘图板和丁字尺。以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、
38、所有的几所有直线、折线、矩形、圆及曲线的描画、所有的几所有直线、折线、矩形、圆及曲线的描画、所有的几所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个何计算、所有的剖面图和辅助视图都可以用这个何计算、所有的剖面图和辅助视图都可以用这个何计算、所有的剖面图和辅助视图都可以用这个CADCADCADCAD软软软软件实现件实现件实现件实现。抽象层次抽象层次抽象层次抽象层次.任务需求的描述任务需求的描述任务需求的描述任务需求的描述。CAD SOFTWARE TASKSCAD SOFTWARE TASKSCAD SOFTWARE TASKSCAD SOFTWARE T
39、ASKS user interaction task;user interaction task;user interaction task;user interaction task;2-D drawing creation task;2-D drawing creation task;2-D drawing creation task;2-D drawing creation task;graphics display task;graphics display task;graphics display task;graphics display task;drawing file ma
40、nagement task;drawing file management task;drawing file management task;drawing file management task;end.end.end.end.在这个抽象层次上在这个抽象层次上在这个抽象层次上在这个抽象层次上,未给出未给出未给出未给出“怎样做怎样做怎样做怎样做”的信息的信息的信息的信息,不不不不能直接实现。能直接实现。能直接实现。能直接实现。33抽象层次抽象层次抽象层次抽象层次.程序过程表示。以程序过程表示。以程序过程表示。以程序过程表示。以2-D(2-D(2-D(2-D(二维二维二维二维)绘图生成任务绘
41、图生成任务绘图生成任务绘图生成任务为例为例为例为例:PROCEDURE PROCEDURE PROCEDURE PROCEDURE:2-D drawing creation2-D drawing creation2-D drawing creation2-D drawing creation REPEAT UNTIL(drawing creation task REPEAT UNTIL(drawing creation task REPEAT UNTIL(drawing creation task REPEAT UNTIL(drawing creation task terminates)te
42、rminates)terminates)terminates)DO WHILE(digitizer interaction occurs)DO WHILE(digitizer interaction occurs)DO WHILE(digitizer interaction occurs)DO WHILE(digitizer interaction occurs)digitizer interface task;digitizer interface task;digitizer interface task;digitizer interface task;DETERMINE drawing
43、 request CASE;DETERMINE drawing request CASE;DETERMINE drawing request CASE;DETERMINE drawing request CASE;line line line line:line drawing task;line drawing task;line drawing task;line drawing task;rectangle rectangle rectangle rectangle:rectangle drawing task;rectangle drawing task;rectangle drawi
44、ng task;rectangle drawing task;circle circle circle circle:circle drawing task;circle drawing task;circle drawing task;circle drawing task;二维画图又分二维画图又分为以下为以下CASE,案例,任务的案例,任务的集合集合34 (2 2 2 2)数据抽象)数据抽象)数据抽象)数据抽象在不同层次上描述数据对象的细节,定义与该数据对象在不同层次上描述数据对象的细节,定义与该数据对象在不同层次上描述数据对象的细节,定义与该数据对象在不同层次上描述数据对象的细节,定义与
45、该数据对象相关的操作。相关的操作。相关的操作。相关的操作。例如,在例如,在例如,在例如,在CADCADCADCAD软件中,定义一个叫做软件中,定义一个叫做软件中,定义一个叫做软件中,定义一个叫做drawingdrawingdrawingdrawing绘图的数据绘图的数据绘图的数据绘图的数据对象。可将对象。可将对象。可将对象。可将drawingdrawingdrawingdrawing规定为一个抽象数据类型,定义它规定为一个抽象数据类型,定义它规定为一个抽象数据类型,定义它规定为一个抽象数据类型,定义它的内部细节为的内部细节为的内部细节为的内部细节为:TYPE drawing IS STRUCT
46、URE TYPE drawing IS STRUCTURE TYPE drawing IS STRUCTURE TYPE drawing IS STRUCTURE DEFINDDEFINDDEFINDDEFIND number number number number IS IS IS IS STRING STRING STRING STRING LENGTH(12);LENGTH(12);LENGTH(12);LENGTH(12);geometry DEFIND geometry DEFIND geometry DEFIND geometry DEFIND notes notes notes
47、 notes IS IS IS IS STRING STRING STRING STRING LENGTH(256);LENGTH(256);LENGTH(256);LENGTH(256);BOM BOM BOM BOM DEFIND DEFIND DEFIND DEFIND END drawing TYPE;END drawing TYPE;END drawing TYPE;END drawing TYPE;宏宏宏宏35n n数据抽象drawing本身由另外一些数据抽象,如geometry、BOM(bill of materials)构成n n定义drawing的抽象数据类型之后,可引用它来
48、定义其它数据对象,而不必涉及drawing的内部细节n n例如,定义:blue-print IS INSTANCE OF drawing;或n n schematic IS INSTANCE OF drawing;7.7.信息屏蔽和局部化信息屏蔽和局部化信息屏蔽和局部化信息屏蔽和局部化 模块中所包含的信息(包括数据和过程)不允许其它模块中所包含的信息(包括数据和过程)不允许其它模块中所包含的信息(包括数据和过程)不允许其它模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。不需要这些信息的模块使用。不需要这些信息的模块使用。不需要这些信息的模块使用。36三、软件设计的概念和
49、原理三、软件设计的概念和原理8.8.8.8.模块独立(模块独立(模块独立(模块独立(ModuleModuleModuleModule)模块:又称模块:又称模块:又称模块:又称“组件组件组件组件”。它一般具有如下三个基本属性。它一般具有如下三个基本属性。它一般具有如下三个基本属性。它一般具有如下三个基本属性:n n功能:描述该模块实现什么功能。功能:描述该模块实现什么功能。功能:描述该模块实现什么功能。功能:描述该模块实现什么功能。n n逻辑:描述模块内部怎么做逻辑:描述模块内部怎么做逻辑:描述模块内部怎么做逻辑:描述模块内部怎么做n n状态:该模块使用时的环境和条件状态:该模块使用时的环境和条
50、件状态:该模块使用时的环境和条件状态:该模块使用时的环境和条件在描述一个模块时,还必须按模块的在描述一个模块时,还必须按模块的在描述一个模块时,还必须按模块的在描述一个模块时,还必须按模块的外部特性外部特性外部特性外部特性与与与与内部特性内部特性内部特性内部特性分别描述分别描述分别描述分别描述n n模块的模块的模块的模块的外部特性外部特性外部特性外部特性 模块的模块名、参数表、其中的输入参数模块的模块名、参数表、其中的输入参数模块的模块名、参数表、其中的输入参数模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统造成的影响和输出参数,以及给程序以至整个系统造成的影响和输出参数