热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

(软件工程复习核心重点)第一章软件工程概论习题

这一章题目主要以简答和名词解释为主文章目录一:选择题二:填空题三:名词解释(1)必考(2

  • 这一章题目主要以简答名词解释为主



文章目录

  • 一:选择题
  • 二:填空题
  • 三:名词解释
    • (1)必考
    • (2)了解
  • 四:简答题
    • (1)必考
        • 1.关于软件危机
        • 2.关于软件工程
        • 3. 关于软件生命周期
        • 4.关于软件过程
        • 5.典型软件生命周期模型优缺点及适用范围
    • (2)了解
  • 五:应用题/画图题


一:选择题


二:填空题



软件发展的三个阶段


  • 程序设计阶段(50~60年代)
  • 程序系统阶段(60~70年代)
  • 软件工程阶段(70年代以后)


软件包括的三个部分


  • 数据:是使程序能够适当处理信息的数据结构
  • 程序:是能够完成预定功能和性能的可执行指令序列
  • 文档:是开发、使用和维护过程中程序所需要的图文资料


软件过程方法学的三个部分


  • 方法:完成软件开发各项任务的技术方法,回答“怎么做”的问题
  • 工具:为运用方法提供的自动或半自动软件工程支撑环境
  • 过程:是为了获得高质量软件所需要完成的一系列任务框架,回答“何时做”的问题


瀑布模型阶段间具有顺序性依懒性,遵从推迟实现质量保证的观点


三:名词解释


(1)必考


  • 软件危机:在计算机软件开发和维护过程中所遇到的一系列严重问题。主要包含两个方面:如何开发软件,以满足日益增长的软件需求;如何维护数量不断膨胀的已有软件
  • -软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它
  • 软件过程:是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成任务的工作步骤。通常用软件生命周期模型来描述软件过程

(2)了解


  • 软件:是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合
  • 软件工程方法学:把在软件生命周期全过程中使用的一整套技术方法的集合称之为方法学,也称为范型

四:简答题


(1)必考


1.关于软件危机


★★★在这里插入图片描述


【答案】

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


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

软件危机的表现:


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

软件危机的原因

①:主观方面


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

②:客观方面


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

如何解决


  • 对计算机软件应该有正确的认识
  • 要吸取和借鉴人类长期从事各种工程项目积累的原理、概念、技术和方法
  • 积极开发和使用计算机辅助开发软件
  • 探索更好更有效的管理措施和手段对开发过程进行控制和管理

2.关于软件工程


在这里插入图片描述


【答案】

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

软件工程的特征
在这里插入图片描述

软件工程的原理

在这里插入图片描述


3. 关于软件生命周期


软件生命周期阶段如何划分?


在这里插入图片描述


4.关于软件过程


在这里插入图片描述


【答案】

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

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


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

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


5.典型软件生命周期模型优缺点及适用范围


在这里插入图片描述


①瀑布模型

优点:


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

缺点


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

适用范围


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

②快速原型模型

优点:


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

缺点


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

适用范围


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

③:增量模型

优点


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

缺点


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

④:喷泉模型

优点


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

缺点


  • 风险估计困难

(2)了解




什么是软件?软件的特点是什么?


在这里插入图片描述




在这里插入图片描述
在这里插入图片描述


【答案】

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




在这里插入图片描述


【答案】

结构化范型


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

面向对象范型


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



在这里插入图片描述


【答案】

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






在这里插入图片描述


【答案】

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

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




在这里插入图片描述


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




在这里插入图片描述


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




在这里插入图片描述


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


五:应用题/画图题


推荐阅读
  • 【系统架构师精讲】(16):操作系统核心概念——寄存器、内存与缓存机制详解
    在计算机系统架构中,中央处理器(CPU)内部集成了多种高速存储组件,用于临时存储指令、数据和地址。这些组件包括指令寄存器(IR)、程序计数器(PC)和累加器(ACC)。寄存器作为集成电路中的关键存储单元,由触发器构成,具备极高的读写速度,使得数据传输非常迅速。根据功能不同,寄存器可分为基本寄存器和移位寄存器,各自在数据处理中发挥重要作用。此外,寄存器与内存和缓存机制的协同工作,确保了系统的高效运行。 ... [详细]
  • 阿里云MySQL与Oracle数据库的主从复制技术详解 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 如何在Microsoft Visio中调整连接线的粗细设置
    Microsoft Visio 是一款功能强大的流程图绘制工具,以其直观易用的界面受到广泛欢迎。用户不仅能够轻松创建流程图、思维导图和组织结构图,还可以进行团队在线协作,提高工作效率。本文将详细介绍如何在 Microsoft Visio 中调整连接线的粗细,以满足不同场景下的绘图需求。 ... [详细]
  • 从运维繁忙到屡获殊荣:一位CIO的辉煌转型之路
    企业首席信息官(CIO)常常面临一个棘手的问题:如何有效推动公司的数字化转型?尽管数字化转型已成为企业未来发展的重要共识,但如何具体实施依然是许多CIO面临的重大挑战。在日常运营中,企业需要处理大量的业务问题和制定各种发展规划,这使得数字化转型往往被排在较低的优先级。此外,不断涌现的新问题和新规划也常常打乱原有的计划,进一步增加了转型的难度。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 双精度除法与整数运算:性能与精度的权衡分析 ... [详细]
  • 在日常的项目开发中,测试环境和生产环境通常采用HTTP协议访问服务。然而,从浏览器的角度来看,这种访问方式会被标记为不安全。为了提升安全性,当前大多数生产环境已经转向了HTTPS协议。本文将详细介绍如何在Spring Boot应用中配置SSL证书,以实现HTTPS安全访问。通过这一过程,不仅可以增强数据传输的安全性,还能提高用户对系统的信任度。 ... [详细]
  • SSAS入门指南:基础知识与核心概念解析
    ### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • 老杨谈IT运维 | 快速实现日志异常检测与根源分析
    在智能运维领域,指标和日志是最常用的数据来源,能够有效反映系统的运行状况和健康状态。通过对这些数据的深入分析,可以为监控和告警系统提供关键信息,帮助快速实现日志异常检测与根源分析,提升整体运维效率。 ... [详细]
  • 在Android开发过程中,序列化是一个重要的概念,尤其是在数据传输和存储时。本文详细解析了Parcelable序列化的原理及其应用场景,并对比了其他序列化方式,如Serializable。通过具体的实例和代码示例,帮助开发者更好地理解和掌握Parcelable的使用方法,避免在实际开发和面试中遇到相关问题。 ... [详细]
  • 业务团队与独立团队在数据分析领域的效能对比:谁更胜一筹?
    业务团队与独立团队在数据分析领域的效能对比:谁更胜一筹? ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • #30 序列压缩算法优化与实现
    本文探讨了序列压缩算法的优化与实现,旨在提高数据存储效率和处理速度。通过对现有算法的深入分析,提出了一种新的优化方法,该方法在保持高压缩比的同时,显著降低了计算复杂度。实验结果表明,新方法在多种数据集上均表现出色,具有广泛的应用前景。 ... [详细]
author-avatar
嘉娜杰_877
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有