交付和維護

交 付

項目交付工作

項目驗收交付時,還有三項工作在等着:實施、培訓、驗收
在這裏插入圖片描述
驗收後的項目才正式進入“維護”階段

項目實施

項目實施是將軟件系統部署到客戶方的計算機系統上,協助客戶準備基礎數據,使軟件系統順利上線運行。

• 保證軟件符合需求,質量過關
全面做好測試工作(集成測試、功能測試、性能測試)
• 制定實施計劃
要發佈的代碼版本、數據庫創建方式、基礎數據準備方式
• 準備好程序代碼和相關文檔
用戶手冊以及其他系統文檔(如需求說明書、設計文檔等)

客戶培訓

在系統部署完成、基礎數據準備齊全之後,應該組織客戶培訓,使其掌握對軟件系統的使用和操作。

• 選擇合適的培訓人員
經驗豐富、瞭解業務和系統
• 準備好培訓內容
不要臨時抱佛腳
• 制定培訓計劃
與客戶溝通協調,安排時間

項目驗收

客戶對系統進行驗收測試,包括範圍覈實(用戶需求是否全部實現)和質量覈實(質量屬性是否滿足要求)。

軟件部署定義

軟件部署是軟件生命週期中的一個重要環節,屬於軟件開發的後期活動,即通過配置、安裝和激活等活動來保障軟件製品的後續運行。

部署技術影響着整個軟件過程的運行效率和投入成本,軟件系統部署的管理代價佔到整個軟件管理開銷的絕大部分。
軟件配置過程極大地影響着軟件部署結果的正確性,應用系統的配置是整個部署過程中的主要錯誤來源。

軟件部署作用

基本目的:支持軟件運行,滿足用戶需求,使得軟件系統能夠被直接使用。
•  保障軟件系統的正常運行和功能實現
•  簡化部署的操作過程,提高執行效率
•  同時還必須滿足軟件用戶在功能和非功能屬性方面的個性化需求
在這裏插入圖片描述

軟件部署模式

面向單機軟件的部署模式

面向單機軟件的部署模式:包括安裝、配置和卸載,該部署模式主要適用於運行在操作系統之上的單機類型的軟件。

部署操作的執行功能主要通過腳本編程的方式來實現,以腳本語言編寫的操作序列來支持諸如軟件的安裝和註冊。
在這裏插入圖片描述

集中式服務器應用部署

集中式服務器應用部署:適用於用戶訪問量小(500人以下)、硬件環境要求不高的情況,諸如中小企業、高校在線學習、實訓平臺等。
在這裏插入圖片描述

集羣式服務器應用部署

集羣式服務器應用部署:適用於併發用戶訪問量大(10000以上)、對系統穩定性和性能要求高的分佈式平臺部署。
在這裏插入圖片描述

持續集成與交付

持續集成是一項軟件開發實踐,團隊成員經常集成自己的工作,通常每人每天至少集成一次,每次集成通過自動化構建完成。

•  所有開發人員需要在本地機器上進行本地構建,然後再提交到版本控制庫中,以免影響持續集成。
• 開發人員每天至少向版本控制庫中提交一次代碼,至少從版本控制庫中更新一次代碼到本地機器。
• 需要有專門的集成服務器來執行集成構建,並通過自動化的構建(包括編譯、發佈、自動化測試)來驗證,從而儘快地發現集成錯誤。

當有了持續集成需要的構建服務器和腳本之後,下一個問題是:
在這裏插入圖片描述
持續交付:以自動化或半自動化方式,將構建版本從一個環境提送到更接近實際使用的交付準備環境中。

•  一週內平均部署幾十次,幾乎每個開發人員的每次修改就會導致 一次部署。
•  這不僅僅意味着可以更快地從用戶那裏得到使用反饋,更可以迅速對產品進行改進, 更好地適應用戶的需求和市場的變化。
在這裏插入圖片描述

常見的軟件交付過程

對於單個項目來說,整個過程大體上是一個典型的瀑布開發過程。
在這裏插入圖片描述
該產品線有很多並行項目,爲了避免互相干擾可能帶來的衝突,每個項目啓動後都會重新在主幹上拉出分支,在上線前才進行合併。
在這裏插入圖片描述

持續集成的交付過程

在這裏插入圖片描述

調 試

**調試(也稱爲糾錯)**作爲成功測試的後果出現,也就是說,調試是在測試發現錯誤之後排除錯誤的過程
雖然調試應該而且可以是一個有序過程,但是,目前它在很大程度上仍然是一項技巧。
軟件工程師在評估測試結果時,往往僅面對着軟件錯誤的症狀,也就是說,軟件錯誤的外部表現和它的內在原因之間可能並沒有明顯的聯繫。調試就是把症狀和原因聯繫起來的尚未被人深入認識的智力過程。

調試過程

在這裏插入圖片描述
調試是軟件開發過程中最艱鉅的腦力勞動。調試工作如此困難,可能心理方面的原因多於技術方面的原因。

調試途徑

無論採用什麼方法,調試的目標都是尋找軟件錯誤的原因並改正錯誤。通常需要把系統地分析、直覺和運氣組合起來,才能實現上述目標。
一般說來,有下列3種調試途徑可以採用:
1、蠻幹法 — 逐點(單步)跟蹤
2、回溯法 — 從出錯處向上追朔
3、原因排除法 — 對分查找法、歸納法和演繹法

維 護

軟件維護的定義
軟件維護 ---- 就是在軟件已經交付使用之後,爲保證軟件在相當長的時期能夠正常運作所進行的軟件活動。
維護的類型有四種:
改正性維護
適應性維護
擴充與完善性維護
預防性維護

改正性維護

在軟件交付使用後,因開發時測試的不徹底、不完全,必然會有部分隱藏的錯誤遺留到運行階段。
這些隱藏下來的錯誤在某些特定的使用環境下就會暴露出來
爲了識別和糾正軟件錯誤、改正軟件性能上的缺陷、排除實施中的誤使用,所進行的診斷和改正錯誤的過程就叫做改正性維護

適應性維護

在使用過程中,下面情況可能發生變化。
外部環境(新的硬、軟件配置)
數據環境(數據庫、數據格式、數據輸入/輸出方式、數據存儲介質)

爲使軟件適應這種變化,而去修改軟件的過程就叫做適應性維護。

擴充與完善性維護

在軟件的使用過程中,用戶往往會對軟件提出新的功能與性能要求。
爲了滿足這些要求,需要修改或再開發軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性
這種情況下進行的維護活動叫做擴充與完善性維護

預防性維護

預防性維護是爲了提高軟件的可維護性、可靠性等,爲以後進一步改進軟件打下良好基礎。
預防性維護定義爲:採用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分(重新)進行設計、編制和測試
各種維護所佔比例:

在這裏插入圖片描述

影響軟件維護的因素

維護的費用和代價
維護費用僅僅是軟件維護的明顯代價。還有許多不明顯的代價。
維護的問題
理解別人寫的程序通常非常困難
需要維護的軟件往往沒有合格的文檔
當要求對軟件進行維護時,不能指望由開發人員仔細說明軟件
絕大多數軟件在設計時沒有考慮將來的修改軟件維護不是一項吸引人的工作

文 檔

文檔是影響軟件可維護性的決定因素。往往文檔比程序代碼更重要。
軟件系統的文檔可以分爲用戶文檔和系統文檔兩類。
---- 用戶文檔主要描述系統功能和使用 方法,並不關心這些功能是怎樣實現的;
---- 系統文檔描述系統設計、實現和測試等各方面的內容。

軟件文檔應該滿足下述要求:
(1) 必須描述如何使用這個系統,沒有這種描述時即使是最簡單的系統也無法使用;
(2) 必須描述怎樣安裝和管理這個系統;
(3) 必須描述系統需求和設計;
(4) 必須描述系統的實現和測試,以便使系統成爲可維護的。

用戶文檔

用戶文檔是用戶瞭解系統的第一步,它應該能使用戶獲得對系統的準確的初步印象。文檔的結構方式應該使用戶能夠方便地根據需要閱讀有關的內容。
用戶文檔至少應該包括下述5方面的內容:
(1) 功能描述; (2) 安裝文檔;
(3) 使用手冊; (4) 參考手冊;
(5) 操作員指南(如需要有系統操作員的話) 。
上述內容可以分別作爲獨立的文檔,
也可以作爲一個文檔的不同分冊,
具體做法應該由系統規模決定。

系統文檔

---- 所謂系統文檔指從問題定義、需求說明到驗收測試計劃這樣一系列和系統實現有關的文檔。
---- 描述系統設計、實現和測試的文檔對於理解程序和維護程序來說是極端重要的。
---- 和用戶文檔類似,系統文檔的結構也應該能把讀者從對系統概貌的瞭解,引導到對系統每個方面每個特點的更形式化更具體的認識。

提高可維護性的方法

建立明確的軟件質量目標和優先級
使用提高軟件質量的技術和工具
進行明確的質量保證審查
選擇可維護的程序設計語言
改進程序的文檔

軟件維護的標準化

IEEE 1219《軟件維護標準》
修改請求
分類與鑑別
分析
設計
實現
系統測試
驗收試驗
交付

結構化維護與非結構化維護

在這裏插入圖片描述

軟件維護過程

維護組織
維護報告
工作流程
維護記錄的保存
對維護的評價
在這裏插入圖片描述

軟件維護策略

維護準備
軟件維護的範圍
過程的剪裁
指定由誰維護
維護成本的估計
維護策劃
維護計劃、維護計劃指南
資源分析
人力資源、環境資源、財政資源

小 結:

軟件維護的4類活動
(改正性、適應性、完善性、預防性)

決定軟件可維護性的基本要素
(可理解、可測試、可修改、可移植和可重用性)

文檔是影響軟件可維護性的決定因素

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章