系統架構設計專業技能 · 軟件工程之軟件測試與維護(六)【系統架構設計師】

系列文章目錄

系統架構設計專業技能 · 網絡規劃與設計(三)【系統架構設計師】
系統架構設計專業技能 · 系統安全分析與設計(四)【系統架構設計師】
系統架構設計高級技能 · 軟件架構設計(一)【系統架構設計師】
系統架構設計高級技能 · 系統質量屬性與架構評估(二)【系統架構設計師】
系統架構設計高級技能 · 軟件可靠性分析與設計(三)【系統架構設計師】

現在的一切都是為將來的夢想編織翅膀,讓夢想在現實中展翅高飛。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

系統架構設計專業技能 · 軟件工程之軟件測試與維護(六)

  • 系列文章目錄
  • 一、軟件測試
    • 1.1 測試類型
    • 1.2 測試階段
    • 1.3 軟件調試
    • 1.4 軟件度量
  • 二、軟件維護
    • 2.1、遺留系統演化策略
    • 2.2、新舊系統的轉換策略
    • 2.3、數據轉換和遷移
    • 2.4、影響軟件可維護性的因素
    • 2.5、軟件維護類型

在這里插入圖片描述

一、軟件測試

盡早、不斷的進行測試
程序員避免測試自己設計的程序
既要選擇有效、合理的數據,也要選擇無效、不合理的數據
修改后應進行回歸測試
尚未發現的錯誤數量與該程序已發現錯誤數成正比

1.1 測試類型

在這里插入圖片描述

1.2 測試階段

在這里插入圖片描述

在這里插入圖片描述

1.3 軟件調試

測試是發現錯誤,調試是找出錯誤的代碼和原因。

調試需要確定錯誤的準確位置;確定問題的原因并設法改正;改正后要進行回歸測試。

調試的方法有:蠻力法、回溯法(從出錯的地方開始,向回找)、原因排除法(找出所有可能的原因,逐一進行排除,具體包括演繹法、歸納法、二分法)。

1.4 軟件度量

軟件的兩種屬性:外部屬性指面向管理者和用戶的屬性,可直接測量,一般為性能指標。內部屬性指軟件產品本身的的屬性,如可靠性等,只能間接測量。

McCabe度量法:又稱為環路復雜度,假設有向圖中有向邊數為m,節點數為n,則此有向圖的環路復雜度為m-n+2。

注意m和n代表的含義不能混淆,可以用一個最簡單的環路來做特殊值記憶此公式,另外,針對一個程序流程圖,每一個分支邊(連線)就是一條有向邊,每一條語句(語句框)就是一個頂點。

二、軟件維護

2.1、遺留系統演化策略

遺留系統(Legacy System)是指任何基本上不能進行修改和演化以滿足新的變化了的業務需求的信息系統。

遺留系統評價的目的是為了獲得對遺留系統的更好的理解,這是遺留系統演化的基礎,是任何遺留系統演化項目的起點。主要評價方法包括度量系統技術水準、商業價值和與之關聯的企業特征,其結果作為選擇處理策略的基礎。

在這里插入圖片描述

  • 改造策略,高水平、高價值區,即遺留系統的技術含量較高,本身還有極大的生命力。系統具有較高的業務價值,基本上能夠滿足企業業務運作和決策支持的需要。這種系統可能建成的時間還很短,稱這種遺留系統的演化策略為改造。改造包括系統功能的增強和數據模型的改造兩個方面。系統功能的增強是指在原有系統的基礎上增加新的應用要求,對遺留系統本身不做改變;數據模型的改造是指將遺留系統的舊的數據模型向新的數據模型的轉化。
  • 繼承策略,低水平、高價值區,即遺留系統的技術含量較低,已經滿足企業運作的功能或性能要求,但具有較高的商業價值,目前企業的業務尚緊密依賴該系統。稱這種遺留系統的演化策略為繼承。在開發新系統時,需要完全兼容遺留系統的功能模型和數據模型。為了保證業務的連續性,新老系統必須并行運行一段時間,再逐漸切換到新系統上運行。
  • 集成策略,高水平、低價值區,即遺留系統的技術含量較高,但其業務價值較低,可能只完成某個部門(或子公司)的業務管理。這種系統在各自的局部領域里工作良好,但對于整個企業來說,存在多個這樣的系統,不同的系統基于不同的平臺、不同的數據模型,形成了一個個信息孤島,對這種遺留系統的演化策略為集成。
  • 淘汰策略,低水平、低價值區,即遺留系統的技術含量較低,且具有較低的業務價值。對這種遺留系統的演化策略為淘汰,即全面重新開發新的系統以代替遺留系統。完全淘汰是一種極端性策略,一般是企業的業務產生了根本變化,遺留系統已經基本上不再適應企業運作的需要;或者是遺留系統的維護人員、維護文檔資料都丟失了。經過評價,發現將遺留系統完全淘汰,開發全新的系統比改造舊系統從成本上考慮更合算。

2.2、新舊系統的轉換策略

在這里插入圖片描述

在實施新舊系統轉換時,轉換的策略通常有三種:

  • 直接轉換策略適用于新系統不太復雜或現有系統完全不能使用的場合,新系統在轉換之前必須經過詳細而嚴格的測試。
  • 并行轉換策略新系統和現有系統并行工作一段時間,經過這段時間的試運行后,再用新系統正式替換下現有系統。
  • 分段轉換策略,分段轉換策略也稱為逐步轉換策略,這種轉換方式是直接轉換方式和并行轉換方式的結合,采取分期分批逐步轉換。一般比較大的系統采用這種方式較為適宜,它能保證平穩運行,費用也不太高;或者現有系統比較穩定,能夠適應自身業務發展需要,或新舊系統轉換風險很大(例如,在線訂票系統、銀行的中間業務系統等),也可以采用分段轉換策略。分段轉換策略的優點是新舊系統的轉換震動比較小,用戶容易接受。但由于是采用漸進方式,導致新舊系統的轉換周期過長,同時由于需求的變化,給新系統的穩定造成比較大的影響。而且,分段轉換策略對系統的設計和實現都有一定的要求,在轉換過程中,需要開發新舊系統之間的接口,還需要制訂階段性的轉換目標和計劃。

2.3、數據轉換和遷移

數據遷移的主要方法大致有三種,分別是系統切換前通過工具遷移、系統切換前采用手工錄入和系統切換后通過新系統生成。
在這里插入圖片描述

數據遷移的實施可以分為三個階段,分別是數據遷移前的準備、數據轉換與遷移和數據遷移后的校驗。其中準備工作要做好以下7個方面的工作:

(1)待遷移數據源的詳細說明,包括數據的存放方式、數據量和數據的時間跨度。
(2)建立新舊系統數據庫的數據字典,對現有系統的歷史數據進行質量分析,以及新舊系統數據結構的差異分析。
(3)新舊系統代碼數據的差異分析。
(4)建立新舊系統數據庫表的映射關系,對無法映射字段的處理方法。
(5)開發或購買、部署ETL工具。
(6)編寫數據轉換的測試計劃和校驗程序。
(7)制定數據轉換的應急措施。

在數據遷移完成后,需要對遷移后的數據進行校驗。數據遷移后的校驗是對遷移質量的檢查,同時數據校驗的結果也是判斷新系統能否正式啟用的重要依據。可以通過以下兩種方式對遷移后的數據進行校驗:
(1)對遷移后的數據進行質量分析。
(2)新舊系統查詢數據對比檢查。

2.4、影響軟件可維護性的因素

  • 【可理解性】是指通過閱讀源代碼和相關文檔,了解軟件的功能和如何運行的容易程度。
  • 【可修改性】是指修改軟件的難易程度。
  • 【可測試性】是指驗證軟件程序正確的難易程度。
    可測試性好的軟件,通常意味著軟件設計簡單,復雜性低。因為軟件的復雜性越大,測試的難度也就越大。
  • 【可靠性】一個軟件的可靠性越高,需要維護的概率就會越低。
  • 【可移植性】是指將軟件從一個環境移植到新的的環境下正確運行的難易程度。
    軟件運行環境的變化是軟件維護的一種常見情形,可移植性好的軟件會降低維護的概率

2.5、軟件維護類型

軟件的維護并不只是修正錯誤,為了滿足用戶提出的增加新功能,修改現有功能以及一般性的改進要求和建議,需要進行完善性維護,他是軟件維護的重要組成部分。

  • 改正性維護【修BUG】:也稱正確性維護,指改正在系統開發階段已發生而系統測試階段尚未發現的錯誤【修正bug、錯誤】。
  • 適應性維護【應變】:指使應用軟件適應環境變化【外部環境、數據環境】而進行的修改。
  • 完善性維護【新需求】:擴充功能和改善性能而進行的修改。
  • 預防性維護【針對未來】:為了適應未來的軟硬件環境的變化,應主動增加預防性的新的功能,以使系統適應各類變化而不被淘汰。如將專用報表功能通用報表生成功能,以適應將來報表格式的變化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39474.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39474.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39474.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MAVEN利器:一文帶你了解MAVEN以及如何配置

前言: 強大的構建工具——Maven。作為Java生態系統中的重要組成部分,Maven為開發人員提供了一種簡單而高效的方式來構建、管理和發布Java項目。無論是小型項目還是大型企業級應用,Maven都能幫助開發人員輕松處理依賴管理、編譯、測試和部署等…

YOLOV7改進:加入RCS-OSA模塊,提升檢測速度

1.該文章屬于YOLOV5/YOLOV7/YOLOV8改進專欄,包含大量的改進方式,主要以2023年的最新文章和2022年的文章提出改進方式。 2.提供更加詳細的改進方法,如將注意力機制添加到網絡的不同位置,便于做實驗,也可以當做論文的創新點。 2.漲點效果:RCS-OSA模塊更加輕量化,有效提升檢…

Spring Boot業務代碼中使用@Transactional事務失效踩坑點總結

1.概述 接著之前我們對Spring AOP以及基于AOP實現事務控制的上文,今天我們來看看平時在項目業務開發中使用聲明式事務Transactional的失效場景,并分析其失效原因,從而幫助開發人員盡量避免踩坑。 我們知道 Spring 聲明式事務功能提供了極其…

uniapp條件編譯

uniapp條件編譯 uni-app 將已經將可以跨平臺兼容處理的組件及 API 等進行了封裝,但是部分平臺的特性無法跨平臺。 由此,uni-app 提供了條件編譯的方案,來處理不同平臺的特定或差異。 寫法 #ifdef: 僅在某平臺存在#ifndef&#xf…

Kafka 01——Kafka的安裝及簡單入門使用

Kafka 01——Kafka的安裝及簡單入門使用 1. 下載安裝1.1 JDK的安裝1.2 Zookeeper的安裝1.2.1 關于Zookeeper版本的選擇1.2.2 下載、安裝Zookeeper 1.3 kafka的安裝1.3.1 下載1.3.2 解壓1.3.3 修改配置文件 2. 啟動 kafka2.1 Kafka啟動2.2 啟動 kafka 遇到的問題2.2.1 問題12.2.…

Python愛心光波

文章目錄 前言Turtle入門簡單案例入門函數 愛心光波程序設計程序分析 尾聲 前言 七夕要來啦,博主在閑暇之余創作了一個愛心光波,感興趣的小伙伴們快來看看吧! Turtle入門 Turtle 是一個簡單而直觀的繪圖工具,它可以幫助你通過簡…

面試筆記:Android 架構崗,一次4小時4面的體驗

作者:橘子樹 此次面試一共4面4小時,中間只有幾分鐘間隔。對持續的面試狀態考驗還是蠻大的。 關于面試的心態,保持悲觀的樂觀主義心態比較好。面前做面試準備時保持悲觀,盡可能的做足準備。面后積極做復盤,樂觀的接受最…

基于MIV的神經網絡變量篩選

1.案例背景 一般神經網絡中所包含的網絡輸人數據是研究者根據專業知識和經驗預先選擇好的,然而在許多實際應用中,由于沒有清晰的理論依據,神經網絡所包含的自變量即網絡輸入特征難以預先確定,如果將一些不重要的自變量也引入神經網絡,會降低模型的精度,因此選擇有意義的自變量特…

ECS服務器安裝docker

? 為了安裝并配置 Docker ,你的系統必須滿足下列最低要求: 64 位 Linux 或 Windows 系統 如果使用 Linux ,內核版本必須不低于 3.10 能夠使用 sudo 權限的用戶 在你系統 BIOS 上啟用了 VT(虛擬化技術)支持 on your s…

大數據課程I4——Kafka的零拷貝技術

文章作者郵箱:yugongshiyesina.cn 地址:廣東惠州 ▲ 本章節目的 ? 掌握Kafka的零拷貝技術; ? 了解常規的文件傳輸過程; 一、常規的網絡傳輸原理 表面上一個很簡單的網絡文件輸出的過程,在OS底層&…

【java】設計模式——單例模式

單例模式要點: 一個類只需要一個實例化對象;必須自行創建實例;必須自行向整個系統提供這個實例 實現: 只提供私有構造方法;有一個該類的靜態私有對象;提供一個靜態公有方法用于創建、獲取靜態私有對象&…

iOS_crash文件的獲取及符號化(解析)

文章目錄 1. 使用 symbolicatecrash 解析 .ips 文件:2. 使用 CrashSymbolicator.py 解析 ips 文件3. 使用 atos 解析 crash 文件4. Helps4.1 .ips 文件獲取4.2 .crash 文件獲取4.3 獲取 .dSYM 和 .app 文件4.4 使用 dwarfdump 查詢 uuid 5. Tips6. 總結 1. 使用 sym…

一百五十七、Kettle——Kettle最新的官網下載地址(之前的Kettle官網已經無法下載,真坑)

一、目的 之前使用的是kettle8.2,不需要額外下載pentaho-hadoop-shims-hdp30-8.2.2018.11.00-342.jar,因為kettle8.2本身自帶 但是kettle8.2在Linux上安裝后建立共享資源庫又有問題,沒辦法,只能換成kettle9.3 結果,k…

華為網絡篇 RIPv2的基礎配置-25

難度 1復雜度1 目錄 一、實驗原理 1.1 RIP的版本 1.2 RIP的路由更新方式 1.3 RIP的計時器 1.4 RIP的防環機制 二、實驗拓撲 三、實驗步驟 四、實驗過程 總結 一、實驗原理 RIP(Routing Information Protocol,路由信息協議)&am…

微服務概述-7

Shiro 框架 Shiro 是一個用于 Java 應用程序的安全框架。它提供了身份驗證、授權、加密和會話管理等功能,可以幫助開發人員構建安全可靠的應用程序。 Java 中針對權限管理常見的有 2 個著名的框架:spring security 和 shiro shiro 基本概念 credentia…

機器學習筆記 - 基于C++的??深度學習 二、實現卷積運算

一、卷積 卷積是信號處理領域的老朋友。最初的定義如下 在機器學習術語中: I(…)通常稱為輸入 K(…)作為內核,并且 F(…)作為給定K的I(x)的特征圖。 慮多維離散域,我們可以將積分轉換為以下求和 對于二維數字圖像,我們可以將其重寫為: <

編程練習(1)

目錄 一.選擇題 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題&#xff1a; 第五題&#xff1a; ?編輯 二.編程題 第一題&#xff1a; 第二題&#xff1a; 1.暴力方法&#xff1a; 2.數組法&#xff1a; 一.選擇題 第一題&#xff1a; 解析&…

【vue】簡潔優雅的火花線、趨勢線

來由 在github發現個好看易用的vue趨勢線組件&#xff0c;特此記錄。 效果 趨勢圖生成后效果如上&#xff0c;線條為漸變色&#xff0c;可設置是否平滑。具體線條走勢&#xff0c;根據數據動態生成。 使用 安裝 npm i vuetrend -S 引入 import Vue from "vue"…

MySQL性能分析之慢查詢日志查看

一、背景 MySQL的慢查詢日志是MySQL提供的一種日志記錄,他用來記錄在MySQL中響應的時間超過閾值的語句,具體指運行時間超過long_query_time(默認是10秒)值的SQL,會被記錄到慢查詢日志中。 慢查詢日志一般用于性能分析時開啟,收集慢SQL然后通過explain進行全面分析,一…

時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測

時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測 目錄 時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測預測效果基本介紹程序設計學習總結參考資料 預測效果 基本介紹 時序預測 | MATLAB實現…