软件工程导论复习6

合集下载

软件工程导论总复习

软件工程导论总复习

• 5.3、设计的启发规则
1、提高模块独立性 2、模块规模适中 – 3、深度、宽度、扇入、扇出适当 4、作用域在控制域内 5、降低接口的复杂程度 – 6、单出口单入口,避免内容耦合 – 7、模块功能可预测
• 5.4 描绘软件结构的图形工具
– 层次图和HIPO图
• 5.5 面向数据流的设计方法
– 变换流 – 事务流 – 变换分析和事务分析的步骤
– 状态 – 事件 – 符号
• 3.7 其他图形工具
– 层次方框图 – Warnier图 – IPO图
• 3.8 验证软件需求
– 方法、工具
练习题



什么是需求分析?需求分析阶段的基本任务是 什么? 答:所谓"需求分析",是指对要解决的问题进行 详细的分析,弄清楚问题的要求,包括需要输 入什么数据,要得到什么结果,最后应输出什 么。可以说,“需求分析”就是确定要计算机 “做什么”。 任务:确定软件项目的目标和范围。调查使用 者的要求,分析软件必须做什么,编写需求规 格说明书等它相关文档,并进行必要的需求审 查。除此之外,还包括需求变更控制,需求风 险控制,需求版本控制等对需求的管理工作


指出瀑布模型中下列任务的顺序:验收测 试,项目计划,单元测试,需求评审,成 本估计,概要设计,详细设计,系统测试, 设计评审,编码,需求规格说明书。 答:项目计划,成本估计,需求规格说明 书,需求评审,概要设计,详细设计,设 计评审,编码,单元测试,系统测试,验 收测试
第二章 可行性研究
• 2.1 任务
可行性研究是在(A)之前 • A、系统开发 B、测试 C、试运行 D、集成测试 可行性研究需要的时间长短取决于系统的 规模,一般来说,可行性研究的成本只是 预期总成本的(C)。 • A、1% B、20% C、8% D、50%

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

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

软件工程导论复习重点总结很全(第六版)软件工程导论复习重点总结很全(第六版)软件工程是一门研究如何以系统化的、可管理的和可维护的方式来构建高质量的软件的学科。

在软件工程导论中,我们学习了软件开发的基本概念、原理和方法。

本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。

1. 软件工程概述软件工程的定义、目标和原则;软件生命周期和过程模型;软件开发的重要性和挑战;软件工程中的质量保证和风险管理。

2. 软件需求工程软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。

3. 软件设计软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。

4. 软件测试与调试软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。

5. 软件项目管理软件项目管理的基本概念和流程;项目计划和进度管理;团队组织和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理与法规。

6. 软件开发过程软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发等常用模型的特点和比较;敏捷开发方法的原理和实践。

7. 软件工具与环境软件开发工具的选择和使用;集成开发环境、版本控制工具、测试工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。

8. 软件工程的前沿技术软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在软件开发中的应用;软件工程的创新与创业。

通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导论的核心知识和方法。

在今后的学习和实践中,我们应该注重理论与实际的结合,不断提高自己在软件开发和项目管理方面的能力。

只有不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创造更大的价值。

总结:软件工程导论是软件工程领域中的重要基础课程,通过对软件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、原则和方法。

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

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

第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 软件工程措施学软件工程包括技术和管理两方面旳内容。

张海藩《软件工程导论》(第6版)笔记和课后习题详解

张海藩《软件工程导论》(第6版)笔记和课后习题详解

9.2课后习题详 解
10.1复习笔记
10.2课后习题 详解
11.1复习笔记
11.2课后习题 详解
12.1复习笔记
12.2课后习题 详解
13.1复习笔记
13.2课后习题 详解
作者介绍
同名作者介绍
读书笔记
读书笔记
这是《张海藩《软件工程导论》(第6版)笔记和课后习题详解》的读书笔记模板,可以替换为自己的心得。
目录分析
1.1复习笔记
1.2课后习题详 解
2.1复习笔记
2.2课后习题详 解
3.1复习笔记
3.2课后习题详 解
4.1复习笔记
4.2课后习题详 解
5.1复习笔记
5.2课后习题详 解
6.1复习笔记
6.2课后习题详 解
7.1复习笔记
7.2课后习题详 解
8.1复习笔记
8.ห้องสมุดไป่ตู้课后习题详 解
9.1复习笔记
张海藩《软件工程导论》(第6 版)笔记和课后习题详解
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
本书关键字分析思维导图
导论
知识点
软件
习题
概述
答案
可行性
第版
教材
笔记 复习
研究
工程
习题
需求
笔记
面向对象
分析
技术
内容摘要
内容摘要
作为该教材的辅导书,本书具有以下几个方面的特点:1.整理名校笔记,浓缩内容精华。在参考了国内外名 校名师讲授张海藩《软件工程导论》的课堂笔记基础上,本书每章的复习笔记部分对该章的重难点进行了整理, 同时对重要知识点进行点拨,因此,本书的内容几乎浓缩了配套教材的知识精华。2.解析课后习题,提供详尽答 案。本书参考大量软件工程导论相关资料对该教材的重难点课(章)后习题进行了详细的分析和解答,并对相关 重要知识点进行了延伸和归纳。要深深牢记:考研不同一般考试,概念题(名词解释)要当作简答题来回答,简 答题要当作论述题来解答,而论述题的答案要像是论文,多答不扣分。有的论述题的答案简直就是一份优秀的论 文(其实很多考研真题就是选自一篇专题论文),完全需要当作论文来回答!

软件工程导论(第6版)知识点总结、复习课-图文

软件工程导论(第6版)知识点总结、复习课-图文

软件工程导论(第6版)知识点总结、复习课-图文复习课--------酷爱YC第一章1、什么是软件危机,什么是软件工程软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

它包括两方面:(1如何开发软件,以满足对软件日益增长的需求;(2如何维护数量不断膨胀的已有软件。

软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。

2、完整的软件配置由哪些内容组成软件配置主要包括程序,文档和数据等成分。

3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作分别是什么,重要性如何开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

(1 总体设计(概要设计,回答“怎样实现目标系统”。

建立系统的总体结构,划分子系统;确定系统由哪些模块组成,各子系统间、各模块间的关系(包括定义各子系统接口界面和各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划。

成果:概要设计说明书、数据库或数据结构说明书、系统的组装(集成测试计划等文档。

(2详细设计任务就是把解法具体化,也就是回答:“应该怎样具体地实现这个系统呢?”,设计每个程序模块的内部细节,包括数据结构、算法以及各程序模块间的接口信息,并设计模块的单元测试计划。

成果:详细设计规格说明和单元测试计划等详细设计文档。

以上(1、(2又合称为软件设计。

(3编码和单元测试这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。

根据详细设计规格说明,选用某种程序设计语言把详细设计的结果转化为机器可运行的源程序模块;运行和调试每一个程序模块;每编写出一个程序模块的源程序,调试通过后,即对该模块进行单元测试。

软件工程导论复习题及答案详解

软件工程导论复习题及答案详解

第一章一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与________。

2.程序设计时代的生产方式是________。

3.软件工程涉及到几个学科,它是一门_____学科。

4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能________。

5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是________模型。

6.喷泉模型是一种以用户需求为动力,以_______为驱动的模型。

7.结构化方法是一种面向数据流的开发方法。

由结构化分析、_______、结构化程序设计构成。

8.软件工程研究的主要内容是软件开发管理和_______两个方面。

9.软件工具是支持软件开发人员的开发和维护活动而使用的________。

10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种________,使用相应的工具来进行。

三、选择题1.软件是一种( )产品。

A.物质B.逻辑C.有形D.消耗2.软件产品的开发主要是( )。

A.复制B.再生产C.拷贝D.研制3.个体手工劳动生产方式的时代是( )。

A.程序设计B.软件生产自动化C.程序系统D.软件工程4.与计算机科学的理论研究不同,软件工程是一门( )学科。

A.理论性B.原理性C.工程性D.心理性5.软件重用的单位是( )。

A.软件模块B.性能C.系统D.功能6.软件开发费用只占整个软件系统费用的( )。

A.1/2B.1/3C.1/4D.2/37.软件开发中大约要付出( )%的工作量进行测试和排错。

A.20B.30C.40D.508.准确地解决“软件系统必须做什么”是( )阶段的任务。

A.可行性研究B.需求分析C.详细设计D.编码9.软件生存周期中最长的是( )阶段。

A.需求分析B.概要设计C.测试D.维护四、简答题1.软件产品的特性是什么?2.软件生产有几个阶段?各有何特征?3.什么是软件危机?产生的原因是什么?4.软件工程的性质、目标和内容是什么?5.软件工程面临的问题是什么?6.软件工程过程有哪些过程?7.软件生存周期有哪几个阶段?8.软件生存周期模型有哪些主要模型?9.有哪些主要软件开发方法?参考答案二填空题1.软件 2.个体手工劳动3.综合性交叉 4.相同5.瀑布 6.对象7.结构化设计8.软件开发技术9.软件10.开发方法三、选择题1.B 2.D 3.A 4.C5.A 6.B 7.C 8.B 9.D第二章一、名称解释1.可行性研究2.技术可行性3.经济可行性4.社会可行性5.货币时间价值6.投资回收期7.纯收入8.系统流程图二、填空题1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定________。

软件工程导论第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

软件工程导论 复习资料

软件工程导论 复习资料

名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

3.软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。

4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。

或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。

5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。

6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。

7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。

概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。

简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④预防性维护。

软件工程导论复习

软件工程导论复习

软件工程导论复习一、概念:1.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.软件工程:是指导软件开发与维护的工程性学科,采用工程的概念、原理、技术和方法来开发与维护软件。

3.软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果可以清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性4.软件生命周期:从软件定义开始到软件被废弃所经历的整个时期,它包括软件定义、软件开发和运行维护3个时期,每个时期又进一步划分成若干个阶段。

5.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

6.瀑布模型的特点:(1)阶段间具有顺序性和依赖性(2)推迟实现的观点(典型特点)(3)质量保证的观点7.可行性研究的任务目的:用最小的代价和尽可能短的时间判断问题是否值得去解8.系统流程图:用来描述物理系统的工具。

9.数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。

10.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。

11.数据模型中包含3种互相关联的信息:(1)数据对象(2)数据对象的属性(3)数据对象彼此间相互连接的关系12.信息隐藏原理:应这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。

13.数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。

14.控制耦合:如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),则这种耦合称为控制耦合。

15.黑盒测试法:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,黑盒测试又称为功能测试。

软件工程导论复习题含答案

软件工程导论复习题含答案

软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。

A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2. 软件是一种( B )性工业产品。

A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。

A. 用户B. 用户和分析设计人员之间C. 开发人员内部D. 使用和维护人员间4. 软件的主要结构和功能是在( A )阶段决定的。

A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。

A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。

A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。

A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。

A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。

①软件需要增长难以满足。

②软件开发成本提高。

③软件开发进度难以控制。

④软件质量不易保证。

A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。

A. 程序设计方法学的影响B. 其他工程科学影响C. 软件危机的出现D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。

软件工程导论复习材料

软件工程导论复习材料

软件工程导论复习材料第一篇:软件工程导论复习材料1.软件工程基本概念1.()因素促使计算机系统越来越复杂。

A.计算机内存和存储容量上的巨大增长B.外部输入/输出选项的更加多样性C.计算机体系结构方面的深刻变化D.以上所有选项2.下面的()不再是现代软件工程师关注的问题。

A.为什么不能在产品发布前去除软件错误?B.为什么软件需要很长时间才能完成?C.为什么开发一个软件的成本这么高?D.为什么计算机硬件的成本这么高?3.软件会逐渐退化而不会磨损,其原因在于()。

A.软件备件很难订购B.软件错误通常发生在使用之后C.通常暴露在恶劣的环境下D.不断的变更使组件接口之间引起错误软件4.大多数软件仍然是定制开发的,其原因在于()。

A.软件组件重用是十分普遍的B.可重用的组件太昂贵而无法使用C.软件在不使用其他组件的情况下很容易构造出来D.商业组件在很多应用领域中可以得到5.下面的()说法是正确的。

A.软件危机在20世纪70年代末期全面爆发B.当前先进的软件工程方法已经解决了软件危机的问题C.软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D.软件危机是指在软件产品中存在一系列的质量问题1.瀑布模型本质上是一种()。

A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型 2.()是用户和设计交换最频繁的方法。

A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.在软件开发模型中,提出最早、应用最广泛的模型是()A.瀑布模型B.喷泉模型C.增量模型D.螺旋模型1.软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。

()1.什么是软件危机?其主要表现有那些?1.有人认为 软件工程过于耗费时间,并且妨碍开发人员的编程效率。

你是否认同这种观点?请阐述理由。

2.需求分析需求规格说明描述了()。

A.计算机系统的功能、性能及其约束B.每个指定系统的实现C.软件体系结构的元素D.系统仿真所需要的时间7.软件可行性研究实质上是要进行一次()需求分析、设计过程。

软件工程导论期末复习重点

软件工程导论期末复习重点

软件工程导论期末复习重点选择、判断略一、名词解释1、软件危机 2 、软件工程 3 、数据字典 4 、模块化 5 、黑盒测试6、软件维护7 、软件过程8 、快速原型9 、白盒测试二、简答题1、可行性研究目的和任务?2、可行性研究包括哪几方面的内容?3、简述需求分析的描述工具和基本任务?4、什么是模块化?模块设计的准则?5、详细设计阶段的根本目标和任务?6、比较面向数据流和面向数据结构两类设计方法的异同?7、测试与调试的主要区别?8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。

9、比较层次方框图与结构图的异同?10、结构化程序设计的基本原则?11、提高软件编码效率的3 条原则?、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

2、软件工程答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

3、数据字典答:数据字典是描述数据流图中数据的信息的集合。

它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。

4、模块化答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

5、黑盒测试答:黑盒测试也称为功能测试, 它着眼于程序的外部特征, 而不考虑程序的内部逻辑结构。

测试者把被测程序看成一个黑盒, 不用关心程序的内部结构。

黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

软件工程导论 复习整理

软件工程导论 复习整理

1.软件危机的概念2.产生软件危机的原因(了解)3.消除软件危机的途径4.软件工程的概念5.软件工程的本质特性(7个)6.软件工程的基本原理(7个)7.传统方法学和面向对象的比较(各自的优缺点)8.软件生命周期的8个阶段以及各阶段的基本任务9.软件过程中使用的5个模型以及各自的特点瀑布模型:1)瀑布模型具有顺序性和依赖性。

2)推迟实现的观点:把逻辑设计与物理设计清楚地划分开,尽可能推迟物理模型的实现。

3)质量保证的观点:每一步都循序渐进,及早消除隐患,从而保证软件质量。

缺点:只有做出精确的需求分析,才能取得预期的结果。

由于各种客观、主观的原因,需求分析往往不很精确,常常给日后的开发带来隐患。

快速原型模型:1)开发人员和用户在“原型”上达成一致。

2)缩短开发周期,加快工程进度。

3)降低成本。

缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。

这往往给工程继续开展带来不利因素。

增量模型:1)增量模型是一种非整体开发的模型。

2)该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。

缺点:要求软件具有开放的结构是这种模型固有的困难,可能会导致设计差、效率低、维护难。

螺旋模型:1)风险驱动,有利于软件重用。

2)建立在风险分析的基础上,绝对依赖人的素质。

3)开发中的每一层都很有弹性,并不是很明确的界限;每一层的目标和计划都是由小组本身来制定。

缺点:很难让用户确信这种演化方法的结果是可以控制的。

喷泉模型:1)充分体现了面向对象软件开发过程迭代和平滑过渡的特性。

2)各个阶段没有明显的界限,开发人员可以同步进行开发。

3)适应于面向对象的软件开发过程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。

此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

10.Rational统一过程(简称RUP,了解)11.敏捷过程的宣言(4个)12.极限编程&微软过程(了解)第2章1.可行性研究的任务(4个)2.系统流程图(了解)3.数据流图&数据字典(会画)4.单元练习题51.需求分析的目的2.获取需求的方法3.需求分析的图形工具(5个,重点掌握前2个)第5章1.总体设计的目的和原理原理:模块化;抽象;逐步求精;信息隐藏和局部化;模块独立2.耦合&内聚(从强到弱的顺序,各7个)耦合:1)内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。

软件工程导论 (第6版) 学习辅导

软件工程导论 (第6版) 学习辅导

软件工程导论 (第6版) 学习辅导软件工程导论是软件工程领域的入门级基础课程,旨在让学生了解和掌握软件工程的基本概念、原则、方法和技术。

本文将从软件工程的定义、软件工程的活动、软件工程的特点及优势等几个方面介绍软件工程导论的学习辅导。

一、软件工程的定义软件工程是指将“工程化”的方式应用于软件开发的过程中,通过系统的、逐步精化的方式进行软件开发、测试、维护和管理,以提高软件开发的效率、质量和可靠性。

软件工程涉及到多个方面,包括系统需求分析、软件设计、编码规范、软件测试、软件维护等,要求软件开发者在整个软件开发的过程中按照规范进行开发,以确保最终的软件质量和用户需求的满足度。

二、软件工程的活动软件工程的活动主要包括以下几个方面:1. 需求分析:对用户需求进行分析、整理和规划。

2. 软件设计:根据需求分析的结果,设计出软件的总体框架、架构等设计方案。

3. 编码:按照软件设计的方案进行编码。

4. 测试:对软件进行各个方面的测试,包括功能测试、性能测试、兼容性测试等。

5. 维护:对软件进行正常运行的维护以及对软件的更新和修改等。

以上活动是整个软件工程过程的主要流程,开发者需要严格按照这些步骤进行开发,在每个阶段都要进行充分的沟通和协作,确保最终的开发结果是按照用户需求和软件工程规范进行开发的。

三、软件工程的特点软件工程作为一个独立的领域存在,具有以下几个特点:1. 复杂性:软件工程涉及到多个方面,包括用户需求、软件设计、编码、测试等各个方面,要求开发者有很高的综合素质和软件开发技能。

2. 长期性:软件工程的开发过程需要一定的时间,并且需要经历多个阶段。

3. 抽象性:软件工程不同于其他工程,它是基于描述和概念建立的。

4. 可定量性:软件工程需要对开发过程进行度量,以评估开发效率和开发成果的质量等。

四、软件工程的优势软件工程的优势主要体现在以下几个方面:1. 提高软件的质量:软件工程通过规范化的开发流程和方法使得软件的开发过程更加严密和规范化,从而提高了软件的开发质量。

软件工程导论(第6版)期末考试复习题

软件工程导论(第6版)期末考试复习题

一、填空题1.可行性研究从技术可行性、经济可行性、操作可行性研究2.需求分析应该建立数据模型,功能模型和行为模型3.验证软件需求正确性:一致性、完整性、现实性、有效性4.在面向数据流的软件设计方法中,一般将信息流分为变换流和事务流5.黑盒测试也称功能测试,白盒测试也称结构测试。

把测试数据和预期的输出结果称为测试用例6.面向对象建模:对象模型,功能模型,动态模型7.一幅用例图包含参与者,用例。

椭圆代表用例,线条人代表参与者。

UML用例之间主要有扩展和使用两种关系二、选择题1.软件生命周由软件定义(问题定义,可行性研究和需求分析)、软件开发(总体设计,详细设计,编码和单元测试)和运行维护组成2.数据流图有4种基本符号:正方形(或立方体)表示数据的源点和终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。

数据流图的主要用途是作为分析和设计的工具。

一张数据流图中包含的处理应在7±5个3.为了确定软件结构,需要从现实角度把复杂的功能进一步分解4.最高程度的耦合是内容耦合,最低程度的耦合是数据耦合,最高程度的内聚是功能内聚。

设计时应该多注重高内聚低耦合,多用数据耦合5.软件工程三要素:方法,工具和过程6.系统的逻辑模型是由数据字典和数据流图构成7.结构化分析方法是一种面向数据流的需求分析方法。

8.大型软件的测试应该分阶段地进行,通常至少分为哪几个阶段;至少分为单元测试、集成测试和验收测试3个基本阶段9.在软件生命周期法中,用户的参与主要在软件定义期10.软件结构设计包括以下几方面的内容:(1)确定构造子hah 系统的模块元素。

(2)定义每个模块的功能。

(3)定义模块接口,设计接口的数据结构。

(4)确定模块之间的调用与返回关系。

(5)评估软件结构质量,进行结构优化11.在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

《软件工程导论》第六版期末复习总结

《软件工程导论》第六版期末复习总结

《软件工程导论》第六版期末复习总结————————————————————————————————作者:————————————————————————————————日期:软件工程一、名词解释与问答1、SA——结构化分析方法2、画数据流图应注意什么事项?(1)数据流名称只能是名词或是名词短语;(2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来源与加工的结果;(3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类;父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致;(4)注意数据流图的易理解性;3、什么是软件生存周期?它有那几个活动?一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

箭头,表示数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成;圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工;双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中;什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分) 简述编码风格的重要性.答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量.简述软件测试的任务、目的与类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?
软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成
①瀑布模型
定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
状态转换图描述的模型:用来建立系统的行为模型。
4、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?
建模的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。
(1)、数据模型,用实体-联系图描述;
(2)、功能模型,用数据流图描述;
(3)、行为模型,用状态转换图描述。
第1章 软件工程概述
1、什么是软件工程?为什么会出现软件工程?
软件工程是:① 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;② 研究①中提到的途径。
软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科--计算机软件工程学(通常简称为软件工程)。
开口矩形(或两条平行横线) 代表数据存储;
箭头线 表示数据流,即特定数据的流动方向。
(3)数据字典的定义:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
属性----椭圆形或圆角矩形。
E-R图描述的模型:用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域的理解
(2)状态转换图的定义:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态转换图的基本成份和使用的符号:基本成分是状态、事件、状态转换。
(6)约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。
(7)逆向需求:逆向需求说明软件系统不应该做什么。
(8)将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
快速原型模型的主要优点是:A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求;
B.软件产品的开发过程基本上是线性顺序过程。
③增量模型
定义:增量模型也称为渐增模型
增量模型的主要优点:A.能在较短时间内向用户提交可完成部分工作的产品 ;
D.软件维护与软件开发没有本质区别 。
⑤喷泉模型
定义:迭代是软件开发过程中普遍存在的一种内在属性。在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。
喷泉模型,是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
(3)可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。可用性与可靠性密切相关,它量化了用户可以使用系统的程度。
(4)出错处理需求:这类需求说明系统对环境错误应该怎样响应。
(5)接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。
5、在"快速原型"模型中软件原型的作用主要是什么?在哪类生命周期模型中引入了风险分析?哪类生命周期模型是典型的传统软件工程生命周期模型?哪类生命周期模型是典型的面向对象软件工程生命周期模型?
在"快速原型"模型中软件原型的作用主要是:软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带来的冲击 。
④螺旋模型
定义:螺旋模型的基本思想是, 使用原型及其他方法尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型 。
螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目 。
3、追加的主要描述工具的概念和使用:
E-R图:是什么,成份和基本符号,描述什么模型;
状态转换图:是什么,描述什么模型
(1)E-R图的定义:即实体--联系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模型的图形工具。
E-R图的基本成份和使用的符号 :实体(即数据对象)----矩形框,关系----菱形框,
使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验 。
螺旋模型主要有下述优点 :A.有利于已有软件的重用 ;
B.有助于把软件质量作为软件开发的一个重要目标 ;
C.减少了过多测试或测试不足所带来的风险 ;
(3)耦合和内聚两者关系:耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。其中内聚更重要。内聚与耦合密切相关。同其它模块强耦合的模块意味着它自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。所以设计的目标应该是力争高内聚、低耦合。
4、软件总体结构描述工具的概念和使用:软件层次图、软件结构(SC)图、HIPO图:是什么,基本符号和表示的结构,画法。
瀑布模型的主要缺点 :在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求 。
②快速原型模型
定义:所谓"快速原型", 是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。 原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
第3章 需求分析
1、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?
1、需求分析的任务:(1)确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求(2)分析系统的数据要求:(3)导出系统的逻辑模型(4)修正系统开发计划;
(2)数据流图的定义:它是一种图形化技术,它描述信息和数据从输入移动到输出过程中所经历的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
数据流图的基本符号:正方形(或立方体) 表示数据的源点或终点;
圆角矩形(或圆形) 代表变换数据的处理;
耦合使用原则:尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合,最终降低模块间接口的复杂性。
(2)内聚定义:它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
内聚分类:
内聚使用原则:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。
数据字典的内容:数据流、数据流分量、数据存储、处理
定义数据的方法:用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低的成分组合来定义。
3、 数据字典和数据流图的关系。
数据流图和数据字典共同构成系统的逻辑模型。没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
(1)软件层次图的定义:是用来描绘软件层次结构的图形工具。一个矩形框代表一个模块,方框间的连线表示模块间的调用关系。
软件层次图的示例:
(2)HIPO图的定义:即层次图 + 输入/处理/输出图,由一张H图和一组IPO图组成。通常将HIPO图作为软件结构的描绘,列入设计文档。
2、需求分析得到的结果:是通过需求分析得到的除了分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。
2、软件需求通常包括哪些方面?各类需求一般包含内容有哪些?
(1)功能需求 :这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。
(2)性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。
数据字典:是什么,内容、定义数据的方法。
(1)系统流程图的定义:是概括地描绘物理系统的传统工具。它用图形符号以黑盒子形式描绘组成系统的每个部件。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。
系统流程图的基本符号:
螺旋模型中引入风险分析
瀑布模型是典型的传统软件工程生命周期模型
喷泉模型是典型的面向对象软件工程
第2章 可行性研究
1、可行性研究包括哪几方面(每方面解决什么问题),研究得到的文档和结论是什么?
技术可靠性:使用现有的技术能否实现这个系统吗?
经济可行性:这个系统的经济效益能否超过它的开发成本?
3、模块独立性度量(描述)的两个指标:内聚、耦合;什么是内聚,什么是耦合;耦合和内聚的具体分类及使用原则;在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?强度从弱到强如何排列?耦合和内聚两者关系?
(1)耦合定义:它是对一个软件结构内不同模块之间互连程度的度量;
耦合分类:
操作可行性:系统的操作方式在这个用户组织内是否行得通?
研究的结果:是一份可行性研究的各个步骤的工作结果的文档,它包含了工程是否能继续进行下去和分析员的推荐方案;
2、主要描述工具的概念和使用:
相关文档
最新文档