




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨理工大学学士学位论文OA办公自动化系统需求研究设计1.1 引言本论文是对OA办公自动化系统的需求说明,其目的是分析清楚拟建系统的功能性需求和非功能性需求。1.2 目标OA是以开放、先进的Internet/Web技术为核心新一代信息处理集成系统。通过他的建设将以计算机最新并成熟的技术为依托,提高企业信息化水平,在单位内部实现信息资源共享和流通,为各级领导及时了解情况,为宏观管理和科学决策提供高效便利的服务,使得单位的管理更加高效化、规范化和科学化。1.3 选题的目的和意义随着计算机和通信技术的发展,人类已逐渐进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必须要求了。管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,可以获得竞争优势。管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等。生命周期法是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,但系统开发出来后,并不意味着生命周期的结束,而是意味着根据组织的需要对系统的修改和重建的开始;原型法是20世纪80年代发展起来的,旨在改变生命周期法缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统;面向对象的开发方法于20世纪80年代开始兴起的,是一种基于对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。基于以上三种方法的特点和各自的优缺点,本办公自动化系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法。管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,同时也可以提高效率、节省时间、降低成本。1.4 系统概述该系统最主要实现了OA的基础模块和核心模块,包括机构管理、人员管理、模块管理、角色管理、用户管理、流程管理、表单定义和公文维护。整个系统采用Struts2、Spring、Hibernate的开发架构。系统采用树形结构对机构和模块进行管理。在权限管理上,采用ACL权限控制访问列表设计模式,对角色进行模块的CRUD授权,也可针对特定用户进行授权,在授权后,用户登录系统时会根据用户拥有的角色和个人的权限进行导航菜单动态显示,还可以对用户的CRUD进行及时认证。而公文流传采用JBPM框架进行复杂流程的实现,用户可以上传流程定义文件和定义图片,针对特定流程进行表单定义,创建公文后可以针对不同的流程进行公文流转。权限管理页面采用Ajax框架DWR与后台进行交互,从而提高了操作效率。自定以表单使用了FreeMarker进行模板的读取和开发。本系统采用Oracle10g作为后台数据库。第1章 系统分析1.1 需求分析21世纪,先进制造技术正在推动企业向网络化、协同化、敏捷化、智能化、集成化和虚拟化的方向发展。广义层面上的网络化制造,涵盖了利用网络技术支持企业制造全过程的所有环节。全面集成办公套件,彻底实现办公自动化.在网络化制造模式下,网上办公对于企业来讲,是方便快捷的,大势所趋。实现了工作协同,工作督办,工作督控,提高了工作效率。OA可以给中小企业带来以下几个方面的效益: 1.实现远程办公和移动办公,随时随处办理工作事务。无论您身处国外,还是国内,无论您在机场,酒店,家中都可以随时投入到工作中来,方便快捷地掌握组织内部的工作进度与状况,及时处理工作问题. 2.实现知识管理,使优秀员工的思想,经验与技术获得积累,并转化成组织中的共享资源。通过OA进行知识管理,员工的工作经验和技术技能,不断积累,将成为组织中强大的共享资源,通过对知识资源的授权利用将加速创新和提高效率,也避免因人员流动导致工作的脱节与贻误. 3.通过工作流转的自动化,实现高效快捷的办公。通过OA实现各部门,各级之间横向纵向工作流程处理的自动化,将大大提高办公效率,保证快捷,准确地处理工作.这一点在办公场地较为分散的单位尤为明显。 4.有效监管工作人员的工作情况,实现实时工作任务的监督与催办。及时有效监控各部门,各个人员的工作进度情况;实时全面掌控各部门的工作办理状态,及时发现问题及时解决,从而减少差错,防止低效办公.系统将记录每个工作的全程式办理状态信息. 5.明确工作岗位与工作职责增强人员的责任感,减少推托,扯皮等现象。明确赋予各岗位的权限与职责,任何人都不可越权处理工作,使得各自责任明确,落实到人,查有所依,杜绝工作中出现职权不明,相互推脱扯皮现象.解决多岗位,多部门的协同工作问题,实现高效协作办公。 6.方便领导同各级工作人员的有效沟通。多种途径,多种方式,使管理者同各级人员保持有效,快捷的工作交流与信息沟通,排除了信息沟通不畅给企业发展带来的羁绊。 7.减少办公开支,降低管理成本。节约时间,节约纸张,节约电话费,传真费用,缩短办理时间,节省办公开支,减少差错率,提高整体工作效率。 8.有效掌控客户关系,动态管理客户资源。建立有效的客户资源档案,防止因销售等人员的变动,而导致客户信息资源的流失,确保业务发展与工作衔接的连续流畅。 9.多方位畏助办公,全面利用组织的存量资源。通过对车辆,物品,图书,信息等方面建立有效的管理环境,全面调动与激活组织存量资源,最大范围地发挥组织现有能量。1.2 可行性分析目前,大多数企业内部的办公管理还处于手工管理阶段,工作起来效率很低,各种办公需求分散化不易于管理,也无法快速地进行各种办公操作;不便于动态及时地了解公司各部门和人员办公信息,致使企业不能更好地适应当前经济形势发展的需要。手工管理还存在着许多弊端,由于不可避免的人为因素,经常造成数据的遗漏、误报。本系统应用计算机信息化管理有着储存信息量大、速度快等许多优点,能够对客户信息进行及时、准确、快捷的维护同时也能提高企业员工的自身素质。对于本系统开发的可行性,主要取决于经济和技术两个方面。1.2.1 经济可行性从项目开发的角度考虑,本系统采用的软硬件开发平台成熟实用,成本相对低廉,系统操作简便,无需花费大量的培训成本、开发费用、维护费用等,同时,使用该系统对信息采取统一管理,可以更好的与客户保持良好关系,在同等经济收入下,可以为企业节省一大笔不必要的开支。因此,从经济上来说完全可行。1.2.2 技术可行性Web技术的迅猛发展正推动Internet上信息服务类的进步,基于浏览器和服务器结构的系统越来越成为主流,而Java语言的J2EE模式在这方面的应用更是如火如荼。JSP的应用使得OA在Web上开发变得可能。OA系统中的权限模块开发可以采用比较成熟的ACL权限控制访问列表设计模式,而这种模式相对比较复杂,还考虑到系统的移植性和易于维护性,而采用框架来开发就可以使得这种复杂简单化,所以采用了Struts2、Hibernate、Spring来进行开发。采用了这三个框架可以大大降低系统各个模块之间的耦合性,这样便于系统移植和维护。Struts2负责页面前端的控制和显示,Struts2自带的各种拦截器可以大部分满足需求,而Struts2对各种页面请求的统一管理,使得易于维护。页面上各种数据的显示通过Struts2丰富的标签和强大的OGNL表达式来完成,而这些数据展示的标签和语言完全和后台数据分离,使得页面和后台解耦,使得系统易于移植。现在主流的数据库主要是以关系型数据库为主,而Java语言是纯面向对象的语言,而后台和数据库的交互是很重要的一步,但程序员大部分时间都在和SQL语句打交道,而这种SQL语句大部分都存在重复现象,这样既不利于维护有带来了时间的大大浪费,而致使于程序员不能把重心放在程序的业务逻辑处理上去。所以有了Hibernate的出现,Hibernate采用对象关系映射的模式,使得对数据库的操作对象化,原本要写很长的SQL现在只需掉某一个简单的方法就可完成,大大简化了和数据库的操作。而Hibernate的HQL查询语言,使得对复杂的数据库操作更加方便。系统在时间和效率上都会大大的提高。有了Struts2和Hibernate,但怎样使这两种技术更好的结合起来呢,这就可以用到Spring了。Spring强大的功能会使系统更加的解耦和稳定。比如某个Action中使用了后台的某个接口,但是这个接口使用的哪个实现类呢,这个可以通过Spring的IOC容器来解决,只需在配置文件中进行相关配置,在代码中我们就可以完全面向接口编程了,而Spring的IOC(控制反转)容器会帮我们实力化并管理这些实现类。在数据库操作中,事务控制是非常重要的一步,如果采用手动控制会非常繁琐且不能步步到位,虽然Hibernate有事务控制功能,但还是需要自己手动的开启和提交,而Spring对Hibernate做了很好的封装,Spring采用Java动态代理技术,很好的实现了AOP(面向切面编程)思想,通过面向切面编程,Spring封装了Hibernate的Session,使得事务控制自动化。而Spring的AOP还可以很好的进行日志记录等个方法的操作。OA办公系统中公文的流转是基础并非常重要的环节,通常企业内部会有各种流程的需求,这样就不能把流程订死,需要灵活多变可配置。开源框架JBPM就可以达到这个目的。JBPM有一套自己的流程定义语言JPDL,用户可以用设计器设计流程定义文件,通过解析流程定义文件,就可以进行复杂的流程实现。而JBPM持久化策略采用的是Hibernate,这使得JBPM能更好的和本系统结合起来。1.3 本章小结本章主要介绍了OA办公自动化管理系统的系统分析,分别从数据流程分析、需求分析、可行性分析三个方面对系统系统进行了详细描述,为下一阶段的系统设计做准备。第2章 系统设计2.1 系统结构设计OA办公自动化系统共设计了公文维护、流程管理、表单定义、机构管理、人员管理、模块管理、角色管理、用户管理八个模块。构建系统结构如图3-1所示。OA办公自动化公文管理工作流程组织管理权限管理公文维护流程管理表单定义机构管理人员管理模块管理角色管理用户管理图3-1 系统功能结构图2.2 数据库设计从数据库管理系统的角度来看,数据库系统是一个三级模式结构,但数据库的这种模式结构对最终用户和程序员是透明的,他们见到的仅是数据库的外模式和应用程序。从最终用户角度来看,数据库系统分为单用户结构、主从式结构、分布式结构和客户/服务器结构2。由数据项可以设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动,了解了数据项和数据结构之后便可以对本系统进行数据库表关系图设计,数据库表关系图如图3-2所示。图3-2 数据库关系图(1)T_Module(模块信息表)模块信息表用来保存模块的详细信息。表T_Module的结构见表3-1。表3-1 T_Module的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230模块名称SNVARCHAR210模块编码URLVARCHAR230模块入口地址ORDERNONUMBER5排序编码PARENTIDNUMBER10父模块ID(2)T_Organization(机构信息表)机构信息表用来保存机构的基本信息。表T_Organization的结构见表3-2。表3-2 T_Organization的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230机构名称PIDNUMBER10父机构IDSNVARCHAR210机构编码DESCRIPTIONVARCHAR2255机构描述(3)T_Person(人员信息表)人员表用来保存公司人员基本信息。表T_Person的结构见表3-3。表3-3 T_Person的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230人员姓名SEXCHAR1人员性别ADDRESSVARCHAR2255地址DUTYVARCHAR230职务PHONEVARCHAR230电话DESCRIPTIONVARCHAR2255介绍ORGNUMBER10所属机构BIRTHDAYDATE生日(4)T_User(用户信息表)用户信息表用来保存系统用户登录信息。表T_User的结构见表3-4。表3-4 T_User的结构字段名数据类型长度是否主键描述IDNUMBER10是IDUSERNAMEVARCHAR230用户名PASSWORDVARCHAR230密码CREATETIMEDATE创建时间EXPIRETIMEDATE失效时间PERSONNUMBER10人员ID(5)T_Role(角色信息表)角色信息表用来保存系统角色信息。表T_Role 的结构见表3-5。表3-5 T_Role的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230角色名称(6)T_UsersRoles(用户角色列表)用户角色列表用来保存用户的角色信息。表T_UsersRoles 的结构见表3-6。表3-6 T_UsersRoles 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDROLENUMBER10角色IDUSERSNUMBER10用户IDORDERNONUMBER5排序号(7)T_ACL(权限控制访问列表)权限控制访问列表用来保存用户和角色的模块功能权限信息。表T_ACL的结构见表3-7。表3-7 T_ACL 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDPRINCIPALTYPEVARCHAR210主体类型PRINCIPALIDNUMBER10主体标识续表(3-7)MODULEIDNUMBER10资源标识ACLSTATENUMBER4授权状态ACLTRISTATENUMBER4授权状态掩码(8)T_WorkFlow(工作流信息表)工作流信息表用来保存定义的工作流信息。表T_WorkFlow 的结构见表3-8。表3-8 T_WorkFlow 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230流程名称PROCESSDEFPATHVARCHAR2255流程定义文件路径PROCESSIMAGEPATHVARCHAR2255流程定义图片路径(9)T_FlowForm(表单流程表)表单流程表用来保存每个表单所对应的流程信息。表T_FlowForm 的结构见表3-9。表3-9 T_FlowForm 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDWORKFLOWNUMBER10表单对应的工作流IDTEMPLATEVARCHAR2r200对应的表单模板(10)T_FormField(表单输入域表)表单输入域表用来保存表单输入域的信息。表T_FormField 的结构见表3-10。表3-10 T_FormField 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDFIELDLABELVARCHAR230表单域名FIELDNAMEVARCHAR230表单域显示名FIELDINPUTNUMBER10输入域IDFIELDTYPENUMBER10输入域类型IDFLOWFORMIDNUMBER10表单流程ID(11)T_FieldInput(表单输入域表)表单输入域表用来表单输入域信息。表T_FieldInput 的结构见表3-11。表3-11 T_FieldInput 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230表单输入域名TEMPLATEVARCHAR230表单输入域模板(12)T_FieldItem(表单输入域项目表)表单输入域项目表用来保存表单输入域所含项目的信息。表T_FieldItem 的结构见表3-12。表3-12 T_FieldItem 的结构字段名数据类型长度是否主键描述FIELDIDNUMBER10是表单输入域IDLABELVARCHAR230输入域标签名VALUEVARCHAR250输入域项目值ITEMINDEXNUMBER10输入域项目序号(13)T_FieldType(表单输入域类型表)表单输入域类型表用来表单输入域的类型信息。表T_FieldType 的结构见表3-13。表3-13 T_FieldType 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230输入域类型名TYPEVARCHAR230输入域类型(14)T_Document(公文表)公文表用来保存公文的基本信息。表T_Document 的结构见表3-14表3-14 T_Document 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDTITLEVARCHAR230公文标题PATHVARCHAR2100公文存储路径CREATETIMEDATE公文创建时间续表(3-14)DESCRIPTIONVARCHAR2200公文描述STATUSVARCHAR2100公文状态CREATORNUMBER10公文创建者WORKFLOWNUMBER10公文所走流程PROCESSINSTANCEIDNUMBER19公文所走流程实例ID(15)T_Document_Properties(公文属性表)公文属性表用来保存公文自定义输入项类型信息。表T_Document_Properties的结构见表3-15。表3-15 T_Document_Properties 的结构字段名数据类型长度是否主键描述DOCUMENTIDNUMBER10是公文IDJAVA_LANG_STRINGVARCHAR230Java String类型JAVA_UTIL_DATEDATEJava Date类型JAVA_LANG_INTEGERNUMBER10Java Integer类型JAVA_LANG_LONGNUMBER19Java Long类型JAVA_IO_FILELONG RAWJava File类型PROPERTYNAMEVARCHAR30属性名(16)T_ApproveInfo(审批信息表)审批信息表用来保存公文审批信息。表T_ApproveInfo 的结构见表3-16。表3-16 T_ApproveInfo 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDAPPROVETIMEDATE审批时间APPROVERNUMBER10审批人IDAPPROVEINFOVARCHAR2500审批信息DOCUMENTNUMBER10所属公文ID2.3 开发及运行环境CPU:P41.8GHz;内存:256MB以上;操作系统:Windows XP/Windows 2000;开发工具包:JDK Version1.6.2;数据库:Oracle10G;JSP服务器:Tomcat6.0.20;浏览器:IE6.0以上;分辨率:1024*800像素2.4 本章小结本章主要进行了系统的体系结构设计,数据库的设计,详细描述了数据库中各个表格的字段、数据类型、长度等结构,并对客户管理系统的开发及运行环境进行了说明。第3章 系统详细设计与实现3.1 登陆模块登录模块中用户正确输入账号和密码之后,系统可以依据用户权限设置进入主界面后能够操作的模块功能。登录界面如图4-1所示。图4-1登录界面3.2 主界面系统主界面如图4-2所示。图4-2主界面3.3 组织管理模块3.3.1 主要功能和程序流程该模块主要包含机构管理和人员管理两个子模块。机构管理主要是对公司的组织机构进行管理,人员管理主要是对公司各个人员信息进行管理,同时每个人员又属于某个特定的机构。组织管理的类图设计如图4-3所示。图4-3组织管理类图3.3.2 操作流程及界面在选择一个用户登录后,系统根据此用户拥有的角色和个人权限来判断该用户是否有该模块的使用权限,如果有添加、删除、编辑等权限才可使用。机构管理界面如图4-4所示。图4-4机构管理界面机构管理是一个树形结构,点击机构名称,若该机构下存在子机构,则会显示其子机构信息。点击返回可以查看机构的父机构信息。可以点击添加机构信息添加机构信息。添加界面如图4-5所示。4-5机构管理添加界面人员管理如图4-6所示。图4-6人员管理界面点击添加人员信息可以添加人员信息。人员属于某个特定的机构。人员添加界面如图4-7所示。图4-7人员管理添加界面3.4 权限管理模块3.4.1 主要功能及程序流程在权限管理中,权限控制围绕“谁可以做什么,以及如何做”这三元组来扩展。用户(User)可以拥有多个角色(Role),角色可以被分配给多个用户。权限的意思就是对某个资源的某个操作,现在规定:所谓资源,即系统的模块。所谓操作,包括:增加、删除、修改、查询等操作。权限管理系统的总体功能分为:授权与认证。授权,指将权限授予角色或用户。如果用户A拥有角色B,角色C,那么,缺省的情况下,用户A将拥有被分配给角色B和角色C的所有权限(即默认情况下,用户A继承其拥有的角色所具有的所有权限);如果用户拥有多个角色,那么用户的权限是这些角色权限的合集。如果用户拥有多个角色,而且角色之间的授权有冲突(比如对同一个资源的操作,一个角色为“允许”,另外一个角色为“不允许”),将以优先级别高的角色为准(所谓优先级别,也就是对于这个用户所拥有的角色而言,是有顺序的,同一个角色在不同的用户那里有可能拥有不同的优先级)。除了可以对角色进行授权外,也可以针对用户进行授权,也就是说,将权限授予用户。针对某个资源的所有操作,我们可以设置这些权限对用户来说是“继承”或“不继承”。其中继承:意思是这些权限将使其(即用户)所拥有的角色的权限,而不使用其(即用户)单独设置的权限;不继承:意思是这些权限将使用其单独设置的权限,而不使用其所拥有的角色的权限。认证,指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问。在用户访问的时候,需要进行即时的判断(是否有权限访问)。应该提供查询的功能,可以查询某个用户所拥有的所有权限。总体上,可分为模块管理、角色管理和用户管理模块。其实针对权限管理有很多种解决方案,如RBAC基于角色的访问权限控制等。而针对权限管理的特定,和OA系统的特性,对在基于RBAC的基础上增加可单独对用户授权的方式,演变成ACL权限控制访问列表的形式来做权限管理。ACL设计不仅可以针对用户角色授权,还可以单独针对用户进行授权。ACL权限控制访问列表的设计类图如图4-8所示。图4-8 ACL权限控制访问列表设计类图在图4-8中,Module表示一个模块,对一个模块进行权限访问控制。ACL属性:主体类型:User或Role;主体标识:User或Role的id;资源标识:module的id,若在ACL中建立module属性,这样的强关联会使module查询在缓存中,占用大量内存资源。所以用id进行弱关联;授权状态属性:一个int有32位,用后四位表示CRUD操作,位的取值1或0表示允许或不允许。规定后四位每位代表的意思,如:0(D)0(U)0(R)0(C)若对“张三”设置CRUD操作,如果用不同的属性来表示的话,一旦这种操作变化的话,则要去修改数据库字段,或者其他相关的;授权状态的掩码:若针对用户授权,而用户有继承的概念,所以需要另一个状态位。如用户拥有一个角色可以对一个资源进行操作,而这个用户也可以对这个资源进行操作,那么该用角色的授权还是用用户的授权呢?所以我们需要一个继承或者不继承的概念。多加一个状态位(授权状态的掩码):(简单的继承,不考虑每种操作的继承)用全1表示继承,全0表示不继承。全1就是-1,全0就是0,所以这是一个int。相当于第三种授权状态(允许,不允许,继承)。Permission是通过授权状态掩码体现出来的。3.4.2 操作流程及界面 通该模块主要包含模块管理、角色管理、用户管理三大子模块。通过这三个子模块实现对权限访问的控制。模块管理界面如图4-9所示。图4-9 模块管理界面模块管理也是一个树形结构,点击模块名称,若该模块下存在子模块,则会显示子模块信息。可以点击添加模块信息对其进行添加,点击返回查看父模块信息。而模块信息也是用户登录后界面左边导航菜单所读取的信息。角色管理界面如图4-10所示。图4-10 角色管理界面点击添加角色信息可以对角色进行添加。而点击角色授权可以真的角色进行相应模块的授权,角色授权界面如图4-11所示。图4-11 角色授权界面若要对某个模块进行授权是,可直接选择权限CRUD即可,点击启用则授权才生效。用户管理界面如图4-12所示。图4-12 用户管理界面在点击用户管理系统会自动查出人员相关信息,如果该人员信息没有分配账号需限分配账号,分配账号的界面如图4-13所示。图图4-13 分配用户账号界面分配完账号后才可以对用户进行分配角色和授权。点击分配角色可以看到用户所拥有的角色,界面如图4-14所示。图4-14 查看用户已有角色界面点击给用户分配角色可以对用户进行角色分配,分配角色界面如图4-15所示。图4-15 分配用户角色界面3.5 工作流程模块3.5.1 主要功能及程序流程工作流程分为流程管理和表单定义两个字模块。工作流程主要是针对公文的流转。文档流转事实上是对工作流以及工作流中的文档进行管理,对于大多数企业来说,核心的管理就是工作流和文档的管理。一般的企业都会有很多流程,比如:请假流程,报销流程,收文/发文流程。其中收文:处理收到上级部门及其它部门的公文;发文:上级及有关部门需协调和解决的问题进行一些列的流程。流程的本质,就是很多人在一起完成一件事情,流程可能会进过不同的中间环节,在中间环节上,由相关人员进行处理,所有流程中间环节的处理过程,需要进行记录。在做流程这方面,可以用Java的开源框架JBPM(java Business Process Management)来实现。JBPM简要过程:定义流程(利用JPDL);部署流程(部署到数据库);创建公文并与流程实例绑定;可通过JBPM的接口,触发流程向下流动;可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表);可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动);如此,直到结束。JBPM是根据UML中的活动图为基础,把活动图持久化到数据库。流程定义基本概念的类图如图4-15所示。图4-15 流程定义类图流程执行的概念,如图4-16所示。图4-16 流程执行类图JBPM流程引擎核心调度过程调用ProcessInstance.signal()方法,其时序图如图4-17所示。图4-17 流程执行类图在在OA系统中,流程管理的用例图如图4-18所示。图4-18 流程管理用例图3.5.2 操作流程及界面工作流管理界面如图4-19所示。图4-19 工作流管理界面在通过上传流程定义文件和图片来在系统中保存一个工作流。上传成功后可以点击流程名称查看流程定义图片和文件。流程定义图片如图4-20所示,流程定义文件如图4-21所示。图4-20 流程定义图片图4-21 流程定义文件定义完工作流程之后,可以对流程进行表单定义。表单定义用于公文流转是动态表单的生成。工作流表单定义界面如图4-22所示。图4-22 工作流表单定义界定义表单域界面如图4-23所示。图4-23 定义表单界面定义完流程对应的表单域后,在添加公文,然后流转公文时,就可以看到定义的流程。3.6 公文管理模块3.6.1 主要功能及程序流程在总共可分为公文管理以及公文归档。 文档流转事实上是对工作流以及工作流中的文档进行管理,对于大多数企业来说,核心的管理就是工作流和文档的管理。 一般的企业都会有很多流程,比如:请假流程、报销流程、收文/发文流程,其中收文:处理收到上级部门及其它部门的公文。发文:上级及有关部门需协调和解决的问题进行的一系列流程。流程的本质,就是很多人在一起完成一件事情。流程可能会经过不同的中间环节,在中间环节上,由相关人员进行处理,所有流程中间环节的处理过程,需要进行记录。公文管理的用例图如图4-24所示。图4-24 公文管理用例图根添加的公文可以可以进行公文流转,公文流转的类图如图4-25所示。图4-25 公文流转类图3.6.2 操作流程及界面点击公文维护后,系统会查出当前用户的公文信息,用户可以选择我的公文、待审公文、已审公文等进行查看。公文维护界面如图4-26所示。图4-26 公文流转类图在在其主界面上,显示由当前登陆人员创建的所有公文。可以在我的公文、待审核公文、已审核公文之间切换。公文的添加,先选择公文要走的流程,如图4-27所示。图4-27 选择公文流程点击其中一个公文形式(流程),打开此流程的公文添加界面,如图4-28所示。图4-28 添加公文信息重要的一点是,可以选择流程!这些流程都是通过设计器或编写流程文件的方法创建的。添加完成后,公文管理主界面如图4-29所示。图4-29 公文管理主界面公文的删除:用户可以对公文执行删除操作;公文的流转:可以点击提交操作,将公文提交流程。用户只能对属于自己的公文(自己创建的公文)进行操作,在公文进入流程之后,不再允许用户对公文执行修改和删除操作,在公文流转结束以后,用户可以对公文设置成归档状态,用户登录系统之后,可以看到自己的待审批公文列表。在我的公文视图里,可以将这些公文进行提交,即提交到流程。打开提交界面,如图4-30所示。图4-30 选择公文提交的下一步选择下一个步骤进行提交操作,提交完成后,在公文主界面上,不能再次对公文执行提交和删除等操作,如图4-31所示。图4-31 公文管理主界面如果此时在流程中下一个节点的用户登陆,便可以在“带审批文档”视图中看到流到此人的文档。下面是一个带审核公文列表,如图4-32所示。图4-32 待审公文主界面执行审批操作,如图4-33所示。图4-33 公文审批界面点击保存审核信息之后,可以执行提交操作。当然,也可以再次点击审核操作,这时候,需要打开界面,更改审核意见!提交之后,根据相应的选择,公文将流到相应的人员那里,依次下去,直到流程的结束!这就是公文管理主要过程!在公文管理主界面上,可以点击“下载”,下载附件文档,以便查看详细内容;或者点击“查看审批历史”,可以查看相关文档的审批记录。一旦文档经过审批并提交之后,在“待审批文档”列表视图中就会消失,但是在“已审批文档”中,却需要能够找到这些已被审批过的文档记录!3.7 本章小结本章对系统四大模块:组织管理、权限管理、工作流程、公文管理的程序流程设计、界面及主要代码进行了说明。第4章 系统测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。4.1 软件测试的基本概念使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness)、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域6。Grenford J.Myers曾对软件测试的目的提出过以下观点:1.测试是为了发现程序中的错误而执行程序的过程;2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;3.成功的测试是发现了至今为止尚未发现的错误的测试。然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能.但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此! 1.测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;2.这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;3.没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。4.2 软件测试的内容单软件测试主要工作内容是验证(verification)和确认(validation )。验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing)1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right) 1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。4.3 软件测试的过程测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发布版测试。开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。4.4 本系统的测试用采用人工测试方法,首先进行子系统的测试即单元测试,子系统是各个模块的分支,通过测试之后,在与模块相连接,看总体的设计是否的合理。刚开始调试时不必按完全真实情况下的数据量进行,可以采用一些精心设计的数据量较少的测试用例,这样不仅可以使处理工作量大大减少,而且更容易发现错误和确定错误所在位置。本系统主要有八个模块组成,下面为对用户登陆、客户信息维护、系统设置、信息查询四大模块的测试过程。(1) 用户登录和重置测试过程见表5-1。表5-1登录和退出测试表单元验收项测试步骤期望结果实际结果是否通过登录和退出登录在登录页面输入账号和密码,点击登录进入主页面用户名、密码错误时回到登录页面,登录成功时进入主页面,并根据账号权限设置显示对应的功能与期望结果一致是重置在登录页面输入账号和密码点击重置清空账号和密码信息与期望结果一致是(2) 公文管理模块测试过程见表5-2。表5-2公文管理测试表单元验收项测试步骤期望结果实际结果是否通过公文管理公文维护Case1:点击公文维护进入公文基本信息设置页面与期望结果一致是Case2:Case1的基础上点击查看待审公文进入查看待审详细信息页面与期望结果一致是Case3:Case2基础上点击审批,进行公文审批进入公文审批输入审批意见信息页面与期望结果一致是Case4:Case2基础上点击提交跳转到选择下一步会提交到谁与期望结果一致是Case5:Case4基础上选择一个下一步提交到谁提交成功与期望结果一致是续表(5-2)Case6:Case1基础上点击已审公文进入查看已审公文信息页面与期望结果一致是Case7:Case6基础上点击查看审批历史进入公文审批历史信息页面与期望结果一致是Case8:Case1基础上点击添加公文信息进入选择公文流程页面与期望结果一致是Case9:Case8基础上选择一个公文所走流程进入添加公文信息页面 与期望结果一致是Case10:Case9基础上录入公文信息后提交添加公文成功与期望结果一致是Case11:点击我的公文进入我的公文详细信息页面与期望结果一致是Case12:注销登录并选择公文提交到的审批者登录,然后查看待审公文进入查看待审公文详细信息页面,并存在待审公文与期望结果一致是(3) 工作流程模块测试过程见表5-3。表5-3工作流程测试表单元验收项测试步骤期望结果实际结果是否通过工作流程流程管理Case1:点击流程管理进入流程管理页面与期望结果一致是Case2:Case1的基础上点选择要上传的流程定义文件和图片并点击上传刷新流程管理页面并显示上传的流程定义信息与期望结果一致是Case3:Case1基础上点击流程名称进入查看流程定义图片界面与期望结果一致是续表(5-3)Case4:Case3基础上点击查看流程定义文件进入查看流程定义文件界面与期望结果一致是Case5:Case3基础上输入管理员信息后点击重置清空各个文本框内容与期望结果一致是Case6:Case1基础上点击删除提示删除流程定义成功与期望结果一致是Case7:Case1基础上点击某个流程的定义表单进入工作流表单定义界面与期望结果一致是Case8:Case7基础上输入表单模板名称并点击保存表单信息保存成功,并刷新界面显示刚才保存的信息与期望结果一致是Case9:Case8基础上点击添加表单域进入输入表单定义信息界面与期望结果一致是Case10:Case9基础上输入表单定义信息并保存保存成功,跳转到工作流表单定义界面,并显示刚才定义的表单域信息与期望结果一致是Case11:Case10基础上点击条目进入表单域条目信息输入界面与期望结果一致是Case12:Case11基础上录入表单域条目信息并保存保存成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年开关插座行业当前市场规模及未来五到十年发展趋势报告
- 2025年塑料助剂行业当前发展现状及增长策略研究报告
- 支气管镜图谱课件
- 操作工安全管理培训课件
- 2025年职业技能(农产品质量安全检测员)资格知识考试题库与答案
- 2025年社会工作者之初级社会综合能力题库附答案(典型题)
- 2025全国普法知识考试题库与答案
- 2025年河南省濮阳市考研专业综合预测试题含答案
- 摩托车新手安全知识培训课件
- (2025年)河北省邢台市中级会计职称经济法预测试题含答案
- 战略物资储备安全-洞察阐释
- 玻璃吊装免责协议合同
- Unit11Rulesmatter大单元整体教学设计仁爱科普版(2024)七年级英语下册
- 电子产品质量控制手册
- 劳工与人权管理制度
- 全过程工程咨询投标方案(技术方案)
- 模块化建筑扩展单元行业跨境出海战略研究报告
- 舞蹈老师教学过程中受伤免责协议
- 标准机器语言表达 第1部分:基本架构与要素表达要求 编制说明
- 交通协议书模板 双方
- 2025年云南投资控股集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论