軟件開發(fā)的定義是是什么 要開發(fā)一個軟件應(yīng)該考慮哪些方面?
要開發(fā)一個軟件應(yīng)該考慮哪些方面?軟件是三個復(fù)雜工程,業(yè)界有軟件工程一說。軟件工程也各高校計算機系必修模塊科目。旗下一個軟件應(yīng)該是判斷哪些方面,我們將引入軟件工程中的一些概念和元素接受描述。而,充當(dāng)企業(yè)
要開發(fā)一個軟件應(yīng)該考慮哪些方面?
軟件是三個復(fù)雜工程,業(yè)界有軟件工程一說。軟件工程也各高校計算機系必修模塊科目。旗下一個軟件應(yīng)該是判斷哪些方面,我們將引入軟件工程中的一些概念和元素接受描述。
而,充當(dāng)企業(yè),客戶的或個人而言在通過軟件開發(fā)時,除此之外要判斷軟件工程外,還要決定到相關(guān)的資源。這里的資源以及人,預(yù)算,開銷,時間等等。而這些包含到里面,就不屬于到項目管理的范疇。
接下來的我就從軟件工程和項目管理的角度接受具體描述軟件開發(fā)要盡量的方面。
從軟件工程的角度看,軟件開發(fā)以及了前期的需求分析,模塊設(shè)計,祥細(xì)設(shè)計,然后把才到大家常見如果說的編碼率先實施階段,這一次時測試培訓(xùn),房屋交付上線。結(jié)果有一個不能遺漏掉的階段,那就是系統(tǒng)升級階段。
需求分析階段:大多數(shù)采取訪談(talks),workshop,調(diào)查表等多種,由專職的應(yīng)用/業(yè)務(wù)顧問(Application Consultant/Business Consultant),向客戶知道一點需求并參與確認(rèn)。初始階段的需求分析非常重要,稍有偏差,便有失之毫厘,謬以千里的風(fēng)險。不會相信每一位程序員朋友們都接觸過變更手續(xù),尤其是項目后期。當(dāng)你的代碼測試了一遍遍,信心滿滿考慮幾乎沒有bug了,這時候leader告訴你不好意思,變更他來了,你做的那那塊要改成這樣,改成這樣:(。當(dāng)然了項目前期需求收集,分析階段不確定性比較好大,所以我這里特別強調(diào)需要有自身的應(yīng)用/業(yè)務(wù)顧問參與把關(guān)。不過些辦理變更是必不可免的。系統(tǒng)設(shè)計:需求分析完了,要做SolutionDesign了,這時候SolutionArchitect先進(jìn)場(資深專業(yè)方案架構(gòu)師)。要想后期編碼具體實施輕松,系統(tǒng)設(shè)計階段,如果有資深專業(yè)大牛把關(guān)后面的日子可能會好過很多。和系統(tǒng)的基本是處理流程、系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計、運行設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和出錯處理設(shè)計等。總是要應(yīng)用新的技術(shù),還不需要參與飛速的新技術(shù)調(diào)研。當(dāng)今技術(shù)蓬勃發(fā)展的年代,有時客戶需求可以建議使用到新的技術(shù),或許是整個團隊之前都就沒接近過的,這時候就必須架構(gòu)師總體把關(guān)了。大多數(shù)會有技術(shù)天分的小組成員接受技術(shù)可行性調(diào)研。祥細(xì)設(shè)計:大的框架結(jié)構(gòu),技術(shù)方向在系統(tǒng)設(shè)計階段能完成,確認(rèn)了以后,相對于各個模塊而言通過詳細(xì)設(shè)計。好的詳細(xì)點設(shè)計文檔乾坤二卦了模塊內(nèi)所有實際用例(usecase)的邏輯處理,這些邏輯去處理比較復(fù)雜到的算法。大多數(shù)不需要專職的程序員并且這部分文檔的書寫。好的文檔寫完整,后面coding的同學(xué)可能會身著快速。編碼率先實施:如果沒有前面祥細(xì)設(shè)計做的好,到了這個階段就要比隨意。只不過是對程序員的基本功應(yīng)該很有要求的。別外有一點就是自己的單元測試要先做了。測試培訓(xùn):這個階段不過分兩個小階段。一個是測試,一個是對用戶的培訓(xùn)。測什么以及真包含于測試出來,壓力測試等,最后是UAT(User Acceptance Test)。如果不是都沒有問題,就擇良辰吉日上不了線了。用戶培訓(xùn)這個環(huán)節(jié)蠻不重要,一定不能不可忽視,就有關(guān)系到最終用戶對整個系統(tǒng)的接受程度。象會選定種子用戶先通過功能培訓(xùn),并和種子用戶互相對所有用戶參與整個軟件的使用培訓(xùn)。實際交付上線:前面這樣多的階段都完成了,所有的測試也實際了,是不是上不了線就順?biāo)炝恕J前?,根?jù)筆者的經(jīng)驗,可未必。上游戲的時候些微都有一些幺蛾子。新系統(tǒng)下線還好好,相對于舊升級軟件,假如系統(tǒng)相當(dāng)龐大,國內(nèi)好象也就只能是國慶/春節(jié)并且了。為啥,有7天假期,也就是說有7天的時間用戶不使用系統(tǒng),這7天過程中假如會出現(xiàn)問題也不影響大用戶的操作。但是要是7天時間不能下線,不好意思啊,沒法回退,等待下一個7天的假期。以維護:上游戲了,該為我慶祝了,一般軟件公司上游戲后都有吧慶功會。歡慶后,不要忘了另外軟件系統(tǒng)的維護。首先,任何系統(tǒng)都不能絕對的保證不出bug。主要,是對換算的應(yīng)用來講,對于古怪的系統(tǒng),一天才能產(chǎn)生的數(shù)據(jù)量巨大,對此性能方面,是是需要有去相關(guān)監(jiān)控包括或則的。在用戶可以使用了一段時間以后,會發(fā)現(xiàn)自己一些問題也會出現(xiàn)一些需求。因此,軟件系統(tǒng)的維護也是相當(dāng)最重要的。
上面這么,全是從軟件工程的角度,也是說過了資歷較深架構(gòu)師,資深顧問,好的具體點設(shè)計等等。這些也是資源,都是必須爭取的,如果沒有努力不出來,不好意,項目經(jīng)理現(xiàn)在就要多辛苦了。
接下來的事情就從軟件開發(fā)這個項目的角度出發(fā)去,站在項目管理的角度上,有哪些需要再注意的。項目管理方面我是用PMP的體系來接受詳細(xì)解釋,筆者之前通過PMP認(rèn)證,都覺得PMP的體系在整個項目管理過程中都是套行的。PMP中涉及到項目的范圍管理,時間管理,成本管理,質(zhì)量管理,人力資源管理,溝通管理,風(fēng)險管理,采購管理,干系人管理等。相對于軟件開發(fā)猶顯最重要的幾個環(huán)節(jié),我這邊會參與描述。
時間管理:做軟件開發(fā),一定會會有schedule,什么時候開始,什么時候都結(jié)束了。這樣的話這里的進(jìn)度計劃就顯得尤為重要了。一定必須在明文規(guī)定的時間參與交付。成本管理:不論今天是一個公司,或則一個客戶,或者一個相當(dāng)于的自然人所擁有的資源和時間都是最多的,能投入到到軟件開發(fā)中的資源也是不大的,如何能都能夠在決策變量的資源中能夠完成軟件開發(fā),是對項目經(jīng)理一個要求。很可能會我上面說過的那些資深顧問,資深專業(yè)架構(gòu)師項目經(jīng)理根本要不了,的或公司也可以提供不了,這時候也要另想方法。風(fēng)險管理:通過早期的風(fēng)險識別,和相對應(yīng)的定性,定量分析,來會制定躲避的計劃,使還能夠提升對風(fēng)險的控制。如何實施整體變更再控制:絕大部分項目都會有變更,軟件開發(fā)也應(yīng)該不會其中之一。筆者對于就很有體驗。這對變更的管控,都是對項目經(jīng)理而言很有挑戰(zhàn)的一項任務(wù)。
上述事項的都判斷到,基本整個軟件開發(fā)也應(yīng)該不會有什么大問題了。
如需要初步別人交流,歡迎評論或私戳。
開發(fā)一款A(yù)PP大概需要多少錢?開發(fā)周期大概是多久?
這個問題沒有具體的答案,簡單每一款A(yù)PP的功能都不一樣,就算是幾乎完全一樣的APP效果體驗又是不一樣的的。舉幾個具體看的例子:
第一:.例如就說最基本的注冊登錄,很可能就分為郵箱注冊登陸,直接授權(quán)登入,授權(quán)許可登陸,微博合法授權(quán)登入,短信驗證碼注冊登錄。不就只憑一個登入就有很多完全不同的,那當(dāng)然價格無用戶體驗也不同了。
第二:修改密碼又分成三類郵箱找回來和短信找回賬號,申訴找回賬號,密保找回賬號。你做一種我還是做多種成本肯定就差了幾倍的或更高。
第三:又比如說搜索功能,最簡單的搜索功能肯定開發(fā)完畢下那就是三個小時的事情,只不過這種搜索可能在幾千個,幾萬個商品數(shù)據(jù)的時候又能正常運行。不過假如商品數(shù)據(jù)有幾百萬條,這時候當(dāng)然會混亂。
再比如你搜索功能是意見模糊搜索(即輸入輸入的關(guān)鍵詞也可以有偏差)應(yīng)該精準(zhǔn)搜索。模糊搜索能什么都看不清楚到什么程度,講陰陽也是很小的。
你現(xiàn)在就可以不然后打開淘寶的搜索功能細(xì)細(xì)的看去看看它有多少細(xì)節(jié)(高級搜索,地域,價位篩選后,搜索結(jié)果排序等等等等)。
這里就簡單的說了幾個例子,完全不同的開發(fā)周期也都不一樣。幾個月到幾年。