搜档网
当前位置:搜档网 › 2015--软件工程--期末重点复习资料

2015--软件工程--期末重点复习资料

2015--软件工程--期末重点复习资料
2015--软件工程--期末重点复习资料

软件工程重点

题型

填空12 *1分

名词解释 3 *4分

问答题 3 *8分

用例设计 1 *8分

建模 1 *44分

第一章软件和软件工程

1.软件的定义:

软件是:(1)指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求;(2)数据结构,使得程序可以合理利用信息;(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用。

2.软件工程的定义:

软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。

软件工程的三要素:方法、工具和过程。

软件工程层次图:

3.软件过程的定义:

软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。

第二章过程模型

4.通用过程的五种框架活动:沟通、策划、建模、构建和部署。

5惯用过程模型分为:瀑布模型,增量过程模型,演化过程模型,协同模型.

6两种常用的演化过程模型为原型开发和螺旋模型。

第四章指导实践的原则

7.软件工程实践的定义:

软件工程实践是软件计划和开发时需要考虑的方方面面,包括概念、原则、

方法和工具等。指导实践的原则成为软件工程实施的基础。

8.指导过程的原则:(1)敏捷(2)每一步都关注质量(3)做好适应的准备(4)建立一个有效的团队(5)建立沟通和协调机制(6)管理变更(7)评估风险(8)创造能给别人带来价值的工作产品。

9.指导实践的原则:(1)分治策略(分割和攻克)(2)理解抽象的使用(3)力求一致性(4)关注信息传送(5)构建能展示有效模块化的软件(6)寻找模式(7)在可能的时候,用大量不同的观点描述问题及其解决方法。(8)记住:有人将要对软件进行维护。

10.软件工程实践都有哪些原则?

核心原则:指导过程的原则和指导实践的原则。

指导每个框架活动的原则:沟通原则,策划原则,建模原则,构造原则,部署原则。

第八章设计概念

11.设计的概念:抽象,体系结构,模式,模块化(这里老师把每个小标题都念了,我也不知道具体应该怎么答)

12.模块化的重要性:模块化设计(以及由其产生的程序)使开发工作更易于规划;可以定义和交付软件增量;更容易实施变更;能够更有效地开展测试和调试;可以进行长期维护而没有严重的副作用。

13.XX的目标(老师讲的可能是设计的目标):信息隐蔽和功能独立。

14.功能独立的定义:

功能独立的概念是关注点分离、模块化、抽象和信息隐蔽概念的直接产物。通过开发具有“专一”功能和“避免”与其他模块过多交互的模块。每个模块只有一个简单的接口。

15.需求模型由什么构成:基于场景的元素、基于类的元素、面向流的元素、行为元素。第九章体系结构设计

16.体系结构风格的简单分类:

(1)以数据为中心的体系结构(2)数据流体系结构(3)调用和返回体系结构(4)面向对象体系结构(5)层次体系结构

第十一章用户界面设计

17.软件设计的黄金规则:(1)用户操纵控制(2)减少用户的记忆负担(3)保持界面一致。

第十四章质量概念

18质量的度量(哪些方法定义软件的质量参考iso的技术标准)

Garvin的质量维度:性能质量,特性质量,可靠性,符合性,耐久性,适用性,审美,感知。

ISO 9126质量因素:功能性、可靠性、易用性、效率、维护性、可移植性。

19、质量保证的措施:评审,测试

第十五章评审技术

20、什么是技术评审

技术评审是每个阶段(节点)都要进行评审,是发现错误和缺陷的主要措施

21、正式技术评审(FTR)的目标、FTR包括什么

正式技术评审的目标是(1)发现软件的任何一种表示形式中的功能、逻辑或实现上的错误(2)验证评审中的软件是否满足其需求(3)保证软件的表示符合预先指定的标准(4)获得以统一的方式开发的软件(5)使项目更易于管理。FTR包括走查和审查

22、软件质量保证的标准:IEEE,ISO以及其他标准化组织制定了一系列广泛的软件工程标准和相关文件。标准可能是软件工程组织自愿采用的,或者是客户或其他利益相关者责成采用的。软件质量保证的任务是要确保遵循所采用的标准,并保证所有的工作产品符合标准。

软件的测试

23、什么是软件测试:测试是在交付产品给最终用户之前,带着特定的目的运行程序的过程中发现错误。

24、测试的原则:(1)尽量不由程序设计者测试(2)注重测试用例的选择(3)充分注意测试中的群集现象.

25α测试和β测试的定义:(这里总结得不好,你自己总结吧)α测试是由有代表性的最终用户在开发者的场所进行。α测试在受控的环境下进行。

β测试在一个或多个最终用户场所进行。与α测试测试不同,开发者通常不在场,因此,β测试是在不为开发者控制的环境下软件的“现场”应用。

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程期末考试重点

软件工程期末考试重点 《软件工程》期末复习重点 第一章软件工程 1. 什么是软件工程。 A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。2. 软件工程的三要素:方法、工具和过程。 第二章软件过程 1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么 可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么 b.软件开发:具体设计和实现在前一个时期定义的软件。概要设计:怎样宏观地解决问题 详细设计:应如何具体地实现这个系统 编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。 c.运行维护:修正错误,使软件持久地满足用户需要。改正性维护:诊断和改正使用中的错误适应性维护:修改

以适应环境变化 完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备 2. 常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动 态变更。 A.瀑布模型 特点: 可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。 缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。 B.快速原型模型 特点:快速 软件产品开发基本上是线性顺序进行。降低了规格说明文档变化的可能性。减少了后续阶段错误的可能性。 c.增量模型 1 优点: 人员分配灵活,刚开始不用投入大量人力资源。

软件工程期中考试以及答案

1、瀑布模型下,采用结构化的方法,在它的生命周期各个阶段中,那个阶段出错对软件的 影响最大() A、概要设计阶段 B、维护阶段 C、测试排错阶段 D、需求分析阶段 2、UML是软件开发过程中的重要工具之一,它主要用于那种开发方法() A、基于数据流的结构化开发方法 B、基于需求动态定义的原型方法 C、基于对象的面向对象的方法 D、基于实体的信息建模方法 3、面向对象方法的主要特征除了封装,继承外还有() A、完整性 B、多态性 C、可移植性 D、可维护性 4、结构化设计方法在软件开发中用于() A、概要设计 B、详细设计 C、可行性分析 D、测试 5、软件质量保证应该在()阶段开始。 A、编码 B、需求分析 C、测试 D、设计 6、数据字典是对数据定义的集合,它所定义的数据包含在() A、数据流图 B、流程图 C、软件结构图 D、顺序图 7、结构化程序的三种基本控制结构是() A、过程、函数、模块 B、调用、返回、转移 C、顺序、选择、循环 D、命令、语句、函数 8、软件详细设计的任务是确定每个模块的() A、软件体系结构 B、功能 C、外部接口 D、算法和数据结构 9、在结构化设计中能够衔接概要设计和详细设计的工具是() A、类图 B、流程图 C、DFD图 D、SC图 10、顺序图反映对象之间发送信息的时间顺序,它与()是同构的。 A、类图 B、状态图 C、协助图 D、活动图 11、下面说法错误的是() A、该图是对象图 B、borrowbook()是方法 C、name是属 D、该图是类图

12、下图中描述“聚合关系”的是() A 、 B 、 C 、 D 、 13、下面的顺序图问号所代表的是() 级专业: 题 ) … … 封 … … … … … … … … … … … … … … … 线 … … … … … … … … … … … … … …

软件工程复习资料2012秋(1)

软件工程复习题一 一、选择题,请从四个可选项中选择正确答案。 1.以下哪一项不是软件危机的表现形式() A.成本高 B.生产率低 C.技术发展快 D.质量得不到保证 2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。() A.演化模型 B.喷泉模型 C.原型模型 D.螺旋模型 3.可行性研究的目的不包括() A.分析开发系统的必要性 B.确定系统建模的方案 C.分析系统风险 D.确定是否值得开发系统 4.可行性分析研究的费用大约是项目总经费的()。 A.2% B.8% C.20% D.50% 5.在E-R 模型中,包含以下基本成分()。 A.数据、对象、实体 B.控制、联系、对象 C.实体、联系、属性 D.实体、属性、联系 6.软件需求分析产生一个重要文档是()。 A.软件维护说明书 B.需求规格说明书 C.可行性报告 D.初步用户手册 7.内聚程度较低的是()。 A.通信内聚 B.过程内聚 C.顺序内聚 D.时间内聚 8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A.把软件划分成模块 B确定模块之间的调用关系 C.确定各个模块的功能 D.设计每个模块的伪代码 9.UML 语言支持的建模方式不包括有()。 A.静态建模 B.动态建模 C.模块化建模 D.功能建模 10.以下哪一项不是面向对象的特征。() A.多态性 B.继承性 C.封装性 D.过程调用 11.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了() A.软件危机 B.软件工程 C.程序设计革命 D.结构化程序设计

12.瀑布模型的关键不足在于() A.过于简单 B.不能适应需求的动态变更 C.过于灵活 D.各个阶段需要进行评审 13.可行性研究的四大要素是()。 A.经济、技术、法律和社会环境 B.经济、技术、开发组织能力和领导者水平 C.经济、技术、计算机硬件环境和网络带宽 D.经济、技术、软件开发工具和人员的稳定性 14.经济可行性研究的主要内容包括() A.开发过程 B.开发工具 C.风险分析 D. 效益分析 15.在需求分析过程中,分析员要从用户那里解决的最重要的问题是()。 A.要求软件做什么 B.要给软件提供哪些信息 C.要求软件工作效率如何 D.要求软件具有什么样的结构 16.DFD中的每个加工至少需要() A.一个输入流 B.一个输出流 C.一个输入或输出流 D.一个输入流和一个输出流 17.PDL是描述处理过程()。 A.做什么 B.为什么做 C.怎么做 D.对谁做 18.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()A.数据耦合 B.公共耦合 C.标记耦合 D.内容耦合 19.按照模块独立性,耦合程度由弱至强正确的顺序是()。 A.数据耦合、控制耦合、外部耦合、内容耦合 B.控制耦合、数据耦合、内容耦合、外部耦合 C.内容耦合、外部耦合、控制耦合、数据耦合 D.外部耦合、内容耦合、数据耦合、控制耦合 20.UML 中,包图是一种()。 A.集合 B.数据结构 C.分组机制 D.对系统的动态描述

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件工程复习资料

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.软件备件很难订购 B.不断的变更使组件接口之间引起错误 C.软件错误在经常使用之后会逐渐增加 D.软件通常暴露在恶劣的环境下 7.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。 B.软件质量是由产品的功能、性能、易用性等外在特性决定的。 C.运行正确的软件就是高质量的软件。 D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。 11、可行性研究主要包括哪几项? A.技术可行性、经济可行性和操作可行性 B.技术可行性、经济可行性和道德可行性 C.技术可行性、法律可行性和操作可行性 D.技术可行性、操作可行性和法律可行性 12、成本/效益分析的目的是帮助()正确地作出是否投资于这项开发工程的决定。 A.系统分析员 B.客户组织的负责人 C.项目经理 D.软件开发人员 13、在进行成本/效益分析的时候,需要考虑() A.开发成本 B.运行费用 C.系统带来的经济效益 D.系统使用寿命 14、数据流图和数据字典共同定义了新系统的逻辑模型。 A.错 B.正确 15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。 A. 正确 B.错误 16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。 A.正确 B.错误 17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是 A.功能模型 B.数据模型 C.行为模型 D.动态模型 18、下列叙述中,()不属于数据字典的作用。 A.为用户与开发人员之间统一认识 B.为需求分析阶段定义各类条目

软件工程期末考试题含答案

一、选择题 1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。 ( C ), A .详细计划 B .可行性分析 C .运行阶段 D.测试与排 错 2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A ) A .需求分析阶段 B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段, 3.软件工程的出现主要是由于(C ) , A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展, 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C) A.硬件环境 B.软件开发的环境 C.软件开发工具和软件开发的环境 D.开发人员的素质 5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B) A.相互排斥B相互补充C独立使用 D.交替使用 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C) A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法 C.基于对象的面向对象的方法 D.基于数据的数据流开发方法 7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B) A.结构化方法B原型化方法C面向对象的方法 D.控制流方法 8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B) A.控制流 B.数据流 C.程序流 D.指令流 9.软件开发的结构化生命周期方法将软件生命周期划分成(A) A.计划阶段.开发阶段.运行阶段 B.计划阶段.编程阶段.测试阶段 C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计 10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C) A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段

软件工程方法与实践 期末考试复习资料(江理)

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。 软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点 CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。它的的核心有四个要点:交流、简单、反馈、勇气 软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。 软件需求分类:功能需求、非功能需求和领域需求 结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC) 面向对象的一些概念:类是具有相同或相似性质的对象的抽象。实例是类的具体化。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。消息是指对象间相互联系和相互作用的方式 数据流类型:变换型数据流、事务型数据流、混合型数据流 Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。

软件工程(清华钱乐秋版)期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面 等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细设 计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软 件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。 然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下

大学软件工程复习资料

五、简答题 1.层次图和层次方框图之间区别何在?P92 ①层次图描绘软件的层次结构,层次方框图描绘数据结构 ②层次图中方框代表一个功能模块,层次方框图方框代表数据的子集或数据元素 ③层次图中连线表示模块间调用关系,层次方框图连线表示组成关系。 2.2、软件设计过程中为什么要采用模块化设计方法?P85 参考答案: (1)、采用模块化原理可以使软件结构清晰,不仅容易设计,也容易阅读和理解; (2)、模块化使软件容易测试和调试,因而有助于提高软件的可靠性; (3)、模块化可以提高软件的可修改性; (4)、模块化有助于开发过程的组织和管理; 3.用某种软件复杂性度量算法来度量不同类型的程序时。得出的度量值是否真正反映了它们的复杂性? 如果对同类型的程序进行度量,其结果是否就比较有价值? 参考答案: 开发规模相同,但复杂性不同的软件,花费的成本和时间会有很大的差异。因此到目前为止,还没有一个软件复杂性度量的方法能够全面、系统地度量任一软件的复杂性,某一种度量方法只偏重于某一方面。所以,用某种软件复杂性来度量不同类型的程序,所得到的度量值不一定真正反映它们的复杂性。但对同一类里的程序,按某种视点来度量它们的复杂性,其结果还是比较有价值的。 4.数据流图的作用是什么?它有哪些基本成分? 参考答案: 数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度.以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制.也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。 基本成分有:数据原点/终点数据处理数据流数据存储 5.常用的估算软件规模的方法有哪些?试比较这些方法的优缺点。 代码行技术的优点,容易计算,缺点是太片面,因为源程序只是软件配置的很少一部分,不同语言实现同一个软件所需的代码行数不同; 功能点数的特点:与编程语言无关,但是判断信息域复杂性级别和技术因素的影响程度时,存在着相当大的主观因素。 6.CMM的全称是什么?其基本思想是什么?为什么要对CMM进行分级?P321 其基本思想是:软件开发和维护过程中的问题是由于管理软件过程的方法不当引起的,即使是应用新的软件技术,也不会自动提高软件的生产率和质量。能力成熟度模型有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将有利于开发出高质量的软件,使更多的软件项目免受时间和费用超支之苦。 ······························································································· 3分 对于任何软件开发机构的软件过程的改进都是在完成一个又一个小的改进的基础之上不断进行的渐进过程,而不是一蹴而就的彻底革命。CMM将软件过程从无序到有序的进化过程分为5个等级,用于测量软件机构的软件过程成熟度和评价其软件过程能力 什么是软件配置管理? 答:软件配置管理,简称SCM(Software Configuration Management),是在软件的整个生命周期内管理变化的一组活动。具体地讲,这组活动包括:①标志变化,②控制辩化,③确保适当地实现变化,④向需要指导这类信息的人报告变化。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高

《软件工程》期中考试试题

可行性研究的目的是( ) 《软件工程》期中考试试题 选择题(每小题 1 分,共 40 分) 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。 A. 软件工程 B.软件周期 C.软件危机 D.软件产生 ( )是将系统化的、 规范的、 可定量的方法应用于软件的开发、 运行和维护的过程。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 从结构化的瀑布模型看, 在它的生命周期中的八个阶段中, 下面的几个选项中哪个环节 出错,对软件的影响最大 ( )。 A 、详细设计阶段 B 、概要设计阶段 一个软件项目是否进行开发的结论是在( A. 软件开发计划 B ? 可行性报告 )文档中做出的。 C ?需求规格说明书 D.测试报告 需求分析的产品是( ) A ?数据流程图案 B .数据字典 C ?判定表 D ?需求规格说明书 需求分析中开发人员要从用户那里了解( ) A ?软件做什么 B ?用户使用界面 C .输入的信息 D ?软件的规模 瀑布模型本质上是一种( )模型。 A. 线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 瀑布模型存在的问题是( )。 A ?用户容易参与开发 B ?缺乏灵活性 C ?用户与开发者易沟通 D ?适用可变需求 螺旋模型是一种将瀑布模型和( )结合起来的软件开发模型。 A ?增量模型 B .专家系统 C ?喷泉模型 D ?变换模型 原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。 A ?需求不确定性高的 B ?需求确定的 C .管理信息 D ?实时 软件可行性研究实质上是要进行一次 ( )需求分析、设计过程。 A 、简化、压缩的 B 、详细的 C 、彻底的 D 、深入的 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. C 、 需求分析阶段 D 、 测试和运行阶段

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

山东大学-软件工程复习重点整理

第一章 1.1软件工程(SE)的定义、向、作用: SE:在将有关软件开发与应用的概念科学体系化的基础上,研究如有计划、有效率、经济的开发和利用能在就算机上正确运行的软件的理论和技术的工程法学,一些开发和维护软件的法、过程、原则。是一个系统工程,既有对技术问题的分析与综合,也有对开发过程和参与者的管理。 SE的向:面向对象模式,结构化模式,基于过程的模式等 SE的作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。 1.2开发模式:软件开发的全部过程,活动和任务的结构框架,它能直观的表达的表达软件开发全过程,明确要完成的主要活动,任务和开发策略。 1.3说明错误、故障和失效的含义及联系(并举例): 错误:是在软件生产过程中人为产生的错误(需求说明中的错误,代码中的错误) 故障:是在功能实现过程中产生的问题;是错误导致的结果,是在软件中一个错误的表现(一个错误可能产生多个缺陷,静态存在的) 失效:是相对于系统指定行为的偏离,系统违背了它应有的行为(动态存在的) 联系:当一个开发者编写程序时,会在代码中出现错误。当这个程序被编译或集成到一个系统中时,系统就存在故障。当你运行这个系统时,可能会导致失效,即人们产生错误,故障是错误的结果(部观角:从开发者的角度看待问题),当故障执行时出现失效(外部视角:从用户角度看到的问题)。并不是所有的错误会导致故障,并非每个缺陷都对应相应的失败。1.4软件质量应从哪几个面衡量,论述之: (1产品的质量)(2过程的质量)(3商业环境背景下的质量) (1)产品的质量:用户从失败的数目和类型等外部特征进行评价,如果软件具有足够的功能并且易于学习和使用,用户就断定软件是高质量的;开发者从缺陷的数目和类型等部特征来作为产品质量的依据。 (2)过程的质量:有很多过程都会影响到最终的产品质量,只要有活动出了差错,产品的质量就会受到影响;开发和维护过程的质量与产品的质量是同等重要的。 (3)商业环境背景下的软件质量:将技术价值和商业价值统一起来。 1.5软件系统的系统组成(系统的要素有哪些):对象(实体)+ 活动+ 关系+ 系统边界活动:活动是发生在系统中的某些事情,通常描述为由某个触发器引发的事件,活动通过改变属性把一个事物变成另一个事物。 对象:活动中涉及的元素称为对象。 关系:是指活动与对象之间的关系。 系统边界:即系统包含的功能与系统不包含的功能之间的界限。 1.6现代软件工程大致包含几个阶段及各个阶段的文档: (1)需求分析:主要包括问题定义、可行性分析、需求分析《需求规格说明书》

《软件工程》期末考试题及答案

《软件工程》期末考试样题 一、填空题 1.软件开发模型有瀑布模型、螺旋模型、第四代技术模型、原型模型、构件组装模型、混合模型。 2.可行性研究一般可以从经济可行性、技术可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为F/(1+i)n。 4.数据流图基本符号包括数据输入的源点和数据输出的汇点、加工、数据流、数据存储文件。 5.Jackson图除了可以表达程序结构外,还可以表达数据结构,它首先要分析数据结构,并用适当的工具来描述。 6.详细设计的工具有图形工具、表格工具和语言工具。 7.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待软件系统和现实世界的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用对象、类、继承、封装、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列()属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX

2.下列哪个图是N-S图的构件()。 A. B. C. D. 3.对于螺旋模型,下列()不是利用笛卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABCD )。 A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(ABCD)。 A.表头 B.表体 C.表名 D.字段名 3.关于内容耦合的描述正确的是(AD )。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式(BCD)。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工 B.变换、加工、数据流和存储 C.加工、数据流、数据存储和外部实体 D.变换、数据存储、加工和数据流

软件工程期中考试以及答案

文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持. 1文档来源为:从网络收集整理.word 版本可编辑. 东莞理工学院(本科)试卷 2014--2015学年第2学期 考试时间90分钟 《软件工程》(期中考试) 把答案写到答题卡上否则不给分 一、 单项选择题请把答案写在下面表格中(每题2分共50分) 1、 瀑布模型下,采用结构化的方法,在它的生命周期各个阶段中,那个阶段出错对软件的影响最大( ) A 、概要设计阶段 B 、维护阶段 C 、测试排错阶段 D 、需求分析阶段 2、UML 是软件开发过程中的重要工具之一,它主要用于那种开发方法() A 、基于数据流的结构化开发方法 B 、基于需求动态定义的原型方法 C 、基于对象的面向对象的方法D 、基于实体的信息建模方法 3、面向对象方法的主要特征除了封装,继承外还有() A 、完整性 B 、多态性 C 、可移植性 D 、可维护性 4、结构化设计方法在软件开发中用于() A 、概要设计B 、详细设计C 、可行性分析 D 、测试 5、软件质量保证应该在()阶段开始。 A 、编码B 、需求分析 C 、测试D 、设计 6、数据字典是对数据定义的集合,它所定义的数据包含在( ) A 、数据流图 B 、流程图 C 、软件结构图 D 、顺序图 7、结构化程序的三种基本控制结构是() A 、过程、函数、模块 B 、调用、返回、转移 C 、顺序、选择、循环 D 、命令、语句、函数 8、软件详细设计的任务是确定每个模块的() A 、软件体系结构B 、功能 C 、外部接口D 、算法和数据结构 9、在结构化设计中能够衔接概要设计和详细设计的工具是() A 、类图B 、流程图C 、DFD 图D 、SC 图 10、顺序图反映对象之间发送信息的时间顺序,它与()是同构的。 A 、类图 B 、状态图 C 、协助图D 、活动图 11、下面说法错误的是() A 、该图是对象图B 、borrowbook ()是方法C 、name 是属 D 、该图是类图 姓名:学号: 系别: 年级专业: ( 密封线内不答题 ) ……………………………………………密………………………… …… ……… ………封… ……………………………………线……………………………………

相关主题