结构化相关设计_第1页
结构化相关设计_第2页
结构化相关设计_第3页
结构化相关设计_第4页
结构化相关设计_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

结构化相关设计3.1.1概要设计步骤1.确定设计方案1)设想供选择的方案方法:需求分析阶段得出的数据流图是总体设计的出发点,数据流图的处理进行归并分组2)推荐最佳方案考虑:系统流程、组成系统的物理元素清单、成本/效益、进度计划例如:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。3.1.1概要设计步骤采购员定货报表事务1

接收事务4

产生报表仓库

管理员D2定货信息D1库存清单2

更新库存清单3

处理定货库存

信息事务3.1.1概要设计步骤方案1:采购员定货报表事务1

接收事务4产生报表仓库

管理员D2定货信息D1库存清单2

更新库存清单3

处理定货库存

信息事务3.1.1概要设计步骤方案2采购员定货报表事务1

接收事务4

产生报表仓库

管理员D2定货信息D1库存清单2

更新库存清单3

处理定货库存

信息事务2.软件结构设计1)功能分解2)设计软件结构3.数据文件设计:数据库设计,数据代码设计4.测试方案设计3.1.1概要设计步骤堆排序的算法:

voidHeapSort(SeqIAstR){

BuildHeap(R);

for(i=n;i>1;i--){R[0]=R[1];R[1]=R[i];R[i]=R[0];

Heapify(R,1,i-1);

}}主控模块HeapSortBuildHeapHeapifyRRR,1,i-13.1.1概要设计步骤5.编写总体设计文档总体设计说明书(包括系统实现方案和软件模块结构);测试计划(包括测试策略、测试方案、预测的测试结果、测试进度计划等);用户手册(根据总体设计阶段的结果,修改初步的用户操作手册);详细的工程计划;数据库设计结果。6.审查和复审3.1.2详细设计的基本任务1、数据结构设计和数据库设计2、接口设计3、过程设计4、代码设计5、输入输出设计6、网络设计:拓扑结构7、评审:对处理过程的算法和数据库的物理结构都要评审。1)功能分解2)设计软件结构3.2软件结构设计1.模块:能独立完成一定功能的单元,基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态根据调用关系把分割好的合理模块组织起来主控模块HeapSortBuildHeapHeapifyRRR,1,i-11.减少复杂性

例如:A1000行,B2000行,B是A的2倍,同时B中的前1000和后1000之间的关系处理又会产生附加的时间开销。因此C(p1)>C(p2),E(p1)>E(p2),E(p1+p2)>E(p1)+E(p2)3.2.2模块化2.提高软件的可靠性模块调试及测试,接口测试3.提高可维护性修改或者增加以模块为单位4.有助于软件开发工程的组织管理5.有助于实现信息隐藏和局部化3.2软件结构设计3.2.1软件结构设计的基本原理:1.模块:能独立完成一定功能的单元,如Delphi的“Begin…End”,C,C++和Java{…},过程,函数,宏,面向对象的对象,对象内的方法基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态2.抽象和逐步求精:3.信息隐藏和局部化:模块的实现细节和局部数据结构,对其他模块不需要的信息进行隐藏主控模块HeapSortBuildHeapHeapifyRRR,1,i-11、模块的大小:3.2.3模块独立性2、模块之间的联系程度(耦合性):是模块之间依赖程度的度量。3、模块内元素联系程度(内聚性):内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。4、模块信息的隐蔽程度3.2.3模块独立性耦合:耦合的强度取决于接口的复杂程度,即:调用方式;指针、普通、结构体,数组等传递信息的类型和数量;耦合的类型:数据耦合控制耦合特征耦合公共耦合内容耦合3.2.3模块独立性数据耦合:模块间通过参数传递基本类型的数据3.2.3模块独立性BC数据控制耦合:传递的是控制信息,形式上还是数据AB日/月/年模块B是打印会计收支帐目统计表,可以是日报表、月报表、年报表公共耦合:两个模块都能够存取同一公共数据环境,包括变量、公共内存缓冲区、物理设备慎用公共数据区和全程变量!!!

3.2.3模块独立性特征耦合:被调用模块可以使用数据多于实际需要的数据,可能导致数据访问失控ABCED全程数据区内容耦合:一个模块与另一模块的内容直接发生联系。3.2.3模块独立性如参数调式时指针传递、引用传递LAB:Move1A1GOTOLAB模块A模块B内容耦合耦合性的设计原则:尽量使用数据,少用特征和控制耦合调用方式:控制公共环境,不采用地址引用(内容耦合)调用的参数传递1~3个低高耦合性弱强模块独立性非直接耦合数据耦合控制耦合特征耦合公共耦合内容耦合内聚(cohesion):一个模块内各个元素彼此结合的紧密程度。按照内聚强度从低到高有以下几种类型偶然内聚(concidentalcohesion)逻辑内聚(logicalcohesion):时间内聚(temporalcohesion)过程内聚(proceduralcohesion)通信内聚(communicationalcohesion)顺序内聚(sequentialcohesion)功能内聚(functionalcohesion)3.2.3模块独立性偶然内聚:一个模块完成多个完全不相关的功能。

ABCx=y+z公共模块W

GETCHARIFk=10THENS=03.2.3模块独立性逻辑内聚(logicalcohesion):一个模块完成的任务在逻辑上属于相同或相似的一类任务。

XYZABCDWSXYZWSABCD读入分数平均/最高计算平均分计算最高分输出结果3.2.3模块独立性时间内聚(temporalcohesion):一个模块完成的任务必须在同一段时间内完成。3.2.3模块独立性紧急故障处理模块1.关闭文件2.报警3.保留现场四季度结算、年终结算、下季度支出为0顺序内聚(sequentialcohesion):各成分顺序执行,前一个成分的输出是后一个成分的输入。3.2.3模块独立性求一元二次方程根模块1.输入系数2.求解3.打印方程解顺序内聚是数据流从一个处理元到另外处理元;过程是控制流从一个动作到另外动作过程内聚:处理元素是相关,必须以特定次序执行

导入学生报名信息-》考场安排通信内聚:一个模块内包含需多个功能,并且这些功能的完成都依赖于相同的公用数据,即同一数据文件。各个成分合用同一个数据,或者产生同一个输出数据。

产生上旬统计表流水帐文件产生中旬统计表产生下旬统计表产生月统计表3.2.3模块独立性模块A从文件FILE读取数据1.由数据产生报表a2.由数据产生报表b功能内聚(functionalcohesion):所有成分共同完成一个单一的功能。容易维护。3.2.3模块独立性低高内聚性弱强模块独立性偶然内聚逻辑内聚时间内聚通信内聚顺序内聚功能内聚3.2.4模块设计启发规则1、尽力提高模块独立性:高内聚、低耦合2、注意模块的可靠性、通用性、可维护性、简单性3、模块的大小应适中规模4、模块的深度、宽度、扇出和扇入应适当深度:指软件结构中模块的层数。宽度:指软件结构内同一层次的模块数的最大值。扇出:指一个模块所调用的模块数。扇入:指有多少上级模块调用它3.2.4模块设计启发规则通常设计得较好的软件结构,顶层扇出高,中间扇出较少,下层调用公用模块。5、接口简单、清晰

Aabcdefghilmnopqrst深度扇入宽度3.3软件结构设计的图形工具3.3.1层次图和HPIO图3.3.2结构图(StructuredChart,SC)3.3.1层次图或HPIO图(1)IBM公司发明的HIPO图:与文件编制技术,最初只用于文档编写的格式要求层次图

+输入/处理/输出图

(H图)+(IPO图)(HierachyInputProcessOutput)3.3.2结构图(SC)(1)SD方法在概要设计中的主要表达工具,约定编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息3.3.2结构图(SC)(2)SC中的简单调用BACx,yzz3.3.2结构图(SC)(3)SC中的选择调用ACBDA根据内部判断决定是否调用BA按另一判定结果选择调用C或D3.3.2结构图(SC)(4)SC中的循环调用ABCA根据内在的循环重复调用B、C等模块3.3.2结构图(SC)(5)出卷系统出卷系统总控模块读出用户命令出卷试题管理试卷管理系统维护设置要求手动出卷自动出卷添加试题修改试题删除试题打印试卷修改试卷删除试卷课程维护样式管理自动出卷读出试卷要求出卷显示试卷抽取试题评价写入试卷主控模块HeapSortBuildHeapHeapifyRRR,1,i-13.4面向数据流的设计方法面向数据流的设计要解决的任务:DFD(软件系统功能模型)软件系统的结构(软件结构的初始描述)映射1、数据流图的分类变换型数据流图:事务型数据流图。3.4面向数据流的设计方法一系列的加工处理根据事务类型选择一条通路混合型:以事务为中心,在分支通路上变换型的数据流以变换为中心,在变换中是以拥有多条通路的事务流T事务中心传入变换传出3.4面向数据流的设计方法传入数据事务中心变换3变换2变换1结果传出数据2、面向数据流设计方法的设计步骤1)复查基本系统模型,并精化系统数据流图,要确保数据流图的每个处理都表示一个规模适中、相对独立的子功能。2)分析数据流图类型,确定数据流具有变换流特征还是事务流特征3)如果是变换流特征,确定输入流和输出流边界,其间为变换中心。如果是事务流特征,则可确定事务控制模块、接受模块、处理模块5)根据模块独立性原理进行优化,得到具有尽可能高的内聚性,尽可能松散的耦合。4)采用自顶向下、逐步求精模块分解,并给出简要说明,包括接口信息、模型内部信息、过程陈述、约束3)判断数据流类型映射成软件结构图3.4.1变换型具体的设计步骤如下:1、确定输入流和输出流的边界,从而孤立出变换中心,并在数据流图上划分出他们的边界线。ABCDEf1f2f4PORWUf3f5f6f7f8f9f10V物理输入逻辑输入逻辑输出物理输出输入流变换中心输出流例子:统计文件单词数目的数据流图输入流边界:输入流开始,经过多个处理以后,发现数据流的性质发生变化,则该输入流前一个数据流处就是输入流边界;输出流边界:从输出端向前回溯,当发现输出流的性质发生改变时,可确定该数据流向后一个数据流处为输出流边界读文件名验证文件名统计单词格式化单词数显示单词数读文件名文件名有效文件名单词总数格式化单词数显示单词数读文件名验证文件名统计单词格式化单词数显示单词数读文件名文件名有效文件名单词总数格式化单词数显示单词数文件单词数目统计读取和验证文件名统计单词数格式化和显示单词数读文件名验证文件名格式化单词数显示单词数通信内聚性通信内聚性IP1P2P3接受数据事务中心处理路径事务控制模块接受模块处理模块选择P1P2P33.4.2事务型1、在数据流上确定事务中心、接受部分和全部处理路径。2、画出结构框架,把数据流上的三部分分别映射为事务控制模块、接受模块和处理模块。3、分解细化接受分支和处理分支,完成初始SCATM机数据流图查询存款转帐取款修改密码更新事务v更新事务w更新事务x更新事务y更新事务z审计记录确定事务类型事务选择有效事务事务2事务3事务4事务5事务1有效事务有效事务有效事务有效事务审计记录ATM机处理事务主控分析器事务选择调度器查询存款取款转账修改密码编辑事务更新文件事务中心接受数据处理模块例子:汽车数字仪表板的设计通过模数转换,实现传感器和微处理机间的接口在发光二极管面板上显示数据指示每小时英里数(mile/h),行驰的里程,每加仑油行驰的英里数(mile/Gal)等;超速警告:如果车速超过55mile/h,则发出超速警告铃声指示加速或减速补充作业1:招干考试系统的DFD导出初始SC

1

登记考生情况2

考前处理考生4

计算考生成绩总分6

各专业考生按总分排序7

录用8

输出录用通知单5

输出考生成绩单3

输入考生成绩考生考生考生情况文件9

考后考生情况统计考生补充作业2、设计一个公司的销售管理系统,其数据流图如下,在销售管理系统中,从键盘读入数据后,就要进入事务中心进行判断。在系统中有三个主要的功能选择:订货处理、进货处理和销售统计。补充作业3:将以下的数据流图转换为软件结构3.5过程设计工具3.5.1程序流程图3.5.2盒图(N-S图)3.5.3PAD图(ProblemAnalysisDiagram)3.5.4判定表3.5.5判定树3.5.6PDL(过程设计语言)3.5.1流程图国家标准GB1526-1989程序流程图中常用的符号顺序选择循环仅有顺序、选择、循环三种基本结构组成。3.5.1流程图3.5.1程序流程图例子abX1X2X7X6X4X3X5higfedcjFTFFFTTT多分支选择结构先判定型循环结构选择结构后判定型循环结构

流程图3.5.1程序流程图缺点:它本身并不是逐步求精的好工具。程序流程图中用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;

3.5.2盒图(N-S图)N-S图有而且仅有顺序、选择、循环三种基本结构组成。基本图例如下:顺序结构块1块2块3块4条件TF块1块2选择结构CaseI=1,2,3T块1块2多分支选择结构F块3块当条件成立时当型循环块直到条件成立时直到型循环N-S图3.5.2盒图(N-S图)N-S图举例ab条件1TF

Case

Xi,i=2,3,4X2X3X4当条件3成立条件2直到条件4成立直到条件成立cdefghij顺序结构选择结构多分支选择结构先判定型循环结构后判定型循环结构FTTF3.5.2盒图(N-S图)N-S图有以下一些特点:功能域有明确的规定,并且可以很直观地从N-S图上看出来;它的控制转移不能任意规定,必须遵守结构化程序设计的要求;很容易确定局部数据和全局数据的作用域;很容易表现嵌套关系,也可以表示模块的层次结构。条件TF块1块2选择结构条件TF块1块2选择结构3.5.3PAD图其基本控制结构如下:任务1任务2任务3

顺序结构先判定型循环结构WHILE型条件循环体条件then部分else部分选择结构TF后判定型循环结构UNTIL型条件循环体控制变量

任务1任务2任务n多分支选择结构值1值2值n3.5.3PAD图例1:对数组X进行排序。“自顶而下,逐步求精”

1、循环一次,排好一个X[H]排好第H个X[H]找X[J]=MAX(X[H+1]…X[n])交换X[J]和X[H]2、细化(a)(b)(b)(a)3、连接各图,构成完整的PAD图H:=1,n-1排好第H个X[H]H:=1,n-1H:=1,n-1W:=X[H]X[H]:=X[J]X[J]:=wJ:=HK:=H+1,nX[K]>X[J]J:=KH:=1,n-1H:=1,n-1H:=1,n-1例2BEGINFIRST:=K[1];SECOND:=0;FIRST=K[I]SECOND=0I:=2toNK[I]>SECONDK[I]>FIRSTSECOND=FIRSTFIRST=K[I]SECOND=K[I] ELSESECOND:=K[I]END

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论