作业。
1.3 相关软件简介 本系使用 oracle XE 数据库软件,eclipse 开发工具,svn 版本控制工具,erwin 建模工具jdk6.0tomcat5.5。
2 系统需求分析和模块设计 所谓quot需求分析quot,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,“需求分析”就是确定要计算机“做什么”。
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定顾客的需要。
只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。
在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。
假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。
2.1 系统功能需求分析 该系统能完成员工假期的申请,审批及员工的假期维护和统计。
2.1.1 假期类型维护 完成假期类型的定义,假期类型必须能标识是否受限(申请时检查)。
假期类型包括:年假,事假,婚假,补休假,病假。
2.1.2 员工固定假期维护 查询员工的固定假期,新增假期类型数据,修改已存在假期数据,该功能由管理员 使用。
2.1.3 员工假期申请 员工申请休假,如果是有限制的假期如年假,则需要检查申请的假期天数是否超过 允许的天数,超过则申请不成功;申请成功则可用假期数减少相应天数。
2.1.4 员工假期查询审批 管理员查询假期申请单,批准或不批准,如果不批准,则员工可用假期数需要回补。
2.1.5 假期报表 按月统计有假员工各类假期的请假时长,每个员工一条记录,可存为 EXCEL。
2.2 系统功能模块设计 所谓的模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。
逐步求精的结果是得到一系列以功能块为单位的算法描述。
以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。
模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。
系统的大模块主要分为员工模块与管理员模块,但是功能模块又分有几大模块。
开发小组对上述的需求进行集中讨论,按照结构化程序设计的要求得出模块图 2-1。
图 2-1 总的模块划分 由于登录模块由其它小组负责,固本文不重点阐述。
登录模块可分为管理员模块与员工模块,根据以上模块与登录模块得到大致的流程图 2-2.如下 员工假期申请模块主要是针对员工的,模块的主要功能有填写假期申请单,提交申请单。
假期类型维护模块功能是显示出现有的假期类型数据,当中有的假期类型是受限的。
假期报表模块功能有显示全部有假员工的月假期数据,将数据打印成 execl 文件。
员工固定假期维护模块,主要是对假期类型的数据进行修改。
员工假期查询审批模块,它的功能是查询出未审批的假期申请单,对假期申请单进行审批。
图 2-2 流程图 当不同的身份的用户登录系统将会有不同的功能。
2.3 数据库设计 至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。
所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法 。
一般,数据库的设计过程大致可分数据库设计为5 个步骤:需求分析,概念设计,逻辑设计,物理设计,验证设计 。
由于实习的公司是外包企业,数据库表与字段名都要求用英文。
根据需求分析与模块设计,最终将为系统建立六各表,表名分别为 EMPLOYEE,EMPLOYEE_HOLIDAY,HOLIDAY_TYPE,HOLIDAY_APPLICATION,STATE,COMMON_HOLIDAY。
建模工具采用的是 Erwin,建模图例如图所示 图 2-3 数据库模型EMPLOYEE 表: 处理用户登录的表,主要字段有 EMPLOYEE_ID员工 ID主键,POPEDOM(身份),EMPLOYEE_NAME用户名,PASSWORD密码。
HOLIDAY_TYPE 表: 用 来 存 放 假 期 类 型 , 主 要 字 段 有 HOLIDAY_TYPE_ID ( 假 期 类 型 ID ),HOLIDAY_TYPR_NAME假期名字,LIMIRORNOT是否受限,LIMIT_DAYS上限天数。
EMPLOYEE_HOLIDAY 表: 员工受限假期表,每个员工的受限假期情况都有不同,例如年假中老员工与新员工的假期天数是不同的。
主要字段有 HOLIDAY_TYPE_ID受限假期 ID,AVAILABLE_DAYS受限天数,EMPLOYEE_HOLIDAY_ID用户 ID。
HOLIDAY_APPLICATION 表: 此 表 主 要 用 来处 理 员 工 假 期 的 申 请, 查 询 , 管 理 员 审 批, 查 询 。
主 要 字 段 有MAKER_ID流水 ID主键,FROM_DATE开始时间,TO_DATE结束时间,REGISTER_TIME登记时间,STAT_MONTH请假月份,HOLIDAY_TYPE_ID假期类型 ID外键,EMPLOYEE_ID员工 ID外键,STATE_ID状态 ID外键HOLIDAY_DAYS请假天数。
STATE 表: 用 来 标 记 每 一条 假 期 记 录 的 状 态 ,如 未 审 批 , 审 批 通 过, 等 待 审 批 。
字 段 有STATE_ID状态 ID,STATE_NAME状态名.COMMON_HOLIDAY 表:用来存放一些公共假期,如五一,国庆,中秋。
字段有COMMON_HOLIDAY_ID 公 共 假 期 IDHOLIDAY_START_TIME 假 期 开 始 时间HOLIDAY_INTRODUCE假期简介HOLIDAY_NAME假期名字HOLIDAY_END_TIME假期结束时间. 3 系统 本系统是基于 J2EE 所开发的。
J2EE 是一种利用 Java 2 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE 技术的基础就是核心 Java 平台或 Java2 平台的标准版,J2EE 不仅巩固了标准版中的许多优点,例如quot编写一次、随处运行quot的特性、方便存取数据库的 JDBC API、CORBA 技术以及能够在 Internet 应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、
JSP(Java Server Pages)以及 XML 技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
通过提供统一的开发平台,J2EE 降低了开发多层应用的费 用 和 复 杂 性 , 同 时 提 供 对 现 有 应 用 程 序 集 成 强 有 力 支 持 , 完 全 支 持 EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
数据库的表建立时,同时要伴随着系统的设计,各表之间的关系就是系统设计的重点。
本系统使用的框架技术是 Struts2springibatis。
3.1 框架介绍 3.1.1 Struts2 Apache Struts2 是一个优雅的,可扩展的 JAVA EE web 框架。
框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程 。
Struts2 框架是一个基于 MVC 架构的框架,由于它的核心设计思想来源于 WebWork,Struts2 框架中 MVC 模型各部分构成有控制器,模型,视图。
在本系统中应用 Struts2 将表单提交过来的内容进行验证对输入进行校验。
对于 Struts2 框架来说,他不仅仅是一个 MVC 框架,还是一个轻量级的容器。
使用此容器能够使我们在基本 Web 容器的基础上,根据需要增加其他新的特性。
除此之外,Struts2 框架还允许我们在应用中使用其他轻量级容器,比如目前较为流行的轻量级容器 Spring。
而且在 Struts2 应用中使用其他容器的时候,我们需要做的只是加入少量的配置信息。
从这一点上来说,更加体现出了 Struts2框架的灵活性。
3.1.2 Spring 在 Java EE 开发设计中,Spring 框架主要被应用于业务层,它的作用就是将中间件服务传递给耦合松散的 POJO。
通过 Spring 来管理业务流程,使得开发者能够国家专注与业务逻辑并且是测试过程变得更加简单。
Spring 的核心技术之一就是依赖注入,在开发设计过程中,整个应用中无论是 Action 层对象,还是服务层的 Service 对象,抑或是持久层的 DAO 对象,如果想要调用其它层的对象,只需调用一个该对象提供的接口即可,而不用去关心这个对象的具体实现过程。
如此一来我们的编码就拥有了更大的灵活性,也更利于后期的维护工作。
在 Spring 框架中,各个对象的具体实现对于其他对象来说都是透明的,完全由 Spring 容器管理所有对象。
传统 J2EE 应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致 J2EE 的应用没有真正实现 Write Once 及 Run Anywhere 的承诺。
Spring 作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。
Spring 致力于 J2EE 应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说 Spring 是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。
然而,Spring 并不想取代那些已有的框架,而与它们无缝地整合。
3.1.3 Ibatis iBATIS 一词来源于“internet”和“abatis”的组合,是一个由 Clinton Begin在 2001 年发起的开放源代码项目。
最初侧重于密码软件的开发,现在是一个基于 Java的持久层框架。
iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAO),同时还提供一个利用这个框架开发的 JPetStore 实例。
相对 Hibernate 和 Apache OJB 等“一站式”ORM 解决方案而言,ibatis 是一种“半自动化”的 ORM 实现。
Ibatis 是一种数据映射器,同时它也是一种可以应用于 Java 的持久层框架。
Ibatis通过配置文件加载数据源,映射字段与 Java 对象的属性,完成数据的持久化。
Ibatis 与其他持久层框架一样,都可以简化开发过程中数据持久化的操作。
Ibatis 持久化是通过配置 xml 文件实现的。
通常需要两个配置文件,一个用来配置 ibatis 自身的一些属性信息,缓存机制,事务处理方式以及数据源;另一个是映射文件,将数据表映射到领域模型层对象。
映射文件需要编写 sql 语句,ibatis 支持“”作为它的持久化语句的参数占位符,运行时这些占位符将被赋予参数值,然后对目标数据库进行持久化操作。
3.2 框架搭建 首先在 web.xml 中加载 spring 配置文件,添加如下语句: ltcontext-paramgt ltparam-namegtcontextConfigLocationlt/param-namegt ltparam-valuegt/WEB-INF/classes/applicationContext.xmllt/param-valuegt lt/context-paramgt 3.2.1 配置数据源 applicationContext.xml 是 spring 的配置文件,在里面进行添加数据源, lt-- spring 采用 dbcp 连接 oracle 数据库 配置数据源--gt ltbean idquotdataSourcequot classquotorg.apache.commons.dbcp.BasicDataSourcequotgt ltproperty namequotdriverClassNamequot valuequotoracle.jdbc.driver.OracleDriverquotgtlt/propertygt ltproperty namequoturlquot valuequotjdbc:oracle:thin:10.8.1.85:1521:XEquotgtlt/propertygt ltproperty namequotusernamequot valuequothrmsquotgtlt/propertygt ltproperty namequotpasswordquot valuequothrmsquotgtlt/propertygt applicationContext.xml 里还要导入 ibatis 配置文件,方法如下: ltbean idquotclientquot classquotorg.springframework.orm.ibatis.SqlMapClientFactoryBeanquotgt ltproperty namequotdataSourcequotgt ltref localquotdataSourcequot /gt lt/propertygt ltproperty namequotconfigLocationquotgt ltvaluegtclasspath:sqlMapConfig.xmllt/valuegt lt/propertygt lt/beangt 3.2.2 建立 dao 层与 service 层 用 eclipse 新建项目,名称为 hrms,新建包 com.hrms.dao,在里面分别建立接口AdminDao 与 EmployeeDao。
在包 com.hrms.dao.Impl 里建立接口的实现 AdminDaoImpl 和EmployeeDaoImpl。
新 建 包 com.hrms.service , 在 里 面 分 别 建 立 接 口 AdminService 与EmployeeService。
在包 com.hrms.service.Impl 里建立接口的.
上一篇:
【精品】伍飞
下一篇:
英文简历范文:人力资源个人简历(七)