《结构化软件设计精选文档.ppt》由会员分享,可在线阅读,更多相关《结构化软件设计精选文档.ppt(98页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、结构化软件设计 2009 BUPT TSEG本讲稿第一页,共九十八页2 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心本章内容本章内容u7.1 系统功能结构图u7.2 变换映射u7.3 事务映射u7.4 变换-事务混合型的系统结构图u7.5 改进系统功能结构图的启发式原则u7.6 数据设计和文档设计的原则u7.7 设计的后处理u7.8 详细设计u7.9 界面设计u7.10 HIPO设计工具u7.11 Jackson系统开发方法简介本讲稿第二页,共九十八页3 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心引言引言
2、u结构化设计方法依据需求分析的结果“数据流图”推导出软件的系统功能结构图。其要点是:建立数据流的类型。指明数据流的边界。将数据流图映射到程序结构。用“因子化”方法定义控制的层次结构。用设计测量和一些启发式规则对结构进行细化。本讲稿第三页,共九十八页4 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1 系统功能结构图系统功能结构图u7.1.1 系统结构图中的模块u7.1.2 变换型数据流与变换型系统结构u7.1.3 事务型数据流与事务型系统结构图本讲稿第四页,共九十八页5 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软
3、件工程中心7.1.1 系统结构图中的模块系统结构图中的模块u一般有四种基本类型的模块:传入模块传入模块:从下属模块取得数据,经过某些处理,再将其传送给上级模块。传出模块传出模块:从上级模块获得数据,进行某些处理,再将其传送给下属模块。变换模块变换模块:即加工模块。它从上级模块取得数据,进行处理,转换成其它形式,再传送回上级模块。协调模块协调模块:对所有下属模块进行协调和管理的模块。本讲稿第五页,共九十八页6 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1.1 系统结构图中的模块系统结构图中的模块u在系统结构图中不能再分解的底层模块为原子模块。u因
4、子分解系统:所有系统的加工处理都由原子模块完成;其它非原子模块仅仅进行控制和协调的功能。u系统结构图是完全因子分解的系统是最好的系统。u通常,系统功能结构图根据数据流图中加工特性分为以下两种结构:变换处理型事务处理型本讲稿第六页,共九十八页7 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1.2变换型数据流与变换型系变换型数据流与变换型系统结构统结构u变换型数据处理问题的工作过程大致分为三步,取得数据变换数据给出数据 本讲稿第七页,共九十八页8 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1.3事务型
5、数据流与事务型事务型数据流与事务型系统结构图系统结构图u事务型数据处理问题的工作机理是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。u可以引发一个或多个处理作业数据流,就叫做事务。事务是最小的工作单元,不论成功与否都作为一个整体进行工作。u事务型系统结构图中由以下模块:事务处理中心:负责任务的分派;事务处理加工:完成具体的处理;本讲稿第八页,共九十八页9 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务的特点事务的特点u原子性:标识事务是否完全地完成。如果事务完成,则组成事务的所有任务都完成,一旦有一个任务失败,事
6、务就失败,系统反回事务开始前的状态。u一致性:保证系统的任何事务最后都处于有效状态。u隔离性:在隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。u持久性:持久性意味着一旦事务执行成功,在系统中产生的所有变化将是永久的。本讲稿第九页,共九十八页10 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务型系统结构图事务型系统结构图 事务中心模块按所接受的事务的类型,选择某一个事务处理模块执行。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。不同的事务处理模块可以共享一些操作模块。不同的操作模块又可以共享一些细节模块
7、。本讲稿第十页,共九十八页11 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.2 变换映射变换映射u变换映射是一组设计步骤,将具有变换流特征的数据流图映射为一个预定义的程序结构模版。u运用变换映射方法建立初始的系统结构图,然后进行多次改进,得到系统的最终结构图。(1)复审并评估分析模型;(2)复审并重画数据流图;(3)确定数据流图中的变换和事务特征;(4)区分输入流、输出流和中心变换部分,即标明数据流的边界;(5)进行一级“因子化”分解,设计顶层和第一层模块;(6)进行二级“因子化”分解,设计中、下层模块;(7)利用一些启发式原则来改进系统的初始结
8、构图,直到得到符合要求的结构图为止。本讲稿第十一页,共九十八页12 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心重画数据流图重画数据流图u其出发点是描述系统中的数据是如何流动的。u可以从顶层加工框开始,逐层向下检查各变换型加工是否具有高内聚的特性(即加工具有执行单一、独立的功能)以及每个加工是否具有足够多的细节信息,不需要再进一步细化。u并根据需要将局部层次的数据流图合并为一层,便于理解和设计;本讲稿第十二页,共九十八页13 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心确定数据流边界确定数据流边界u中心变换
9、:多股数据流汇集的地方往往是系统的中心变换部分。u逻辑输入:可以从数据流图上的物理输入开始,一步一步向系统中间移动,一直到数据流不再被看作是系统的输入为止,则其前一个数据流就是系统的逻辑输入。可以认为逻辑输入就是离物理输入端最远的,且仍被看作是系统输入的数据流。u逻辑输出:从物理输出端开始,一步一步地向系统中间移动,就可以找到离物理输出端最远,且仍被看作是系统输出的数据流。本讲稿第十三页,共九十八页14 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心一级因子化分解一级因子化分解u其主要任务就是设计顶层和第一层模块。顶层模块:主要起到控制和协调的作用;用
10、程序名字命名,将它画在与中心变换相对应的位置上;它调用下层模块,完成系统所要做的各项工作。中层模块(第一层):既完成一部分控制,又完成适当的变换工作;为每一个逻辑输入设计一个输入模块,为主模块提供数据;为每一个逻辑输出设计一个输出模块,它将主模块提供的数据输出;为中心变换设计一个变换模块,它将逻辑输入转换成逻辑输出;第一层模块与主模块之间传送的数据应与数据流图相对应。本讲稿第十四页,共九十八页15 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心二级因子化分解二级因子化分解u其主要任务是设计中下层模块将数据流图中的每一个变换型加工映射为程序结构中的模块输
11、入模块输出模块变换模块从变换中心的边界开始,沿输入路径和输出路径向外,将变换依次映射到低层的软件结构中去。最终给出初步的系统功能结构图本讲稿第十五页,共九十八页16 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心输入输入/输出输出/中心变换模块中心变换模块u输入模块:要向调用它的上级模块提供数据,由以下模块组成:接收数据模块;变换模块:把这些数据变换成它的上级模块所需的数据。u输出模块:从调用它的上级模块接收数据,用以输出,由以下模块组成:将上级模块提供的数据变换成输出的形式;将它们输出。u中心变换模块的下层模块没有通用的设计方法,一般应参照数据流图的
12、中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。本讲稿第十六页,共九十八页17 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的处理说明模块的处理说明u模块输入和输出的信息,即接口描述。u模块需要处理的信息,局部数据结构中存储的数据。u过程描述,指明该功能模块主要的逻辑规则和任务。u功能模块的有关限制条件和特殊性的要求I/O、与硬件相关的特征、时间要求等本讲稿第十七页,共九十八页18 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心数据流图推导出的数据流图推导出的系统初始结构图系统初始结构图 本
13、讲稿第十八页,共九十八页19 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.3 事务映射事务映射u事务映射也从分析数据流图开始,自顶向下,逐步分解,建立事务型系统结构图。1.复审系统分析模型复审系统分析模型2.重画数据流图重画数据流图3.确定是否具有事务流特征确定是否具有事务流特征4.确定事务中心及流特征确定事务中心及流特征5.进行事务映射进行事务映射6.因子化分解和细化因子化分解和细化7.优化系统结构优化系统结构本讲稿第十九页,共九十八页20 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心识别事务中心识别
14、事务中心u事务中心通常位于几条操作路径的起始点上,可以从数据流图上直接找出来。事务源:一个带有请求性质的数据流;事务中心:处理事务源的加工,且后继的多个加工必须是并列的在事务中心的控制下完成不同功能处理。本讲稿第二十页,共九十八页21 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务映射事务映射u事务流应映射到包含一个输入分支和一个分类事务处理分支的程序结构上。输入分支结构的开发与变换流的方法类似 分类事务处理分支结构包含一个调度模块,它调度和控制下属的事务处理模块。建立一个主模块用以代表整个加工,P层然后考虑被称为事务层的第二层模块,T层第二层模块
15、只能是三类:取得事务、处理事务和给出结果。处理事务模块的下层为操作模块,A层操作模块之下为细节模块,D层本讲稿第二十一页,共九十八页22 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务型系统结构图事务型系统结构图本讲稿第二十二页,共九十八页23 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.4 变换变换-事务混合型的系统结构图事务混合型的系统结构图u一般来讲,一个大型的软件系统不可能是单一的数据变换型,也不可能是单一的事务型,通常是变换型结构和事务型结构的混合体。u在具体的应用中一般以变换型为主,事务型
16、为辅的方式进行软件结构设计。本讲稿第二十三页,共九十八页24 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.4 变换变换-事务混合型的系统结构图事务混合型的系统结构图本讲稿第二十四页,共九十八页25 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心课堂作业课堂作业u在医院就诊系统中,挂号子系统的数据流图如下图所示:u请画出该子系统的系统结构图。分析挂号请求挂号请求科室信息查询科室排队信息确定挂号科室医生确定挂号费用科室排队信息挂号的科室医生信息查询病例信息病例号打印挂号信息收挂号费用收挂号费用挂号的科室医生信
17、息病例信息挂号费用缴费请求收费成功挂号费用挂号凭据收费失败输出挂号失败信息失败信息本讲稿第二十五页,共九十八页26 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5 改进系统功能结构图的启发改进系统功能结构图的启发式原则式原则u7.5.1 模块功能的完善化 u7.5.2消除重复功能,改善软件结构 u7.5.3模块的作用范围应在控制范围之内u7.5.4尽可能减少高扇出结构 u7.5.5避免或减少使用病态联接 u7.5.6模块的大小要适中 u7.5.7设计功能可预测的模块,避免过分受限制的模块 u7.5.8软件包应满足设计约束和可移植性 本讲稿第二十六
18、页,共九十八页27 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.1 模块功能的完善化模块功能的完善化u一个完整的功能模块,不仅应能完成指定的功能,而且还应当能够告诉使用者完成任务的状态,以及不能完成的原因。规定的功能部分。出错处理部分。当模块不能完成规定的功能时,必须返回出错信息和标志,向它的调用者报告出现这种例外情况的原因。给调用者返回一个该模块执行是否正确结束的“标志”。本讲稿第二十七页,共九十八页28 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.2消除重复功能,改善软件结构消除重复功能
19、,改善软件结构u在得到初始的功能结构图之后,如果发现有几个模块有相似之处,可加以改进。完全相似:在结构上完全相似,可能只是在数据类型上不一致。局部相似:需要考虑功能之间的耦合及内聚性 本讲稿第二十八页,共九十八页29 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.3模块的作用范围应在控制范模块的作用范围应在控制范围之内围之内u模块的控制范围包括它本身及其所有的从属模块;u模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。u如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单
20、的,否则,它的结构是复杂的。模块模块A的控制范围为:的控制范围为:ABCDEFG。模块模块C的控制范围为:的控制范围为:CFG。本讲稿第二十九页,共九十八页30 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的作用范围与控制范围模块的作用范围与控制范围本讲稿第三十页,共九十八页31 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的作用范围与控制范围模块的作用范围与控制范围u在一个设计得很好的系统模块结构图中,所有受一个判定影响的模块应该都从属于该判定所在的模块,最好局限于做出判定的那个模块及其直接下属模
21、块。u在设计过程中,当遇到作用范围不在控制范围之内,可应用如下办法把作用范围移到控制范围之内:将判定所在模块合并到父模块中,使判定处于较高的层次;将受到判定影响的模块下移到控制范围内;将判定上移到层次中较高的位置 本讲稿第三十一页,共九十八页32 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.4尽可能减少高扇出结构尽可能减少高扇出结构u模块的扇出指模块调用子模块的个数。u模块的扇出过大,将使得系统的模块结构图的宽度变大,宽度越大结构图越复杂。比较适当的模块扇出数目为25,最多不要超过9。u模块的扇出过小也不好,这样将使得系统的功能结构图的深度大
22、大增加,不但增加了模块接口的复杂度,而且增加了调用和返回的时间开销,降低系统的工作效率。本讲稿第三十二页,共九十八页33 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心扇入扇出结构的调整扇入扇出结构的调整u如果模块的扇出过大,就表明模块过分复杂,需要协调和控制过多的下属模块。u一个模块的扇入数目很大,说明共享该模块的上级模块数目增多。但如果一个模块的扇入太大,比如超过7或8,而且它又不是公用模块,说明该模块可能具有多个功能。为此应当对其进一步分析并将其功能分解。本讲稿第三十三页,共九十八页34 2009 BUPT TSEG 北京邮电大学北京邮电大学 通
23、信软件工程中心通信软件工程中心7.5.5 避免或减少使用病态联接避免或减少使用病态联接 u应限制使用如下三种病态联接:直接病态联接:即模块A直接从模块B内部取出某些数据,或者把某些数据直接送到模块B内部 公共数据域病态联接:模块A和模块B通过公共数据域直接传送或接受数据,而不是通过它们的上级模块。通信模块联接:即模块A和模块B通过通信模块TABLEIT传送数据。通信未经过上级模块。本讲稿第三十四页,共九十八页35 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.6 模块的大小要适中模块的大小要适中u模块的大小是指模块内部结构的多少。u限制模块的大
24、小是减少复杂性的手段之一,因而要求把模块的大小限制在一定的范围之内。通常规定其语句行数在50100左右,最多不超过500行。体积过大的模块往往是由于分解不充分,且具有多个功能,因此需要对功能进一步分解,生成一些下级模块或同层模块。反之,模块体积较小时也可以考虑是否可能与调用它的上级模块合并。本讲稿第三十五页,共九十八页36 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.7 设计功能可预测的模块设计功能可预测的模块 u一个功能可预测的模块不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果。u如果模块内部有一些特殊的鲜为人知的功能时,这个
25、模块就可能是不可预测的。本讲稿第三十六页,共九十八页37 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心避免过分受限制的模块避免过分受限制的模块 u一个仅处理单一功能的模块,由于具有高度的内聚性,而受到了设计人员的重视。u如果限制死了模块的局部数据结构的大小、控制流的选择或者接口模式,则很难适应用户新的要求或环境的变更,给将来的软件维护造成了很大的困难。u为了能够适应将来的变更,软件模块中局部数据结构的大小应当是可控制的,调用者可以通过模块接口上的参数表或一些预定义外部参数来规定或改变局部数据结构的大小。本讲稿第三十七页,共九十八页38 2009 BU
26、PT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.8 应满足设计约束和可移植性应满足设计约束和可移植性 u运用变换分析方法建立系统的结构图时应当注意以运用变换分析方法建立系统的结构图时应当注意以下几点:下几点:在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成之后能转向另一个模块的下层模块的设计。在设计下层模块时,应考虑模块的低耦合和高内聚问题,提高初始结构图的质量。注意黑盒技术的使用。如果出现了以下情况,就停止模块的功能分解当模块不能再细分为明显的子任务时;当分解成用户提供的模块或程序库的子程序时;当模块的界面是输入输出设备传送的信息时;当模块
27、不宜再分解得过小时。本讲稿第三十八页,共九十八页39 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.6 数据设计和文档设计的原则数据设计和文档设计的原则u7.6.1 数据设计的原则u7.6.2 文件设计的过程本讲稿第三十九页,共九十八页40 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.6.1 数据设计的原则数据设计的原则u数据设计指程序中的数据结构的设计,数据设计的过程可以概括成以下两步:(1)为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析,以便选择一个最有效的设计方案。(2
28、)确定对逻辑数据结构所必需的那些操作的程序模块(软件包),以便限制或确定各个数据设计决策的影响范围。本讲稿第四十页,共九十八页41 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心定义和设计数据的原则定义和设计数据的原则u用于软件的系统化方法也适用于数据。应当考虑几种不同的数据组织方案,还应当分析数据设计给软件设计带来的影响。u要确定所有的数据结构和在每种数据结构上施加的操作。u应当建立一个数据词典并用它来定义数据和软件的设计。u低层数据设计的决策应推迟到设计过程的后期进行。在需求分析时确定总体数据组织,在概要设计阶段加以细化,而在详细设计阶段才规定具体
29、的细节。本讲稿第四十一页,共九十八页42 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心定义和设计数据的原则定义和设计数据的原则u数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道。此原则就是信息隐蔽和与此相关的耦合性原则,把数据对象的逻辑形式与物理形式分开。u数据结构应当设计成为可复用的。建立一个存有各种可复用的数据结构模型的构件库,以减少数据定义和设计的工作量。u软件设计和程序设计语言应当支持抽象数据类型的定义和实现。本讲稿第四十二页,共九十八页43 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工
30、程中心7.6.2 文件设计的过程文件设计的过程u文件设计指数据存储文件设计,其主要工作就是根据使用要求、处理方式、存储的信息量、数据的活动性,以及所能提供的设备条件等,来确定文件类别,选择文件媒体,决定文件组织方法,设计文件记录格式,并估算文件的容量。u文件设计的过程主要分为两个阶段:第一个阶段是文件的逻辑设计,主要在概要设计阶段实施。第二个是文件的物理设计,主要在详细设计和编码环节实现。本讲稿第四十三页,共九十八页44 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心文件设计要完成的工作文件设计要完成的工作u整理必须的数据元素。u分析数据间的关系。u确
31、定文件的逻辑设计。u理解文件的特性。u确定文件的存储媒体。u确定文件的组织方式。u确定文件的记录格式。u估算存取时间和存储容量。本讲稿第四十四页,共九十八页45 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心确定文件存储媒体需要考虑的因素确定文件存储媒体需要考虑的因素u数据量:根据处理数据量,估算需要媒体的数量。数据量大的文件可选用磁带、磁盘或光盘作为存储媒体,数据量小的文件可采用软盘作为存储媒体。u处理方式:处理方式有联机处理和批处理。对于联机处理,多选用直接存取设备,如磁盘等;对于批处理,选用任何一种存储媒体都可以。u存取时间和处理时间:批处理对于
32、时间没有严格的要求,因此对存储媒体也没有特殊的要求。实时处理最好选用直接存取媒体,如磁盘等,以满足响应时间的要求。本讲稿第四十五页,共九十八页46 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心确定文件存储媒体需要考虑的因素确定文件存储媒体需要考虑的因素u数据结构:根据文件的数据结构,选用能实现其结构的合适媒体及相应的存取方法。例如,顺序文件可选用磁带或光盘,而索引文件和散列文件则必须选用磁盘。u操作要求:对于数据量大,执行时较少要求用户干预的文件,应当选用磁带媒体;而对于频繁交互的文件,应当选用磁盘媒体。u费用要求:在满足上述要求的基础上,应当尽量选
33、用价格低的媒体。本讲稿第四十六页,共九十八页47 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心文件记录格式文件记录格式u记录的长度:设计记录的长度要确保能满足需要,还要考虑使用设备的制约和效率,尽可能与读写单位匹配,并尽可能减少处理过程中内外存的交换次数。u数据项的顺序:对于可变长记录,应在记录的开头记入长度信息;对于关键码,应尽量按级别高低,顺序配置;联系较密切的数据项,应归纳在一起进行配置。u数据项的属性:属性相同的数据项,应尽量归纳在一起配置;数据项应按双字长,全字长,半字长和字节的属性,顺序配置。u预留空间:考虑到将来可能的变更或扩充,应当预
34、先留下一些空闲空间。u子数据项:可把一个数据项分成几个子数据项,每一个子数据项也可以作为单独的项来使用。本讲稿第四十七页,共九十八页48 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.7 设计后处理设计后处理u在经过变换映射和事务映射之后,还需要为所获得的系统功能结构图进行说明,形成概要设计说明书,包括以下内容:必须为每一个模块写一份处理说明;为每一个模块提供一份接口说明;确定全局数据结构和局部数据结构;指出所有的设计约束和限制。本讲稿第四十八页,共九十八页49 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中
35、心7.7.1 处理说明处理说明u处理说明是一个关于模块内部处理的清晰且无歧义的正确描述,包含了模块的主要处理任务、条件抉择和输入输出。“给出结果2”模块调用“格式化2”模块,将内部编码形式的计算结果2转换成以ASCII码表示的文本形式的预格式化数据,再调用“给出结果”模块,进一步转换成按预定的图表安排的形式输出。这种处理说明可作为初始的模块说明,以后在详细设计时还将进一步具体化。本讲稿第四十九页,共九十八页50 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.7.2 接口说明接口说明u接口说明要给出一张表格,列出所有进入模块和从模块输出的数据。应包括
36、通过参数表传递的信息外界的输入/输出信息访问全局数据区的信息指出其下属的模块和上级模块。PROCEDURE format-2;/过程format-2(格式化2)INTERFACE ACCEPTS;/入口 TYPE calc-value-2 IS BINARY CODE;/类型 calc-value-2是二进制码 INTERFACE RETURNS;/出口 TYPE preformatted-data IS NUMERIC /类型preformatted-data是数值型 *no external IO or global data Used /无外部IO或全局数据 *called by put
37、-result-2 /所调用:模块put-result-2 *calls no subordinate modules /调用:无下属模块本讲稿第五十页,共九十八页51 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.7.3 数据结构说明数据结构说明u数据结构的描述可以用伪码(如PDL语言、类PASCAL语言)或Warnier图等形式表达。本讲稿第五十一页,共九十八页52 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.7.4 概要设计评审概要设计评审u在评审中应着重评审软件需求是否得到满足,软件结构的质量
38、、接口说明、数据结构说明、实现和测试的可行性和可维护性等。u评审阶段还需要考虑和解决设计中存在的错误,以防错误在后期的软件过程中产生放大,即错误的扩大效应。本讲稿第五十二页,共九十八页53 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心设计评审的效果设计评审的效果不进行评审,12个错误带到运行环境中进行评审,3个错误带到运行环境中3个模块中包含10个设计问题:本讲稿第五十三页,共九十八页54 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.7.5 设计的优化设计的优化u在软件的程序结构和数据结构已经按照功能和
39、性能需求,以及按照设计标准和直觉被设计出来之后,再进行设计的优化工作。过早地考虑优化设计是没有意义的。u简明的结构往往是精巧的和高效的。优化要力争使模块的个数最少;寻求尽量简单的满足信息需求的数据结构。本讲稿第五十四页,共九十八页55 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心时间效率优化时间效率优化u对于有时间运行要求的应用问题,在详细设计阶段和编码阶段必须进行优化 在不考虑时间运行要求的条件下构造并改进软件的结构。在细节设计的过程中,挑出那些有可能占用过多时间的模块,并为这些模块精心设计出时间效率更高的过程(算法)。用高级程序设计语言编写代码程
40、序。检测软件,分离出占用大量处理机资源的模块。如果有必要,用依赖机器的语言(机器指令、汇编语言)重新设计或重新编码,以提高软件的效率。本讲稿第五十五页,共九十八页56 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.8 详细设计详细设计u从软件开发的工程化观点来看,在编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为编码的依据,这就是详细设计的任务。u表达详细设计规格说明的工具叫做详细设计工具,它可以分为三类:图形工具表格工具语言工具 本讲稿第五十六页,共九十八页57 2009 BUPT TSEG
41、北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.8.1 程序流程图程序流程图u程序流程图独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。u为使用流程图描述结构化程序,必须限制流程图只能使用下面给出的五种基本控制结构。本讲稿第五十七页,共九十八页58 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心本讲稿第五十八页,共九十八页59 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.8.2 N-S图图uNassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图
42、,也叫做N-S图。1.1.图中每个矩形框(除图中每个矩形框(除CASECASE构造中表示条件取值的矩形框外)构造中表示条件取值的矩形框外)都是明确定义了的功能域,以图形表示,清晰可见。都是明确定义了的功能域,以图形表示,清晰可见。2.2.它的控制转移不能任意规定,必须遵守结构化程序设计的要求。它的控制转移不能任意规定,必须遵守结构化程序设计的要求。3.3.很容易确定局部数据和(或)全局数据的作用域。很容易确定局部数据和(或)全局数据的作用域。4.4.很容易表现嵌套关系,也可表示模块的层次结构。很容易表现嵌套关系,也可表示模块的层次结构。本讲稿第五十九页,共九十八页60 2009 BUPT TS
43、EG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心N-S图示例图示例本讲稿第六十页,共九十八页61 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.8.3 PAD图图uPAD是Problem Analysis Diagram的缩写,是日立公司提出,用结构化程序设计思想表现程序逻辑结构的图形工具。uPAD也设置了五种基本控制结构的图式,并允许递归使用。现在已为ISO认可。本讲稿第六十一页,共九十八页62 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心PDA示例示例本讲稿第六十二页,共九十八页63
44、2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.8.4 判定表判定表u当算法中包含多重嵌套的条件选择时,用程序流程图、N-S图或PAD都不易清楚地描述。u然而,判定表却能清晰地表达复杂的条件组合与应做动作之间的对应关系。u判定表要求不能存在多分支判断,必须是两分支的判断多分支双分支本讲稿第六十三页,共九十八页64 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心判定表判定表“”表示该条件取值为表示该条件取值为真,真,“”表示该条件取表示该条件取值为假。值为假。空白表示这个条件无论取空白表示这个条件无论取何值对动
45、作的选择不产生何值对动作的选择不产生影响。影响。“”表示要做这个动作,表示要做这个动作,空白表示不做这个动作。空白表示不做这个动作。判定表右半部的每一列实质上是一条规则,规定了与特定条件取值组合相对应的动作。本讲稿第六十四页,共九十八页65 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.8.5 PDLuPDL是一种伪码,用于描述功能模块的算法设计和加工细节的语言。u伪码的语法规则分为“外语法”和“内语法”。外语法应当符合一般程序设计语言常用语句的语法规则;内语法可以用英语中一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。本讲稿第六十五
46、页,共九十八页66 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心PDL 的特点的特点u有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征。为了区别关键字,规定关键字一律大写,其它单词一律小写。u内语法使用自然语言来描述处理特性。内语法只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。u有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。u有子程序定义与调用机制,用以表达各种方式的接口说明。本讲稿第六十六页,共九十八页67 2009 BUPT TSEG 北京邮电大学北京邮电大学 通
47、信软件工程中心通信软件工程中心PDL 举例举例u一个具有查找拼写错误单词功能的算法 PROCEDURE spell_check IS BEGIN split document into single words look up words in dictionary display words which are not in dictionary create a new dictionary END spell_check 本讲稿第六十七页,共九十八页68 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心PROCEDURE spell_checkBE
48、GIN/split document into single wordsLOOP get next word add word to word list in sort-order EXIT WHEN all words processedEND LOOP /look up words in dictionaryLOOP get word from word listIF word not in dictionary THEN/display words not in dictionarydisplay word,prompt on user terminal IF user response
49、 says word OK THEN add word to good word list ELSE add word to bad word list ENDIF ENDIF EXIT WHEN all words processedEND LOOP/create a new words dictionarydictionary:=merge dictionary and good word listEND spell_check本讲稿第六十八页,共九十八页69 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.9 界面设计界面设计u7.9.1 置用
50、户于控制之下u7.9.2 减少用户的记忆负担u7.9.3 保持界面一致u7.9.4 界面设计模型u7.9.5 用户界面设计过程u7.9.6 界面设计需要注意的常见问题u7.9.7 界面设计评估和优化 本讲稿第六十九页,共九十八页70 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件界面简介软件界面简介u软件界面不仅是软件系统功能体现最直接的表现方式,它也是验证用户需求与功能实现是否匹配的一种有效方式。u软件开发人员期望利用自身的专业知识,将用户不完整甚至片面的需求用界面的方式将系统功能体现出来,以达到补充、修改和统一对用户需求的理解和认识。u界面设计