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

news2024/9/24 6:01:04

目录

前言

重点一览

软件维护的定义

四种类型的维护

软件维护的必要性

软件维护的成本

软件维护的困难性

可维护性的定义

决定软件可维护性的因素

软件维护的过程模型

维护费用估算

软件再工程

软件逆向工程

本章小结


前言

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


重点一览

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


软件维护的定义

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


四种类型的维护

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

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


软件维护的必要性

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

软件维护的成本

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

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

软件维护的困难性

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

可维护性的定义

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

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

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


决定软件可维护性的因素

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

软件维护的过程模型


维护费用估算


软件再工程

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


软件逆向工程

含义:

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

考虑内容:

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

主要内容:

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

本章小结

  • 软件维护可以分为纠错性维护、适应性维护、完善性维护、预防性维护
  • 软件维护实践中经常会遇到各种困难,需要在技术、管理方面进行考虑,并对维护费用进行估算
  • 软件维护按IEEE维护过程模型可以分为七个阶段
  • 程序的理解对软件维护具有重要意义,程序理解的任务就是要揭示程序的功能与实现机制
  • 软件的再工程是对现有软件进行仔细审查和改造,进行重新构造,最终成为一个新的形式。六种活动构成了再工程的循环模型
  • 软件逆向工程包括数据、处理和用户界面等逆向工程
     

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发【贰】

随手拍拍💁‍♂️📷 日期: 2023.01.28 地点: 台州 介绍: 吃完午饭后走在门前的步行道上,恰逢疫情高峰,整条步行道上只有我一个人,旁边的河面上时而掠过几只水鸟,试图打破这宁静的画面。墙上的涂鸦见证了疫情…

华为OD机试题,用 Java 解【人数最多的站点】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

华为OD机试题,用 Java 解【最小传递延迟】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

Java-扑克牌的创建以及发放

Java-扑克牌的创建以及发放题目:创建一个扑克牌(不需要包含大小王),分别分发给3个人,一个人发5张牌,输出结果要求包含全套牌(52张牌),以及3个人各自的牌的花色以及数字。1.扑克牌的源代码2.扑克牌运行结果3.扑克牌代码…

一种多场景通用备份容灾方案

导购链路中,因为业务对SLA的要求和下游无法保持一致,导致很多业务场景需要使用备份容灾。如当业务依赖的下游偶现异常或者超时的情况,在下游无法提供强依赖的数据时,为保证不空窗且当前业务对数据实时性要求不高时,可以…

【数据结构】单链表的C语言实现--万字详解介绍

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1.链表1.1 链表的概念…

基于MSAM-YOLOv5的内河航道船舶识别方法

摘 要 针对内河航道上无人船识别目标时受背景复杂性和分布多样性影响而存在漏检的问题,提出了一种基于YOLOv5(you only look once)的算法。首先,提出了一种注意力模块MSAM(multiscale attention module,多尺度注意力模块),MSA…

【新型密集采样网络:遥感超分】

Remote Sensing Image Super-Resolution Using Novel Dense-Sampling Networks (基于新型密集采样网络的遥感图像超分辨率) 超分辨率技术在提高遥感数据的空间分辨率、克服星载成像系统的物理限制等方面发挥着重要作用。基于卷积神经网络(C…

可视化技术第一节课

主要内容通过echarts实现在网页上显示图表实现不同类型图表的转换实际操作&#xff08;1&#xff09;安装echarts如果想要安装echarts可以参考&#xff1a;安装步骤当然我们可以直接在我们的代码里面添加连接直接引用<script src"http://cdn.bootcss.com/echarts/4.8.0…

buu [BJDCTF2020]rsa_output 1 SameMod 1

[BJDCTF2020]rsa_output 1&#xff1a; 题目描述&#xff1a; {210583393373542878475341075446136053050154410905089240941988166912191033995268001128024163830889952539088574602667269256158268953033778016148293640346244751958599979431463055883159391307774504851…

2.27日报

情报上传接口添加字段&#xff1a;问题分配 调试手机号登录接口 解决困惑已久的bug&#xff1a;解析不到token; 问题描述&#xff1a; 在局域网下&#xff0c;前端页面请求时在请求头里携带token信息&#xff0c;后台获取不到header里的token参数&#xff0c;但是使用postma…

阶段八:服务框架高级(第六章:ElasticSearch3)

阶段八&#xff1a;服务框架高级&#xff08;第六章&#xff1a;ElasticSearch3&#xff09;Day-第六章&#xff1a;ElasticSearch分布式搜索引擎30.学习目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法&#xff08;桶聚合&#xff09;1.2.2.聚合结果排序1.2…

软件测试面试题 —— 整理与解析(2)

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;&#x1f30e;【Austin_zhai】&#x1f30f; &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xf…

python学生信息管理系统

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;python学生信息 免费获取完整源码源文件配置教程说明等 在IDLE中运行《学生信息管理系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时&#xff0c;有两种方…

SpringBoot2入门 第一个HelloWorld(参考尚硅谷SpringBoot2零基础入门教程)

文章目录0 官方文档1 系统要求2 maven设置3 HelloWorld3.0 需求3.1 创建Maven工程3.2 引入依赖3.3 创建主程序3.4 编写业务3.5 测试3.6 简化配置3.7 简化部署0 官方文档 https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/html/index.html 1 系统要求 想要运…

RFS自动化测试工具安装与使用总结

一&#xff0c;调试 1&#xff0c;在调试时&#xff0c;总时提示“无法打开浏览器” 解决办法&#xff1a; 1&#xff0c;把浏览器的代理关闭 2&#xff0c;把浏览器的显示比例调到100% 3&#xff0c;在IE设置的安全选项中&#xff0c;把启用保护模式开启 4&#xff0c;去除进…

layui框架学习(12:进度条)

进度条是应用系统中的常见元素&#xff0c;无论是上传文件、下载文件、加载内容时都会显示进度条&#xff0c;Layui支持设置线条形进度条的样式&#xff0c;同时支持通过element模块动态操作进度条。   进度条样式分为两级结构&#xff0c;顶层一般为div元素&#xff0c;其cl…

【Opencv项目实战】背景替换:动态背景移除与替换(cvzone)

文章目录一、项目思路二、环境布置2.1、cvzone安装2.2、MediaPipe安装2.3、常见问题2.4、注意事项三、算法详解3.1、segmentor.removeBG()&#xff1a;去除背景&#xff08;抠出图像中的人&#xff09;3.2、cvzone.stackImages()&#xff1a;堆叠图像3.3、fpsReader.update()&a…

Hot Chocolate 构建 GraphQL .Net Core 服务

Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任何服务或数据源&#xff0c;并创建一个有凝聚力的服务&#xff0c;为您的消费者提供统一的 API。 我会在 .NET 应用中使用…

mysql一两种索引方式hash和btree

1. Hash索引&#xff1a; Hash 索引结构的特殊性&#xff0c;其检索效率非常高&#xff0c;索引的检索可以一次定位&#xff0c;不像B-Tree 索引需要从根节点到枝节点&#xff0c;最后才能访问到页节点这样多次的IO访问&#xff0c;所以 Hash 索引的查询效率要远高于 B-Tree 索…