软件工程导论复习资料全
软件工程导论总复习

• 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.将待开创的软件细化,分别估算每一个子义务所须要的开创工作量,然后将它们加起来,9.将获得软件的总开创量。
这种成本估算方法称为_自底向上_______。
10.假如一个模块被n 个模块调用,个中直截了当的上级模块的个数是m 个(m<=n )那么该模块的扇入数是____N_______ 个。
11.构造化设计以__数据流图_________ 为差不多,按必定的步调映射成软件构造。
12.软件的风险分析可包含风险辨认、风险推测和风险驾驭(或风险治理)等3项活动。
13.软件著作权挂号的3种重要类型:(1)著作权挂号;(2)著作权连续挂号;(3)权力转移立案挂号。
14.软件工程治理的重要内容有:项目经费治理,软件质量治理,项目进度治理和人员治理。
15.面向对象分析的目标是对客不雅世界的体系进行___建模_______________ 。
16.软件爱护工作的临盆性活动包含分析评判、修改设计和____编写法度榜样代码_______等。
17.为了使应用软件适应运算机情形的变更而___修改软件_______________ 的过程称为适应性爱护。
18.一个进行学生成就统计的模块其功能是先对学生的成就进行累加,然后求平均值,则该模块的内聚性是__________次序内聚________ 。
软件工程导论复习

第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。
2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。
软件工程的基本目标是:优质、高产。
3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。
4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。
瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
软件工程导论复习整理(最新)

第一章1..软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.软件与硬件的区别:软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
3.软件:程序、数据及相关文档的完整集合。
4.软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到最好的技术方法结合起来,以经济地开发出高质量的软件并有校地维护它。
5.软件工程方法学三要素:方法、工具和过程。
6.传统方法学也称为生命周期方法学或结构化范型。
它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
7.面向对象方法学把数据和行为看成同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
8.软件生命周期划分为三个时期:1软件定义(问题定义、可行性研究、需求分析),2软件开发(总体设计、详细设计、编码和单元测试、综合测试),3运行维护(软件维护)。
9.4类软件维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。
10.“瀑布模型”的缺点:它是由文档驱动的,仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品;瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的产品不能真正的满足用户的需要。
11.快速原型模型的优点:原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求;开发人员通过建立原型系统已经学到了很多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
第二章1.可行性研究的三个方面:技术可行性:使用现有的技术能实现这个系统经济可行性:这个系统的经济效益能超过它的开发成本操作可行性:系统的操作方式在这个用户组织内行得通2.数据流图的4个基本符号及画法P413.数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
软件工程导论 复习资料

软件工程导论复习资料软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。
本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。
1. 软件工程概述1.1 软件工程定义软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。
软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。
了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。
1.3 软件工程方法学软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。
通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。
2. 需求工程2.1 需求定义和分类需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。
了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。
2.2 需求获取和分析需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。
在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。
2.3 需求规格说明书需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。
编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。
3. 软件设计3.1 软件设计基础软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。
掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。
(完整word版)软件工程导论期末复习题

第一章1、什么是软件工程?软件工程方法学包括哪三要素?答:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程方法学三要素:方法、工具、过程。
目前使用得最广泛的软件工程方法学:传统方法学、面向对象方法学。
2、传统方法学与面向对象方法学定义传统方法学也称为生命周期方法学或结构化范型。
它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。
面向对象方法学:面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
面向对象方法学具有下述4个要点:(1)把对象作为融合了数据及在数据上的操作行为的软件构件。
(2)把所有对象都划分成类。
(3)按照父类(或称为基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。
(4)对象彼此间只能通过发送消息互相联系。
3、软件生命周期有哪些阶段?软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又进一步划分为若干个阶段。
软件定义时期分3阶段:问题定义、可行性研究、需求分析。
开发时期分4个阶段:总体设计、详细设计、编码和单元测试、综合测试。
其中前两个阶段称为系统设计,后两个称为系统实现。
维护时期的主要任务是使软件持久地满足用户的需要。
第二章1、为什么要进行可行性研究,要从哪几个方面研究?可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性研究至少应从3个方面研究:技术可行性、经济可行性、操作可行性。
必要时还应从法律、社会效益等更广泛的方面研究每种解法的可行性。
软件工程复习资料-完整版

一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
软件工程导论(整理)

一、软件危机与软件工程1、软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.(正常、不正常运行软件都具有这种问题)2、软件危机的原因1)软件本身特点造成;程序规模庞大;程序复杂性随着程序规模的增加而呈指数上升。
2)软件开发与维护的方法不正确。
主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;3、解决软件危机的途径:1、组织管理:软件开发不是某种个体劳动的神秘技巧,软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
2、方法:应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。
3、工具:应该开发和使用更好的软件工具。
在软件开发的每个阶段都有许多繁琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好.4、软件工程包括哪7条基本原理?1. 用分阶段的生命周期计划严格管理;2。
坚持进行阶段评审;3. 实行严格的产品控制;4. 采用现代程序设计技术;5. 结果能清楚地审查;6. 开发小组的人员应该少而精;7。
承认不断改进软件工程实践的必要性。
5、软件开发流程?1)、问题定义2)、可行性研究3)、需求分析4)、总体设计5)、详细设计6)、编码和单元测试7)、综合测试8)、软件维护6、软件开发模型瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、rational统一过程、敏捷过程与极限编程、微软过程二、可行性研究1.系统流程图系统流程图是概括地描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。
2.数据流图数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
软件工程导论复习

软件工程导论复习一、概念: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、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的严重问题。
2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
3、软件工程学包含3个要素:方法、工具、过程。
4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。
5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。
6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。
7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。
8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。
9、数据流图(DFD)是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中所经受的变化。
10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义的集合。
11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。
12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确的描述软件需求。
13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩形表示属性,用直线把实体和其属性连接。
15、验证软件需求的正确性:一致性、完整性、现实性、有效性。
16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”,总体设计又称为概要设或初步设计。
17、模块的独立程度可以有两个定性标量度量:内聚和耦合。
18、软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现可至今为止尚未发现的错误的测试。
19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运行。
软件工程导论复习材料

软件工程导论复习材料第一篇:软件工程导论复习材料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)内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。
软件工程导论复习资料

软件工程导论复习资料第一章软件工程导论一、软件工程是指导计算机软件开发和维护的一门工程学科二、件工程的七条基本原则:1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性三、软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
四、软件一程方法学:传统方法学、面向对象方法学五、软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成1软件定义主要任务:问题定义、可行性研究和需求分析2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备//①问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”②可行性研究~:对于上一个阶段所确定的问题有行得能的解决办法吗?③需求分析:确定目标系统必须具备哪些工能④总体设计:概括地说,应该怎样实现目标系统?⑤详细设计:应该怎样具体地实现这个系统呢?⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块⑦综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型第二章可行性研究一、可行性研究的任务分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度二、可行性(1) 技术可行性使用现有的技术能实现这个系统吗?(2) 经济可行性这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性系统的操作方式在这个用户组织内行得通吗?三、可行性研究过程1. 复查系统规模和目标、2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型、4. 进一步定义问题5. 导出和评价供选择的解法、6. 推荐行动方针7. 草拟开发计划、8. 书写文档提交审查四、系统流程图:是概括地描绘物理系统的传统工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
3. 软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。
4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。
或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。
5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。
6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。
7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。
简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?① 语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④ 预防性维护。
4.软件成分的重用有哪3个级别?:①代码重用②设计结果重用③分析结果重用5.设计任务管理子系统有哪7个任务?①确定事件驱动型任务②确定时钟驱动任务③确定优先任务④确定关键任务⑤确定协调任务⑥尽量减少任务数⑦确定资源需求6.类构件的重用包括哪3种方式?:①实例重用②继承重用③多态重用7.提高可重用性的7条准则是哪些?①提高方法的聚②减小方法的规模③保持方法的一致性④把策略与实现分开⑤全面覆盖⑥尽量不使用合局信息⑦利用继承机制8.提高可扩充性的4条准则是哪些?①封装实现策略②不要用一个方法遍历多条关联链③避免使用多分支语句④精心确定公有方法9.提高健壮性的4条准则是哪些?①预防用户的操作错误②检查参数的合法性③不要预先确定限制条件④先测试后优化10.列举PDL语言的优点与缺点有哪些?PDL语言的优点:①可以作为注释插在源程序中间;②可以使用普通的正文编辑程序或文字处理系统,很方便完成PDL的书写和编辑工作;③可以利用已有的自动处理程序自动由PDL生成程序源代码。
PDL语言的缺点:①不如图形工具直观。
②描述复杂的条件组合与动作之间的对应关系时,不如判定表和判定树时简单。
11. 如何改进软件设计、提高软件质量?(1)提高模块的独立性。
(2)模块规模应该适中。
(3)适当选择深度、宽度、扇出和扇入。
(4)模块的作用域应该在控制域之。
(5)力争降低模块接口的复杂程度。
(6)设计单入口单出口的模块。
(7)模块功能应该可以预测。
12. 以G.J.Myers的观点,简述对软件测试的目的。
软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。
(3)一个成功的测试是发现至今尚未发现的错误的测试。
13. 软件质量保证应做好哪几方面的工作?(1)采用技术手段和工具。
(2)组织正式技术评审(3)加强软件测试(4)推行软件工程规(标准)。
(5)对软件的变更进行控制(6)对软件质量进行度量。
14. 下列模块的聚类型是什么?再把它们按聚的大小由小到大排列。
(1)使用同一数据来源产生两种报告(2)求一元二次方程的根(3)计算最高成绩和平均成绩(4)系统初始化处理【1】通信聚,功能聚,逻辑聚,时间聚【2】(3)->(4)->(1)->(2)15. 什么是黑盒测试法?常用的黑盒测试方法有哪些?将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。
常见方法:等价类划分、边界值分析、因果图、错误推测。
16. 选择程序设计语言应考虑哪些因素?①项目的应用领域,是选择语言的关键因素。
②软件开发方法:选择语言有时依赖该因素。
③软件执行环境:对软件生产率、错误率和软件质量有影响。
④算法和数据结构的复杂性。
⑤软件开发人员的知识。
与开发人员的知识水平和心理因素有关,有时对语言选择有影响。
17. 什么是模块耦合性,有哪些类型?耦合性:也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
耦合性种类:数据耦合、标记耦合、控制耦合、公共耦合、容耦合18.软件维护有哪些容?:a、校正性维护b、适应性维护c、完善性维护d、预防性维护应用题:一、某校教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,可进行如下功能的处理:1.查询成绩:查询成绩以及从名次表中得到名次信息;2.学籍管理:根据学生总成绩排出名次信息;3.成绩处理:处理单科成绩并输入成绩表中。
就以上系统功能画出顶层和0层的DFD。
顶层DFD:0层DFD:二、选择排序的伪代码如下〖共计10分〗;Select_sort ( a[1],a[2],…,a[n] ){ for ( i=1;i<n;i++){ k=i;for ( j=i+1;j<=n;j++){if ( a[j]<a[k] )k=j;}if ( k!=i )exchange ( a[i],a[k] );}}请根据代码画出其PAD图。
请根据代码画出其程序流程图三、下面是一个程序流程图,试分别用N-S图和PAD表示之,并计算其McCabe复杂度。
对应的N-S图如下对应该的PAD图如下四、下面是一个程序流程图,试分别用N-S图和PAD表示之,并计算其McCabe复杂度。
对应的N-S图如下对应该的PAD图如下五、设下图给出的程序流程图代表一个非结构化的程序,试问:1.为什么说它是一个非结构化的? 2.设计一个等价的使用附加标志变量flag的结构化程序。
3.设计一个使用break(用于代替goto)和程序。
(1) 它是一个单入口,两出口的结构,所以是一个非结构化的程序。
(2) 等价的结构化程序:enum Boolean {false, true}Boolean flag = true;while (P && flag){do Gif (!Q) flag = false;}(3)等价的结构化程序:使用break程序while (P){do G;if (! Q)break;}六、高考录取统分子系统有如下功能:(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流图,并将其转换为软件结构图。
【数据流图】【软件结构】七、采用综合测试策略,对以下模块进行测试。
要求写出测试方法,列出所有的判定,并给出所选择的用例。
模块功能为:使用直接插入法将10 个整数按递增次序排列。
main( ) /* 使用直接插入法{int data[ ]={23,56,234,1,45,34,21,394,3,35};int i, j, temp;for(i=1;i<10;i++){ j=i-1; temp=data[i];while(data[j]>temp&&j>=0) /*大者后移{data[j+1]=data[j]; j--; }data[j+1]=temp; /* 插入正确位置}for(i=0;i<10;i++)printf(”%d”,data[i]);printf(”\n”);}参考答案:1.采用综合测试策略,先进行静态测试:人工查走。
未发现错误。
2.使用白盒法进行动态测试只考虑关键路径,判定情况有:循环:for(i=1;i<10;i++)while(data[j]>temp&&j>=0)3.选择一种覆盖标准,确定用例。
注意:所确定的用例应该包括两部分:输入数据(10个整数),预期的输出结果。
4.将实际输出与预期的输出结果进行比较,得出分析结论。
八、画出与下图所示的程序流程图对应的程序图,并试计算其巡回秩数V(G)。
参考答案:(1)程序图如右图所示:(2)计算其巡回秩数:V(G)=E –N +2=13 –10 +2=5九、在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。
在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时进行处理,同时立即打印病人的病情报告和更新病历。
试采用结构化分析方法建立需求分析模型(只画顶层)参考答案:十、综合论述题M公司由一群志趣相同的朋友创建于10年前,主要与科研院所合作进行开发实验型的新软件。
主要采用瀑布模型进行软件开发,并取得了一些成功。
最近你作为项目管理人员应聘加入M公司,根据你的经验认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由。
字数不超过300字。
尊敬的副总裁:我公司的软件产品以开发实验型的新软件为主,而开发这类产品的最大问题是需求难以确定,能否对需求进行准确说明,直接关系到软件后期的开发质量,甚至决定了软件产品的成败。
虽然我公司用瀑布模型进行软件开发取得了一些成功,但随着软件规模和复杂度的增加,结构化方法自身固有的缺点如线性开发,将充满回朔的软件开发过程硬性地割裂开,以致于无法确定需求等已经完全不能适应软件开发的需要。
我建议采用快速原型(RCP)法,它强调软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。
将维护和修改阶段的工作尽早进行,因此, RCP 法特别适宜开发实验型的新软件。
以上建议请副总裁考虑!十一、银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人、住址(或)、、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。