張嘉敏
摘??要:現(xiàn)在科技的飛速發(fā)展使軟件的數(shù)量和規(guī)模急劇增加,所以軟件開發(fā)不單單是一個人能完成的工作,而是需要各種成員來配合,完成計劃、分析、設(shè)計、編碼、測試、維護等一系列工作。為了在更大程度上保證軟件產(chǎn)品的質(zhì)量,軟件的制造過程是需要進行監(jiān)控的,軟件工程必須科學(xué)、合理,所以在軟件項目中提出了軟件生命周期的概念。
關(guān)鍵詞:軟件;生命周期;模型
1引言
和人一樣,一個軟件產(chǎn)品或軟件系統(tǒng)的誕生也是要經(jīng)歷從孕育、出生、嬰兒、兒童、青年、中年、老年、死亡整個過程,電子商務(wù)網(wǎng)站也是這樣的,要經(jīng)歷一個漫長而復(fù)雜的過程。任何一個電子商務(wù)系統(tǒng)都需要不斷更新,不斷維護,去適應(yīng)環(huán)境的變化,防止它因為不適應(yīng)而被淘汰,這就是軟件的生命周期。根據(jù)生命周期模型把電子商務(wù)網(wǎng)站整個軟件生存周期劃分為若干階段,將任務(wù)分給每一個階段,使復(fù)雜軟件開發(fā)變的容易控制和管理。
2軟件生命周期的階段
一、問題定義,首先要求分析員了解到客戶需要解決的問題,然后寫出工程目標和范圍的說明,并形成一個完整的書面報告,提交給用戶并得到用戶對這份報告的確認。解決一個問題不能很好地明確該問題是什么以及該問題的目標是什么最終得出的結(jié)果極有可能是沒有任何意義的,雖然說明確地定義一個問題是很重要的,但是在現(xiàn)實生活中卻是極易被忽略掉的。進行該階段的人設(shè)成為系統(tǒng)分析員,他通過一系列詳細的了解,如:明確客戶需要什么樣的產(chǎn)品,有什么具體要求等,隨后作最后的書面報告,并且,雙方要意見一致,客戶認可這份報告。
二、可行性研究,關(guān)鍵是要想上個階段提出的問題是否有解決辦法,因為不是所有的問題都是能解決的,如果解決不了,就沒有必要在這個問題上浪費時間和金錢,這個階段就是要確定問題是否能解決而不是解決問題。系統(tǒng)分析員需要從各種方面進行分析并形成一個可行性研究報告。對于電子商務(wù)網(wǎng)站來說,需要考慮經(jīng)費的問題,所以要提前對收益和成本進行分析。這個階段的目的是,用最小代價最短時間明確是否可以解決,關(guān)鍵的就是,確定在上一階段中確定了的問題是否有可以解決的方法,而不是去解決這個問題。進行這個階段的人設(shè)也是系統(tǒng)分析員,他要進一步地明確客戶的需求,提出各種解決該問題的方案,對每一種方案都從多重角度進行分析,如技術(shù)層面、經(jīng)濟層面、社會因素層面等,最后確定這個項目是否要開展。
三、需求分析,要確定目標系統(tǒng)要做什么,要完成什么事情。第二個階段提出的研究不是準確的,只是進行粗略的分析,但是本階段是要求有清晰、準確的結(jié)果,然后通過分析員和客戶的交流得出需求規(guī)格說明書。B2C電子商務(wù)網(wǎng)站是一個用于交易的系統(tǒng),商家在網(wǎng)上發(fā)關(guān)于商品的各種信息,客戶進行選購和支付。最后進行網(wǎng)上的交易,所以要滿足商家管理商品、訂單和客戶能在線看商品信息、購物的需求。但是當系統(tǒng)出現(xiàn)新的需求時,不用改變原有的結(jié)構(gòu),就能擴展。
四、概要設(shè)計,基本任務(wù)是要知道實現(xiàn)目標系統(tǒng)的方法。首先軟件工程師應(yīng)該設(shè)計出多種方法,然后分析各個方法的優(yōu)缺點,考慮各種因素后得出一種最佳方案并制定詳細的計劃。此時與客戶進行溝通交流,若客戶接受該方案,則進行下一步的工作。接下來的工作就是對目標系統(tǒng)中包含的程序進行模塊的劃分、確定模塊的組成以及確定各模塊之間的關(guān)系,設(shè)計出一個完整的體系結(jié)構(gòu),形成總體設(shè)計說明書。
五、詳細設(shè)計,要把問題具體化,要制定實現(xiàn)系統(tǒng)的具體方法,這個階段要設(shè)計出模塊的算法和數(shù)據(jù)結(jié)構(gòu),不是編寫程序。
六、編碼和單元測試,選擇語言,用工具把設(shè)計的結(jié)果翻譯,翻譯出這個語言的正確的程序,還要容易理解,容易維護。這一階段才像是平常學(xué)校里進行的實驗課一樣,進行代碼的編寫和測試,當學(xué)習(xí)了軟件工程導(dǎo)論這門課程之后才發(fā)現(xiàn)原來一個系統(tǒng)的實現(xiàn),并不僅僅是編寫代碼那么簡單且編寫代碼也不是系統(tǒng)實現(xiàn)的最主要過程,實際上一個目標系統(tǒng)的實現(xiàn)包括多個過程,每一步都不允許有任何遺漏與差錯,想得到一個預(yù)期的結(jié)果,就離不開團隊中每個成員的分工合作,離不開每個成員貢獻的每一份力量。
七、綜合測試,通過測試要發(fā)現(xiàn)系統(tǒng)中所存在的各種問題,要測試軟件是否能滿足用戶要求。對這個案例進行分析,是要考慮系統(tǒng)的整體性能,測試時,需要先在內(nèi)部進行,,然后按照說明書的規(guī)定,由用戶進行驗收。
八、軟件維護,有四種維護活動:1、改正性維護:改正在軟件在使用過程中發(fā)現(xiàn)的隱藏的錯誤;2、適應(yīng)性維護:為了適應(yīng)環(huán)境的變化來進行維護;3、完善性維護:用戶有了新的要求后進行改進;4、預(yù)防性維護:防止以后軟件出現(xiàn)問題而進行的維護和修改,使軟件更完整。
3軟件生命周期的模型
生命周期又叫過程模型,它把生命周期劃分成了幾個部分,并將這幾個部分的執(zhí)行過程進行排序,常用的生命周期模型有以下幾種[1]:
瀑布模型在以前是生命周期模型中最為廣泛使用的一種模型,這個模型以酷似瀑布而聞名。在瀑布模型中,首先要求軟件工程師收集客戶的需求,然后進行分析、設(shè)計、編碼、測試和維護……顯而易見,收集需求是瀑布模型的關(guān)鍵,只有完成這一步才能進行后續(xù)的操作,因此只有這一步正確,后面才能得到正確的結(jié)果,也就是說如果在后面的階段出現(xiàn)了問題,很可能要從第一個階段進行修改,這是需要付出很大的代價的。但是瀑布模型也有優(yōu)點,由于前面階段的錯誤會導(dǎo)致后面的階段出現(xiàn)錯誤,所以這就要求每個階段都需要小組成員進行多次反復(fù)認真的檢查,嚴格提交產(chǎn)品。瀑布模型是一個由文檔驅(qū)動的模型,有很多好的思想可以學(xué)習(xí)。
快速原型模型是可以在計算機上快速建立起來的模型,它展示的是部分功能,而且可以解決瀑布模型不夠直觀的這個缺點。一般來說,可以根據(jù)用戶的需求在最短的時間內(nèi)解決用戶的迫切需要。快速原型模型首先要快速建立一個能體現(xiàn)用戶需求的簡易系統(tǒng),讓用戶試用,根據(jù)用戶試用后的意見來得出用戶想要的系統(tǒng),修改后的系統(tǒng)被用戶認可后,原型系統(tǒng)將被扔掉,因此原型的結(jié)構(gòu)并不是很重要,重點是要快速,然后工作人員就可以完成說明文檔,可以得到用戶最真實、最需要的系統(tǒng)。也就是說,在開發(fā)過程中不會出現(xiàn)文檔的錯誤而導(dǎo)致系統(tǒng)的錯誤。而且。開發(fā)人員在建立原型模型中學(xué)到很多,后續(xù)階段會盡量避免問題的出現(xiàn),降低錯誤率,可加速軟件開發(fā)并降低成本。但是,快速原型模型需要強有力的工具的支持,而這種有力的工具是缺少的并且尚未建立完整的開發(fā)標準。
增量模型也可以稱為漸增模型。這個模型涉及到一個概念,增量構(gòu)件,一個個相互作用在一起的模塊構(gòu)成了每一個增量構(gòu)件。第一個增量構(gòu)件提供最為核心的功能,如文件管理、文檔生成和文件編輯等,第二個提供了更加完整的文檔生成和編輯功能,不斷重復(fù)上述的倆個內(nèi)容,直至最終產(chǎn)品的產(chǎn)生。用戶需要一些有用的工作產(chǎn)品時,該模型可以在較短時間內(nèi)完成,但是當每一次并入增量的時候,會破壞原來已經(jīng)構(gòu)好了的東西。
4總結(jié)
當你明確用戶需求的時候可以采用瀑布模型;在分析師能力不足、用戶經(jīng)驗不足或者需要快速得到系統(tǒng)軟件的時候一定要使用快速原型模型;在沒有辦法很好的規(guī)劃系統(tǒng)時盡量使用增量模型或者螺旋模型,同時在得不到用戶穩(wěn)定的需求時建議用增量模型;也可將多種模型很好的結(jié)合起來一起使用,我們只有很好的了解生命周期才能做出一個合格的軟件。
參考文獻
[1] 顧明.軟件工程中幾種常用軟件生命周期模型的簡介[J].計算機時代,2003(01):20-21.
科學(xué)導(dǎo)報·學(xué)術(shù)2020年36期