第5章 详细设计

合集下载

软件工程导论(第5章)

软件工程导论(第5章)
10
11
5.1.2 选取若干个合理的方案
至少选取低成本、中等成本和高成本三种方案。
每种方案准备四份资料:



系统流程图; 组成系统的物理元素清单; 成本/效益分析; 实现这个系统的进度计划。
12
5.1.3 推荐最佳方案
分析员应该综合分析对比各种合理方案的利
弊,推荐一个最佳的方案,并且为推荐的方 案制定详细的实现计划。
发出较高质量的软件系统。
7
第一部分:设计过程 第二部分:设计原理 第三部分:启发原则 第四部分:软件结构图 第五部分:面向数据流的设计方法
8
5.1 设 计 过 程
总体设计过程通常由两个主要阶段组成: 系统设计:确定系统的具体实现方案。 结构设计:确定软件结构。 9个步骤: ① 设想供选择的方案 ② 选取合理的方案 ③ 推荐最佳方案 ④ 功能分解 ⑤ 设计软件结构 ⑥ 设计数据库 ⑦ 制定测试计划 ⑧ 书写文档 ⑨ 审查和复审
和理解; 可以使软件容易测试和调试,因而有助于提高软 件的可靠性; 能够提高软件的可修改性; 有助于软件开发工程的组织管理。
32
模块化五条标准
模块可分解性
把问题分解为子问题 模块可组装性 可复用 模块可理解性 无需参考其他模块,易于构造和修改 模块连续性 微小修改只导致对个别模块 模块保护性 异常影响局限在模块内部


“隐蔽”意味着模块彼此间仅仅交换那些为了完成系统功能而 必须交换的信息。 “局部化”是指把一些关系密切的软件元素物理地放得彼此靠 近。局部化有助于实现信息隐蔽。


设计和确定模块时,使得一个模块内包含的信息(过程和 数据)对于不需要这些信息的模块来说,是不能访问的。 模块内部的数据与过程,应该对不需要了解这些数据与过 程的模块隐藏起来。只有那些为了完成软件的总体功能而 必需在模块间交换的信息,才允许在模块间进行传递。

软件工程 第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.结构化程序设计方法使用___三种基本控制结构___构造程序。

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

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

第五章详细设计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
界面的设计原则
• 分析用户类型 • 应用程序和界面分离 • 一致性 • 尽量减少用户工作 • 出错处理和帮助功能 • 增加可视化图形表示

第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语句来进行增删改查操作。

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

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

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

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

05详细设计

05详细设计

结构化程序设计的发展历史
Байду номын сангаас



1965年,E.W.Dijkstra在IFIP(国际信息处理联合会)会议上提 出“可以从高级语言中取消GOTO语言”、“程序的质量与程序中所 包含的GOTO语句的数量成反比”。但是当时并未引起很大反响。 1966年Bohm和Jacopini证明了,只用三种基本的控制结构就能实现 任何单入口单出口的程序,这个结论奠定了结构程序设计的理论基 础。这三种基本的控制结构是“顺序”、“选择”、“循环”。 1968年Dijkstra在ACM通讯上发表了短文“GOTO statement considered harmful”再次建议从一切高级语言中取消GOTO语句, 只使用三种基本控制结构写程序。经过讨论人们认识到,不是简单 地去掉GOTO语句的问题,而是要创立一种新的程序设计思想、方法 和风格,以显著地提高软件生产率和降低软件维护代价。 1971年IBM公司在纽约时报信息库管理系统的设计中成功地使用了 结构程序设计技术(以及主程序员组),随后在美国宇航局空间实 验室飞行模拟系统的设计中,结构程序设计技术(也采用了主程序 员组的形式)再次获得圆满成功。
1966年Bohm和Jacopini证明了,只用三种基本的控制结构就能 实现任何单入口单出口的程序,这个结论奠定了结构程序设计 的理论基础。这三种基本的控制结构是“顺序”、“选择”、 “循环”。
A B B
exp T A A exp F 或
F exp T A
a.顺序
b.if-then-else 选择
c.do-while 循环
PDL的特点
提供全部结构化控制结构、数据说
明和模块特征。能对PDL正文进行 结构分割,使之变得易于理解。 为了区别关键字,规定关键字一律 大写,其它单词一律小写。或者规 定关键字加下划线,或者规定它们 为黑体字。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.
4.
PAD图实例
程序流程图
程序流程图之缺点
程序流程图的主要缺点如下: (1) 程序流程图从本质上说不支持逐步 求精,它诱使程序员过早地考虑程序的控制 流程,而不去考虑程序的全局结构. (2) 程序流程图中用箭头代表控制流, 使得程序员不受任何约束,可以完全不顾结 构化设计的原则,随意转移控制. (3) 程序流程图不易表示数据结构. (4) 程序流程图的每个符号对应于源程 序的一行代码,对于提高大型系统的可理解 性作用甚微.
N-S主要优点
(1) 由于只能从上边进入盒子然后从下面走出盒子,除此之外没有其 它的入口和出 口,所以方框图限制了随意的控制转移,保证了程序有良好的结 构. (2) 方框图是一种强制设计人员和程序员进行结构化思维的工具, 一开始就用方框 图来学习程序设计的软件人员不会养成坏的程序设计习惯.因为它 除了几种标 准结构的符号之外,不再提供其它描述手段. (3) 方框图形象直观, 具有良好的可见度, 例如循环的范围,条 件语句的范围清晰, 所以容易理解设计意图,为编程,复审和选择测试实例,维护都带 来了方便. (4) 局部数据和全程数据的作用域很容易确定. (5) 易于表达嵌套结构.
自然语言

(1) 顺序型
A B C
(2) 选择型(If – then – else)
If – then – else F If – then F
条件
T
条件
T
B
A
A
then –部分 部分
部分 else–部分 then –部分 部分
(3)多分支选择型(CASE型)
条件 值1 值2
....
值n
A1 A2 .... An
伪代码
思考题:转化为N-S 程序流程图
START I:=1; WHILE i:<=n-1 DO min:=A[i]; j:=i+1; WHILEj<=n DO IF min>A[j] THEN BLOCK temp:=min; min:=A[j]; A[j]:=temp; ENDBLOCK ENDIF; j:=j+1; ENDDO i:=i+1; ENDDO STOP
清晰第一 使用标准的,规范的控制结构 使用标准的,盒图(N-S图) 问题分析图( 3. 问题分析图(PAD) 过程设计语言(PDL)(伪码) 4. 过程设计语言(PDL)(伪码) 5. 判定表
1. 盒图(N-S图)
用方框图代替传统的流程图
描述五种基本控制结构的图形构件
详细设计
核心任务: 核心任务:确定每个模块的算法 提交文档: 提交文档:详细设计说明书 具体包括: 具体包括: (1)确定每个模块的算法 确定每个模块的算法, (1)确定每个模块的算法,用工具 表达算法的过程, 表达算法的过程,写出模块的 详细过程性描述. 详细过程性描述. (2)确定每一模块的数据结构 确定每一模块的数据结构. (2)确定每一模块的数据结构. (3)确定模块接口细节 确定模块接口细节. (3)确定模块接口细节. 详细设计是编码的先导. 详细设计是编码的先导.
WHILE重复型 UNTIL重复型 (4) WHILE重复型 (5) UNTIL重复型 后测试循环) (后测试循环) 先测试循环) (先测试循环)
DO-WHILE P
S
(循环体) 循环体)
S
(循环体) 循环体)
REPEAT UNTIL P
循环条件
(6) 并行结构
A1
A2
.... An
(7) 移出标记 A: A (调用结构) 调用结构) F B X6 C D T
算法描述的基本方法
流程图 伪C,伪Pascal语言 自然语言 将要介绍的方法
结构化程序设计(SP)方法 传统的设计技术和旧观念: 传统的设计技术和旧观念:
强调设计的随意性,具有浓厚的个人色彩. 强调设计的随意性,具有浓厚的个人色彩. 追求程序效率和个人设计技巧
新的设计思想和风格: 新的设计思想和风格:
等价的PASCAL语言: 等价的PASCAL语言: PASCAL语言 REPEAT C UNTIL S
(4) 多分支选择型(CASE型)
值1 值2 条件
. . .
A1 A2 . . . An
值n
PAD图优点
1. 2. 设计出的程序必定是结构化程序. 所表达的程序,其结构非常清晰.图中最左线是程序的主中线, 也就是程序过程中 控制的第一层结构,随着层次的增加,图 形逐渐向右扩展.每增加一个层次,图形 向右扩展一道纵线, 因此,程序中含有的层次数即为问题分析图中的纵线数. 作为一种详细设计的图形工具,问题分析图比流程图更容易读. 可以把每个问题分 析图看作为一个树形结构,程序的执行顺 序为从最左主干线上端的结点开始,自上 而下,自左而 右, 以至遍历所有结点. 由于问题分析图的树形特点,使我们比流程图更容易在计算机 上进行处理.例如, 在开发问题分析图向高级语言转换的程 序以后,便可从终端输入问题分析图,并自 动转换成高级语 言
N-S实例
3. 问题分析图(PAD)
(Problem Analysis Diagram) 基本控制结构: 基本控制结构:
(1)顺序结构 (1)顺序结构 (2)选择结构 (2)选择结构 条 件
A B C
T F
A B
(3)重复结构
(先测试循环)
WHILE C
(后测试循环)
UNTIL C
S
S
等价的PASCAL语言: 等价的PASCAL语言: PASCAL语言 WHILE C DO S
相关文档
最新文档