交付和维护
交付和維護(hù)
- 交 付
- 項(xiàng)目交付工作
- 項(xiàng)目實(shí)施
- 客戶培訓(xùn)
- 項(xiàng)目驗(yàn)收
- 軟件部署定義
- 軟件部署作用
- 軟件部署模式
- 面向單機(jī)軟件的部署模式
- 集中式服務(wù)器應(yīng)用部署
- 集群式服務(wù)器應(yīng)用部署
- 持續(xù)集成與交付
- 常見的軟件交付過程
- 持續(xù)集成的交付過程
- 調(diào) 試
- 調(diào)試過程
- 調(diào)試途徑
- 維 護(hù)
- 改正性維護(hù)
- 適應(yīng)性維護(hù)
- 擴(kuò)充與完善性維護(hù)
- 預(yù)防性維護(hù)
- 影響軟件維護(hù)的因素
- 文 檔
- 用戶文檔
- 系統(tǒng)文檔
- 提高可維護(hù)性的方法
- 軟件維護(hù)的標(biāo)準(zhǔn)化
- 結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)
- 軟件維護(hù)過程
- 軟件維護(hù)策略
交 付
項(xiàng)目交付工作
項(xiàng)目驗(yàn)收交付時,還有三項(xiàng)工作在等著:實(shí)施、培訓(xùn)、驗(yàn)收
驗(yàn)收后的項(xiàng)目才正式進(jìn)入“維護(hù)”階段
項(xiàng)目實(shí)施
項(xiàng)目實(shí)施是將軟件系統(tǒng)部署到客戶方的計(jì)算機(jī)系統(tǒng)上,協(xié)助客戶準(zhǔn)備基礎(chǔ)數(shù)據(jù),使軟件系統(tǒng)順利上線運(yùn)行。
??保證軟件符合需求,質(zhì)量過關(guān)
全面做好測試工作(集成測試、功能測試、性能測試)
??制定實(shí)施計(jì)劃
要發(fā)布的代碼版本、數(shù)據(jù)庫創(chuàng)建方式、基礎(chǔ)數(shù)據(jù)準(zhǔn)備方式
??準(zhǔn)備好程序代碼和相關(guān)文檔
用戶手冊以及其他系統(tǒng)文檔(如需求說明書、設(shè)計(jì)文檔等)
客戶培訓(xùn)
在系統(tǒng)部署完成、基礎(chǔ)數(shù)據(jù)準(zhǔn)備齊全之后,應(yīng)該組織客戶培訓(xùn),使其掌握對軟件系統(tǒng)的使用和操作。
??選擇合適的培訓(xùn)人員
經(jīng)驗(yàn)豐富、了解業(yè)務(wù)和系統(tǒng)
??準(zhǔn)備好培訓(xùn)內(nèi)容
不要臨時抱佛腳
??制定培訓(xùn)計(jì)劃
與客戶溝通協(xié)調(diào),安排時間
項(xiàng)目驗(yàn)收
客戶對系統(tǒng)進(jìn)行驗(yàn)收測試,包括范圍核實(shí)(用戶需求是否全部實(shí)現(xiàn))和質(zhì)量核實(shí)(質(zhì)量屬性是否滿足要求)。
軟件部署定義
軟件部署是軟件生命周期中的一個重要環(huán)節(jié),屬于軟件開發(fā)的后期活動,即通過配置、安裝和激活等活動來保障軟件制品的后續(xù)運(yùn)行。
部署技術(shù)影響著整個軟件過程的運(yùn)行效率和投入成本,軟件系統(tǒng)部署的管理代價占到整個軟件管理開銷的絕大部分。
軟件配置過程極大地影響著軟件部署結(jié)果的正確性,應(yīng)用系統(tǒng)的配置是整個部署過程中的主要錯誤來源。
軟件部署作用
基本目的:支持軟件運(yùn)行,滿足用戶需求,使得軟件系統(tǒng)能夠被直接使用。
?? 保障軟件系統(tǒng)的正常運(yùn)行和功能實(shí)現(xiàn)
?? 簡化部署的操作過程,提高執(zhí)行效率
?? 同時還必須滿足軟件用戶在功能和非功能屬性方面的個性化需求
軟件部署模式
面向單機(jī)軟件的部署模式
面向單機(jī)軟件的部署模式:包括安裝、配置和卸載,該部署模式主要適用于運(yùn)行在操作系統(tǒng)之上的單機(jī)類型的軟件。
部署操作的執(zhí)行功能主要通過腳本編程的方式來實(shí)現(xiàn),以腳本語言編寫的操作序列來支持諸如軟件的安裝和注冊。
集中式服務(wù)器應(yīng)用部署
集中式服務(wù)器應(yīng)用部署:適用于用戶訪問量小(500人以下)、硬件環(huán)境要求不高的情況,諸如中小企業(yè)、高校在線學(xué)習(xí)、實(shí)訓(xùn)平臺等。
集群式服務(wù)器應(yīng)用部署
集群式服務(wù)器應(yīng)用部署:適用于并發(fā)用戶訪問量大(10000以上)、對系統(tǒng)穩(wěn)定性和性能要求高的分布式平臺部署。
持續(xù)集成與交付
持續(xù)集成是一項(xiàng)軟件開發(fā)實(shí)踐,團(tuán)隊(duì)成員經(jīng)常集成自己的工作,通常每人每天至少集成一次,每次集成通過自動化構(gòu)建完成。
?? 所有開發(fā)人員需要在本地機(jī)器上進(jìn)行本地構(gòu)建,然后再提交到版本控制庫中,以免影響持續(xù)集成。
??開發(fā)人員每天至少向版本控制庫中提交一次代碼,至少從版本控制庫中更新一次代碼到本地機(jī)器。
??需要有專門的集成服務(wù)器來執(zhí)行集成構(gòu)建,并通過自動化的構(gòu)建(包括編譯、發(fā)布、自動化測試)來驗(yàn)證,從而盡快地發(fā)現(xiàn)集成錯誤。
當(dāng)有了持續(xù)集成需要的構(gòu)建服務(wù)器和腳本之后,下一個問題是:
持續(xù)交付:以自動化或半自動化方式,將構(gòu)建版本從一個環(huán)境提送到更接近實(shí)際使用的交付準(zhǔn)備環(huán)境中。
?? 一周內(nèi)平均部署幾十次,幾乎每個開發(fā)人員的每次修改就會導(dǎo)致 一次部署。
?? 這不僅僅意味著可以更快地從用戶那里得到使用反饋,更可以迅速對產(chǎn)品進(jìn)行改進(jìn), 更好地適應(yīng)用戶的需求和市場的變化。
常見的軟件交付過程
對于單個項(xiàng)目來說,整個過程大體上是一個典型的瀑布開發(fā)過程。
該產(chǎn)品線有很多并行項(xiàng)目,為了避免互相干擾可能帶來的沖突,每個項(xiàng)目啟動后都會重新在主干上拉出分支,在上線前才進(jìn)行合并。
持續(xù)集成的交付過程
調(diào) 試
**調(diào)試(也稱為糾錯)**作為成功測試的后果出現(xiàn),也就是說,調(diào)試是在測試發(fā)現(xiàn)錯誤之后排除錯誤的過程。
雖然調(diào)試應(yīng)該而且可以是一個有序過程,但是,目前它在很大程度上仍然是一項(xiàng)技巧。
軟件工程師在評估測試結(jié)果時,往往僅面對著軟件錯誤的癥狀,也就是說,軟件錯誤的外部表現(xiàn)和它的內(nèi)在原因之間可能并沒有明顯的聯(lián)系。調(diào)試就是把癥狀和原因聯(lián)系起來的尚未被人深入認(rèn)識的智力過程。
調(diào)試過程
調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動。調(diào)試工作如此困難,可能心理方面的原因多于技術(shù)方面的原因。
調(diào)試途徑
無論采用什么方法,調(diào)試的目標(biāo)都是尋找軟件錯誤的原因并改正錯誤。通常需要把系統(tǒng)地分析、直覺和運(yùn)氣組合起來,才能實(shí)現(xiàn)上述目標(biāo)。
一般說來,有下列3種調(diào)試途徑可以采用:
1、蠻干法 — 逐點(diǎn)(單步)跟蹤
2、回溯法 — 從出錯處向上追朔
3、原因排除法 — 對分查找法、歸納法和演繹法
維 護(hù)
軟件維護(hù)的定義
軟件維護(hù) ---- 就是在軟件已經(jīng)交付使用之后,為保證軟件在相當(dāng)長的時期能夠正常運(yùn)作所進(jìn)行的軟件活動。
維護(hù)的類型有四種:
改正性維護(hù)
適應(yīng)性維護(hù)
擴(kuò)充與完善性維護(hù)
預(yù)防性維護(hù)
改正性維護(hù)
在軟件交付使用后,因開發(fā)時測試的不徹底、不完全,必然會有部分隱藏的錯誤遺留到運(yùn)行階段。
這些隱藏下來的錯誤在某些特定的使用環(huán)境下就會暴露出來。
為了識別和糾正軟件錯誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,所進(jìn)行的診斷和改正錯誤的過程就叫做改正性維護(hù)。
適應(yīng)性維護(hù)
在使用過程中,下面情況可能發(fā)生變化。
外部環(huán)境(新的硬、軟件配置)
數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲介質(zhì))
為使軟件適應(yīng)這種變化,而去修改軟件的過程就叫做適應(yīng)性維護(hù)。
擴(kuò)充與完善性維護(hù)
在軟件的使用過程中,用戶往往會對軟件提出新的功能與性能要求。
為了滿足這些要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
這種情況下進(jìn)行的維護(hù)活動叫做擴(kuò)充與完善性維護(hù)。
預(yù)防性維護(hù)
預(yù)防性維護(hù)是為了提高軟件的可維護(hù)性、可靠性等,為以后進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。
預(yù)防性維護(hù)定義為:采用先進(jìn)的軟件工程方法對需要維護(hù)的軟件或軟件中的某一部分(重新)進(jìn)行設(shè)計(jì)、編制和測試。
各種維護(hù)所占比例:
影響軟件維護(hù)的因素
維護(hù)的費(fèi)用和代價
維護(hù)費(fèi)用僅僅是軟件維護(hù)的明顯代價。還有許多不明顯的代價。
維護(hù)的問題
理解別人寫的程序通常非常困難
需要維護(hù)的軟件往往沒有合格的文檔
當(dāng)要求對軟件進(jìn)行維護(hù)時,不能指望由開發(fā)人員仔細(xì)說明軟件
絕大多數(shù)軟件在設(shè)計(jì)時沒有考慮將來的修改軟件維護(hù)不是一項(xiàng)吸引人的工作
文 檔
文檔是影響軟件可維護(hù)性的決定因素。往往文檔比程序代碼更重要。
軟件系統(tǒng)的文檔可以分為用戶文檔和系統(tǒng)文檔兩類。
---- 用戶文檔主要描述系統(tǒng)功能和使用 方法,并不關(guān)心這些功能是怎樣實(shí)現(xiàn)的;
---- 系統(tǒng)文檔描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測試等各方面的內(nèi)容。
軟件文檔應(yīng)該滿足下述要求:
(1) 必須描述如何使用這個系統(tǒng),沒有這種描述時即使是最簡單的系統(tǒng)也無法使用;
(2) 必須描述怎樣安裝和管理這個系統(tǒng);
(3) 必須描述系統(tǒng)需求和設(shè)計(jì);
(4) 必須描述系統(tǒng)的實(shí)現(xiàn)和測試,以便使系統(tǒng)成為可維護(hù)的。
用戶文檔
用戶文檔是用戶了解系統(tǒng)的第一步,它應(yīng)該能使用戶獲得對系統(tǒng)的準(zhǔn)確的初步印象。文檔的結(jié)構(gòu)方式應(yīng)該使用戶能夠方便地根據(jù)需要閱讀有關(guān)的內(nèi)容。
用戶文檔至少應(yīng)該包括下述5方面的內(nèi)容:
(1) 功能描述; (2) 安裝文檔;
(3) 使用手冊; (4) 參考手冊;
(5) 操作員指南(如需要有系統(tǒng)操作員的話) 。
上述內(nèi)容可以分別作為獨(dú)立的文檔,
也可以作為一個文檔的不同分冊,
具體做法應(yīng)該由系統(tǒng)規(guī)模決定。
系統(tǒng)文檔
---- 所謂系統(tǒng)文檔指從問題定義、需求說明到驗(yàn)收測試計(jì)劃這樣一系列和系統(tǒng)實(shí)現(xiàn)有關(guān)的文檔。
---- 描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測試的文檔對于理解程序和維護(hù)程序來說是極端重要的。
---- 和用戶文檔類似,系統(tǒng)文檔的結(jié)構(gòu)也應(yīng)該能把讀者從對系統(tǒng)概貌的了解,引導(dǎo)到對系統(tǒng)每個方面每個特點(diǎn)的更形式化更具體的認(rèn)識。
提高可維護(hù)性的方法
建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級
使用提高軟件質(zhì)量的技術(shù)和工具
進(jìn)行明確的質(zhì)量保證審查
選擇可維護(hù)的程序設(shè)計(jì)語言
改進(jìn)程序的文檔
軟件維護(hù)的標(biāo)準(zhǔn)化
IEEE 1219《軟件維護(hù)標(biāo)準(zhǔn)》
修改請求
分類與鑒別
分析
設(shè)計(jì)
實(shí)現(xiàn)
系統(tǒng)測試
驗(yàn)收試驗(yàn)
交付
結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)
軟件維護(hù)過程
維護(hù)組織
維護(hù)報(bào)告
工作流程
維護(hù)記錄的保存
對維護(hù)的評價
軟件維護(hù)策略
維護(hù)準(zhǔn)備
軟件維護(hù)的范圍
過程的剪裁
指定由誰維護(hù)
維護(hù)成本的估計(jì)
維護(hù)策劃
維護(hù)計(jì)劃、維護(hù)計(jì)劃指南
資源分析
人力資源、環(huán)境資源、財(cái)政資源
小 結(jié):
軟件維護(hù)的4類活動
(改正性、適應(yīng)性、完善性、預(yù)防性)
決定軟件可維護(hù)性的基本要素
(可理解、可測試、可修改、可移植和可重用性)
文檔是影響軟件可維護(hù)性的決定因素
總結(jié)
- 上一篇: Instagram 图谱 API
- 下一篇: 【ML特征工程】第 6 章 :降维:用