软件概要设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.耦合性 2006.10 也称快间联系,指软件系统结构中各模块间相互 联系紧密程度的一种度量。模块之间系越紧密,其 耦合性就越强,模块的独立性则越差。模块间耦合 高低取决于模块间接口的复杂性、调用的方式及传 递的信息。 (1)无直接耦合 指两个模块之间没有直接的关系,它们分别从属 于不同模块的控制与调用,它们之间不传递任何信 息。因此模块间耦合性最弱,模块独立性最高。 (2)数据耦合 指两个模块之间有调用关系,传递的是简单的数 据值,相当于高级语言中的值传递。
4.2.4 模块独立性
为了降低软件系统的复杂性,提高可理解性、可 维护性,必须把系统划分成为多个模块,模块不能 任意划分,应尽量保持其独立性。模块独立性指每 个模块只完成系统要求的独立的子功能,并且与其 他模块的联系最少且接口简单。 如何衡量软件的独立性呢?根据模块的外部特征 和内部特征,提出了两个定性的度量标准--耦合性 和内聚性。
计。
4.1.1 基本任务
1. 设计软件系统结构(简称软件结构) 为了实现目标系统,最终必须设计出组成这个系统的 所有程序和数据库(文件),对于程序,则首先进行结 构设计,具体为: (1)采用某种设计方法,将一个复杂的系统按功能划 分成模块。 (2)确定每个模块的功能。 (3)确定模块之间的调用关系。 (4)确定模块之间的接口,即模块之间传递的信息。 (5)评价模块结构的质量。
3.编写概要设计文档 文档主要有: (1)概要设计说明书。 (2)数据库设计说明书,主要给出所使用的DBMS 简介、数据库的概念模型、逻辑设计、结果。 (3)用户手册,对需求分析阶段编写的用户手册进 行补充。 (4)修订测试计划,对测试策略、方法、步骤提出 明确要求。 4.评审 对设计部分是否完整地实现了需求中规定的功能、 性能等要求,设计方案的可行性,关键的处理及内 外部接口定义正确性、有效性,各部分之间的一致 性等等都一一进行评审。
4.2.2 抽象
抽象是认识复杂现象过程中使用的思维工 具,即抽出事物本质的共同性而暂不考虑它 的细节,不考虑其他因素。抽象的概念被广 泛应用于计算机软件领域,在软件工程学中 更是如此。软件工程过程中的每一步都可以 看作是对软件解决方法的抽象层次的一次细 化。
4.2.3 信息隐蔽
通过抽象,可以确定组成软件的过程实体。 通过信息隐蔽,可以定义和实现对模块的过 程细节和局数据结构的存取限制。信息隐蔽 指在设计和确定模块时,使得一个模块内包 含的信息(过程或数据),对于不需要这些信息 的其他模块来说,是不能访问的。
(2)数据库的设计 数据库的设计指数据存储文件的设计,主要进行以下几方 面设计: ①概念设计。在数据分析的基础上,采用自底向上的方法 从用户角度进行视图设计,一般用ER模型来表示数据模型, 这是一个概念模型。 ②逻辑设计。ER模型或IDEFlx模型是独立于数据库管理 系统(DBMS)的,要结合具体的DBMS特征来建立数据库的 逻辑结构,对于关系型的DBMS来说将概念结构转换为数据 模式、子模式并进行规范,要给出数据结构的定义,即定义 所含的数据项、类型、长度及它们之间的层次或相互关系的 表格等等。 ③物理设计。对于不同的DBMS,物理环境不同,提供的 存储结构与存取方法各不相同。物理设计就是设计数据模式 的一些物理细节,如数据项存储要求、存取方式、索引的建 立。
Hale Waihona Puke Baidu
模块化是指解决一个复杂问题时自顶向下逐层把 软件系统划分成若干模块的过程。模块完成一个特 定的子功能,所有的模块按某种方法组装起来,成 为一个整体,完成整个系统所要求的功能。 由此可知,开发一个大而复杂的软件系统,将它 进行适当的分解,不但可降低其复杂性,还可减少 开发工作量,从而降低开发成本,提高软件生产率, 但是模块划分越多,块内的工作量减少,模块之间 接口的工作量增加了,如图4—l所示。因此在划分 模块时,应减少接口的代价,提高模块的独立性。
4.1.2 软件概要设计说明书的主要 内容
概要设计说明书是概要设计阶段结束时提 交的技术文档,按国标GB8576-88的“计算 机软件产品开发文件编制指南”规定,软件 设计文档可分为“概要设计说明书”、“详 细设计说明书”、“数据库设计说明书”。
4.2 软件设计的基本原理
4.2.1 模块化 何为模块?模块在程序中是数据说明、可执行语句等程序 对象的集合,或者是单独命名和编址的元素,如高级语言中 的过程、函数、子程序等等。模块是可组合、分解和更新的 单元。模块有以下基本属性: 接口:指模块的输入与输出。 功能:指模块实现什么功能。 逻辑:描述内部如何实现要求的功能及所需的数据。 状态:该模块的运行环境,即模块的调用与被调用关系。 功能、状态与接口反映模块的外在特性,逻辑反映它的内 在特性。
设计阶段,以需求分析的结果为依据,从实
现的角度进一步划分为模块,并组成模块的 层次结构。 软件结构的设计是概要设计关键的一步,直 接影响到下一阶段详细设计与编码的工作软 件系统的质量及一些整体特性都在软件结构 的设计中决定。
2.数据结构及数据库设计 对于大型数据处理的软件系统,除了控制结构的 模块设计外,数据结构与数据库设计也是很重要的。 (1)数据结构的设计 逐步细化的方法也适用于数据结构的设计。在需 求分析阶段,已通过数据字典对数据的组成、操作 约束、数据之间的关系等方面进行了描述,确定了 数据的结构特性,在概要设计阶段要加以细化,详 细设计阶段则规定具体的实现细节。在概要设计阶 段,宜使用抽象的数据类型。
目录
软件概要设计的基本任务 4.2 软件设计的基本原理 4.3 软件结构优化准则 4.4 面向数据流的设计方法 4.5 基于IDEF0图的设计方法 4.6 表示软件结构的另一种图形工具—— HIPO图
4.1
4.1 软件概要设计的基本任务
在软件需求分析阶段,已经搞清楚了软件“做什么” 的问题,并把这些需求通过规格说明书描述了出来, 这也是目标系统的逻辑模型。 进入了设计阶段,要把软件“做什么”的逻辑模型 变换为“怎么做”的物理模型,即着手实现软件的 需求,并将设计的结果反映在“设计规格说明书” 文档中,所以软件设计是一个把软件需求转换为软 件表示的过程,最初这种表示只是描述了软件的总 的体系结构,称为软件概要设计或结构设