之前写过一系列的OpenExpressApp的文章,到现在OEA的源码下载人次已经上万了,大部分人估计还是抱着学习的态度来使用这个框架。毕竟时间和人力有限,OEA本身也比较复杂,能做到现在我也基本满意了,我们将继续不断应用模型驱动软件工厂的软件工程概念,坚持让业务工程师开发应用 (make business engineers develop applications)的理念,改善我们的开发过程,提高开发能力。
为了让团队更好的认识OpenExpressApp,我将在这里再次概要的介绍一下OEA,并粗略的说一下下步的计划,以便大家有个一致的方向。
理念
make business engineers develop applications
目标
令人骄傲的支持大中型企业的信息系统业务开发平台
OpenExpressApp总体介绍
OpenExpressApp不只是纯粹的技术框架,也不只是DSL,而是我之前介绍过平台分类:系统平台、开发平台和开放平台中的业务开发平台,它是在系统平台之上,提供在开发方法指导下,通过 开发工具、辅助工具,基于框架、引擎以及内置的模块等一套支持软件开发生命周期的完整开发环境来构造软件,以期在统一平台下能够快速高质量的提供产品。
OpenExpressApp的目标是做成一个模型驱动软件工厂,它将现有技术和产品中有价值的部分引入到一起,它要做的是整合别人已经实践的方法来提高我们自身的开发能力。不同于以往为特定开发角色提供独立的开发工具和框架,它为业务工程师、架构师、开发和测试人员提供的一种集成的开发平台。OEA基于业务模型驱动开发指导思想,内置从企业架构、业务建模、领域建模到应用建模和部署等一系列相关的模型,并提供报表、流程、元数据等基础引擎以及权限、报表、门户等多个通用应用模块。为了支持软件开发,还提供基于敏捷思想、软件产品线工程的软件项目管理工具、快速原型工具和自动化测试工具等支持。
Think Big, Start Small and Iterate
Don't just think Technology
OpenExpressApp的关注点是......
不仅仅关注开发人员,更关注业务工程师的使用:make business engineers develop applications
OEA关注的是开发中涉及到的大部分角色,区别于其他的是更为关注业务工程师,这里我定义的业务工程师是介于领域专家和开发人员之间的一种角色,他会使用结构化的建模方法来分析、设计领域知识,做到更早更快的向客户和开发人员传递产品价值。- 不仅仅关注领域架构,还关注软件产品线工程和模型驱动开发等软件工程领域
- 不仅仅关注代码实现阶段,还是支持软件全生命周期过程的企业架构、敏捷管理、原型开发的方法和集成化的工具
开发计划
考虑产品过程中的具体应用,会有以下开发计划:
- 支持审核工作流
- 支持B/S应用
- 一个适合大中型用户的DDD的领域架构
- 支持系统工作流microFlow
- 用户驱动的应用:提供预定义组件,由用户自定义界面和功能
- 建模支持
- 工具开发:支持TOGAF9的企业架构工具、快速原型工具、Scrum敏捷开发项目管理工具、自动化测试工具
- 产品线工程的可变性管理
- .......
一些考虑点
- 领域框架基于什么平台来做?
现阶段还是在.Net平台的OEA框架下继续完善,考虑JAVA下的企业级应用开源资源比.Net较为丰富,不排除后续会同时支持两个平台 - 建模支持是参考MetaEdit+来做还是使用Eclipse EMF来做?
这个还一直没有拿定主意,这几天在思考这个问题,由于现在我对实现一个成熟的模型平台的未知东西还是较多,可能会先考虑使用EMF先实现一个TOGAF9的建模工具,然后再做评估
我们需要什么......
在上面的介绍中没有具体的技术语言,也没有具体的设计架构,它涉及的内容也很多,从软件工程到软件技术,从具体开发到开发方法,这都需要进行大量的学习。就像在MDSF:访谈Mendix研发负责人Johan den Haan说构建一个成功的MDD工具的关键是有一个优秀的团队,每个成员都可以独挡一面,并且能够很好的进行团队协作。
OEA虽然已经在实际项目中应用了,但它还像个婴儿,它才刚起步,它的每一个知识方面都需要投入很多,更难得是要整合起来,它的成长还有很长的路要走,需要每个关心它的人不断付出努力。我们每个人都应该有积极和开放的心态、高度的技术热情和责任心, 共同的理念和目标:坚持make business engineers develop applications的理念,做出一个让人骄傲的支持大中型企业的信息系统业务开发平台。
本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/518080,如需转载请自行联系原作者