軟件開發流程的(de)問題(軟件開發流程的(de)問題有(yǒu)哪些)

軟件開發 2503
本篇文章(zhāng)給大家談談軟件開發流程的(de)問題,以及軟件開發流程的(de)問題有(yǒu)哪些對應的(de)知識點,希望對各位有(yǒu)所幫助,不要忘了收藏本站喔。 本文目錄一(yī)覽: 1、軟件開發流程 2、

本篇文章(zhāng)給大家談談軟件開發流程的(de)問題,以及軟件開發流程的(de)問題有(yǒu)哪些對應的(de)知識點,希望對各位有(yǒu)所幫助,不要忘了收藏本站喔。

本文目錄一(yī)覽:

軟件開發流程

具體流程如(rú)下:

1、啓動

在項目啓動階段,主要确定項目的(de)目标及其可(kě)行(xíng)性。我(wǒ)們(men)需要對項目的(de)背景、幹系人、解決的(de)問題等等進行(xíng)分析。并制定項目章(zhāng)程和(hé)組建項目團隊,包括:産品經理(lǐ)、架構工程師、UI工程師、開發工程師、測試工程師等。完成以上準備工作之後,召開項目啓動會,啓動會結束後則進入下一(yī)步的(de)工作。

2、規劃

在項目的(de)規劃階段,項目經理(lǐ)需要和(hé)項目需求方,以及項目的(de)相關幹系人确定項目的(de)範圍,創建WBS(把工作進行(xíng)徹底分解,并梳理(lǐ)出其間的(de)邏輯關系,利用整分合原則組織起來),确定項目的(de)裏程碑和(hé)項目計劃。同時制定項目的(de)管理(lǐ)計劃,包括成本,質量。風險等方面的(de)預測和(hé)控制方案。

3、需求

在需求階段,需要對采集的(de)需求進行(xíng)需求分析,編寫PRD文檔(PRD就是将宏觀抽象化的(de)業務,拆分成具體化的(de)功能需求,并通過文字或圖像等方式呈現出來)、UI設計、高(gāo)保真設計。最後進入需求評審,評審通過則進入下一(yī)步的(de)工作。

4、設計

在設計階段,設計人員根據需求文檔,對軟件系統進行(xíng)設計,包括數據結構、系統架構、業務模型及規則、流程控制、模塊接口等。輸出概要設計,詳細設計文檔,以及數據庫設計說明書等。

5、開發

在明确需求後,開發工程師正式進入編碼階段,根據産品原型圖、UI效果圖、設計文檔,選擇合适的(de)開發環境、開發工具、開發語言等等進行(xíng)實現,這個階段也是個很長(cháng)很難的(de)階段,也是軟件實現的(de)核心。

6、功能測試

對軟件進行(xíng)測試是保證軟件質量的(de)重要手段。開發工程師開發完成後,可(kě)以交由測試工程師測試。測試工程師測試到BUG要反饋給開發,開發進行(xíng)修改。功能測試通常需要進行(xíng)很多次,直到測試通過,達到質量要求。

7、端到端測試

在端到端測試階段,測試人員根據完整的(de)業務流程設計可(kě)以覆蓋全流程的(de)端到端測試案例,然後基于端到端案例對系統的(de)各個模塊進行(xíng)全面測試,确保系統能夠符合需求和(hé)驗收質量标準。

8、用戶驗收測試

用戶驗收測試階段,也是通常的(de)UAT(User Acceptance Test)用戶驗收測試階段,用戶驗收測試是最終用戶可(kě)以檢查軟件是否符合業務要求的(de)最後階段。

UAT由了解要求并了解構建軟件目的(de)的(de)最終用戶執行(xíng)。此測試是在軟件運行(xíng)之前執行(xíng)的(de)最後一(yī)次測試。最終用戶使用現實生活場景并為(wèi)真實數據構建UAT測試用例,用戶驗收測試在最終用戶在上線之前驗證軟件是否滿足這些業務需求方面具有(yǒu)重要作用。

9、上線

所有(yǒu)測試通過,并與客戶或者上級達成一(yī)緻後,系統進行(xíng)試運行(xíng),穩定後上線。

上線包括:上線部署、部署後驗證、整理(lǐ)交付物(需求文檔、設計文檔、安裝部署手冊、産品幫助等等)和(hé)運維移交。

10、收尾

項目的(de)收尾階段,移交項目成果,釋放項目團隊,進行(xíng)項目回顧總結,項目彙報,完成項目結項。

軟件開發過程中會遇到哪些問題

手機(jī)app開發過程中所遇到的(de)9大注意事項:

一(yī)、沒有(yǒu)規劃的(de)開始

很多App項目在開發之前,都沒有(yǒu)規劃好,這就比如(rú),寫作文沒有(yǒu)大綱,做(zuò)房子(zǐ)沒有(yǒu)建築圖,到最後做(zuò)出來的(de)app和(hé)客戶需要的(de)效果大相庭徑。所以在開始 之前就要做(zuò)好一(yī)份書面規劃,包括app開發的(de)目的(de)、需要實現的(de)功能,以及預期每個階段需要完善哪些功能等等,然後根據規劃,設計出用戶需求的(de)流程圖。

二、盲目的(de)創建跨平台app

跨平台app在一(yī)定程度上,能從用戶的(de)實際使用中獲得反饋,有(yǒu)利于改善在其他平台發布的(de)版本。然而跨平台app一(yī)般情況下沒有(yǒu)全面的(de)功能,對于多個獨 立的(de)平台來說,則需要更多的(de)編碼。所以在設計app之前,要展開用戶調查,包括不同的(de)年(nián)齡、生活方式、教育環境等等,再判斷使用安卓和(hé)ios的(de)比例,确定 好開發平台。

三、不重視(shì)開發人員建議

通常産品設計師在得到一(yī)些靈感的(de)時候,就會在産品中加入一(yī)些其他元素,然而站在開發者的(de)角度去(qù)考慮問題,有(yǒu)時候會覺得加進來的(de)這個東西比較多餘,而且 和(hé)移動設備的(de)操作體驗也不匹配,或者這些元素會産生一(yī)些不必要的(de)數據。藍海彙app開發技術人員介紹:這時如(rú)果産品設計師一(yī)意孤行(xíng)的(de)話,很可(kě)能會導緻産品 變殘,或者因此而讓用戶在使用過程中産生了多餘的(de)數據,而放棄此應用。所以比較好的(de)辦法就是,在技術可(kě)行(xíng),并不影響用戶體驗的(de)情況下,可(kě)以實施這種想法。

四、将app設計成網站模式

用戶願意用你的(de)App,主要原因有(yǒu)兩種,一(yī)是有(yǒu)用;二是精簡、快速,兩者缺一(yī)不可(kě)。如(rú)果将app設置成網站形式,不僅打開緩慢,容易閃退,花了大量時間還找不到想要的(de)重點在哪裏。另外,如(rú)果用戶想要打開網頁版,他們(men)還會用手機(jī)嗎,隻有(yǒu)在特别需要的(de)情況下才會使用吧(ba)。

五、手機(jī)屏幕尺寸不兼容

其實這種情況很常見,同一(yī)個app在不同手機(jī)上排版不同、格式不同,比如(rú)說在某些小屏幕的(de)手機(jī)上,看到的(de)內(nèi)容就比較淩亂,給人非常不專業的(de)感覺。所以開發者需要注意手機(jī)屏幕尺寸的(de)兼容性。

六、觸發後台程序

使用app時,移動設備上也會運行(xíng)其他後台服務,過多的(de)系統需求會導緻設備崩潰,這是常見的(de)大忌。

七、忽視(shì)操作系統集成

Android和(hé)iOS風格、布局和(hé)導航都大不相同,這需要匹配創建項目的(de)每一(yī)個操作系統來滿足用戶。同時,對蘋果app而言,它需要專為(wèi)操作系統而設計的(de)應用。

八、節省測試

一(yī)個人的(de)思維引導他做(zuò)的(de)事情,是一(yī)個自(zì)然過程,所以開發者或設計程序人員對自(zì)己開發的(de)或者設計的(de)産品是沒法公正判斷的(de),因為(wèi)他們(men)開發出來的(de)産品正是他 們(men)了解到的(de)樣子(zǐ)。那麽就不能由開發者或設計程序人員自(zì)己來測試。作為(wèi)測試人群,他們(men)應該是目标用戶,或者是沒有(yǒu)參與開發的(de)人員,但最好不要是家人,因為(wèi)比 較不客觀。

九、迷失最終目的(de)

在規劃好app開發項目流程以後,不要輕易改變,如(rú)果在開發過程中,不斷加入新的(de)需求,就會逐漸遠離(lí)最初的(de)開發目的(de),這是不能讓客戶滿意的(de)。那麽在有(yǒu)新的(de) 需求或者想法時,要及時在産品開發前,與客戶開會讨論并确認,盡量确保開發出來的(de)産品與最初規劃的(de)樣子(zǐ)相符合。

怎麽樣開發一(yī)個軟件

1、軟件開發的(de)第一(yī)個流程是項目開發目的(de)分析與确定,主要是在軟件開發商(shāng)将開發項目确定下來之後,需要與需求方進行(xíng)讨論,确定需求方對于軟件開發的(de)需要實現目标及其具體需要的(de)功能等等,并确定是否可(kě)達成;

2、接下來就是需求分析,這個步驟也是為(wèi)軟件開發的(de)正常進行(xíng)确定具體思路的(de)階段。在确定軟件開發可(kě)進行(xíng)後,必須要對客戶需要實現的(de)軟件功能需求進行(xíng)具體詳細的(de)分析。同時應當考慮在開發過程中可(kě)能出現的(de)變化情況,制定需求變更計劃随時應對特殊情況的(de)發生,保證軟件開發流程的(de)順暢進行(xíng);

3、接下來就是軟件設計。軟件設計要根據上一(yī)階段對軟件功能需求分析的(de)結果,來設計軟件系統的(de)框架結構、功能模塊和(hé)數據庫等等。它主要分為(wèi)總體設計和(hé)詳細設計兩個部分;

4、接下來就是編程實施步驟。編程也是根據對軟件設計,将軟件設計的(de)各部分需求通計算機(jī)程序代碼來實現運行(xíng),編程有(yǒu)統一(yī)、規範的(de)程序編寫規則,保證軟件程序的(de)易懂性、易維護性;

5、接下來就是軟件測試步驟。也就是在根據設計将客戶軟件需用編程代碼來實現之後,也就是軟件程序完成之後,需要對編寫的(de)程序,形成整體構架、功能進行(xíng)單元、組裝、系統三階段的(de)測試,以測試程序編寫的(de)正确性,以及對客戶需求功能滿足的(de)充分性,以此來确定軟件是否達到開發要求,同時也是一(yī)個發現問題、糾正問題的(de)過程;

6、通過以上核心環節完成了軟件開發,接下來就是在軟件開發達到客戶需求之後,開發者将軟件系統交予客戶,并将軟件安裝程序、數據庫的(de)數據字典、《用戶安裝手冊》、《用戶使用指南》、需求報告、設計報告、測試報告等産物交付給客戶,同時指導客戶進行(xíng)軟件安裝、以及安裝技巧,提醒客戶注意軟件運行(xíng)狀況、環境、服務器及相關中間件的(de)檢測與注意事項,知道(dào)客戶軟件的(de)實際操作方法、使用流程等等問題,實現合同規定任務;

7、用戶在接受開發商(shāng)交付的(de)軟件開發結果,并進行(xíng)實際操作、測試運行(xíng),實現滿意結果之後,對開發出來的(de)軟件進行(xíng)驗收;

8、定制開發的(de)軟件通常都需要提供售後服務,定期對軟件進行(xíng)維護,或者根據用戶出現的(de)新需求,進行(xíng)應用軟件程序的(de)修改,使之不斷滿足客戶實際需求。

軟件開發過程中的(de)常見問題有(yǒu)哪些?

1.前言應用軟件系統是事件驅動的(de)軟件系統,系統通過接口接受事件後,交由系統業務層處理(lǐ),業務層處理(lǐ)完事件後将需要的(de)信息存入數據庫,整個應用軟件系統分為(wèi)三個子(zǐ)系統:接口子(zǐ)系統,業務子(zǐ)系統,數據庫子(zǐ)系統,業務子(zǐ)系統進一(yī)步分為(wèi)三個子(zǐ)系統:表示層,業務層,數據接入層。其中業務層是整個系統的(de)核心,表示層負責通過接口子(zǐ)系統接收系統事件交給業務層處理(lǐ),數據接入層供業務層使用完成數據的(de)持久化。每個層對編程人員的(de)技術要求是不同的(de),表示層需要了解的(de)技術根據接口子(zǐ)系統選擇的(de)不同而不同:如(rú)windows界面,需要對MFC有(yǒu)比較深入的(de)了解,web界面則要求對asp,asp.net,或jsp有(yǒu)比較深入的(de)了解。數據訪問層需要的(de)技術則由數據庫子(zǐ)系統的(de)選擇決定,另外還需要了解:ODBC,JDBC等。接口子(zǐ)系統的(de)選擇:windows界面,java界面,web界面,命令行(xíng)接口,CTI, API等 數據庫子(zǐ)系統的(de)選擇:關系數據庫,普通文件等基于以上對應用軟件系統的(de)理(lǐ)解,軟件開發流程的(de)輸入是用戶的(de)業務需求,輸出就是系統的(de)業務層、表示層、數據接入層的(de)代碼,以及接口和(hé)數據庫,以及各種文檔。因此得到比較理(lǐ)想化的(de)軟件開發流程圖,該圖使用uml中的(de)活動圖描述。2.需求分析階段需求分析階段的(de)常見問題是:需求分析不夠深入,對問題域沒有(yǒu)仔細研究,急于進入設計階段。造成這種問題一(yī)方面是因為(wèi)項目管目趕進度以及存在于管理(lǐ)人員頭腦中的(de)根深蒂固的(de)想法:任何時候不能讓任何人員閑着,另外很大的(de)原因是很多人不知道(dào)如(rú)何進一(yī)步深入研究問題域。需求分析階段不僅要列出系統的(de)use case,更重要的(de)是要列出use case的(de)輸入輸出和(hé)例外情況等,以及問題域中的(de)對象之間的(de)靜态關系和(hé)動态關系,如(rú)對象間的(de)包含關系,繼承關系,調用關系等。需求分析階段另外一(yī)個常見的(de)問題是常常将需求分析等同于數據庫設計,需求分析階段定義的(de)是系統作什麽,而不是怎麽做(zuò),需求分析的(de)結果應該與具體的(de)技術實現無關。數據庫設計是技術實現的(de)細節,應該盡可(kě)能的(de)推遲技術細節的(de)決策,不應該使技術細節束縛了我(wǒ)們(men)對系統需求的(de)理(lǐ)解。需求分析階段應該從用戶的(de)角度對系統建模,不應将大量的(de)技術細節暴露給用戶,導緻系統易用性差。需求分析階段可(kě)以進一(yī)步細分為(wèi)業務需求分析階段和(hé)系統功能需求分析階段。在很多研發性質的(de)系統中,不注重業務需求分析,隻有(yǒu)系統功能需求分析,導緻開發人員知其然不知其所以然。系統功能規範文檔與業務需求文檔的(de)重要區别有(yǒu)以下幾點:內(nèi)容不同:系統需求分為(wèi)功能需求和(hé)非功能需求,功能需求進一(yī)步分為(wèi)業務功能需求和(hé)非業務功能需求。系統需求規範文檔除了包括業務需求文檔中的(de)業務功能需求,功能規範文檔需要增加以下內(nèi)容:系統的(de)非業務功能需求,由于業務需求由計算機(jī)系統實現而産生的(de)功能需求,如(rú)系統需要系統管理(lǐ)員管理(lǐ),系統管理(lǐ)員的(de)角度産生一(yī)些非業務功能需求,另外需要描述系統非功能需求:數據量,性能要求,響應速度,可(kě)用性要求,可(kě)靠性要求,界面語言要求等等。 閱讀的(de)對象不同:業務需求文檔是用來與業務人員交流,功能規範文檔是開發人員開發的(de)依據 使用的(de)語言不同:業務需求文檔使用自(zì)然語言書寫,而功能規範文檔使用比較嚴謹的(de)語言,如(rú):uml書寫 對編寫人的(de)要求不一(yī)樣:業務需求編寫人員隻需要對業務系統熟悉,系統規範由系統架構師完成 體現系統架構師價值的(de)地(dì)方是編寫系統規範文檔和(hé)業務層設計, 系統規範文檔是下一(yī)步界面設計,業務層設計和(hé)數據庫設計的(de)依據,表示層,業務層,數據訪問層之間是相互聯系的(de),它們(men)之間的(de)關系應該在系統規範文檔中找到。3.架構設計階段架構設計階段的(de)常見問題是将架構設計理(lǐ)解為(wèi)技術架構設計,實際上架構設計分為(wèi)技術架構設計和(hé)業務架構設計。技術架構一(yī)般由系統軟件商(shāng)提供,可(kě)以在不同的(de)應用軟件系統中使用,例如(rú):微軟的(de)MFC, SUN的(de)J2EE等。對于一(yī)個應用軟件系統,更重要的(de)是業務架構的(de)設計,也就是将需求分析階段中得到的(de)各種關系,根據系統的(de)非功能需求将需求分析轉變為(wèi)代碼。其實沒有(yǒu)業務架構的(de)設計也是可(kě)以的(de),很多項目中直接将對象之間的(de)各種關系以數據庫的(de)方式實現,這樣的(de)系統不是面向對象的(de),因此面向對象設計的(de)很多好處不能體現。由于在架構設計階段中沒有(yǒu)進一(yī)步細分,通常會導緻不能準确估計任務量,造成項目計劃變成擺設。4.詳細設計階段詳細設計階段一(yī)個重要的(de)任務是系統持久化設計。對應用系統而言,持久化設計隻是管理(lǐ)存儲的(de)機(jī)制,有(yǒu)多種技術手段可(kě)以選擇:可(kě)以是面向對象數據庫管理(lǐ)系統,簡單的(de)文件,或者是關系數據庫,也可(kě)以是使用ORM工具等。總之應該把它留到最後作為(wèi)細節處理(lǐ)。我(wǒ)們(men)不應該将我(wǒ)們(men)的(de)系統和(hé)任何特定的(de)技術綁定在一(yī)起。我(wǒ)們(men)可(kě)以根據需求自(zì)由選擇需要的(de)持久化技術,并且保留在将來需要時更改持久化技術的(de)自(zì)由。5.編碼階段編碼階段還處于小農經濟,自(zì)給自(zì)足,沒有(yǒu)分工合作。編碼階段以use case為(wèi)粒度安排工作,這樣的(de)安排方式要求每一(yī)個開發人員必須對表示層,業務層,數據接入層的(de)所有(yǒu)技術都要有(yǒu)比較深入的(de)了解,由于每個開發人員各自(zì)隻對自(zì)己的(de)use case負責,對别人的(de)use case不了解,但是每一(yī)個use case會有(yǒu)功能重複的(de)地(dì)方,導緻大量的(de)重複工作。編碼階段工作安排的(de)粒度應該是類,編碼階段工作的(de)安排原則是先分層,再分割,按照表示層,業務層,數據訪問層分開後,每一(yī)層內(nèi)可(kě)以進一(yī)步分為(wèi)不同類,使用測試驅動的(de)編程方法,每個編程人員單獨編寫代碼,并進行(xíng)單元測試。每個層次的(de)編程人員隻需要對某一(yī)種技術有(yǒu)比較深入的(de)了解。6.測試階段很多人分不清什麽是單元測試,什麽是集成測試,什麽是系統測試?測試的(de)順序是先單元測試,然後是集成測試,最後是系統測試。單元測試是源代碼級的(de)測試,一(yī)般由編程人員自(zì)己使用各種unit工具測試,是白盒測試。集成測試是在單元測試結束後,将一(yī)個或若幹個單元作為(wèi)一(yī)個子(zǐ)系統的(de)黑盒測試,測試子(zǐ)系統內(nèi)的(de)所有(yǒu)組件可(kě)以正确的(de)交互,集成測試通過對子(zǐ)系統不斷增加新的(de)單元最後完成整個系統的(de)測試,集成測試不應由開發人員完成。7.結束軟件開發過程中,各種輔助工具以及process很重要,但是使用工具和(hé)process的(de)最終目的(de)是為(wèi)了更高(gāo)效的(de)在開發人員之間溝通交流,記錄存在開發人員腦子(zǐ)裏的(de)想法,不要為(wèi)了process而process。不能以為(wèi)會使用MS word,就認為(wèi)可(kě)以成為(wèi)作家。最後引用Robert Martin的(de)《敏捷軟件開發:原則、模式與實踐》中的(de)一(yī)句話作為(wèi)本文的(de)結束:過渡信賴工具和(hé)過程以及低(dī)估智力和(hé)經驗都是軟件開發災難的(de)源泉。 注: 本文摘自(zì)網絡 台州極速網絡有(yǒu)限公司願以雄厚的(de)技術實力基礎

軟件開發流程的(de)問題的(de)介紹就聊到這裏吧(ba),感謝你花時間閱讀本站內(nèi)容,更多關于軟件開發流程的(de)問題有(yǒu)哪些、軟件開發流程的(de)問題的(de)信息别忘了在本站進行(xíng)查找喔。

掃碼二維碼