(软件工程复习核心重点)第一章软件工程概论习题
- 这一章题目主要以简答和名词解释为主
文章目录
- 一:选择题
- 二:填空题
- 三:名词解释
- (1)必考
- (2)了解
- 四:简答题
- (1)必考
- 1.关于软件危机
- 2.关于软件工程
- 3. 关于软件生命周期
- 4.关于软件过程
- 5.典型软件生命周期模型优缺点及适用范围
- (2)了解
- 五:应用题/画图题
一:选择题
二:填空题
软件发展的三个阶段
- 程序设计阶段(50~60年代)
- 程序系统阶段(60~70年代)
- 软件工程阶段(70年代以后)
软件包括的三个部分
- 数据:是使程序能够适当处理信息的数据结构
- 程序:是能够完成预定功能和性能的可执行指令序列
- 文档:是开发、使用和维护过程中程序所需要的图文资料
软件过程方法学的三个部分
- 方法:完成软件开发各项任务的技术方法,回答“怎么做”的问题
- 工具:为运用方法提供的自动或半自动软件工程支撑环境
- 过程:是为了获得高质量软件所需要完成的一系列任务框架,回答“何时做”的问题
瀑布模型阶段间具有顺序性和依懒性,遵从推迟实现和质量保证的观点
三:名词解释
(1)必考
- 软件危机:在计算机软件开发和维护过程中所遇到的一系列严重问题。主要包含两个方面:如何开发软件,以满足日益增长的软件需求;如何维护数量不断膨胀的已有软件
- -软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它
- 软件过程:是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成任务的工作步骤。通常用软件生命周期模型来描述软件过程
(2)了解
- 软件:是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合
- 软件工程方法学:把在软件生命周期全过程中使用的一整套技术方法的集合称之为方法学,也称为范型
四:简答题
(1)必考
1.关于软件危机
★★★
【答案】
软件危机的定义:软件危机是在计算机开发和维护过程中所遇到的一系列的严重问题,主要包含两个方面
- 如何开发软件,以满足日益增长的软件需求
- 如何维护软件数量不断膨胀的已有软件
软件危机的表现:
- 对软件开发成本和进度的估算不准确
- 用户对软件不满意
- 软件质量不可靠
- 软件不可维护
- 没有合适的文档资料
- 软件成本在计算机系统中的成本逐年上升
- 软件开发生产率低
软件危机的原因
①:主观方面
- 忽视需求分析
- 轻视软件维护
- 没有认识到程序只是软件的一部分
- 没有认识到开发只是软件漫长生命周期中一个比较次要的阶段
- 越到后期引入变动代价会越高
②:客观方面
- 软件是逻辑实体,具有不可见性,管理控制很困难
- 软件不会磨碎,维护意味着需要原来的设计,维护困难
- 软件规模庞大,程序的复杂性会随着软件规模增加而增加
如何解决
- 对计算机软件应该有正确的认识
- 要吸取和借鉴人类长期从事各种工程项目积累的原理、概念、技术和方法
- 积极开发和使用计算机辅助开发软件
- 探索更好更有效的管理措施和手段对开发过程进行控制和管理
2.关于软件工程
【答案】
软件工程定义:采用工程的概念、技术、原理和方法,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它
软件工程的特征
软件工程的原理
3. 关于软件生命周期
软件生命周期阶段如何划分?
4.关于软件过程
【答案】
软件过程的定义:是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成任务的工作步骤,通常用软件生命周期模型来描述软件过程
软件工程方法学:把在软件生命周期全过程中所使用的一整套技术方法的集合称之为软件工程方法学。包含三个要素
- 方法:完成软件开发各项任务的技术方法
- 工具:为了运用方法提高的自动或半自动软件工程支撑环境
- 过程:是为了获得高质量软件所需要完成的一系列任务框架
因此软件过程是软件工程方法学的重要组成部分
5.典型软件生命周期模型优缺点及适用范围
①瀑布模型
优点:
- 强迫开发人员使用规范的方法
- 严格规定了每个阶段提交的文档
- 要求每个阶段交出的产品都必须经过质量保证小组的验证
- 对文档的约束,使得软件维护变得容易一些,且能降低软件预算
缺点
- 在软件开发初期就要求做出正确的,全面的,完整的需求分析对多数应用软件来说是很困难的
- 在需求分析阶段,在需求确定后,无法及时验证需求是否正确,完整
- 作为整体开发的瀑布模型,由于不支持产品演化,缺乏灵活性,对开发过程中很难发现的错误,只有在产品最终运行时才能发现
适用范围
- 用户的需求非常清晰全面,且在开发过程中没有或很少有变化
- 开发人员对软件的应用领域很熟悉
- 用户的使用环境非常稳定
- 开发工作对用户的参与要求很低
②快速原型模型
优点:
- 开发的软件通常满足用户需求
- 软件开发基本是线性过程
缺点
- 准确原型设计困难
- 原型理解可能不同
- 不利于开发人员创新
适用范围
- 对所开发的领域比较熟悉且与快速的原型开发工具
- 项目招投标时,可以以原型模型作为软件的开发模型
- 进行产品移植或升级时,或对已有产品原型进行客户化工作时
③:增量模型
优点
- 短时间内可提交部分功能
- 逐渐增加产品功能,用户适应产品快
缺点
- 增量构件划分及集成困难
- 容易退化成边做边改模型
④:喷泉模型
优点
- 利于把软件质量作为软件的开发目标
- 减少测试
- 维护和开发不分开
缺点
- 风险估计困难
(2)了解
什么是软件?软件的特点是什么?
【答案】
在软件开发的不同阶段进行修改所付出的代价是不相同的。在早期引入变动,由于设计的面较少,因而代价也比较低;在开发的中后期,软件配置相关工作已经完成,引入一个变动时常常会引起所有与之有关的成分发生变化,所以代价较高。一个人编码错误是不可避免的,但是修改的成本是很小的,因为这不是整体架构的错误,只要不断进行阶段评审,不要让错误留到后期,在早期就尽可能解决
【答案】
结构化范型
- 采用结构化技术完成软件开发的各项任务
- 把软件生命周期划分不同阶段
- 每个阶段开始和结束都有严格标准
- 每个阶段结束后要有严格审查
面向对象范型
- 把对象作为融合了数据及在数据上的操作行为的统一软件构件
- 把所有对象划分为类
- 按照父类与子类的关系,把若干类组成层次结构的系统
- 对象彼此间仅通过消息互相联系
【答案】
因为使用面向对象方法学开发软件时,各个阶段都使用统一的概念和表示符号, 因此,整个开发过程都是吻合一致的,或者说是无缝连接的,这自然就很容易实现各个开发步骤的反复多次迭代,达到认识的逐步深化,而喷泉模型则很好的体现了面向对象软件开发过程迭代和无缝的特性
【答案】
优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性
缺点:缺点: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,他没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性
【答案】大型的需求不断变化的复杂软件系统项目
【答案】适用于商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束
【答案】适用于商业环境下具有有限资源和有限开发时间约束的项目的软件过程模式
五:应用题/画图题
(软件工程复习核心重点)第一章软件工程概论习题相关推荐
- (软件工程复习核心重点)第一章软件工程概论-第二节:软件工程
文章目录 一:软件工程 (1)软件工程的定义 (2)软件工程的本质特征 (3)软件工程基本原理 二:软件工程方法学 (1)概念 (2)分类 一:软件工程 (1)软件工程的定义 软件工程:采用工程的概念 ...
- (软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型
文章目录 一:软件过程概念 (1)定义 (2)构成 二:主要模型 (1)瀑布模型 A:定义 B:特点 C:优缺点 D::适用范围 E:实际的瀑布模型 (2)快速原型模型 A:定义 B:原理 C:优缺点 ...
- (软件工程复习核心重点)第一章软件工程概论-第一节:软件和软件危机
文章目录 一:软件的概念.特点与发展 (1)软件发展的三个阶段 (2)软件的概念 (3)软件的特点 二:软件危机 (1)软件危机的概念 (2)软件危机的表现 (3)软件危机产生的原因 A:主观原因 B ...
- (软件工程复习核心重点)第一章软件工程概论-第三节:软件生命周期
文章目录 一:软件定义 (1)问题定义 (2)可行性研究 (3)需求分析 二:软件开发 (1)总体设计 (2)详细设计 (3)编码和单元测试 (4)综合测试 三:软件维护 一:软件定义 (1)问题定义 ...
- (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算
文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...
- (软件工程复习核心重点)第七章软件维护-第一节:软件维护的概念和特点
文章目录 一:软件维护的概念 (1)定义 (2)分类 二:软件维护的特点 (1)结构化维护和非结构化维护差别巨大 (2)维护的代价高昂(了解) (3)维护存在很多问题(了解) 一:软件维护的概念 (1 ...
- (软件工程复习核心重点)第六章实现和测试-第一节:编码
文章目录 一:定义 二 :程序设计语言的选择 (1)重要性(了解) (2)适宜的程序语言的优点 (3)程序设计语言的选择标准 A:理想标准 B:实际标准 三:编码风格 (1)程序内部的文档 A:定义 ...
- (软件工程复习核心重点)第四章总体设计-第一节:总体设计基本概念和设计过程
文章目录 一:总体设计的概念 (1)定义 (2)主要任务 (3)步骤 (4)必要性(了解) 二:设计过程 (1)系统设计阶段 1:设想供选择的方案 2:选取合理的方案 3:推荐最佳方案 (2)结构设计 ...
- (软件工程复习核心重点)第三章需求分析-第一节:需求分析相关概念
文章目录 一:需求分析相关概念 (1)定义 (2)必要性(了解) (3)准则 二:需求分析的任务 (1)确定对系统的综合要求 (2)分析系统的数据要求 A:意义(了解) B:工具 (3)导出系统的逻辑 ...
最新文章
- Django Rest Framework
- 二十万字C/C++、嵌入式软开面试题全集宝典七
- shell的输入和输出
- P6563-[SBCOI2020]一直在你身旁【dp,单调队列】
- oracle数据库时分秒格式_Oracle如何输出指定格式的日期时间数据呢?
- 设计模式的主要设计原则简介
- Ubuntu安装MyEclise16 过程差不多
- 解决 eclipse 生成 javadoc 中文乱码的问题
- word把对应图片变成嵌入的ActiveX控件。
- [Verilog]半减器,全减器设计
- Android获取横竖屏状态及监听
- 泰坦以太(以太流论)第五稿 titan_ysl 2020.02.04
- 台式计算机速度变慢的原因,电脑运行速度变慢的原因和解决方法
- 艾睿电子Arrow EDI ORDERS订单解读
- itunes更新失败卸载失败(AppleMobileDeviceSupport6464安装时回滚的解决办法)
- JSR规范系列(1)——Java版本、JSR规范和JCP社区流程概述
- LinkedList真的比ArrayList增删快吗?为什么?
- 《精通.NET互操作:P/Invoke、C++ Interop和COM Interop》
- 计算机培训计划方案结尾怎么写,学习计划怎么写结尾
- 自然增长率,到底怎么算才合理!
热门文章
- 一位工作了10年的C++程序员总结出这些忠告
- 跳槽,你的工作经验货真价实吗?
- 性能优化篇(4):千万别使用CSS表达式
- 计算机组成原理 微指令编码_计算机组成原理(指令)
- java paint调用,求教 如何调用这个paint
- ZED ROS包发布topic介绍
- U盘文件系统无法识别,数据怎么恢复?
- 基因组浏览器使用 (EPGG)
- Nifty File Lists for Mac(文件列表创建工具)
- linux启动脚本添加命令,Linux添加shell(.sh)脚本并添加定时任务