第5章 详细设计

合集下载

软件工程 第4版 第5章 详细设计

软件工程 第4版 第5章 详细设计

数据流程图
01
数据流程图表示 求解某一问题的 数据通路,同时 规定了处理的主 要阶段和所用的 各种数据媒体
程序流程图
02
程序流程图表示 程序中的操作顺 序
系统流程图
03
系统流程图表示 系统的操作控制 和数据流
程序网络图
04
程序网络图表示 程序激活路径和 程序与相关数据 流的相互作用
系统资源图
05
系统资源图表示 适用于一个问题 或一组问题求解 的数据单元和处 理单元的配置
5.1.3 PAD
01 PAD 的基本符号
OPTION
➢ 顺序结构 ➢ 条件结构 ➢ CASE 型多分支结构 ➢ 先检测循环条件的WHILE 型循环结构 ➢ 后检测循环条件的UNTIL 型循环结构 ➢ 语句标号 的特点
OPTION
用PAD 表示的程序从最左边的竖线的上端开始,自上而 下、自左向右执行 用PAD 设计的软件结构必然是结构化的程序结构
图1
图2
5.1.1 流程图
04 流程图的3 种基本结构
OPTION
流程图的3 种基本结构为顺序结构、条件 结构和循环结构,如图1所示,图中的C 是判 定条件。顺序结构如图(a)所示。条件结构 可分为两种,一种是IF...THEN...ELSE 型条件 结构,如图(b)所示;另一种是CASE 型多 分支结构,如图(c)所示。
应的应做的工作。
2 判定表中的符号
右上部用T 表示条件成立,用F表示条件不 成立,空白表示条件成立与否不影响。
右下部画× 表示在该列上面规定的条件下做 该行左边列出的那项工作,空白表示不做该 项工作。
5.1.5 判定树
判定树和判定表一样,也能表明复杂的条件组 合与对应处理之间的关系。判定树是一种图形表示 方式,更易被用户理解。

软件工程 第5章软件详细设计

软件工程 第5章软件详细设计

第5章例题分析与解答作者:不详来源:2006年9月1日发表评论进入社区一、填空题1.结构化程序设计方法的要点是使用___三种基本控制_____结构,自顶向下、逐步求精地构造算法或程序。

2.为了产生结构化的流程图,应由三种基本控制结构顺序组合或__完全嵌套___而成。

3.结构化程序设计方法提倡开发人员的组织形式是___主程序组_____。

4.PAD图是一种由左向右展开的二维树型结构,图中的竖线为程序的____层次线____。

5.在Jackson方法中解决结构冲突的具体办法是引入__中间数据结构或中间文件______。

二、选择题1.详细设计与概要设计衔接的图形工具是( B )。

A.DFD图B.SC图C.PAD图D.程序流程图2.结构化程序设计主要强调的是( C)。

A.程序的效率B.程序的执行速度C.程序的易读性D.程序的规模3.详细设计的任务是确定每个模块的( A)。

A.算法B.功能C.调用关系D.输入输出数据4.Jackson方法实现从( A )导出(C )。

A.数据结构B.数据流图C.程序结构D.软件模块层次结构5.在软件详细设计过程中不采用的描述工具是( D )。

A.判定表B.IPO图C.PAD图D.DFD图三、应用题一个正文文件由若干个记录组成,每个记录是一个字符串。

要求统计每个记录中空格字符的个数及文件中空格字符的总个数。

要求输出数据格式是每复制一行字符串之后,另起一行印出上一行字符串空格字符的个数,最后一行印出空格字符总个数。

答案:一、填空题1.三种基本控制结构2.完整嵌套3.主程序员组4.层次线5.中间数据结构或中间文件二、选择题1.B2.C3.A4.AC5.D三、应用题图5-1图5-2<>第5章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.结构化程序设计2.PAD3.PDL4.结构冲突5.对应关系二、填空题1.结构化程序设计方法使用___三种基本控制结构___构造程序。

第5章 详细设计案例

第5章 详细设计案例

软件工程详细设计案例[案例1] 高等学校工资管理系统(详细设计)详细设计阶段的根本目标是确定应该怎样具体地实现所需求的系统,也就是说,经过这个阶段的设计工作,得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言的代码。

在图4-5 中可以看到工资管理系统已表示成由若干模块组成的层次结构。

每个模块代表一组详细的处理逻辑。

为了更好地描述模块的处理逻辑,应对每一个模块用一张IPO 图进行细节描述,例如,工资管理主控模块的IPO 图可示意如下(参见图5-1)。

最后设计出各个模块的程序流程图(或N-S 图)。

图5-1 工资管理主控模块的I PO 图[案例2] 电子名片管理系统(详细设计报告)1 引言1.1 编写目的随着社会发展的日新月异,商业来往日渐广泛,人们之间的交往也日益频繁,于是,人们手中便出现了名目繁多的通讯录、名址录、名片夹等对交友或客户进行管理的工具,但是一张张名片上的信息虽然不多,却占据了很大的空间;同时,这些传统的手动管理方式存在着不易更新、不易存放、容易丢失、难以备份等重大缺陷;而建立自己的电子文档对名片进行管理虽然克服了以上的缺点,但查询效率低下,特别是当数据量十分庞大时,劣势更加明显。

随着商务通的出现,虽然实现了可构造查询条件的名片电子化管理,但价格昂贵,难以在广大客户中进行全面普及。

因此开发一个既可以存储信息,又可以进行更新、查询等功能,同时价格又能为广大消费者接受的多功能电子通讯录就显得十分必要。

本报告读者对象为研发中心领导和主管技术人员,以及项目设计和开发人员。

1.2 项目背景项目名称初步定为:电子名片管理系统(ECMS,Electronic Card Management System)。

分为4 个子功能模块:密码管理模块、更新模块、查询模块和数据导入/导出模块。

本项目的任务提出者为北京ECM&ZW 软件开发有限公司,开发者和主管部门为ECM&ZW 软件开发研制中心。

【课程练习】习题解答-第五章 详细设计

【课程练习】习题解答-第五章 详细设计

第五章详细设计1.详细设计的基本任务是什么?有哪几种描述方法?详细设计的基本任务:(1)为每个模块进行详细的算法设计。

(2)为每个模块内的数据结构进行设计。

(3)对数据库进行设计,即确定数据库的物理结构。

(4)其他设计:a.代码设计b.输入/输出格式设计。

c.人机对话设计。

(5)编写详细设计说明书。

(6)评审。

描述方法(三种):a.程序流程图b.PAD图 C.过程设计语言2.结构化程序设计基本要求要点是什么?a.采用自顶向下、逐步求精的程序设计方法b.使用三种基本程序控制结构构造程序1).用顺序方式对过程分解,确定各部分的执行顺序。

2).用选择方式对过程分解,确定某个部分的执行条件。

3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。

c.主程序员组的组织形式。

3.简述Jackson 方法的设计步骤。

Jsp 方法一般通过以下5个步骤来完成设计:a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构。

b.找出输入数据结构和输出数据结构中有对应关系的数据单元。

c.按一定的规则由输入、输出的数据结构导出程序结构。

d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。

e.用伪码写出程序。

4.请使用流程图、PAD图各PDL语言描述下列程序的算法。

(1)在数据A(1)-A(10)中求最大数和次大数。

(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。

答:(1)1)流程图:2)PAD图3)PDL语言定义n1=n2=0输入A(1).......A(10)n1=n2=A(1)while i>10if A(i)>=n1n2=n1n1=A(i)end while5.用PAD图描述下面问题的控制结构。

有一个表A(1)、A(2)、........A(n),按递增顺序排列。

给定一个Keyw值,在表中用折半查找。

若找到将表位置i送入x,否则将零送到x,同时将Key值插入表中。

第五章节软件详细设计

第五章节软件详细设计

10/31/2020
21
界面举例MSN
10/31/2020
22
界面举例红心大战
缺省值
10/31/2020
23
黄金规则:保持界面一致
用户应以一致的方式展示和获取信息
• 所有可视信息的组织均按照贯穿所有屏幕显示 所保持的设计标准
• 输入机制被约束到有限的集合,在整个应用中 被一致地使用
• 从任务到任务的导航机制被一致地定义和实现
10/31/2020
9
其他工具
其他工具:
• HIPO图 • 判定表 • 判定树
10/31/2020
10
软件设计元素
· 模块过程设计 · 代码设计 · 用户界面设计 · 文件格式设计 · 安全控制设计
10/31/2020
11
代码设计
■ 代码是由一些数字、字母或特殊符号组成的用 来表征事物名称、属性、状态和数量等的标识。
10/31/2020
33
用户经验、知识方面的使用需求
• 系统应能让未经专门训练的用户使用
• 系统能对不同经验用户做出不同反应
• 提供同一系统的一致性,建立标准化人机界面
• 系统必须适应用户在应用领域的知识变 化,提供动态的自适应的设计
10/31/2020
34
用户对系统的期望方面的要求
• 用户界面应提供形象、生动、美观的布 局显示和操作环境
界面设计主要包括三个方面:
• 设计软件构件之间的接口 •者设的计界模面块和其他非人的信息生产者和消费 • 设计人(如用户)和计算机间的界面
10/31/2020
17
界面的设计原则
• 分析用户类型 • 应用程序和界面分离 • 一致性 • 尽量减少用户工作 • 出错处理和帮助功能 • 增加可视化图形表示

软件工程-详细设计

软件工程-详细设计


(3)程序流程图不便于表示数据结构。
前一页
程 序 流 程 图
前一页
盒图(N-S图)

Nassi和Shneiderman提出盒图

(1)功能域(一个特定控制结构的作用
设 域)明确,可以从盒图上一眼就看出来。

(2)不能够随意转移控制。
的 (3)很容易确定局部和全局数据的作用 域。

(4)很容易表现嵌套关系,也可以表示
序 择一个。
设 3.重复结构
计 方
重复结构的数据,根据使用时的条件由一个数 据元素出现零次或多次构成。

前一页
JACKSON图
J
JACKSON图
A
C
K
S O
Jackson图的优点:便于表示层 次结构,而且是对结构进行自顶向下分 解的有力工具;形象直观可读性好;
N
既能表示数据结构也能表示程序结构


使用最广泛、也是用得最混乱的一种描述软件设计 的方法。总的趋势是正在逐步被淘汰 。

(1)程序流程图在本质上并不是逐步求精的好

工具,它诱使程序员过早地考虑程序的控制流程, 而不去考虑程序的全局结构。

(2)程序流程图中用箭头代表控制流,因此程

序员不受任何约束,可以完全不顾结构化程序设计 的原则,随意转移控制。
描述程序处理过程的工具称为 详细设计的工具,分为图形、表格 和语言三类。都要求能提供对设计 的无歧义(无二义性)的描述。
前一页
详细设计的工具
• 程序流程图
主 要
• 盒图(N-S图) • PAD图

• 判定表

• 判定树

第5章 详细设计

第5章 详细设计

由用户试用和评估
3. 人机界面设计指南 1)一般交互指南
(1)保持一致性. (1)保持一致性. 保持一致性
应该为人机界面中的菜单选择, 应该为人机界面中的菜单选择, 命令输入, 命令输入,数据显示以及众多的其 他功能,使用一致的格式.举例: 他功能,使用一致的格式.举例: PPT中的菜单 中的菜单, PPT中的菜单,对话框
3. 人机界面设计指南 1)一般交互指南
提供有意义的反馈. (2) 提供有意义的反馈.
应向用户提供视觉的和听觉的 反馈, 反馈,以保证在用户和系统之 间建立双向通信.举例: 间建立双向通信.举例:注册 表单中的错误信息怎样弹出
3. 人机界面设计指南 1)一般交互指南
(3)在执行有较大破坏性的动作之前 (3)在执行有较大破坏性的动作之前 要求用户确认. 要求用户确认.
描述工具
PDL 伪代码
描述程序处理过程的工具 称为过程设计工具, 称为过程设计工具,它们 可以分为图形 表格, 图形, 可以分为图形,表格,和 语言3 语言3类. 不论是哪类工具,对它们 不论是哪类工具, 的基本要求都是能提供对 设计的无歧义的描述. 设计的无歧义的描述.即: 应该能指明控制流程, 应该能指明控制流程,处 理功能,数据组织, 理功能,数据组织,以及 其他方面的实现细节, 其他方面的实现细节,从 而在编码阶段能把对设计 的描述直接翻译成程序代 码.
1.
人机界面设计问题
设计人机界面中的4个问题: 设计人机界面中的4个问题: 1)系统响应时间 2)用户帮助设施 3)出错信息处理 4)命令交互
2.人机界面设计过程 2.人机界面设计过程
用户界面设计是一个迭代的过程. 用户界面设计是一个迭代的过程.
创建设计模型

第5章软件详细设计

第5章软件详细设计

第5章软件详细设计软件详细设计是软件开发过程中的一个重要环节,它是在需求分析的基础上,对软件系统进行具体设计的过程。

本章将对软件的各个模块进行详细设计,包括模块之间的关系和功能实现细节。

在进行软件详细设计时,需要考虑以下几个方面:1.模块划分:根据需求分析中的功能点,将系统划分为多个模块,每个模块实现一个或多个功能。

2.模块之间的关系:分析各个模块之间的依赖关系,确定模块之间的调用关系和数据交互方式。

3.功能实现细节:对每个模块进行详细设计,包括具体的算法实现、数据结构设计、界面设计等。

4.系统性能考虑:考虑系统在各种情况下的性能要求,针对性地进行优化设计,提高系统的运行效率。

在软件详细设计中,需要根据需求分析中的功能点进行模块划分。

以一个电商系统为例,可以将系统划分为用户管理模块、商品管理模块、订单管理模块等多个功能模块。

每个模块负责实现相应的功能,同时模块之间需要进行数据交互和调用。

在模块之间的交互设计中,可以采用面向对象的设计思想,通过定义接口和类来描述模块之间的关系。

例如,在用户管理模块中,可以定义一个User类,该类包含了用户的基本信息和操作方法。

在订单管理模块中,可以通过调用User类的方法来获取用户的信息。

在功能实现细节方面,需要根据模块的功能点来进行具体的实现。

例如,在商品管理模块中,需要实现商品的增删改查功能。

可以使用数据库来存储商品信息,通过SQL语句来进行增删改查操作。

在系统性能考虑方面,可以采用多线程、缓存等技术来提高系统的运行效率。

例如,在订单管理模块中,可以使用多线程来处理订单的并发操作,提高系统的并发性能。

总之,软件详细设计是软件开发过程中的一个重要环节,通过对系统的模块划分、模块之间的关系和功能实现细节的设计,可以确保软件系统按照需求进行正确、高效地实现。

同时,考虑系统的性能要求和优化设计,可以提高系统的运行效率和用户体验。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

19
举例:将下列伪代码转换成PAD表示
S1; if (x>5) then S2 else S3; while (y<0) S4; S5; if u>0 then { S6; while (k>5) S7; } S8;
S1 x>5 S2 S3
While y<0
S5
S4
S6
u>0
While k>5
S7
3
详细设计的任务
主要确定每个模块具体执行过程,具体包括: 为每个模块进行详细的算法设计。 为模块内的数据结构进行设计。 对数据库进行物理设计。 其他设计,如:代码设计、输入/输出格式 设计、人机对话设计。 编写详细设计说明书。 评审
4
详细设计的原则
模块的逻辑描述正确可靠、清晰易读。 采用结构化程序设计方法,改善控制结构,降低程 序复杂度,提高程序的可读性、可测试性和可维护 性。 什么是结构化程序设计? 结构化程序设计是一种设计程序的技术,它采用 自顶向下,逐步求精的设计方法和单入口单出口的控制
S8
20
3.PAD图的主要优点
使用表示结构化控制结构的PAD符号所设计出 来的程序必然是结构化程序。 PAD图所描绘的程序结构十分清晰。 图中最左面的竖线是程序的主线,即第一层 结构。 随着程序层次的增加,PAD图逐渐向右延伸, 每增加一个层次,图形向右扩展一条竖线。 PAD图中竖线的总条数就是程序的层次数。
26
用判定表表示计算行李费算法
国内乘客 头 等 舱 T × × × × × × × × 残疾乘客 行李≤30kg 免费 (W-30)*2 (W-30)*3 (W-30)*4 (W-30)*6 (W-30)*8 T T F F T F F F T T T F T F T F F T F F F F F F F T T F F F T F
NO
读下一个分数
计数器加1
计数器加1
将分数添加 到总和
分数累加到总和
将总和除以 计算器值赋 给平均分
求出平均值
显示平均 分
显示结果
Program average grade Dim grade,sum ,average As Real Dim counter As integer sum=0.0 counter=0 Do while there no more data input(grade) sum=sum+grade counter=counter+1 EndWhile average=sum/counter Output(average) End average grade

13
2 N-S图
N-S图也叫做盒图。 五种基本控制结构由五种图形构件表示。

14
N-S图的嵌套定义形式
15
根据例1的程序流程图画出对应的盒图
16
N-S图的特点
功能域(即,一个特定控制结构的作用域)明 确,可以从盒图上一眼就看出来。 不可能任意转移控制。 很容易确定局部和全程数据的作用域。 很容易表示嵌套关系,也可以表示模块的层 次结构。 盒图没有箭头,因此不允许随意转移控制。
44
设计问题
在设计人机界面的过程中,几乎总会遇到下 述4个问题: 系统响应时间 用户帮助设施 出错信息处理 命令交互。

45
1.系统响应时间
定义:系统响应时间指从用户完成某个控制 动作到软件给出预期的响应之间的这段时间 两个重要属性:长度和易变性 长度:响应时间的长短; 易变性:响应时间相对于平均响应时间 的偏差

伪代码课堂练习
问题:计算并报告一个班学生的平均分数。 讨论:平均分数等于所有学生分数的和除以 学生数。我们需要一个循环然后加班中每位 学生的分数。在循环内仍需要班内学生的总
数。
37
2.1.2 一种伪代码规则(续)
开始 将计数器与 总和初始化 为零 计数器与总 和初值为零
还有数 据吗?ቤተ መጻሕፍቲ ባይዱYES 获得分数

47
设计帮助设施时,必须解决的一系列问题:
(1)在用户与系统交互期间,是否在任何时候都能获 得关于系统任何功能的帮助信息? 提供部分功能的帮助信息 提供全部功能的帮助信息。 (2)用户怎样请求帮助? 有3种选择:帮助菜单,特殊功能键和HELP命 令 (3)怎样显示帮助信息? 有3种选择,在独立的窗口中,指出参考某个 文档和在屏幕固定位置显示简短提示
29
用判定树表示计算行李费算法
30
判定表例题:
例:某校制定了教师的讲课课时津贴标准。 对于各种性质的讲座,无论教师是什么职称, 每课时津贴费一律是50元;而对于一般的授 课,则根据教师的职称来决定每课时津贴费: 教授30元,副教授25元,讲师20元,助教15 元。画出判定表,和判定树

31
1
2 T

21
3.PAD图的主要优点

用PAD图表现程序逻辑,易读、易懂、易记
PAD图是二维树形结构的图形,程序从图中 最左竖线上端的结点开始执行,自上而下, 从左向右顺序执行,遍历所有结点。


容易将PAD图转换成高级语言源程序。
这种转换可用软件工具自动完成,从而可省 去人工编码的工作,有利于提高软件可靠性 和软件生产率。

46
2.用户帮助设施
常见的帮助设施可分为集成的和附加的两类。 1、集成的帮助设施从一开始就设计在软件里面,通 常,它对用户工作内容是敏感的,因此用户可以从与 刚刚完成的操作有关的主题中选择一个请求帮助。显 然,这可以缩短用户获得帮助的时间,增加界面的友 好性。 2、附加的帮助设施是在系统建成后再添加到软件中 的,在多数情况下它实际上是一种查询能力有限的联 机用户手册。
(W-30)*12
×
27
判定表的缺点:


判定表虽然能清晰地表示复杂的条件组合与 应做的动作之间的对应关系,但其含义却不 是一眼就能看出来,初次接触这种工具的人 理解需要一个学习的过程。 当数据元素的值多于两个时,判定表的简洁 程序将下降。
28
5.判定树



判定树是判定表的变种,也能清晰地表示复 杂的条件组合与应做的动作之间的对应关系。 判定树的优点:它的形式简单到不需任何说 明,一眼就可以看出其含义,因此易于掌握 和使用。 多年来判定树一直受到人们的重视,是一种 比较常用的系统分析和设计的工具。
50
4.命令交互
设计中应该考虑的问题 (1)是否每个菜单选项都有对应的命令? (2)采用何种命令形式? 有3种选择:控制序列(例如,Ctrl+P), 功能键和键入命令。 (3)学习和记忆命令的难度有多大?忘记了命 令怎么办? (4)用户是否可以定制或缩写命令? 在越来越多的应用软件中,人机界面设计 者都提供了“命令宏机制”
40
Break; ENDIF 调用相应下层模块完成用户选择功
ENDWHILE; RETURN
END
41
PDL 的总体结构与一般程序完全相同。 外语法
同相应程序语言一致,内语法使用自然语言,
易编写, 易理解,也很容易转换成源程序。除
此以外,还有以下优点:
(1) 可作为注释嵌入在源程序中一起作为程序 的文档,并可同高级程序设计语言一样进行编 辑、修改,有利于软件的维护 (2) 可自动生成程序代码,提高软件生产率。
第五章 详细设计
1
教学重、难点
1.掌握软件详细设计的基本任务。(重点)
2.掌握结构化设计中过程描述的工具。(难点)
3.理解用户界面设计要求。(重点)
2
1 、详细设计介绍
详细设计的根本目标是: 确定应该怎样具体地实现所要求的系统。 经过这个阶段的设计工作,应该得出对 目标系统的精确描述,从而在编码阶段可以 把这个描述直接翻译成用某种程序设计语言 书写的程序。
48
设计帮助设施时,必须解决的一系列问题:
(4)用户怎样返回到正常的交互方式中?
有两种选择:屏幕上的返回按钮和功能键。
(5)怎样组织帮助信息? 平面结构(所有信息都通过关键字访问), 信息的层次结构(用户可在该结构中查到更详 细的信息)
超文本结构。
49
3.出错信息处理
(1)信息应该用用户可以理解的术语描述问题。 (2)信息应该提供有助于从错误中恢复的建设性意 见。 (3)信息应该指出错误可能导致哪些负面后果(例 如,破坏数据文件),以便用户检查是否出现了这 些问题,并在确实出现问题时及时解决。 (4)信息应该伴随着听觉上或视觉上的提示。 (5)信息不能带有指责色彩。
左上部列出所有条件 左下部是所有可能做的动作 右上部表示各种条件组合 右下部是和每种条件组合相对应的动作
25
例子:计算行李费


假设某航空公司规定,乘客可以免费托运重量不 超过30公斤的行李。 当行李重量超过30公斤时: 对头等舱的国内乘客超重部分每公斤收费4元 对其他舱的国内乘客超重部分每公斤收费6元 对外国乘客超重部分每公斤收费比国内乘客多 一倍; 对残疾乘客超重部分每公斤收费比正常乘客少 一半。
3 F
4 F
5 F
教授
教 师 课 时 津 贴 判 定 表
副教授 讲师 助教 讲座 50 30 25 T
F
F F F ×
T
F F F
F
T F F
F
F T F
×
× ×
20
15
×
32
教师课时津贴判定树
教授 30 25
副教授 一般授 课
讲师
20
课时津贴
助教
15
讲座
50
33
判定树的缺点:

虽然判定树比判定表更直观,但简洁性却不 如判定表,数据元素的同一个值往往需要重 复写多遍,而且越接近树的叶端重复次数越 多。 画判定树时分枝的次序可能对最终画出的判 定树的简洁程度有较大影响。
相关文档
最新文档