软件工程基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程基础知识-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
软件工程基础知识考点指导
考点1 :软件工程和项目管理基础★★★
考点点拨:本考点考查软件工程和软件生成周期的概念,常用的软件开发模型,以及软件开发项目管理基础知识。
【试题1】软件工程三要素是______。
A)技术、方法和工具 B)方法、工具和过程
C)方法、对象和类 D)过程、模型、方法
答案:B
分析:软件工程三要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术。软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。软件工程过程定义了:方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理以及软件开发各个阶段完成的工作。
理论链接:软件工程概述
1.软件危机
软件危机是指计算机软件开发和维护过程中所遇到的一系列严重问题。概括的说即为:能否满足对软件日益增长的需求能否维护数量日益增长的现有软件
2.软件工程
软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。
软件工程准则可以概括为六条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)应能清楚地审查结果;(6)合理安排软件开发小组的人员。
【试题2】软件开发的结构化生命周期方法将软件生命周期划分成______。
A)计划阶段、开发阶段、运行阶段 B)计划阶段、编程阶段、测试阶段 C)总体设计、详细设计、编程调试 D)需求分析、功能定义、系统设计答案:A
【试题3】软件生命周期的最后的一个阶段是______。
A)书写软件文档 B)软件维护 C)稳定性测试 D)书写详细用户说明答案:B
理论链接:软件生存(生命)周期
软件生存周期:软件的产生直到报废的生命周期。从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。软件生存周期受软件规模、种类、开发方式、开发环境、方法论的影响有多种划分方法:
一种划分方法为:软件定义(又称系统分析,包括问题定义,可行性研究,需求分析),软件开发(包括总体设计,详细设计,编码和单元测试,综合测试),软件使用与维护等三个时期。各阶段的关键问题和阶段性成果如表7-1所示:
另一种划分是把软件生命周期划分为6个阶段:即制定计划、需求分析、软件设计、程序编写、软件测试和运行维护。
【试题4】瀑布模型(Waterfall Model)突出的缺点是不适应______的变动。(2002年上午填空22)
A)算法 B)平台 C)程序语言 D)用户需求
答案:D
分析:瀑布模型最为突出的缺点是缺乏灵活性,不能适应用户需求的动态变更。
【试题5】在编制程序时,应采纳的原则之一是__ A __。开发软件时对提高开发人员工作效率至关重要的是__ B __。软件工程中描述生命周期的瀑布模型一般包括计划、__ C __、设计、编码、测试、维护等几个阶段,其中设计阶段通常又可依次分成__ D __和__ E __两步。(1994年上半年题6)
A;①不限制 goto 语句的使用②减少或取消注解行
③程序越短越好④程序结构应有助于读者理解
B;①操作系统的资源管理功能②程序开发环境
③程序人员数量④计算机的并行处理能力
C:①需求分析②需求调查③可行性分析④问题定义
D,E:①数据结构设计②详细设计③概要设计④数据库设计
⑤方案设计⑥代码设计
答案:A)④ B)② C)① D)③ E)②
【试题6】包含风险分析的软件工程模型是_____。
A)螺旋模型B)瀑布模型 C)增量模型D)喷泉模型
答案:A
理论链接:软件开发模型
软件开发模型是软件开发全部过程、活动和任务的结构框架。常用的软件开发模型有:瀑布模型、演化模型、螺旋模型、喷泉模型等。
1.瀑布模型
瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,是一种线性模型。各个阶段自顶向下,如瀑布流水,逐级下落。各阶段活动为:可行性研究与计划、需求分析、设计(概要设计和详细设计)、编码、测试、运行和维护。每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。瀑布模型最为突出的缺点是该模型缺乏灵活性。它的特点如下:
1)阶段间具有顺序性和依赖性:前一阶段工作完成之后,才能开始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文档;
2)推迟实现的观点:区分逻辑设计与物理设计,尽可能推迟物理实现;
3)质量保证的观点:每个阶段必须完成规定的文档。每个阶段结束前都需对所完成的文档进行评审,以尽早发现问题;
2.演化模型
演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首先开发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,直到软件开发结束。演化模型在一定程度上减少了软件开发活动的盲目性。
3.螺旋模型
它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定计划、风险分析、实施工程、客户评估。
4.喷泉模型
它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开发过程。
5.瀑布模型、演化模型、螺旋模型比较
相同点是这三个模型都分为多个阶段。但瀑布模型一次完成软件;演化模型分为多次完成,每次迭代完成软件的一个部分;螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。
【试题7】软件项目管理所涉及的范围覆盖了整个软件的_____ 。