软件工程概论习题

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程概论习题相关的知识,希望对你有一定的参考价值。


【答案】

软件危机的定义:软件危机是在计算机开发和维护过程中所遇到的一系列的严重问题,主要包含两个方面

  • 如何开发软件,以满足日益增长的软件需求
  • 如何维护软件数量不断膨胀的已有软件

软件危机的表现

  • 对软件开发成本和进度的估算不准确
  • 用户对软件不满意
  • 软件质量不可靠
  • 软件不可维护
  • 没有合适的文档资料
  • 软件成本在计算机系统中的成本逐年上升
  • 软件开发生产率低

软件危机的原因
①:主观方面

  • 忽视需求分析
  • 轻视软件维护
  • 没有认识到程序只是软件的一部分
  • 没有认识到开发只是软件漫长声明周期中一个比较次要的阶段
  • 越到后期引入变动代价会越高

②:客观方面

  • 软件是逻辑实体,具有不可见性,管理控制很困难
  • 软件不会磨碎,维护意味着需要原来的设计,维护困难
  • 软件规模庞大,程序的复杂性会随着软件规模增加而增加


【答案】

在软件开发的不同阶段进行修改所付出的代价是不相同的。在早期引入变动,由于设计的面较少,因而代价也比较低;在开发的中后期,软件配置相关工作已经完成,引入一个变动时常常会引起所有与之有关的成分发生变化,所以代价较高。一个人编码错误是不可避免的,但是修改的成本是很小的,因为这不是整体架构的错误,只要不断进行阶段评审,不要让错误留到后期,在早期就尽可能解决


【答案】

软件工程定义:采用工程的概念、技术、原理和方法,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它

软件工程的特征

  • 关注大型程序的构造
  • 中心客体是控制复杂性
  • 软件经常变化
  • 开发效率非常重要
  • 开发人员团结协作是关键
  • 软件需要有效支持用户
  • 软件开发者常替代其他领域人员创造产品

消除软件危机

  • 对计算机要有正确的认识
  • 要吸取和解决人类从事各项生产活动所总结的经验校验、技术方法
  • 积极开发和使用计算机辅助软件
  • 探索更好更有效的管理手段对开发过程进行控制

【答案】

结构化范型

  • 采用结构化技术完成软件开发的各项任务
  • 把软件生命周期划分不同阶段
  • 每个阶段开始和结束都有严格标准
  • 每个阶段结束后要有严格审查

面向对象范型

  • 把对象作为融合了数据及在数据上的操作行为的统一软件构件
  • 把所有对象划分为类
  • 按照父类与子类的关系,把若干类组成层次结构的系统
  • 对象彼此间仅通过消息互相联系

【答案】

软件过程的定义:是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成任务的工作步骤,通常用软件生命周期模型来描述软件过程

软件工程方法学:把在软件生命周期全过程中所使用的一整套技术方法的集合称之为软件工程方法学。包含三个要素

  • 方法:完成软件开发各项任务的技术方法
  • 工具:为了运用方法提高的自动或半自动软件工程支撑环境
  • 过程:是为了获得高质量软件所需要完成的一系列任务框架

因此软件过程是软件工程方法学的重要组成部分


【答案】

软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架

①瀑布模型
优点:

  • 强迫开发人员使用规范的方法
  • 严格规定了每个阶段提交的文档
  • 要求每个阶段交出的产品都必须经过质量保证小组的验证
  • 对文档的约束,使得软件维护变得容易一些,且能降低软件遇酸

缺点

  • 在软件开发初期就要求做出正确的,全面的,完整的需求分析对多数应用软件来说是很困难的
  • 在需求分析阶段,在需求确定后,无法及时验证需求是否正确,完整
  • 作为整体开发的瀑布模型,由于不支持产品演化,缺乏灵活性,对开发过程中很难发现的错误,置于在产品最终运行时才能发现

使用范围

  • 用户的需求非常清晰全面,且在开发过程中没有或很少有变化
  • 开发人员对软件的应用领域很熟悉
  • 用户的使用环境非常稳定
  • 开发工作对用户的参与要求很低

①快速原型模型

优点:

  • 开发的软件通常满足用户需求
  • 软件开发基本是线性过程

缺点

  • 准确原型设计困难
  • 原型理解可能不同
  • 不利于开发人员创新

适用范围

  • 对所开发的领域比较熟悉且与快速的原型开发工具
  • 项目招投标时,可以以原型模型作为软件的开发模型
  • 进行产品一移植或升级时,或对已有产品原型进行客户化工作时

③:增量模型

优点

  • 短时间内可提交部分功能
  • 逐渐增加产品功能,用户适应产品快

缺点

  • 增量构件划分及集成困难
  • 容易退化成边做边改模型

④:喷泉模型

优点

  • 利于把软件质量作为软件的开发目标
  • 减少测试
  • 维护和开发不分开

缺点

  • 风险估计困难

【答案】

因为使用面向对象方法学开发软件时,各个阶段都使用统一的概念和表示符号, 因此,整个开发过程都是吻合一致的,或者说是无缝连接的,这自然就很容易实现各个开发步骤的反复多次迭代,达到认识的逐步深化,而喷泉模型则很好的体现了面向对象软件开发过程迭代和无缝的特性


【答案】

优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性

缺点:缺点: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,他没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性


【答案】大型的需求不断变化的复杂软件系统项目


【答案】适用于商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束


【答案】适用于商业环境下具有有限资源和有限开发时间约束的项目的软件过程模式

以上是关于软件工程概论习题的主要内容,如果未能解决你的问题,请参考以下文章

计算机组成原理-习题01概论

马克思主义基本原理概论》学生辅学读本(第四版)习题答案

数据库系统概论第五版(笔记+习题答案)(全)

:操作系统概论

《软件工程导论》课后习题解答

概论——习题整理