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