- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章:软件详细设计与编码
第四章 软件的详细设计和编码 §1 详细设计工具 详细设计的目标 详细设计的目标是提出分模块的、无歧义的描述软件的控制流向、处理功能、数据组织、过程细节等设计表示,以便在程序设计时可以严格遵循进行程序编制。 图形工具 ●流程图 推荐采用只含三种基本表示的结构方式。 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 显然,流程图简单易用,但实在非常灵活,容易被滥用。应硬性附加若干规定。为了方便,也可以适当放宽,例如,可以允许使用GO TO,但只能向下转移,而且不能破坏每种基本结构只能有一个输入和一个输出的规则,等等。 可以利用LCP方法对现有的非结构化的流程图加以改造。 当然,这种限制可能带来效率降低、增加复杂性(如增加判定条件)。 ● 框图(N-S图) 框图可以严格地保证只能使用三种基本结构。 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 ●IPO/DB图 在框图的基础上,给出了数据的流向以及标明数据的源和潭。 第四章 软件的详细设计和编码 表格工具:抉择表 第四章 软件的详细设计和编码 ●语言工具:伪码 【例】给定非结构化流程图,假定处理1中不改变B的值。 ①为什么说此图是非结构化的。 ②列出真值表并化简。 ③画出等价的结构化流程图。 ④画出等价的N-S图。 ⑤伪码表示。 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 ①非结构化是显然的,仅举一例:判定C出现了两个出口。 ②列出真值表: 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 化简: 1=a;2=B;3=Ab;4=AbC;5=Abc; 6=ab;7=B+Abc+abD; 8=abd;9=abD; ③画出结构化的流程图 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 第四章 软件的详细设计和编码 §2 编码 1. 编码阶段的任务 将软件的设计表示翻译成机器可以理解的形式,即将软件详细设计文档翻译成程序设计语言的实现形式。 编码是软件设计的最后阶段,相对而言比较简单。讨论编码是为了使源程序变得更加容易理解和维护。增加程序的可读性。 工作量估算:约为整个软件开发的20-30%。 时间估计:约为开发周期的20-25%。 第四章 软件的详细设计和编码 2. 程序设计语言的特性 (1)心理特性 由于目前程序设计语言与人们熟悉的自然语言存在很大的差别,程序设计语言要求人们改变思考和处理问题的方法以适应语言的特定限制。语言的心理特性对编程阶段有极大的影响。 ●一致性:语言使用相容记号的程度。 例如“+”:整数加、实数加、向量加、取后加1(x+),等等。 一致性太强,影响可读性,容易混淆;太弱又使编程人员需要记忆更多的记号。影响简洁性。 第四章 软件的详细设计和编码 ●歧义性:符合语法规则的语句可以产生不同的语义理解的程度。 例如,if A then if C then D else E; ●简洁性:程序员必须记忆的面向代码的信息数量,如运算符、保留字、分隔符等。 ●局部性:语言支持结构化构造和模块化的能力。局部性与灵活性是一对矛盾。 ● 线性:语言支持作用域的能力。 存在域与作用域的关系。“继承法则”:里层分程序继承外层分程序定义的数据结构。 第四章 软件的详细设计和编码 (2) 工程特性 由于程序设计语言是工程项目中使用的工具,语言的工程特性将直接影响它的使用。 ●可翻译性:语言支持从软件设计表示翻译到程序的能力。这里包括人们使用语言构造程序的能力、使用的方便程度和可操纵性等。 ●功效性:语言编译程序根据源代码产生的目标代码的运行效率、目标代码的质量、所耗费的资源等。 ●可移植性:语言对不同硬件、操作系统等环境的适应能力,为适应环境需要增加的工作量。 第四章 软件的详细设计和编码 ●开发工具:为支持编程人员的软件工具的数量、支持能力等。 ●可维护性:语言支持对程序的修改、扩充的能力,包括分块编译、与不同语言编制的目标程序连接、装配的能力等。 (3)技术特性 语言的技术特性主要是指语言的表达能力、适用范围等与语言本身有关的特性。 ●记号的特性 ●基本语言成分 第四章 软件的详细设计和编码
文档评论(0)