您好,登錄后才能下訂單哦!
自從軟件出現以來,軟件開發中新技術、新方法不斷出現,如編程語言有C、Java、Rust等,構件技術有COM/COM+、CORBA、JavaBean/EJB等,開發方法有面向過程、面向對象、面向服務等,以及目前比較流行的虛擬機、容器、微服務、DevOps、Scrum等技術和方法。但是,這些軟件開發、軟件復用技術,并沒有給軟件行業帶來真正的變革,以下問題一直沒有得到解決:一是每個軟件項目都需要建立一個開發團隊,并全程參與軟件生命周期的所有階段,包括軟件需求、設計、開發、測試、部署,而軟件開發過程中也一直離不開程序員一行行地編寫代碼;二是開發團隊中的參與者必須是相關專業人員,其他人無法直接參與到其中;三是軟件行業的生產力從來沒有出現過大的飛躍,集中體現在軟件開發周期長、不同團隊的工作成果極難實現共享。參照人類社會發展歷史可以發現,目前軟件項目的開發模式與古代手工作坊非常類似,僅能開發是一些輪子、馬車這一類的手工制品,無法想象軟件界的航天飛機是個什么樣子?這說明軟件行業還處于一個低水平發展階段,即“軟件作坊”階段,還遠未進入軟件的工業化生產階段。
所以,軟件的未來就在于實現“軟件工業化”。
“軟件作坊”是依靠手工勞動,使用簡單工具從事小規模、小范圍的軟件項目開發,而“軟件工業”則需要實現全社會的分工與協作,并能夠貫穿于軟件生產過程中的所有階段,進而實現大規模或極大規模軟件項目的開發。要實現社會化的分工與協作,其中的關鍵又在于軟件開發的模塊化。
雖然軟件組件或構件技術已出現很長時間,還有人提出了軟件生產線、軟件工廠等概念,也有人提出由人工智能代替人工來實現編程自動化,但目前仍然沒有任何一個開發平臺或者一種開發技術夠真正實現“以模塊組裝的方式開發軟件”,進而引領軟件行業發生軟件的工業化革命。
軟件行業陷入這種困境的根本原因,是缺少一個具備普適性的“工業規范”,目前已有的各種軟件協議、規范或標準,都難以擔當此重任。沒有規矩,不成方圓,一個行業沒有標準,就無法進入工業化生產。軟件行業也是如此,軟件開發更是如此。所以,要實現“以模塊組裝的方式開發軟件”,就要遵循“工業規范”來開發標準化的軟件模塊,從而使得不同團隊開發的軟件模塊可以組合在一起生成能夠滿足特定需求的軟件產品。
上述“工業規范”應具備以下特征:
1.根據“工業規范”開發的軟件模塊,應處于同一個軟件環境當中,具體體現為同一個目錄、同一個開發工具版本、同一個程序庫或數據庫支持等。目前軟件開發中的空間、包等概念的出現,是為了防止軟件組件、類等的版本沖突而提出的,而“工業規范”則要求軟件模塊位于同一個空間或包中,這樣才能實現軟件模塊的可組合、可插拔、可替換特性。
2.根據“工業規范”開發的軟件模塊,其對外提供的接口(或方法)名稱和參數,應統一、明確。由不同團隊開發同一個軟件模塊,如果沒有一個統一的規范來約束,該軟件模塊的實現將千差萬別,比如模塊接口(或方法)命名方式的不同,以及接口(或方法)的參數名稱、參數數據類型、參數順序、返回值類型和數據格式的不同,都會導致該模塊的實現方式不同,即使使用了同樣的開發運行環境,這樣的軟件模塊也難以與其他模塊組合在一起并互相發生作用。
3.根據“工業規范”開發的軟件模塊,其屬性、字段的名稱和數據類型,應統一、明確。這個特征主要體現在軟件模塊的輸入、輸出數據和存儲數據的規范化管理上。以一個用戶數據表為例,對于“用戶名稱”這個字段,可統一定義為name,而不是login_name或userName,這樣將極大地提高軟件模塊的開發效率,也便于不同軟件模塊之間的數據交互。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。