软件工程 第06章 详细设计_第1页
软件工程 第06章 详细设计_第2页
软件工程 第06章 详细设计_第3页
软件工程 第06章 详细设计_第4页
软件工程 第06章 详细设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

第五章详细设计

详细设计阶段目标:确定应该怎样具体实现所要求的系统,设计出程序的“蓝图”,即设计出模块的处理过程(在编码阶段将描述转换成程序)关键技术:结构程序设计技术.§1结构程序设计技术1965年,E.W.Dijkstra提出“取消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)FileEditRunCompileOptionsDebugBreak/Watch

F1—HelpF5—ZoomF6—SwitchF7—TraceF8—StepF9—MakeF10—Menuwatch.2)浮动位置菜单3)下拉式菜单4)嵌入式菜单如超文本,超级链接------------------------------------.3.图象用户的界面,加入丰富多彩的画面,形象地为用户提供有用的信息而达到可视化的目的。主要处理有:图象的隐蔽和再现、屏幕滚动和图案显示,包括动画。(1)图象的隐蔽和再现菜单显示时,将要被遮盖的区域中原先的图象隐蔽起来。(2)屏幕滚动物理屏幕仅能容纳用户需要显示内容中的一部分,上卷、下卷(3)图案显示将设计好的图象以图象的方式存放在一个文件中,必要时再将其装入到内存并显示。.4.对话也称对话框三种对话形式(1)必须回答式(2)无须回答式(3)警告式

文件名:

确认取消

Areyousuretodelete?OKCancel.5.窗口窗口指屏幕上一个矩形区域,视图区,用户可以通过窗口显示、观察虚拟屏幕,显示器为物理屏幕。屏幕上有多个窗口,只有一个活动窗口。窗口上配置部件。(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)TA1FP=1TA2FP=2…TAnFP=n§3.工具.§3.工具

任何复杂的程序流程图都应由以上五种基本结构组合而成。

缺点:本质上不具备逐步求精的特点,对于提高大型系统的可理解性作用甚微;不易表示数据结构;随意转移控制。

趋势:停止使用

优点:容易掌握,且历史“悠久”,使用广泛。

ISO认可的规定符号:P.115图6.3.SequentialABPFTABSelectivePFTBDo-WhilePSWhileDo-UntilPSUntilCaseP12nA1A2AnCallsubroutineA§3.工具2、盒图(BoxDiagram):Nassi&Shneiderman1973年提出,又称为N-SCharts。Chapin1974年作扩充,故也称为Chapincharts..x4TFDo-Untilx5ighfkx1TFbDo-Untilx6aj§3.工具例:a;{b;

ifx1

then{f;

ifx4

then{I}dountilx5

else{g;h}}

else{callk}}dountilx6j;

.x21cDo-Whilex323dek:Casex21:dowhilex3c2:d3:eEndcase

.§3.工具特点:①没有箭头,不允许随意转移控制;②每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确;③局部及全程数据的作用域易见;④易表现嵌套关系(embeddedstructure)以及模块的层次结构。.AB顺序WhilePSUntilPS循环PABTHENELSE选择P=A1A2分支An12n…语句标号def定义§3.工具3、PAD(ProblemAnalysisDiagram):日立公司,1973.x4TFDo-Untilx5ighfkx1TFbDo-Untilx6aj§3.工具例:N-S图与PAD的转换开始结束aj

Until

x5i

Until

x6bx1kfx4gh.defkx2de123

While

x3c§3.工具x21cDo-Whilex323dek:.§3.工具特点:①结构清晰,层次分明,易读;②支持逐步求精的设计思想;③容易将PAD自动转换为高级语言源程序。.§3.工具例:P.117航空行李托运费的算法按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。

4、判定表&判定树(DecisionTable&Tree)表示复杂的条件(input)组合与应做动作(output)之间的对应关系。

.RulesRulenumbersConditionrowsActionrows§3.工具.行李费算法行李重量W>30行李重量W30免费国内乘客外国乘客头等舱其他舱残疾乘客正常乘客(W-30)2(W-30)4残疾乘客正常乘客(W-30)3(W-30)6头等舱其他舱残疾乘客正常乘客(W-30)4(W-30)8残疾乘客正常乘客(W-30)6(W-30)12用判定树表示计算行李费的算法§3.工具.PROCEDUREspell_checkISBEGIN

SplitdocumentintosinglewordsLookupwordsindictionaryDisplaywordswhicharenotindictionaryCreateanewdictionaryENDspell_checkExternalstatementsInternalstatements§3.工具5、PDL(ProgramDesignLanguage):

又称伪代码(Pseudocode).例:.§3.工具应具备以下特点:①有固定的关键词外部语法;

③有数据说明,例如:

TYPEnumberISSTRINGLENGTH(12)

TYPE

table

IS

INSTANCEOF

symbol_table④有子程序定义与调用机制,例如:

PROCEDURE<子程序名><属性:内部\外部,编程语言等等>INTERFACE<参数表:I\O等等>

pseudocodelines

END调用时可用:PERFORM<子程序名>USING<参数表>②内部语法用自然语言描述;抽象类型.优点:易于实现由PDL到源代码的自动转换。缺点:不够直观。§3.工具6、文件夹:记录模块开发过程的文档。建议各组建立自己的文件夹。.项目名称:模块名称:开发人员:完成日期:模块简述:§3.工具.§4.面向数据结构的设计方法与SD的由DFD导出结构设计不同,JSD是以数据结构(datastructure)为基础设计每个模块的处理过程。1、Jackson图(JacksonDiagram):注意:H中的方框表示模块,而JD中的方框代表几个语句构成的简单操作;H表现调用关系,而JD表现组成关系。BCA=A=SCBA=BAB*ABCAABoCoAo.ABCDABoCoDoABo—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.Iamateacher.

输入数据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步:Datastructure

Programstructure把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准).第4步:列出所有操作条件,并分配到上幅程序结构图中统计空格处理字符串*I(1)程序体印总数印字符串印空格数分析字符*I分析字符串处理空格o处理非空格oS23145例:(部分列举,详见P.125)⑴打开文件⑵读入字符串⑶空格总数totalsum=0⑷关闭文件⑸停止I⑴文件结束第5步:用Pseudocode表示程序。(详见P.125-126).§5.程序复杂程度的定量度量

(MeasuringProgramComplexity)1、McCabe’sTheory(ThomasMcCabe,1976)McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。

通常使用流图(也称为程序图)流图

温馨提示

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

评论

0/150

提交评论