资源描述
第三章第三章 软件设计软件设计(详细设计详细设计)实用软件工程第三章软件设计(详细设计)实用软件工程第3章 软 件 设 计软件设计通常分为两个阶段:总体设计阶段和详细设计阶段。总体设计详细设计第3章软件设计软件设计通常分为两个阶段:总体设计阶3.1 软件设计的基本任务软件设计的基本任务详细设计的基本任务 详细设计是总体设计的进一步的具体化,主要确定每个模块的具体执行过程,故也称为过程设计。其基本任务有:(1).为每个模块进行详细的算法设计。(2).为模块内的数据结构进行设计。(3).对数据库进行物理设计。(4).界面设计。(5).编写文档 (6).评审3.1软件设计的基本任务详细设计的基本任务第6章:详细设计确定如何具体实现所要求的系统。确定如何具体实现所要求的系统。不是具体编写程序,而是设计程序的不是具体编写程序,而是设计程序的“蓝图蓝图”。详细设计的结果决定最终程序代码的质量。详细设计的结果决定最终程序代码的质量。不不仅仅在在逻逻辑辑上上正正确确地地实实现现每每个个模模块块的的功功能能,更更重重要要的的设计出的处理过程应该尽可能简明易懂。设计出的处理过程应该尽可能简明易懂。3.4.1详细设计的目标:详细设计的目标:3.4详细设计详细设计第6章:详细设计确定如何具体实现所要求的系统。3.4.2 结构程序设计结构程序设计:一一种种设设计计程程序序的的技技术术,它它采采用用自自顶顶向向下下逐逐步求精的设计方法和单入口单出口的控制结构。步求精的设计方法和单入口单出口的控制结构。3.4详细设计详细设计3.4.2结构程序设计:3.4详细设计使用结构程序设计技术的好处:使用结构程序设计技术的好处:1)提高软件开发工程的成功率和生产率;)提高软件开发工程的成功率和生产率;2)系统有清晰的层次结构,容易阅读理解;)系统有清晰的层次结构,容易阅读理解;3)单入口单出口的控制结构,容易诊断纠正;)单入口单出口的控制结构,容易诊断纠正;4)模块化可以使得软件可以重用;)模块化可以使得软件可以重用;5)程序逻辑结构清晰,有利于程序正确性证明。)程序逻辑结构清晰,有利于程序正确性证明。3.4详细设计详细设计使用结构程序设计技术的好处:3.4详细设计经典的结构程序设计:只允许使用顺序、经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择和选择和DO_WHILE循环;循环;扩展的结构程序设计:除了三种基本控制结构,扩展的结构程序设计:除了三种基本控制结构,还使用还使用DO_CASE和和DO_UNTIL循环;循环;修正的结构程序设计:除了三种基本控制结构修正的结构程序设计:除了三种基本控制结构和两种扩充结构,还使用和两种扩充结构,还使用BREAK等结构。等结构。经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE1)顺序结构:相当于)顺序结构:相当于“A、B”3.4.3三种基本控制结构三种基本控制结构AB(a)顺序结构顺序结构1)顺序结构:相当于“A、B”3.4.3三种基本控制结2)选择结构)选择结构相当于相当于“IfexpthenAelseBendif”ABexp(b)选择结构选择结构2)选择结构ABexp(b)选择结构3)循环结构:相当于)循环结构:相当于“WhileexpdoA”A(c)循环结构循环结构exp3)循环结构:相当于“WhileexpdoA”1)多分支结构)多分支结构相当于相当于“CaseIofI=1:C1;I=2:C2;I=3:C3;I=n:Cn”3.扩充两种控制结构扩充两种控制结构CnC3C1C2(d)(d)多分支结构多分支结构I=?1)多分支结构3.扩充两种控制结构CnC3C1C2(d)2)UNTIL循环结构循环结构相当于相当于“RepeatAUntilexp”A(e)UNTIL循环循环exp2)UNTIL循环结构A(e)UNTIL循环exp(1)程序流程图程序流程图 程程序序流流程程图图:是是一一种种描描述述程程序序的的控控制制结结构流程和指令执行情况的有向图。构流程和指令执行情况的有向图。历历史史悠悠久久、使使用用广广泛泛、直直观观描描绘绘控控制制流流程、便于初学者掌握。程、便于初学者掌握。3.4.4 详细设计时使用的工具详细设计时使用的工具(1)程序流程图程序流程图:是一种描述程序的控制ASP检索程序流程图:检索程序流程图:记录集末端?记数变量加1,输出记录字段值及图像转跳下一记录关闭数据库链接对象、记录集对象,并释放资源输出记录数和提示结束YN开始加载Include文件定义记数变量、作物变量创建数据库链接对象、记录集对象打开数据库用客户提交的值对作物变量赋值SQL查询语句赋值通过记录集对象打开SQL语句设定的记录ASP检索程序流程图:记录集末端?记数变量加1,输出记录字段2)程程序序流流程程图图中中用用箭箭头头代代表表控控制制流流,因因此此程程序序员员不不受受任任何何约约束束,可可以以完完全全不不顾顾结结构构程程序序设设计计的的精精神神,随意转移控制。随意转移控制。3)程序流程图不易表示数据结构。)程序流程图不易表示数据结构。程序流程图的程序流程图的缺点缺点:1)程程序序流流程程图图本本质质上上不不是是逐逐步步求求精精的的好好工工具具,它它诱诱使使程程序序员员过过早早地地考考虑虑程程序序的的控控制制流流程程,而而不不去去考考虑程序的全局结构。虑程序的全局结构。2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可由Nassi和Shneiderman开发了另一种图形化设计工具,它的目标是保证结构化程序设计,这种图形工具叫做盒状图,或称为NS图。盒图的特点:(1)功能域(即一个特定控制结构的作用域)明确,很容易从盒图上看出。(2)不可能任意转移控制(3)很容易确定局部和全程数据的作用域(4)很容易表现嵌套关系,也可以表示模块的层次结构(5)盒图没有箭头,不可以随意转移控制,不允许违背程序设计的原则。(2)盒图(N-S图)由Nassi和Shneiderman开发了另一种图形化设计工盒图(N-S图)在NS图中,每个“处理步骤”是用一个盒子表示的,所谓“处理步骤”可以是语句或语句序列。需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制,只要整张图在一页纸上能容纳得下,由于只能从上边进入盒子然后从下边走出,除此之外没有其他的入口和出口,所以,NS图限制了随意的控制转移,保证了程序的良好结构。盒图(N-S图)在NS图中,每个“处理步骤”是用一个盒子表盒图(盒图(N-S图)图)ABC条件条件FTElseBThenACase条件条件Case1ACase2BCasenN循环条件循环条件循环条件循环条件Do-While部分部分Do-Until部分部分Aa.顺序结构顺序结构b.选择结构选择结构c.多分支结构多分支结构d.当型循环结构当型循环结构e.直到型循环结构直到型循环结构f.调用子程序调用子程序A图图3.4盒图的基本符号盒图的基本符号盒图(N-S图)ABC条件FTElseThenCaseFTBCDACase1E2F3G4HA:盒图例子盒图例子FTBCDACase1234A:盒图例子PAD(ProblemAnalysisDiagram)是问题分析图。)是问题分析图。日立公司发明和推广(日立公司发明和推广(1973)。)。(3)PAD图图PAD(ProblemAnalysisDP1P2WHILECUNTILCPPP2P1CP1P2PnX=L1L2Lndefa.顺序结构顺序结构b.当型循环结构当型循环结构c.直到型循环结构直到型循环结构d.选择结构选择结构e.多分支结构多分支结构f.语句标号语句标号g.定义定义PAD图的基本符号图的基本符号P1P2WHILECUNTILCPPP2P1CP1P例子:例子:例子:例子:例子:P1P2UNTILC2P7P4P3Cdefa.初始的初始的PAD图图PAD图例子图例子b.使用使用def符号细化处理框符号细化处理框P2P5P2P8C1UNTILC2P9P10P6例子:P1P2UNTILC2P7P4P3Cdefa.初将盒图转换为将盒图转换为PAD图图将盒图转换为PAD图软件设计(详细设计)课件PAD图的优点:图的优点:1)使使用用表表示示结结构构化化控控制制结结构构的的PAD符符号号所所设设计计出出来来的的程程序必然是结构化程序;序必然是结构化程序;2)PAD图所描绘的程序结构十分清晰。图所描绘的程序结构十分清晰。图图中中最最左左面面的的竖竖线线是是程程序序的的主主线线,即即第第一一层层结结构构。随随着着程程序序层层次次的的增增加加,PAD图图逐逐渐渐向向右右延延伸伸,每每增增加加一一个个层层次次,图图形形向向右右扩扩展展一一条条竖竖线线。PAD图图中中竖竖线线的的总总条条数数就是程序的层次数;就是程序的层次数;PAD图的优点:3)用用PAD图图表表现现程程序序,通通俗俗易易懂懂,程程序序从从图图中中最最左左竖竖线线上上端端的的结结点点开开始始执执行行,自自上上而而下下,从从左左向向右右顺顺序序执执行,遍历所有结点;行,遍历所有结点;4)容容易易将将PAD图图转转换换成成高高级级语语言言源源程程序序,这这种种转转换换可可以以用软件工具自动完成;用软件工具自动完成;5)可用于表示程序逻辑,也可用于描绘数据结构;)可用于表示程序逻辑,也可用于描绘数据结构;6)PAD图的符号支持自顶向下、逐步求精的方法。图的符号支持自顶向下、逐步求精的方法。3)用PAD图表现程序,通俗易懂,程序从图中最左竖线上端的结判定表由四部分组成:判定表由四部分组成:左上部列出所有左上部列出所有条件条件 左下部是所有可能做的左下部是所有可能做的动作动作 右上部表示各种右上部表示各种条件组合条件组合 右下部是和每种条件组合相右下部是和每种条件组合相对应的动作对应的动作(4)判定表判定表当模块中包含复杂的条件组合,并要根据这些条件当模块中包含复杂的条件组合,并要根据这些条件的组合选择动作时,只有判定表和判定树能够清晰地的组合选择动作时,只有判定表和判定树能够清晰地表达出复杂的条件组合与各种动作之间的对应关系。表达出复杂的条件组合与各种动作之间的对应关系。判定表的每一列可解释为一条处理规则判定表的每一列可解释为一条处理规则判定表由四部分组成:(4)判定表当模块中包含复杂的条件组合12345教授TFFF副教授FTFF讲师FFTF助教FFFT讲座TFFFF5030252015例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。12345教授TFFF副教授FTFF讲师FFTF助教123456789国内乘客国内乘客TTTTFFFF头等舱头等舱TFTFTFTF残疾乘客残疾乘客FFTTFFTT行李重量行李重量W30TFFFFFFFF免费免费(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)12乘飞机时能够携带的行李的重量与收费的关系乘飞机时能够携带的行李的重量与收费的关系123456789国内乘客TTTTFFFF头等舱(5)判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的优点:形式简单,直观明了,易于掌握。判定树的缺点:存在着数据冗余的问题,相同的数据元素往往要重复多次,而且越接近树的叶端重复的次数越多。判定树要求对条件进行层次划分,若条件所处层次不对,可能会导致增加判定树的复杂性。(5)判定树是判定表的变种,也能清晰地表示复杂的条件组合与判定树判定树判定树是判定表的变种。判定树是判定表的变种。行李重量行李重量W30行李重量行李重量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免费免费用判定树表示计算行李费的算法用判定树表示计算行李费的算法行李费算法行李费算法判定树行李重量W30行李重量W30国内乘客外国乘客头等舱过过程程设设计计语语言言(PDL)也也称称为为结结构构化化的的英英语语或或伪伪码码,它它是是一一种种混混合合语语言言,通通常常采采用用英英语语(或或中中文文)的的词汇,采用某种结构化程序设计语言的语法。词汇,采用某种结构化程序设计语言的语法。如:如:ifI0then执行订单数据输入模块执行订单数据输入模块else报告出错信息报告出错信息endif3.4.6过程设计语言(过程设计语言(PDL)过程设计语言(PDL)也称为结构化的英语或伪码,它是一种混合PDL的优点:的优点:1)可以作为注释直接插在源程序中间;)可以作为注释直接插在源程序中间;2)可可以以使使用用普普通通的的正正文文编编辑辑程程序序或或文文字字处处理理系系统统来来完成完成PDL的书写和编辑工作;的书写和编辑工作;3)现现在在已已经经有有一一些些自自动动处处理理程程序序可可以以自自动动地地把把PDL生成程序代码。生成程序代码。PDL的缺点的缺点:不如图形工具形象直观。:不如图形工具形象直观。PDL的优点:PDL的缺点:不如图形工具形象直观。购书单购书单学学生生学学生生教材教材购销购销系统系统进书通知进书通知领书单领书单缺书单缺书单教材购销系统的顶层教材购销系统的顶层DFD实例实例1:教材购销系统的设计:教材购销系统的设计购书单进书通知领书单缺书单教材购销系统的顶层DFD实例1:通过前一章结构化分析,已获得教材购销系统第三层的两张DFD图,即销售子系统DFD图和采购子系统DFD图。用结构化设计方法,从上述两张DFD图导出教材,购销系统的总体结构图,包括初始终的SC图和按改进规则进行修改后的最终SC图。通过前一章结构化分析,已获得教材购销系统第三层的两张DFD图进书通知购书单进书通知领书单缺书单教材购销系统的0层DFD学生学生1销售2采购F2缺书登记表F1教材存量表进书通知购书单进书通知领书单缺书单教材购销系统的0层DFD学发票发票暂缺书单领书单有效购书单购书单进书通知无效书单教材购销系统的1层DFD销售子系统学生学生F2缺书登记表F1教材存量表1.5登记缺书F4售书登记表F3学生用书表1.6产生补书单1.1审查有效性1.2开发票1.3打印发票1.4登记售书打印书单采购补售书单发票发票暂缺书单领书单有效购书单进书通知无效书单教材购销系统教材购销系统的1层DFD采购子系统进书通知进书通知销售保管员2.3修改库存与待购量F1教材存量表F2缺书登记表F6教材一览表2.1按书号汇总缺书2.2按出版社统计缺书F5待购教材表缺书单教材购销系统的1层DFD采购子系统进书通知进书通知销售1.1审查购书审查购书单单有效性有效性学学生生购书单领书单发票F1教材存量表F2缺书登记进书通知1.2开发开发票票1.3打印发打印发票票1.4登记售登记售书书1.5登记缺登记缺书书1.6产生产生补补售书售书单单采采购购有效购书单F3学生用书表F4售书登记表发票学学生生暂缺书单补售书单1.7开领书单开领书单第一步:细化并修改第一步:细化并修改DFD图。图。修改后销售子系统修改后销售子系统DFD图图无效购书单1.1学购书单领书单发票F1教材存量表F2缺书登记进书通知1软件设计软件设计销销售售F1教材存量表F2缺书登记进书通知2.3修改教材库修改教材库存存和待购量和待购量2.2按出版按出版社社统计缺统计缺书书2.1按书号按书号汇总缺汇总缺书书F5待购教材表F6教材一览表书库书库保管员保管员缺书单进书通知F7进书登记表修改后采购子系统修改后采购子系统DFD图图软件设计销F1教材存量表F2缺书登记进书通知2.32.22.软件设计软件设计第二步:鉴别第二步:鉴别DFD图的类别。图的类别。1.1审查购书审查购书单单有效性有效性学学生生购书单领书单发票F1教材存量表F2缺书登记进书通知1.2开发开发票票1.3打印发打印发票票1.4登记售登记售书书1.5登记缺登记缺书书1.6产生产生补补售书售书单单采采购购有效购书单F3学生用书表F4售书登记表发票学学生生暂缺书单补售书单1.7开领书单开领书单修改后销售子系统修改后销售子系统DFD图图 加工加工1.1用于出售,产生数据流用于出售,产生数据流“有有效购书单效购书单”。加工加工1.6用于补售,产生传入数据流用于补售,产生传入数据流“补售书单补售书单”。一次售书只能执行一种功能,要么一次售书只能执行一种功能,要么出售,要么补售。出售,要么补售。因此,数据流因此,数据流“有效书单有效书单”和和“补补售书单售书单”不能同时出现。所以,该不能同时出现。所以,该DFD图属于事务型结构。图属于事务型结构。无效购书单软件设计第二步:鉴别DFD图的类别。1.1学购书单领书单发票软件设计软件设计销销售售F1教材存量表F2缺书登记进书通知2.3修改教材库修改教材库存存和待购量和待购量2.2按出版按出版社社统计缺统计缺书书2.1按书号按书号汇总缺汇总缺书书F5待购教材表F6教材一览表书库书库保管员保管员缺书单进书通知F7进书登记表该该DFD图属于事务型结构图属于事务型结构软件设计销F1教材存量表F2缺书登记进书通知2.32.22.软件设计软件设计教材购销系统教材购销系统读出用户选择读出用户选择销售销售采购采购用户命令销售命令采购命令教材购销系统教材购销系统SC框架框架初售初售补售补售初售命令补售命令统计缺书统计缺书登记进书登记进书统计命令登记命令第三步:画出第三步:画出SC图框架。图框架。软件设计教材购销系统读出用户选择销售采购用户命令销售命令采购软件设计软件设计第四步:分解动作分支、补充动作层与细节层。第四步:分解动作分支、补充动作层与细节层。采购采购统计缺书统计缺书登记进书登记进书按书号按书号汇总缺书汇总缺书按出版社按出版社统计缺书统计缺书打印打印缺书单缺书单修改教修改教材待购材待购量量修改教修改教材库存材库存量量统计命令缺书登记表待购教材表待购教材表缺书单缺书单进书通知进书通知登记命令缺书单采购子系统初始采购子系统初始SC图图软件设计第四步:分解动作分支、补充动作层与细节层。采购统计缺软件设计软件设计销售销售初售初售补售补售获取购书单获取购书单有效性有效性开发票开发票开领书单开领书单打印发票打印发票获取补获取补售书单售书单登记缺书登记缺书审查购书单审查购书单有效性有效性读购书单读购书单读进书读进书通知通知初售命令补售命令有效购书单有效购书单购书单有效购书单发票暂缺书单发票补售书单领书单领书单补售书单进书通知销售子系统初始销售子系统初始SC图图登记售书登记售书发票软件设计销售初售补售获取购书单开发票开领书单打印发票获取补售详细设计示例现在仍以“教材购销系统”中的部分模块作例子,说明怎样根据前面介绍的方法来进行模块设计,编码的实质相当于“翻译”,工作比较简单,就不另说明了。第一步:写出模块说明。第二步:将模块说明细化为详细逻辑 详细设计示例软件设计(详细设计)课件软件设计(详细设计)课件软件设计(详细设计)课件3.5Jackson方法方法 面向数据结构的设计是由英国人面向数据结构的设计是由英国人MJackson首先提出和首先提出和倡导的,所以又称为倡导的,所以又称为Jackson程序设计方法程序设计方法(简称简称JSP)。该方法的基本思想是使程序结构与问题结构相对应,即与数据该方法的基本思想是使程序结构与问题结构相对应,即与数据结构相对应。结构相对应。因此它按因此它按输入输出以及内部存储信息的数据结构输入输出以及内部存储信息的数据结构进行设计,把进行设计,把数据结构的描述变换为对程序结构的描述,有时也称为结构数据结构的描述变换为对程序结构的描述,有时也称为结构数据设计方法。数据设计方法。3.5Jackson方法面向数据结构的设计是Jackson方法的特点和目标J总结了COBOL事务处理程序中的开发方法而发展起来的,特点:重点不是自顶向下逐步求精,而是在数据结构基础上进行构造根据输入/输出的数据结构建立程序结构目标:获得简单清晰的设计方案Jackson方法的特点和目标J总结了COBOL事务处理程Jackson结构程序设计方法由五个步骤组成:结构程序设计方法由五个步骤组成:1)分分析析并并确确定定输输入入数数据据和和输输出出数数据据的的逻逻辑辑结结构构,并用并用Jackson图描绘这些数据结构;图描绘这些数据结构;2)找出输入数据结构和输出数据结构中有对应关)找出输入数据结构和输出数据结构中有对应关系的数据单元;系的数据单元;Jackson结构程序设计方法由五个步骤组成:3)用用三三条条规规则则从从描描绘绘数数据据结结构构的的Jackson图图导导出出描描绘绘程程序序结构的结构的Jackson图:图:A为为每每对对有有对对应应关关系系的的数数据据单单元元,按按照照它它们们在在数数据据结结构构图图中中的的层层次次在程序结构图的相应层次画一个处理框;在程序结构图的相应层次画一个处理框;B根根据据输输入入数数据据结结构构中中剩剩余余的的每每个个数数据据单单元元所所处处的的层层次次,在在程程序序结结构图的相应层次分别为它们画上对应的处理框;构图的相应层次分别为它们画上对应的处理框;C根根据据输输出出数数据据结结构构中中剩剩余余的的每每个个数数据据单单元元所所处处的的层层次次,在在程程序序结结构图的相应层次分别为它们画上对应的处理框;构图的相应层次分别为它们画上对应的处理框;3)用三条规则从描绘数据结构的Jackson图导出描绘程序结4)列列出出所所有有操操作作和和条条件件(包包括括分分支支条条件件和和循循环环结结束束条条件),并且把它们分配到程序结构图的适当位置;件),并且把它们分配到程序结构图的适当位置;5)用伪码表示程序。)用伪码表示程序。4)列出所有操作和条件(包括分支条件和循环结束条件),并且把 Jackson为了表达程序中使用的数据结构,使用了与程序结构相同的三种基本结构形式,即顺序结构、选择结构和重复结构。使用这三种基本的数据结构表达方法,可以形成更复杂的数据结构。ABCDABCDS(i)ABS(i)AB*I(i)Jackson为了表达程序中使用的数据结构,使用Jackson图和描绘软件结构的层次图非常相似,但两者表示的含义有本质的不同。层次图中的一个方框通常代表一个模块,模块上下级之间表示的是调用关系,通常一个模块除了调用下级模块外,还完成其他操作;而Jackson图表示的是组成关系,在描绘程序结构时,一个方框并不代表一个模块,通常一个方框只代表几个语句,上层方框中包括的操作仅仅由它下层框中的那些操作组成。Jackson图和描绘软件结构的层次图非常相似,但两者表示的Jackson图解逻辑中的关键字与顺序结构相对应的与顺序结构相对应的Jackson图解逻辑,使用图解逻辑,使用seq和和end关键字。关键字。与选择结构相对应的与选择结构相对应的JacksonJackson图解逻辑,使用图解逻辑,使用selectselect、oror和和endend是关键字,其中是关键字,其中cond1cond1、cond2cond2和和cond3cond3分别是执行分别是执行B B、C C或或D D的条件:的条件:与重复结构相对应的与重复结构相对应的JacksonJackson图解逻辑,使用图解逻辑,使用iteriter、untiluntil、whilewhile和和endend是关是关键字,其中键字,其中condcond是条件:是条件:Jackson图解逻辑中的关键字与顺序结构相对应的Jacks顺序结构顺序结构:AseqBCDAend与三种基本结构对应的伪码是:与三种基本结构对应的伪码是:选择结构选择结构Aselectcond1BAorcond2CAorcond3DAend重复结构重复结构A iter until(或或 while)condBAend顺序结构:与三种基本结构对应的伪码是:选择结构重复结构示例:打印表格程序的输出数据结构和对应的程序结构示例:打印表格程序的输出数据结构和对应的程序结构示例:打印表格程序的输出数据结构和对应的程序结构例例:一个正文文件由若干记录组成,每个记录是一个字符串。:一个正文文件由若干记录组成,每个记录是一个字符串。如:如:Record 1:How many stages are there in the traditional software development model?Record 2:After entering the room,walk to the person sitting nearest to you and greet him/her with a“high five”.Record 3:What are encapsulated into an object?Record 4:What diagram is the following diagram?Simply describe the meaning of it.实例实例2 2:例:一个正文文件由若干记录组成,每个记录是一个字符串。实例2要求:要求:1)设计程序统计每个记录中空格字符的个数,输出数据)设计程序统计每个记录中空格字符的个数,输出数据的格式是,每读入一个记录(字符串)之后,另起一的格式是,每读入一个记录(字符串)之后,另起一行打印出这个字符串及其空格数;行打印出这个字符串及其空格数;Record 1:How many stages are there in the traditional software development model?The number of Blank is 12 2)最后打印出文件中空格的总个数。)最后打印出文件中空格的总个数。要求:JSP方法的分析和设计步骤方法的分析和设计步骤-1第1步.分析并确定输入和输出数据结构的逻辑结构,并用Jackson图画出JSP方法的分析和设计步骤-1第1步.分析并确定输入和输出数JSP方法的分析和设计步骤方法的分析和设计步骤-2第2步.找出输入数据结构与输出数据结构中有对应关系的数据元素有对应关系是指有直接因果关系,即在程序中可以同时处理的数据元素对于表示“重复”的数据元素,只有其重复次数和次序都相同时才有对应关系输入/输出数据结构最高层次的两个数据元素总是有对应关系的JSP方法的分析和设计步骤-2第2步.找出输入数据结构与输出JSP方法的分析和设计步骤方法的分析和设计步骤-3第3步.从描述数据结构的Jackson图导出描述程序结构的Jackson图,导出规则:有对应关系的数据元素,按照它们在数据结构图中的层次在程序结构图的相应层次上画一个处理框(如果它们在输入和输出图中的层次不同,则程序结构图中处理框层次与较低的那个对应为输入数据结构图中剩余的每个数据元素,在程序结构图的相应层次上画一个处理框,在模块名称上增加“分析”或“处理”或取一个具有实际含义的名称为输出数据结构图中剩余的每个数据元素,在程序结构图的相应层次上画上一个处理框JSP方法的分析和设计步骤-3第3步.从描述数据结构的Jac程序结构图导出结果程序结构图导出结果程序结构图导出结果JSP方法的分析和设计步骤方法的分析和设计步骤-4第4步.列出所有操作和条件,并将它们分配到程序结构图的适当位置首先从输出操作开始,再回到输入操作加入必须的与条件有关的操作最后把每个操作都分配到程序结构中去JSP方法的分析和设计步骤-4第4步.列出所有操作和条件,并设变量sum存放一行字符串中的空格数;totalsum存放空格总数;pointer用来指示当前分析的字符在字符串中的位置,可列出其所有操作,并对其编号如下:停止打开文件关闭文件打印字符串打印空格数打印空格总数sum=sum+1条件列表如下:I(1):文件结束I(2):字符串结束S(3):字符是空格将条件与相应的循环条件关联,并将操作按次序与相当的模块进行关联,按从左至右决定先后顺序,关联后的程序结构图totalsum=totalsum+sum读入字符串sum=0totalsum=0pointer=1pointer=pointer+1设变量sum存放一行字符串中的空格数;totalsum存放空停止打开文件关闭文件打印字符串打印空格数打印空格总数sum:=sum+1totalsum:=totalsum+sum读入字符串sum:=0totalsum:=0pointer:=1pointer:=pointer+1文件结束字符串结束字符是空格停止打开文件关闭文件打印字符串打印空格数打印空格总数sum:JSP方法的分析和设计步方法的分析和设计步骤骤-5第5步.把带有操作的程序结构图转换成结构正文,同时加入选择及迭代条件统计空格统计空格 seq打开文件打开文件读入字符串读入字符串totalsum=0程序体程序体 iter until 文件结束文件结束 处理字符串处理字符串 seq 印字符串印字符串 seq 打印字符串打印字符串 印字符串印字符串 end sum=0 pointer=1 分析字符串分析字符串 iter until 字符串结束字符串结束 分析字符分析字符 select 字符是空格字符是空格 处理空格处理空格 seq sum=sum+1 pointer=pointer+1 处理空格处理空格 end 分析字符分析字符 or 字符不是空格字符不是空格 处理非空格处理非空格 seq pointer=pointer+1 处理非空格处理非空格 end 分析字符分析字符 end 分析字符串分析字符串 end 印空格数印空格数 seq 打印空格数打印空格数 印空格数印空格数 end totalsum=totalsum+sum 读入字符串读入字符串 处理字符串处理字符串 end程序体程序体 end印空格总数印空格总数 seq 打印空格总数打印空格总数印空格总数印空格总数 end关闭文件关闭文件停止停止统计空格统计空格 endJSP方法的分析和设计步骤-5第5步.把带有操作的程序结构图JSP方法的特点方法的特点简单、易学、形象直观、可读性好便于表示层次结构适用于小型数据处理系统JSP方法的特点简单、易学、形象直观、可读性好3.6 用户界面设计用户界面设计 用户界面又称人机界面或人机接口。用户界面设计是软件设计的重要组成部分。3.6.1用户界面设计的一般原则 用户熟悉原则 一致性原则 可恢复性原则用户指南原则 用户差异性原则3.6.2用户界面设计过程 用户界面设计是以用户为中心,反复迭代的过程。3.6用户界面设计用户界面又称人机界面或人用户界面设计过程图用户界面设计过程图 分析和理解用户活动与最终用户一起评价产生动态设计原型纸上设计原型设计原型可执行原型实现最终的用户界面与最终用户一起评价用户界面设计过程图分析和理解与最终用户产生动态纸上设计原型3.6.3 用户界面设计经验用户界面设计经验 人机界面主要有5种交互方式,即菜单选择、表单填写、命令语言、直接操纵和自然语言。1.菜单选择l一致性:选择用户熟悉的术语、以一致的方式使用这些术语。l简明性:l把关键词置于菜单条名称的首位:l建立逻辑上相似的条目组:同一菜单下面每个菜单条目应和其他条目有相似之处。3.6.3用户界面设计经验人机界面主要有5种交软件设计(详细设计)课件软件设计(详细设计)课件软件设计(详细设计)课件软件设计(详细设计)课件2.2.表单填写表单填写l使用有意义的标题l给出简短的可以理解的说明l在表单上使用逻辑序列对字段进行逻辑排序和分组l以视觉上有感染力的方式设计表单l使用熟悉的字段标签l使用一致的术语和缩写l在数据输入字段周围定立分界l允许光标方便地移动l允许简单的错误更正l尽可能防止错误l当输入无效值后能提供出错信息l清楚标出任何一个可选字段。l给出单个字段的解释l 清楚地用信号告知数据输入完成2.表单填写l使用有意义的标题软件设计(详细设计)课件3.3.命令语言命令语言 l限制命令数量l选择有意义的独特的命令名l使用缩写要一致l命令语法的结构应该一致l采用提示帮助临时用户l考虑用命令菜单帮助临时用户在绘图系统中,利用在绘图系统中,利用在绘图系统中,利用在绘图系统中,利用关键词关键词关键词关键词lineline、brokbrok、rectrect和和和和circcirc作为画作为画作为画作为画直线、折线、矩形和圆的助记符,进行识别和操作。直线、折线、矩形和圆的助记符,进行识别和操作。直线、折线、矩形和圆的助记符,进行识别和操作。直线、折线、矩形和圆的助记符,进行识别和操作。3.命令语言l限制命令数量在绘图系统中,利用关键词lin4.4.直接操纵直接操纵 l使用易于理解的图标:图标的意义应该尽可能明确,一个不恰当的图标不能很好地表示它的信息。l避免令人迷惑的类比:图标应以预期的方式工作。l不违反大众习惯:不同的用户群体可能对一个图标如何工作有不同的习惯。l为特有的目的使用图标。l仔细设计图标的交互。4.直接操纵l使用易于理解的图标:图标的意义应该尽可能软件设计文档软件设计文档总体设计说明书详细设计说明书参见实例参见实例软件设计文档总体设计说明书参见实例本章小结本章小结 软件设计是软件开发过程中用以保证质量的关键步骤。软件设计的主要任务是根据用户需求也即需求规格说明导出系统的实现方案。在进行软件设计时应该遵循一些基本原则,其中最主要的原则是模块独立性和可重用性原则。软件设计又分为总体设计和详细设计两个阶段。总体设计将软件需求转化为数据结构和软件系统的总体结构并建立接口。在传统的结构化总体设计中,利用变换分析和事务分析技术把数据流图变换成系统结构图,这是一种面向数据流的设计方法。本章小结软件设计是软件开发过程中用以保证质量的关键步骤。软本章小结本章小结详细设计阶段的任务是在总体设计的基础上,确定怎样具体地实现所要求的目标系统,也就是要为每一个模块或对象设计相应的算法和数据结构。传统的结构化程序设计技术目前已经比较成熟和得到了广泛的运用。它使用的详细设计的描述工具有程序流程图、盒图(N-S图)、PAD图、PDL语言、判定表和判定树等。JSP方法是一种面向数据结构设计方法,它的最终目标是得出程序的过程性描述,它并不明确地提出软件应该划分为模块的概念,模块只是设计过程中的副产品。本章小结详细设计阶段的任务是在总体设计的基础上,确定怎样具体写在最后写在最后成功的基成功的基础在于好的学在于好的学习习惯The foundation of success lies in good habits86写在最后成功的基础在于好的学习习惯86谢谢聆听 学习就是为了达到一定目的而努力去干,是为一个目标去战胜各种困难的过程,这个过程会充满压力、痛苦和挫折Learning Is To Achieve A Certain Goal And Work Hard,Is A Process To Overcome Various Difficulties For A Goal谢谢聆听Learning Is To Achieve A C87
展开阅读全文