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

文章目录

  • 软件工程复习
    • 一、 概述
      • 1.常见考点
        • 1.1 什么是软件?
          • 软件的特点
        • 1.2 什么是软件危机?它的具体表现是什么?
          • 软件危机的概念
          • 软件危机的内容
          • 具体表现
          • 软件危机的原因
          • 消除软件危机的途径
      • 2.软件工程的三要素
          • 软件工程的定义
      • 3. 软件生存周期
      • 4. 软件过程模型
          • 瀑布模型
          • 增量模型
          • 螺旋模型
          • 喷泉模型
    • 二、练习题
      • 1.选择题
      • 2 简答题


软件工程复习


一、 概述

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的图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/144886.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高校教务系统登录页面JS分析——西安交通大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习,勿用于非法用途。 一、密码加…

小插曲 -- 使用Visual Studio Code远程连接香橙派

在之前的学习中,代码的修改和保存都依赖于“vi”指令,而不得不承认vi指令的编辑界面非常原始,所以,如果可以将代码编辑放到更友好的环境里进行无疑是一件大快人心的事情。 本节介绍如何通过Visual Studio Code来进行远程连接: Vi…

Mybatis的SqlRunner执行流程

Mybatis的SqlRunner执行流程 SqlRunner exec new SqlRunner(connection); Map<String, Object> row exec.selectOne("SELECT * FROM PRODUCT WHERE PRODUCTID ?", "FI-SW-01");connection.close();assertEquals("FI-SW-01", row.ge…

strcpy函数

文章目录 strcpy函数描述函数使用总结目标空间为什么必须可变&#xff1f;模拟实现 strcpy函数描述 重点&#xff1a;including the terminating null character (and stopping at that point).意为拷贝的值包括停止字符 传参时第一个参数为要拷贝参数&#xff0c;第二个参数为…

springMVC中统一异常处理@ControllerAdvice

1.在DispatcherServlet中初始化HandlerExceptionResolver 2.controller执行完成后执行processDispatchResult(processedRequest,response,mappedHandler,mv,dispatchException),有异常则处理异常 3.ExcepitonHandlerExceptionResolver中执行方法doResolveHandlerMethodExceptio…

【vSphere 8 自签名 VMCA 证书】企业 CA 签名证书替换 vSphere VMCA CA 证书Ⅰ—— 生成 CSR

目录 替换拓扑图证书关系示意图说明 & 关联博文1. 默认证书截图2. 使用 certificate-manager 生成CSR2.1 创建存放CSR的目录2.2 记录PNID和IP2.3 生成CSR2.4 验证CSR 参考资料 替换拓扑图 证书关系示意图 本系列博文要实现的拓扑是 说明 & 关联博文 因为使用企业 …

Linux tmux使用总结

文章目录 1 tmux介绍2 tmux概念会话Sessions、窗口Windows、面板Panesstatus line中字段含义 3 Sessions会话管理新建会话断开当前会话进入之前的会话关闭会话查看所有的会话 4 tmux快捷指令系统指令窗口&#xff08;Windows&#xff09;指令面板&#xff08;Panes&#xff09;…

如何利用示波器解析I2C数据

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘校园大使&#xff0c;湖南区域的日常实习&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &am…

API网关与社保模块

API网关与社保模块 理解zuul网关的作用完成zuul网关的搭建 实现社保模块的代码开发 zuul网关 在学习完前面的知识后&#xff0c;微服务架构已经初具雏形。但还有一些问题&#xff1a;不同的微服务一般会有不同的网 络地址&#xff0c;客户端在访问这些微服务时必须记住几十甚至…

冲刺学习-MySQL-基础

基础 数据类型 常见数据类型的属性 整型 TINYINT、SMALLINT、MEDIUMINT、INT&#xff08;INTEGER&#xff09;和 BIGINT 可选属性 M&#xff1a;表示显示宽度&#xff08;从MySQL 8.0.17开始&#xff0c;整数数据类型不推荐使用显示宽度属性&#xff09;UNSIGNED&#xff1…

【c++】简单了解运算符重载

引例 class Integer{ public:Integer(int num):_num(num){}int& getValue(){return _num;} private:int _num; };现在有两个Integer对象a,b。想让a和b相加得到的结果给对象c&#xff0c;现在可以肯定的是cab编译后肯定会报错 请注意这条信息no match for operator (oper…

家庭燃气表微信抄表识别系统

1.背景需求 目前家里燃气度数的读数上报&#xff0c;每个月在社区微信群里面将手机拍摄的燃气表读数截图&#xff08;加住址信息水印&#xff09;&#xff0c;发到群里给抄表员。 2.总体设计 设计目标 功能一&#xff1a;手机上随时可以远程采集读数图片&#xff08;自动加住…