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