软件工厂(Software factory)介绍

简介:

工厂是一个使用标准部件、工具和生产流程来规模化生产产 品设备的组织,它广泛用在工业中,然而在软件开发行业中却很少提起。现在我们写的很多应用共性大于差异,但是我们仍然需要从头开始构建任何一个项目,这是 非常低效的。由于没有一种方法可以让我们像工业上一样进行规模化生产,我们就需要不停地重复着一些代码工作,规模化一直是我们需要解决的主要问题之一。

  几年前看过两本介绍软件工厂方面的书籍Software Factories(2004年)和Practical.Software.Factories.in.dot.NET,由于现在考虑OpenExpressApp的建模支持,所以又重新整理一下并与大家分享一下软件工厂的内容。

      

  软件工厂是由微软提出来的,它作为一种创新的方法,可以帮助我们基于可重用流程和软件框架之上创建产品线,采用软件工厂将会帮助我们从系统化的重用获得规模化开发,获得更快的交付时间,更少的测试但更高的质量以及更好的可维护性等。

软件工厂是什么?

  A software factory is a software product line that configures extensible tools, processes, and content using a software factory template based on a software factory schema to automate the development and maintenance of variants of an archetypical product by adapting, assembling, and configuring framework-based components.


   Schema是分类或汇总开发工件的一个一致的方法,它在开发产品时是可配置的

产品线
 

 规模化产品开发方法-产品线工程 .pdf

MDD是什么? 

模型驱动开发(MDD)介绍

高级别的开发流程

      

提炼功能模型

架构定义流程

Software Factories书籍内容框架

  • 第1部分:介绍一下软件工厂
    • 第1章:讲述一个全书引用的一个例子,用来了解软件开发人员面对的挑战。
    • 第2章:描述当前方法和实践处理复杂性带来的问题
    • 第3章:描述当前方法和实践处理改变带来的问题
    • 第4章:描述面向对面不能很好的克服的一些长期问题,并介绍一些重要的创新,这些是软件工厂的基本组成
    • 第5章:详细的描述软件工厂,并展现了一种规模工业化的愿景
  • 第2部分:这部分包含多个主题,每一个描述了一个在第一部分介绍的重要创新,这些章节可以按照顺序的去读
    • 第6章-第9章:讨论模型驱动开发(MDD)。第6、7两章讨论模型、模式和建模相关内容,第8、9章讲解语言本质以及构建语言族的工具
    • 第10-11章:讨论产品族开发。第10章描述系统化的重用,第11章描述软件产品线内容
    • 第12-13章:讨论基于组装的开发。第12章看了一下基于平台的抽象,包括类、库和框架,第13章讨论组件和服务
    • 第14-15章:讨论了生成开发相关内容。第14章讲解了映射和转换,第15章讨论了如何从模型生成代码和其他生成工件
  • 第3部分:回顾了一下第1部分的内容,梳理了一下第2部分内容。第16章引用了一个软件工厂例子,第17章回答了一些常问的问题
  • 附件:描述抽象和提炼,以及UML的优劣

  如果想快速阅读,可以先看第1、5、6、17章,然后通过第4章可以对重要的创新有个全面的了解,通过第1、2、3可以了解当前方法的一些问题。如果想阅读详细的讨论,则可以依次看低6到15章内容。






 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/403111,如需转载请自行联系原作者















相关文章
|
10月前
|
人工智能 自然语言处理 算法
2025年GEO优化行业全景调研报告及头部企业深度解析
GEO(生成式引擎优化)是AI时代品牌认知构建的新范式,依托大模型技术实现企业信息的多模态结构化优化,适配GPT、文心一言等生成式引擎。相较传统SEO,GEO聚焦“生成回答收录”,推动营销从关键词排名迈向AI认知管理。政策规范、技术迭代与市场需求三重驱动下,2025年全球市场规模达1286亿美元,中国超2680亿元。国际巨头凭技术领跑,本土企业如即搜AI、边鱼科技则在跨境与中小微市场实现突破。行业正迈向合规化、多模态融合与垂直深耕新阶段。
|
存储 Java 应用服务中间件
Java规则引擎Drools急速入门
Java规则引擎Drools急速入门
12121 0
Java规则引擎Drools急速入门
|
运维 监控 数据可视化
一文详解:工业软件“低代码开发平台”技术架构研究与分析
本文围绕工业软件低代码开发平台的机遇与挑战,提出基于自动化引擎的技术架构,由工具链、引擎库、模型库、组件库、工业数据网关和应用门户组成。文章分析了其在快速开发、传统系统升级中的应用模式及价值,如缩短创新周期、降低试错成本、解决资源缺乏和提升创新可复制性,为我国工业软件产业发展提供参考和支持。
|
SQL 数据安全/隐私保护 索引
SQL语句速成
《SQL语句速成》由blue编写,涵盖建表、插入、查询、更新、删除、视图创建、权限管理及索引操作等核心内容。通过具体示例介绍SQL基本语法和常用聚合函数,帮助读者快速掌握SQL编程技巧。发布于2024年7月19日。
446 7
|
设计模式 缓存 Devops
微服务架构最强讲解,那叫一个通俗易懂!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
35187 3
微服务架构最强讲解,那叫一个通俗易懂!
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
1419 1
|
人工智能 开发者 Python
python读取word文档 | AI应用开发
在RAG系统中,构建知识库时需读取多种外部文档,其中Word文档较为常见。本文介绍如何使用`python-docx`库读取Word文档(.docx格式)中的标题、段落、表格和图片等内容。首先通过`pip install python-docx`安装库,然后利用提供的接口提取所需信息。尽管该库功能强大,但在识别标题样式时需自定义逻辑,并且仅提供图片的URI而非直接加载。示例代码展示了读取文本、识别标题、读取表格及获取图片URI的方法。【10月更文挑战第2天】
1768 2
|
运维 安全 Devops
什么是安全左移,如何实现安全左移
传统软件开发面临安全挑战,如意识缺失、代码漏洞、第三方组件风险、配置管理问题及应对新型攻击能力不足。为改善现状,需采取安全左移策略,将安全措施提前至开发早期,与SDL结合,确保安全贯穿SDLC始终。安全左移面临计划制定、责任转移、工具选择等挑战,需通过规划、培训和选用合适工具应对。DevSecOps模式进一步将安全融入DevOps,提升开发效率和软件安全性,实现开发、安全和运维的协同。SDL与DevSecOps相辅相成,前者注重安全过程,后者强调安全文化与自动化。
1341 1
什么是安全左移,如何实现安全左移
|
敏捷开发 前端开发 测试技术
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
12803 1