软件开发文档概要设计.ppt
《软件开发文档概要设计.ppt》由会员分享,可在线阅读,更多相关《软件开发文档概要设计.ppt(97页珍藏版)》请在三一办公上搜索。
1、第五章 软件开发文档,主要内容,5.1 可行性研究报告 5.2 软件需求文档 5.3 面向数据流概要设计5.4 面向数据流的详细设计5.5 面向对象的软件设计,5.3面向数据流的概要设计,5.3.2软件设计的概念与原理,5.3.3模块的独立性,5.3.4图形工具,5.3.5概要设计说明书的编写示例,5.3.6数据库设计,5.3.1总体设计过程,5.3.7数据库设计说明书,概要设计:,基本目标是回答“概括地讲,系统应该如何实现?”。概要设计的两项设计任务:,确定系统的具体实现方案,确定软件结构,5.3.1总体设计过程,(1)设想供选择的方案(2)选取合理的方案(3)推荐最佳方案(4)功能分解(5
2、)设计软件结构(6)数据库设计(7)指定测试计划(8)书写文档(9)审查与复审,总体设计的过程:,(1)设想供选择的方案,总体设计的过程:,(2)选取合理的方案,总体设计的过程:,(3)推荐最佳方案,总体设计的过程:,(4)功能分解 把复杂的功能进一步分解为一系列比较简单的功能。以确定软件结构。(5)设计软件结构 软件结构是由模块组成的层次系统,通常用层次图或结构图来描述。,总体设计的过程:,(6)数据库设计 通常的四个步骤:模式设计 子模式设计 完整性与安全性 优化(7)指定测试计划 在软件开发早期考虑测试问题,能使软件设计人员在软件设计时注意提高软件的可测试性。,总体设计的过程:,(8)书
3、写文档 系统说明 用户手册 测试计划 详细的实现计划 数据库设计结果(9)审查与复审 技术审查 管理复审,5.3面向数据流的概要设计,5.3.2软件设计的概念与原理,5.3.3模块的独立性,5.3.4图形工具,5.3.5概要设计说明书的编写示例,5.3.6数据库设计,5.3.1总体设计过程,5.3.7数据库设计说明书,软件设计的概念与原理,软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。,模块化:
4、,软件设计的概念与原理,现实世界中一定的事物,状态或过程之间总存在某些相似的方面(共性)。把这些相似方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。,抽象化:,5.3面向数据流的概要设计,5.3.2软件设计的概念与原理,5.3.3模块的独立性,5.3.4图形工具,5.3.5概要设计说明书的编写示例,5.3.6数据库设计,5.3.1总体设计过程,5.3.7数据库设计说明书,模块(Module)模块独立性,模块的独立性:,模块(Module)“模块”,又称“组件”。它一般具有如下三个基本属性:功能:描述该模块实现什么功能逻辑:描述模块内部怎么做状态:该模块使用时的环境和条件,模块的独立性:
5、,模块独立性 模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的 例如,若一个模块只具有单一的功能且与其它模块没有太多的联系,则称此模块具有模块独立性,模块的独立性:,模块独立性重要性:(1)有效的模块化的软件比较容易开发(2)独立的模块比较容易测试和维护。一般采用两个准则度量模块独立性。即模块间耦合和模块内聚,耦合是模块之间的互相连接的紧密程度的度量。内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。,模块的独立性:,模块间的耦合,非直接耦合(Nondirect Couplin
6、g)如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。,模块的独立性:,数据耦合(Data Coupling)如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。标记耦合(Stamp Coupling)如果一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。,模块的独立性:,控制耦合(Control Coupling)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块
7、的功能,就是控制耦合。,模块的独立性:,外部耦合(External Coupling)一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。,模块的独立性:,公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。,模块的独立性:,内容耦合(Content Coupling)如果发生下列情
8、形,两个模块之间就发生了内容耦合(1)一个模块直接访问另一个模块的内部数据;(2)一个模块不通过正常入口转到另一模块内部;(3)两个模块有一部分程序代码重迭(只可能出现在汇编语言中);(4)一个模块有多个入口。,模块的独立性:,模块内聚,功能内聚(Functional Cohesion)一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。,模块的独立性:,信息内聚(Informational Cohesion)这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一
9、的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。,模块的独立性:,通信内聚(Communication Cohesion)如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。,模块的独立性:,过程内聚(Procedural Cohesion)使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。,模块
10、的独立性:,时间内聚(Classical Cohesion)时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。,模块的独立性:,逻辑内聚(Logical Cohesion)这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。,模块的独立性:,巧合内聚(Coincidental Cohesion)巧合内聚又称为偶然内聚。当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。,模块的独立性:
11、,5.3面向数据流的概要设计,5.3.2软件设计的概念与原理,5.3.3模块的独立性,5.3.4图形工具,5.3.5概要设计说明书的编写示例,5.3.6数据库设计,5.3.1总体设计过程,5.3.7数据库设计说明书,图形工具:,层次图层次图用来描述软件层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系。,图形工具:,HIPO图HIPO图为层次图(H图)+IPO图。层次图中的每个矩形框(除最顶层)加上编号,对应于每个矩形框用IPO图来描述模块的处理过程。,图形工具:,结构图 用于表达软件结构。在图中一个方框代表一个模块,框内注明模块的名字或主要功能,方框之间的箭头(或直线)表示
12、模块的调用关系。在结构图中,通常用带注释的箭头表示模块调用过程中来回传递的信息。一般空心圆表示传递数据;实心圆表示传递控制信息。,结构图:产生最佳解,图形工具:,还有一些符号表示模块的选择调用与循环调用。,注意:(1)层次图和结构图并不严格表示模块的调用次序。虽然多数人按照调用次序从左到右画模块,但并没有这种规定,出于其他方面的考虑,也完全可以不用这种次序画(例如为了减少交叉线)(2)此外,层次图和结构图并没有指明什么时候调用下层模块。(3)层次图和结构图只表明一个模块调用了哪些模块,至于模块内还有没有其他成份则完全没有表示。(4)层次图用于描绘软件结构的文档。结构图作为文档并不很合适,因为图
13、上包含的信息太多有时反而降低了清晰程度。但是,利用IPO图或数据字典中的信息得到模块调用时传递信息,从而由层次图导出结构图的过程,却可以作为检查设计正确性和评价模块独立性的好方法。,5.3面向数据流的概要设计,5.3.2软件设计的概念与原理,5.3.3模块的独立性,5.3.4图形工具,5.3.5概要设计说明书的编写示例,5.3.6数据库设计,5.3.1总体设计过程,5.3.7数据库设计说明书,5.3.5概要设计说明书的编写示例,GB8567-1988 计算机软件开发文件编写指南机票预定系统 银河侦探游戏软件(Galaxy Sleuth),5.3.5概要设计说明书的编写示例,引言 11编写目的
14、说明编写这份概要设计说明书的目的,指出预期的读者。,在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。,本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。在下一阶段的详细设计中,程序设计员可参考此概
15、要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。,12背景 说明:a待开发软件系统的名称;b列出此项目的任务提出者、开发者、用户以及将运行该软件的计算站(中心)。,本项目(机票预定系统)时由浙江航空公司委托,由负责开发。机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下:,13定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。,SQL S
16、ERVER:系统服务器所使用的数据库管理系统(DBMS)。SQL:一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。ROLLBACK:数据库的错误恢复机制。,14参考资料 列出有关的参考文件,如:a本项目的经核准的计划任务书或合同,上级机关的批文;b属于本项目的其他已发表文件;c本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。,以下列出在概要设计过程中所使用到的有关资料:机票预定系统项目计划任务书 浙
17、江航空公司 1999/32 机票预定系统项目开发计划 软件开发小组 1999/33 需求规格说明书 软件开发小组 1999/34 用户操作手册(初稿)软件开发小组 1999/45 软件工程及其应用 周苏、王文等天津科学技术出版社 1992/16 软件工程 张海藩清华大学出版社 1990/117 Computer Network A.S.TanenbaunPrentice Hall 1996/01文档所采用的标准是参照软件工程导论沈美明著 的“计算机软件开发文档编写指南”。,2总体设计 21需求规定 说明对本系统的主要的输入输出项目、处理的功能性能要求。,浙江航空公司为方便旅客,需开发一个机票预
18、定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。,22运行环境 简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,系统将由两部分程序组成,安装在各旅行社客户机上的客户程序及航空公司内的数据服务器程序
19、。根据调研得知所有旅行社的计算机配置均在Pentium 133级别以上,客户程序应能够在Pentium 133级别以上,Win NT环境下运行。,2.3基本设计概念和处理流程 说明本系统的基本设计概念和处理流程,尽量使用图表的形式。,下面将使用(结构化设计)面向数据流的方法对机票预定系统的处理流程进行分析。系统可分为两大部分:一、客户机上的程序,二、服务器上的程序。以下将分别对系统的这两大部分进行流程分析:3.1.1 客户机程序流程客户机上的输入信息为旅客资料或帐单号,还包括一个定票/领票选项。输出为打印帐单或机票,和确认或出错信息。其内部处理流程如下:,机票预定系统,客户机程序流程,下面对各
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 文档 概要 设计
链接地址:https://www.31ppt.com/p-6610949.html