真是应了那句:白天游四方、晚上点灯补裤裆(捂脸),孩子睡了夜深人静了、我才是开始我的小笔记整理工作。。

详细设计是软件设计的第二阶段,这一阶段的工作,就是要对系统中的每个模块给出足够详细的过程性描述,故也称为过程设计)

目的:确定应该怎么具体实现所要求的系统经过这一阶段的设计工作,应该得出对目标系统的精确描述。具体的就是为了软件结构图中每一个模块确定采用的算法和快内数据结构。用某种选定的详细设计工具更清晰地描述,从而在编码阶段可以把这些描述直接翻译成某种程序设计语言,书写的源程序。

任务:要设计出程序的“蓝图”,以后程序将根据这个蓝图写出实际的代码。

5.2结构化程序设计

所使用的结构有:顺序、选择和重复3种

顺序结构:实现过程的步骤是任意算法说明的基础。

条件结构:提供按某些逻辑发生选择处理的条件

重复结构:提供循环处理

只有3种基本控制结构就能实现任何单入口单出口,且无死循环、死语句的程序。

结构化程序设计采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。

5.3详细设计工具

描述程序处理过程的工具称为详细设计工具,可以分为图形、表格和语言3类,对工具基本要求:提供对设计准确无歧义的描述,应能控制流程、处理功能、数据组织及其它方面的实现细节。从而在编码阶段能把对设计的描述直接翻译成程序代码

常用的详细设计工具:HIPO图、判定表、判定树前面章节已讲,现介绍新的如下:

程序流程图:

优点:易学、表达算法直观

缺点:不够规范,特别是使用箭头使质量受到很大影响因此必须加以限制,使其称为规范的详细设计工具。

为了使它能够描述结构化的程序限制只用前面所述的3种基本结构图。

例图5.1

程序流图的缺点:

1、本质上不是逐步求精的好工具,它诱使程序员过早考虑控制流程,而不去考虑程序的整体结构。

2、图中箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制,容易造成非结构化的程序结构。

3、程序流图不易表示数据结构和层次的结构。

5.3.2盒图 (N-S图)

N-S图的主要特点就是只能描述结构化程序所允许的标准结构图

例图5.2

N-S图的优点有

1、功能域表达明确,功能域从盒子图上可以明显看出来

2、很容易确定局部和全局数据的作用域

3、不可能随意转移控制。

4、很容易表达模块的层次结构并列出嵌套关系。

5、使软件人员遵守结构化程序设计的规定,自然地养成良好的程序设计风格。

5.3.3问题分析图(PAD图)

PAD时一种算法描述工具,采用一种由左向右的二维树型结构图来描述程序的逻辑,图5.3PAD的基本控制结构

图5.3

 PAD优点如下:

1、用PAD图设计出来的程序必然是结构化程序

2、PAD图描绘的程序结构十分清晰,图最左面的竖线就是程序的主线,即第一层结构,随着程序的层次增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线,PAD图中竖线的条数就是程序的层次数。

3、PAD图的付款支持自顶向下,逐步求精的方法,左边层次中的内容可以抽象,然后用def从做向右逐步细化

4、用PAD途表示的程序逻辑易读、易懂、易记使用方便

5、即可表示程序逻辑,也可用于描绘数据结构。

6、可自动生成程序,利用软件工具自动完成,省去扔编码工作,有利于提高软件的可靠性和软件生产率。

图5.4PAD图将数组A(1)到A(10)从大到小进行选择排序的算法描述

5.3.4过程设计语言(PDL) 

过程设计语言也称为伪码,是一种用于描述模块算法设计和处理细节的语言,具有严格的关键字外层语法,用于定义控制结构和数据结构。

PDL特点:

1、关键字有固定语法,以便提供结构化的控制结构,数据说明和模块化的特征,通常在所有可能嵌套使用的控制结构的头和尾部都有关键字。

2、描述处理过程的说明性语言没有严格的语法限制

3、具有数据说明机制,既包括简单的数据结构(如简单变量和数组)包括复杂的数据结构(如链表或层次的数据结构)

4、具有规模定义和调用机制,从开发应根据系统编程所用的语种,说明过程设计语言表示的有关程序结构。

PDL程序结构

1、顺序结构

自然语言描述结构如下

处理s1

处理s2

...

处理sn

2、选择结构

If-else结构如下

if条件

处理s1

else

处理s2

endif

if-orif-else结构如下

if条件1

处理s1

orif  条件2

处理s2

else处理sn

endif

case结构如下:

case of

case(1)

处理s1

case(2)

处理s2

...

else处理sn

endcase

循环结构

for结构如下

forI=1to m

循环体

end for

while 结构如下

while条件

循环体

endwhile

until结构如下

repeat

循环体

until条件

4、出口结构

escape结构如下

while条件

处理s1

cycle  i  if 条件

处理s2

endwhile

5、扩充结构

模块定义:procedure 模块名(参数)

return

end

模块调用定义 call 模块名(参数)

数据定义:de clare属性 变量多

注:属性有整列、实型、双精度、字符、指针、数组及结构类型

输入/输出定义 get(输入变量表) put(输出变量表)

5.4人机界面设计

本节对以下3个方面进行介绍:界面设计问题、界面设计原则、界面设计过程。

5.4.1人机界面设计问题

1、系统响应时间 属性:长度和易变性

2、用户帮助设施分为:集成和附加两类,集成一开始就设计在软件界面里面,附加:系统建成之后添加到软件中的。

3、出错信息处理:交互式系统给出错误信息或警告信息。

4、命令交互

5.4.2人机界面设计原则

可归为:界面简洁、控制摆放规范、颜色统一、符合用户习惯

3条用户界面设计的重要准则,称为黄金指导准则

1、让用户驾驭软件,而不是软件驾驭用户

2、尽可能减少用户的记忆负担

3、保持界面的一致性

5.4.3人机界面设计过程

1、建立任务的目标和意图

2、目标和意图明确后,建立界面需求规格模型。

3、以界面需求模型为依据,创建用户界面原型

4、用户使用评估该界面原型

5、设计者根据用户的意见修改设计并实现下一原型。

6、不断进行下去,直到用户感到满意为止。

5.5详细设计说明书

1、引言部分和前两章一样,不多赘述

2、程序描述:(所有模块给出以下说明)

2.1功能

2.2性能

2.3输出和输入项目

2.4算法:模块所选用的算法

2.5程序逻辑:详细描述各个模块实现的算法可以采用流程图NS图、PDL语言、PAD图、判定表和判定树等描述算法的图表。

2.6接口

2.7存储分配

2.8限制条件

2.9测试要点:给出测试模块的主要测试要求

本章小结:

详细设计阶段的任务是确定如何实现所要求的目标系统,将总体设计阶段得到的模块算法用详细审计工具:程序流程图、NS图、PAD图和PDL语言描述处来,即设计出程序蓝图,从而在下一个编码阶段直接翻译成某种程序设计语言书写的程序,结构化程序设计技术是软件详细设计的基础,任何一个程序都可以用:顺序、选择、循环2种结构来设计和实现,结构化程序设计具有理解性和可维护性。

人机界面设计质量直接影响用户对软件产品的接受程度,因此必须对人机界面设计给与足够的重视。在人机界面的设计过程中,必须充分重视并认真处理好系统响应,用户帮助实施、出错信息处理和命令交互4个设计问题。

第五章:软件详细设计相关推荐

  1. 【XJTUSE项目管理复习笔记】第五章 软件项目成本管理

    仅供学习参考,禁止商用与转载 项目管理复习笔记 第五章 软件项目成本管理 项目成本管理的主要过程 项目成本管理:包括用来确保在批准的预算范围内完成项目的必要过程 项目成本管理的主要过程:计划成本管理➡ ...

  2. 五、软件详细设计说明书-模板

    五.软件详细设计说明书 1.引言 1 1.1编写目的 1 1.2项目背景 1 1.3定义 2 1.4参考资料 2 2.总体设计 2 2.1需求概述 2 2.2软件结构 2 3.程序描述 2 3.1功能 ...

  3. 第五章 软件项目成本管理

    软件项目的成本管理,就是为了确保项目在既定预算内按时.按质.经济.高效地实现项目目标所开展的一种项目管理过程. 项目的成本管理包括成本估算.成本预算和成本控制. 本章内容提要 5.1 软件项目成本管理 ...

  4. FreeRTOS笔记篇:第五章 --软件定时

    目录 测试环境如下 概述 读者 软件定时器回调函数 ATimerCallback() 软件计时器的属性和状态 计时器服务-任务 计时器命令-队列 创建和启动软件计时器 xTimerCreate() x ...

  5. 第五章 软件下载与安装(二、Ubuntu安装Mininet)

    1.打开Ubuntu命令行 2.输入:apt-get update 3.输入:apt-get install git 4.输入:git clone git://github.com/mininet/m ...

  6. 第五章 软件下载与安装(二、VM安装Ubuntu16.4)

    1.下载Ubuntu系统镜像:[https://mirrors.aliyun.com/ubuntu-releases/16.04.7/ubuntu-16.04.7-desktop-amd64.iso] ...

  7. 软件项目管理-第五章软件项目任务分解

    1.任务分解定义 任务分解过程:将一个项目分解为更多的工作细目或者子项目,使项目变得更小.更易管理.更易操作. 任务分解结果:WBS(任务分解结构) WBS是对项目由粗到细的分解过程:面向交付成果的: ...

  8. 慕课软件质量保证与测试(第五章.课后作业)

    慕课金陵科技学院.软件质量保证与测试.第五章.软件测试过程.课后作业 0 目录 5 软件测试过程 5.7 课后作业 5.7.1 课堂重点 5.7.2 测试与作业 6 下一章 0 目录 5 软件测试过程 ...

  9. 软件工程技术--第五章 详细设计

    第五章 详细设计 5.1详细设计的任务与原则 详细设计(又称为过程设计或模块设计),是编码的前导. 详细设计的根本目标是: 确定应该怎样具体地实现所要求的系统. 经过这个阶段的设计工作,应该得出对目标 ...

  10. 软件构造 第五章第一节 可复用性的度量、形态和外部观察

    第五章第一节  可复用性的度量.形态和外部观察 面向复用编程(programming for reuse):开发出可复用的软件 基于复用编程(programming with reuse):利用已有的 ...

最新文章

  1. 并发编程2:认识并发编程的利与弊
  2. 推荐一个生成后端模拟数据的懒人工具:lazy-mock
  3. 【错误记录】Flutter 设备连接显示 Loading... ( 断网 | 删除 flutter/bin/cache/lockfile 文件 )
  4. 用springmvc作接口时返回json数据中文乱码
  5. hdu 5023 poj 2777(线段染色)2014 ACM/ICPC Asia Regional 广州 Online
  6. html5长按保存,iOS UIWebView仿微信H5页面实现长按保存图片功能
  7. 移动端H5页面返回并且刷新页面(BFcache)
  8. angular 创建服务器_使用D3和Angular创建通用的可视化
  9. shell if判断语句
  10. 两相四线步进电机的驱动
  11. FDTD超表面仿真详细教程,几何相位,共振相位,传播相位
  12. kubeadm reset重新初始化过程
  13. 年收入10万的家庭怎么买保险最划算?
  14. 解析大多数WordPress用户都选择托管虚拟主机的原因
  15. 一加手机·关闭应用双开储存空间
  16. VHDL行为描述方法实现与门
  17. 【解决】使用步道乐跑app如何查询体测成绩
  18. 【大中台-小前台】还是【小总部-大业务】?
  19. python爬取王者_Python爬取王者荣耀所有英雄以及高清大图
  20. ubuntu下安装迅雷thunder

热门文章

  1. 再生核希尔伯特空间和核方法
  2. 计算机 开机硬盘灯一直亮,硬盘灯一直亮,教您电脑硬盘指示灯一直亮怎么办
  3. landset8各波段_landsat8卫星全面
  4. DXP导出PCB为PDF格式的设置
  5. 做一个有批判性思维的程序员!
  6. c语言中 cos函数图像,余弦函数图像(cos余弦函数图像)
  7. 工地物资出入库管理软件系统
  8. 三菱伺服驱动器示例_三菱MRJB伺服放大器应用实例
  9. postman批量测试成功newman生成测试报告失败
  10. Hermite(埃尔米特)插值法