软件工厂:类工厂与架构解析

软件工厂是一种工业化的软件开发方法论,如同工厂与研究所的不同——工厂着重的是工具应用,而研究所着重的是理论实践一样——软件工厂与敏捷开发论也基本对立:它不强调对系统和过程的持续改进,它强调的是高度分工的团队合作模式,流水线般提供开发周期内所需的资源,从而保障最终产品的质量和提高开发效率。
   

软件工厂是一种工业化的软件开发方法论,如同工厂与研究所的不同——工厂着重的是工具应用,而研究所着重的是理论实践一样——软件工厂与敏捷开发论也基本对立:它不强调对系统和过程的持续改进,它强调的是高度分工的团队合作模式,流水线般提供开发周期内所需的资源(如代码组件、工具、实用参考、文档、规范化的活动),从而保障最终产品的质量和提高开发效率。



软件工厂的前提

大量实践的理论(模式)和产品化的工具(可复用框架、开发工具及测试工具)。

以依赖注入(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应用程序的创建过程:


高度分工化

正因为软件工厂规范化了开发活动,我们可以让开发团队有更清晰的分工界限。例如,可以让一名高级人员操作设计器,在进行功能分解的同时生成基本代码,另一名人员使用开发工具,负责在生成的文件中撰写实现代码。因为这些不同的工具均集成在软件工厂之中为解决方案文件服务,而不是像从前的项目那样通过文档、Visio图形或UML进行交互。



软件工厂带来的挑战

软件工厂与敏捷开发,并不存在孰优孰劣的问题。工业化生产带来的是对管理的更高要求以及技术的归门别类,对于工厂本身,亦需要持续的改善和思考,最终的目标只有一个:最终产品上实现效率和质量的完美统一,为开发团队实现更高的产出价值。

   

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空