發(fā)布時(shí)間:2020-07-08
開發(fā)一套適合某些行業(yè)的軟件系統(tǒng)從來不是一件容易的事情,動手開發(fā)之前首先要確定項(xiàng)目規(guī)模,項(xiàng)目周期,項(xiàng)目預(yù)算,項(xiàng)目人員等等。
不打算從項(xiàng)目管理的角度來看,只從開發(fā)的角度來看待其中的一些問題。也許可以劃分成下面幾個(gè)部分:
確定需求
軟件項(xiàng)目需求是用來解決做什么的問題,這些需求來自用戶,用戶指的是使用軟件的人,需求整理從粗到細(xì),做好需求文檔,需求分析,圖文并茂,需求整理抓住幾個(gè)要點(diǎn):需求提出人是誰,要實(shí)現(xiàn)什么功能,需要達(dá)到的目的,做需求不是僅僅記錄用戶說的每一句話,而是通過與用戶的溝通來理解用戶真實(shí)的想法,可能用戶并不是那么專業(yè),用詞也許不一定準(zhǔn)確,需求分析的目的就是為了捕捉用戶的真實(shí)思想而做的工作,可以通過原型圖與用戶進(jìn)行逐步的深入溝通來保證需求的正確性。
梳理業(yè)務(wù)流程
有了需求之后,接下來就是歸納整理了,從需求中分析出業(yè)務(wù)模型,整理出業(yè)務(wù)流程,業(yè)務(wù)字典,明晰業(yè)務(wù)邏輯,業(yè)務(wù)分析不涉及技術(shù)問題,只需要描述出一個(gè)文檔,可以讓市場人員或開發(fā)人員能夠根據(jù)文檔描述來了解用戶的業(yè)務(wù)是如何運(yùn)作的,可以通過建模工具畫出業(yè)務(wù)框架圖或業(yè)務(wù)流程圖,甚至是原型圖。
規(guī)劃系統(tǒng)模塊
開發(fā)人員熟悉了用戶的業(yè)務(wù)需求后就可以考慮如何進(jìn)行系統(tǒng)開發(fā)了,要考慮的問題包括系統(tǒng)架構(gòu)設(shè)計(jì),開發(fā)語言選擇,數(shù)據(jù)庫表設(shè)計(jì),通訊模式通訊協(xié)議。如何進(jìn)行系統(tǒng)規(guī)劃呢?這很重要,好的架構(gòu)可以事半功倍,要考慮好系統(tǒng)的健壯性,易擴(kuò)展性。系統(tǒng)規(guī)劃包括技術(shù)層面和業(yè)務(wù)層面的規(guī)劃,首先根據(jù)系統(tǒng)的業(yè)務(wù)需求,確定需要的技術(shù)架構(gòu)是B/S,C/S架構(gòu)或者是混合架構(gòu),架構(gòu)設(shè)計(jì)包括網(wǎng)絡(luò)層,業(yè)務(wù)邏輯層,接口層設(shè)計(jì)等。
網(wǎng)絡(luò)層要完成的內(nèi)容是客戶端連接的管理,并發(fā)連接處理,網(wǎng)絡(luò)容錯(cuò)處理等等一切與業(yè)務(wù)無關(guān)的技術(shù)問題。網(wǎng)絡(luò)層,業(yè)務(wù)層,接口層各個(gè)分層要具有獨(dú)立性,而不是揉雜在一起,這樣可以達(dá)到技術(shù)上的重用,以后可以把各個(gè)分層架構(gòu)重用到不同的項(xiàng)目中去,要做好這種隔離設(shè)計(jì)可能需要用到一些設(shè)計(jì)模式來規(guī)劃好各個(gè)層間的接口了。
業(yè)務(wù)邏輯層設(shè)計(jì),首先確定有多少業(yè)務(wù)對象,所謂對象就是業(yè)務(wù)中涉及到的人和物還有可能是一個(gè)系統(tǒng)。其次是規(guī)劃對象接口,業(yè)務(wù)對象之間的聯(lián)系和通訊就是是通過接口調(diào)用進(jìn)行的,每個(gè)對象實(shí)現(xiàn)各自的業(yè)務(wù)邏輯。每個(gè)業(yè)務(wù)對象都是獨(dú)立的個(gè)體,一個(gè)對象只處理自身的業(yè)務(wù)邏輯和數(shù)據(jù),通過接口通訊來影響其他對象的狀態(tài)。業(yè)務(wù)對象有大到小細(xì)致劃分,對象之間要做到低耦合,高內(nèi)聚,換句話說是對象間的依賴關(guān)系盡可能低,各個(gè)模塊盡可能獨(dú)立,接口調(diào)用簡單,大家各掃門前雪,各干各的活,完成后需要把結(jié)果告訴別人時(shí)才去打擾別人。
接口層設(shè)計(jì),這部分也是比較關(guān)鍵的,每個(gè)對象之間需要接口設(shè)計(jì),每個(gè)層之間通訊也需要接口設(shè)計(jì),所謂接口可以是函數(shù),對象方法也可以是調(diào)用的web的URL。對象或者各個(gè)層間通過接口調(diào)用進(jìn)行信息交換,接口設(shè)計(jì)的原則是:意思明確,這個(gè)接口是用來做什么的定義清楚;業(yè)務(wù)邏輯單一,一個(gè)接口只處理同一個(gè)業(yè)務(wù)相關(guān)的事情;可擴(kuò)展,接口的參數(shù)處理要兼顧可變性,隨著業(yè)務(wù)改變可能會增加或減少參數(shù),但已經(jīng)確定下來的參數(shù)意義不能改變。
各個(gè)模塊具體怎么來定義接口,按什么樣的方式設(shè)計(jì)才能做到松耦合,高內(nèi)聚呢?可以參考一下設(shè)計(jì)模式相關(guān)內(nèi)容,選擇一些合適的模式,包括觀察者模式、工廠模式、命令模式等等。
無論什么時(shí)候都要將模塊化思維貫徹到底,將模塊化思維固化在腦子里形成思考習(xí)慣是非常有益的。在合作的一些項(xiàng)目中,有些項(xiàng)目代碼簡直目不忍睹,令人窒息,代碼邏輯一團(tuán)糟,不懂設(shè)計(jì),寫出的代碼就是簡單語句的流水式展示,甚至使用了超多的if和else判斷語句來走完一個(gè)復(fù)雜的業(yè)務(wù)流程,一個(gè)函數(shù)成百上千行代碼,搞的編譯器都在抱怨分支太多產(chǎn)生了編譯錯(cuò)誤,這樣的程序結(jié)構(gòu)還是一位項(xiàng)目頭頭搞的,批評別人的時(shí)候,自己還沾沾自喜的問別人,看看我寫的代碼是不是邏輯清楚,是不是很簡單,真是奇葩。隨著業(yè)務(wù)流程的增加這種流水式的編程以后將會成為項(xiàng)目組所有人的噩夢。
設(shè)計(jì)的模塊具體要怎么呈現(xiàn)呢?答案是使用UML建模工具來畫各種模型圖,類圖,序列圖,流程圖等等,對復(fù)雜的項(xiàng)目UML建模工具是必須的。
代碼編寫
梳理清楚業(yè)務(wù)流程,設(shè)計(jì)好系統(tǒng)模塊之后的事情就是編碼了,把軟件看成是一棟樓的話,系統(tǒng)模塊設(shè)計(jì)完成了整棟樓的圖紙?jiān)O(shè)計(jì),編碼就是要用材料把圖紙內(nèi)容變成現(xiàn)實(shí)。
代碼怎么寫,從哪里下手?首先要遵循之前的模塊設(shè)計(jì)的邏輯,可以先定義模塊類及其接口函數(shù),然后是整個(gè)模塊的業(yè)務(wù)邏輯實(shí)現(xiàn)的代碼,這個(gè)就要非常細(xì)致了,要根據(jù)流程圖來合理定義內(nèi)部函數(shù),從主流程到分支逐級展開,函數(shù)名要言簡意賅,意義明確,最好達(dá)到望文生義的效果。
每個(gè)模塊對象都實(shí)現(xiàn)之后,接下來是把全部的模塊整合起來,這時(shí)可以定義一個(gè)系統(tǒng)控制模塊,這個(gè)模塊負(fù)責(zé)配置各個(gè)子模塊間的接口調(diào)用,進(jìn)行信息傳遞。
軟件開發(fā)項(xiàng)目管理工具ProjectCenter提供面向工程項(xiàng)目和研發(fā)項(xiàng)目的項(xiàng)目管理,支持固定工期作業(yè)和非固定工期作業(yè);支持多種資源管理:人工、非人工、材料;支持多價(jià)格和多日歷管理;支持多部門、多層次的項(xiàng)目組織結(jié)構(gòu)和項(xiàng)目組合管理;提供面向部門的成本管理、部門資源管理、權(quán)限管理、日歷管理;支持精細(xì)的報(bào)工管理、支持任務(wù)成果管理、項(xiàng)目范圍管理、交付物管理。
推薦閱讀:
項(xiàng)目進(jìn)度管理需要注意幾個(gè)關(guān)鍵點(diǎn)
軟件項(xiàng)目管理系統(tǒng)都包括哪些主要功能?IT公司用什么項(xiàng)目管理軟件比較好?
如何做好軟件研發(fā)項(xiàng)目管理?實(shí)施研發(fā)項(xiàng)目管理4大要點(diǎn)
軟件開發(fā)項(xiàng)目管理方法:軟件質(zhì)量控制及人員組織管理
怎么進(jìn)行軟件項(xiàng)目的進(jìn)度管理?如何通過甘特圖控制項(xiàng)目進(jìn)度?
電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。
您的信息已成功提交!
我們的客服人員稍后會與您聯(lián)系