【软工视频总结】设计阶段

来源:互联网 发布:ubuntu无法创建文件夹 编辑:程序博客网 时间:2024/05/22 04:46

系统设计

设计阶段的基本目的就是解决系统“怎么做”的问题,整体分为两块: 概要设计和详细设计,概要设计的任务是将需求转化成数据结构和系统结构,对软件进行,模块的划分;详细设计是在概要设计的基础上,对结构进行细化,设计模块的过程和设计。结构程序设计(概要设计)是实现详细设计的关键,也就是说概要设计是详细设计的逻辑基础。

软件设计的目标和任务

  • 概要设计:需求转化成数据结构和系统结构,划分模块
  • 详细设计:通过对结构细化,设计每个模块的结构和算法

这里写图片描述


概要设计

设计过程

  1. 设想供选择的方案
  2. 选取合理方案
  3. 推荐最佳方案,和用户共同确定方案
  4. 功能分解
  5. 设计软件结构
  6. 设计数据库
  7. 制定测试计划
  8. 文档编写:概要设计说明书,用户手册
  9. 审查和复审

结构化设计原理:

模块化

抽象

软件工程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述出来;当总体设计想详细设计过渡时,抽象的程度也就随之减少了;当源程序写出来以后,就达到了抽象的最底层

逐步求精

逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。它定义为:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑

抽象和求精是一对互补的概念。抽象使得设计者能够说明过程和数据,却忽略了底层细节。可以吧抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。

信息隐藏和局部化

模块的独立

尽可能达到:模块内高内聚,模块间低耦合

面向设计流的设计方法

  • 分类:变化流 事务流

图形工具

  • 层次图:软件层次结构
  • IPO图:输入/处理/输出图
  • 结构图:软件结构

详细设计

详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的事设计出的处理过程应该尽可能简明易懂。

人机界面设计

系统响应时间

两个重要的属性:长度和易变性。如果系统响应时间过长,用户就会感到紧张和沮丧。但是,当用户工作速度是由人机界面决定的时候,系统响应时间过短也不好,,会迫使用户加快操作节奏
易变性指系统响应时间相对于平均响应时间的偏差,在许多情况下,这是系统响应时间的更重要的属性。例如:稳定在1秒的响应时间比从0.1秒到2.5秒变化的响应时间要好。用户往往比较敏感,他们总是担心响应时间变化按时系统工作出现了异常

用户帮助设施

常见的帮助设施分为集成和附加两类。集成帮助设施从一开始就设计在软件里。它对用户工作内容是敏感的,因此用户可以从与刚刚完成的操作有关的主题中选择一个请求帮助。附加的帮助设施实在系统建成后再添加到软件中的,多数情况下他实际是一种查询能力有限的联机用户手册。
必须解决的问题:
(1)在用户和系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?有两种选择:提供部分功能的帮助信息和提供全部功能的帮助信息
(2)怎样请求帮助?三种方式:帮助菜单,特殊功能键和HELP命令
(3)怎样显示帮助信息?三种:独立窗口中;指出参考某个文档;屏幕固定位置显示简短提示
(4)怎么返回到正常界面?返回按钮和功能键
(5)怎样组织帮助信息?3种:平面结构(所有信息都通过关键字访问),信息的层次结构和超文本结构(超链接)

出错信息处理

  1. 用户可理解
  2. 提供有助于从错误中恢复的建设性意见
  3. 指出错误可能导致哪些负面后果,以便用户检查是否出现这种问题,并及时得到解决
  4. 信息应伴随听觉或视觉上提示
  5. 信息不能带有职责色彩

过程设计工具

程序流程图

又称程序框图,有如下缺点:
1. 本质上不是逐步求精的好工具,诱使程序员过早的考虑程序的控制流程,而不是考虑全局结构
2. 用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制
3. 不易表示数据结构

盒图

特点:
1. 功能域(特定控制结构的作用域)明确,可以一眼看出功能域
2. 不可能任意转移控制
3. 很容易确定局部和全程数据的作用域
4. 很容易表现嵌套关系,也可以表示模块的层次结构

PAD图

PAD是问题分析图(problem analysis diagram)缩写,它用二位数形结构图来表示程序的控制流。
优点:
1. 使用PAD设计出来的程序必然是结构化程序
2. 程序结构十分清晰
3. 表现程序逻辑,易读、易懂、易记
4. 容易转换成高级语言源程序
5. 即可表示程序逻辑,也可以描绘数据结构
6. 支持自顶向下、逐步求精方法的使用

判定表

容易表达多重嵌套的条件选择

判定树

清晰表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的

过程设计语言PDL

也称伪码,他是用正文形式表示数据和处理过程的设计工具。

面向数据结构的设计方法

这个设计方法最终目标是得出对程序处理过程的描述,并不明显地使用软件结构的概念,模块是设计过程的副产品,对于模块独立原理也没有也没有给予应有的重视。因此这种方法适合于详细设计阶段使用,也就是说完成概要设计后,可以这种方法设计每个模块的处理过程。

Jackson图

Jackson图和描绘软件结构的层次图形式类似,含义不同。层次图中每个方框带便一个模块;而Jackson图即使在描绘程序结构时,一个方框也并不代表一个模块,而是只代表几个语句。层次图表现的事调用关系;而Jackson图表现的是组成关系,也就是说一个方框的操作仅仅由下层框中的那些操作组成。

这里写图片描述

0 0
原创粉丝点击