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

下载本文档

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

文档简介

1、结构化软件设计第1页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG本章内容7.1 系统功能结构图7.2 变换映射7.3 事务映射7.4 变换-事务混合型的系统结构图7.5 改进系统功能结构图的启发式原则7.6 数据设计和文档设计的原则7.7 设计的后处理7.8 详细设计7.9 界面设计7.10 HIPO设计工具7.11 Jackson系统开发方法简介第2页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心引言结构化设计方法依据需求分析的结果“数据流图”推导出软件的系统功能结构图。其要点是

2、:建立数据流的类型。指明数据流的边界。将数据流图映射到程序结构。用“因子化”方法定义控制的层次结构。用设计测量和一些启发式规则对结构进行细化。第3页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.1 系统功能结构图7.1.1 系统结构图中的模块7.1.2 变换型数据流与变换型系统结构7.1.3 事务型数据流与事务型系统结构图第4页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.1.1 系统结构图中的模块一般有四种基本类型的模块:传入模块 :从下属模

3、块取得数据,经过某些处理,再将其传送给上级模块。传出模块 :从上级模块获得数据,进行某些处理,再将其传送给下属模块。变换模块 :即加工模块。它从上级模块取得数据,进行处理,转换成其它形式,再传送回上级模块。协调模块 :对所有下属模块进行协调和管理的模块。第5页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.1.1 系统结构图中的模块在系统结构图中不能再分解的底层模块为原子模块。因子分解系统:所有系统的加工处理都由原子模块完成;其它非原子模块仅仅进行控制和协调的功能。系统结构图是完全因子分解的系统是最好的系统。 通常,系统

4、功能结构图根据数据流图中加工特性分为以下两种结构:变换处理型事务处理型第6页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.1.2变换型数据流与变换型系统结构变换型数据处理问题的工作过程大致分为三步,取得数据变换数据给出数据 第7页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.1.3事务型数据流与事务型系统结构图事务型数据处理问题的工作机理是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。可以引发一个或多个处理作

5、业数据流,就叫做事务。事务是最小的工作单元,不论成功与否都作为一个整体进行工作。事务型系统结构图中由以下模块:事务处理中心:负责任务的分派;事务处理加工:完成具体的处理;第8页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心事务的特点原子性:标识事务是否完全地完成。如果事务完成,则组成事务的所有任务都完成,一旦有一个任务失败,事务就失败,系统反回事务开始前的状态。一致性:保证系统的任何事务最后都处于有效状态。 隔离性:在隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。 持久性:持久性意味着一旦事务执行成功,在系

6、统中产生的所有变化将是永久的。 第9页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心事务型系统结构图 事务中心模块按所接受的事务的类型,选择某一个事务处理模块执行。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。不同的事务处理模块可以共享一些操作模块。不同的操作模块又可以共享一些细节模块。 第10页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.2 变换映射变换映射是一组设计步骤,将具有变换流特征的数据流图映射为一个预定

7、义的程序结构模版。 运用变换映射方法建立初始的系统结构图,然后进行多次改进,得到系统的最终结构图。 (1)复审并评估分析模型;(2)复审并重画数据流图;(3)确定数据流图中的变换和事务特征;(4)区分输入流、输出流和中心变换部分,即标明数据流的边界;(5)进行一级“因子化”分解,设计顶层和第一层模块;(6)进行二级“因子化”分解,设计中、下层模块;(7)利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。 第11页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心重画数据流图其出发点是描述系统中的数据是如何

8、流动的。可以从顶层加工框开始,逐层向下检查各变换型加工是否具有高内聚的特性(即加工具有执行单一、独立的功能)以及每个加工是否具有足够多的细节信息,不需要再进一步细化。并根据需要将局部层次的数据流图合并为一层,便于理解和设计;第12页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心确定数据流边界中心变换:多股数据流汇集的地方往往是系统的中心变换部分。逻辑输入:可以从数据流图上的物理输入开始,一步一步向系统中间移动,一直到数据流不再被看作是系统的输入为止,则其前一个数据流就是系统的逻辑输入。可以认为逻辑输入就是离物理输入端最远的

9、,且仍被看作是系统输入的数据流。逻辑输出:从物理输出端开始,一步一步地向系统中间移动,就可以找到离物理输出端最远,且仍被看作是系统输出的数据流。第13页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心一级因子化分解其主要任务就是设计顶层和第一层模块。 顶层模块:主要起到控制和协调的作用;用程序名字命名,将它画在与中心变换相对应的位置上;它调用下层模块,完成系统所要做的各项工作 。中层模块(第一层):既完成一部分控制,又完成适当的变换工作;为每一个逻辑输入设计一个输入模块,为主模块提供数据;为每一个逻辑输出设计一个输出模块,它

10、将主模块提供的数据输出;为中心变换设计一个变换模块,它将逻辑输入转换成逻辑输出;第一层模块与主模块之间传送的数据应与数据流图相对应。 第14页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心二级因子化分解其主要任务是设计中下层模块将数据流图中的每一个变换型加工映射为程序结构中的模块输入模块输出模块变换模块从变换中心的边界开始,沿输入路径和输出路径向外,将变换依次映射到低层的软件结构中去。 最终给出初步的系统功能结构图第15页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学

11、通信软件工程中心输入/输出/中心变换模块输入模块:要向调用它的上级模块提供数据,由以下模块组成:接收数据模块;变换模块:把这些数据变换成它的上级模块所需的数据。 输出模块:从调用它的上级模块接收数据,用以输出,由以下模块组成:将上级模块提供的数据变换成输出的形式;将它们输出。中心变换模块的下层模块没有通用的设计方法,一般应参照数据流图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。 第16页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心模块的处理说明模块输入和输出的信息,即接口描述。模块需要处理的信息,局部

12、数据结构中存储的数据。过程描述,指明该功能模块主要的逻辑规则和任务。功能模块的有关限制条件和特殊性的要求I/O、与硬件相关的特征、时间要求等第17页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心数据流图推导出的系统初始结构图 第18页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.3 事务映射事务映射也从分析数据流图开始,自顶向下,逐步分解,建立事务型系统结构图。 复审系统分析模型重画数据流图确定是否具有事务流特征确定事务中心及流特征进行事务映射因子

13、化分解和细化优化系统结构第19页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心识别事务中心事务中心通常位于几条操作路径的起始点上,可以从数据流图上直接找出来。事务源:一个带有请求性质的数据流;事务中心:处理事务源的加工,且后继的多个加工必须是并列的在事务中心的控制下完成不同功能处理。第20页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心事务映射事务流应映射到包含一个输入分支和一个分类事务处理分支的程序结构上。 输入分支结构的开发与变换流的方法类似 分类

14、事务处理分支结构包含一个调度模块,它调度和控制下属的事务处理模块。 建立一个主模块用以代表整个加工,P层然后考虑被称为事务层的第二层模块,T层第二层模块只能是三类:取得事务、处理事务和给出结果。 处理事务模块的下层为操作模块,A层操作模块之下为细节模块,D层第21页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心事务型系统结构图第22页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.4 变换-事务混合型的系统结构图一般来讲,一个大型的软件系统不可能是单

15、一的数据变换型,也不可能是单一的事务型,通常是变换型结构和事务型结构的混合体。在具体的应用中一般以变换型为主,事务型为辅的方式进行软件结构设计。 第23页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.4 变换-事务混合型的系统结构图第24页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心课堂作业在医院就诊系统中,挂号子系统的数据流图如下图所示:请画出该子系统的系统结构图。分析挂号请求挂号请求科室信息查询科室排队信息确定挂号科室医生确定挂号费用科室排队

16、信息挂号的科室医生信息查询病例信息病例号打印挂号信息收挂号费用收挂号费用挂号的科室医生信息病例信息挂号费用缴费请求收费成功挂号费用挂号凭据收费失败输出挂号失败信息失败信息第25页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5 改进系统功能结构图的启发式原则7.5.1 模块功能的完善化 消除重复功能,改善软件结构 模块的作用范围应在控制范围之内尽可能减少高扇出结构 避免或减少使用病态联接 模块的大小要适中 设计功能可预测的模块,避免过分受限制的模块 软件包应满足设计约束和可移植性 第26页,共98页,2022年,5月2

17、0日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5.1 模块功能的完善化一个完整的功能模块,不仅应能完成指定的功能,而且还应当能够告诉使用者完成任务的状态,以及不能完成的原因。规定的功能部分。出错处理部分。当模块不能完成规定的功能时,必须返回出错信息和标志,向它的调用者报告出现这种例外情况的原因。给调用者返回一个该模块执行是否正确结束的“标志”。 第27页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心消除重复功能,改善软件结构在得到初始的功能结构图之后,如果发现有几个模块有相似之

18、处,可加以改进。完全相似:在结构上完全相似,可能只是在数据类型上不一致。局部相似:需要考虑功能之间的耦合及内聚性 第28页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心模块的作用范围应在控制范围之内模块的控制范围包括它本身及其所有的从属模块;模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。 如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的,否则,它的结构是复杂的。 模块A的控制范围为:ABCDEFG。模块C的控制范围为:CFG。 第29页,共9

19、8页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心模块的作用范围与控制范围第30页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心模块的作用范围与控制范围在一个设计得很好的系统模块结构图中,所有受一个判定影响的模块应该都从属于该判定所在的模块,最好局限于做出判定的那个模块及其直接下属模块。 在设计过程中,当遇到作用范围不在控制范围之内,可应用如下办法把作用范围移到控制范围之内:将判定所在模块合并到父模块中,使判定处于较高的层次;将受到判定影响的模块下移到控制范围内

20、;将判定上移到层次中较高的位置 第31页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5.4尽可能减少高扇出结构模块的扇出指模块调用子模块的个数。模块的扇出过大,将使得系统的模块结构图的宽度变大,宽度越大结构图越复杂。比较适当的模块扇出数目为25,最多不要超过9。 模块的扇出过小也不好,这样将使得系统的功能结构图的深度大大增加,不但增加了模块接口的复杂度,而且增加了调用和返回的时间开销,降低系统的工作效率。 第32页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通

21、信软件工程中心扇入扇出结构的调整如果模块的扇出过大,就表明模块过分复杂,需要协调和控制过多的下属模块。 一个模块的扇入数目很大,说明共享该模块的上级模块数目增多。但如果一个模块的扇入太大,比如超过7或8,而且它又不是公用模块,说明该模块可能具有多个功能。为此应当对其进一步分析并将其功能分解。 第33页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5.5 避免或减少使用病态联接 应限制使用如下三种病态联接: 直接病态联接:即模块A直接从模块B内部取出某些数据,或者把某些数据直接送到模块B内部 公共数据域病态联接:模块A和

22、模块B通过公共数据域直接传送或接受数据,而不是通过它们的上级模块。 通信模块联接:即模块A和模块B通过通信模块TABLEIT传送数据。通信未经过上级模块。第34页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5.6 模块的大小要适中模块的大小是指模块内部结构的多少。限制模块的大小是减少复杂性的手段之一,因而要求把模块的大小限制在一定的范围之内。通常规定其语句行数在50100左右,最多不超过500行。 体积过大的模块往往是由于分解不充分,且具有多个功能,因此需要对功能进一步分解,生成一些下级模块或同层模块。反之,模块体积

23、较小时也可以考虑是否可能与调用它的上级模块合并。 第35页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5.7 设计功能可预测的模块 一个功能可预测的模块不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果。 如果模块内部有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的。 第36页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心避免过分受限制的模块 一个仅处理单一功能的模块,由于具有高度的内聚性,而受到了设计人员的重视。 如果限制死了

24、模块的局部数据结构的大小、控制流的选择或者接口模式,则很难适应用户新的要求或环境的变更,给将来的软件维护造成了很大的困难。 为了能够适应将来的变更,软件模块中局部数据结构的大小应当是可控制的,调用者可以通过模块接口上的参数表或一些预定义外部参数来规定或改变局部数据结构的大小。 第37页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.5.8 应满足设计约束和可移植性 运用变换分析方法建立系统的结构图时应当注意以下几点:在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成之后能转向另一个模块的下层模块的设计。在

25、设计下层模块时,应考虑模块的低耦合和高内聚问题,提高初始结构图的质量。 注意黑盒技术的使用。 如果出现了以下情况,就停止模块的功能分解当模块不能再细分为明显的子任务时;当分解成用户提供的模块或程序库的子程序时;当模块的界面是输入输出设备传送的信息时;当模块不宜再分解得过小时。第38页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.6 数据设计和文档设计的原则7.6.1 数据设计的原则7.6.2 文件设计的过程第39页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信

26、软件工程中心7.6.1 数据设计的原则数据设计指程序中的数据结构的设计,数据设计的过程可以概括成以下两步:(1)为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析,以便选择一个最有效的设计方案。(2)确定对逻辑数据结构所必需的那些操作的程序模块(软件包),以便限制或确定各个数据设计决策的影响范围。第40页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心定义和设计数据的原则用于软件的系统化方法也适用于数据。应当考虑几种不同的数据组织方案,还应当分析数据设计给软件设计带来的影响。要确定所有的数据结构和在每种

27、数据结构上施加的操作。应当建立一个数据词典并用它来定义数据和软件的设计。低层数据设计的决策应推迟到设计过程的后期进行。在需求分析时确定总体数据组织,在概要设计阶段加以细化,而在详细设计阶段才规定具体的细节。第41页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心定义和设计数据的原则数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道。此原则就是信息隐蔽和与此相关的耦合性原则,把数据对象的逻辑形式与物理形式分开。数据结构应当设计成为可复用的。建立一个存有各种可复用的数据结构模型的构件库,以减少数据定义和设计的工作

28、量。软件设计和程序设计语言应当支持抽象数据类型的定义和实现。第42页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.6.2 文件设计的过程文件设计指数据存储文件设计,其主要工作就是根据使用要求、处理方式、存储的信息量、数据的活动性,以及所能提供的设备条件等,来确定文件类别,选择文件媒体,决定文件组织方法,设计文件记录格式,并估算文件的容量。文件设计的过程主要分为两个阶段:第一个阶段是文件的逻辑设计,主要在概要设计阶段实施。 第二个是文件的物理设计,主要在详细设计和编码环节实现。第43页,共98页,2022年,5月20日,

29、19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心文件设计要完成的工作整理必须的数据元素。 分析数据间的关系。 确定文件的逻辑设计。 理解文件的特性。 确定文件的存储媒体。 确定文件的组织方式。 确定文件的记录格式。 估算存取时间和存储容量 。第44页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心确定文件存储媒体需要考虑的因素数据量:根据处理数据量,估算需要媒体的数量。数据量大的文件可选用磁带、磁盘或光盘作为存储媒体,数据量小的文件可采用软盘作为存储媒体。处理方式:处理方式有联机处理和批处理

30、。对于联机处理, 多选用直接存取设备,如磁盘等;对于批处理,选用任何一种存储媒体都可以。存取时间和处理时间:批处理对于时间没有严格的要求, 因此对存储媒体也没有特殊的要求。实时处理最好选用直接存取媒体,如磁盘等,以满足响应时间的要求。第45页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心确定文件存储媒体需要考虑的因素数据结构:根据文件的数据结构,选用能实现其结构的合适媒体及相应的存取方法。例如,顺序文件可选用磁带或光盘,而索引文件和散列文件则必须选用磁盘。操作要求:对于数据量大,执行时较少要求用户干预的文件,应当选用磁带媒

31、体;而对于频繁交互的文件,应当选用磁盘媒体。费用要求:在满足上述要求的基础上,应当尽量选用价格低的媒体。第46页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心文件记录格式记录的长度:设计记录的长度要确保能满足需要,还要考虑使用设备的制约和效率,尽可能与读写单位匹配,并尽可能减少处理过程中内外存的交换次数。数据项的顺序:对于可变长记录,应在记录的开头记入长度信息;对于关键码,应尽量按级别高低,顺序配置;联系较密切的数据项,应归纳在一起进行配置。数据项的属性:属性相同的数据项,应尽量归纳在一起配置;数据项应按双字长,全字长,半

32、字长和字节的属性,顺序配置。预留空间:考虑到将来可能的变更或扩充,应当预先留下一些空闲空间。子数据项:可把一个数据项分成几个子数据项,每一个子数据项也可以作为单独的项来使用。第47页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.7 设计后处理在经过变换映射和事务映射之后,还需要为所获得的系统功能结构图进行说明,形成概要设计说明书,包括以下内容:必须为每一个模块写一份处理说明;为每一个模块提供一份接口说明;确定全局数据结构和局部数据结构;指出所有的设计约束和限制。 第48页,共98页,2022年,5月20日,19点10分

33、,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.7.1 处理说明处理说明是一个关于模块内部处理的清晰且无歧义的正确描述,包含了模块的主要处理任务、条件抉择和输入输出。 “给出结果2”模块调用“格式化2”模块,将内部编码形式的计算结果2转换成以ASCII码表示的文本形式的预格式化数据,再调用“给出结果”模块,进一步转换成按预定的图表安排的形式输出。 这种处理说明可作为初始的模块说明,以后在详细设计时还将进一步具体化。第49页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.7.2 接口说明接口说明要

34、给出一张表格,列出所有进入模块和从模块输出的数据。应包括通过参数表传递的信息外界的输入/输出信息访问全局数据区的信息指出其下属的模块和上级模块。 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 da

35、ta Used /无外部IO或全局数据 * called by put-result-2 /所调用:模块put-result-2 * calls no subordinate modules /调用:无下属模块第50页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.7.3 数据结构说明数据结构的描述可以用伪码(如PDL语言、类PASCAL语言)或Warnier图等形式表达。 第51页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.7.4 概要设计评

36、审在评审中应着重评审软件需求是否得到满足,软件结构的质量、接口说明、数据结构说明、实现和测试的可行性和可维护性等。 评审阶段还需要考虑和解决设计中存在的错误,以防错误在后期的软件过程中产生放大,即错误的扩大效应。第52页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心设计评审的效果不进行评审,12个错误带到运行环境中进行评审,3个错误带到运行环境中3个模块中包含10个设计问题:第53页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.7.5 设计的优化在

37、软件的程序结构和数据结构已经按照功能和性能需求,以及按照设计标准和直觉被设计出来之后,再进行设计的优化工作。过早地考虑优化设计是没有意义的。简明的结构往往是精巧的和高效的。优化要力争使模块的个数最少;寻求尽量简单的满足信息需求的数据结构。 第54页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心时间效率优化对于有时间运行要求的应用问题,在详细设计阶段和编码阶段必须进行优化 在不考虑时间运行要求的条件下构造并改进软件的结构。在细节设计的过程中,挑出那些有可能占用过多时间的模块,并为这些模块精心设计出时间效率更高的过程(算法)。

38、用高级程序设计语言编写代码程序。检测软件,分离出占用大量处理机资源的模块。如果有必要,用依赖机器的语言(机器指令、汇编语言)重新设计或重新编码,以提高软件的效率。第55页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.8 详细设计从软件开发的工程化观点来看,在编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为编码的依据,这就是详细设计的任务。表达详细设计规格说明的工具叫做详细设计工具,它可以分为三类:图形工具表格工具语言工具 第56页,共98页,2022年,5月20日,

39、19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.8.1 程序流程图程序流程图独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。 为使用流程图描述结构化程序,必须限制流程图只能使用下面给出的五种基本控制结构。 第57页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心第58页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.8.2 N-S图Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形

40、描述工具,叫做盒图,也叫做N-S图。 图中每个矩形框(除CASE构造中表示条件取值的矩形框外)都是明确定义了的功能域,以图形表示,清晰可见。它的控制转移不能任意规定,必须遵守结构化程序设计的要求。很容易确定局部数据和(或)全局数据的作用域。很容易表现嵌套关系,也可表示模块的层次结构。第59页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心N-S图示例第60页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.8.3 PAD图PAD是Problem Anal

41、ysis Diagram的缩写,是日立公司提出,用结构化程序设计思想表现程序逻辑结构的图形工具。PAD也设置了五种基本控制结构的图式,并允许递归使用。现在已为ISO认可。 第61页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心PDA示例第62页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.8.4 判定表当算法中包含多重嵌套的条件选择时,用程序流程图、N-S图或PAD都不易清楚地描述。然而,判定表却能清晰地表达复杂的条件组合与应做动作之间的对应关系。

42、 判定表要求不能存在多分支判断,必须是两分支的判断多分支双分支第63页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心判定表“”表示该条件取值为真,“”表示该条件取值为假。空白表示这个条件无论取何值对动作的选择不产生影响。 “”表示要做这个动作,空白表示不做这个动作。 判定表右半部的每一列实质上是一条规则,规定了与特定条件取值组合相对应的动作。 第64页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.8.5 PDLPDL是一种伪码,用于描述功能模块的算

43、法设计和加工细节的语言。伪码的语法规则分为“外语法”和“内语法”。外语法应当符合一般程序设计语言常用语句的语法规则;内语法可以用英语中一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。 第65页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心PDL 的特点有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征。为了区别关键字,规定关键字一律大写,其它单词一律小写。内语法使用自然语言来描述处理特性。内语法只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。有数据说明机制,包括简单

44、的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。有子程序定义与调用机制,用以表达各种方式的接口说明。 第66页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心PDL 举例一个具有查找拼写错误单词功能的算法 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

45、 END spell_check 第67页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心PROCEDURE spell_checkBEGIN/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

46、in dictionary THEN/display words not in dictionarydisplay word, prompt on user terminal IF user response 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

47、word listEND spell_check第68页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9 界面设计7.9.1 置用户于控制之下7.9.2 减少用户的记忆负担7.9.3 保持界面一致7.9.4 界面设计模型7.9.5 用户界面设计过程7.9.6 界面设计需要注意的常见问题7.9.7 界面设计评估和优化 第69页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心软件界面简介软件界面不仅是软件系统功能体现最直接的表现方式,它也是验证用户需求与

48、功能实现是否匹配的一种有效方式。软件开发人员期望利用自身的专业知识,将用户不完整甚至片面的需求用界面的方式将系统功能体现出来,以达到补充、修改和统一对用户需求的理解和认识。界面设计主要包括三个方面:设计软件构件间的接口;设计模块和其他非人的信息生产者和消费者(比如其他外部实体)的接口;设计人(如用户)和计算机间的界面用户界面设计 第70页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心软件界面的特点软件界面具有以下特点:要充分体现系统的功能适合软件运行的环境(例如嵌入式环境)要兼顾用户使用的习惯(键盘还是鼠标)和知识水准(一

49、般用户还是具有高水平计算机能力的人员)要美观、大方、灵巧、实用要紧跟潮流 在进行用户界面设计的同时不仅要在技术问题上研究,同时还要对使用系统的用户加以研究:用户是什么样的人?用户怎样学习与新的基于计算机的系统交互?用户怎样解释系统产生的信息?用户对系统有哪些期望?第71页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心界面设计黄金规则Theo Mandel提出了三条“黄金规则”置用户于控制之下;减少用户的记忆负担;保持界面一致。第72页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北

50、京邮电大学 通信软件工程中心7.9.1 置用户于控制之下是系统的功能控制用户的操作,还是由用户定义并控制系统的功能?Mandel定义了一组设计原则允许用户操作控制:以不强迫用户进入不必要的或不希望的动作方式来定义交互模式; 提供灵活的与界面交互的方式; 允许用户交互可以被中断和撤销;当技能级别增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节。设计应允许用户与出现在屏幕上的对象直接交互。 第73页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9.2 减少用户的记忆负担当用户必须记住的东西越多时,与系统交互时出

51、错的可能性也越大。为此,一个很好的用户界面设计不应加重用户的记忆负担。 Mandel定义了一组设计原则,使得界面能够减少用户的记忆负担:减少对短期记忆的要求;建立有意义的缺省;定义直觉性的捷径;界面的视觉布局应该基于真实世界的背景 ;以不断进展的方式提示信息 。第74页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9.3 保持界面一致用户应以一致的方式展示和获取信息:所有可视信息的组织均按照贯穿所有屏幕显示所保持的设计标准输入机制被约束到有限的集合,在整个应用中被一致地使用从任务到任务的导航机制被一致地定义和实现。Ma

52、ndel定义了一组保持界面一致性的设计原则:允许用户将当前任务放入有意义的环境中,即指示当前的工作环境,提供执行相关操作的选择; 在应用系列内保持一致性,例如使用Ctrl+S表示保存 第75页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9.4 界面设计模型设计用户界面时要考虑四种模型:软件工程师创建设计模型;系统分析人员建立的用户模型;终端用户在脑海里对界面产生的映像称为用户的模型或系统感觉;系统的实现者创建系统界面模型。为了建立有效的用户界面,“开始界面设计之前,必须对用户加以了解:新手:对该应用程序或计算机的一般

53、用法几乎没有任何基本概念。 对系统有了解的中级用户:有一定的合理的知识背景,但对使用界面所必需的语法信息的了解还比较少。 对系统有了解的经验用户:该应用程序有很好的语义和语法了解 ,经常寻找捷径和简短的交互模式。 第76页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9.5 用户界面设计过程用户界面的设计过程是迭代的,其过程包含四个不同的框架任务:用户、任务和环境分析及建模;界面将物理地位于何处?用户是否将坐着、站着或完成其他和该界面无关的任务?显示设备是否适应空间、光线或噪音约束?是否存在特殊的环境因素而需要的特殊考

54、虑?界面设计:定义一组支持用户完成所需工作的界面对象和动作;界面构造:根据已经确定的用户模型和设计模型开发出界面的初始原型,经过多次跌代形成用户所需的界面;界面确认:(1)界面功能具有正确地实现每个用户任务的能力、适应所有任务变更的能力以及达到所有一般用户需求的能力;(2)界面具有良好的使用和学习的程度;(3)用户具有接受界面作为他们工作中有用工具的程度。 第77页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9.6 界面设计需要注意的常见问题在进行用户界面设计时,通常会遇到以下四种问题:系统响应时间帮助信息错误信息处

55、理命令标记第78页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心系统响应时间系统响应时间是指从用户开始执行动作(比如按回车键或点鼠标)到软件给出预期的响应。 系统响应时间包括两方面的属性:长度:如果系统响应时间过长,用户就会感到不安和烦躁,过快的系统响应时间有时也会成为问题,因为这会迫使用户加快操作节奏,从而导致错误。 可变性:相对于平均响应时间的偏差,要求响应时间向对稳定,可变性低,这往往更重要。第79页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心

56、系统联机帮助现代的软件系统都会提供联机帮助,用户可以不离开系统就能寻找到所需要的答案。除此之外,还应该提供一份详细的用户使用手册,注明每一个界面功能的操作细节和顺序。 用户怎样请求帮助?帮助菜单特殊功能提示HELP命令。怎样表示帮助?在另一个窗口中指出参考某个文档(非理想方式)在屏幕特定位置的简单提示。第80页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心系统联机帮助用户怎样回到正常的交互方式?屏幕上显示返回按钮功能键或控制序列。怎样构造帮助信息?平面式(所有信息均通过一个关键词来访问)分层式(用户可以进一步查询得到更详细

57、的信息)超文本式(通过超级链接方式)。第81页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心错误信息处理出错消息和警告是指出现问题时系统给出的“坏消息”。如果做不好的话,出错消息和警告会给出无用或误导的信息,反面增加了用户的反感。 例如:SEVERE SYSTEM FAILURE 14A 出错消息和警告应具备以下特征:以用户可以理解的术语描述;应提供如何从错误中恢复的建设性意见;应指出错误可能导致哪些不良后果(比如破坏数据),以使用户检查是否出现了这些情况或帮助用户进行改正;应伴随着视觉或听觉上的提示,即显示消息时应伴随着

58、警告或者消息用闪烁方式,或明显的颜色进行提示;不能带有判定色彩,即不能指责用户的操作不当,因为错误信息都是系统的问题而非用户造成的。第82页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.9.7 界面设计评估和优化原型完成以后,设计者就可以通过对用户收集反馈信息得到一些定性和定量的数据帮助进行界面评估。通过观察用户对界面交互的使用,记录以下信息:在标准时间内正确完成任务的数量、使用命令的频度、命令序列、用于看屏幕的时间、出错的数目、错误的类型和错误恢复时间、使用帮助的时间、标准时间段内查看帮助的次数,这些数据可以用于指导

59、界面修改。第83页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.10 HIPO设计工具7.10.1可视目录表7.10.2IPO图7.10.3利用HIPO进行迭代式细化设计第84页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心HIPO简介HIPO Hierarchy plus Input Process Output 最初只用做文档编写的格式要求,随后发展成比较有名的软件设计手段。HIPO是在开发过程中的表达工具,所以它又是开发文档的编制工具。 HIPO图采用功能框图和PDL来描述程序逻辑 ,它由两部分组成:可视目录表:给出程序的层次关系 IPO图:为程序各部分提供具体的工作细节 第85页,共98页,2022年,5月20日,19点10分,星期二 2009 BUPT TSEG 北京邮电大学 通信软件工程中心7.10.1 可视目录表可视目录表由体系框图、图例、描述说明三部分组成 体系框图:又称层次图(H图),是可视目录表的主体,表明各个功能的隶属关系。每个框内有一个名字,用以标识它的

温馨提示

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

评论

0/150

提交评论