• 一、软件工程概述+练习题



    软件工程复习


    一、 概述

    1.常见考点

    1.1 什么是软件?
    • 程序+数据+文档
      软件在计算机系统中与硬件相互依存,包含了程序、数据及文档内容
    • 程序:能够完全预订功能和性能的可执行指令序列
    • 数据:使程序能够适当处理信息的数据结构
    • 文档:开发、使用和维护过程中所需要的图文资料
    软件的特点

    1.软件是一种逻辑实体
    2.软件是人类智力产品
    3.软件开发过程复杂
    4.软件需要长期维护
    5.软件成本昂贵
    6.软件可以复杂

    1.2 什么是软件危机?它的具体表现是什么?
    软件危机的概念

    在计算机软件开发和维护过程中所遇到的一系列严重问题

    软件危机的内容
    • 1.如何开发软件,以满足对软件日益增长的需求
    • 2.如何维护数量不断膨胀的已有软件
    具体表现
    • 对软件开发成本和进度估算不准确
    • 用户对已有软件不满意
    • 软件质量不可靠
    • 没有适当的文档资料
    • 软件不可维护
    • 软件成本的比例逐年上升
    • 软件开发生产效率低
    软件危机的原因

    在这里插入图片描述

    • 1.用户需求不明确
    • 2.缺乏正确的理论指导
    • 3.软件开发规模越来越大
    • 4.软件开发复杂的越来越高
    消除软件危机的途径

    在这里插入图片描述

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

    2.软件工程的三要素

    软件工程的定义

    采用工程的概念、技术、原理和方法来开发维护软件,把经过时间考验并且证明正确的管理技术和当前的技术方法结合起来,经济的开发出高质量的软件并进行维护。

    过程、方法、工具
    过程:为了获得高质量软件所需要完成的一系列任务框架 when
    方法:完成软件开发各项任务的技术方法 how
    工具:为运用方法提供的自动、半自动软件工程支撑环境
    在这里插入图片描述


    3. 软件生存周期

    三个时期,八个阶段

    1.软件定义时期:

    • 问题定义
    • 可行性研究
    • 需求分析

    2.软件开发时期:

    • 总体设计
    • 详细设计
    • 编码和单元测试
    • 综合测试

    3.软件维护时期:

    • 运营和维护

    4. 软件过程模型

    用软件生命周期模型描述软件过程

    瀑布模型

    在这里插入图片描述

    将需求分析、设计、编码、测试、运营维护进行线性顺序连接,按固定顺序,像瀑布一样逐级下落
    优点:

    1.有利于大型软件开发过程中人员的组织、管理,
    2.有利于软件开发方法和工具的研究,从而提高大型软件项目的开发质量和效率

    缺点:

    1.开发过程一般不能逆转,否则代价太大
    2.实际的项目开发很难按照模型进行

    增量模型

    将需求分段为一系列增量产品,每一增量可以分别开发
    在这里插入图片描述

    优点:

    1.人员分配灵活,刚开始不用投入大量人力资源
    2.如果核心产品受欢迎,可以增加人力实现下一个增量
    3.可以先发布部分功能给客户

    缺点:

    1.并行开发构件有可能遇到无法集成的风险
    2.软件必须具备开放式的体系结构

    螺旋模型

    在这里插入图片描述

    将开发过程分成几个螺旋周期,每个螺旋周期与瀑布模型相吻合
    在每个螺旋周期中:

    1.制定计划
    2.风险分析
    3.实施工程
    4.用户评估

    优点:

    1.设计灵活,可以在项目的各个阶段进行变更
    2.以小的分段来构建大型系统,方便计算成本

    缺点:

    1.过多的迭代次数会增加开发成本
    2.会延迟提交时间

    喷泉模型

    以用户需求为动力,以对象作为驱动的模型,适用于面向对象的开发方法 在设计完成后才进行编码,并且允许各个开发活动交叉、迭代的进行

    二、练习题

    1.选择题

    1.哪一种模型是软件的基础模型?

    瀑布模型

    2.软件生命周期中,所花费用最多的阶段是?

    软件维护

    3.综合测试是在软件周期的( )阶段制定的,在综合测试完成的

    概要设计

    4.软件危机通常是指在计算机软件开发和维护时,所产生的一系列严重的问题,这些问题中,相对次要的因素是()

    开发进度

    5.软件是一种()性工业产品

    知识

    6.软件的主要功能和结构是在( )阶段决定的

    分析设计

    2 简答题

    1.什么是软件

    软件是计算机系统中与硬件相互依存的一部分,包括程序、数据及文档的完整集合

    2.软件的特点:

    1.软件是一种逻辑实体
    2.软件是人类智力产品
    3.软件开发过程复杂
    4.软件需要长期维护
    5.软件成本昂贵
    6.软件可以复杂

    3.软件的生命周期

    1.软件定义时期:问题定义 可行性研究 需求分析
    2.软件开发时期:总体设计 详细设计 编码和单元测试 综合测试
    3.软件维护时期:运营和维护

    4.软件危机的原因和表现
    5.解决软件危机的途径
    6.软件过程是什么,举例软件过程的模型

    见上文

    点击移步博客主页,欢迎光临~

    偷cyk的图

  • 相关阅读:
    Thread多线程(创建,方法,安全,通信,线程池,并发,并行,线程的生命周期)【全详解】
    OptBinning 特征分箱包使用介绍
    用c语言实现矩阵转置
    AIGC(生成式AI)试用 4 -- 从模糊到精确
    [附源码]计算机毕业设计JAVA基于Java的快递驿站管理系统
    面试 10年+ Java开发的感受和自省!
    <迷宫问题及最短路径问题(使用DFS与回溯法求解)>——《算法》
    汽车租赁服务微信小程序制作开发
    法大大音视频双录新品,打造企业合规新体验
    百川的大模型KnowHow
  • 原文地址:https://blog.csdn.net/m0_64003319/article/details/133973059