【文档说明】软件工程课件-第06章-详细设计-.ppt,共(62)页,620.012 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45037.html
以下为本文档部分文字说明:
第五章详细设计•详细设计阶段目标:确定应该怎样具体实现所要求的系统,设计出程序的“蓝图”,即设计出模块的处理过程(在编码阶段将描述转换成程序)•关键技术:结构程序设计技术§1结构程序设计技术1965年,E.W.Dijkst
ra提出“取消GOTO语句”1966年,Bohm和Jacopini证明了只用三种基本结构“顺序”、“选择”和“循环”就能实现任何单入口单出口的程序,为结构程序设计技术奠定了理论基础1968年Dijkstra再次建议“
取消GOTO语句”1972年IBM公司Mills提出,程序应该只有一个入口和一个出口,补充了结构程序设计的规则§1结构程序设计技术结构程序设计技术:是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口和单出口的控制结构(取消GOTO语句)逐步求精的方法:对程序抽象→分解结构程
序设计的优点:①可以提高软件开发工程的成功率和生产率②开发出程序有清晰的层次结构,容易阅读和理解③程序静态结构和动态执行结构保持一致,易保持正确,出错易诊断和纠正④程序易测试⑤易重用(Reuse)⑥利于程序的正确性证明1、用户界面具备的特性2、用户
特性分析3、用户界面任务分配4、界面设计的基本类型5、数据输入界面6、数据显示界面§2用户界面设计1.可使用性(1)使用的简单性(2)用户界面中所用术语的标准化和一致性(3)快速的系统响应和低的系统成本(4)用户界面的容错能力
:错误诊断、修正错误及出错保护(5)拥有HELP功能2.灵活性(1)考虑到用户的特点、能力、知识水平,应当使用户界面能满足不同用户的要求。(2)用户可以根据需要制定和修改界面方式(3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括反馈信息
、提示信息、帮助信息、出错信息等。一、用户界面具备的特性(1)外行型:从未使用过计算机(2)初学型对计算机有一些经验,但对新系统不熟悉的用户(3)熟练型对一个系统有相当多的经验,能够熟练操作的用户。(4)专家型了解系统内部的构造,专家型要求
为他们提供能够修改和扩充系统能力的复杂界面。用户的类型不是一成不变的。用户类型—4种二、用户特性分析用户使用的频度用户需要自由选用界面的情况用户对计算机的熟练程度用户知识用户思维能力用户特性度量(1)检查数据流图,标出哪些是单独
由计算机完成的任务,哪些是单独由人完成的任务,哪些是由两者共同完成的任务。(2)对于共同完成的任务,将任务的每一个动作分配给人或计算机。(3)计算机与人的协同动作,需要再进一步细化以确定人和计算机如何交互。三、用户界面任务分配四、界面设计的基本类型
菜单、图标(象)、对话、窗口、按钮等1.菜单由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令(1)按照显示的形象或样式分类1)正文菜单---系统命令或者其简写形式简单正文菜单的设置与选取方式①首字符匹配方式②序号匹配方式③亮条匹配方式例1:通用设备信息管理系统0—退出
1—数据编辑2—设备检索3—设备统计4—报表打印5—系统维护请输入选择的功能号[0—5]:2)图标菜单简称图标或图符如:windows环境(2)按照屏幕位置和操作风格分类1)固定位置菜单(如:TurbopascalTC)FileEditRunCompil
eOptionsDebugBreak/WatchF1—HelpF5—ZoomF6—SwitchF7—TraceF8—StepF9—MakeF10—Menuwatch2)浮动位置菜单3)下拉式菜单4)嵌入式菜单如超文本,超级链接--------------------------
------------3.图象用户的界面,加入丰富多彩的画面,形象地为用户提供有用的信息而达到可视化的目的。主要处理有:图象的隐蔽和再现、屏幕滚动和图案显示,包括动画。(1)图象的隐蔽和再现菜单显示时,将要被遮盖的区域中原先的图象隐
蔽起来。(2)屏幕滚动物理屏幕仅能容纳用户需要显示内容中的一部分,上卷、下卷(3)图案显示将设计好的图象以图象的方式存放在一个文件中,必要时再将其装入到内存并显示。4.对话也称对话框三种对话形式(1)必须回答式(2
)无须回答式(3)警告式文件名:确认取消Areyousuretodelete?OKCancel5.窗口窗口指屏幕上一个矩形区域,视图区,用户可以通过窗口显示、观察虚拟屏幕,显示器为物理屏幕。屏幕上有多个窗口,只有一个活动窗口。窗口上配置部
件。(1)菜单区(2)图标区(3)标题区(4)移动区(5)大小区(6)用户工作区(7)横向滚动区(8)纵向滚动区(9)退出区五、数据输入界面1.数据输入的规则目标简化用户的工作,尽可能减少输入的差错,可以通过以下方式减
少用户的输入的工作量:对共同的输入内容设置默认值;使用代码或缩写自动填入已输过的内容或重复的内容;如果输入的内容是一个有限的备选集,可以采用列表选择或指点方式。数据输入对话设计的一般规则(1)确认输入
:只有当用户按下输入确认键时,才确认输入;(2)交互动作:使用TAB键或回车键控制表项间移动(3)明确取消:输入数据不要立即丢弃(4)确认删除(5)提供反馈:将用户先前输入内容仍保留在屏幕上(6)允许编辑(7)提供复原(Undo)(8)自动
格式化:用户可以采用格式输入(9)提示输入范围2.输入表格设计每种信息一个表项,并带有一个标题,提示输入信息内容及位置,用移位键或功能键控制光标,在各个表项上输入数据。日期:姓名:书号单价数量金额合计操作提示一级科目编号:第号应贷二级及明细科目付款凭证年月日会
计记帐:月日现金出纳计划项目出纳第号应借科目摘要一级科目二级及明细科目金额过帐符号附收款件人张合计(大写)人民币:会计主管人员记帐复核出纳主管部门负责人制证凭证制作模块的输入界面规则:(1)数据验证要检
查是否所有必需的项目都已填充,类型检查,数据值范围检查。三种结果:致命错误、警告、建议。验证信息一般显示在屏幕的某一固定位置,该位置是为出错控制特意保留的。(2)屏幕设计通常把屏幕划分为数据输入、命令与出错处理三个区域。
(3)信息提示通知用户出错类型,出错信息不应只是显示语法错或者无效域等,而应当报告错误出在何处,是什么错误,为什么错了,以及要修改错误要采取什么措施,提示信息根据使用对象用相应术语。六、数据显示界面1.数据显示的规则(1)安排显示的规则以一种逻辑
方式把数据分组,根据使用频率、操作顺序或功能来分组,取决于用户需要。(2)屏幕布局时考虑的规则1)少用代码和缩写,易于用户理解2)若安排若干个显示画面,最好建立一个统一的格式。3)提供明了的标题、栏题以及其他提示信息4)遵循用户的习惯5)采用颜
色、字符大小、下划线或不同的字体等方式来强化重要数据,注意体现美观。2.字符数据的显示正文、表格(1)纯正文的显示英文正文中应避免连续使用大写字母,左边顶格,右边可参差不齐。(2)列表和表格栏题应安排在数据列之上,数据域应左边对齐,实数按小数点对齐,整数右边对齐**************
*161.6812323.121(3)控制显示用户应拥有一种获得不同显示画面的灵活手段;出现上下滚动、换屏控制显示时,前一次显示的部分内容应显示在新显示画面的顶部或底部,以使用户感到连贯。3.图形显示选
择图形类型和布局设计(1)常用二维图形(2)三维图形三维直方图、三维饼图§3.工具1、程序流程图(ProgramFlowChart)5种基本控制结构为:(1)顺序结构(sequentialstructure)(2)选择
结构(selectivestructure)ABPBAFT(3)先判定型循环结构(while-loopstructure)(4)后判定型循环结构(until-loopstructure)TPSFFSTP(5)多情况选择(casestructure)TA1F
P=1TA2FP=2…TAnFP=n§3.工具§3.工具任何复杂的程序流程图都应由以上五种基本结构组合而成。缺点:本质上不具备逐步求精的特点,对于提高大型系统的可理解性作用甚微;不易表示数据结构;随意转移控制。趋势:停止使用优点:容易
掌握,且历史“悠久”,使用广泛。ISO认可的规定符号:P.115图6.3SequentialABPFTABSelectivePFTBDo-WhilePSWhileDo-UntilPSUntilCaseP12nA1A2AnCallsubroutineA§3.工具2、盒图(BoxDi
agram):Nassi&Shneiderman1973年提出,又称为N-SCharts。Chapin1974年作扩充,故也称为Chapincharts.x4TFDo-Untilx5ighfkx1TFbDo-Untilx6aj§3.工具例:a;{b;ifx1then{f
;ifx4then{I}dountilx5else{g;h}}else{callk}}dountilx6j;x21cDo-Whilex323dek:Casex21:dowhilex3c2:d3:eEndcase§3.工具特点:①没有箭头,不允许随意转移控制;②每个矩形框(C
ase中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确;③局部及全程数据的作用域易见;④易表现嵌套关系(embeddedstructure)以及模块的层次结构。AB顺序WhilePSUntilPS循环PA
BTHENELSE选择P=A1A2分支An12n…语句标号def定义§3.工具3、PAD(ProblemAnalysisDiagram):日立公司,1973x4TFDo-Untilx5ighfkx1TFbDo-Untilx6aj§3.工具例:N-S图
与PAD的转换开始结束ajUntilx5iUntilx6bx1kfx4ghdefkx2de123Whilex3c§3.工具x21cDo-Whilex323dek:§3.工具特点:①结构清晰,层次分明,易读;②支
持逐步求精的设计思想;③容易将PAD自动转换为高级语言源程序。§3.工具例:P.117航空行李托运费的算法按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/
公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。4、判定表&判定树(DecisionTable&Tree)表示复杂的条件(input)组合与应做动作(output)之间的对应
关系。123456789国内乘客TTTTFFFF头等舱TFTFTFTF残疾乘客FFTTFFTT行李重量W30TFFFFFFFF免费(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)12用判定表表示计算行
李费的算法RulesRulenumbersConditionrowsActionrows§3.工具行李费算法行李重量W>30行李重量W30免费国内乘客外国乘客头等舱其他舱残疾乘客正常乘客(W-30)2(W-3
0)4残疾乘客正常乘客(W-30)3(W-30)6头等舱其他舱残疾乘客正常乘客(W-30)4(W-30)8残疾乘客正常乘客(W-30)6(W-30)12用判定树表示计算行李费的算法§3.工具PROCEDUREspell_chec
kISBEGINSplitdocumentintosinglewordsLookupwordsindictionaryDisplaywordswhicharenotindictionaryCreateanewdicti
onaryENDspell_checkExternalstatementsInternalstatements§3.工具5、PDL(ProgramDesignLanguage):又称伪代码(Pseudocode).例:§3.工具应具备以下特点:①有固定的关键词外部语法;③有数据说
明,例如:TYPEnumberISSTRINGLENGTH(12)TYPEtableISINSTANCEOFsymbol_table④有子程序定义与调用机制,例如:PROCEDURE<子程序名><属性:内部\外部,编程语言等等>INTERFACE<参数表:I\O等等>pseudoc
odelinesEND调用时可用:PERFORM<子程序名>USING<参数表>②内部语法用自然语言描述;抽象类型优点:易于实现由PDL到源代码的自动转换。缺点:不够直观。§3.工具6、文件夹:记录模块开
发过程的文档。建议各组建立自己的文件夹。项目名称:模块名称:开发人员:完成日期:模块简述:任务起始日期完成日期设计编码单元测试集成测试修改日期代码长度§3.工具§4.面向数据结构的设计方法与SD的由DFD导出结构设计不同,JSD是以数据结构(d
atastructure)为基础设计每个模块的处理过程。1、Jackson图(JacksonDiagram):注意:H中的方框表示模块,而JD中的方框代表几个语句构成的简单操作;H表现调用关系,而JD表
现组成关系。BCA=A=SCBA=BAB*ABCAABoCoAoABCDABoCoDoABo—oAB*S(i)I(i)S(i)(1)加上判断条件(2)斜线改直线改进的Jackson图§4.面向数据结构的设计方法§4.面向数据结构的设计方
法2、Jackson方法:第一为每对有对应关系的数据单元,在程序结构图的相应层次上画一个处理框第二为输入数据结构中剩余的数据单元在程序结构图的相应层次分别画上对应的处理框第三为输出数据结构中剩余的数据单元在程序结构图的相应层次分别画上对应的处理框对应关
系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和重复的次数相同才可能有对应的关系)1.分析输入/输出数据结构,并用Jackson图表示2.找出输入数据结构和输出数据结构之间的有对应关系的单元3.用下述三条规则从描绘数据结构的Jackson图导出描绘程
序结构的Jackson图:4.列出所有操作,并分配到程序结构图的适当位置5.用伪码表示程序ABCDAseqBCDAendAselectcond1BAorcond2CAorcond3DAendAiteruntil(或while)condBAendABoCoDoS(i)ABoI(i
)伪码表示例:(P.123)一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是:每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。Youarestudents.Iamatea
cher.输入数据Youarestudents.2Iamateacher.35输出数据§4.面向数据结构的设计方法第1步:用Jackson图描述I\O的数据结构正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格
数I输出空格总数第2步:在两个图中指出有直接因果关系(causality)、可以同时处理的单元(重复的次序,次数均相同)§4.面向数据结构的设计方法正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数??经过程序处理由正文文
件得到输出表格。每处理输入中一个字符串后就得到输出中一个串信息,二者重复次序和次数均相同。字符不与多字符组成的字符串对应。单个空格不能决定空格数。正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空
格数I输出空格总数统计空格处理字符串*I程序体印总数印字符串印空格数分析字符*分析字符*I分析字符串处理空格o处理非空格oS注:顺序执行的处理中不允许混有重复执行或选择执行的处理。第3步:DatastructureProgramstr
ucture把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准)第4步:列出所有操作条件,并分配到上幅程序结构图中统计空格处理字符串*I(1)程序体印总数印字符串印空格数分析字符*I分析字符
串处理空格o处理非空格oS23145例:(部分列举,详见P.125)⑴打开文件⑵读入字符串⑶空格总数totalsum=0⑷关闭文件⑸停止I⑴文件结束第5步:用Pseudocode表示程序。(详见P.125-126)§5.程序复杂程度的定量度量
(MeasuringProgramComplexity)1、McCabe’sTheory(ThomasMcCabe,1976)McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。通常使用流图
(也称为程序图)流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程(去除条件)。当过程设计中包含复合条件时,(所谓复合条件,就是在条件中包含了一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)),在这种情
况下,应该把复合条件分解为若干个简单条件,每个简单条件对应流图中一个结点将程序流程图转化为程序图由PDL翻译成的流图由包含复合条件的PDL映射成的流图可以用下述3种方法中的任何一种来计算环形复杂度。(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边
的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。计算环形复杂度的方法§5.程序复杂程度的定量度量环形复杂度=4环形复杂度的用途程序的环形复杂度取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。当程序内分支数或循环个数增
加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。实践表明,模块规模以V(G)≤10为宜,也就是说,V(G)=10是模块规模的一个更科
学更精确的上限。2.Halstead方法(M.Halstead,1977)——基于程序中运算符和操作数的总数定义n1—程序中不同运算符(包括关键字)个数n2—程序中不同操作数(变量和常数)个数N1—运算符总次数N2—操作数总次数注
:成对出现的运算符,如BEGIN…END,IF…THEN…ELSE等都算1个运算符。§5.程序复杂程度的定量度量Halstead’s方法:(1)实际程序长度(programlength):N=N1+N2(2)预测程序长度(estimatedlength):H=n1log2n1+n2log2n
2(3)包含错误个数:E=Nlog2(n1+n2)/3000§5.程序复杂程度的定量度量