4第四章 总体设计.docx
- 文档编号:12101247
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:32
- 大小:28.56KB
4第四章 总体设计.docx
《4第四章 总体设计.docx》由会员分享,可在线阅读,更多相关《4第四章 总体设计.docx(32页珍藏版)》请在冰点文库上搜索。
4第四章总体设计
第四章总体设计
需求分析中得到的系统模型(软件需求规格说明书)解决了”系统必须做什么”的问题.而”系统怎么做”是由系统设计来完成的.
序:
系统设计概述
一.系统设计任务:
采用适当的手段将软件需求说明转换为软件设计文档.
系统设计分为两个阶段:
总体设计与详细设计.
1.总体设计(概要设计):
主要完成软件结构的设计,确定系统的模块及其模块之间的关系.
2.详细设计:
主要完成各个模块内部的算法和数据结构.
二.系统设计的方法
在模块化、及由顶向下等传统设计策略的基础上形成的:
1.面向数据流的结构化设计方法;
2.面向数据结构的设计:
Jackson方法、LCP等方法。
三.原型法中的系统设计
第一步原形设计:
利用现有软件组成新系统,用最快速度实现用户的主演需求,证明系统的可行性;
第二步最终设计:
保留第一步设计中已证明的有用部分,对其余部分重新设计.
§1总体设计阶段的过程和任务
总体设计过程包括两个阶段:
系统设计(确定系统的物理方案)和结构设计(确定软件结构).具体的过程和任务如下:
一.设计可供选择的方案:
从对需求分析阶段的数据流图的充分分析中提出不同的物理实现方案.
二.选取合理方案:
从前一步的若干种方案中选取几种合理的方案.对每一种合理的方案完成下列任务:
1.系统流程图;
2.组成系统的物理元素清单;
3.成本/效益分析;
4.实现这个系统的进度计划.
三.选择最佳方案:
对上述若干种合理方案经过认真、全面的分析,在广泛征求用户和专家意见的基础上,从中选出最佳的方案,并对该方案制定具体的实现计划.
四.系统的结构设计:
根据最佳方案,对系统的结构进行设计。
即通过功能的抽象和分解确定系统程序的模块组成和模块之间的相互关系等(功能结构).而功能的抽象和分解过程就是对数据流图进行抽象和细化的过程.
五.软件结构设计:
按每个模块的子功能,自顶向下组成良好的层次调用关系.其过程是将细化的数据流图映射成软件结构图.
六.数据库设计:
除对系统的程序进行模块设计外,对系统的文件或数据库进行设计.数据库的设计包括四个步骤:
1.模式设计:
确定数据库的逻辑结构,表示成关系的、层次的或网状的形式之一;
2.子模式设计:
为系统中各用户设计出各自的数据视图;
3.存储模式设计:
(1)确定数据库的空间需求、存储格式索引组成等;
(2)优化数据的存储性能;
(3)规定各用户对数据库的访问权限和保密机制;
(4)确定保证数据正确性和一致性的完整性约束条件。
七.确定测试计划:
根据系统的功能和特性制定软件测试的目的、方法、技术等。
八.书写文档
1.系统说明;
2.用户手册;
3.测试计划;
4.详细的实现计划;
5.数据库设计结果.
九.复审:
对总体设计结果进行严格技术审查,并交用户从管理角度进行复审.
§2结构化设计
一.模块化设计.
结构化设计的核心是模块层次的分解.
1.模块化
(1)模块:
数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。
如汇编语言中的子程序,Pascal语言中的过程,C语言中的函授数等。
(2)模块化:
按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
2.模块化设计的指导思想
(1)分解:
将复杂问题分解为较小的问题,减少求解问题的总工作量.软件开发的成本由模块成本(问题复杂度)与模块接口成本(接口工作量)组成.实验表明:
把一个软件系统分解的模块数控制在一个适当的范围内(72),可以使总的开发工作量保持最小.
(2)信息隐蔽:
将不需要了解模块内部的数据和过程隐蔽起来,只有为了完成软件总体功能而必须在模块间交换信息,才允许在模块间进行传递.其目的是提高模块的独立性.
(3)模块独立性:
是判断模块结构合理性的标准。
其度量标志:
A.内聚:
从功能角度对模块内部聚合能力的量度。
分为如下几类:
低内聚模块:
偶然性模块、逻辑性模块、时间性模块;
中内聚模块:
过程化模块、通讯性模块;
高内聚模块:
顺序性模块、功能性模块。
B.藕合:
是对软件内部模块间联系的量度。
分为如下几类:
弱藕合:
非直接藕合、数据藕合、特征藕合;
中藕合:
控制藕合;
较强藕合:
外部藕合、公共藕合;
强藕合:
内容藕合。
3.模块设计准则
(1)通过模块的分解与合并提高软件结构中模块的独立性,即提高模块的内聚性,降低模块间的藕合性;
(2)模块的调用个数一般不超过5个;
(3)模块的作用域(受该模块内一个判定条件影响的所有模块的集合)应该在控制域(包括模块本身及其所有下属模块的集合)之内;
(4)降低模块接口的复杂性,;
(5)力求设计的模块为单入口和单出口;
(6)模块的大小要适中.
二.总体设计阶段中的图形工具
1.层次图:
描绘系统的层次结构,形式上与数据结构层次方框图相同,但表现内容不同.这里每一个方框加上了编号,代表一个模块,方框间的连线代表模块间的调用关系.它适用于自顶向下的软件设计过程.该层次图中每一个方框对应一张HIPO图.
2.HIPO图:
模块的处理过程.
3.结构图:
在层次图中加上带注解的箭头(空心表示传递的是数据,实心表示传递的是控制信息)或附加符号,表示调用过程中来回传递的信息.
§3结构化设计方法
结构化设计(SD)属于面向数据流的设计方法,它要解决的任务是在需求分析的基础上,将DFD图“映射”为软件系统的结构图(SC图),即把DFD图表示的系统逻辑模型转换成对于软件结构的初始设计描述.以数据流图为基础,经过变换得到系统的模块结构图.
一.软件结构的基本形式(数据流图的类型)
1.变换型结构
变换型结构由三部分组成:
传入路径、变换(加工)中心和传出路径。
流经这三部分的数据流,分别称为传入流、变换流和传出流。
如图:
基本模型数据流
信息
传出流
变换
中心
传入路径传出路径
输入变换输出时间
2.事务型结构
事务型结构由至少一条接受路径、一个事务中心与若干条动作路径组成。
当外部信息沿着接受路径进入系统后,经过事务中心计算(或处理)获得某一个特定值,据此启动某一条动作路径的操作.基本模型如图:
事务
事务中心(分类)
1
接受路径(事务)
动作路径
事务2
事务3
在一个大型系统的DFD中,变换型与事务型两种结构往往同时存在.入团:
二.结构图(SC图)的画法
1.SC图的组成
(1)模块的表示符号
传入模块传出模块变换模块
XXY
Y
XY
源模块漏模块控制模块
(用于传入部分始端)(用于传出部分末端)(只调用其它模块)
XY
X……Y
(2)简单调用
入
出
1
X,Y
Z
2
Z
--
A
C
X,Y
ZZ12
C
B
模块A调用模块B和C替代画法
(3)选择调用
D
模块A根据它的内部判断来决定是否调用模块B;
根据另一判定结果选择调用模块B或模块C.
(4)循环调用
C
模块A根据它的内部条件循环调用B、C模块,直至满足循环终止条件为止。
2.变换分析(适合DFD图中的变换型结构)
变换型DFD图变换分析初始SC图
变换分析的步骤:
(1)区分传入、传出和变换中心三部分,划分DFD图的分界线。
变换中心任务指通过计算或者处理,把系统的逻辑输入变换(或加工)为系统的逻辑输出.
逻辑输入:
离物理输入端(始端)最远,但仍可以被看作系统输入的那些数据流.
逻辑输出:
离物理输出端(末端)最远,但仍可以被看作系统输出的那些数据流.
R
当数据在系统中流动时,不仅通过变换中心要变换,在传入、传出的路径上,其内容和形式也可能发生变化.
如图:
ab
crw
puv
de
传入部分变换中心传出部分
逻辑输入:
c,e加工中心:
P,Q,R逻辑输出:
u,w
注意:
A.有些系统没有中心加工,系统的逻辑输入与逻辑输出是完全相同的数据流,只需画出传入、传出部分,不要求一律分成三部分;
B.除传入部分外,在变换中心甚至传出部分也可能从系统外接受某些输入数据流,称为二次传入数据,分析时将其看成变换中心或传出部分的一个成分,不当作传入部分的一个部分.
C.对于太粗的DFD图,可以进行补充.
(2)完成第一级分解:
建立初始SC图的框架.
画出SC图的最上面的两层模块:
顶层和第一层.
顶层:
只含一个用于控制的主模块;
第一层:
一般包括传入、传出和中心变换三个模块,分别代表系统的三个相应分
支.但也有可能只有传入和传出两个模块,视DFD图的实际划分而定.
前例的第一级分解如图:
Me
顶层
c,eu,w
c,eu,w
第一层
(3)完成第二级分解:
分解SC图的各个分支。
对上步结果”由顶向下”继续进行分解,直至画出每一个分支所需要的全部模块,完成后得到系统的初始SC图。
前例的第二级分解如图:
WriteV
顶层
c,eu,w
c,eu,w
第一层
ceeprw,uwu
c,pr
第二层
bbcddeuvv
第三层
aab
第四层
3.事务分析(适合DFD图中的事务型结构:
事务型DFD图事务分析初始SC图)
事务:
引起、触发或启动某一动作或一串动作的任何数据、控制、信号、事件或状态变化。
例如:
实时系统中的数据采集、过程控制;分时系统中的交互;商业数据处理系统中的一笔帐目、一次交易等。
事务分析的步骤:
(1)在DFD图中确定事务中心、接收部分(包含接收路径)和发送部分(包含全部动作路径).如前例中划分边界后如下所示:
事务型变换型
接收部分事务中心发送部分
事务中心通常位于DFD图中多条路径的起点,从这一点引出受中心控制的所有动作路径.向事务中心提供信息的路径,是系统的接收路径(通常不只一条).
(2)画出SC图框架,把DFD图的三部分分别”映射”为事务控制模块,接收模块和动作发送模块.一般得到SC图的顶层和第一层(如果第一层简单可以并入顶层).
事务型SC图的上层结构如下所示:
事务控制
顶层
发送
接收
第一层
…
(3)分解和细化接收分支和动作分支,完成初始的SC图.接受分支一般具有变换特性,可以按变换分析对它分解.重点是对动作分支的分解(后面的例子进行解释).
三.结构图(SC图)的改进
1.模块的大小
(1)模块的适当长度选在10至100条语句之间;
(2)划分模块时,坚持模块的独立性;
(3)对较大的模块,必要时可进行分解;而较小的模块,必要时可进行合并.
2.扇入和扇出
扇入:
指模块的上层模块数;
扇出:
指模块调用下层模块的数目.
如图:
M的扇入M的扇出
M
。
。
。
。
。
。
改进原则:
(1)当两个模块具有一部分相同的功能时,可把这部分相同的功能分离为一个单独的模块,可以免除对这部分内容的重复编码和测试,节约软件开发费用.显然一个模块的扇入数越高,则共享这一模块的上级模块越多,消除重复的效果越明显.如图:
C
C
ABA’B’
改进前改进后
(2)当一个模块的扇出过高时,常常在两层模块间增加一个中间层。
例:
常规
扣款
上述模块的扇出太大,通过增加中层模块降低扇出(下例是一个事务型)。
编外人员
实发工资
3.作用范围与控制范围
(1)模块的作用范围(域):
受该模块内一个判定条件影响的所有模块的集合.
如上例中可在”计算实发工资”模块内设一个判定语句,判断包含在”工资数据”中的”工资类别”.这样执行哪一类”实发工资”,将依赖于判定的结果.上述的三个”实发工资”模块,称为这一判定(”计算实发工资”模块)的作用范围.
(2)模块的控制范围(域):
包括模块本身及其所有下属模块的集合.
(3)作用范围与控制范围的原则:
把判定的作用范围限制在判定所在模块的控制范围之内,理想的情况是使判定的作用范围和判定所在模块的控制范围尽可能吻合。
例:
以红色(深色)方块表示模块中的判定,蓝色(浅色)方块表示模块的作用范围。
判定位置违反原则判定位置符合原则,但判定点太高。
B2
B2
判定位置符合原则且位置适中。
理想的判定点位置。
B2
B2
小结:
SD方法的基本步骤
1.复查基本系统模型,检查输入输出数据是否正确合理.
2.复查数据流图,查看每一个处理是否代表一个规模适中的独立子功能,需要时对数据流图进行精化.
3.确定数据流图的类型.
4.把数据流图”映射”到系统模块结构,设计出模块结构的上层.
5.基于数据流图逐步分解高层模块结构,设计出下层模块.
6.根据模块独立原则,精化模块结构.
7.描述模块结构信息,给出进出模块的数据信息.
§4结构化设计(SD)方法应用举例
主文件修改系统
一.问题定义:
本系统用于对某银行的客户主文件的记录进行修改。
1.修改记录的步骤为:
读入修改信息检查其有效性
若有效则修改有关的文件记录,否则发出拒改信息
2.每一个主文件记录由14个数据项组成,长度为142个字符合.
序号
内容
长度
(字节)
类型
可否修改
序号
内容
长度
(字节)
类型
可否修改
1
帐号
5
数字
否
8
类型
1
字母
否
2
户名
30
数字字母
可
9
信贷员号
5
数字
可
3
地址
30
数字字母
可
10
最近一次业务日期
6
数字
否
4
省
10
字母
可
11
最后一次付息日期
6
数字
否
5
市
15
字母
可
12
余额
8
数字
否
6
邮政编码
5
数字
可
13
业务总量
8
数字
否
7
电话号码
7
数字
可
14
限额
6
数字
否
3.修改信息记录在卡片上.当发生下列情况之一时,系统将拒绝修改,同时发出拒改信息:
(1)主文件中无此帐号,或修改卡片的帐号未按由小到大的顺序排列;
(2)修改项的序号不在1—14范围内;
(3)修改值的数据长度与类型与被修改值的数据长度与类型不符;
(4)企图修改不准修改的数据项.
二.数据流图
写记录
修改卡片
卡片
顺序卡片中心加工
改后记录报告
传入分支
修改信息要改的记录
改后记录传出分支
顺序记录
要改的记录
记录新记录
主文件记录
从系统DFD图中可知,系统为变换型结构,系统具有:
(1)两个传入分支:
分别输入主文件记录和修改卡片信息;
(2)两个传出分支:
分别用于登录新的文件记录和打印修改过的记录;
(3)中心加工部分:
“帐号相符”与“修改记录”两项加工。
其中“编辑卡片”加工可以进一步细化,可知它是一个典型的事务型结构。
如图:
13
。
。
。
。
。
。
。
。
。
。
。
。
。
。
本系统为变换型与事务型的混合结构.
三.初始SC图的设计
1.根据变换分析的映射规则,可从前一流程图导出本系统的初始SC图如下:
编辑卡片
14
21,234
33,4
记录记录检查结果修改信息1.顺序记录2.修改信息
卡片卡片3.要改的记录4.改后记录
卡片卡片检察结果
2.根据变换分析的映射规则,由“编辑卡片”的分解流程图,得到“编辑卡片”的模块分解图如下:
修改项14
卡片修改信息
修改项
修改项
修改项修改项OK
OKOK修改项
3.将上述两个图合并,便得到本系统的初始SC图(略)。
四.改进初始SC图
1.“编辑修改项”模块的改进:
编辑模块中的各个修改模块中存在许多相同或相似的功能,可将模块中各种相同的操作和细节抽取出来,编成独立的模块,供有关模块共享.其中1、8、10等数据项不能修改.若含有要求修改这些项的信息,系统应回答”拒改信息”,并向“编辑修改项”模块送回一个”错误信息”,因此可将它们并入“编辑修改项”模块,同时删除1、8、10等”修改项”模块.这样第二层模块仅保留”修改项2-7”、”修改项9”和”修改项10-14”共11个模块.如下图所示:
编辑修改项
修改项6
修改项14
修改项4
修改项3
修改项2
。
。
。
。
。
。
。
。
。
拒绝非数字
拒绝非字母
拒绝非字母数字
拒绝过长字
调整长度
拒绝过短字
错误信息
检查长度
字符类型
2.涉及”帐号相符”模块:
该模块的任务是把修改卡片上的帐号同主文件当前记录的帐号作比较,决定在当前修改卡片处理完毕后,下一个应该调用的模块是“输入记录”模块还是“输入修改信息”模块。
该两个模块应属于”帐号相符”模块的判定和作用范围。
因此何以把”帐号相符”模块向上并入系统的顶层模块。
如图所示:
主文件
修改系统
写记录
修改记录
输入修改信息
打印报告
输入记录
房产管理系统
某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1)如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积、房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,从分房队列中删掉该申请单,并把此房号的信息和住户信息一起写到住房文件中,输出住房分配单位给住户,同时计算房租,并将算出的房租写到房租文件中。
(2)如果是退房申请,则从住房文件和房租文件中删掉有关信息,再把此房号的信息写到空房文件中。
(3)如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4)住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
要求完成下列工作:
1.定义;
2.简述系统的可行性;
3.用数据流程图描绘该系统的功能需求;
4.写出需求说明;
5.用面向数据流的方法设计软件结构;
6.画出获得合理申请单及申请单分类IPO图;
7.改建意见。
问题分析及其阐述如下:
1.问题定义
为了解决好房屋的分配和使用,欲开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
此外要求:
系统性能可靠、人机界面友好;具备组合查询功能,查询结果所需时间控制在10秒以内;系统应具有功能的完整性。
2.简述系统的可行性
建立系统能提高单位房产管理的水平和效率,一般为用户所欢迎,投资一台微机、一台打印机及随机软件,约1万元左右,一般单位可以接受,技术上有保证,因此建立该系统是可行的。
3.系统的数据流程图
顶层
房产
管理系统
房管部门
职工
住房申请单、查询要求查询要求
处理结果、查询结果查询结果
一层
F1房产文件
2
房产
查询系统
1
住房
分配
系统
职工房管部门
职工
住房申请单查询要求
处理结果查询结果
F2住房文件
F3房租文件
二层:
住房分配系统
F4教职工基本材料文件F1房产文件
1.2
住房要求处理
1.1
审核申请要求
职工
住房申请单合理申请单
不合理申请
处理结果
F2住房文件
F3房租文件
二层:
查询系统
F4教职工基本材料文件F1房产文件
职工房管部门
2.2
查询要求处理
2.1
审核查询要求
查询要求查询合理要求
不合理要求
查询结果
F2住房文件
F3房租文件
三层:
住房分配系统
F5分房指标文件F1房产文件
F2住房文件
分房单
F3房租文件
1.2.2
分房处理
F4教职工基本材料文件分房申请
新房申请
1.2.4
退房处理
1.2.1
申请分类
1.1
审核申请要求
职工
住房申请单合理
不合理申请申请单退房申请
调房申请
1.2.3
调房处理
退房申请
退房单
三层:
查询系统
查询结果
2.2.2
住房查询
F4教职工基本材料文件
F2住房文件
2.2.5
打印处理
2.1
审核查询要求
2.2.1
查询分类
2.2.3
房租查询
职工房管部门
查询要求合理房租
不合理要求要求记录
F3房租文件
2.2.4
房产查询
F1房产文件
四层:
住房分配系统
分房处理
1.2.2.5
生成空房文件
F9新房文件
F1房产文件
F6指标文件F7排序申请表F8空房文件F3房租文件
1.2.2.4
计算房租
1.2.2.3
分配空房
1.2.2.2
同级排序
1.2.2.1
分级
职工
分房申请分级分房分房单
申请表单
新房申请无房表单
1.2.2.6
无房处理
F2住房文件
F10无房文件
调房处理
1.2.2
分配处理
1.2.3.1
生成分房退房申请
分房申请
调房申请
退房申请
1.2.4
退房
处理
退房处理
1.2.4.4
生成
退房单
1.2.4.3
计算房租
1.2.4.2
修改房产文件
1.2.4.1
修改住房文件
职工
退房处理处理处理退房单
申请文件1文件2文件3
4.需求说明
(1)系统目标:
建立计算机房产管理系统。
(2)运行环境:
国产品牌机,硬盘12G,内存128M,速率600M,Windows2000,
关系数据库。
(3)条件:
用户界面全部汉化。
(4)功能划分:
住房要求处理功能,包括分房、调房和退房;
房屋分配情况查询功能。
(5)功能描述:
A.住房分配、调整和房租费的计算。
房产管理部门将用户住房申请按统一格式表
填写后,输入计算机,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
①如果是分房申请,则
根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当
分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置;
在进行分房时,从空房文件中读出空房信息,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4第四章 总体设计 第四 总体 设计