第五章-详细设计

第五章-详细设计

1)了解详细设计的概念及在软件开发中的位置,了解详细设计的目标、步骤及基本任务。
2)熟悉结构化设计方法和面向对象的设计方法及其各自特点。
3)熟悉Coad与Yourdon方法、Booch方法、OMT方法等常用的面向对象方法。
4)理解UML中的用例模型、动态模型、静态模型及实现模型中的各种图的表达含义。
5)掌握程序流程图、N-S图、PAD图、PDL图及判定表等设计图表工具。

1、详细设计的任务

确定应该怎样具体的实现所需要的系统

详细设计阶段的根本目标是经过这个阶段的设计工作得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。

目标:不仅在逻辑上正确的实现每个模块的功能,而且设计出的处理过程应该尽可能简明易懂

2、结构程序设计

定义:

  • 如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
  • 尽可能少用GO TO语句的程序设计方法,最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO语句。

基本的控制结构:

  • 顺序
  • 选择
  • 循环

3、用户界面设计

(1)用户界面的特征

可使用性

  • 使用的简单性
  • 用户界面中的术语标准化和一致性
  • 拥有HELP帮助功能
  • 快速的系统响应和低的系统成本
  • 用户界面应具有容错能力、错误诊断功能

灵活性

  • 算法的可隐可现性
  • 用户可以根据需要制定和修改界面方式
  • 系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息
  • 与其他软件系统应有标准的界面

复杂性和可靠性

  • 用户界面的复杂性:用户界面的规模组织的复杂程度就是界面的复杂性
  • 用户界面的可靠性:用户界面的可靠性是指无故障使用的间隔时间

(2)用户界面的任务分析

这一部分工作应与软件系统的需求分析同步进行。
它主要包括用户特性分析用户工作分析记录用户有关系统的概念和术语确定界面类型等4个步骤。

界面设计的数据流图:
第五章-详细设计_第1张图片

(3)系统响应时间

从用户完成某个控制动作到软件给出预期的响应之间的这段时间

重要属性:

  • 长度
  • 易变性:指系统响应时间相对于平均响应时间的偏差

(4)用户帮助设施

  • 集成:从一开始就设计在软件里面
  • 附加:在系统建成后再添加到软件中的

用户界面设计是一个迭代的过程:
先创建设计模型,接下来用原型实现这个设计模型并由用户试用和评估原型,然后根据用户意见修改原型,直到用户满意为止。

4、过程设计的工具

  • 图形工具
    将过程细节用图形来表示,在图中,逻辑结构用具体的图形表示。
    • 程序流程图(Program Flow Chart)
    • 盒图(Box Diagram)
    • PAD图(Problem Analysis Diagram)
  • 列表工具
    利用表来表示过程细节,表列出了各种操作和相应的条件。
    • 判定表&判定树(Decision Table & Tree)表示复杂的条件(input)组合与应做动作(output)之间的对应关系。
  • 语言工具
    用类语言(伪码)表示过程的细节,很接近编程语言。
    • PDL(Program Design Language):又称Pseudo code

程序流程图
第五章-详细设计_第2张图片
优点:直观、容易掌握,且历史悠久,使用广泛。
缺点:对于提高大型系统的可理解性作用甚微;不易表示数据结构;转移控制太方便。
趋势:使用越来越少。

盒图
第五章-详细设计_第3张图片
特点:

  • 没有箭头,不允许随意转移控制。
  • 每个矩形框(Case中条件取值例外)都是一个功能域,结构表示明确。
  • 局部及全程数据的作用域易见。
  • 易表现嵌套关系以及模块的层次结构。

PAD
用二维树形结构的图来表示程序的控制流第五章-详细设计_第4张图片
第五章-详细设计_第5张图片
第五章-详细设计_第6张图片
优点:

  • 使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。
  • PAD图所描绘的程序结构十分清晰。
    图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。
  • 用PAD图表现程序逻辑,易读、易懂、易记。
    PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。
  • 容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
  • 既可用于表示程序逻辑,也可用于描绘数据结构。
  • PAD图的符号支持自顶向下、逐步求精方法的使用。
    开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计。

PAD图是面向高级程序设计语言的
特点:

  • 结构清晰,层次分明,易读;
  • 支持自顶向下、逐步求精的设计思想;
  • 容易将PAD自动转换为高级语言源程序。

判定表
注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试。

判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。

组成:
左上部列出所有条件
左下部是所有可能做的动作
右上部是表示各种条件组合的一个矩阵
右下部是和每种条件组合相对应的动作

语言工具
伪码,用正文形式表示数据和处理过程的设计工具。

PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;
另外,PDL表示实际操作和条件的内部语法通常又是灵活自由的,可以适应各种工程项目的需要。
因此,PDL是一种混杂语言,他使用一种语言的词汇,同时却使用另一种语言的语法。

特点

  • 关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。例如,if…fi(或endif)等。
  • 自然语言的自由语法,他描述处理特点。
  • 数据说明的手段。应该既包括简单的数据结构,又包括复杂的数据结构。
  • 模块定义和调用的技术,应该提供各种接口描述模式。

优点

  • 可以作为注释直接插在源程序中间。
  • 可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作。
  • 已经有自动处理PDL的程序存在,而且可以自动由PDL生成程序代码。

缺点

  • 不如图形工具形象直观,描述复杂的条件组合与动作间的的对应关系时,不如判定表清晰简单。

5、面向数据结构的设计方法

面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。

这种方法最适合于在详细设计阶段使用。

在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程。

Jackson方法

Jackson结构程序设计方法由下述5个步骤组成:

  1. 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。
  2. 找出输入数据结构和输出数据结构中有对应关系的数据单元。
  3. 用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:
    第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框;
    第二/第三,根据输入/输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
  4. 列出所有操作,以及选择或循环条件,并且把它们分配到程序结构图的适当位置。
  5. 用伪码表示程序。

例子:
一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。
第五章-详细设计_第7张图片
第五章-详细设计_第8张图片
第五章-详细设计_第9张图片
第五章-详细设计_第10张图片
第五章-详细设计_第11张图片
第五章-详细设计_第12张图片
第五章-详细设计_第13张图片
第五章-详细设计_第14张图片

你可能感兴趣的:(软件工程,经验分享,恰饭,程序人生,面试)