- 1、本文档共89页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程Software Engineering 第六章 软件详细设计 6.1 详细设计任务 6.2 设计表示法 6.3 结构化程序设计 6.4 结构化定理 6.5 图形工具 6.6 面向数据结构的设计 小结 6.1详细设计任务 6.1.1 详细设计的基本任务 1.数据结构设计 前面的需求分析、总体设计阶段,确定的概念性的数据类型,要进行确切的定义。这一部分的设计内容一般比较多,所以大多数采用小型数据库辅助的方法。 2.物理设计 对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。 3.算法设计 在总体设计的结构完成后,结构各个环节的实现是多解的。着就需要用系统设计与分析的技术来描述。可以用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。 4.界面设计 用户界面的设计现在显得比较重要,可以采用字符用户界面设计,图形用户界面和多媒体人机界面设计。这就要结合具体的系统来处理。 5.其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。 (2)输入/输出格式设计 (3)人机对话设计:对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。 (4)网络设计:如果设计的软件是一个分布式系统,那么还要进行网络的拓扑结构设计。 6.编写设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义、参考资料。 (2)程序系统的组织结构。 (3)程序1(标识符)设计说明:包括功能、性能、输入、输出、算法、流程逻辑、接口。 (4)程序2(标识符)设计说明。 (5)程序N(标识符)设计说明。 7.评审 对处理过程的算法和数据库的物理结构都要评审。 6.1.2 详细设计方法 1.采用自顶向下、逐步求精的程序设计方法 在详细设计中,虽然处于“具体”设计阶段,但在设计某个复杂的模块内部处理过程时,仍可以采用逐步求精的方法。可以将其分解为若干个模块来实现,降低处理细节的复杂度。 2.使用三种基本控制结构构造程序 设计时,如果对一个模块处理过程细化中,开始是模糊的,可以用下面三种方式以模糊过程进行分解: (1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。 (3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。 3.组织形式 在详细设计阶段,当参加设计的人员比较多的时候,有可能因为设计员的技术水平、设计风格不同而影响到系统的质量。因此,要组织以一个负责全部技术活动的三人为核心小组。 小组中有负责全部技术的主程序员、协调、支持主程序员的后备程序和负责事务性工作的程序管理员。再加上其他技术人员。这种发生的目的是使设计责任集中在少数人身上,利于提高软件质量,并且能有效地提高软件生产率。 6.2 设计表示法 6.2.1 结构化语言 结构化语言是介于自然语言和形式化语言之间的一种类自然语言。结构化语言语法结构包括内外两层。内部语法则比较灵活,可以使用数据字典中定义过的词汇、易于理解的一些名词、运算符和关系符;外层语法具有较固定的格式,设定一组符号如IF、THEN、ELSE、DO WHILE…ENDWHILE、DO CASE…ENDCASE等,用于描述顺序、选择和重复的控制结构。 6.2.2 判定表 判定表也是在设计中常用的技术。在有些情况下,数据流图中的某个加工的一组动作依赖于多个逻辑条件的取值。这时,用自然语言或结构化语言都不易清楚地描述出来,而用判定表就能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。 判定表(Decision Table)是判定树表格形式,包括表四部分:条件定义、条件组合、动作定义和条件组合下的动作。判定表的结构如下图6—1所示。 判定表比判定树更严格、更具有逻辑性。判定表的条件严格按二进值取值,不会遗漏任何一种组合。 判定表能够把在什么条件下系统应做什么动作准确无误地表示出来,但不能描述循环的处理特性,循环处理还需结构化语言。 6.2.3判定树 判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用。图6--2是与表6--1功能等价的判定树。 当处理逻辑中含太多判定条件及其组合时,用判定表和判定树描述会比较方便、直观。 以上三种逻辑表达工具各有所长和不足,归纳起来可以得出下列结论: 对于一个不太复杂的判断逻辑(条件组合和行动只有10个左右),使用判断树比较好。
文档评论(0)