论文部分内容阅读
随着现代服务业的快速发展和企业信息化的逐步推进,企业级应用开发成为了软件平台厂商和软件工程学术界关注的一大焦点。通过对主流的面向对象开发范型的分析可以发现,现有的企业应用开发中存在以下问题:一、业务需求与软件系统的结构之间缺乏清晰的对应关系,这导致软件系统的整体可读性和可维护性较差,难以迅速适应快速变化的业务需求。二、软件内部的模块之间很难实现低耦合,因为对象之间无论是通过组合还是继承进行相互关联,都会导致不同模块的功能形成错综复杂的依赖关系,很难清晰地划分模块之间的界限。三、业务流程与功能细节相互耦合,变化其中一个往往轻易的影响到另一个。针对这些问题,在本毕业论文中,首先,对这三个问题的研究现状进行了深入调研,其中,第一个问题,目前主要的解决方案是使用领域特定语言;第二个问题,目前主流的解决方案有两种:一是借助函数式编程的一些内在优点来改善目前主流的命令式编程的缺陷,降低软件模块之间的相互联系的复杂度,二是使用各种各样的中间件来解决软件系统中特定方面的高耦合;第三个问题,目前主流的解决方案是业务流程管理系统,或工作流系统。其次,作者提出一种新的解决以上三个问题的方案,就是提出一种面向流程的软件开发方法。最后,此基础上,本文作者设计并实现一个面向流程的软件开发框架。本论文提出的面向流程的软件开发框架是针对本文所提出的三个问题的一种有效的解决方案,体现在:首先,使用业界主流的BPMN语言进行流程建模,将得到的BPMN模型作为应用程序的一大部分,这样就通过流程模型,使得业务需求与软件系统的实现有了清晰而明确的对应关系;其次,本论文提出的面向流程的软件开发框架使用“任务”作为应用程序的基本构架,“任务”的概念类似于一个完整的函数,但比函数更加强大,而框架对应用程序的解耦合,关键在于每个任务组件遵循“单一职责原则”(SRP),即每个组件只做一件事情,而组件之间没有直接的耦合,它们之间通过流程模型进行松散耦合;再次,本论文借鉴了业务流程管理系统的设计思想,将业务流程与具体的业务逻辑进行了良好的分离,而且在剥离了业务流程管理领域的角色概念以及业务流程监控等概念之后,这种基于流程的思想不再仅仅被用于企业业务流程的管理,而以人员与软件系统的交互过程为核心,着重于提炼软件系统中的通用操作,使之高度可复用,这就使得本文中面向流程的软件开发方法成为进行软件开发的一种通用的方法,可以大大提升流程密集或流程变化频繁的软件系统的开发与维护效率。