1、目录第一章 软件工程简介 .1第二章 过程和生命周期的建模 .6第三章 项目的计划和管理 .12第四章 需求获取 .24第五章 系统设计 .39第六章 对象 .47第七章 程序的编写 .57第八、九章 测试 .64第十、十一章 培训与维护 .821第一章 软件工程简介一、单项选择1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( 1 B )、(2 A )及( 3 D )的完整集合。其中,( 1 B )是按事先设计的功能和性能要求执行的指令序列。( 2 A )是使程序能够正确操纵信息的数据结构。( 3 D )是与程序开发、维护和使用有关的图文材料。1 .A. 数据 B. 程序 C. 用户
2、使用手册 D. 图表2 A. 数据 B. 文档 C. 代码 D. 安装说明3 .A. 程序 B. 数据 C. 外设 D. 文档2、有人将软件的发展过程划分为 4 个阶段:第一阶段(19501950 年代末)称为“程序设计的原始时期” ,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。第二阶段(1950 年代末1960 年代末)称为“基本软件期” 。出现了( A ),并逐渐普及。随着( B )的发展,编译技术也有较大的发展。第三阶段(1960 年代末1970 年代中期)称为“程序设计方法时代” 。这一时期,与硬件费用下降相反,软件开发费急剧上升。人们提出了( C )和( D
3、 )等程序设计方法,设法降低软件的开发费用。第四阶段(1970 年代中期现在)称为“软件工程时期” 。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。A-D: 汇编语言 操作系统 虚拟存储器概念 高级语言 结构式程序设计 数据库概念 固件 模块化程序设计E-G: 使用和维护 兼容性的确认 完整性的确认 设计 需求定义 图象处理3、软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品。软件工程技术应遵循( A )、( B )、( C )、( D )、一致性、确
4、定性、完备性、可验证性。A-D: 有效性 合理性 局部化 协同性 实用性 模块化 抽象 信息隐蔽4、软件产品的生产主要是 _C_。A. 制造 B. 复制 C. 开发 D. 研制5、个体手工劳动是_B_时代的软件生产方式。 A. 程序系统 B. 程序设计 C. 软件工程 D. 程序编码6、软件工程是一门_C_学科。A. 理论性 B. 原理性 C. 工程性 D. 心理性二、填空题1、软件由计算机程序、数据和( 文档 )组成。2、软件是一种(逻辑)产品,它与物质产品有很大的区别。3、计算机系统由硬件、软件、使用计算机的人、数据库、 (文档)和执行过程组成。24、软件的发展,到现在为止,经历了三个阶段
5、:(程序设计) 、 (程序系统)和软件工程。5、程序设计时代的生产方式是(个体手工艺者) ,程序系统时代的生产方式是(手工作坊) ,软件工程时代的生产方式是(工程化) 。6、软件工程是一门综合性的交叉学科,它涉及计算机学科、 (工程)学科、管理学科和(数学)学科。7、计算机科学中的成果都可用于软件工程,但计算机科学着重于(理论和原理) ,软件工程着重于(建造软件系统) 。8、软件工程研究的主要内容是(方法) 、 (过程)和(工具)等三个方面。9、软件开发各阶段任务的划分应尽可能(相对独立) ,同一阶段任务的性质应尽可能(相同) 。三、判断题1.A system is a collection
6、of objects and activities.(F)2.An abstraction is a description of the problem at some level of generalization that allows us to concentrate on the key aspects of the problem without getting mired in the details.(T)四、问答题1什么是软件?它的特点是什么?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指
7、令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。软件的特点是: (1)依赖性:软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件不能完全摆脱硬件单独活动。在开发和运行中必须以硬件提供的条件为依据。有的软件依赖于某个操作系统。 (2)可移植性:为了解除这种依赖性,在软件开发中提出了软件移植的问题,并且把软件的可移植性做为衡量软件质量的因素之一。 (3)复用性:软件的开发至今尚未完全摆脱手工艺的开发方式。由于传统的手工艺开发方式仍然占据统治地位,开发的效率自然受到很大的限制。为此,人们在软件技术方面做了许多卓有成效的工作,提出
8、了许多新的开发方法,例如充分利用现成软件的复用技术、自动生成技术,也研制了一些有效的软件开发工具或软件开发环境。(4)复杂性:软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。软件开发,特别是应用软件的开发常常涉及到其它领域的专门知识,这对软件人员提出了很高的要求。(5)昂贵性:软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。然而,也并非在所有软件开发上的花费都能获得成果。(6)社会性:相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构、体制及管理方式等问题,甚至涉及到人的观念和人们的心理。
9、它直接影响到项目的成败。32试比较软件发展的三个时期的特点,从软件所指、软件工作范围、软件开发组织、决定质量的因素、开发技术和手段等几个方面说明它们的差别。3软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。软件工具是指为了支援软件人员的开发和维护活动而使用的软件。例如项目估算工具、需求分析工具、设计工具、编程和调试工具、测试工具和维护工具等。使用了软件工具后
10、可以大大提高软件的生产率和质量。软件工程的过程则将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。4软件工程过程有哪几个基本过程活动?试说明之。软件工程过程通常包含四种基本的过程活动:P (Plan): 软件规格说明。规定软件的功能及其运行的限制;D (Do): 软件开发。产生满足规格说明的软件;C (Check): 软件确认。确认软件能够完成客户提出的要求;A (Action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。5.软件产品的质量一
11、直是用户高度重视的问题,简述有哪些评论质量的观点。用户的观点:质量是恰好达到目的制造的观点:质量是与需求说明的一致产品的观点:质量是与产品的内在特性相联系的基于价值的观点:质量取决于顾客愿意支付的金额4超越的观点:质量是可以认识而不能定义的6.什么是软件质量?如何度量软件质量?ANSI/IEEE Std 729-1983 定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体“。M.J. Fisher 定义软件质量为“所有描述计算机软件优秀程度的特性的组合“。也就是说,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合
12、,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。1991 年 ISO 发布的 ISO/IEC9126 质量特性国际标准定义了 6 个质量特性,即功能性、可靠性、可维护性、效率、可使用性、可移植性;并推荐了 21 个子特性,如适合性、准确性、互用性、依从性、安全性、成熟性、容错性、可恢复性、可理解性、易学习性、操作性、时间特性、资源特性、可分析性、可变更性、稳定性、可测试性、适应性、可安装性、一致性、可替换性,但不做为标准。7.软件产品质量评价金三角“产品运行、产品修改、产品变迁”中的“产品变迁”包含哪些质量要素和与之对应的评价标
13、准。产品变迁包含的质量要素和与之对应的评价标准为:可移植性:简单性、软件系统独立性、硬件独立性可复用性:简单性、通用性、模块化、软件系统独立性、硬件独立性互用性:模块化、通信通用性、数据通用性8.什么是 CMM-SEI 能力成熟度模型?其五级成熟度水平是什么?CMM-SEI 能力成熟度模型(Capability Manurity Model for Software,CMM)是软件工程协会 SEI(Software Engineering Institution)在卡内基.梅隆大学开发完成的对一个组织软件开发能力进行评价的标准,它侧重于对软件开发过程和开发方法论的考察。CMM 五级成熟水平:初
14、始级可重复级:有纪律的过程已确定级:标准一致的过程已管理级:可预测的过程优化级:不断改进的过程9.解释系统(system)的概念。A system (系统)is a collection of things: a set of entities, a set of activities, a description of the relationships among entities and activities, and definition of the boundary of the system.。系统是一组事务的集合:实体的集合、活动的集合、实体和活动之间关系的描述以及系统边界的定
15、义。10. 软件工程要达到的基本目标是什么?软件工程需要达到的基本目标是:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发工作及时交付使用。11软件工程的基本原则有哪些?试说明之。在软件开发过程中必须遵循下列软件工程原则。抽象 : 采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程5分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。信息隐蔽 : 遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的数据。模块化 : 按模块划分系统的体系结构,
16、使得各模块间有良好的接口。这样有助于信息隐蔽和抽象,有助于表示复杂的系统。局部化 : 按抽象数据类型思想及问题域中的概念来建立模块,确保模块之间低耦合,模块内部高内聚。这有助于控制解的复杂性。确定性 : 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。这有助于人们之间的沟通,保证整个开发工作协调一致。一致性 : 强调软件开发过程的标准化、统一化。包括文档格式的一致,工作流程的一致,内、外部接口的一致,系统规格说明与系统行为的一致等。完备性 : 软件系统不丢失任何重要成分,可以完全实现系统所要求功能。可验证性 : 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于
17、检查、测试、评审的原则,以确保系统的正确性。12B. W. Boehm 有七条准则是确保软件产品质量和开发效率的原理的最小集合。简述 B. W. Boehm 的软件工程基本准则。用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的成员应该少而精;承认不断改进软件工程实践的必要性。6第二章 过程和生命周期的建模一、单项选择1、开发软件时对提高软件开发人员工作效率至关重要的是( A )。软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D
18、 )两步。A 程序开发环境 操作系统的资源管理功能 程序人员数量 计算机的并行处理能力B 需求分析 需求调查 可行性分析 问题定义C、D 方案设计 代码设计 概要设计 数据设计 运行设计 详细设计 故障处理设计 软件体系结构设计2、软件开发费用只占软件生存期全部费用的_B_。A. 1/2 B. 1/3 C. 1/4 D. 2/33、在软件开发过程中大约要花费_C_%的工作量进行测试和调试。A. 20 B. 30 C. 40 D. 504、准确地解决“软件系统必须做什么”是_B_阶段的任务。 A. 可行性研究 B. 需求分析 C. 软件设计 D. 程序编码5、软件生存期中时间最长的是_D_ 阶段
19、。A. 需求分析 B. 软件设计 C. 软件测试 D. 软件运行/维护6、在软件生存期的模型中,_D_适合于大型软件的开发,它吸收了软件工程中“演化”的概念。A .喷泉模型 B. 基于知识的模型 C. 瀑布模型 D. 螺旋模型7、在软件生存期中,用户的参与主要在_A_。A.软件定义阶段 B.软件开发阶段 C.软件维护阶段 D.整个软件生存期过程中8、在软件开发过程中的每个阶段都要进行严格的_D_,以尽早发现在软件开发过程中产生的错误。A. 检验 B. 验证 C. 度量 D. 评审9、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的_B_。 A. 产品检验
20、B. 产品控制 C. 产品标准化 D. 开发规范10、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的 _D_ 。A. 可靠性 B. 可使用性 C. 安全性 D. 可维护性11、为了提高软件开发过程的_A_,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准。A. 可见性 B. 生产率 C. 安全性 D. 有效性12、随着开发小组人数的_A_,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。7A. 增加 B. 降低 C. 稳定 D. 不稳定13、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程_C_。A. 原
21、则 B. 工具 C. 过程 D. 方法二、填空题10、瀑布模型是将各个活动规定为依(软件生存期)连接的若干阶段的模型。它规定了各阶段的活动由前至后,相互衔接的固定次序,如瀑布流水,逐级下落。11、螺旋模型将开发过程分为几个螺旋周期。在每个螺旋周期内分为四个工作步骤:(制定计划) 、 (风险分析) 、开发实施、 (用户评估) 。12、喷泉模型是一种以(用户要求)为动力,以(对象)为驱动的模型。它使开发过程具有迭代性和无间隙性,适用于(面向对象)开发方法。三、判断题1.We can think of a set of ordered tasks as a process: a series of
22、steps involving activities constraints and recourses that produce an intended output of some kind. (T)2.The software development process is sometimes called the software life cycle. (T)四、问答题1、the meaning of process 过程的含义A process defines who is doing what, when and how, in order to reach a certain g
23、oal. 过程定义了谁在作什么,什么时间怎样作。以便完成一个确定的目标。2、 What is Process?A Series of steps involving activities, constraints, and resources that produce an intended output of some kind.一系列涉及到活动、约束和资源的步骤,他们产生某种类型的有目的的输出。3、Process Characteristics?过程的特征 The process prescribes all of the major process activities 过程规定了所有主
24、要过程活动Process uses resources, subject to a set of constraints (such as schedule ),and produces intermediate and final products 过程使用资源、服从于一组约束(比如进度约束),产生中间结果和最终产品。The process may be composed of subprocesses that are linked in some way. The process may be defined as a hierarchy of processes, organized
25、so that each subprocess has its own process model 可由子过程组成,这些子过程用某种方式链接起来。过程可以定义为分层的过程等级结构,以便每个子过程具有自己的过程模型。Each process activity has entry and exit criteria , so that we know when the activity begins and ends. 每个过程活动具有有入口和出口标准,这样可以知道活动何时开始及何时结束。8The activities are organized in a sequence, so that it
26、 is clear when one activity is performed relative to the other activities. 活动以一定顺序组织,因此,一个活动相对于其他活动何时完成是很清楚的。Every process has a set of guiding principles that explain the goals of each activity 每个过程具有一系列的指导原则,以解释每个活动的目标Constraints or controls may apply to an activity, resource or product 约束与控制可以应用到
27、任何活动、资源或产品中。4、Why software process modeling? Writes down a description of development process, forms a common understanding of the activities, resources, and constraints involved in software development. 形成对软件开发中涉及到的活动、资源和约束的共同理解。Helps the development team find inconsistencies, redundancies, and omi
28、ssions in the process and in its constituent parts. 有助于开发小组发现过程及其组织成分中的不一致、冗余和遗漏。The model reflects the goals of development, such as building high-quality software finding faults early in development, and meeting required budget and schedule constraints. 反映开发的目标( 如构建高质量软件、早期发现错误、满足预算和开发进度)。 Every p
29、rocess should be tailored for the special situation in which it will be used.根据每个过程将被使用的特殊情况对其进行裁剪。5试说明“软件生存期”的概念。软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存期。它分为 6 个阶段:(1) 软件项目计划 :在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。(2) 软件需求分析和定义 :在这一步详细定义分配给软件的系统元素。可以用以下两种方式中的一种对需求进
30、行分析和定义。一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。(3) 软件设计 :软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。(4) 程序编码 :在设计完成之后,用一种适当的程序设计语言或 CASE 工具生成源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。(5) 软件测试 :单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需求是否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。(6) 软件维护 :为改正错误,适应环境变化及功能增强而进行的一系列修
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。