{管理信息化信息化知识}软件设计概要讲义

上传人:卓****库 文档编号:140425934 上传时间:2020-07-29 格式:PPTX 页数:83 大小:412.35KB
返回 下载 相关 举报
{管理信息化信息化知识}软件设计概要讲义_第1页
第1页 / 共83页
{管理信息化信息化知识}软件设计概要讲义_第2页
第2页 / 共83页
{管理信息化信息化知识}软件设计概要讲义_第3页
第3页 / 共83页
{管理信息化信息化知识}软件设计概要讲义_第4页
第4页 / 共83页
{管理信息化信息化知识}软件设计概要讲义_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《{管理信息化信息化知识}软件设计概要讲义》由会员分享,可在线阅读,更多相关《{管理信息化信息化知识}软件设计概要讲义(83页珍藏版)》请在金锄头文库上搜索。

1、第四章 概要设计,1,一、软件设计的目标和任务,1、目标 软件设计的目标是根据用信息域常用的表示方法把软件需求,功能和性能等需求规格说明书中计算机语言描述的用户的需求完全地翻译成计算机程序设计语言能看懂的东西。 数据设计侧重于数据结构的定义,就是把需求分析里面的层次方框图或warnier图表示的数据结构以及参考数据字典里面的内容从程序设计角度上看怎样设计数据结构更合理。,2,一、软件设计的目标和任务,1、目标 系统结构设计定义软件系统各主要成份之间的关系。 过程设计。把结构成份转换成软件的过程性描述。,3,开发阶段的信息流,把需求翻译成文档,4,5,2、软件设计的任务 概要设计(系统设计),将

2、软件需求转化为数据结构和软件的系统结构。概要设计由技术总监,部门经理和项目经理来做的,有可能会加一两个核心程序员。,一、软件设计的目标和任务,6,2、软件设计的任务 详细设计(过程设计),通过对结构表示进行细化,得到软件的详细的数据结构和算法。,一、软件设计的目标和任务,7,8,具体设计过程,9,10,软件设计过程,1、制定规范 在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。 阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的目标,以及它们的优先顺序。 根据目标确定最合适的设计方法。 规定设计文档的编制标准。 规

3、定编码的信息形式,与硬件,操作系统的接口规约,,11,2. 软件系统结构的总体设计 采用某种设计方法,将系统按功能划分成模块的层次结构 确定每个模块的功能。 建立与已确定的软件需求的对应关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量,软件设计过程,12,3. 处理方式设计 确定实现系统功能需求所必需的算法,评估算法的性能。 确定满足系统性能需求所必需的算法和模块间的控制方式。 周转时间 响应时间 吞吐量 精度 确定外部信号的接收发送形式。,软件设计过程,13,4. 数据结构设计 确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。 确定输入,输

4、出文件的详细的数据结构。 结合算法设计,确定算法所必需的逻辑数据结构及其操作。 确定对逻辑数据结构所必需的那些操作的程序模块(软件包),软件设计过程,14,限制和确定各个数据设计决策的影响范围 若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则 数据的保护性设计 防卫性设计:在软件设计中就插入自动检错,报错和纠错的功能 一致性设计: 保证软件运行过程中所使用的数据的类型和取值范围不变 在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏 冗余性设计:针对同一问题,由两个开发者采用不同的程序设计风格不同的算法设计软件,当两者运行结果之差不在允许范围内时,利用检

5、错系统予以纠正,或使用表决技术决定一个正确结果。,15,数据库设计,16,数据库设计举例说明,17,数据库设计(续),18,5.可靠性设计 可靠性设计也叫做质量设计 在运行过程中,为了适应环境的变化和用户新的要求,需经常对软件进行改造和修正。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护 6.编写概要设计阶段的文档 概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划,软件设计过程,19,概要设计说明书,20,7.概要设计评审 可追溯性:确认该设计是否复盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求 接口:确认该软件的内部

6、接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内 风险:确认该设计在现有技术条件下和预算范围内是否能按时实现 实用性:确认该设计对于需求的解决方案是否实用 技术清晰度:确认该设计是否以一种易于翻译成代码的形式表达,软件设计过程,21,7.概要设计评审 可维护性:确认该设计是否考虑了方便未来的维护 质量:确认该设计是否表现出良好的质量特征 各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准是什么 限制:评估对该软件的限制是否现实,是否与需求一致 其它具体问题:对于文档、可测试性、设计过程.等进行评估 8、在详细设计 确定软件各个组成部分内

7、的算法以及各部分的内部数据组织 选定某种过程的表达形式来描述各种算法。 进行详细设计的评审,软件设计过程,22,二、概要设计的过程,设想供选择的方案。技术上最高层的几个人,考虑需求规格说明书,以及之前的可行性报告里面都提到几个可行性的方案,做总体设计的人是一个公司里面技术最强的人。 选取合理的方案 系统流程图。完全从软件角度来画系统的流程。 组成系统的物理元素清单。物理元素一般是系统,子系统,模块,子模块,函数,子函数 成本/效益分析。就是有不同的开发路线,选择那一条开发路线安全性要好,开发软件质量也还可以,最省钱。 开发进度和计划。,23,二、概要设计的过程,推荐最佳方案。 功能分解。把一个

8、功能分成多个小模块,然后每一个块之间怎么样进行沟通。 设计软件结构。 数据库设计。 制定测试计划。 书写文档 系统说明 用户手册 测试计划 详细的实现计划 数据库设计结果 9. 审查和复查,24,三、软件设计的概念和原理,自顶向下,逐步细化 软件结构(搭出一个大框架) 程序结构 结构图 模块化(模块化思想,把软件分成多个模块) 抽象(通过抽象完成模块之间对外的一个黑盒装置) 信息屏蔽和局部化 模块独立,25,三、软件设计的概念和原理,自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。 软件

9、结构 软件结构包括两部分。程序的模块结构和数据的结构。 软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了。,26,27,程序结构。表明了程序各个部件(模块)的组织情况,是软件的过程表示。 结构图反映程序中模块之间的层次调用关系和联系:它以特定的符号表示模块、模块间的调用关系和模块间信息的传递,三、软件设计的概念和原理,28,三、软件设计的概念和原理,模块化的概念 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。

10、 把问题子问题的分解与软件开发中的系统子系统或模块子模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。 公式,29,分解到二级模块图,30,三、软件设计的概念和原理,模块化和软件成本,31,三、软件设计的概念和原理,抽象 软件系统进行模块设计时,可有不同的抽象层次。 在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。 在较低的抽象层次上,则采用过程化的方法. 过程的抽象 在软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。 在从概要设计到详细设计的过程中,抽象化的层次逐次降低。 数据抽象它实际上是跟数据结构相关连的,前

11、面讲的层次方框图和Warnier图实际上就是一种数据结构的抽象,在面向对象里还会有进一步的数据抽象的方法。,32,例 开发一个CAD软件时的三种抽象层次,(1)过程抽象 抽象层次. 用问题所处环境的术语来描述这个软件:该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个CAD软件实现。 抽象层次. 任务需求的描述。CAD SOFTWARE TASKS user interaction task; 2-D drawing creation task; graphics

12、 display task; drawing file management task; end. 在这个抽象层次上,未给出“怎样做”的信息,不能直接实现。,33,抽象层次. 程序过程表示。以2-D (二维)绘图生成任务为例: PROCEDURE:2-D drawing creation REPEAT UNTIL (drawing creation task terminates) DO WHILE (digitizer interaction occurs) digitizer interface task; DETERMINE drawing request CASE; line: lin

13、e drawing task; rectangle:rectangle drawing task; circle: circle drawing task; ,二维画图又分为以下CASE,案例,任务的集合,34,(2)数据抽象在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。例如,在CAD软件中,定义一个叫做drawing绘图的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为:,TYPE drawing IS STRUCTURE DEFIND number IS STRING LENGTH(12); geometry DEFIND notes IS STRING

14、 LENGTH(256); BOM DEFIND END drawing TYPE;宏,35,数据抽象drawing本身由另外一些数据抽象,如geometry、BOM (bill of materials) 构成 定义drawing的抽象数据类型之后,可引用它来定义其它数据对象,而不必涉及drawing的内部细节 例如,定义: blue-print IS INSTANCE OF drawing;或 schematic IS INSTANCE OF drawing; 信息屏蔽和局部化 模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。,36,三、软件设计的概念和原理,模块独

15、立(Module) 模块:又称“组件”。它一般具有如下三个基本属性: 功能:描述该模块实现什么功能。 逻辑:描述模块内部怎么做 状态:该模块使用时的环境和条件 在描述一个模块时,还必须按模块的外部特性与内部特性分别描述 模块的外部特性 模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统造成的影响 模块的内部特性 完成其功能的程序代码和仅供该模块内部使用的数据内部特征是内部数据,比如说两个数据进行交换,交换时要定义一个临时变量做数据交换。,37,三、软件设计的概念和原理,模块独立 是模块化、抽象、信息屏蔽和局部化概念的直接结果。每个模块完成一个相对独立的子功能,并且与其它模块

16、间的接口简单。 衡量模块独立程度的定性标准-内聚、耦合 耦合是模块之间的互相连接的紧密程度的度量。耦合是两个模块之间联系的紧密程度。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。 模块独立性比较强的模块应是高内聚低耦合的模块。,38,三、软件设计的概念和原理,耦合(模块之间的互相连接的紧密程度的度量) 数据耦合 控制耦合 公共环境耦合 内容耦合 尽量用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合,耦合程度越高,39,a.1 控制耦合如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。 a.2 数据耦合 (Data Coupling)如果一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的,则称这种耦合为数据耦合。,40,三、软件设计的概念和原理,a.3公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号