版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息系统开发——方法、案例与实验
主讲:段智敏QQ:747885740过程设计主要内容软件设计基本原理软件设计工具软件结构设计软件详细设计主要内容学习目的与要求掌握软件过程设计的主要内容理解软件设计的基本原理了解各种软件设计工具了解软件结构设计各种方法,理解每种设计方法的适用情况掌握软件详细设计的目标和方法考核知识点软件工程设计的主要内容软件设计的基本原理软件设计工具软件结构设计方法软件详细设计软件过程设计的应用考核要求软件过程设计的主要内容综合应用:总体设计和详细设计的内容软件设计的基本原理简单应用:软件设计的几种基本原理领会:模块的基本属性、耦合性和内聚性的类型与各种类型的特点识记:模块化的定义、抽象和信息隐蔽的概念简单应用:模块独立性的定义及其衡量标准软件设计工具综合应用:各种软件设计工具及其特点考核要求软件结构设计方法识记:软件结构设计方法的分类简单应用:变换分析设计的主要步骤简单应用:事务分析设计的具体步骤综合应用:综合数据流图和分层数据流图的映射软件详细设计识记:结构化程序设计的概念简单应用:结构化程序设计的基本思想简单应用:程序设计的目标和方法软件过程设计的应用综合应用:如何进行软件过程设计软件过程设计主要内容软件总体设计(概要设计)将系统划分成功能模块明确软件结构(模块组成的层次系统)采用适当的工具描述软件结构软件详细设计确定怎样具体实现软件结构图中每个模块的具体内容细化程序的基本逻辑模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程模块化的优点:降低问题复杂性减少开发工作量降低开发成本提供软件生产率在软件的体系结构中,模块是可组合、分解和更换的单元,有以下基本属性:接口:指模块的输入输出。功能:模块实现的功能。逻辑:内部如何实现及所需数据。状态:模块的运行环境,调用与被调用关系逻辑属性反映内部特性,其它属性反映模块的外部特性。软件成本M模块数成本(工作量)接口成本成本/模块最小区域软件设计的基本原理抽象是认识复杂现象过程中使用的思维工具。抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。软件结构顶层模块控制系统主要功能并影响全局,底层模块完成具体的处理。在进行软件设计时,抽象与逐步求精、模块化密切相关,可提高软件的可理解性信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程和数据),对于不需要这些信息的其他模块来说,是不可访问的。它为软件系统的修改、测试及以后的维护都带来好处。软件设计的基本原理模块的独立性指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系量最少且接口简单。包括两个度量准则耦合性:指软件系统结构中各模块间相互联系紧密程度的一种度量。模块间耦合高低取决于接口的复杂性、调用的方式及传递的信息。内聚性:指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。启发性规则——“高内聚低耦合”原则改进软件结构,提高模块独立性;模块规模适中-每页60行语句;深度、宽度、扇入和扇出适中;模块的作用域力争在控制域之内;降低模块接口的复杂性;模块功能应该可以预测。软件设计的基本原理耦合性(由高到低)内容耦合:一个模块直接修改或操作另一个模块的数据公共耦合:两个以上的模块共同引用一个全局数据项。控制耦合:一个模块向另一模块传递一个控制信号,接受信号的模块将依据该信号值进行必要的活动。标记耦合:两个模块至少有一个通过界面传递的公共有结构的参数。数据耦合:模块间通过参数传递基本类型的数据。非直接耦合。模块间没有信息传递时,属于非直接耦合应采用的总体原则:尽量使用数据耦合少用控制耦合限制公共耦合的范围完全不用内容耦合软件设计的基本原理耦合性举例2数据耦合3标记耦合住户详情中包含了“本月用电量”和“本月用水量”模块ATRC:......模块BGOTOTRC6内容耦合5公共耦合4控制耦合内聚性(由高到低):功能内聚:模块的所有成分对完成单一功能是最基本的,且该模块对完成这一功能而言是充分必要的。顺序内聚:各成分与一个功能相关,且一个成分的输出作为另一成分的输入。通信内聚:各成分都操作在同一数据集或生成同一数据集。过程内聚:处理成分必须以特定的次序执行。时间内聚:一个模块完成的功能必须在同一时间内完成,而这些功能只是因为时间因素关联在一起。逻辑内聚:几个逻辑上相关的功能放在同一模块中。偶然内聚:一个模块之内各成分之间没有任何关系。软件设计的基本原理软件设计的基本原理顺序内聚通信内聚内聚性举例软件设计工具HIPO(HierarchyPlus/Input/Processing/Output)HIPO图是IBM公司在20世纪70年代发展起来的用于描述软件结构的图形工具。它实质上是在描述软件总体模块结构的层次图(H图)的基础上,加入了用于描述每个模块输入/输出数据和处理功能的IPO图,因此它的中文全名为层次图输入/处理/输出图。H图:用于在体系结构设计过程中描绘软件的层次结构。H图中每一个矩形框代表一个模块,图中最顶层的矩形框表示系统中的主控模块,矩形框之间的连线用于表示模块之间的调用关系。IPO图:描绘模块的输入数据、加工和输出数据之间的关系。层次图中每个矩形框相对应有IPO图,来描述该矩形框所代表的模块的具体处理过程,作为对层次图中内容的补充说明。IPO图的基本形式为:在图中左边的框中列出模块涉及的所有输入数据,在中间的框中列出主要的加工,在右边的框中列出处理后产生的输出数据;图中的箭头用于指明输入数据、加工和输出结果之间的关系表示软件结构的HIPO图订货处理1.0销售管理系统进货处理2.0销售统计3.0读库存记录1.2输入并检验订单1.1缺货处理4.0确定能否供货1.3可供货处理1.3.1缺货货单留底1.3.2H图:每个矩形框代表一个模块,连线表示“调用”而非“组成”。所谓HIPO,即对每个模块附一张IPO图。每个IPO图中应明确标出对应模块的编号。表示软件结构的HIPO图
IPO表系统:______作者:______模块:______日期:______编号:1.3
被调用:调用:输入输出:处理:局部数据元素文件名:全局变量:注释:销售管理系统确定能否订货订货处理可供货模块缺货订单留底订单订货量X货物库存量Y供货标志库存文件IFY>XTHEN可供货处理
ELSE缺货订单留底ENDIFIPO图:HIPO图特点表示模块层次和输入输出数据及处理功能。H图主要表示主功能模块与次功能模块的关系。高层IPO图描述主功能模块与次功能模块的输入、输出和处理。低层IPO图描述H图中低层次的具体设计。每层以3~4个模块为宜。HIPO图存在的不足不能详细描述算法。不容易转换成高级语言。表示软件结构的HIPO图软件结构图模块:模块的表示是表明该模块的功能。矩形表示模块,现成的模块以双纵边矩形表示。
模块间的控制关系:上层模块为了完成其任务必须依赖其他模块。模块间的信息传递:数据流和控制流软件结构图ABCMABCA查询成绩B学生记录学号查询标志软件结构图软件结构图注意事项同一名字的模块在结构图中仅能出现一次。调用关系只能从上到下。不严格表示模块的调用次序,习惯上从左到右,有时为了减少连线的交叉,适当地调整同一层模块的左右位置,以保证结构图的清晰。结构图并不指明什么时候调用下层模块,只表明一个模块调用哪些模块,至于模块内还有没有其他成分则完全没有表示。软件结构图举例产生最佳解原始输入得到好输入计算最佳解输出结果读输入编辑输入结果格式化显示输出原始输入好输入好输入解解编辑结果格式化解解格式化解软件结构图示意结构图的形态特征深度、宽度、扇入、扇出。TDMABC扇入扇出深度宽度详细设计工具详细设计结果基本上决定了最终程序代码的质量。不仅要逻辑正确,性能满足,还要简明易懂。采用自顶向下,逐步求精的程序设计方法。使用三种基本控制结构构造程序:顺序、选择、循环。单入口,单出口的共同特点。常用三种工具:图形、表格和语言。程序流程图(PFC)PAD图盒图(N-S图)过程设计语言程序流程图程序流程图PFC(programflowchart) 程序流程图是最早出现且使用较为广泛的工具之一,能够有效地描述问题求解过程中的程序逻辑结构。 程序流程图中经常使用的基本符号如下:引入了关于三种动作控制结构的术语/符号,三种控制结构:顺序选择循环程序流程图程序流程图程序流程图的主要优点在于对程序的控制流程描述直观清晰,使用灵活,便于阅读和掌握,因此在20世纪40年代末到70年代初被普遍采用。随着程序设计方法的发展,程序流程图的许多缺点逐渐暴露出来。这些缺点主要体现在以下方面:程序流程图中可以随心所欲地使用流程线,容易造成程序控制结构的混乱,与结构化程序设计的思想相违背。程序流程图难以描述逐步求精的过程,容易导致程序员过早考虑程序的控制流程,而忽略程序全局结构的设计。程序流程图难以表示系统中的数据结构。
正是由于程序流程图存在的这些缺点,越来越多的软件设计人员放弃了对它的使用,而去选择其他一些更有利于结构化设计的表达工具,如N-S图和PAD图。N-S图N-S图(Nassi-Shneiderman) N-S图又称为盒图,它是为了保证结构化程序设计而由Nassi和Shneiderman共同提出的一种图形工具。
示例N-S图N-S图N-S图的主要优点:在N-S图中,所有的程序结构均使用矩形框表示,它可以清晰地表达结构中的嵌套及模块的层次关系。由于N-S图中没有流程线,不可能随意转移控制,因而表达出的程序结构必然符合结构化程序设计“自顶向下逐步求精”的思想,有利于培养软件设计人员的良好设计风格。域可以从图上明显看出,功能域的表达明确。容易确定局部数据与全局数据的作用域。很容易表达模块的层次与嵌套关系。N-S图的主要缺优点:有控制流线,不能任意转移。控制关系隐含,循环关系隐含。当所描述的程序嵌套层次较多时,N-S图的内层方框会越画越小,不仅影响可读性而且不易修改。PAD图问题分析图PAD(problemanalysisdiagram)
PAD图是日立公司在1973年提出的一种用于详细设计的图形表达工具,它只能用于结构化程序的描述。
PAD图采用了易于使用的树型结构图形符号,既利于清晰地表达程序结构,又利于修改。PAD图中使用的基本符号:示例PAD图PAD图PAD图具有的主要优点有:使用PAD图描述的程序结构层次清晰逻辑结构关系直观、易读、易记、易修改。PAD图为多种常用高级语言提供了相应的图形符号,每种控制语句都与一个专门的图形符号相对应,易于PAD图向高级语言源程序转换。支持自顶向下、逐步求精的设计过程。支持结构化的程序设计原理,既能够描述程序的逻辑结构,又能够描述系统中的数据结构。PDL过程设计语言(ProcessDesignLanguage)是一种用于描述模块算法设计和处理细节的语言。分内外两层语言。外层具有严格的关键字语法,内层表示实际操作和条件的自然语言,语法自由。程序结构有:顺序结构、选择结构、重复结构、出口结构、扩充结构(模块定义、模块调用、数据定义、输入/输出)等。PDL语言的主要特点各种定义语句及控制结构的表达都具有严格的语法形式,使程序结构、数据说明等更加清晰。提供了数据说明机制,可用于定义简单及复杂的数据结构。提供了模块的定义和调用机制,方便了程序模块化的表达。PDL语言的缺点不如图形工具直观清晰不如判定表和判定树清晰简单软件结构设计方法软件结构包括两部分:程序模块结构和数据结构。程序结构表明了程序各部件的组织情况,通常是树状或网状结构,并包含了在程序控制上的层次关系。为了实现设计目标,总体设计的具体任务是:将DFD转化为MSD,分二步实现:第一步:将DFD转化为初始的模块结构图变换型数据流图事务型数据流图变换设计事务设计第二步:基于模块化原理“高内聚低耦合”,给出一些设计规则——经验规则,将初始的MSD转化为最终可供详细设计使用的MSD。软件结构设计方法数据流图分类变换型事务型变换设计XX系统变换模块geteputhputggetcgetdc,d->ee->ff->g,hh->yputyg->xputxx->zputzgetagetbb->da->ceeg,hhgzzxxgyyhdbcacdeefg,hfxab事务设计事务中心输入模块路径1路径2输出模块aycgbfc->ecee->gegb->dbdd->fdf变换型数据流图由输入、变换和输出三部分组成。变换中心逻辑输入逻辑输出物理输出物理输入时间内部表示信息输入流变换流信息流外部表示输出流事务型数据流图
数据沿着输入通路到达一个加工T。T将输入数据分解成一串发散的数据流,形成许多的活动路径,并根据输入数据的类型在若干动作序列中选出一个来执行。T事务处理中心接收输入数据。分析输入数据,确定类型。根据事务类型选取一活动通路。变换分析设计确定输入流和输出流的边界,从而孤立出变换中心(1)检查“输入流”的边界从输入的数据源开始,沿着每一个由数据源传入的数据流的移动方向进行跟踪分析,逐个分析它所经过的处理逻辑功能。如果仅是传入的数据流作形式上的转换,逻辑上没有进行实际的数据处理功能,则这些处理逻辑属于系统的“输入处理部分”。顺着传入的数据流的移动方向,一直跟踪到它被真正地处理为止。(2)检查“输出流”的边界从输出结果的地方开始,逆着每一个传递出去的数据流,由外向里反方向跟踪,逐个分析它的处理逻辑功能,一直反方向跟踪到它被真正地产生出来为止。(3)得到变换中心根据前两步的分析结果,画出一个闭环界线,在界线以内的就是变换中心。变换分析设计设计软件结构的顶层和第一层——变换结构CmCICTCO第一级分解变换分析设计设计软件结构的顶层和第一层——变换结构(1)顶层主模块Cm是抽象出来的,以系统的名字命名,协调控制下属模块,完成系统各项功能。(2)第一层:为每一个逻辑输入设计一个输入模块功能:为主模块提供数据输入为每一个逻辑输出设计一个输出模块功能:为主模块提供数据输出为中心变换设计一个变换模块功能:将逻辑输入转换成逻辑输出变换分析设计设计中、下层模块——自顶向下,逐层分解输入模块的下属模块设计为每个输入模块设计两个下层模块①一个用于接收数据②另一个用于将这些数据转换为所要求的数据①②重复直到物理输入为止输出模块的下属模块设计每个输出模块设计两个下层模块①一个将调用模块提供的数据转换为所需的数据形式。②另一个用于发送数据①②重复直到物理输出为止变换模块的下属模块设计按照模块独立性的原则来组织其结构,一般每个基本加工设计一个功能模块。AtoBGetBGetAaabPutBPutAbaaBtoA变换分析设计ABCDEFGHf1f2f3f4f5f6f7f8f9f10f11变换中心输入输出主模块f2Getf3将f3变换成f7和f8Putf7Getf2BFPutf9f3f7f9f7f9f3f7f8Putf8EDCf8GAHPutf10Putf11Gutf1f1f1f2f8f10f10f11f10f11f3f2初始结构图变换分析设计设计的优化——根据设计准则输入部分的求精对每个物理输入设置专门模块,以体现系统的外部接口;其他输入模块并非真正输入,当它与转换数据的模块都很简单时,可将它们合并成一个模块。GetCGetBGetAabAtoBGetBGetAaabBtoCGetCbbc变换分析设计设计的优化——根据设计准则输出部分的求精为每个物理输出设置专门模块,同时注意把相同或类似的物理输出模块合并在一起,以减低耦合度。PutBPutAbaaBtoAPutBPutAa变换分析设计设计的优化——根据设计准则变换部分的求精:根据设计准则,对模块进行合并和调整。软件结构的求精,具有很大的经验性。追求“高内聚,低耦合”方法:设计有独立功能的模块模块间传递数据型的参数模块间共享信息尽量少事务分析设计事务分析的设计步骤和变换分析的设计步骤大部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年自动化立体仓库的电气传动系统
- 2026年互联网+土木工程智能化施工的探索
- 2026春招:行政主管题库及答案
- 2026年建筑电气设计的多样化方案
- 2026春招:五粮液真题及答案
- 贴面课件教学课件
- 货运船舶相关知识培训课件
- 货运安全生产标准化培训课件
- 医疗物联网设备与智慧医院建设
- 护理护理安全管理与患者护理
- 山东省烟台市2022-2023学年八年级上学期数学期末试题(含答案)3
- 部编版道德与法治五年级上册全册复习选择题100道汇编附答案
- 掘进机整机行走的安全技术措施
- 建设工程档案管理制度
- 少年宫乒乓球活动记录文本
- 2021-2022学年云南省曲靖市部编版六年级上册期末考试语文试卷(原卷版)
- 参会人员名单(模板)
- 飞机大战游戏设计与实现
- 数学课如何提高课堂教学容量
- 监理规划毕业设计(论文)
- 京港澳高速公路段改扩建工程施工保通方案(总方案)
评论
0/150
提交评论