新四季網

一種軟體開發方法及系統與流程

2023-10-06 03:42:54 3


本發明涉及軟體開發領域,具體涉及一種軟體開發方法及系統。



背景技術:

在軟體的開發過程中,隨著項目規模的增加和開發人員的增加,不同項目採用的編碼風格和模塊調用規則往往不同,進而導致最終項目中會出現各種風格的代碼和模塊,項目耦合性越來越高。對開發後的軟體進行維護時,開發人員在改動不熟悉的模塊時候很難入手,新加入開發成員需要花費較長的時間學習不同的編碼規則。

為了便於對軟體進行開發和維護,現有的軟體開發方法一般為:通常是先對大型項目進行「橫向分層」,例如將客戶端分為多層:界面層、邏輯層、網絡層和數據層,然後針對每一層工作層分別指派相應的開發人員進行開發和維護,自上而下依賴;相鄰層之間的開發人員之間約定好接口,針對一個業務需求,每層的開發人員對應約定的接口實現,聯調接入測試即可。

但是,上述方法存在以下缺陷:

(1)要實現每一層分別指派相應的開發人員開發和維護,需要針對每一層配備相關技術的開發人員,進而極大的增加了人力成本;與此同時,由於邏輯層的功能比較複雜和重要,因此通常需要比較資深的開發進行開發維護,而經驗較少的開發基本沒有機會介入,長期不利於團隊成員的成長。

(2)不同編碼規則的軟體的合併難度較大,而且隨著單個軟體中代碼的增大,不同編碼規則的軟體的耦合度會急劇增高,非常不利於軟體的開發和實現新需求。

例如:現有界面層中的視圖控制器需要同時管理多幅視圖,因此視圖控制器中存在多種視圖邏輯,進而急劇增高軟體的耦合度。

又如:現有在界面中刷新視圖時,業務層將數據模型改變的通知轉發至視圖控制器,控制器在多幅視圖中找到對應的視圖後進行刷新,業務層、數據模型層和界面層3者的耦合度較高。

再如:現有網絡層需要負責至少以下2個功能:1、網絡請求獲取json數據,2、對json數據進行映射得到數據模型,網絡層的耦合度較高。

(3)由於所有層自上而下依賴,因此下層的工作(開發和維護)需要等待上層工作發成後才能開始啟動,進而導致整體開發的敏捷性較差,工作效率較低。



技術實現要素:

針對現有技術中存在的缺陷,本發明解決的技術問題為:如何在軟體開發時減少人力成本,降低軟體的耦合度。

為達到以上目的,本發明提供的軟體開發方法,包括以下步驟:

s1:創建與軟體關聯的工作層,工作層包括界面層、數據模型層、業務層和網絡層;

界面層用於:展示視圖界面;界面層包括視圖、視圖邏輯程序和視圖控制器,視圖控制器用於:根據數據模型層中的數據模型設置視圖;

數據模型層用於:存放數據模型,數據模型包括本地邏輯數據模型和網絡數據映射模型;

業務層用於:為界面層的視圖邏輯程序和視圖控制器提供業務接口;

網絡層用於:向網絡請求返回json數據後,將json數據映射為網絡數據映射模型。

本發明提供的軟體開發系統,包括工作層創建模塊,其用於:創建與軟體關聯的工作層,工作層包括界面層、數據模型層、業務層和網絡層;

界面層用於:展示視圖界面;界面層包括視圖、視圖邏輯程序和視圖控制器,視圖控制器用於:根據數據模型層中的數據模型設置視圖;

數據模型層用於:存放數據模型,數據模型包括本地邏輯數據模型和網絡數據映射模型;

業務層用於:為界面層的視圖邏輯程序和視圖控制器提供業務接口;

網絡層用於:向網絡請求返回json數據後,將json數據映射為網絡數據映射模型。

與現有技術相比,本發明的優點在於:

(1)與現有技術中「橫向分層」相比,本發明將軟體的工作層進行「豎向分層」,即對工作層進行開發和維護時,隸屬於同一部門的開發人員需要處理工作層每一層(界面層、數據模型層、業務層等)的開發維護工作,開發人員從一開始就介入了整個流程;而現有技術中隸屬於同一部門的開發人員只處理工作層中一層的開發維護工作。因此,本發明降低了人力成本,非常適於推廣。

在此基礎上,隸屬於同一部門的開發人員需要處理工作層每一層的開發維護工作,會使得不同部門的工作流程獨立,避免出現現有技術中不同部門之間的依賴關係,進而提高整體開發的敏捷性和工作效率。

與此同時,本發明使得隸屬於不同部門的開發人員均遵從「豎向分層」的架構和標準,進而使得不同部門的開發人員的編碼標準有序,不會因為個人風格的不一致影響到整體,進而為實現軟體開發時的解耦合提高了先決條件。

進一步,不同部門通過本發明研發的子項目「組裝」成母項目後,由於每個子項目之間的耦合度較低、且每個子項目的架構和編碼規則統一,因此將多個子項目「組裝」成母項目時,只用將多個子項目的程序拼裝在一起即可完成母項目,其操作流程非常簡單,便於人們使用。

(2)與現有技術中同時管理多幅視圖的視圖控制器相比,本發明為每1幅視圖配置了1臺子控制器,進而能夠從父控制器中抽離對應的程序代碼文件,實現對視圖控制器進行「瘦身」解耦合的目的。與現有技術中存在多種視圖邏輯的視圖控制器相比,本發明的子控制器僅與父控制器保持管理的邏輯關係,因此本發明的子控制器與父控制器的耦合度非常低。

(3)與現有技術中的網絡層相比,本發明將網絡層拆分為api層和服務層,api層和服務層是組合關係,api層負責網絡請求獲取json數據,服務層負責對json數據進行映射得到數據模型。因此,本發明實現了網絡層的解耦合,解耦合的效果不僅體現在職責的分解,而且體現在代碼的復用性和後續擴展性的增強。

在復用性方面,api層的代碼可以在多個服務層中復用(一層服務層串行調用多個api文件的接口),服務層的代碼可在業務層、視圖邏輯程序、甚至是輕量級的視圖控制器中調用。在擴展性方面,網絡請求底層方案或數據模型層的映射方案若有修改,分別針對api層和服務層單獨修改即可,非常便於人們使用。

通過(2)和(3)可知,本發明對大型工作層(視圖控制器和網絡層)進行了拆分,進而在物理層上減少了項目的耦合性。原本需要在一個文件中修改的多個需求被拆分到了不同文件,降低了多人開發的需求衝突問題。

(4)與現有技術中通過業務層和視圖控制器來刷新視圖相比,本發明能夠在數據模型發生改變時,直接通過子控制器根據改變後的數據模型,刷新對應的視圖,不僅對業務層、數據模型層和界面層3者之間實現了解耦合,而且與現有技術中視圖控制器在多幅視圖中找到對應的視圖相比,子控制器不需要查找視圖,直接設置綁定的視圖即可,顯著提高了工作效率。

(5)本發明的基礎層能夠將多套邏輯程序不同的通用組件進行統一,進而使得軟體的開發和維護只需要對1中邏輯程序進行操作,避免了通用代碼重複添加的問題,保證邏輯實現的統一性,不僅顯著降低了工作難度,提高了工作效率,而且對後期的代碼質量控制和全局功能修改有極大的幫助,非常適於推廣。

附圖說明

圖1為本發明實施例中的軟體的工作層的結構框圖;

圖2為本發明實施例中軟體開發方法的流程圖。

具體實施方式

以下結合附圖及實施例對本發明作進一步詳細說明。

參見圖1和圖2所示,本發明實施例中的軟體開發方法,包括以下步驟:

s1:創建與軟體關聯的工作層(界面層、數據模型層、業務層和網絡層);

界面層用於:展示視圖界面,界面層包括視圖、視圖邏輯程序和視圖控制器,視圖控制器用於:根據數據模型層中的數據模型設置視圖;

數據模型層用於:存放數據模型,數據模型包括本地邏輯數據模型和網絡數據映射模型;

業務層用於:為界面層的視圖邏輯程序和視圖控制器提供業務接口;

網絡層用於:向網絡請求返回json數據(javascriptobjectnotation,輕量級的數據)後,將json數據映射為網絡數據映射模型。

根據s1可知,與現有技術中「橫向分層」相比,本發明實施例將軟體的工作層進行「豎向分層」(即對工作層進行開發和維護時,隸屬於同一部門的開發人員需要處理工作層每一層的開發維護工作),開發人員從一開始就介入了整個流程,而現有技術中隸屬於同一部門的開發人員只處理工作層中一層的開發維護工作。因此,本發明實施例顯著降低了人力成本,非常適於推廣。

在此基礎上,隸屬於同一部門的開發人員需要處理工作層每一層的開發維護工作,會使得不同部門的工作流程獨立,避免出現現有技術中不同部門之間的依賴關係,進而提高整體開發的敏捷性和工作效率。

s2:將視圖控制器分解為1臺父控制器和至少3臺子控制器,每臺子控制器各與一幅視圖綁定;子控制器用於:根據數據模型層中的數據模型,設置1幅視圖,父控制器用於:管理所有子控制器的工作。

根據s2可知,與現有技術中同時管理多幅視圖的視圖控制器相比,本發明實施例為每1幅視圖配置了1臺子控制器,進而能夠從父控制器中抽離對應的程序代碼文件,實現對視圖控制器進行「瘦身」解耦合的目的。與現有技術中存在多種視圖邏輯的視圖控制器相比,本發明實施例的子控制器僅與父控制器保持管理的邏輯關係,因此本發明實施例的子控制器與父控制器的耦合度非常低。

s3:將每1臺子控制器設置的視圖,均與數據模型層中的對應的數據模型關聯,當數據模型發生改變時,子控制器根據改變後的數據模型刷新對應的視圖。

根據s3可知,與現有技術中通過業務層和視圖控制器來刷新視圖相比,本發明實施例能夠在數據模型發生改變時,直接通過子控制器根據改變後的數據模型,刷新對應的視圖,不僅對業務層、數據模型層和界面層3者之間實現了解耦合,而且與現有技術中視圖控制器在多幅視圖中找到對應的視圖相比,子控制器不需要查找視圖,直接設置綁定的視圖即可,顯著提高了工作效率。

s4:將網絡層分為服務層和api層(applicationprogramminginterface,應用程式編程接口層);

api層用於:請求網絡返回json數據(javascriptobjectnotation,輕量級的數據);

服務層用於:將api層請求返回的json數據映射為網絡數據映射模型。

根據s4可知,與現有技術中的網絡層相比,本發明實施例將網絡層拆分為api層和服務層,api層和服務層是組合關係,api層負責網絡請求獲取json數據,服務層負責對json數據進行映射得到數據模型。因此,本發明實施例實現了網絡層的解耦合,解耦合的效果不僅體現在職責的分解,而且體現在代碼的復用性和後續擴展性的增強。

在復用性方面,api層的代碼可以在多個服務層中復用(一層服務層串行調用多個api文件的接口),服務層的代碼可在業務層、視圖邏輯程序、甚至是輕量級的視圖控制器中調用。

在擴展性方面,網絡請求底層方案或數據模型層的映射方案若有修改,分別針對api層和服務層單獨修改即可,非常便於人們使用。

s5:創建基礎層,基礎層中設置有通用業務層邏輯程序,其目的為:在大多數項目中,會存在目的相同、但多套邏輯程序不同的通用組件,基礎層能夠將多套邏輯程序不同的通用組件進行統一,進而使得軟體的開發和維護只需要對1中邏輯程序進行操作,避免了通用代碼重複添加的問題,保證邏輯實現的統一性,不僅顯著降低了工作難度,提高了工作效率,而且對後期的代碼質量控制和全局功能修改有極大的幫助,非常適於推廣。

本發明實施例中的軟體開發系統,包括工作層創建模塊、視圖控制器拆分模塊、數據模型關聯模塊、網絡層拆分模塊和基礎層創建模塊;

工作層創建模塊用於:創建與軟體關聯的工作層,工作層包括界面層、數據模型層、業務層和網絡層;

界面層用於:展示視圖界面;界面層包括視圖、視圖邏輯程序和視圖控制器,視圖控制器用於:根據數據模型層中的數據模型設置視圖;

數據模型層用於:存放數據模型,數據模型包括本地邏輯數據模型和網絡數據映射模型;

業務層用於:為界面層的視圖邏輯程序和視圖控制器提供業務接口;

網絡層用於:向網絡請求返回json數據後,將json數據映射為網絡數據映射模型。

視圖控制器拆分模塊用於:將視圖控制器分為1臺父控制器和至少3臺子控制器,每臺子控制器各與一幅視圖綁定;子控制器用於:根據數據模型層中的數據模型,設置1幅視圖,父控制器用於:管理所有子控制器的工作。

數據模型關聯模塊用於:將每1臺子控制器設置的視圖,均與數據模型層中的對應的數據模型關聯,當數據模型發生改變時,子控制器根據改變後的數據模型刷新對應的視圖。

網絡層拆分模塊用於:將網絡層分為服務層和api層;

api層用於:請求網絡返回json數據;

服務層用於:將api層請求返回的json數據映射為網絡數據映射模型。

基礎層創建模塊用於:創建基礎層,基礎層中設置有通用業務層邏輯程序。

通過本發明實施例可知,本發明使得團隊開發人員在項目中可以完成需求開發的全流程,個人技術提高,不會出現橫向分層的個人成為項目瓶頸的情況,而且由於具有通用的代碼組織標準和解耦方案,因此團隊開發成員之間互不依賴,進而極大提升團隊效率,基礎層的加入同樣起到了解耦提升團隊效率,增強項目健壯性的目的。

進一步,不同部門通過本發明實施例研發的子項目「組裝」成母項目後,由於每個子項目之間的耦合度較低、且每個子項目的架構和編碼規則統一,因此將多個子項目「組裝」成母項目時,只用將多個子項目的程序拼裝在一起即可完成母項目,其操作流程非常簡單,便於人們使用。

進一步,本發明不局限於上述實施方式,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護範圍之內。本說明書中未作詳細描述的內容屬於本領域專業技術人員公知的現有技術。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀