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