第6章 软件工程——结构化软件开发——详细设计编码测试
张海藩《软件工程导论》(第6版)(章节题库 第6章 详细设计)【圣才出品】
![张海藩《软件工程导论》(第6版)(章节题库 第6章 详细设计)【圣才出品】](https://img.taocdn.com/s3/m/3996217084254b35effd343c.png)
十万种考研考证电子书、题库视频学习平台
第 6 章 详细设计
一、选择题 1.在软件开发过程中,以下说法正确的是( )。 A.程序流程图是逐步求精的好工具 B.N-S 图不可能任意转移控制,符合结构化原则 C.判定表是一种通用的设计工具 D.程序流程图和 N-S 图都不易表达模块的层次结构 【答案】B 【解析】程序流程图本质上不是逐步求精的好工具,它会使程序员过早地考虑程序的控 制流程,而不去考虑程序的全局结构;判定表不是一种通用的设计工具,没有一种简单的方 法使用它能同时清晰地表示顺序和循环等结构;程序流程图不易表示模块的层次结构,N- S 图则可以表示模块的层次结构。
11.程序控制一般分为( )、分支、循环三种基本结构。 A.分块 B.顺序 C.循环 D.分支 【答案】B 【解析】程序控制一般分为顺序结构、分支结构也成选择结构、循环结构三种基本结构, 任何一种结构都能由这三种结构组成。
12.Jackson 方法根据( )来导出程序结构。 A.数据结构 B.数据间的控制结构
4 / 14
圣才电子书 十万种考研考证电子书、题库视频学习平台
10.对于详细设计,下面说法错误的是( )。 A.详细设计是具体地编写程序 B.详细设计是细化成很容易地从中产生程序图纸 C.详细设计的结果基本决定了最终程序的质量 D.详细设计中采用的典型方法是结构化程序设计方法 【答案】A 【解析】详细设计阶段,主要对模块内的算法和模块内的数据结构进行设计,具体编写 程序属于编码阶段的任务。
8.( )工具在软件详细设计过程中不采用。 A.判定表 B.IPO 图 C.PDL D.DFD 图 【答案】D 【解析】DFD 图(数据流图)是软件需求阶段过程中采用的工具,用于描述系统的分 解,即描述系统由哪几个部分组成,各部分之间有什么联系等等。
《软件工程》PPT课件
![《软件工程》PPT课件](https://img.taocdn.com/s3/m/736d37890d22590102020740be1e650e52eacfe9.png)
第一章第四课时
喷泉模型 软件工程的任务与研究范围 软件开发的原则与开发方法
返回
喷泉模型
瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多 情况下往往是做不到的.螺旋模型试图克服瀑布模型的这一不足.SM 把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期, 系统就细化和完善一些.SM每—螺旋周期由六个步骤组成: <1> 确定任务目标: 根据初始需求分析项目计划,确定任务目标、可选 方案和限制.<2>选择对象:对各种软硬件设备、开发方法、技术、 开发工具、人员、开发管理等对象进行选择:并决定软件是进行研 制、购买还是利用现有的.<3>分析约束条件:软件开发的时间、经 费等限制条件.<4>风险分析:评估目标、对象、约束条件三者之间 的联系,列出可能出.现的问题及问题的严重程度等,把最重要的问 题作为尚未解决的关键问题的风险.<5>制定消除风险的方法:应有 详尽的说明和周密的计划,并估计可能产生的后果.依此来开发软件, 为制订下一周期的计划打下基础.<6>制定下一周期的工作计划:在 第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制 订消除风险的方法,初步开发原型1,制定系统生存周期计划.
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
软件开发的原则与方法
•软件开发的原则 • 自顶向下与模块结构 •软件开发的方法 •1.非自动形式的系统开发方法 •〔1〕系统流程图〔2〕结构分析法〔3〕结构化设计法 •〔4〕数据结构法〔5〕层次输入——处理——输出方法<HIPO法> • 2.半自动形式的系统开发方法 •〔1〕软件需求工程法〔2〕问题说明语言与分析法 • 3. 自动形式的系统开发方法 〔HOS方法〕:由计算机自动确定规 范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资 源分配工具RTA为工具.能自动进行分析、设计,工作量少、设计规范, 也能自动进行修改和维护.该方法适用于系统分析和设计.
软件工程讲义第六章
![软件工程讲义第六章](https://img.taocdn.com/s3/m/7f62e767581b6bd97f19eaf3.png)
ENDWHILE; 2.1、2.2、2.4已能用程序语言表达,只需对2.3进一步精细化。 为了处理60个数据,又需一循环结构。
引入分钟值变量:minutes,每分钟要做的工作是: 累计:求每小时的平均值 检查违章情况 为了累计,引入变量sum: 在每小时处理前设初值为0。 每小时处理后求平均值。
3、自顶向下的程序验证。
2019年11月26日星期二
西南交通大学信息科学与技术学院
结构化程序设计的核心内容
二、使用三种基本控制结构来构造程序 1、任何程序都由顺序、选择和重复三种基本控制结构构造。 顺序实现了任何算法规约中的核心处理步骤; 条件允许根据逻辑情况选择处理方式; 重复提供了循环。 这些逻辑元素是结构化程序设计的基础。
BEGIN
1. 设置初值;
2. 处理24小时数据;
END
求精步骤1:设置初值。开始时一般不明确为哪些变量赋初值。
求精步骤2:计算结果是以小时为统计单位输出,它是重复执行24次的
循环结构。
局部数据结构设计:数据输入的方案选择:
1、处理前读入所有24小时数据,共1440个,需要大一个大的数组。
2、每次计算输入一个数据,这要保证对先前输入的数据不再使用。
ENDWHILE;
Mean:=sum/60.0; 一次违章出现是指连续5次污染值超过10.00。如果违章分布在两个相间的时 间段上,则把这次违章算在下一小时上。 首先测试当前值是否超过10.00,若是,还将进一步检查是否连续出现5次。 为了实现第二个测试,需要两个计数器: Voilation:计数本小时出现的违章次数。 Infraction:计数连续出现超过正常值的次数。 每次超正常值出现时,Infraction增1。为了保证Infraction表示连续出现超正 常值,必须保证在第一次出现超正常值时其初值为0。为了保证相继两个小时的 Infraction的值能连续被使用,在每小时处理前不能为Infraction置0值,只能在 第一小时处理前置0。另外,在发现一次未超正常值时,也应置它为0,即连续 出现超正常值中断。
软件工程导论复习重点总结很全第六版
![软件工程导论复习重点总结很全第六版](https://img.taocdn.com/s3/m/b5a3a238793e0912a21614791711cc7931b778b7.png)
第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 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程导论(第五版) 第六章
![软件工程导论(第五版) 第六章](https://img.taocdn.com/s3/m/84e00ed2b8f67c1cfad6b840.png)
•经典的结构程序设计:只允许使用顺序、
IF_THEN_ELSE选择和DO_WHILE循环;
扩展的结构程序设计:除了三种基本控制结构, 还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构 和两种扩充结构,还使用BREAK等结构。
6.1.1 结构化程序
6.1.1.1 控制结构 • 流程图通常由三种结点组成: •1)函数结点 • 如果一个结点有一个入口线和
行李重量w30行李重量w30国内乘客外国乘客头等舱其他舱头等舱其他舱残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客w302w304w303w306w304w308w306w3012免费图67用判定树表示计算行李费的算法636pdl2可以使用普通的正文编辑程序或文字处理系统来完成pdl的书写和编辑工作
•定义7:由基本程序的一个固定的基集合构造出的复合
程序,称为结构化程序。
6.1.2 结构化定理 •结构化定理:任一正规程序都可以函数等价于
一 个 由基 集 合 {顺 序 , If-else-then,While-do} 产生的结构化程序。
• 实际上,只要能证明可以将任一正规程序转
换成等价的结构化程序就可以证明这个结构化 定理。
123456789 TTTTFFFF TFTFTFTF FFTTFFTT
TFFFFFFFF
×
×
×
×
×
×
×
×
×
•6.3.5 判定树
• 判定树是判定表的变种。
行李重量
国内乘客
头等舱 其他舱
残疾乘客
正常乘客 残疾乘客 正常乘客
(W-30)×2 (W-30)×4 (W-30)×3 (W-30)×6
软件工程导论第6章
![软件工程导论第6章](https://img.taocdn.com/s3/m/f3cb1e17b7360b4c2e3f6442.png)
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章 详细设计](https://img.taocdn.com/s3/m/31c93a08e2bd960590c6774f.png)
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章(第4版)
![软件工程导论第6章(第4版)](https://img.taocdn.com/s3/m/635bcf2f10661ed9ad51f38a.png)
二. 人机界面设计
人机界面设计是接口设计的一个重要的组成部 分。对于交互式系统来说,人机界面设计和数据设 计、体系结构设计及过程设计一样重要。
1.指导规则
T.Mandel在《用户界面设计要素》中,提出了3 条指导规则: 让用户驾驭软件,不是软件驾驭用户 减少用户的记忆 保持界面的一致性
2. 应该考虑的设计问题
4. 人机界面设计指南
(3) 数据输入指南 尽量减少用户的输入动作。 保持信息显示和数据输入之间的一致性。 允许用户自定义输入。 交互应该是灵活的,可调整成用户喜欢的输入方式。 使在当前动作语境中不适用的命令不起作用。 让用户控制交互流。 对所有输入动作都提供帮助。 消除冗余的输入。
三. 过程设计
1.过程设计的目的与任务 目的 确定模块采用的算法和块内数据结构,用某种 选定的表达工具给出清晰的描述。 任务:编写软件的“过程设计说明书” 为每个模块确定采用的算法 (模块的详细过程性 描述) 确定每一模块使用的数据结构 确定模块接口的细节 (包括对系统外部的接口和 用户界面,对系统内部其他模块的接口,以及关 于模块输入数据、输出数据及局部数据的全部细 节)
三. 过程设计
2.过程设计的原则与方法
清晰第一的设计风格 结构化的控制结构 结构程序设计的经典定义为: “如果一个程序的代码块仅仅通过顺序、选择和循环这3 种基本控制结构进行连接,并且每个代码块只有一个入口和 一个出口,则称这个程序是结构化的。” 结构程序设计技术是一种实现在逻辑上正确描述每个模 块的功能,并且使设计出的处理过程尽可能简明易懂的关键 技术,是过程设计的逻辑基础。 逐步细化的实现方法 例:在一组数中找出其中的最大数
(4) 命令交互 命令行现在仍然是许多高级用户偏爱的交互方式。在 多数情况下,用户既可以从菜单中选择软件功能,也可以 通过键盘命令序列调用软件功能。 在提供命令交互方式时,必须考虑下列设计问题: 是否每个菜单选项都有对应的命令? 采用何种命令形式?有3种选择:控制序列(例如Ctrl+P), 功能键和键入命令。 学习和记忆命令的难度有多大?忘记了命令怎么办? 用户是否可以定制或缩写命令? 在理想的情况下,所有应用软件都有一致的命令使用 方法。
软件工程各章作业习题的名词解释和问答题参考答案
![软件工程各章作业习题的名词解释和问答题参考答案](https://img.taocdn.com/s3/m/e67d336b0b4c2e3f572763ba.png)
软件工程各章作业习题的名词解释和问答题参考答案第一章:1:什么是软件危机开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。
2:软件工程过程指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
3:软件生成周期可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。
5:软件计算机程序及说明程序的各种文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特点是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。
9:软件文档有关程序的功能、设计、图形资料等等。
第二章:三. 名词解释1.可行性研究以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后能否得到应有的效益4.社会可行性主要研究开发的软件是否存在责任和侵权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决.四.问答题1. 可行性研究的任务是什么首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见.2.可行性研究有那些步骤确定任务;分析技术可行性;分析经济可行性;分析社会可行性;作出系统流程图;作出开发计划。
3.可行性研究的目的.减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.第三章三. 名词解释1. 需求分析指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来2. DFD数据流图四. 简答题1.什么是需求分析该阶段的基本任务是什么指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来基本任务:(1) 能够表达和理解问题的功能和性能;(2) 可以把一个复杂问题按某种方式进行划分, 并能逐步细化, 从而使复杂问题简化,软件的功能域,数据域都可以划分;(3) 建立模型.2. 简述结构化分析的步骤这一方法的基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效的控制系统的复杂性.对于复杂, 规模大的应用系统,采用先抽象后具体, 先全局后局部的思想,有利于把握系统的总体目标, 结构和功能.第四章:三. 名词解释1. 软件设计确定软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题划分为模块的过程3.信息隐蔽指模块内部处理细节和内部数据用某种手段隐蔽起来,外部模块不能随便访问4.模块独立性希望一个模块越独立越好,每个模块完成独立的功能,与其他模块联系越少越好5.耦合性指软件结构中模块之间相互依赖的程度6.内聚性模块内部各部分执行功能组合在一起的相关程度7.模块的控制范围一个模块对下属模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9. 软件结构以需求分析文档为依据,解决实现软件体系结构四. 简答题1.什么是软件概要设计, 该阶段的基本任务是什么以需求分析文档为依据,解决实现软件体系结构。
软件工程6-1
![软件工程6-1](https://img.taocdn.com/s3/m/874495d233d4b14e852468c9.png)
(1)由于程序流程图的特点,它本身并不是逐步求精的好工具. 因为它使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的 全局结构; (2)程序流程图中用箭头代表控制流,这样使得程序员不受任何 约束,可以完全不顾结构程序设计的精神,随意转移控制;
(3)程序流程图在表示数据结构方面存在不足.
2, 盒图(N-S图) , 盒图( 图
6.4.3 程序设计风格
1,程序内部的文档 2,数据说明 3,语句构造 4,输入/输出 输入/ 5,效率
1, 程序内部的文档 ,
程序内部的文档包括:
(1)恰当的标识符(变量和标号)的名字; 恰当的标识符(变量和标号)的名字; 恰当的标识符 (2)适当的注释; 适当的注释; 适当的注释 (3)程序的视觉组织. 程序的视觉组织
2) (2)面向对象语言 对象+消息 对象 消息 例:Delphi,Visual Basic, JAVA,C++.
6.4.2 程序设计语言的选择 一般情况下,我们采用高级语言来编程. 选择具体高级语言类型的原则: 选择具体高级语言类型的原则: (1)系统的应用领域 ) (2)用户的要求 ) (3)软件的执行环境 ) (4)目标系统的性能要求 ) (5)程序员的知识水平 ) (6)软件的可移植性要求 )
4, 输入/输出 , 输入/
在设计和程序编码时,应考虑输入和输出风格原则: (1)对所有输入数据都进行校验,以保证每个数据的有 效性; 检查重要的输入项组合的合法性; 使得输入的步骤和操作尽可能简单,并保持简单的输 入格式; 输入一批数据时,使用输入结束指示符,不要要求用 户说明输入项数; (2)在以交互式输入/输出方式进行输入时,要指明可 以使用的选择值或界限值; 应允许缺省值; (3)当程序设计语言对输入/输出格式有严格要求时, 应保持输入格式与输入语句的要求一致; 给所有的输出加注释,并设计输出报表格式.
软件工程与实践第6章
![软件工程与实践第6章](https://img.taocdn.com/s3/m/4ee40b8451e79b89680226aa.png)
6.1 6.2 6.3 6.4 6.5 6.6
结构程序设计 人机界面设计 过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量 小结
详细设计阶段的根本目标是确定应该怎样具体地实 现所要求的系统。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,以后程序员将根据这个 蓝图写出实际的程序代码。 详细设计的目标不仅仅是逻辑上正确地实现每个模 块的功能,更重要的是设计出的处理过程应该尽可 能简明易懂。 结构程序设计技术是详细设计的逻辑基础。
6.2.3 人机界面设计指南
用户界面设计主要依靠设计者的经验,总结众多设 计者的经验得出的设计指南,有助于设计者设计出 友好、高效的人机界面。下面介绍3类人机界面设 计指南。 1. 一般交互指南 一般交互指南涉及信息显示、数据输入和系统整体 控制,因此,这类指南是全局性的,忽略它们将承 担N-ELSE型分支和 DO-WHILE型循环这3种基本控制结构,则称为经 典的结构程序设计;如果除了上述3种基本控制结 构之外,还允许使用DO-CASE型多分支结构和 DO-UNTIL型循环结构,则称为扩展的结构程序设 计;如果再加上允许使用LEAVE(或BREAK)结构, 则称为修正的结构程序设计。
6.3.6 过程设计语言
过程设计语言(PDL)也称为伪码,它是用正文形 式表示数据和处理过程的设计工具。 PDL应该具有下述特点: (1) 关键字的固定语法,它提供了结构化控制结构、 数据说明和模块化的特点。 (2) 自然语言的自由语法,它描述处理特点。 (3) 数据说明的手段。应该既包括简单的数据结构 (例如纯量和数组),又包括复杂的数据结构(例如, 链表或层次的数据结构)。 (4) 模块定义和调用的技术,应该提供各种接口描 述模式。
第6章 详细设计 软件工程-课件
![第6章 详细设计 软件工程-课件](https://img.taocdn.com/s3/m/cac6152e02768e9950e7382d.png)
图6.2 其他常用的控制结构
6.2 人机界面设计
人机界面的设计质量,直接影响用户对软 件产品的评价,从而影响软件产品的竞争力 和寿命
6.2.1 设计问题
4个问题: 系统响应时间、 用户帮助设施、 出错信息处理 命令交互。
“结构程序设计是尽可能少用GO TO语句 的程序设计方法。最好仅在检测出错误时才 使用GO TO语句,而且应该总是使用前向 GO TO语句。”
如果只允许使用顺序、IF-THEN-ELSE型 分支和DO-WHILE型循环这3种基本控制结 构,则称为经典的结构程序设计;
如果除了上述3种基本控制结构之外,还允 许使用DO-CASE型多分支结构和DO-UNTIL 型循环结构,则称为扩展的结构程序设计
集成
附加
(1) 在用户与系统交互期间,是否在任何时候都能 获得关于系统任何功能的帮助信息?有两种选择: 提供部分功能的帮助信息和提供全部功能的帮助信 息。
(2) 用户怎样请求帮助?有3种选择:帮助菜单,特 殊功能键和HELP命令。
(3) 怎样显示帮助信息?有3种选择:在独立的窗口 中,指出参考某个文档(不理想)和在屏幕固定位置 显示简短提示。
用户界面的评估周期如下所述:
完成初步设计之后就创建第一级原型;
用户试用并评估该原型,直接向设计者表述对界 面的评价;
设计者根据用户意见修改设计并实现下一级原型。
上述评估过程持续进行下去,直到用户感 到满意,不需要再修改界面设计时为止。
也可以在创建原型之前就对用户界面的设 计质量进行初步评估。
在创建了用户界面的设计模型之后,可以 运用下述评估标准对设计进行早期复审。
信息技术第6章 软件开发练习题库(附答案)
![信息技术第6章 软件开发练习题库(附答案)](https://img.taocdn.com/s3/m/6aa5ae26974bcf84b9d528ea81c758f5f71f2977.png)
第六章软件开发一、单项选择1.给定如下所示的JAVA代码,则运行时,会产生哪种类型的异常()String s = null;s.concat( "追加的字符串");A. ArithmeticExceptionB. NullPointerExceptionC. IOExceptionD. ClassNotFoundException参考答案:B答案解析:空值的字符串变量无法进行追加字符串运算。
A选项为数学运算异常;C选项为输入输出异常;D选项为未找到类定义的异常。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第二节 Web熟悉开发 4.了解Java编程。
2.为使得开发人员对软件产品的各阶段都进行周密的思考,从而减少返工,所以编制下列哪个文件是很重要的()A.需求说明B.概要说明C.软件开发文档D.测试大纲参考答案:C试题解析:软件开发文档是软件开发使用和维护过程中的必备资料。
它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第一节软件开发基础知识3.下列哪个文档属于软件开发人员为用户准备的有关该软件使用、操作、维护的资料()A.开发文档B.管理文档C.用户文档D.软件文档参考答案:C试题解析:用户文档可以帮助用户掌握相关软件的使用、操作及维护。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第一节软件开发基础知识4.关于中间件特点的描述,不正确的是()A.中间件可运行于多种硬件和操作系统平台上B.跨越网络、硬件、操作系统平台的应用或服务可通过中间件透明交互C.中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率D 中间件应支持标准的协议和接口参考答案:C试题解析:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
计算机软件工程第六章 详细设计
![计算机软件工程第六章 详细设计](https://img.taocdn.com/s3/m/3b3dfd8cd4d8d15abe234e4e.png)
PAD图的基本符号
SOFTWARE ENGINEERING
PAD图的基本符号
输入框 输出框 处理框 选择框
重复框(先判 定,再重复) 或 子程序框
重复框(先执行, 后判定,再重复)
定义框
使用PAD图提供的定义功能来逐步求精的例子
• 作业:判定一个数是不是素数的PAD图
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
盒图的基本符号
SOFTWARE ENGINEERING
§6.2 详细设计的工具
6.2.4 PAD图(Problem Analysis Diagram) 用二维树形结构的图来表示程序的控制流。 优点: ①设计出的程序是结构化程序; ②描绘程序结构清晰; ③表示程序逻辑,易读、易懂、易记;(自上而下, 从左向右顺序执行,遍历所有结点); ④易转换成 语言源程序,可用软件工具自动完成; ⑤也可用于描绘数据结构; ⑥支持自顶向下、逐步求精方法的使用。
例题 根据伪码画出程序流程图、盒图、 PAD图
Start If p1 then while q2 do x end do Else block y z end block End if stop
SOFTWARE ENGINEERING
作业:根据伪码画出程序流程图、盒图、PAD图
Begin Input(a,b,c) i=0 While i<=6 do Begin If a>6 or b>=0 Then c=c+a Else b=c+a End if i=i+1 End End do Print(a,b,c) End
PAD图(问题分析图)
(4)PAD是二维树形结构的图形,程序从图中 最左竖线上端的结点开始执行,自上而下,从 左向右按顺序执行,遍历所有结点; (5)容易将PAD转换成高级语言源程序,该转 换可由软件自动完成,有利于提高软件可靠性 和软件生产; (6)既可用于表示程序逻辑,也可用于描绘数 据结构; (7)PAD的元素支持自顶向下、逐步求精方法 的使用。
软件工程简答题答案第五版
![软件工程简答题答案第五版](https://img.taocdn.com/s3/m/060c737b793e0912a21614791711cc7931b77815.png)
软件工程简答题答案第五版软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
软件工程导论第6章 详细设计2
![软件工程导论第6章 详细设计2](https://img.taocdn.com/s3/m/82ccb40890c69ec3d5bb757b.png)
2、信息显示界面设计
1)、可使用性 ① 使用简单
② 用户界面中所用术语的标准化和一致性 ③ 具有HELP功能 ④ 快速的系统响应和低的系统成本 2)、灵活性
① 提供不同的系统响应信息(多媒体)。 ② 提供根据用户需求制定和修改界面。 3)、界面的复杂性与可靠性 复杂性—界面规模及组织应该愈简单愈好。只显示与当前工作 内容相关的信息。使用窗口分隔不同类型的信息。 可靠性—用户界面应该能够保证用户正确、可靠地使用系统, 及程序、数据的安全。产生有意义的出错信息。
顺序 结构
选择 结构
Case 型多 分支 结构
While 型循环 Until 型 循环
定义
PAD图基本符号
31
使用PAD图提供的定义功能逐步求精的例子
32
例:用PAD图表示:打印50名学生中成绩在 80分以上者的学号和成绩。
开始 i=1 Until i>50 结束
gi>=80
输出ni和gi
i=i+1
使用一种语言(通常是自 然语言)的词汇,同时却 使用另一种语言(某种结 构化语言)的语法。
45
PDL的特点
PDL用正文形式表示数据和处理过程的设计工具,其外层语法是确 定的,而内层语法则不确定。
(1)PDL具有严格的关键字外部语法,用于定义控制结构和数据 结构。外层语法描述控制结构它用类似于一般程序设计语言控制结 构的关键字:
一个菱形判断框有两个出口, 而一个选择结构只有一个出口 。不要将菱形框的出口和选择 结构的出口混淆。)
选择结构二
7
循环结构的图示:
F
F
T
T
当型(While型)循环结构 直到型(Until型)循环
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
3. PAD图
PAD是Problem Analysis Diagram的缩写,它是日本日立公司提出, 由程序流程图演化来的。现在已为ISO认可。
7
PAD图特点: 用PAD所表达的程序,结构清晰并且结构化程度高。作为一种详细 设计的工具,它比流程图更易读,且由于PAD是一种树形结构,比流程 图更容易在计算机上处理,容易将PAD图转换成程序。
if ( A < B ) goto 120; if ( B < C ) goto 110; write ( C ); goto 140; write ( B ); goto 140; if ( A < C ) goto 130; goto 100; write ( A ); end
15
例 找出100以内的素数
13
6.2.3 软件编码(程序设计)
程序设计阶段的任务:将“软件表示” 变成计算机能够 “理解”的形式,即为每个模块编程。
结构化程序设计,主要包括两个方面:
在编写程序时,强调使用几种基本控制结构,通过组合 嵌套,形成程序的控制结构。尽可能避免使用会使程序 质量受到影响的GOTO语句。
在程序设计过程中,尽量采用自顶向下和逐步细化的原 则,由粗到细,一步步展开。
详细设计 (过程设计)
定义: 在概要设计阶段完成了软件系统的总体设计,规定了各 个模块的功能及模块之间的联系之后,进一步就要考虑实现 各个模块规定的功能,也就是进行软件的详细设计,也称为 过程设计。
任务: 要决定各个模块的实现算法,并精确地表达这些算法。 常用工具: 1. 程序流程图 2. N-S图 3. PAD图 4. 伪代码 PDL
14
例 打印A, B, C三数中最小者程序 程序1 100 110 程序2 if ( A < B ) and ( A < C ) then 130 write ( A ) 140 else if ( A B ) and ( B < C ) then write ( B ) else write ( C ) endif endif 120
8
4. PDL ( Program Design Language )
PDL是一种用于描述功能模块的算法设计和加工细节的
语言,称为设计程序用语言。它是一种伪码。一般地,
伪码的语法规则分为“外语法”和“内语法”。外语法 应当符合一般程序设计语言常用语句的语法规则;而内
语法可以用英语中一些简单的句子、短语和通用的数学
从2到100中去掉2,3,…,9,10的倍数,剩下的就是 100以内的素数。
为了解决这个问题,可先按程序功能写出一个框架。
16
main ( ) { /*建立2到100的数组A[ ],其中A[i]=i*/ for ( i = 2;i <= 100;i++ ) A[i] = i; /* 建立2到10的素数表B[ ],其中存放2到 10以内的素数*/ B[1]= 2;B[2]= 3;B[3]= 5;B[4]= 7; /*若A[i]=i是B[ ]中任一数的倍数,则剔除A[i]*/ for ( j = 1;j <= 4;j++ ) /*检查A[ ]所有的数能否被B[j]整除并将能 被整除的数从A[ ]中剔除*/ for ( i = 2;i <= 100;i++) if ( A[i]/B[j] * B[j] == A[i] ) A[i] = 0; /*输出A[ ]中所有没有被剔除的数*/ for ( i = 2; i <= 100;i++) /*若A[i]没有被剔除,则输出之*/ if ( A[i] != 0 ) printf ( “A[%d]=%d\n”, I,A[i] ); }
1
1. 程序流程图(Program Flow Chart)又称为程序框图。
2
程序流程图独立于任何 一种程序设计语言,比 较直观、清晰,易于学 习掌握。
缺点: 表示程序控制流程的箭 头可以不受任何约束, 随意转移控制。
3
2. N-ቤተ መጻሕፍቲ ባይዱ图
N-S图也称盒图(Box-Diagram),是由Nassi 和 Shneiderman提出的一种符合结构化程序设计原则的图形描述工 具。在N-S图中,相应规定了5种图形构件。
符号,来描述程序应执行的功能。
PDL就是这样一种伪码。它具有严格的关键字外语法, 用于定义控制结构和数据结构,同时它的表示实际操作 和条件的内语法又是灵活自由的,可使用自然语言的词
汇。下面举一个例子,来看PDL的使用。
9
PDL举例
PROCEDURE spellcheck 查找错拼的单词 BEGIN split document into single words 把整个文档分离成单词 lood up words in dictionary 在字典中查这些单词 display words which are not in dictionary 显示字典中查不到的单词 create a new dictionary 造一新字典 END spellcheck PDL特点: (1)有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特 征。 (2)内语法使用自然语言来描述处理特性。 (3)有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层 次结构)的数据结构。 (4)有子程序定义与调用机制,用以表达各种方式的接口说明
4
N-S图特点: (a) 图中每个矩形框都是明确定义了的功能域。 (b) 图中的控制转移不能任意规定。 (c) 从图中可以很容易地确定局部数据和全局数据的作用域。 (d) 图中很容易表现嵌套关系及模块的层次结构。
5
例:分别输入10个数,打印出其中的正数。
算法1:设T为计数器 ①输入第一个数—>X,1— >T; ②判断X>0 ? ; ③若X>0,则打印输出; ④判断T>10 ? ⑤若T>10,则表示10个数已 经处理完,结束。 否则,再输入下一个数— >X,且T+1——>T,然后转②继 续执行。
10
11
软件设计文档要求
概要设计说明书:规定软件结构
内容:以层次图表形式表示的软件总体结构、模块的
外部设计
详细设计说明书:描述程序的过程
内容:表示软件结构的图表、对逐个模块的程序描述
12
复审
复审:设计复审指对设计文档的复审。 目的在于及早发现设计中的缺陷和错误。 复审指导原则: 概要设计复审(PDR)和详细设计复审(DDR)应该分 开进行。 复审的内容: 概要设计复审(PDR): 重点在系统的总体结构、模块的划分、内外接口 详细设计复审(DDR): 重点在各个模块的具体设计上 软件设计时复审,可以找出软件中50%——65%的错误