




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 岐兵 email:可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计实实 现现集成测试集成测试确认测试确认测试使用与维护使用与维护退役退役软件定义软件定义软件开发软件开发软件使用软件使用与维护与维护n从工程管理的角度来看,软件设计分两步完成 总体设计(概要设计),将软件需求转化为数据结构和软件的系统结构。 详细设计,即过程设计。通过对结构表示进行细化,得到软件详细的数据结构和算法。n一般交互式软件系统的设计内容 体系结构设计 数据设计 接口设计 人机界面设计 过程设计n第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序
2、复杂程度的定量度量program design codingn为sc图的每个模块确定算法和数据结构n进行详细设计的原则 在保证正确可靠前提下,尽量提高算法可读性 采用结构化设计方法,改善控制结构,降低程序复杂度,提高可测试性和可维护性n自顶向下逐步求精;n具有单入、单出的控制结构(取消goto语句) 用工具无二义的描述模块算法n详细设计过程1.确定每个模块的算法n选择适当工具表达算法执行过程2.确定每一个模块的数据组织3.为每一个模块设计一组测试用例n输入数据、预期输出结果4.编写详细设计说明书5.设计评审n详细设计内容 用图表列出系统的每个程序,包括每个模块和子程序名称、标识符、层出结构关系
3、 对程序的功能、性能、输入、输出、算法、流程、接口等进行描述 内容包括n程序描述:程序简要描述,意义和特点n功能:程序应具备的功能n性能:精度、灵活性和时间特性等n输入项n输出项n详细设计内容 内容包括n算法:具体的计算步骤和过程n接口:模块的隶属关系、调用方式和参数、与模块直接关联的数据结构(如数据库表、文件等)n存储分配(根据需要)n注释设计:程序注释说明n限制条件:程序运行中所受的限制条件n详细设计优化 在不考虑时间因素的前提下开发并精化软件结构 选出最耗时的模块,仔细设计处理算法 孤立出大量占有处理机资源的模块 必要时重新设计或用依赖于机器的语言重写大量占有资源的模块n第6章:“详细设
4、计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量n1 结构程序设计的提出 结构程序设计概念最早1965年由e.w.dijkstra提出n“可以从高级语言中取消goto语句”n“程序的质量与程序中所包含的goto语句的数量成反比” 1966年bohm和jacopini证明了:n只用三种基本的控制结构能实现任何单入口单出口的程序 1968年人们认识要创立一种新的程序设计思想n以显著地提高软件生产率和降低软件维护代价 n1 结构程序设计的提出 1971年ibm公司成功地使用了结构程序设计技术n纽约时报信息库管理系统n美国宇航局空间实验室飞行
5、模拟系统 1972年ibm公司的mills进一步补充了结构程序设计的规则 结构程序设计是尽可能少用goto语句的程序设计方法。最好仅在检测出错误时才使用goto语句,而且应该总是使用前向goto语句n2 结构程序设计分类 只允许使用顺序、if-then-else分支和do-while型循环这三种基本控制结构,称为经典的结构程序设计 还允许使用do-case多分支结构和do-until循环结构,称为扩展的结构程序设计 如果再加上允许使用leave(或break)结构,称为修正的结构程序设计n第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序
6、复杂程度的定量度量n人机界面的设计四个方面 系统响应时间 用户帮助设施 出错信息处理 命令交互 1. 系统响应时间 系统响应时间指n从用户完成某个控制动作(例如,按回车键或点击鼠标),到软件给出预期响应(输出信息或做动作)之间的时间1. 系统响应时间系统响应时间有两个重要属性 响应长度n系统响应时间过长,用户就会感到紧张和沮丧n系统响应时间过短,会迫使用户加快操作节奏,从而可能会犯错误 易变性(系统响应时间的更重要的属性)n指系统响应时间相对于平均响应时间的偏差n响应时间易变性低也有助于用户建立起稳定的工作节奏2. 用户帮助设施 常见的帮助设施可分为集成的和附加的两类 集成的帮助设施从一开始就
7、设计在软件里面n它对用户工作内容是敏感的n可缩短用户获得帮助的时间,增加界面的友好性 附加的帮助设施是在系统建成后再添加到软件中的n实际是一种查询能力有限的联机用户手册n人们普遍认为,集成的帮助设施优于附加的帮助设施n设计帮助设施时必须解决下述问题(1)交互期间是否在任何时候都能获得关于任何功能的帮助?n有两种选择:提供功能的帮助信息和提供全部功能的帮助信息(2)用户怎样请求帮助?n 有3种选择:帮助菜单,特殊功能键和help命令(3)怎样显示帮助信息?n有3种选择:在独立的窗口中,指出参考某个文档和在屏幕固定位置显示简短提示(4)用户怎样返回到正常的交互方式中?n有两种选择:屏幕上的返回按钮
8、和功能键(5)怎样组织帮助信息?n有3种选择:平面结构(所有信息都通过关键字访问),信息的层次结构(用户可在该结构中查到更详细的信息)和超文本结构3. 出错信息处理 出错信息和警告信息n是出现问题时交互式系统给出的“坏消息” 一般说来,交互式系统给出的出错信息或警告信息,应该具有下述属性:(1)应该用用户可以理解的术语描述问题(2)应该提供有助于从错误中恢复的建设性意见(3)信息应该指出错误可能导致哪些负面后果 (4)信息应该伴随着听觉上或视觉上的提示(5)信息不能带有指责色彩4. 命令交互 在提供命令交互方式时,必须考虑下列设计问题(1)是否每个菜单选项都有对应的命令?(2)采用何种命令形式
9、?(3)学习和记忆命令的难度有多大?忘记了怎么办?(4)用户是否可以定制或缩写命令?n人机界面设计过程 用户界面设计是一个迭代的过程n创建设计模型-再用原型实现这个设计模型-由用户试用和评估-根据用户意见进行修改 用于界面设计和原型开发的软件工具n用户界面工具箱或用户界面开发系统 用户界面的评估周期如下所述n完成初步设计之后就创建第一级原型;n用户试用并评估该原型,向设计者表述对界面的评价n设计者根据用户意见修改设计并实现下一级原型n人机界面设计过程 运用下述评估标准对设计进行早期复审:(1)系统及其界面的规格说明书的长度和复杂程度(2)命令或动作的数量、命令的平均参数个数或动作中单个操作的个
10、数(3)动作、命令和系统状态的数量(4)界面风格、帮助设施和出错处理协议n人机界面设计指南 一般交互指南 涉及信息显示、数据输入和系统整体控制(1)保持一致性(2)提供有意义的反馈(3)在执行有破坏性的动作之前要求用户确认n人机界面设计指南 1 一般交互指南(4)允许取消绝大多数操作(5)减少在两次操作之间必须记忆的信息量(6)提高对话、移动和思考的效率n人机界面设计指南 1 一般交互指南 (续上页)(7)允许犯错误(8)按功能对动作分类,并据此设计屏幕布局(9)提供对用户工作内容敏感的帮助设施 (10)用简单动词或动词短语作为命令名n人机界面设计指南 2 信息显示指南(1)只显示与当前工作内
11、容有关的信息(2)不要用数据淹没用户(3)使用一致标记、标准的缩写和可预知的颜色n人机界面设计指南 2 信息显示指南 (续上页)(4)允许用户保持可视化的语境(5)产生有意义的出错信息(6)使用大小写、缩进和文本分组以帮助理解(7)使用窗口分隔不同类型的信息 (8)使用“模拟”显示表示信息,以使信息更容易被用户提取(9)高效率地使用显示屏n人机界面设计指南 3 数据输入指南(1)尽量减少用户的输入动作(2)保持信息显示和数据输入之间的一致性(3)允许用户自定义输入(4)交互应该是灵活的,并且可调整成用户最喜欢的输入方式n人机界面设计指南 3 数据输入指南 (续上页)(5)使在当前动作语境中不适
12、用的命令不起作用(6)让用户控制交互流(7)对所有输入动作都提供帮助(8)消除冗余的输入n第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量1. 程序流程图 在40年代末到70年代中期,程序流程图一直是软件设计的工具 它以对控制流程的描绘直观、易于掌握而被设计人员青睐 依据国家标准(gb1526-89),列出有关程序流程图的基本符号数据 处理 待处理 准备 判断 循环上、下界 连接端点符 注解符 流线 虚线 省略符 并行方式 多出口判断 换页连接控制流 缺点:本质上不具备逐步求精的特点,对于提高缺点:本质上不具备逐步求精
13、的特点,对于提高 大型系统的可理解性作用甚微;大型系统的可理解性作用甚微; 不易表示数据结构;不易表示数据结构; 转移控制太方便。转移控制太方便。 趋势:仃止使用趋势:仃止使用 优点:容易掌握,且历史优点:容易掌握,且历史“悠久悠久”,使用广泛。,使用广泛。n程序流程图2. 盒图 (n-s图) n-s图是nassi和shneiderman提出来的,它体现了结构程序设计精神,是目前过程设计中广泛使用的一种图形工具。 基本符号2. 盒图 (n-s图)第第1个任务个任务第第2个任务个任务 第第n个任务个任务tf条件条件else部分部分then部分部分case条件条件值值 1case1部分部分值值 2
14、case2部分部分值值 ncasen部分部分循环条件循环条件do- while 部分部分循环条件循环条件do- until 部分部分aabx1ftcase x iftx2x3x4x5cdeghix7x8jfx6abx1x2x5fcx3x4deghix6x7x8jnn-s图的特点 优点n功能域(一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。n没有箭头不允许随意转移控制,不可能任意转移控制。n很容易确定局部和全程数据的作用域。n很容易表现嵌套关系,也可以表示模块的层次结构。 缺点n随着程序内嵌套的层数增多时,内层方框越来越小,这样不仅会增加画图的难度,还会影响图形的清晰度。3. pad
15、图 pad(problem analysis diagram)问题分析图 日立公司中央研究所在1973年研究开发 使用二维树形结构图描述程序的逻辑 pad图的优点:n程序一定是结构化的,pad图中竖线的总条数就是程序中的层次数,既表示程序逻辑,也描绘数据结构absequential while ps until psloopspabthenelseselectivep =a1a2casean12nstatement indexdefdefinitionajuntil x8bx1fx6until x7ghidewhile x5cxi=x2x3x4abx1x2x5fcx3x4deghix6x7x8
16、jx4tfdo-until x5ighfkx1tfbdo-until x6ajx21cdo-while x323dek :例:例:n-s图与图与pad的转换的转换开始开始 结束结束 aj until x5i until x6bx1kfx4ghdefkx2de123 while x3c4 判定表 判定表能够清晰地表示复杂的条件组合与所产生的动作之前的关系。 一张判定表由四部分组成:n左上部列出所有的条件n左下部是所有可能的操作n右上部是各种条件的组合矩阵n右下部是每种条件组合对应的动作4 判定表 一张判定表由四部分组成:n左上部列出所有的条件n左下部是所有可能的操作n右上部是各种条件的组合矩阵n
17、右下部是每种条件组合对应的动作 条件条件 操作操作 条件组合矩阵条件组合矩阵 动作动作4 判定表 例:n某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,头等舱国内乘客超重部分每公斤收费4元,其他舱的国内乘客超重部分每公斤收费6元,对于外国乘客超重部分每公斤收费比国内乘客多一倍,对于残疾乘客超重部分每公斤收费比正常乘客减少一半。国内乘客国内乘客ttttffff头等仓头等仓tftftftf残疾乘客残疾乘客ffttfftt行李重量行李重量 30t f f f ff f f f免费免费 (w-30)*2(w-30)*3(w-30)*4(w-30)*6(w-30)*8
18、(w-30)*125 判定树 表示复杂的条件组合与应做的动作之间的对应关系 判定树形式简单,长期以来一直受到重视 判定树的简洁性不如判定表n经常出现同一个值重复写多遍n且叶端重复次数急剧增加 由于判定树的分枝次序对于最终画出的判定树的简洁程度有较大影响n所以选择哪一个条件作为第一个分枝是至关重要的残疾乘客残疾乘客 (w-30)*2正常乘客正常乘客 (w-30)*4残疾乘客残疾乘客 (w-30)*3正常乘客正常乘客 (w-30)*6残疾乘客残疾乘客 (w-30)*4正常乘客正常乘客 (w-30)*8残疾乘客残疾乘客 (w-30)*6正常乘客正常乘客 (w-30)*12头等舱头等舱其它舱其它舱头等
19、舱头等舱其它舱其它舱国内乘客国内乘客国外乘客国外乘客行李重量行李重量30公斤公斤行李重量行李重量 30公斤公斤行李费行李费算法算法免费免费6 伪码和过程设计语言(pdl) 是一种“混杂式语言”n采用了某种语言(如英语或自然语言)的词汇n另一种语言(某种结构化程序设计语言)的全部语法 具有数据说明、子程序、分程序、顺序控制、输入和输出结构6 伪码和过程设计语言(pdl) 示例procedure spell_check is begin split document into single words look up words in dictionary display words which
20、are not in dictionary create a new dictionary end spell_checkexternal statementsinternalstatements6 伪码和过程设计语言(pdl) pdl应该具有下述特点:(1)关键字的固定语法n它提供了结构化控制结构、数据说明和模块化的特点n为了使结构清晰和可读性好,通常在所有可能嵌套使用的控制结构的头和尾都有关键字,例如,if.fi(或endif)等(2)自然语言的自由语法,它描述处理特点(3)数据说明的手段(4)模块定义和调用的技术,提供各种接口描述模式6 伪码和过程设计语言(pdl) pdl作为一种设计工
21、具有如下一些优点:n可以作为注释直接插在源程序中间n可以使用普通的正文编辑程序或文字处理系统,很方便地完成pdl的书写和编辑工作。n已经有自动处理程序存在,而且可以自动由pdl生成程序代码。 pdl的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单6 伪码和过程设计语言(pdl) 数据说明它的形式为: declard数据名 as 限定词 子程序结构它的形式为: procedure 子程序名 interface 参数表 分程序或pdl语句 return end 子程序名6 伪码和过程设计语言(pdl) 分程序结构begin 分程序名 pdl语句end 分程序
22、名 顺序控制结构(1) 选择型if 条件 then pdl语句else pdl语句end if6 伪码和过程设计语言(pdl) 顺序控制结构(2) while型循环 loop while 条件 pdl语句 end loop(3) until型循环 loop until 条件 pdl语句组 end loop6 伪码和过程设计语言(pdl) 顺序控制结构n(4) case型case 选择因子 of标号,标号:pdl语句 :end casen(5) 输入/输出结构 一般采用 print read display input output等常见语句例例1 1 是是pdlpdl的设计片断程序的设计片断程
23、序nbeginbeginnexecute process aexecute process anloop until condition x8loop until condition x8nbeginbeginn execute process b execute process bn if condition x1 then if condition x1 thenn begin beginn execute process f execute process fn if condition x6 then if condition x6 thenn loop until condition
24、 x7 loop until condition x7n execute process i execute process in end loop end loopn else elsen begin beginn execute process g execute process gn execute process h execute process hn end endn abx1x2x5fcx3x4deghix6x7x8jnend ifend ifn end endnelseelsen case xi of case xi ofn x2:loop while condition x5
25、 x2:loop while condition x5n execute process c execute process c n end loop end loopn x3: execute process d x3: execute process dn x4: execute process e x4: execute process en end case end casen end if end ifnendendnend loopend loopnexceute process jexceute process jnendendabx1x2x5fcx3x4deghix6x7x8j
26、n第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量n面向数据结构的设计方法的目标 目标是得出对程序处理过程的描述 这种方法最适合于在详细设计阶段使用n两个面向数据结构的设计方法 jackson方法和warnier方法n分析确定数据结构 数据元素彼此间的逻辑关系有n顺序、选择和重复n因此,逻辑数据结构也只有这3类n描述数据结构的工具jackson图 n描述数据结构的工具jackson图 顺序结构n顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。acbda seq b c da endn描述数据结构的工
27、具jackson图 选择结构n选择结构的数据包含两个或多个数据元素,每次按一定的条件从这些数据元素中选择一个使用,具体分为:(1)选择结构,(2)可选结构acbds(i)ab-s(i)a select cond1 ba or cond2 ca or cond3 da enda select cond ba endn描述数据结构的工具jackson图 重复结构n重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。ab*i(i)a iter until(while) cond baendn描述数据结构的工具jackson图 n描述数据结构的工具jackson图 njackson方法
28、jackson结构化设计方法基本上由下述五个步骤组成:1 分析并确定输入数据和输出数据的逻辑结构,并用jackson图描绘这些数据结构2 找出输入数据结构和输出数据结构中有对应关系的数据单元3 从描绘数据结构的jackson图导出描绘程序结构的jackson图njackson方法4 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。5 用伪码表示程序 njackson方法 应用举例n 一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总数。输出数据的格式为,每复制一行输入字符串后,另起一行印出这个字符
29、串的空格数,最后印出文件中空格的总个数。第第1 1步:用步:用jacksonjackson图描述图描述输入输入/ /输出输出的数据结构的数据结构正文文件正文文件i字符串字符串*字符字符*空格空格o非空格非空格ois输入输入输出表格输出表格表格体表格体串信息串信息*字符串字符串空格数空格数i输出输出空格总数空格总数第第2 2步:在两个图中指出有直接因果关系步:在两个图中指出有直接因果关系、可以同可以同时处理的单元(重复的次序,次数均相同)时处理的单元(重复的次序,次数均相同)正文文件正文文件i字符串字符串*字符字符*空格空格o非空格非空格ois输入输入输出表格输出表格表格体表格体串信息串信息*字
30、符串字符串空格数空格数i输出输出空格总数空格总数? 经过程序处理由经过程序处理由正文文件正文文件得到得到输出表格输出表格。 每处理输入中一个每处理输入中一个字符串字符串后就后就得到输出中一个得到输出中一个串信息串信息,二者重,二者重复次序和次数均相同。复次序和次数均相同。 字符字符不与多字符组成的不与多字符组成的字符串字符串对应。对应。 单个单个空格空格不能决定不能决定空格数空格数。正文文件正文文件i字符串字符串*字符字符*空格空格o非空格非空格ois输入输入输出表格输出表格表格体表格体串信息串信息*字符串字符串空格数空格数i输出输出空格总数空格总数统计空格统计空格处理字符串处理字符串*i程序
31、体程序体印总数印总数印字符串印字符串印空格数印空格数分析字符分析字符*分析字符分析字符*i分析字符串分析字符串处理空格处理空格o处理非空格处理非空格os注:顺序执行的处理中不允许混有注:顺序执行的处理中不允许混有重复执行或选择执行的处理重复执行或选择执行的处理。第第3步:步:data structure program structure把有对应关系的单元合为一个处理框,画把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准)在相应的层次中(不同层以低层为准)第第4 4步:列出所有操作条件,步:列出所有操作条件,并分配到上幅程序结构图中并分配到上幅程序结构图中统计空格统计空格处
32、理字符串处理字符串*i(1)程序体程序体印总数印总数印字符串印字符串印空格数印空格数分析字符分析字符*i分析字符串分析字符串处理空格处理空格o处理非空格处理非空格os23145例例:(部分部分列举,详列举,详见见p.125)打开文件打开文件读入字符串读入字符串空格总数空格总数totalsum=0关闭文件关闭文件仃止仃止i 文件结束文件结束第第5步:用步:用pseudocode 表示程序。表示程序。(详见(详见p.125 -126)n第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量nmccabe方法 mccabe方法的核心是n通过定量分析程序中分支个数或循环个数,对软件测试难度进行定量度量,对软件最终的可靠性进行预测。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年康复医疗服务体系建设报告:社区康复与运营模式创新探索
- 购房协议更换网签合同
- 转让劳务分包合同范本
- 器械力学性能提升-洞察及研究
- 进口钾肥销售合同范本
- 装修材料验收合同范本
- 销售生产合伙合同范本
- 服装生产销售合同范本
- 音乐版权捐赠合同范本
- 车间改造劳务合同范本
- (完整)注册安全工程师考试题库(含答案)
- 高考作文素材积累与写法总结27 自知与知人作文审题指导及素材积累
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 2024年贵州省贵阳市中考生物地理合卷试题(含答案逐题解析)
- DNDC模型使用手册
- DL∕T 2487-2022 电力燃煤机械名词术语
- 起重机械生产单位质量安全总监-特种设备考试题库
- JBT 9189-2016 水基材料防锈试验方法 铸铁屑试验
- JJF 1064-2024 坐标测量机校准规范
- 《春江花月夜》省公开课金奖全国赛课一等奖微课获奖课件
- 人音版小学六年级上册音乐教案(本)
评论
0/150
提交评论