电子科技大学软件工程期末复习笔记(八):软件维护

2023-10-31

目录

前言

重点一览

软件维护的定义

四种类型的维护

软件维护的必要性

软件维护的成本

软件维护的困难性

可维护性的定义

决定软件可维护性的因素

软件维护的过程模型

维护费用估算

软件再工程

软件逆向工程

本章小结


前言

本复习笔记基于王玉林老师的课堂PPT与复习大纲,供自己期末复习与学弟学妹参考用。


重点一览

本节分值在八分,重点还是在概念理解方面。 


软件维护的定义

是指由于软件产品出现问题或需要改进而对代码及相关文档的修改,其目的是对现有软件产品进行修改的同时保持其完整性


四种类型的维护

  • 纠错性维护
  • 适应性维护
  • 完善性维护
  • 预防性维护

在维护阶段的最初一段时期,纠错性维护的工作量较大,随着错误发现率逐渐降低并趋于稳定适应性维护和完善性维护的工作量逐步增加


软件维护的必要性

  • 改正错误、改善设计;
  • 改正设计以适应新的软硬件操作环境;
  • 增加新的应用范围。

软件维护的成本

有形的维护成本是花费的金钱,无形的维护成本有更大的影响

  • 合理修复/修改请求未及时落实:使得客户不满
  • 变更结果导致新的故障:产品质量下降
  • 软件人员抽调到维护工作中:开发效率降低
  • ......

软件维护的困难性

  • 配置管理工作不到位
  • 人员变动造成的影响
  • 许多软件的可读性差
  • 时间紧、任务重的情况下处理维护请求
  • ......

可维护性的定义

是指纠正软件系统出现的错误和缺陷,以及为满足新要求进行修改、扩充或压缩的容易程度

可维护性、可使用性、可靠性是衡量软件质量的重要特性和用户十分关心的内容

软件的可维护性是软件开发阶段各个时期的关键目标


决定软件可维护性的因素

  • 主要因素
  1. 可理解性
  2. 可使用性
  3. 可测试性
  4. 可修改性
  5. 可移植性
  6. 效率
  7. 可靠性
  • 对于不同类型的维护,这其中类型的侧重点不同。

软件维护的过程模型


维护费用估算


软件再工程

定义:软件再工程(Re-engineering)指对现有软件进行仔细审查和改造,对其进行重新构造,使之成为一个新的形式,同时包括随之产生的对新形式的实现。


软件逆向工程

含义:

  • 分析程序以便在比源程序更高的抽象层次上创建出程序的某种描述的过程,也就是说,逆向工程是一个恢复设计结果的过程
  • 分析目标系统,识别系统的构件及其交互关系,并且通过高层抽象或其他形式来展现目标系统的过程

考虑内容:

  • 抽象的层次、完备性、工具与分析人员协同工作的程度、过程的方向性等因素

主要内容:

  • 数据的逆向工程
  • 处理的逆向工程
  • 用户界面的逆向工程

本章小结

  • 软件维护可以分为纠错性维护、适应性维护、完善性维护、预防性维护
  • 软件维护实践中经常会遇到各种困难,需要在技术、管理方面进行考虑,并对维护费用进行估算
  • 软件维护按IEEE维护过程模型可以分为七个阶段
  • 程序的理解对软件维护具有重要意义,程序理解的任务就是要揭示程序的功能与实现机制
  • 软件的再工程是对现有软件进行仔细审查和改造,进行重新构造,最终成为一个新的形式。六种活动构成了再工程的循环模型
  • 软件逆向工程包括数据、处理和用户界面等逆向工程
     
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

电子科技大学软件工程期末复习笔记(八):软件维护 的相关文章

随机推荐

  • linux 内核 - ioctl 函数详解

    linux 内核 ioctl 函数详解 1 概念 ioctl 是设备驱动程序中设备控制接口函数 一个字符设备驱动通常会实现设备打开 关闭 读 写等功能 在一些需要细分的情境下 如果需要扩展新的功能 通常以增设 ioctl 命令的方式实现 在
  • leetcode 907. 子数组的最小值之和

    给定一个整数数组 arr 找到 min b 的总和 其中 b 的范围为 arr 的每个 连续 子数组 由于答案可能很大 因此 返回答案模 10 9 7 leetcode题目链接 示例 1 输入 arr 3 1 2 4 输出 17 解释 子数
  • 根据数据库名生成数据库结构说明

    根据数据库名生成数据库结构说明 package com cjm common import java io File import java io FileOutputStream import java sql Connection im
  • 文件上传优化

    文件上传优化 文件的名称需要优化 服务端 保存的文件名称如果固定 那么最终会导致服务器硬盘 只会保留一个文件 对上传的文件名称优化 System currentTimeMillis new Random nextInt 1000000 jp
  • CMake - 报错:Missing variable is: CMAKE_FIND_LIBRARY_PREFIXES

    问题描述 今天学习ZeroMQ 写了一个HelloWorld的测试程序 cmake的时候 报错Missing variable is CMAKE FIND LIBRARY PREFIXES 具体CMakeLists txt内容为 cmake
  • 【第29篇】MAE:屏蔽自编码器是可扩展的视觉学习器

    文章目录 摘要 1 简介 2 相关工作 3 方法 4 ImageNet 实验 4 1 主要属性 4 2 与之前结果的比较 4 3 局部微调 5 迁移学习实验 6 讨论与结论 摘要 论文链接 https arxiv org abs 2111
  • js将后台返回的数据转化为树形结构(扁平数组转树状结构)

    前言 做项目使常遇到需要将后台返回的数据 转换为树状结构给用户展现 例如 这也是前端面试常考的算法题 一起来检测一下吧 步骤 准备一个空的树对象 遍历列表中的每个元素 对于每个元素 根据该元素的父级ID找到其对应的父节点 如果找到了父节点
  • 如何开始使用 Python 3 编程:入门

    Python 是世界上发展最快的编程语言 这种流行的编程语言已帮助无数设计师 科学家和工程师努力解决当今消费者和企业面临的重大问题 使用 Python 更智能地工作 什么是 Python 编程 Python 编程是编写代码以执行任务或解决问
  • 小象课堂在线授课教育系统

    此项目包含后端全部代码 前端包括后台和web界面的源码 数据库用的mysql 可当作课设或者毕设 还可写入自己的简历中 web界面展示 前端后台界面展示 用户管理 课程管理 内容配置 订单管理 系统管理 系统监控
  • 概述-数据服务是什么?

    数据服务是什么 我以前认为 数据服务 就是通过数据接口提供数据的方式的统称 就是你调用一个接口 我传给你一些数据 数据处理逻辑接口内已经封装了 用这些数据你可以处理某些问题 而直接查询数据的不是数据服务 后来看了 大数据之路 阿里巴巴大数据
  • FreeRTOS记录(七、FreeRTOS信号量、事件标志组、邮箱和消息队列、任务通知的关系)

    我们在前面单独介绍过FreeRTOS的任务通知和消息队列 但是在FreeRTOS中任务间的通讯还有信号量 邮箱 事件组标志等可以使用 这篇文章就这些成员与消息队列和任务通知的关系进行说明分析 增加邮箱部分 任务通知发送消息 Demo 202
  • mysql数据库表升级方案_一个基于mysql数据库的项目的升级解决方案小结(节选)

    1引言 数据库使用MYSQL4 0版本 随用用户数的逐步增多 因为数据库版本过低而引起的抱怨也越来越多 不足也越来越明显 首先 对产品化部署产生了制约 由于MYSQL4 0数据库的配置文件my ini是存放在Windows的系统目录下的 同
  • window域名 映射 如何将域名映射到本地IP

    域名 映射 如何将域名映射到本地IP 万网域名映射 本地电脑映射 若果是自己注册的域名 直接解析到本地 IP 127 0 0 1 就可以使用此域名来访问自己的计算机 若果是想随便制定一个域名映射到本机下面讲解 C Windows Syste
  • CTF - Base64换表

    Base64换表 CTF汇总 原题 复制保存为16进制即可得文件 IDA显示 题目解读 提示 base64程序逆向 题目特点 Base64算法特征 Base64表格 位移 等号补位 结论 Base64变体 换表 Base64变体 题外话 解
  • 字符串变换最小字符串

    题目 给定一个字符串s 最多只能进行一次变换 返回变换后能得到的最小字符串 按照字典序进行比较 变换规则 交换字符串中任意两个不同位置的字符 解题思路 1 对字符串按照字典序进行排序 找到字典序最小的字符串 2 找到这个字符串中字典序最小的
  • 区块链重要基础知识3——签名算法考量以及实现并实验

    签名以及身份的管理 1 签名 1 1 特性 仅自己可以自己特定的签名 但是别人一看就知道就可以进行验证 与特定文件关联 不能拿着我这个签名去与其他文件关联 1 2 签名算法过程 1 2 1 总的流程
  • CANOpen DS402伺服电机控制项目总结

    公司的电机控制要统一到CANOpen上面来 协议栈用的CanFestival 配合RTThread进行控制 要控制伺服电机 最先搞明白的就是控制字6040和状态字6041 一共使用过三个厂家的伺服电机 控制字都是一样的 但是状态字各家有自己
  • DevOps到底是什么意思?看完这篇不要再问我了

    提到DevOps这个词 我相信很多人一定不会陌生 作为一个热门的概念 DevOps近年来频频出现在各大技术社区和媒体的文章中 备受行业大咖的追捧 也吸引了很多吃瓜群众的围观 那么 DevOps是什么呢 有人说它是一种方法 也有人说它是一种工
  • Yolov5

    Yolov5 文章目录 Yolov5 一 Yolov5 现状 二 Yolov5 模型结构 一 Yolov5 2 0 二 Yolov5 6 0 输入端 BackBone基准网络 Head网络 三 Yolov5 模型推理流程 四 Yolov5
  • 电子科技大学软件工程期末复习笔记(八):软件维护

    目录 前言 重点一览 软件维护的定义 四种类型的维护 软件维护的必要性 软件维护的成本 软件维护的困难性 可维护性的定义 决定软件可维护性的因素 软件维护的过程模型 维护费用估算 软件再工程 软件逆向工程 本章小结 前言 本复习笔记基于王玉