第5章 详细设计
软件工程导论(第5章)
11
5.1.2 选取若干个合理的方案
至少选取低成本、中等成本和高成本三种方案。
每种方案准备四份资料:
系统流程图; 组成系统的物理元素清单; 成本/效益分析; 实现这个系统的进度计划。
12
5.1.3 推荐最佳方案
分析员应该综合分析对比各种合理方案的利
弊,推荐一个最佳的方案,并且为推荐的方 案制定详细的实现计划。
发出较高质量的软件系统。
7
第一部分:设计过程 第二部分:设计原理 第三部分:启发原则 第四部分:软件结构图 第五部分:面向数据流的设计方法
8
5.1 设 计 过 程
总体设计过程通常由两个主要阶段组成: 系统设计:确定系统的具体实现方案。 结构设计:确定软件结构。 9个步骤: ① 设想供选择的方案 ② 选取合理的方案 ③ 推荐最佳方案 ④ 功能分解 ⑤ 设计软件结构 ⑥ 设计数据库 ⑦ 制定测试计划 ⑧ 书写文档 ⑨ 审查和复审
和理解; 可以使软件容易测试和调试,因而有助于提高软 件的可靠性; 能够提高软件的可修改性; 有助于软件开发工程的组织管理。
32
模块化五条标准
模块可分解性
把问题分解为子问题 模块可组装性 可复用 模块可理解性 无需参考其他模块,易于构造和修改 模块连续性 微小修改只导致对个别模块 模块保护性 异常影响局限在模块内部
“隐蔽”意味着模块彼此间仅仅交换那些为了完成系统功能而 必须交换的信息。 “局部化”是指把一些关系密切的软件元素物理地放得彼此靠 近。局部化有助于实现信息隐蔽。
设计和确定模块时,使得一个模块内包含的信息(过程和 数据)对于不需要这些信息的模块来说,是不能访问的。 模块内部的数据与过程,应该对不需要了解这些数据与过 程的模块隐藏起来。只有那些为了完成软件的总体功能而 必需在模块间交换的信息,才允许在模块间进行传递。
软件工程 第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章例题分析与解答作者:不详来源: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章 详细设计
由用户试用和评估
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章软件详细设计软件详细设计是软件开发过程中的一个重要环节,它是在需求分析的基础上,对软件系统进行具体设计的过程。
本章将对软件的各个模块进行详细设计,包括模块之间的关系和功能实现细节。
在进行软件详细设计时,需要考虑以下几个方面:1.模块划分:根据需求分析中的功能点,将系统划分为多个模块,每个模块实现一个或多个功能。
2.模块之间的关系:分析各个模块之间的依赖关系,确定模块之间的调用关系和数据交互方式。
3.功能实现细节:对每个模块进行详细设计,包括具体的算法实现、数据结构设计、界面设计等。
4.系统性能考虑:考虑系统在各种情况下的性能要求,针对性地进行优化设计,提高系统的运行效率。
在软件详细设计中,需要根据需求分析中的功能点进行模块划分。
以一个电商系统为例,可以将系统划分为用户管理模块、商品管理模块、订单管理模块等多个功能模块。
每个模块负责实现相应的功能,同时模块之间需要进行数据交互和调用。
在模块之间的交互设计中,可以采用面向对象的设计思想,通过定义接口和类来描述模块之间的关系。
例如,在用户管理模块中,可以定义一个User类,该类包含了用户的基本信息和操作方法。
在订单管理模块中,可以通过调用User类的方法来获取用户的信息。
在功能实现细节方面,需要根据模块的功能点来进行具体的实现。
例如,在商品管理模块中,需要实现商品的增删改查功能。
可以使用数据库来存储商品信息,通过SQL语句来进行增删改查操作。
在系统性能考虑方面,可以采用多线程、缓存等技术来提高系统的运行效率。
例如,在订单管理模块中,可以使用多线程来处理订单的并发操作,提高系统的并发性能。
总之,软件详细设计是软件开发过程中的一个重要环节,通过对系统的模块划分、模块之间的关系和功能实现细节的设计,可以确保软件系统按照需求进行正确、高效地实现。
同时,考虑系统的性能要求和优化设计,可以提高系统的运行效率和用户体验。
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正文进行 结构分割,使之变得易于理解。 为了区别关键字,规定关键字一律 大写,其它单词一律小写。或者规 定关键字加下划线,或者规定它们 为黑体字。
第5章 详细设计
05 详细设计一、选择题(1)在详细设计阶段经常采用的图形工具包括( D )。
A.PAD图 B.程序流程图 C.N-S图 D.以上都是(2)提高程序可读性的手段包括( D )。
A.使用三种标准控制结构 B.采用有实际意义的变量名C. 给程序加注释 D.以上都是(3)结构化程序设计的三种基本控制结构不包括( C )。
A.顺序 B.选择 C.转移 D.循环(4)详细设计中,过程设计的常用图形工具不包括( B )。
A.程序流程图 B.数据流图 C.N-S盒图 D.PAD图(5)下列关于详细设计中的说法中正确的是( D )等。
A.详细设计任务相当于设计程序的“蓝图”B.详细设计的根本目标是应该怎样具体地实现系统C.详细设计≠编写代码D.以上都正确(6)结构化程序之所以具有易于阅读,并且有可能验证其正确性,这是由于( D )A.它强调编程风格 B.选择良好的数据结构和算法C. 有限制地使用GOTO语句 D.只有三种基本结构(7)程序设计语言主要分三大类:机器语言,汇编语言和( B )。
A.逻辑语言 B.高级语言 C.自然语言 D.智能语言(8)结构化程序设计中的三种基本控制结构是( B )。
A.过程、子程序和分程序 B.顺序、选择和循环C.递归、堆栈和队列 D.调用、返回和转移(9)软件详细设计的主要任务是确定每个模块的 ( A )。
A.算法和使用的数据结构 B.外部接口C.功能 D.编程(10)在详细设计阶段,经常采用的工具包括( A )。
A.程序流程图 B.SA C.SC D.DFD(11)详细设计的结果基本决定了最终程序的( C )。
A.代码的规模 B.运行速度C.质量 D.可维护性(12)软件详细设计主要采用的方法是( D )。
A.模块设计B.结构化设计C.PDL语言D.结构化程序设计(13)详细设计中,过程设计的常用工具有( A )等。
A.程序流程图,N-S盒图,PAD图 B.程序流程图,数据流图C.程序流程图,系统流程图 D.程序流程图,E-R图(14)结构化程序设计主要强调的是( A )。
软件工第5章
多分支
流程图连接
流程图符号加横线
《软件工程(第3版)》陆惠恩主编
5
4. 流程图的三种基本结构:
顺序(a)、选择(b、c)、循环(d、e)。
《软件工程(第3版)》陆惠恩主编
6
5.1.2 盒图 盒图是Nassi和Shneiderman提出的,又称N_S图。 1. 盒图的符号(请注意d、e的区别)
《软件工程(第2版)》陆惠恩主编
《软件工程(第3版)》陆惠恩主编
12
【例5.5 】用判定表表示旅游票价的优惠规定。
某旅行社根据旅游淡季、旺季 及是否团体订票,确定旅游票 价的折扣率。具体规定如下: 人数在20人以上的属团体,20 人以下的是散客。 每年的4-5月、7-8月、10月为 旅游旺季,其余为旅游淡季。 旅游旺季,团体票优惠5℅, 散客不优惠。 旅游淡季,团体票优惠30℅, 散客优惠20℅。 用判定表表示旅游订票的优惠 规定。
《软件工程(第3版)》陆惠恩主编
17
5.2 用户界面设计
5.2.1 用户界面设计问题
1. 系统响应时间 2. 用户帮助设施 3. 出错信息处理 4.命令交互
5.2.2 用户界面设计过程
用户界面设计是一个迭代的过程,一般步骤如下: 1.先设计和实现用户界面原型。 2.用户试用该原型,向设计者提出对界面的评价。 3.设计者根据用户的意见修改设计并实现下一级原型。 不断进行下去,直到用户满意为止。
《软件工程(第3版)》陆惠恩主编
15
CASE结构: CASE 条件 OF CASE(1) 处理1 CASE(2) 处理2 … CASE(n) 处理n 3.循环结构 (1)FOR循环结构: FOR i=1 TO n 循环体 END FOR (2)WHILE循环结构: WHILE 条件 循环体 ENDWHILE (3) REPEAT-UNTIL循环结构: REPEAT 循环体 UNTIL条件
软件工程第5章 详细设计
详细设计的描述工具
(4) PDL( Program Design Language )
PDL与需求分析中采用的结构化语言统属于伪 码。伪码的结构分为内外两层,外语法应符合一般 程序设计语言常用的语法规则,而内层语法则用一 些简单的句子、短语(自然语言)。
18
详细设计的描述工具
PDL作为一种用于描述程序逻辑的语言,具有以下特点:
3
详细设计的描述方式
详细设计的描述方式分类:
1)图形描述:流程图、盒图、PAD图等 2)语言描述:PDL语言等 3)表格描述:判定表等
4
详细设计的描述工具
详细设计的描述工具:
下面介绍一些有代表性的详细设计工具: (1)程序流程图
程序流程图又称之为程序框图,它是软件开发者最熟悉的一种 算法表达工具。
ENDIF
21
详细设计的描述工具
3)多路选择结构
CASE OF <变量名>: WHEN <条件1> SELECT <语句或程序块> WHEN <条件2> SELECT <语句或程序块> …… WHEN <条件n> SELECT <语句或程序块>
DEFAULT: <语句或程序块> ENDCASE
22
A(m)>A(j)
j=j+1
T
m=j
F
A(m) ﹤-﹥A(i) i=i+1
PAD图的控制流程为自上而下、从左到右。
15
详细设计的描述工具
举例:
请使用PAD图描述下列程序的算法: 在数据A(0)~A(10)中求最大数。
16
详细设计的描述工具
《详细设计》PPT课件
Jackson图有下述优点:
便于表示层次结构,而且是对结构进行自顶向下 分解的有力工具。
形象直观可读性好。
既能表示数据结构也能表示程序结构。
5.3.2 改进的Jackson图
上面介绍的Jackson图的缺点是,用这种图形工具 表示选择或重复结构时,选择条件或循环结束条件不 能直接在图上表示出来,影响了图的表达能力,也不 易直接把图翻译成程序,此外,框间连线为斜线,不 易在行式打印机上输出。
5.5 程序复杂程度 的定量度量
定量度量程序复杂程度的方法很有价值: 把程序的复杂程度乘以适当常数即可估算出软 件中故障的数量以及软件开发需要用的工作量, 定量度量的结果可以用来比较两个不同的设计 或两个不同算法的优劣;程序的定量的复杂程 度可以作为模块规模的精确限度。
程序结构图的适当位置。
首先,列出统计空格个数需要的全部操作和条件如
下:
(1)停止
(2)打开文件
(3)关闭文件
(4)印出字符串
(5)印出空格数目
(6)印出空格总数
(7)sum : =sum+1
ห้องสมุดไป่ตู้
(8)totalsum : =totalsum+sum
(9)读入字符串
(10)sum : = 0
(11)totalsum : = 0
与上表判定表对应的判定树如下:
5.2.6 过程设计语言(PDL)
PDL也称为伪码,它是用正文形式表示数据和处理 过程的设计工具。
PDL具有严格的关键字外部语法,用于定义控制结 构和数据结构,然而,PDL表示实际操作和条件的内部 语法通常又是灵活自由的,以便可以适应各种工程项 目的需要,它使用一种语言的词汇,却使用另一种语 言的语法。
软件工程 第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.2 详细设计的工具
详细设计的工具
详细设计常用的三种工具:图形、表格和语言 图形工具:包括程序流程图、N-S图和PAD图等 表格工具:判定表 语言工具:过程设计语言(PDL)
第5章 5.2 详细设计的工具
5.2.1 程序流程图
程序流程图的主要符号
第5章 5.2 详细设计的工具
5.2.1 程序流程图
程序流程图的五种基本结构
第5章 5.2 详细设计的工具
5.2.1 程序流程图
优点:直观清晰、易于使用 缺点: (1)控制流程线的流向可以任意画,容易造成非结构话的程序结构,与软件设计的原则 相违背; (2)流程图不能反映逐步求精的过程,往往反映的是最后的结果 (3)不易表示数据结构
第5章 5.2 详细设计的工具
第5章 5.3 用户界面设计
5.3.3 用户界面设计指南
3、数据显示界面设计 数据显示界面包括:屏幕查询,文件浏览,图形显示和报告等内容。 数据显示规则: (1)只显示必要数据;(2)在一起使用的数据应该一起显示;(3)显示出的数据应与 用户执行的任务相关;(4)每一屏的数据量不应该超过真个屏幕面积的30%。 屏幕布局的规则: (1)尽量少使用代码和缩写;(2)如有多个显示画面,应建立统一格式;(3)提供明 了的标题,栏题及其他提示信息;(4)遵循用户的习惯;(5)采用颜色、字符大小、下划线、 不同字体等方式强化重要数据。
第5章 5.4 数据代码设计
5.4 数据代码设计
1、代码设计的原则 标准化,唯一性,可扩充性,简单性,规范性和适应性。 2、代码的种类 顺序码,信息块码,分组码,区间码(多面码,上下关联区间码和十进位码),助记码, 缩写码和合成码。
第5章 5.5详细设计文档的编制及评审
SE05-详细设计
UNTIL型条件
循环体
先判定型循环结构
后判定型循环结构
例1:对数组X进行排序。 “自顶而下,逐步求精”
1、循环一次,排好一个X[h]
H:=1,n-1 排好第h个X [h] 找 X[J]= MAX(X[h]…X[n]) 交换 X[J] 和 X[h]
2、细化
排好第H个X [h]
(a)
(b)
3、连接各图,构成完整的PAD图 (a)
PDL语言的成分是:数据说明、处理过程描述、输入/出 PDL的语法是开放式的,其外层语法是确定的,而内层语 法则不确定。外层语法描述控制结构它用类似于一般程序设 计语言控制结构的关键字: 如 : IF-THEN-ELSE WHILE-DO REPEAT-UNTIL DO CASE DO WHILE 等表示。 有时还用关键字反排,表示控制结构结束: DO - OD IF -FI
PDL 语言
例如:
if X
is not negative
then return(square root of X as a real number); else return(square root of -X as an imaginary
number);
外层语法IF-THEN-ELSE是确定的,内层操作“square root of X ”是不确定的。
c d
e
h
直到条件4成立
直 到 条 件 成立 j
PAD图
PAD图(problem Analysis Diagram)即问题分析 图,其基本控制结构如下:
值1
任务1 任务2
任务1
条件
T
F
then部分 else部分
任务2
任务3
《软件工程》第5章软件详细设计
软件详细设计是软件开发过程中至关重要的一步,它有助于确保软件的高质 量和可维护性。本章将介绍软件详细设计的目标、流程、主要内容以及实施 要点。
软件详细设计的重要性
软件详细设计是确保软件满足需求和规格的关键步骤。它定义了软件组件和 模块的内部结构和交互方式,确保软件的功能正确实现。
常见软件详细设计方法
1 结构化设计
采用模块化和层次化的 设计方法。
2 面向对象设计
3 组件化设计
基于对象的抽象和封装, 以及继承和多态的概念。
将系统拆分为独立的组 件进行设计和开发。
软件详细设计的实施要点
1 模块化设计
2 清晰的界面
将系统划分为独立的模块,方便代码复用 和维护。
模块之间的接口和交互关系应清晰明确, 减读性和可维护性
设计应考虑到软件的需求变化和功能扩展。
代码应具备良好的可读性和可维护性,方 便后续开发和维护工作。
详细设计
定义软件的内部结构、接口和算法实 现。
软件详细设计的主要内容
数据结构
定义数据的组织和表示方式。
算法设计
设计解决问题的具体算法和数据处理方法。
模块接口
定义模块之间的函数调用关系和数据传递方 式。
异常处理
定义系统对异常情况的处理方式。
软件详细设计的文档化
为了方便团队协作和后续维护,软件详细设计应该进行文档化记录,包括设 计原则、数据结构和算法逻辑等详细说明。
软件详细设计的目标
软件详细设计的目标是确定软件的数据结构、软件模块之间的接口和交互方 式,并定义操作流程和算法,以确保软件在运行时的正确性和高效性。
软件详细设计的流程
1
概要设计
第五章_软件工程(详细设计)详解
相关设计内容,但外科医生在设计中起主导作用,
是设计的技术负责人,助手只起技术支持作用。
此种模式区别于传统的“平等组合”模式,使设
计责任集中在少数人身上,避免了因观点不同而
造成的设计策略和接口的差异。
5
§2. 详细设计的工具
详细设计阶段的工具分为图形、表格和语言三类。 具体包括程序流程图、N-S图(盒图)、PAD图(问题 分析图)、判定树、判定表、PDL(过程设计)语言 等。 1、程序流程图(Program Flow Chart)
第五章 详细设计
总体设计是实现模块的划 分和模块接口的设计;
详细设计也称过程设计。 详细 设计则是对每个模块给出详细 的过程性描述。
但是,这些描述是应用详 细设计的表达工具来表达,而 不是计算机上运行的程序。 1
§1. 详细设计的过程和任务
1、 详细设计的任务
详细设计的总体目标是确定怎样具体地实现所 要求的系统。即对软件结构图的每个模块所采用的 逻辑关系进行分析,设计出全部必要的过程细节, 并给出清晰的描述,从而在编码阶段可以把这个描 述直接翻译成某种程序设计语言书写的程序。详细 设计的结果对最终程序代码的质量起着决定性的作 用,对软件的测试和维护人员了解模块的内部结构 也是很重要的。
2
2、 详细设计的过程
(1) 算法设计给出详细的描述。
(2) 数据结构设计:确定每个模块使用的数据 结构和模块接口的细节,包括内部接口、外 部接口、模块的输入、输出及局部数据。
(3)物理设计:确定文件、数据库等物理结构, 要明确相关数据的记录格式、存储方法、存 储介质等。
3、详细设计原则:
①采用自顶向下、逐步求精的程序设计方法。
在详细设计过程中,采用逐步求精的方法可以 降低待处理问题的复杂度。
第5章详细设计之时序图
海软院 软件工程系
3
1.1 时序图的组成
对象(Object) 生命线(Lifeline) 激活(Activation) 消息(Messages)
要记住哦!
海软院 软件工程系
4
1.1.1 对象(Object)
序列图中的对象可以是系统的参与者或者 任何有效的系统对象,是类的实例。
海软院 软件工程系
海软院 软件工程系
12
撤销一个对象,只要在其生命线终止点放置 一个“X”符号即可,撤销一个对象也会同时 回收其拥有的资源。
一个对象可以销毁自己,也可以通过一个对 象发送一条消息来销毁另一个对象。
海软院 软件工程系
13
实例 教师查看学生成绩
海软院 软件工程系
14
1.确定工作流程
基本的工作流程如下:
5
1.1.2 生命线(Lifeline)
生命线(Lifeline)是一条垂直的虚线, 用来表示序列图中的对象在一段时间内的 存在。
对象在生命线上的两种状态:
(1)激活状态 (2)休眠状态
海软院 软件工程系
6
1.1.3 激活(Activation)
激活表示该对象被占用以完成某个任务,一 个对象处于激活期时,表明该对象正在执行 某个动作。
海软院 软件工程系
10
什么情况下同步消息或是异步消息?
同 异步步消消息息,,主要用于过程化的系统流。在控制流 继续之主前要,用消于息控必制须流已在被完接成收前和不完需成要。中该断情的况情下况。 使用同步消息。
海软院 软件工程系
11
1.2 对象的创建和撤销
对象创建
交互开始时创建 位于时序图顶部 交互过程中创建 位置不在时序图顶部
软件工程及实践[窦万峰]第5章 软件详细设计
5 . 1 结构化详细设计 5 . 2 结构化设计工具 5 . 3 人机界面设计 5 . 4 数据库设计 5 . 5 面向对象精化设计 5.6 编 码
.
5.1 结构化详细设计
结构化程序设计的理念是在20世纪60年代由Dijkstra等人提出并加以完善的。 结构化的程序一般只需要用3种基本的逻辑结构就能实现,即顺序结构、选择结 构和循环结构,如图5-1所示。
.
5.3 人机界面设计
5.3.1 界面分析与设计 1.美学规则 在有关界面设计的著作中,Theo Mandel创造了3条黄金原则 (1)置用户于控制之下 (2)减少用户的记忆负担。 (3)保持界面一致。 2.人机界面分析 人机界面的设计工作应与软件系统的需求分析工作同步进行,主要包括如 下几个过程。 (1)通过界面和系统交互的最终用户分析。 (2)最终用户为完成工作要做的任务分析。 (3)确定界面的类型。 (4)任务处理的环境。
概要IPO图用于表达对一个系统,或对其中某一个子系统功能的概略表达, 指明在完成某一功能框规定的功能时需要哪些输入、哪些操作和哪些输出。图 5-8所示为表示销售/盘存系统第2层的对应H图中1.1.0框的概要IPO图。
.
5.2.4 HIPO图
在概要IPO图中,没有指明输入―处理―输出三者之间的关系,用它进行下 一步的设计是不可能的。所以需要使用详细IPO图用于指明上述三者之间的关系, 其图形与概要IPO图一样,但输入和输出最好用具体的介质和设备类型的图形表 示。图5-9所示为销售/盘存系统中对应H图中1.1.2框的详细IPO图。
.
5.2 结构化设计工具
5.2.1 程序流程图 程序流程图又称为“程序框图”,是Goldstine于1946年首先采用的。它是 历史最悠久,使用最广泛的描述软件设计的方法,能直观地描述过程的控制流 程,便于初学者掌握。其中较常用的一些符号如图5-2所示,方框表示一个处理 步骤,菱形代表一个逻辑条件,箭头表示控制流向。注意,程序流程图中使用 的箭头代表控制流,而不是数据流。
《详细设计》课件
1
系统安全需求
分析系统所需的安全性能和保障要求,确保系统的数据和功能安全。
2
安全保障措施
制定系统的安全保障措施,包括身份验证、权限控制、数据加密等。
3
安全控制策略
设计系统的安全控制策略,监控系统的安全状态并及时应对安全威胁。
八、性能设计
1 系统性能需求
明确定义系统的性能要求,如响应时间、并发能力等。
设计用户界面的交互方式,包括按钮、输入框、菜单等交互元素的设计。
六、数据设计
数据表设计
设计系统的数据库表结构, 定义每个表的字段和关系。
数据表之间的关系
描述数据表之间的关系和约 束条件,确保数据一致性和 完整性。
数据表数据类型说明
说明每个字段的数据类型和 长度限制,确保数据的准确 性和可用性。
七、安全设计
模块流程图
描述模块之间的通信和交互方式, 确保模块间的信息流畅。
使用流程图展示模块内部的流程 和处理逻辑,方便开发者理解和 实现。
五、界面设计
1 界面原型图
制作系统的交互原型和界面设计,确保用户界面的友好和易用。
2 界面设计规范
制定界面设计规范,包括颜色搭配、字体选择、布局等方面的规范。
3 界面交互设计
1
系统架构图
设计系统的整体结构图,涵Leabharlann 各个模块和其之间的关系。2
系统组成模块
描述系统中各个模块的功能和职责,确保模块的高内聚低耦合。
3
模块功能介绍
详细介绍每个模块的功能和实现方法,确保模块能够顺利集成。
四、系统模块划分
模块划分
对系统进行模块划分,明确每个 模块的职责和功能,实现模块化 开发。
模块之间的交互
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程教材 江西高校出版社
3.模块处理过程设计
• 模块处理过程设计则是要对模块内部属性进行设 计,包括对其内部控制流、内部数据组织以及具 体加工的实施和执行过程进行的设计。这些设计 将为将来的编写程序做好更加周密的准备,使得 编写程序更加方便。可以使用某种图形、表格、 语言等工具,对概要设计阶段划分的每个模块进 行过程和算法设计。这些工具有程序流程图、盒 图、PAD图、判定表、判定树和过程设计语言等 。
18>>
软件工程教材 江西高校出版社
2. 输入输出格式设计。输入设计追求的是既实现尽可能 高的输入效率又能尽量地避免错误的发生。这一目标 可以通过以下方法来实现:一是简化输入。对于输入 数据的数量以及输入操作应尽量追求简单,使得输入 更加方便、效率更高。当然,前提是应保证输入的数 据足够充分,满足系统对相关数据的需求。二是提前 进行正确性检查。对输入数据尽量提前进行正确性验 证,提前发现钱误,从而减少错误的发生,同时也减 轻后面设计工作的负担。而对于输出设计,则需特别 注意的是要设计的系统是针对于哪些用户,应针对不 同用户的需求以及使用习惯进行设计,并确保输出的 数据直观、易于理解,让人一目了然。
A
图5.1 用方框代表加工处理步骤
26>>
软件工程教材 江西高校出版社
(2)逻辑条件用菱形来表示,如图5.2所示,其中 B代表逻辑条件的判断表达式,而两个出口箭头 则表示表达式的逻辑值为T或F的两个不同出口。
F
B
T
图5.2 用菱形代表逻辑条件
27>>
软件工程教材 江西高校出版社
(3)控制流向用箭头表示,如图5.1和图5.2所示的 箭头,都是表示程序的控制流向。 为了实现使用程序流程图描述结构化程序,必须 限制程序流程图只使用以下五种基本控制结构。
9>>
软件工程教材 江西高校出版社
(3)确定模块接口的细节,包括对系统外部的接 口和用户界面。对系统内部其他模块的接口,以 及模块输入数据、输出数据和局部数据的全部细 节。 (4)选用某种图形、表格和语言等工具将每个模 块处理过程的详细算法描述表达出来,编写详细 设计说明书。
10>>
软件工程教材 江西高校出版社
23>>
软件工程教材 江西高校出版社
5.2 详细设计的工具
5.2.1 程序流程图 • 程序流程图(Program Flow Chart)也称为程序 框图,是程序设计中应用最广泛的算法描述工具 。程序流程图独立于各种程序设计语言,且直观 、清晰,易于学习掌握。从20世纪40年代末到20 世纪70年代中期,程序流程图一直是传统的软件 工程方法的结构化设计技术所使用的经典设计工 具。
34>>
软件工程教材 江西高校出版社
图5.5
35>>
软件工程教材 江西高校出版社
• 为了使得流程图的使用更加规范化,很有必要对 流程图所使用的符号做出确切的规定。国家标准 《信息处理--数据流程图、程序流程图、系统流 程图、程序网络图和系统资源图的文件编制符号 及约定》(GB/T1526-1989)中对程序流程图 的符号做出了规定。图5.6给出了由国际标准化 组织提出的,并由中国国家技术监督局批准的在 程序流程图中使用的部分标准符号。
19>>
软件工程教材 江西高校出版社
3. 人机对话设计。对于一个实时系统,用户与计 算机频繁进行人机对话,因此要进行对话方式 、内容及格式的具体设计。 4. 网络设计。如果设计的软件是一个分布式系统 ,那么还要进行网络拓扑结构设计。
20>>
软件工程教材 江西高校出版社
5.1.4 详细设计的参与者 • 详细设计阶段的参与者主要有软件系统用户、软 件设计师、程序员及详细设计文档复审专家。软 件系统分析师和设计师在前一个阶段进行了概要 设计,确定了软件系统总体框架和模块组织结构 。在详细设计阶段,需要有经验的软件设计人员 担任负责人,在上一阶段设计成果的基础上,将 用户、程序员一起组织起来,进行系统各部分的 详细设计。
4>>
软件工程教材 江西高校出版社
• 详细设计阶段并不具体地编写各个程序的代码, 而是设计出程序的“蓝图”,在编码阶段程序员 将根据这个蓝图写出实际的程序代码。因此,详 细设计的结果在很大程度上决定着最终的程序代 码的质量。
5>>
软件工程教材 江西高校出版社
• 在软件的生存周期中,软件测试方案设计、程序 代码调试和修改时,都需要先读懂程序代码。因 此,衡量程序代码的质量时不仅要看其逻辑是否 正确、性能是否满足要求,更重要的是要看程序 代码是否容易阅读和理解。
32>>
软件工程教材 江西高校出版社
5.多情况(case)型选择。多情况型选择列举了多 个加工处理步骤,程序根据控制变量的值,选择 其中一个加工步骤来执行。如图5.4(b)所示。
33>>
软件工程教材 江西高校出版社
• 任何复杂的程序流程图都是由以上五种基本控制 结构嵌套组合而成,如图下图5.5所示,这是一 个结构化程序的流程图,其中包含这上述说明的 几种基本控制结构,P1为选择型的逻辑条件,P2 为后判定型循环的逻辑条件,P3为多情况型选择 的逻辑条件,P4为先判定型循环的逻辑条件。
24>>
软件工程教材 江西高校出版社
• 尽管程序流程图被广泛使用,但是其不够规范、 符号不统一,且使用箭头的过于灵活,容易导致 流程图难以看懂,导致使用程序流程图的程序设 计人员逐渐减少。
25>>
软件工程教材 江西高校出版社
• 程序流程图一般包含三种基 本元素:加工处理步骤、逻 辑条件和控制流方向。 (1)加工处理步骤一般用矩形 框来表示,如图5.1所示,其 中A为该处理框的名字,是表 示该加工处理操作的一个抽 象的名字。
8>>
软件工程教材 江西高校出版社
详细设计过程中一般需要完成以下任务: (1)确定软件各个组成部分内所采用的算法和各 部分的内部数据组织形式,还须对需 求分析、总体设计确定的概念性的数据类型进行确 切的定义。 (2)对数据结构进行物理设计,如确定数据库的 物理结构。物理结构主要指数据的存储记录格式 、存储记录安排和存储方法等。
6>>
软件工程教材 江西高校出版社
5.1.2 详细设计的过程
详细设计的一般过程如下: (1)对概要设计阶段所确定的抽象性的数据类型 进行确切的定义,确定软件各个模块采用的算法 和内部数据组织形式,确定对系统内部和外部模 块的接口细节。 (2)确定每个模块的算法。选择适当的图形、表 格和语言等描述工具表达每个模块算法的执行过 程,写出模块的详细过程性描述。
7>>
软件工程教材 江西高校出版社
(3)为每个模块设计一组测试用例。在详细设计阶段设 计每个模块的测试用例,使编码阶段对具体模块的调试 或测试更加方便。负责详细设计的人员最了解模块的功 能和要求,所以应由他们来完成测试用例的设计。测试 内容通常包括输入数据、期望输出结果等。 (4)编写详细设计说明书。在详细设计结束时,把上述 结果进行整理,编写出详细设计说明书,并经过复审后 ,形成正式文档,作为下一阶段的工作依据。
(5)还要为每一个模块设计出一组测试用例,以 便在编码阶段对模块代码进行预定的测试,模块 的测试用例是软件测试计划的重要组成部分,通 常包括测试输入数据、期望输出结果等内容。 (6)在详细设计结束时,进行详细设计的评审。 把上述结果写入详细设计说明书,并通过复审形 成正式文档,作为下一阶段的工作依据。
11>>
软件工程教材 江西高校出版社
5.1.3 详细设计的内容
• 进行详细设计时,通常要考虑多方面的因素,尽量使得 设计的每一个环节更加有条理、更加标准化,从而最大 限度地提高程序的设计效率。对一个系统进行详细设计 时一般要考虑以下几个方面的内容:
1.数据结构设计 2.数据存储设计 3.模块处理过程设计 4.用户界面设计 5.其他设计
14>>
软件工程教材 江西高校出版社
• 另外,数据存储设计还涉及数据保密方面的内容 ,可以根据实际情况及需要采用适当的加密方法 对数据进行保密。需要指出的是,现在大多数软 件系统都使用成熟的数据库管理系统,由数据库 管理系统解决数据库物理存储问题,不需在详细 设计阶段进行数据物理存储设计。
15>>
12>>பைடு நூலகம்
软件工程教材 江西高校出版社
1.数据结构设计 • 对前面需求分析、总体设计阶段确定的概念性的 数据类型,给出准确的定义。这一部分的设计内 容一般比较多,所以大多数采用小型数据库辅助 的方法进行。
13>>
软件工程教材 江西高校出版社
2.数据存储设计
• 数据存储设计主要是针对于数据组织存储和数据 库等方面的设计,其目标是设计出数据调用快捷 、方便且使用的资源开销较少的数据存储系统。 这就要求设计时要根据数据的使用要求及用途等 各个方面来决定采用何种存储方式。
2>>
软件工程教材 江西高校出版社
需要指出的是该阶段还不是程序编码阶段,而是 编码前的准备工作,在这个阶段给出每个模块足 够详细的过程性描述,在编码阶段可以方便的将 写着描述直接翻译成某种程序设计语言的代码。
3>>
软件工程教材 江西高校出版社
5.1.1 详细设计的任务
• 详细设计的任务,是对概要设计阶段划分出的每 个模块进行明确的算法描述,即根据概要设计提 供的说明文档,确定每一个模块的数据结构及具 体算法,并选用合适的描述工具,将其清晰准确 地表达出来。
28>>
软件工程教材 江西高校出版社
1.顺序型。顺序型由几个连续的加工处理步骤依 次排列构成,如图5.3(a)所示。