淺談軟體工廠

來源:互聯網
上載者:User

軟體工廠是一種工業化的軟體開發方法論,如同工廠與研究所的不同——工廠著重的是工具應用,而研究所著重的是理論實踐一樣——軟體工廠與敏捷開發論也基本對立:它不強調對系統和過程的持續改進,它強調的是高度分工的團隊合作模式,流水線般提供開發週期內所需的資源(如程式碼群組件、工具、實用參考、文檔、正常化的活動),從而保障最終產品的品質和提高開發效率。

軟體工廠的前提

大量實踐的理論(模式)和產品化的工具(可複用架構、開發工具及測試載入器)。

以依賴注入(Dependency Injection)這一非常流行的模式為例,它的基本思想是,通過改變組件之間的依賴關係從而實現更靈活、更有擴充性的系統架構。而微軟提供的Unity Block基於此思想實現,這是一個提供給我們用以實現依賴注入的工具組件。

另外如ASP.NET Membership實現了角色型存取控制、ASP.NET MVC Framework實現了Model-View-Controller分離原則、ADO.NET Entity Framework實現了Object-Relation-Mapping資料訪問模式等等,都是基於一系列實踐模式所提供的開發架構。這些架構加上開發工具、測試載入器(NUnit、xUnit等)、構建部署工具的廣泛應用,為軟體工廠的出現提供了成熟的環境。

豐富的資源

如上段所述,大量軟體開發的設計模式以工具形式存在於軟體工廠中,無形中就為開發人員提供了優秀的架構和設計應用模式

兩個開發人員,一個能熟練使用ASP.NET MVC架構構建Web應用程式,另一個能熟練基於MVC模式建立Web應用程式,事實上,你並不能就此判斷他們使用各自所長建立的最終產品的設計好壞。

實用參考和文檔、快速上手指南可以解決開發過程中常見的技術問題。

設計和代碼產生器,用於控制碼和應用系統分層結構。

模板,包含大量可複用的代碼。

正常化的開發活動

在軟體工廠中,我們更多的是操作一系列模板,在當前步驟完成當前既定的功能,從而完成應用程式的建立;對每一個開發人員而言,開發活動的自由度將大大降低,但對整個開發過程來說,協作和分工卻更加清晰可控。參見,Web Client Software Factory中一個多層Web應用程式的建立過程:

 

 

高度分工化

正因為軟體工廠正常化了開發活動,我們可以讓Team Dev有更清晰的分工界限。例如,可以讓一名進階人員操作設計器,在進行功能分解的同時產生基本代碼,另一名人員使用開發工具,負責在產生的檔案中撰寫實現代碼。因為這些不同的工具均整合在軟體工廠之中為解決方案檔案服務,而不是像從前的項目那樣通過文檔、Visio圖形或UML進行互動。

軟體工廠帶來的挑戰

軟體工廠與敏捷開發,並不存在孰優孰劣的問題。工業化生產帶來的是對管理的更高要求以及技術的歸門別類,對於工廠本身,亦需要持續的改善和思考,最終的目標只有一個:最終產品上實現效率和品質的完美統一,為Team Dev實現更高的產出價值。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.