第一章绪论
1.1.课题背景与研究意义
“国家免费孕前优生健康检查信息服务管理平台”是基于国家十一五科技支撑计划“安全可信的电信级生殖健康运营支撑体系关键技术研究”课题以及“国家免费孕前优生健康检查项目”项目构建的,面向育龄人群,为全国计生服务机构提供了孕前优生健康检查信息服务的系统。从2010年5月系统上线至今已经稳定运营11个多月,形成生殖健康档案70余万份。本文作者在此项目中承担部分开发工作,主要负责其中的医生子系统、高危数据接口子系统等的实现。以此项目为背景,经过反思开发中遇到的困难,作者开始调研目前软件开发技术的发展现状,了解目前软件开发领域需要解决但没有较好解决的问题。
在信息技术(IT)中,一个应用程序是一种为了帮助人们完成某项活动而设计的计算机程序。应用程序不同于操作系统—它使计算机能够运行,也不同于工具软件—它执行维护工作或通用的杂务,也不同于编程语言—用于创建计算机程序。根据设计的目的,应用程序可以操作文本,数字,图形,或者这些元素的组合。一些应用程序套件提供了针对单一任务的可观的计算能力,例如文字处理;另一些,称作集成软件,提供的能力要少一些,但是包括多个应用程序。用户软件是为了满足用户的特定需求对系统进行裁剪,例如电子表单模版,文字处理器宏,科学模拟器,图形与动画脚本。甚至电子邮件过滤器也是一种用户软件。用户自己创建这种软件,并且通常忽视了它有多么重要。
应用软件,也被称为应用程序,或者“应用”,是一种计算机软件,它的设计目标,是帮助用户完成特定任务。例子包括企业应用软件,会计应用软件,办公套件,图形软件,以及媒体播放器。许多应用程序主要处理文档。应用软件可能跟电脑以及系统软件捆绑,也可能单独发布。应用软件与系统软件和中间件不同。系统软件和中间件,主要管理或集成计算机能力,而一般不会直接用于供用户完成任务。系统软件为应用软件服务,而应用软件为用户服务。应用软件使用特定的计算机平台或者系统软件达到特定的目的。有的软件如W ind}ws在很多不同的平台版本上可用,而很多别的软件只在特定的平台可用。应用程序分为两个大的类别:水平应用软件和垂直应用软件。水平软件是在各个部门或各个公司中最广泛地流行;垂直应用软件是利基产品,为一个特定类型的企业或公司的一个部门而设计。
应用程序还可以分为很多小的类型:
1,一个应用软件套件由多个打包在一起的软件组成,这些软件具有相互关联的功能、特性和用户界面,并且可以互相交互,例如,打开彼此的文件。商业软件常常以套件的形式出现,例如Microsoft Office, OpenOffice.org和iWork,它们打包了一个字处理器,一个电子表单软件,等等。但是套件也有别的目的,例如图形或音乐。
2.企业软件解决的一般是在大型分布式环境中组织流程和数据流的需求,例如财务系统,客户关系管理系统(CRM),以及供应链管理软件。部门软件是企业软件的一个子类型,它关注大型组织中的小一些的机构或集团,例如差旅费用管理以及IT帮助桌面。
3.企业基础软件提供支持企业软件系统的公共设施,例如数据库,邮件服务器,以及管理网络与安全的系统。
4.信息处理软件解决人们创造与管理信息的需求,这些信息通常针对一个部门的单个项目,而不是企业管理。例如时间管理工具、资源管理工具或者分析或协作式的文档工具。
5.内容访问软件是一种主要用来访问内容而不编辑的软件,但是也包括允许内容编辑的软件。这些软件解决个体或群体数字娱乐内容的消费以及发行,例如媒体播放器,网页浏览器和帮助浏览器。
3.3. 面向流程的软件开发........ 26-29
3.3.1. 概述........ 26-27
3.3.2. 需求阶段........ 27
3.3.3. 分析阶段........ 27-28
3.3.4. 设计阶段........ 28
3.3.5. 实现阶段........ 28
3.3.6. 测试阶段........ 28
3.3.7. 维护阶段 ........28-29
第四章 面向业务流程的软件........ 29-39
4.1. 概述........ 29
4.2. 面向流程的软件开发........ 29
4.3. 面向流程的软件开发........29-30
4.4. 开发平台技术........ 30
4.4.1. Java~(TM)........ 30
4.4.2. Maven........ 30
4.4.3. Eclipse........ 30
4.5. 系统中用到的技术........30-34
4.5.1. BPMN........ 30-33
4.5.2. XPath........ 33
4.5.3. Dom4j ........33
4.5.4. Javassist........ 33
4.5.5. Apache Commons........ 33
4.5.6. Junit........ 33
4.5.7. Spring Framework........ 33-34
4.5.8. JGraphT........ 34
4.6. 系统实现........ 34
4.6.1. 概述........ 34
4.6.2. 系统结构........ 34
4.7. 系统验证........ 34-39
第五章 总结........ 39-40
总结
现有的企业应用开发中存在以下问题:一、业务需求与软件系统的结构之间缺乏清晰的对应关系,这导致软件系统的整体可读性和可维护性较差,难以迅速适应快速变化的业务需求。二、软件内部的模块之间很难实现低祸合,因为对象之间无论是通过组合还是继承进行相互关联,都会导致不同模块的功能极易形成错综复杂的依赖关系,很难清晰地划分模块之间的界限。三、业务流程与功能细节相互祸合,变化其中一个往往轻易的影响到另一个。
在本毕业论文中,针对这些问题,首先,深入调研了这三个问题的研究现状。其次,通过对以上一些解决方案的调研以及反思,基于对现有的解决思路的批判与借鉴,作者提出针对以上三个问题的一种新的解决方案,就是提出一种面向流程的软件开发方法。再次,此基础上,本文作者设计并实现一个面向流程的软件开发框架,帮助应用开发人员高效地开发流程密集或者流程变化频繁的应用程序。