軟件開發(fā)流程的問(wèn)題(軟件工程的開發(fā)流程)
今天給各位分享軟件開發(fā)流程的問(wèn)題的知識(shí),其中也會(huì)對(duì)軟件工程的開發(fā)流程進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
- 1、軟件開發(fā)過(guò)程中會(huì)有哪些風(fēng)險(xiǎn)?
- 2、真心想知道軟件的開發(fā)過(guò)程
- 3、軟件開發(fā)流程
- 4、軟件開發(fā)過(guò)程中會(huì)遇到哪些問(wèn)題
- 5、怎么樣開發(fā)一個(gè)軟件
- 6、軟件開發(fā)過(guò)程中的常見(jiàn)問(wèn)題有哪些?
軟件開發(fā)過(guò)程中會(huì)有哪些風(fēng)險(xiǎn)?
1、未經(jīng)權(quán)威部門確認(rèn)的功能標(biāo)準(zhǔn)、開發(fā)規(guī)范以及質(zhì)量技術(shù)標(biāo)準(zhǔn),均可能導(dǎo)致軟件無(wú)法達(dá)到預(yù)期標(biāo)準(zhǔn),從而引起質(zhì)量風(fēng)險(xiǎn)。
2、在理解項(xiàng)目標(biāo)準(zhǔn)及范圍等問(wèn)題上,企業(yè)管理層、項(xiàng)目組以及技術(shù)性人員的接不一致,導(dǎo)致計(jì)劃與資金安排有所改變,因而極易引發(fā)風(fēng)險(xiǎn)。
3、潛在的維護(hù)、驗(yàn)證、接口、實(shí)現(xiàn)以及設(shè)計(jì)等環(huán)節(jié)出現(xiàn)的問(wèn)題,存在技術(shù)空白及未知領(lǐng)域,為軟件開發(fā)工作帶來(lái)較大的風(fēng)險(xiǎn)。
4、來(lái)自于外包項(xiàng)目組、客戶、國(guó)家政策以及市場(chǎng)等方面的變化及壓力,這類風(fēng)險(xiǎn)具有明顯的不可控特點(diǎn),一旦遭遇,應(yīng)謹(jǐn)慎對(duì)待,及時(shí)制定解決策略。
風(fēng)險(xiǎn)防范與控制措施
1、出臺(tái)合理的軟件開發(fā)模式與相關(guān)規(guī)程,確保開發(fā)工作合理、有序進(jìn)行,并符合國(guó)家出臺(tái)的相關(guān)標(biāo)準(zhǔn)及要求。
2、對(duì)于項(xiàng)目組全體成員的開發(fā)行為進(jìn)行嚴(yán)格規(guī)范,加強(qiáng)小組成員之間的交流與互動(dòng),以免由于溝通與交流不當(dāng),引發(fā)軟件開發(fā)風(fēng)險(xiǎn)。
3、定期開展業(yè)務(wù)和技術(shù)交流大會(huì),引導(dǎo)技術(shù)人員摒除過(guò)于落后、陳舊的工作思想,通過(guò)引進(jìn)先進(jìn)的技術(shù)、設(shè)備與驗(yàn)證方式,明確技術(shù)人員的預(yù)期發(fā)展目標(biāo),令其不斷的改進(jìn)自我、完善自我,提升技術(shù)及設(shè)備的質(zhì)量及效果。
4、對(duì)開發(fā)所用的方法及技術(shù)進(jìn)行客觀、合理的評(píng)價(jià),避免由于無(wú)法把握技術(shù)而引發(fā)風(fēng)險(xiǎn)。
5、建立完善的風(fēng)險(xiǎn)應(yīng)對(duì)程序與管理計(jì)劃,如此一來(lái),才能確保在發(fā)生風(fēng)險(xiǎn)的時(shí)候,能夠快速、合理、技術(shù)的作出反映,并通過(guò)制定適宜的策略,對(duì)風(fēng)險(xiǎn)進(jìn)行專業(yè)性處理。
真心想知道軟件的開發(fā)過(guò)程
分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語(yǔ)言
問(wèn)題描述:
希望知道軟件的開發(fā)過(guò)程
我是學(xué)軟件的一些理論上的知識(shí)我能知道,但是我想知道真正實(shí)際上是怎么運(yùn)轉(zhuǎn)的,一個(gè)真正的軟件公司的軟件設(shè)計(jì)開發(fā)發(fā)布的具體流程。
那位前輩不吝嗇賜教。
謝謝
解析:
軟件系統(tǒng)的開發(fā)是按階段進(jìn)行的,一般劃分為以下階段:可行性討論;需求分析;系統(tǒng)設(shè)計(jì)(概要設(shè)計(jì)、詳細(xì)設(shè)計(jì));程序開發(fā);編碼,單元測(cè)試;系統(tǒng)測(cè)試;系統(tǒng)維護(hù)。
軟件開發(fā)過(guò)程中要明確各階段的工作目標(biāo)、實(shí)現(xiàn)該目標(biāo)所必需的工作內(nèi)容以及達(dá)到的標(biāo)準(zhǔn)。只有在上一個(gè)階段的工作完成后,才能開始下一階段的工作。
1.可行性討論
明確系統(tǒng)的目的、功能和要求,了解目前所具備的開發(fā)環(huán)境和條件,論證的內(nèi)容有:① 在技術(shù)能力上是否可以支持;② 在經(jīng)濟(jì)上效益如何;③ 在法律上是否符合要求;④ 與部門、企業(yè)的經(jīng)營(yíng)和發(fā)展是否吻合;⑤ 系統(tǒng)投入運(yùn)行后的維護(hù)有無(wú)保障。
可行性討論的目的是判定軟件系統(tǒng)的開發(fā)有無(wú)價(jià)值。分析和討論的內(nèi)容形成“系統(tǒng)開發(fā)計(jì)劃書”,主要內(nèi)容有:
(1) 開發(fā)的目的及所期待的效果;
(2) 系統(tǒng)的基本設(shè)想,涉及的業(yè)務(wù)對(duì)象和范圍;
(3) 開發(fā)進(jìn)度表,開發(fā)組織結(jié)構(gòu);
(4) 開發(fā)、運(yùn)行的費(fèi)用;
(5) 預(yù)期的系統(tǒng)效益;
(6) 開發(fā)過(guò)程中可能遇到的問(wèn)題及注意事項(xiàng)。
2、系統(tǒng)需求分析
系統(tǒng)需求分析是軟件系統(tǒng)開發(fā)中最重要的一個(gè)階段,直接決定著系統(tǒng)的開發(fā)質(zhì)量和成敗,必須明確用戶的要求和應(yīng)用現(xiàn)場(chǎng)環(huán)境的特點(diǎn),了解系統(tǒng)應(yīng)具有哪些功能、數(shù)據(jù)的流程和數(shù)據(jù)之間的聯(lián)系。需求分析應(yīng)有用戶參加,到使用現(xiàn)場(chǎng)進(jìn)行調(diào)研學(xué)習(xí),軟件設(shè)計(jì)人員應(yīng)虛心向技術(shù)人員和使用人員請(qǐng)教,共同討論解決需求問(wèn)題的方法,對(duì)調(diào)查結(jié)果進(jìn)行分析,明確問(wèn)題的所在。需求分析的內(nèi)容編寫成“系統(tǒng)需求分析報(bào)告”。
3.系統(tǒng)設(shè)計(jì)
可根據(jù)系統(tǒng)的規(guī)模分成概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。
概要設(shè)計(jì)包括:① 劃分系統(tǒng)模塊;② 每個(gè)模塊的功能確定;③ 用戶使用界面概要設(shè)計(jì);④ 輸入輸出數(shù)據(jù)的概要設(shè)計(jì);⑤ 報(bào)表概要設(shè)計(jì);⑥ 數(shù)據(jù)之間的聯(lián)系、流程分析;⑦ 文件和數(shù)據(jù)庫(kù)表的邏輯設(shè)計(jì);⑧ 硬件、軟件開發(fā)平臺(tái)的確定;⑨ 有規(guī)律數(shù)據(jù)的規(guī)范化及數(shù)據(jù)惟一性要求。
系統(tǒng)的詳細(xì)設(shè)計(jì)是對(duì)系統(tǒng)的概要設(shè)計(jì)進(jìn)一步具體化,其主要工作有:① 文件和數(shù)據(jù)庫(kù)的物理設(shè)計(jì);② 輸入輸出記錄的方案設(shè)計(jì);③ 對(duì)各子系統(tǒng)的處理方式和處理內(nèi)容進(jìn)行細(xì)化設(shè)計(jì);④ 編制程序設(shè)計(jì)任務(wù)書。程序說(shuō)明書通常包括程序規(guī)范、功能說(shuō)明、程序結(jié)構(gòu)圖,通常用HPIPO(Hierarchy Plus Input Process Output)圖描述。
4、程序開發(fā)
根據(jù)程序設(shè)計(jì)任務(wù)書的要求,用計(jì)算機(jī)算法語(yǔ)言實(shí)現(xiàn)解題的步驟,主要工作包括:① 模塊的理解和進(jìn)一步劃分;② 以模塊為單位的邏輯設(shè)計(jì),也就是模塊內(nèi)的流程圖的編制;③ 編寫代碼,用程序設(shè)計(jì)語(yǔ)言編制程序;④ 進(jìn)行模塊內(nèi)功能的測(cè)試、單元測(cè)試。
程序質(zhì)量的要求包括:① 滿足要求的確切功能;② 處理效率高;③ 操作方便,用戶界面友好;④ 程序代碼的可讀性好,函數(shù)、變量標(biāo)識(shí)符合規(guī)范;⑤ 擴(kuò)充性、維護(hù)性好。
降低程序的復(fù)雜性也是十分重要的。系統(tǒng)的復(fù)雜性由模塊間的接口數(shù)來(lái)衡量,一般地講,n個(gè)模塊的接口數(shù)的最大值為n(n-1)/2;若是層次結(jié)構(gòu),n個(gè)模塊的接口數(shù)的最小值為n-1。為使復(fù)雜性最小,對(duì)模塊的劃分設(shè)計(jì)常常采用層次結(jié)構(gòu)。要注意編制的程序或模塊應(yīng)容易理解、容易修改,模塊應(yīng)相互獨(dú)立,對(duì)某一模塊的修改應(yīng)對(duì)其他模塊的功能不產(chǎn)生影響,模塊間的聯(lián)系盡可能少。
5.系統(tǒng)測(cè)試
測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤,對(duì)于設(shè)計(jì)的軟件,出現(xiàn)錯(cuò)誤是難免的。系統(tǒng)測(cè)試通常由經(jīng)驗(yàn)豐富的設(shè)計(jì)人員設(shè)計(jì)測(cè)試方案和測(cè)試樣品,并寫出測(cè)試過(guò)程的詳細(xì)報(bào)告。系統(tǒng)測(cè)試是在單元測(cè)試的基礎(chǔ)上進(jìn)行的,包括:① 測(cè)試方案的設(shè)計(jì);② 進(jìn)行測(cè)試;③ 寫出測(cè)試報(bào)告;④ 用戶對(duì)測(cè)試結(jié)果進(jìn)行評(píng)價(jià)。
6、文檔資料
文檔包括開發(fā)過(guò)程中的所有技術(shù)資料以及用戶所需的文檔,軟件系統(tǒng)的文檔一般可分為系統(tǒng)文檔和用戶文檔兩類。用戶文檔主要描述系統(tǒng)功能和使用方法,并不考慮這些功能是怎樣實(shí)現(xiàn)的;系統(tǒng)文檔描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等方面的內(nèi)容。文檔是影響軟件可維護(hù)性、可用性的決定因素,有句話講,系統(tǒng)編程人員的每一張紙片都要保留,所以文檔的編制是軟件開發(fā)過(guò)程中的一項(xiàng)重要工作。
系統(tǒng)文檔包括:開發(fā)軟件系統(tǒng)在計(jì)劃、需求分析、設(shè)計(jì)、編制、調(diào)試、運(yùn)行等階段的有關(guān)文檔。在對(duì)軟件系統(tǒng)進(jìn)行修改時(shí),系統(tǒng)文檔應(yīng)同步更新,并注明修改者和修改日期,如有必要應(yīng)注明修改原因,應(yīng)切記過(guò)時(shí)的文檔是無(wú)用的文檔。
用戶文檔包括:① 系統(tǒng)功能描述;② 安裝文檔,說(shuō)明系統(tǒng)安裝步驟以及系統(tǒng)的硬件配置方法;③ 用戶使用手冊(cè),說(shuō)明使用軟件系統(tǒng)方法和要求,疑難問(wèn)題解答;④ 參考手冊(cè),描述可以使用的所有系統(tǒng)設(shè)施,解釋系統(tǒng)出錯(cuò)信息的含義及解決途徑。
7、系統(tǒng)的運(yùn)行與維護(hù)
系統(tǒng)只有投入運(yùn)行后,才能進(jìn)一步對(duì)系統(tǒng)檢驗(yàn),發(fā)現(xiàn)潛在的問(wèn)題,為了適應(yīng)環(huán)境的變化和用戶要求的改變,可能會(huì)對(duì)系統(tǒng)的功能、使用界面進(jìn)行修改。要對(duì)每次發(fā)現(xiàn)的問(wèn)題和修改內(nèi)容建立系統(tǒng)維護(hù)文檔,并使系統(tǒng)文檔資料同步更新。
軟件開發(fā)流程
具體流程如下:
1、啟動(dòng)
在項(xiàng)目啟動(dòng)階段,主要確定項(xiàng)目的目標(biāo)及其可行性。我們需要對(duì)項(xiàng)目的背景、干系人、解決的問(wèn)題等等進(jìn)行分析。并制定項(xiàng)目章程和組建項(xiàng)目團(tuán)隊(duì),包括:產(chǎn)品經(jīng)理、架構(gòu)工程師、UI工程師、開發(fā)工程師、測(cè)試工程師等。完成以上準(zhǔn)備工作之后,召開項(xiàng)目啟動(dòng)會(huì),啟動(dòng)會(huì)結(jié)束后則進(jìn)入下一步的工作。
2、規(guī)劃
在項(xiàng)目的規(guī)劃階段,項(xiàng)目經(jīng)理需要和項(xiàng)目需求方,以及項(xiàng)目的相關(guān)干系人確定項(xiàng)目的范圍,創(chuàng)建WBS(把工作進(jìn)行徹底分解,并梳理出其間的邏輯關(guān)系,利用整分合原則組織起來(lái)),確定項(xiàng)目的里程碑和項(xiàng)目計(jì)劃。同時(shí)制定項(xiàng)目的管理計(jì)劃,包括成本,質(zhì)量。風(fēng)險(xiǎn)等方面的預(yù)測(cè)和控制方案。
3、需求
在需求階段,需要對(duì)采集的需求進(jìn)行需求分析,編寫PRD文檔(PRD就是將宏觀抽象化的業(yè)務(wù),拆分成具體化的功能需求,并通過(guò)文字或圖像等方式呈現(xiàn)出來(lái))、UI設(shè)計(jì)、高保真設(shè)計(jì)。最后進(jìn)入需求評(píng)審,評(píng)審?fù)ㄟ^(guò)則進(jìn)入下一步的工作。
4、設(shè)計(jì)
在設(shè)計(jì)階段,設(shè)計(jì)人員根據(jù)需求文檔,對(duì)軟件系統(tǒng)進(jìn)行設(shè)計(jì),包括數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)架構(gòu)、業(yè)務(wù)模型及規(guī)則、流程控制、模塊接口等。輸出概要設(shè)計(jì),詳細(xì)設(shè)計(jì)文檔,以及數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書等。
5、開發(fā)
在明確需求后,開發(fā)工程師正式進(jìn)入編碼階段,根據(jù)產(chǎn)品原型圖、UI效果圖、設(shè)計(jì)文檔,選擇合適的開發(fā)環(huán)境、開發(fā)工具、開發(fā)語(yǔ)言等等進(jìn)行實(shí)現(xiàn),這個(gè)階段也是個(gè)很長(zhǎng)很難的階段,也是軟件實(shí)現(xiàn)的核心。
6、功能測(cè)試
對(duì)軟件進(jìn)行測(cè)試是保證軟件質(zhì)量的重要手段。開發(fā)工程師開發(fā)完成后,可以交由測(cè)試工程師測(cè)試。測(cè)試工程師測(cè)試到BUG要反饋給開發(fā),開發(fā)進(jìn)行修改。功能測(cè)試通常需要進(jìn)行很多次,直到測(cè)試通過(guò),達(dá)到質(zhì)量要求。
7、端到端測(cè)試
在端到端測(cè)試階段,測(cè)試人員根據(jù)完整的業(yè)務(wù)流程設(shè)計(jì)可以覆蓋全流程的端到端測(cè)試案例,然后基于端到端案例對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行全面測(cè)試,確保系統(tǒng)能夠符合需求和驗(yàn)收質(zhì)量標(biāo)準(zhǔn)。
8、用戶驗(yàn)收測(cè)試
用戶驗(yàn)收測(cè)試階段,也是通常的UAT(User Acceptance Test)用戶驗(yàn)收測(cè)試階段,用戶驗(yàn)收測(cè)試是最終用戶可以檢查軟件是否符合業(yè)務(wù)要求的最后階段。
UAT由了解要求并了解構(gòu)建軟件目的的最終用戶執(zhí)行。此測(cè)試是在軟件運(yùn)行之前執(zhí)行的最后一次測(cè)試。最終用戶使用現(xiàn)實(shí)生活場(chǎng)景并為真實(shí)數(shù)據(jù)構(gòu)建UAT測(cè)試用例,用戶驗(yàn)收測(cè)試在最終用戶在上線之前驗(yàn)證軟件是否滿足這些業(yè)務(wù)需求方面具有重要作用。
9、上線
所有測(cè)試通過(guò),并與客戶或者上級(jí)達(dá)成一致后,系統(tǒng)進(jìn)行試運(yùn)行,穩(wěn)定后上線。
上線包括:上線部署、部署后驗(yàn)證、整理交付物(需求文檔、設(shè)計(jì)文檔、安裝部署手冊(cè)、產(chǎn)品幫助等等)和運(yùn)維移交。
10、收尾
項(xiàng)目的收尾階段,移交項(xiàng)目成果,釋放項(xiàng)目團(tuán)隊(duì),進(jìn)行項(xiàng)目回顧總結(jié),項(xiàng)目匯報(bào),完成項(xiàng)目結(jié)項(xiàng)。
軟件開發(fā)過(guò)程中會(huì)遇到哪些問(wèn)題
手機(jī)app開發(fā)過(guò)程中所遇到的9大注意事項(xiàng):
一、沒(méi)有規(guī)劃的開始
很多App項(xiàng)目在開發(fā)之前,都沒(méi)有規(guī)劃好,這就比如,寫作文沒(méi)有大綱,做房子沒(méi)有建筑圖,到最后做出來(lái)的app和客戶需要的效果大相庭徑。所以在開始 之前就要做好一份書面規(guī)劃,包括app開發(fā)的目的、需要實(shí)現(xiàn)的功能,以及預(yù)期每個(gè)階段需要完善哪些功能等等,然后根據(jù)規(guī)劃,設(shè)計(jì)出用戶需求的流程圖。
二、盲目的創(chuàng)建跨平臺(tái)app
跨平臺(tái)app在一定程度上,能從用戶的實(shí)際使用中獲得反饋,有利于改善在其他平臺(tái)發(fā)布的版本。然而跨平臺(tái)app一般情況下沒(méi)有全面的功能,對(duì)于多個(gè)獨(dú) 立的平臺(tái)來(lái)說(shuō),則需要更多的編碼。所以在設(shè)計(jì)app之前,要展開用戶調(diào)查,包括不同的年齡、生活方式、教育環(huán)境等等,再判斷使用安卓和ios的比例,確定 好開發(fā)平臺(tái)。
三、不重視開發(fā)人員建議
通常產(chǎn)品設(shè)計(jì)師在得到一些靈感的時(shí)候,就會(huì)在產(chǎn)品中加入一些其他元素,然而站在開發(fā)者的角度去考慮問(wèn)題,有時(shí)候會(huì)覺(jué)得加進(jìn)來(lái)的這個(gè)東西比較多余,而且 和移動(dòng)設(shè)備的操作體驗(yàn)也不匹配,或者這些元素會(huì)產(chǎn)生一些不必要的數(shù)據(jù)。藍(lán)海匯app開發(fā)技術(shù)人員介紹:這時(shí)如果產(chǎn)品設(shè)計(jì)師一意孤行的話,很可能會(huì)導(dǎo)致產(chǎn)品 變殘,或者因此而讓用戶在使用過(guò)程中產(chǎn)生了多余的數(shù)據(jù),而放棄此應(yīng)用。所以比較好的辦法就是,在技術(shù)可行,并不影響用戶體驗(yàn)的情況下,可以實(shí)施這種想法。
四、將app設(shè)計(jì)成網(wǎng)站模式
用戶愿意用你的App,主要原因有兩種,一是有用;二是精簡(jiǎn)、快速,兩者缺一不可。如果將app設(shè)置成網(wǎng)站形式,不僅打開緩慢,容易閃退,花了大量時(shí)間還找不到想要的重點(diǎn)在哪里。另外,如果用戶想要打開網(wǎng)頁(yè)版,他們還會(huì)用手機(jī)嗎,只有在特別需要的情況下才會(huì)使用吧。
五、手機(jī)屏幕尺寸不兼容
其實(shí)這種情況很常見(jiàn),同一個(gè)app在不同手機(jī)上排版不同、格式不同,比如說(shuō)在某些小屏幕的手機(jī)上,看到的內(nèi)容就比較凌亂,給人非常不專業(yè)的感覺(jué)。所以開發(fā)者需要注意手機(jī)屏幕尺寸的兼容性。
六、觸發(fā)后臺(tái)程序
使用app時(shí),移動(dòng)設(shè)備上也會(huì)運(yùn)行其他后臺(tái)服務(wù),過(guò)多的系統(tǒng)需求會(huì)導(dǎo)致設(shè)備崩潰,這是常見(jiàn)的大忌。
七、忽視操作系統(tǒng)集成
Android和iOS風(fēng)格、布局和導(dǎo)航都大不相同,這需要匹配創(chuàng)建項(xiàng)目的每一個(gè)操作系統(tǒng)來(lái)滿足用戶。同時(shí),對(duì)蘋果app而言,它需要專為操作系統(tǒng)而設(shè)計(jì)的應(yīng)用。
八、節(jié)省測(cè)試
一個(gè)人的思維引導(dǎo)他做的事情,是一個(gè)自然過(guò)程,所以開發(fā)者或設(shè)計(jì)程序人員對(duì)自己開發(fā)的或者設(shè)計(jì)的產(chǎn)品是沒(méi)法公正判斷的,因?yàn)樗麄冮_發(fā)出來(lái)的產(chǎn)品正是他 們了解到的樣子。那么就不能由開發(fā)者或設(shè)計(jì)程序人員自己來(lái)測(cè)試。作為測(cè)試人群,他們應(yīng)該是目標(biāo)用戶,或者是沒(méi)有參與開發(fā)的人員,但最好不要是家人,因?yàn)楸?較不客觀。
九、迷失最終目的
在規(guī)劃好app開發(fā)項(xiàng)目流程以后,不要輕易改變,如果在開發(fā)過(guò)程中,不斷加入新的需求,就會(huì)逐漸遠(yuǎn)離最初的開發(fā)目的,這是不能讓客戶滿意的。那么在有新的 需求或者想法時(shí),要及時(shí)在產(chǎn)品開發(fā)前,與客戶開會(huì)討論并確認(rèn),盡量確保開發(fā)出來(lái)的產(chǎn)品與最初規(guī)劃的樣子相符合。
怎么樣開發(fā)一個(gè)軟件
1、軟件開發(fā)的第一個(gè)流程是項(xiàng)目開發(fā)目的分析與確定,主要是在軟件開發(fā)商將開發(fā)項(xiàng)目確定下來(lái)之后,需要與需求方進(jìn)行討論,確定需求方對(duì)于軟件開發(fā)的需要實(shí)現(xiàn)目標(biāo)及其具體需要的功能等等,并確定是否可達(dá)成;
2、接下來(lái)就是需求分析,這個(gè)步驟也是為軟件開發(fā)的正常進(jìn)行確定具體思路的階段。在確定軟件開發(fā)可進(jìn)行后,必須要對(duì)客戶需要實(shí)現(xiàn)的軟件功能需求進(jìn)行具體詳細(xì)的分析。同時(shí)應(yīng)當(dāng)考慮在開發(fā)過(guò)程中可能出現(xiàn)的變化情況,制定需求變更計(jì)劃隨時(shí)應(yīng)對(duì)特殊情況的發(fā)生,保證軟件開發(fā)流程的順暢進(jìn)行;
3、接下來(lái)就是軟件設(shè)計(jì)。軟件設(shè)計(jì)要根據(jù)上一階段對(duì)軟件功能需求分析的結(jié)果,來(lái)設(shè)計(jì)軟件系統(tǒng)的框架結(jié)構(gòu)、功能模塊和數(shù)據(jù)庫(kù)等等。它主要分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)部分;
4、接下來(lái)就是編程實(shí)施步驟。編程也是根據(jù)對(duì)軟件設(shè)計(jì),將軟件設(shè)計(jì)的各部分需求通計(jì)算機(jī)程序代碼來(lái)實(shí)現(xiàn)運(yùn)行,編程有統(tǒng)一、規(guī)范的程序編寫規(guī)則,保證軟件程序的易懂性、易維護(hù)性;
5、接下來(lái)就是軟件測(cè)試步驟。也就是在根據(jù)設(shè)計(jì)將客戶軟件需用編程代碼來(lái)實(shí)現(xiàn)之后,也就是軟件程序完成之后,需要對(duì)編寫的程序,形成整體構(gòu)架、功能進(jìn)行單元、組裝、系統(tǒng)三階段的測(cè)試,以測(cè)試程序編寫的正確性,以及對(duì)客戶需求功能滿足的充分性,以此來(lái)確定軟件是否達(dá)到開發(fā)要求,同時(shí)也是一個(gè)發(fā)現(xiàn)問(wèn)題、糾正問(wèn)題的過(guò)程;
6、通過(guò)以上核心環(huán)節(jié)完成了軟件開發(fā),接下來(lái)就是在軟件開發(fā)達(dá)到客戶需求之后,開發(fā)者將軟件系統(tǒng)交予客戶,并將軟件安裝程序、數(shù)據(jù)庫(kù)的數(shù)據(jù)字典、《用戶安裝手冊(cè)》、《用戶使用指南》、需求報(bào)告、設(shè)計(jì)報(bào)告、測(cè)試報(bào)告等產(chǎn)物交付給客戶,同時(shí)指導(dǎo)客戶進(jìn)行軟件安裝、以及安裝技巧,提醒客戶注意軟件運(yùn)行狀況、環(huán)境、服務(wù)器及相關(guān)中間件的檢測(cè)與注意事項(xiàng),知道客戶軟件的實(shí)際操作方法、使用流程等等問(wèn)題,實(shí)現(xiàn)合同規(guī)定任務(wù);
7、用戶在接受開發(fā)商交付的軟件開發(fā)結(jié)果,并進(jìn)行實(shí)際操作、測(cè)試運(yùn)行,實(shí)現(xiàn)滿意結(jié)果之后,對(duì)開發(fā)出來(lái)的軟件進(jìn)行驗(yàn)收;
8、定制開發(fā)的軟件通常都需要提供售后服務(wù),定期對(duì)軟件進(jìn)行維護(hù),或者根據(jù)用戶出現(xiàn)的新需求,進(jìn)行應(yīng)用軟件程序的修改,使之不斷滿足客戶實(shí)際需求。
軟件開發(fā)過(guò)程中的常見(jiàn)問(wèn)題有哪些?
1.前言應(yīng)用軟件系統(tǒng)是事件驅(qū)動(dòng)的軟件系統(tǒng),系統(tǒng)通過(guò)接口接受事件后,交由系統(tǒng)業(yè)務(wù)層處理,業(yè)務(wù)層處理完事件后將需要的信息存入數(shù)據(jù)庫(kù),整個(gè)應(yīng)用軟件系統(tǒng)分為三個(gè)子系統(tǒng):接口子系統(tǒng),業(yè)務(wù)子系統(tǒng),數(shù)據(jù)庫(kù)子系統(tǒng),業(yè)務(wù)子系統(tǒng)進(jìn)一步分為三個(gè)子系統(tǒng):表示層,業(yè)務(wù)層,數(shù)據(jù)接入層。其中業(yè)務(wù)層是整個(gè)系統(tǒng)的核心,表示層負(fù)責(zé)通過(guò)接口子系統(tǒng)接收系統(tǒng)事件交給業(yè)務(wù)層處理,數(shù)據(jù)接入層供業(yè)務(wù)層使用完成數(shù)據(jù)的持久化。每個(gè)層對(duì)編程人員的技術(shù)要求是不同的,表示層需要了解的技術(shù)根據(jù)接口子系統(tǒng)選擇的不同而不同:如windows界面,需要對(duì)MFC有比較深入的了解,web界面則要求對(duì)asp,asp.net,或jsp有比較深入的了解。數(shù)據(jù)訪問(wèn)層需要的技術(shù)則由數(shù)據(jù)庫(kù)子系統(tǒng)的選擇決定,另外還需要了解:ODBC,JDBC等。接口子系統(tǒng)的選擇:windows界面,java界面,web界面,命令行接口,CTI, API等 數(shù)據(jù)庫(kù)子系統(tǒng)的選擇:關(guān)系數(shù)據(jù)庫(kù),普通文件等基于以上對(duì)應(yīng)用軟件系統(tǒng)的理解,軟件開發(fā)流程的輸入是用戶的業(yè)務(wù)需求,輸出就是系統(tǒng)的業(yè)務(wù)層、表示層、數(shù)據(jù)接入層的代碼,以及接口和數(shù)據(jù)庫(kù),以及各種文檔。因此得到比較理想化的軟件開發(fā)流程圖,該圖使用uml中的活動(dòng)圖描述。2.需求分析階段需求分析階段的常見(jiàn)問(wèn)題是:需求分析不夠深入,對(duì)問(wèn)題域沒(méi)有仔細(xì)研究,急于進(jìn)入設(shè)計(jì)階段。造成這種問(wèn)題一方面是因?yàn)轫?xiàng)目管目趕進(jìn)度以及存在于管理人員頭腦中的根深蒂固的想法:任何時(shí)候不能讓任何人員閑著,另外很大的原因是很多人不知道如何進(jìn)一步深入研究問(wèn)題域。需求分析階段不僅要列出系統(tǒng)的use case,更重要的是要列出use case的輸入輸出和例外情況等,以及問(wèn)題域中的對(duì)象之間的靜態(tài)關(guān)系和動(dòng)態(tài)關(guān)系,如對(duì)象間的包含關(guān)系,繼承關(guān)系,調(diào)用關(guān)系等。需求分析階段另外一個(gè)常見(jiàn)的問(wèn)題是常常將需求分析等同于數(shù)據(jù)庫(kù)設(shè)計(jì),需求分析階段定義的是系統(tǒng)作什么,而不是怎么做,需求分析的結(jié)果應(yīng)該與具體的技術(shù)實(shí)現(xiàn)無(wú)關(guān)。數(shù)據(jù)庫(kù)設(shè)計(jì)是技術(shù)實(shí)現(xiàn)的細(xì)節(jié),應(yīng)該盡可能的推遲技術(shù)細(xì)節(jié)的決策,不應(yīng)該使技術(shù)細(xì)節(jié)束縛了我們對(duì)系統(tǒng)需求的理解。需求分析階段應(yīng)該從用戶的角度對(duì)系統(tǒng)建模,不應(yīng)將大量的技術(shù)細(xì)節(jié)暴露給用戶,導(dǎo)致系統(tǒng)易用性差。需求分析階段可以進(jìn)一步細(xì)分為業(yè)務(wù)需求分析階段和系統(tǒng)功能需求分析階段。在很多研發(fā)性質(zhì)的系統(tǒng)中,不注重業(yè)務(wù)需求分析,只有系統(tǒng)功能需求分析,導(dǎo)致開發(fā)人員知其然不知其所以然。系統(tǒng)功能規(guī)范文檔與業(yè)務(wù)需求文檔的重要區(qū)別有以下幾點(diǎn):內(nèi)容不同:系統(tǒng)需求分為功能需求和非功能需求,功能需求進(jìn)一步分為業(yè)務(wù)功能需求和非業(yè)務(wù)功能需求。系統(tǒng)需求規(guī)范文檔除了包括業(yè)務(wù)需求文檔中的業(yè)務(wù)功能需求,功能規(guī)范文檔需要增加以下內(nèi)容:系統(tǒng)的非業(yè)務(wù)功能需求,由于業(yè)務(wù)需求由計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)而產(chǎn)生的功能需求,如系統(tǒng)需要系統(tǒng)管理員管理,系統(tǒng)管理員的角度產(chǎn)生一些非業(yè)務(wù)功能需求,另外需要描述系統(tǒng)非功能需求:數(shù)據(jù)量,性能要求,響應(yīng)速度,可用性要求,可靠性要求,界面語(yǔ)言要求等等。 閱讀的對(duì)象不同:業(yè)務(wù)需求文檔是用來(lái)與業(yè)務(wù)人員交流,功能規(guī)范文檔是開發(fā)人員開發(fā)的依據(jù) 使用的語(yǔ)言不同:業(yè)務(wù)需求文檔使用自然語(yǔ)言書寫,而功能規(guī)范文檔使用比較嚴(yán)謹(jǐn)?shù)恼Z(yǔ)言,如:uml書寫 對(duì)編寫人的要求不一樣:業(yè)務(wù)需求編寫人員只需要對(duì)業(yè)務(wù)系統(tǒng)熟悉,系統(tǒng)規(guī)范由系統(tǒng)架構(gòu)師完成 體現(xiàn)系統(tǒng)架構(gòu)師價(jià)值的地方是編寫系統(tǒng)規(guī)范文檔和業(yè)務(wù)層設(shè)計(jì), 系統(tǒng)規(guī)范文檔是下一步界面設(shè)計(jì),業(yè)務(wù)層設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)的依據(jù),表示層,業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層之間是相互聯(lián)系的,它們之間的關(guān)系應(yīng)該在系統(tǒng)規(guī)范文檔中找到。3.架構(gòu)設(shè)計(jì)階段架構(gòu)設(shè)計(jì)階段的常見(jiàn)問(wèn)題是將架構(gòu)設(shè)計(jì)理解為技術(shù)架構(gòu)設(shè)計(jì),實(shí)際上架構(gòu)設(shè)計(jì)分為技術(shù)架構(gòu)設(shè)計(jì)和業(yè)務(wù)架構(gòu)設(shè)計(jì)。技術(shù)架構(gòu)一般由系統(tǒng)軟件商提供,可以在不同的應(yīng)用軟件系統(tǒng)中使用,例如:微軟的MFC, SUN的J2EE等。對(duì)于一個(gè)應(yīng)用軟件系統(tǒng),更重要的是業(yè)務(wù)架構(gòu)的設(shè)計(jì),也就是將需求分析階段中得到的各種關(guān)系,根據(jù)系統(tǒng)的非功能需求將需求分析轉(zhuǎn)變?yōu)榇a。其實(shí)沒(méi)有業(yè)務(wù)架構(gòu)的設(shè)計(jì)也是可以的,很多項(xiàng)目中直接將對(duì)象之間的各種關(guān)系以數(shù)據(jù)庫(kù)的方式實(shí)現(xiàn),這樣的系統(tǒng)不是面向?qū)ο蟮?,因此面向?qū)ο笤O(shè)計(jì)的很多好處不能體現(xiàn)。由于在架構(gòu)設(shè)計(jì)階段中沒(méi)有進(jìn)一步細(xì)分,通常會(huì)導(dǎo)致不能準(zhǔn)確估計(jì)任務(wù)量,造成項(xiàng)目計(jì)劃變成擺設(shè)。4.詳細(xì)設(shè)計(jì)階段詳細(xì)設(shè)計(jì)階段一個(gè)重要的任務(wù)是系統(tǒng)持久化設(shè)計(jì)。對(duì)應(yīng)用系統(tǒng)而言,持久化設(shè)計(jì)只是管理存儲(chǔ)的機(jī)制,有多種技術(shù)手段可以選擇:可以是面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng),簡(jiǎn)單的文件,或者是關(guān)系數(shù)據(jù)庫(kù),也可以是使用ORM工具等??傊畱?yīng)該把它留到最后作為細(xì)節(jié)處理。我們不應(yīng)該將我們的系統(tǒng)和任何特定的技術(shù)綁定在一起。我們可以根據(jù)需求自由選擇需要的持久化技術(shù),并且保留在將來(lái)需要時(shí)更改持久化技術(shù)的自由。5.編碼階段編碼階段還處于小農(nóng)經(jīng)濟(jì),自給自足,沒(méi)有分工合作。編碼階段以u(píng)se case為粒度安排工作,這樣的安排方式要求每一個(gè)開發(fā)人員必須對(duì)表示層,業(yè)務(wù)層,數(shù)據(jù)接入層的所有技術(shù)都要有比較深入的了解,由于每個(gè)開發(fā)人員各自只對(duì)自己的use case負(fù)責(zé),對(duì)別人的use case不了解,但是每一個(gè)use case會(huì)有功能重復(fù)的地方,導(dǎo)致大量的重復(fù)工作。編碼階段工作安排的粒度應(yīng)該是類,編碼階段工作的安排原則是先分層,再分割,按照表示層,業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層分開后,每一層內(nèi)可以進(jìn)一步分為不同類,使用測(cè)試驅(qū)動(dòng)的編程方法,每個(gè)編程人員單獨(dú)編寫代碼,并進(jìn)行單元測(cè)試。每個(gè)層次的編程人員只需要對(duì)某一種技術(shù)有比較深入的了解。6.測(cè)試階段很多人分不清什么是單元測(cè)試,什么是集成測(cè)試,什么是系統(tǒng)測(cè)試?測(cè)試的順序是先單元測(cè)試,然后是集成測(cè)試,最后是系統(tǒng)測(cè)試。單元測(cè)試是源代碼級(jí)的測(cè)試,一般由編程人員自己使用各種unit工具測(cè)試,是白盒測(cè)試。集成測(cè)試是在單元測(cè)試結(jié)束后,將一個(gè)或若干個(gè)單元作為一個(gè)子系統(tǒng)的黑盒測(cè)試,測(cè)試子系統(tǒng)內(nèi)的所有組件可以正確的交互,集成測(cè)試通過(guò)對(duì)子系統(tǒng)不斷增加新的單元最后完成整個(gè)系統(tǒng)的測(cè)試,集成測(cè)試不應(yīng)由開發(fā)人員完成。7.結(jié)束軟件開發(fā)過(guò)程中,各種輔助工具以及process很重要,但是使用工具和process的最終目的是為了更高效的在開發(fā)人員之間溝通交流,記錄存在開發(fā)人員腦子里的想法,不要為了process而process。不能以為會(huì)使用MS word,就認(rèn)為可以成為作家。最后引用Robert Martin的《敏捷軟件開發(fā):原則、模式與實(shí)踐》中的一句話作為本文的結(jié)束:過(guò)渡信賴工具和過(guò)程以及低估智力和經(jīng)驗(yàn)都是軟件開發(fā)災(zāi)難的源泉。 注: 本文摘自網(wǎng)絡(luò) 臺(tái)州極速網(wǎng)絡(luò)有限公司愿以雄厚的技術(shù)實(shí)力基礎(chǔ)
軟件開發(fā)流程的問(wèn)題的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于軟件工程的開發(fā)流程、軟件開發(fā)流程的問(wèn)題的信息別忘了在本站進(jìn)行查找喔。