软件开发与应用-第6章 详细设计

合集下载

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

软件工程-张海藩 编著 复习提纲1-6章

软件工程-张海藩 编著  复习提纲1-6章

第一章软件工程学概述第一节软件危机1.为了消除软件危机,20世纪60年代后期形成了新学科:计算机软件工程学。

2.软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

(这些问题不是不能运行的软件才仅仅具有的,几乎所有的软件都不同程度存在这些问题。

)3.软件危机包含两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。

2.如何维护数量不断膨胀的已有软件。

4.产生软件危机的原因(page4—图1.1)1.一方面与软件本身的特点有关2.另一方面也和软件开发与维护的方法不正确有关。

5.软件不同于一般程序,它的一个显著特点是:“规模庞大”。

6.软件开发流程:1. 问题定义:(确定要求解决的问题是什么)2. 可行性研究:(决定该问题是否存在一个可行的解决办法)3. 需求分析:(深入具体的了解用户需求)进入开发时期:对软件设计概要设计详细设计编写程序(全部工作量10%—20%)测试交付使用7.软件产品的配置:包括:程序、文档、数据8.软件危机的一些典型表现:1.对软件开发成本和进度的估计常常不准确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料。

6.软件成本在计算机系统总成本中所占的比例逐年上升。

7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

第二节软件工程1.软件工程定义软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2. 软件工程方法学包含3个要素:方法、工具和过程。

3. 软件工程方法学: 1. 传统方法学2. 面向对象方法学4. 面向对象方法学的4个特点:(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。

(2)把所有的对象都划分成类(class)。

(3)按照父类(基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统(也成为类的等级)。

软件工程第六章

软件工程第六章

判定树的缺点:


例题:

某校制定了教师的讲课课时津贴标准。对于各 种性质的讲座,无论教师是什么职称,每课时 津贴费一律是50元;

对于一般的授课,则根据教师的职称来决定每
课时津贴费:教授30元,副教授25元,讲师20
元,助教15元。

请分别用判定表和判定树表示津贴标准。
判定表:
1
教授 副教授 讲师 助教 讲座 50 30 25 20 15
盒图具有下述特点: 功能域明确。 不可能任意转移控制。 很容易确定局部和全程数据的作用域。 很容易表现嵌套关系,也可以表示模块的层次 结构。
盒图的基本符号
6.3.3 PAD图

PAD是问题分析图(problem analysis diagram)
的英文缩写,自1973年由日本日立公司发明以 后,已得到一定程度的推广。 它用二维树形结构的图来表示程序的控制流, 将这种图翻译成程序代码比较容易。
多年来判定树一直受到人们的重视,是一种比 较常用的系统分析和设计的工具。

用判定树表示计算行李费的算法
判定树的优点:

它的形式简单,一眼就可以看出其含义,因此 易于掌握和使用。
简洁性不如判定表,数据元素的同一个值往往 要重复写多遍,而且越接近树的叶端重复次数 越多。 画判定树时分枝的次序可能对最终画出的判定 树的简洁程度有较大影响。

PAD图的基本符号
PAD图的主要优点如下:

使用表示结构化控制结构的PAD符号设计出来 的程序必然是结构化程序。 PAD图所描绘的程序结构十分清晰。 PAD图表现程序逻辑易读、易懂、易记。 容易将PAD图转换成高级语言源程序,这种转 换可用软件工具自动完成。

软件工程导论第6章

软件工程导论第6章

70年代初N.Wirth在Pascal语言中设置支持“顺序 结构”、“IF-THEN-ELSE选择结构”、“DO-WHILE 重复结构”或“DO-UNTIL重复结构”三种基本控制 结构语句。
25
3种基本控制结构
(1) 顺序型
A B
(2) 选择型
F P A B T
(2) 多情况选择型(case)
T T
P=1 F P=2 F P=n F

A1 A2
T
An
(3) 先判定型循环
后判定型循环
(do-while)
F
(do-until)
P T S
S P F
T
例1、某模块有两个输入a和b,一 个输出c,当满足条件(a>0)and(b<2) 时,c=a+b,否则c=a-b。画出该模 块的程序流程图。
a b
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结 习题
1
详细设计阶段的根本目标:确定应该怎样具体地 实现所要求的系统。 为软件结构图中的每一个模块确定使用的算法和 块内数据结构,并用某种选定的表达工具给出清晰 的描述。
100 110
120
130 140
Eq:等于 ne:不等于 gt:大于 lt:小于 ge:大于等于 le:小于等于
例:打印A、B、C三数中最小者的程序 if (A.LT.B .AND. A.LT.C)then write(6,*) A else if (A.GE.B .AND. B.LT.C) then write(6,*) B else write(6,*) C endif endif

第6章 详细设计

第6章 详细设计

13/105
过程设计
• 表达过程规格说明的工具称为过程描述工具, 可以将过程描述工具分为以下3类。 (1) 图形工具:把过程的细节用图形方式描述出 来,如程序流程图、N-S图、PAD图、决策树 等。 (2) 表格工具:用一张表来表达过程的细节。这 张表列出了各种可能的操作及其相应的条件, 即描述了输入、处理和输出信息,如决策表。 (3) 语言工具:用某种类高级语言(称为伪代码) 来描述过程的细节,如很多数据结构教材中使 用类Pascal、类C语言来描述算法。
40/105
41/105
1 甲 乙 丙 甲不知 乙不知 丙 R R R
2 R R W
3 R W R
4 R W W
5 W R R
6 W R W
7 W W R
42/105
6.3.5
• 判定表虽然能清晰地表示复杂的条 件组合与应做的动作之间的对应关系, 但其含义却不是一眼就能看出来的,初 次接触这种工具的人要理解它需要有一 个简短的学习过程。
9/105
6.1 结构化程序设计
• 结构程序设计的主要原则
(6) 严格控制GOTO语句,仅在下列情形才可使用: 用非结构化的程序设计语言去实现结构化的构 造。 若不使用GOTO语句就会使程序功能模糊。 在某种可以改善而不是损害程序可读性的情况 下。例如,在查找结束时,文件访问结束时, 出现错误情况要从循环中转出时,使用布尔变 量和条件结构来实现就不如用GOTO语句来得 简洁易懂。
• 主持人对甲、乙、丙三人说:“这里有三顶红帽 子,两顶白帽子。现在用布蒙上你们的眼睛,给 你们每人戴上一顶帽子,然后请你们依次睁开眼 睛,能正确说出自己所戴帽子的颜色者有奖。” • 带完帽子后,甲拿下布后看了其他两人的帽子说: “我不知道。” • 然后,乙解开布看了其他两人的帽子后说:“我 不知道。” • 轮到丙时,他没有拿下布就正确地说出了自己所 戴帽子的颜色。 • 试问:丙戴的是什么帽子?他是怎样得出结论的?

软件工程_6_详细设计.pptx

软件工程_6_详细设计.pptx

3. 出错信息处理
交互式系统的出错信息或警告信息,应该具有下 述属性:
(1) 信息应该使用用户可以理解的术语描述问题; (2) 信息应该提供有助于从错误中恢复的建设性 意见; (3) 信息应该指出错误可能导致哪些负面后果(例 如,破坏数据文件); (4) 信息应该伴随着听觉上或视觉上的提示,强 化出现异常; (5) 信息不能带有指责用户的内容。 当确实出现了问题的时候,有效的出错信息能提 高交互式系统的质量,减轻用户的挫折感。
直接影响用户对软件产品的评价,从而影响软 件产品的竞争力和寿命。
人机界面目前所占的工作量越来越大。
6.2.1 设计问题
在设计人机界面常会遇到下述4个问题: 系统响应时间 用户帮助设施 出错信息处理 命令交互
上述问题,最好在设计初期作为重要的设计问题 来考虑,这时修改比较容易,代价也低。
1. 系统响应时间
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结及作业
6.1 结构程序设计
结构程序设计的经典定义:“如果一个程序的 代码块仅仅通过顺序、选择和循环这3种基本控 制结构进行连接,并且每个代码块只有一个入口 和一个出口,则称这个程序是结构化的。”
6.3.2 盒图(N-S图)
6.3.2 盒图(N-S图)
出于要有一种不允许违背结构程序设计精神的 图 形 工 具 的 考 虑 , Nassi 和 Shneiderman 提 出 了 盒 图,又称为N-S图。它有下述特点:
(1) 功能域(即,一个特定控制结构的作用域) 明确,可以从盒图上一眼就看出来。
2. 用户帮助设施
几乎交互式系统的每个用户都需要帮助,大多数 现代软件都提供联机帮助设施,这使得用户无须离 开用户界面就能解决自己的问题。

第6章 详细设计

第6章 详细设计

4)命令交互
9
2.人机界面设计过程
• 用户界面设计是一个迭代的过程。
创建设计模型
用原型实现设计模型
根据用户意见进行修改
由用户试用和评估
10
3.
人机界面设计指南
1)一般交互指南 一般交互指南涉及信息显示、数据输入和系统整体控制, 因此,这类指南是全局性的,忽略它们将承担较大风险。
(1) 保持一致性。
20
• 从20世纪40年代末到70年代中期,程序流程图一直是软件 设计的主要工具。 • 它的主要优点是对控制流程的描绘很直观,便于初学者掌 握。由于程序流程图历史悠久,为最广泛的人所熟悉,尽 管它有种种缺点,许多人建议停止使用它,但至今仍在广 泛使用着。不过总的趋势是越来越多的人不再使用程序流 程图了。 • 程序流程图的主要缺点如下: (1) 程序流程图本质上不是逐步求精的好工具,它诱使程序 员过早地考虑程序的控制流程,而不去考虑程序的全局结 构。 (2) 程序流程图中用箭头代表控制流,因此程序员不受任何 约束,可以完全不顾结构程序设计的精神,随意转移控制 (3) 程序流程图不易表示数据结构。
7
6.2
人机界面设计
人机界面的设计质量,直接影响用户对软件 产品的评价,从而影响软件产品的竞争力和 寿命,因此,必须对人机界面设计给予足够 重视。
近年来,人机界面在系统中所占的比例越来 越大,在个别系统中人机界面的设计工作量 甚至占总设计量的一半以上。
重要啊!!
8
1.
人机界面设计问题
设计人机界面中的4个问题: 1)系统响应时间 2)用户帮助设施 3)出错信息处理
(9) 提供对用户工作内容敏感的帮助设施。
(10) 用简单动词或动词短语作为命令名。

第6章 面向对象与统一软件开发过程

第6章 面向对象与统一软件开发过程

图6-27确定了“账户管理”包包含几个由其他包中的类所Байду номын сангаас用的类,即“买 主账户管理”和“卖主账户管理”都使用“账户管理”包的“账户”类。
在分析阶段,从多个不同的分析类中抽取共享和公用的行为时应该使用泛 化。例如,“账单”和“订单”类有相似的职责。二者都是针对一般对象,如 “贸易”类的泛化,如图6-28所示。
下面给出了“取款”用况实现的事件流。 (1)银行储户选择“取款”并向“ATM接口”表明身份。 (2)“ATM接口”请求“事务管理”取款,“事务管理”负责将提取现金 的整个动作序列作为原子事务执行,以便从账户中扣除取款金额并将现金分发 给银行储户。 (3)“事务管理”请求“账户管理”取款,“账户管理”决定能否取出现 金。如果可以取款,则从账户中扣除取款的金额并返回应答; (4)“事务管理”授权“ATM接口”分发货币。 (5)“ATM接口”将现金分发给银行储户。
用况模型分析模型(概念性类元间的协作)设计模型(类元)
2.捕获用况
捕获用况是统一过程的第1个活动。 将功能性需求表示为用况模型中的用况,参与者在用况交互时使用系统, 系统的参与者和用况组成用况模型。
参与者可以是与系统发生交互的人活着其他系统活着外部硬件。参与者通 过执行用况与系统通信 用况规定了一个动作序列,系统执行用况并对特定参与者参数可见结果。
设计模型通过使用分析模型作为主要输入而被创建,其中要定义类元、类元 之间的关系及实现这些用况的动作,它相对于分析模型更加注重实际。分析模型 中的用况实现可跟踪到设计模型中的用况实现,图6-5给出了类的进一步细分。
图6-6给出了ATM基本的设计类图,该图比分析模型的类图展现了更多的细节。
图6-7给出了“取款”用况的部分顺序图。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

思考:数据库设计的时候需要 考虑完整性,那么如果用户数 据输入出错,不符合完整性要 求,那么出错信息是由后台数 据库提供,还是由前台提供呢?
4. 命令交互
交互形式: 命令行---曾经的流行 面向窗口的、点击和拾取方式的界面
用户既可以从菜单中选择软件功能,也可 以通过键盘命令序列调用软件功能。
谢谢!
Internal PROCEDURE spell_check IS statements BEGIN Split document into single words Look up words in dictionary External statements Display words which are not in dictionary Create a new dictionary END spell_check
2. 用户帮助设施 几乎交互式系统的每个用户都需要帮助,当 遇到复杂问题时甚至需要查看用户手册以寻 找答案。大多数现代软件都提供联机帮助设 施,这使得用户无须离开用户界面就能解决 自己的问题。 常见的帮助设施可分为集成的和附加的两类
help
用户帮助设计要点:
(1) 帮助的时间和内容范围界定 (2) 用户请求帮助方式: ① 帮助菜单 ② 特殊功能键 ③ HELP命令。
Halstead方法
Halstead方法根据程序中运算符和操作数的总数来度量程序 的复杂程度。 令N1为程序中运算符出现的总次数,N2为操作数出现的总 次数,程序长度N定义为: N =N1十N2 详细设计完成之后,可以知道程序中使用的不同运算符(包 括关键字)的个数n1,以及不同操作数(变量和常数)的个 数n2。Halstead给出预测程序长度的公式如下: H = n1log2n1十n2log2n2 多次验证都表明,预测的长度H与实际长度N非常接近。 Halstead还给出了预测程序中包含错误的个数的公式如下: E = N log2(n1 +n2)/3000

k
Do-Until
h
Do-Until x6
Do-While x3 c
d
e
j
§3. 工具
开始
a
b
Until x6
f
Until x5
i
x4
x1
结束
g k h
j
k
def
1
While x3
c
x2
2 3
d
e
§3. 工具
特点: ① 结构清晰,层次分明,易读; ② 支持逐步求精的设计思想; ③ 容易将PAD自动转换为高级语言源程序。 4、判定表 & 判定树(Decision Table & Tree) 表示复杂的条件(input)组合与应做动作 (output)之间的对应关系。
McCabe方法 使用McCabe方法首先需要画出程序图, 所谓程序图可以看成是“退化了的”程序 流程图,也就是把程序流程图中每个处理 符号都退化成一个点,原来连接不同处理 符号的箭头变成连接不同点的有向弧,这 样得到的有向图就称为程序图 (流图)。
McCabe方法 例子1
开始 K=0 L=0 TOTAL=0 输入A
• 面向数据结构的设计方法(略) • 程序复杂程度的定量度量 • 小结
(Program Design Coding)
结构程序设计的特点: ① 自顶向下逐步求精; ② 具有单入、单出的控制结构(取消GOTO语句)
1、程序流程图(Program Flow Chart) 5种基本控制结构为:
(1) 顺序结构(sequential (2) 选择结构(selective (3) 先判定型循环结构
(3) 帮助信息的显示. ① 在独立的窗口中 ② 指出参考某个文档(不理想) ③ 在屏幕固定位臵显示简短提示。
(4) 用户返回到正常的交互方式中的方法. 有两种选择:屏幕上的返回按钮和功能键。 (5) 帮助信息的组织:平面结构,信息的层次结构 和超文本结构。
3. 出错信息处理
出错信息和警告信息,是出现问题时交互式系统给出的“坏 消息”。出错信息设计得不好,将向用户提供无用的甚至误 导的信息,反而会加重用户的挫折感。 一般说来,交互式系统给出的出错信息或警告信息,应该具 有下述属性。 (1) 信息应该用用户可以理解的术语描述问题。 (2) 信息应该提供有助于从错误中恢复的建设性意见。 (3) 信息应该指出错误可能导致哪些负面后果。 (4) 信息应该伴随着听觉上或视觉上的提示,例如,在显示信 息时同时发出警告铃声,或者信息用闪烁方式显示,或者信 息用明显表示出错的颜色显示。 (5) 信息不能带有指责色彩,也就是说,不能责怪用户。
§3. 工具
2、盒图(Box Diagram): Nassi &Shneiderman 1973年提出, 又称为N-S Charts。Chapin 1974年作扩充,故 也称为Chapin charts.
A B
F
P A B
T
F
P B
T
Do-While P
S
While
Sequential Selective
软件开发与应用
胡俊敏
Email:wingoner@ 2009.2
集美大学工商管理学院信息管理与信息系统系
第五章 回顾
• 设计过程 • 设计原理 • 启发规则
• 描绘软件结构的图形工具
• 面向数据流的设计方法 • 小结
本章导读
第六章 详细设计
• 结构程序设计 • 人机界面设计
• 过程设计的工具
人机界面
界面是软件 的面子,一 些特殊的软 件。例如: 游戏软件。 软件的界面 重要性就更 高
6.2.1 设计问题
在设计人机界面的过程中,几乎总会遇到下 述4个问题:
系统响应时间
用户帮助设施 出错信息处理 命令交互
1. 系统响应时间 系统响应时间指从用户完成某控制动作 (例如,按回车键或点击鼠标),到软件给 出预期的响应(输出信息或做动作)之间的 这段时间。 系统响应时间有两个重要属性:分别是长 度和易变性。
S 1
Do-Until P
P 2 A2 Case n An Call subroutine
A
A1
Until
§3. 工具
例:
a
T
b x1 f x4 i g
x5
F
F
k: x2
1 2 3
T
k
Do-Until
h
Do-Until x6
Do-While x3 c
d
e
j
§3. 工具
特点:
① 没有箭头,不允许随意转移控制;
McCabe方法
环行复杂度的用途: 程序的环形复杂度取决于程序结构的复杂程 度。当程序内分支数或循环个数增加时,环 形复杂度也随之增加,因此它是对测试难度 的一种定量度量,也能对软件最终的可靠性 给出某种预测。
实践表明,模块规模以V(G)≤10为宜,也 就是说,V(G)≤10是模块规模的一个更科 学更精确的上限。
A B
Sequential
A P B
Selective
THEN ELSE
While P Until P
Loops
S S
1
A1 A2 An
Statement Index
2
def
Definition
P=
n

Case
§3. 工具
例:N-S图与PAD的转换
a
T
b x1 f x4 i g
x5
F
F
k: x2
1 2 3
国内乘客 头等舱 残疾乘客 行李重量 W 30 免费 (W-30) 2 (W-30) 3 (W-30) 4 (W-30) 6 (W-30) 8 (W-30) 12 T T F T 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

ISO 认可的规定符号:
优点:容易掌握,且历史“悠久”,使用广泛。 缺点:本质上不具备逐步求精的特点,对于提高
大型系统的可理解性作用甚微; 不易表示数据结构; 转移控制太方便。

趋势:停止使用
6.2 人机界面设计
人机界面设计是接口设计的一个重要的组 成部分。 近年来,人机界面在系统中所占的比例越 来越大,在个别系统中人机界面的设计工作 量甚至占总设计量的一半以上。 人机界面的设计质量,直接影响用户对软 件产品的评价,从而影响软件产品的竞争力 和寿命。
§4.程序复杂程度的定量度量
(Measuring Program Complexity)
定量度量程序复杂程度的方法很有价值:
把程序的复杂程度乘以适当常数即可估算出软
件中故障的数量以及软件开发需要用的工作量; 定量度量的结果可以用来比较两个不同的设计 或两个不同算法的优劣; 程序的定量的复杂程度可以作为模块规模的精 确限度。
人机界面设计过程
创建设计模型
以原型实现
用户试用和评估
完成
课堂作业: 请同学们根据自己的实践经验, 思考在软件开发过程中进行人机 界面设计的时候需要遵守哪些原 则?
请逐一罗列出来,并辅以例子说 明。
过程设计工具
1.程序流程图 2.盒图 3.PAD图 4.判定表 5.判定树 6.过程设计语言
§3. 工具
例:航空行李托运费的算法 按规定:重量不超过30公斤的行李可免费托运。 重量超过30公斤时,对超运部分,头等 舱国内乘客收4元/公斤;其它舱位国内
乘客收6元/公斤;外国乘客收费为国内
乘客的2倍;残疾乘客的收费为正常乘 客的1/2。
Rules
相关文档
最新文档