毕业设计--儿童健康保健系统(含外文翻译).doc_第1页
毕业设计--儿童健康保健系统(含外文翻译).doc_第2页
毕业设计--儿童健康保健系统(含外文翻译).doc_第3页
毕业设计--儿童健康保健系统(含外文翻译).doc_第4页
毕业设计--儿童健康保健系统(含外文翻译).doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

儿童健康保健系统 摘要 近年来,随着互联网和 Java 技术的不断发展,基于 J2EE 体系结构的企业级应用 发开越来越受到企业开发的青睐,J2EE 是一种利用 Java 2 平台来简化企业解决方案的 开发、部署和管理相关的复杂问题的体系结构,J2EE 为搭建具有可伸缩性、灵活性、 易维护性的商务系统提供了良好的机制。本设计就是基于 J2EE 体系结构下的 WEB 开发,设计的目的是了解 J2EE 体系的多层结构以及其两大容器 WEB 容器和 EJB 容器, 重点掌握 WEB 技术、Struts 和 Hibernate 技术、熟悉其开发环境的构建和工具的使用。 在开发中使用了目前比较流行的开发工具 Eclipse 和专业的技术,本系统在设计模式上 采用了技术领先的 Struts 设计模式,整个系统的各个模块保持高度的可重用性,各个 模块之间的耦合程度非常低,保证了系统的高可扩展性、高可维护性;本系统还使用 了 Hibernate 技术,Hibernate 是目前最流行的开源对象关系映射(ORM)架构,对数 据库完全使用面向对象的方式进行操作。本系统的功能为角色进行了权限的分配,普 通用户提供的功能包括:注册、修改信息、查询相关信息;管理员用户提供的功能包 括:用户成员的管理(添加、修改、删除) 、用户信息的管理(添加、修改、删除) 。 本系统采用 windows 作为操作系统;使用 MySQL 作为后台数据库,使用 Hibernate 技 术进行数据库操作;用 Myeclipse 作为客户端应用程序的开发工具,Web 服务器选用 Tomcat6.18 版本。整个设计说明是面向对象的过程,设计说明主体分为绪论,需求分 析,总体设计,详细设计,实现五个部分,并每个部分都有相应的详细说明过程。 关键字:J2EE;Web 开发;Struts;Hibernate;保健系统 The Childrens Health Care System Abstract In recent years, with the rapid development of Internet and Java technology, the J2EE- based architecture of the enterprise applications is favored in more and more companies. J2EE is an architecture which use of Java2 platform to simplify the development and management- related complexity problem. J2EE provided a good mechanism to build a scalable flexible, easy maintenance business system. The design is a web development based on J2EE architecture. The design aims is to understand the multi-tiers structure of J2EE and the tow containers - web containers and EJB containers, to master web technology, familiar with its development environment construction and use of tools. In the development, I use of the current more popular development tools Eclipse and professional skills, the system use of the technology leading Struts design patterns on the design model, all of the modules of the entire system maintain a high degree of reusability, the coupling between the modules is very low, and ensure the systems high scalability, high maintainability. The system also uses the Hibernate technology. The Hibernate is the most popular open source object-relation mapping (ORM) framework. It entirely use of object-oriented way to operate the database. The system features a role for the distribution of authority, ordinary users with the features include: registration, amended information, selects relevant information, the administrator user features include: the management of users (add, edit, delete), the management of user information (add, edit, delete). The design specification includes five parts: exordium, requirements analysis, schematic design, detailed design, realization prototype, and each part contain detailed description of the corresponding process. Key words: J2EE; Web development; Struts; Hibernate; health-care system 目录目录 1 绪论1 1.1 选题背景及目的1 1.2 研究的方法1 1.3 J2EE2 1.3.1 J2EE 的概念2 1.3.2 J2EE 典型的四层模型2 1.3.3 J2EE API.4 1.3.4 Struts 技术简介.5 1.3.5 Hibernate 技术简介.5 2 需求分析.6 2.1 用例需求描述6 2.2 角色的识别7 2.3 用例识别.8 2.4 用例图.8 2.5 用例描述10 2.5.1 BS_11.用户登录.10 2.5.2 BS_12.用户注册.11 2.5.3 BS_13.用户查询信息.12 2.5.4 BS_21.管理员登陆.13 2.5.5 BS_22.管理员添加用户.14 2.5.6 BS_23.管理员查询信息.15 2.5.7 BS_24.管理员添加检查记录.16 2.5.8 BS_25.管理员修改检查记录.17 2.5.9 BS_26.管理员删除检查记录.18 2.6 概念模型19 2.6.1 发现和定义实体对象.19 2.6.2 发现和定义边界对象.20 2.6.3 发现和定义业务对象.21 3 总体设计.22 3.1 系统总体设计的任务与原理22 3.2 系统体系结构设计22 3.3 系统功能设计.25 3.4 模块结构设计25 3.4.1 前台模块设计.25 3.4.2 前台类图设计.31 3.4.3 后台模块设计.32 3.4.4 后台类图设计.37 3.5 实体类设计38 4 详细设计.39 4.1 模块逻辑设计39 4.1.1 Hibernate 处理逻辑设计.39 4.1.1 前台用户逻辑设计.41 4.1.2 后台管理员逻辑设计.42 4.2 数据库设计44 4.2.1 数据库分析.44 4.2.2 数据库表结构的详细设计.46 5 系统实现.49 5.1 前台用户界面实现49 5.2 后台管理员界面实现51 结论.53 致谢.54 参考文献55 1 绪论 1.1 选题背景及目的 随着人们的生活水平的提高,我们更加注重我们的健康保健问题,尤其是儿童的 健康保健,儿童是我们祖国的未来,他们的健康就是我们祖国未来的美好。对此,我 们需要为儿童的健康保健做出系统周全的保护,对儿童的身体健康信息要有完整的备 案,以便进行调查,为发现问题、解决问题提供依据。 在现代社会,互联网的发展给我们提供了很大便利,我们可以随时异地获取儿童 的信息,儿童的家长只需通过互联网就可以方便上传自己孩子的健康信息,各地的医 生也可以通过互联网对儿童的健康信息进行管理,这些信息都上传至一个数据库服务 器上,供各地管理机构共享。 为了管理这些信息,我们需要开发一个基于 WEB 的儿童健康保健系统,这样我们 才能通过互联网实现儿童的健康保健。 本系统的用户分为管理者和普通用户,管理者主要是各地的医生和决策者,系统 为他们提供的功能有普通用户的管理和儿童信息的管理;普通用户主要是各地儿童的 家长,家长为孩子上传和管理自己的健康信息。通过这些功能的实现,我们就可以方 便地实现了儿童的健康保健。 1.2 研究的方法 本设计采用基于 J2EE 企业架构的 B/S 结构模式,数据库选用 MySQL 及其图形 界面 MyFront;用 Myeclipse 作为客户端应用程序的开发工具,Web 服务器选用 Tomcat6.18 版本。使用 MVC 框架,把一个应用的输入,处理,输出流程按照 Model,View,Controller 的方式进行分离,这样的一个应用层被分为三个层次模型 层,视图层,控制层,使用 Struts 架构实现 MVC,它以清晰的架构,简单的使用,完 备的文档成为解决方案的的首选2;使用 Hibernate 持久化技术,利用 Hibernate,开发 人员可以方便地按照 JAVA 对象的结构进行持久层的开发,并可以使用 Hibernate 所提 供的 HQL(Hibernate Query Language, Hibernate 查询语言)完成 JAVA 对象和关系型数据 库之间的转换和操作。 1.3 J2EE 1.3.1 J2EE 的概念 目前,Java 2 平台有 3 个版本,它们是适用于小型设备和智能卡的 Java 2 平台 Micro 版(Java 2 Platform Micro Edition,J2ME) 、适用于桌面系统的 Java 2 平台标准版 (Java 2 Platform Standard Edition,J2SE) 、适用于创建服务器应用程序和服务的 Java2 平台企业版(Java 2 Platform Enterprise Edition,J2EE) 。 J2EE 是一种利用 Java 2 平台来简化企业解决方案的开发、部署和管理相关的复杂问 题的体系结构。J2EE 技术的基础就是核心 Java 平台或 Java 2 平台的标准版,J2EE 不 仅巩固了标准版中的许多优点,例如“编写一次、随处运行“的特性、方便存取数据库 的 JDBC API、CORBA 技术以及能够在 Internet 应用中保护数据的安全模式等等,同 时还提供了对 EJB(Enterprise JavaBeans) 、Java Servlets API、JSP(Java Server Pages)以及 XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅 缩短投放市场时间的体系结构。 J2EE 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高 可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE 降低了开发多层 应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持 Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提 高了性能1。 1.3.2 J2EE 典型的四层模型 J2EE 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根 据他们所在的层分布在不同的机器上。事实上,SUN 设计 J2EE 的初衷正是为了解决 两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿, 在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想, 而且经常基于某种专有的协议通常是某种数据库协议。它使得重用业务逻辑和界 面逻辑非常困难。现在 J2EE 的多层企业级应用模型将两层化模型中的不同层面切分 成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构: 运行在客户端机器上的客户层组件 运行在 J2EE 服务器上的 Web 层组件 运行在 J2EE 服务器上的业务逻辑层组件 运行在 EIS 服务器上的企业信息系统(Enterprise information system)层软件 J2EE 应用程序组件 J2EE 应用程序是由组件构成的.J2EE 组件是具有独立功能的软件单元,它们通过相 关的类和文件组装成 J2EE 应用程序,并与其他组件交互。J2EE 说明书中定义了以下 的 J2EE 组件: 应用客户端程序和 applets 是客户层组件。 Java Servlet 和 JavaServer Pages(JSP)是 web 层组件。 Enterprise JavaBeans(EJB)是业务层组件。 客户层组件 J2EE 应用程序可以是基于 web 方式的,也可以是基于传统方式的. web 层组件 J2EE web 层组件可以是 JSP 页面或 Servlets.按照 J2EE 规范,静态的 HTML 页面和 Applets 不算是 web 层组件。 正如下图所示的客户层那样,web 层可能包含某些 JavaBean 对象来处理用户输入, 并把输入发送给运行在业务层上的 enterprise bean 来进行处理。 业务层组件 业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务 层上的 enterprise bean 进行处理. 下图表明了一个 enterprise bean 是如何从客户端程序 接收数据,进行处理(如果必要的话), 并发送到 EIS 层储存的,这个过程也可以逆向进 行。 有三种企业级的 bean: 会话(session) beans, 实体(entity) beans, 和 消息驱动(message- driven) beans. 会话 bean 表示与客户端程序的临时交互. 当客户端程序执行完后, 会话 bean 和相关数据就会消失. 相反, 实体 bean 表示数据库的表中一行永久的记录. 当客 户端程序中止或服务器关闭时, 就会有潜在的服务保证实体 bean 的数据得以保存.消息 驱动 bean 结合了会话 bean 和 JMS 的消息监听器的特性, 允许一个业务层组件异步 接收 JMS 消息。 企业信息系统层 企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划 (ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,J2EE 应用组件可 能为了数据库连接需要访问企业信息系统2。 我们就 J2EE 的各种组件、服务和 API,进行更加详细的阐述,看看在开发不同类型 的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用并组合不同的组件 和服务。 1.3.3 J2EE API J2EE 平台由一整套服务(Services) 、应用程序接口(APIS)和协议构成,它对开 发基于 Web 的多层应用提供了功能支持,下面对 J2EE 中的 4 种技术规范进行简单的描 述。 Servlet 接口(Java Servlet API):处理 WEB 请求,并将内容返回给客户端。一般 它出现在服务器表示层中。 JSP 接口(Java Server Pages),有 HTML 和 Java 代码的片段组成,在编译后类似 一个 Servlet 接口,主要为了处理显示的内容。优秀的 JSP 接口易于维护,不负 责业务逻辑方面的内容。而劣质的 JSP 接口则将所有业务逻辑都载入,对后期 的修改和维护带来诸多不便。 EJB 接口(Enterprise JavaBeans):允许创建由服务器管理的分布式对象,表示业 务逻辑的 EJB 被划分为 3 类。 实体 bean(entity bean):定义应用的数据结构。 会话 bean(session bean):负责与实体 bean 的结合,以及其他业务逻辑。 消息驱动 bean(message driven bean):与会话 bean 类似,不同之处在于,它是 由各种消息触发。 JNDI(Java 命名与目录接口):为访问目录服务器提供的支持,用于在 J2EE 应 用下的上下文中标识资源,为 EJB 和数据库连接提供定位。 Java 邮件接口(JavaMail API):支持 SMTPIMAPPOP 等邮件服务协议的 API, 也支持来自第 3 方的各种可用协议。 Java 事务接口(Java Transaction API):简称 JTA,允许应用管理自己的事务。支 持不同层次和不同服务器上的多个组件,共同参与到同一个分布式的事务中来。 Java 消息服务借口(Java Message Service API):简称 JMS,允许 J2EE 应用消息 中间件(MOM)套装软件,如 MQServices、SonicMQ 等,允许在应用间传输消 息。 Java 数据库连接(JDBC API):常见的数据访问 API,是 Java 程序与数据库系统 通信的标准 API。JDBC 为任何兼容的数据库提供了一个通用接口。 远程方法调用(RMI):通过网络,用于分布式、面向对象计算的标准工具。RMI 允许代码可以被另一个远程的 Java 虚拟机进行调用,而不必与网络通信协议打 交道3。 1.3.4 Struts 技术简介 Struts 是一种方便实用的 WEB 应用架构,Struts 的所有功能都是建立在已有的 Java Web 组件上的,比如 Servlet、JSP 或是 JavaBean,它是基于 MVC 设计模式的架 构,它只是采用了 MVC 模式把这些元素组织起来,使它们协同工作。更简单地说,可 以把 Struts 作为一种开发的助手。 MVC 是一种设计模式。它把整个应用系统的输入、处理、输出分开。这 3 个部分 分别对应着 MVC 中 3 个核心的模块:模型(Model)、视图(View)和控制器(Controller)。 Struts 就是一个 MVC 架构。模型是实现业务逻辑的 JavaBean 或者 EJB 组件组成, 在 Struts 框架中对应的是 ActionForm;控制器有 ActionServlet 和 Action 来实现;视图 就是一组 JSP 文件构成的4。 1.3.5 Hibernate 技术简介 Hibernate 是一个基于 Java 的开源的持久化中间件,它对 JDBC 做了轻量的封装。 其实,Hibernate 提供的是 ORM 映射服务,也就是对象-关系的映射(Object/Relation Mapping),把关系数据库转化为对象。 在使用 Hibernate 时,以面向对象的思想来看待数据库。操作数据库时,无需考虑 一条数据记录中的每一个字段的操作;一个持久化类实例便是一个数据记录;改变这 个对象的属性也就是改变数据记录相对应的字段;保存一个持久化类实例就是保存一 条数据记录5。 2 需求分析 需求分析是整个开发过程中最重要的一步,其最要任务是了解和掌握信息化系统 开发对象(用户)的工作业务流程和每个岗位,每个环节的职责,了解和掌握信息的 开始产生或建立到最后输出,存档或消亡所经历的传递和转换过程;了解和掌握各种 人员在整个系统活动过程中的作用。通过同用户充分的交流和沟通,决定哪些工作应 由计算机来做,哪些工作由人工来做;对数据的安全性(完整性)和完整性各有什么 要求,等等。 2.1 用户需求描述 儿童健康保健系统属于一个地区性的政府机构管理系统,主要是卫生机构管理系 统,卫生机构需要对每个儿童出生就备相关的档案,存储在这个保健系统内,以便专 家统计相关信息做出相应的决策。儿童出生时,家长必须登陆系统注册帐号,之后填 写一些基本信息,如性别、姓名、出生日期、出生状况等,提交这些信息到系统备案。 儿童健康保健系统的用户包括两部分,一个是前台的普通用户,包括用户在前台 登录,注册,管理自己的信息和查询信息。当用户需要修改或者查看自己的信息时需 要登陆,如果用户不能登录,则需要注册后,就可拥有自己的帐号,进行保健信息管 理以及查看信息。因为儿童年龄太小无法上网完成相关的操作,所以前台用户一般都 是儿童家长,家长登陆系统后帮助儿童填写相关的信息,主要是儿童的基本信息,如 姓名、性别、出生日期、出生医院、家庭地址、父母亲信息等等;查看信息主要是查 看检查记录、询问记录、特殊检查记录、还有基本信息,普通用户只能查看这些信息, 而不能对其进行修改和删除操作。 家长的权限就是上传和修改自己孩子的基本信息,以及查看检查记录、询问记录 和特殊检查记录,其他权限如修改删除检查记录等家长都不能拥有,那些是只有管理 员即医生才能拥有的权限。 另一个是后台的管理员,主要是医生或者是卫生管理员,他的需求是记录儿童有 关的信息,主要是检查记录、询问记录、特殊检查记录,检查记录主要是记录儿童每 次体检的详细信息,询问记录是记录医生对儿童健康状况询问的结果,特殊检查记录 主要是记录一些有特殊病状或者情形的检查详细情况。这些都需要医生或者卫生员对 每次儿童检查时做出详细的记录,这些都将作为以后统计的十分重要的依据。 管理员即医生的权限比家长的权限要大,能修改删除所有记录,包括检查记录、 询问记录和特殊检查记录,能添加儿童的基本信息,也就是说儿童出生的时候可以由 医生来为儿童注册帐号,完成出生备案,但是不能修改儿童的基本信息,那只能由家 长来完成。 这个系统将跟踪地区内所有儿童从出生到成年的所有健康记录,一出生家长就必 须帮助儿童进行备案,之后的每次体检或者检查、看病的具体情况都将有医生做详细 的记录,其中的检查记录和特殊检查记录对专家评估当地儿童的健康状况是非常有价 值的,是这个地区政府对儿童以及青少年了解的重要依据。 2.2 角色的识别 角色识别的任务是找出所有可能与系统发生交互行为的外部实体,对象和系统。它 们的行为不受系统控制,但可以提供输入给系统(即使用系统的功能,或者能够响应系 统的服务请求,为系统提供服务的接口) 。 由用户需求的描述可知,整个系统只包含两个角色:前端用户和管理员。前端用户 就是儿童的家长,负责帮助儿童完成一系列的操作,管理员就是医生或者卫生员,主要 负责记录儿童的健康状况。 综上所述,本系统实际包括两个角色:前端用户(儿童家长) ,管理员(医生或者 卫生员) 。如图 2.1 所示 图 2.1 儿童健康保健系统参与者 2.3 用例识别 用例识别的任务就是在角色的基础上,识别与角色有关的用例,从而得到系统的 用例模型。 经过分析,前台用户有两个模型:管理个人信息和查看信息,管理个人必须先注 册和登陆,之后才能修改信息和修改密码,所以管理个人信息有三个用例:注册、登 陆、修改信息和修改密码;查看信息也必须先登陆,之后可以查看检查记录、查看询 问记录和查看特殊检查记录,所以查看信息有四个用例:登陆、查看检查记录、查看 询问记录和查看特殊检查记录。后台管理员有五个模块,分别是添加用户、查看用户 信息、维护检查记录、维护询问记录和维护特殊检查记录。添加用户必须先登陆,查 看用户信息有查看检查记录、查看询问记录和查看特殊检查记录;后三个模块都分别 有增删改三种用例。 2.4 用例图 在用例识别的基础上得到系统的用例模型。 1.前台用户用例图如图 2.2。 图 2.2 前台用户用例模型 2后台管理员用例图如图 2.3。 图 2.3 后台管理员用例模型 2.5 用例描述 2.5.1 BS_11.用户登录 1用户登录用例的需求规划见表 2.1。 表 2.1 用户登陆用例需求规划 用例名称:用户登录 用例 ID:BS_11 参与者:用户 描述:用户登录系统过程 启动:主动进入用户登录界面 前置条件:用户需要在登录状态 后置条件:将用户的信息放在会话中;显示用户的主界面 事件流: 视图逻辑运算 1.进入或转入用户登录界面 2.用户输入用户名和密码3.系统检查用户名是否存在,密码是否正确 4.将用户的信息放在会话中 5.转到系统的主页面 2用户登录用例活动图见图 2.4。 图 2.4 用户登录活动图 2.5.2 BS_12.用户注册 图 2.5 用户注册活动图 2.5.3 BS_13.用户查询信息 2.5.4 BS_21.管理员登陆 图 2.7 管理员登录活动图 2.5.5 BS_22.管理员添加用户 图 2.8 管理员添加用户信息活动图 2.5.6 BS_23.管理员查询用户信息 2.5.7 BS_24.管理员添加检查记录 图 2.10 管理员添加检查记录活动图 2.5.8 BS_25.管理员修改检查记录 2.5.9 BS_26.管理员删除检查记录 1 图 2.12 管理员删除检查记录活动图 2.6 概念模型 分析概念模型是需求分析中关键的一步,是我们确定软件设计思想的关键,在本 系统中,我采用的是 MVC 思想进行设计的,通过用例图图 2.2 和图 2.3 可以发现三种 概念模型:一种是实体对象、一种是边界对象,还有一种是业务对象,他们分别对应 着 MVC 中的 M 部分、V 部分、和 C 部分。实体类对象是系统实际需要操作的数据资 源,是系统需要的真正的核心的资源;边界对象是系统和用户之间交互的桥梁,实现 人机交互,是系统的外在表现形式;业务类对象是系统设计的核心,起到业务处理的 作用,处理用户提交的业务逻辑 2.6.1 发现和定义实体对象 实体对象主要是一些数据实体,用来实现对数据的持久化操作,本系统中,主要的 实体类基本是与儿童健康有关的记录以及儿童的基本信息。本系统使用 Hibernate 架构, 采用面向对象操作这些实体类,所以我可以把这些实体类都封装成 JAVA 对象进行操 作。 系统的实体类见表 2.10。 表 2.10 系统实体类 实体类 说明 Adminitor保健系统管理员(用户名、密码等) BabyInformation儿童的基本信息(姓名、性别、出生日期、父母亲姓名等等) Enquire儿童的询问记录 BabyCheck儿童的检查记录 EspecialCheck儿童的特殊检查记录 Father儿童的父亲 Mother儿童的母亲 2.6.2 发现和定义边界对象 本系统的边界对象主要是由 JSP 页面封装的表单,因为我采用的是 Struts 架构,所 以封装的表单基本全是 Struts 提供的 ActionForm,它的流程由 Struts 架构控制提交给 Action 控制器进行处理。 这些边界类见表 2.11。 表 2.11 系统边界类 边界类 说明 LogActionForm为用户和管理员登陆提供的操作 RegisterActionForm为用户注册帐号提供的操作 AddInformationActionForm为用户修改个人信息、管理员添加修改用户个人信息提 供的操作 AddCheckActionForm为管理员添加检查记录提供的操作 AddEnquireActionForm为管理员添加询问记录提供的操作 AddEspCheckActionForm为管理员添加特殊检查记录提供的操作 ModifyCheckActionForm为管理员添加和修改检查记录提供的操作 ModifyEnquireActionForm为管理员添加和修改询问记录提供的操作 ModifyEspCheckActionForm为管理员添加和修改特殊检查记录提供的操作 SelectActionForm为管理员选择查询类型提供的操作 UserSelectActionForm为用户选择查询类型提供的操作 2.6.3 发现和定义业务对象 业务对象是系统业务处理的核心,负责处理用户提交的请求,本系统采用的是 MVC 架构 Struts,所有业务对象就是由 Struts 架构提供的 Action 控制器。 这些控制器见表 2.12。 表 2.12 系统业务类 业务类 说明 LogAction负责管理管理员的登陆 UserLogAction负责普通用户的登陆 RegisterAction负责普通用户的注册 UserModifyAction负责用户信息的修改 AddInformationAction负责用户信息的添加 AddCheckAction负责检查记录的添加 AddEnquireAction负责询问记录的添加 AddEspeCheckAction负责特殊检查记录的添加 SelectAction负责用户对自己信息的查询 UserSelectAction负责管理员对用户信息的查询 ModifyCheckAction负责检查记录的修改 ModifyEnquireAction负责询问记录的修改 ModifyEspeCheckAction负责特殊检查记录的修改 DeleteCheckAction负责检查记录的删除 DeleteEnquireAction负责询问记录的删除 DeleteEspeCheckAction负责特殊检查记录的删除 3 总体设计 3.1 系统总体设计的任务与原理 1任务 从系统的总体目标出发,根据需求分析阶段对系统逻辑功能的要求并考 虑到经济技术和运行环境等方面的条件,确定系统的总体结构和系统各组成部分的技术 方案,合理选择计算机的通信的软、硬件设备,提出系统的实施计划,确保总体目标的 实现。 2原理 (1) 模块化,模块化就是把程序划分成若干个模块,每个模块完成一个子 功能,把这些模块集中起来组成一个整体,可以完成指定的功能满足部题的要求。(2) 模块独立,模块的独立概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块 的独立程度由内聚和耦合两个标准来衡量。模块的划分应该尽量做到高内聚、低耦合。 3.2 系统体系结构设计 1软件分层 当遇到较大的软件设计时,我们需要采用分而治之的方法来对付,即采用软件分 层的设计思想。我的分层设计原则是视图表现层,业务逻辑层、数据持久层和服务器 层各自分离,互不依赖,更为重要的是业务逻辑层和数据持久层都不依赖于视图表现 层。这样的目的就是为了做到模块的高内聚、低耦合,便于维护,易于扩展,降低软 件开发成本,提高软件的开发效率。 本系统为六层结构: 一、WEB 服务层。系统采用的是 Tomcat6.0,Tomcat 是在 J2EE 体系技术标准的 具体实现,为用户提供了一个轻量级的 WEB 开发平台。 二、过滤层。我之所以把过滤器单独作为一层,是因为本系统的过滤器也担任着 关键的任务,负责对提交的表单进行预先处理,进行为页面设置中文编码,更重要的 是对每个 Action 方法进行过滤,进行数据库操作事务管理,其中的思想是:因为基本 上每个 Action 中都涉及到数据库操作,所以我就把每个 Action 中的数据库操作看做一 个事务,在每次进入 Action 之前就开始一个事务,Action 结束的时候就提交事务,这 样编写过滤器的好处在于每次事务开始的时候都不再需要做出相应事务处理了,过滤 器已经帮我完成了这部分工作。严格来说,这一层属于 DAO 层,但把它分开我觉得系 统的结构更为清晰 三、视图表现层。本系统主要采用 JSP 页面表示各种客户需要的信息,以及客户 提交的表单。系统中的 JSP 页面全是单纯的页面表示方法,没有嵌入 JAVA 脚本,若 需要嵌入脚本,则将脚本转换为标签形式嵌入 JSP 页面,做到 JSP 页面和 JAVA 代码 的完整分离,互不依赖。标签只要采用 Struts 自定义标签、JSTL 标签库和我自定义的 标签。 四、业务逻辑层。业务逻辑层主要使用 Struts 架构中的核心控制器 ActionServlet 和我们添加的 Action JAVA 文件。在这个层中我主要的任务是编写添加的 Action 中的 execute 方法,该方法控制着大部分业务逻辑。 五、DAO 层。这一层负责对提交的数据进行持久化、执行与数据库有关的一系列 操作,包括插入、查询、更新和删除。此层采用 Hibernate 数据库持久化技术,把关系 数据库中数据转化为 JAVA 对象采用面向对象思想进行操作。 六、数据库资源层。本层采用流行的小巧 MySQL 数据库以及可视化操作工具 MySQL-Front。此层向 DAO 层提供数据库服务,提供数据存储功能。 在这六层结构中我只需负责中间二、三、四、五层的编码工作,我只需按照 J2EE 体系标准来进行设计就可以享用 Tomcat 提供的服务。这五层的功能结构清晰,我专注 的中间三层采用 MVC 思想进行设计。 2WEB 软件架构 软件架构是一系列相关的抽象模型,用于知道软件系统设计的各个方面。软件架 构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地 描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某 个类或者对象。我们熟悉的软件架构有 J2EE 架构、.NET 架构、传统的 Client/Server 架构,以及以服务为向导的架构(SOA) 。 本系统采用 MVC 模式来设计,具体采用 J2EE 体系标准,使用 Struts 架构来实现 MVC 模式。J2EE 属于三层结构,即表示层、业务层、数据层。我具体使用的技术是: JSP +Struts+Hibernate, 使用 JSP 结合 JSTL 和 Struts 标签库表现表示层;使用 Struts 来 处理业务逻辑,进行页面之间的转发以及数据的传递;使用 Hibernate 技术进行数据持 久化。 3MVC 架构 MVC 是 Model、View、Controller 三个词的缩写,三个词分别代表应用的三个组件 组成部分:模型、视图、控制器。MVC 架构的核心思想是:将程序分成相对独立,而 又能协同工作的三个部分。通过使用 MVC 架构,可以降低模块之间的耦合,提供应用 的可扩展性。另外,MVC 的每个组件只关心组件内的逻辑,不应与其他组件的逻辑混 合。 本系统采用 Struts 架构实现 MVC 模式对系统六层结构中的三、四、五层进行设计。 V 部分。即本系统的视图表示层,采用 JSP 实现。同时结合 JSTL 和 Struts 标签库 表现页面。整个应用由客户端请求驱动,当客户端被 ActionServlet 拦截时, ActionServlet 根据请求决定是否需要调用 M 部分处理用户请求,当用户请求处理完成 后,其处理结果再通过 JSP 呈现给用户。 C 部分。即本系统的业务逻辑层。Struts 的 Controller 由两个部分组成:系统核心 控制器和业务逻辑控制器。其中,系统核心控制器对应 ActionServlet。该控制器由 Struts 框架提供,继承 HttpServlet 类,因此可以配置成一个标准的 Servlet。该控制器负 责拦截所有 HTTP 请求,然后根据用户请求决定是否需要调用业务逻辑控制器,如果 需要调用业务逻辑控制器,则将请求转发给 Action 处理,否则直接转向请求的 JSP 页 面,Action 主要处理用户请求的相关动作,处理完之后根据处理结果决定转发方向。 M 部分。由 ActionForm 和本系统的 DAO 层组成。其中 ActionForm 用于封装用户 请求参数,所有的用户请求参数由系统自动封装成 ActionForm 对象;该对象被 ActionServlet 转发给 Action;然后 Action 根据 ActionForm 里的请求参数处理用户请求。 而 DAO 则封装了底层的业务逻辑,主要是数据库操作,采用 Hibernate 技术。 4持久层 ORM 架构 ORM 的全称是 Object/Ration Mapping,对象/关系映射。ORM 是一类架构的总称, 它概述了这类框架的基本特征:完成面向对象的程序设计语言与关系数据库的映射。 基于 ORM 框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可以利 用关系数据库的技术优势。 本系统采用 Hibernate 架构实现 ORM。利用 Hibernate,把本系统中数据库的表转 化为 JAVA 对象来操作,开发人员可以方便地按照 JAVA 对象的结构进行持久化的开 发,并可以使用 Hibernate 所提供的 HQL(Hibernate Query Language)完成 JAVA 对象和 关系型数据库之间的转换和操作。 3.3 系统功能设计 为了更清晰地表示系统的整体功能,绘制了系统总体功能框架图见图 3.1。 儿童健康保健系统 前台用户后台管理员 注 册 登 陆 维 护 信 息 查 询 信 息 登 陆 添 加 用 户 维 护 检 查 记 录 维 护 询 问 记 录 维 护 特 殊 检 查 记 录 查 询 用 户 信 息 图 3.1 系统总体功能框架 3.4 模块结构设计 3.4.1 前台模块设计 1.用户登录模块 (1)包括用户登录界面模块,用户登录后台处理模块,数据处理模块三个程序界面, 具体的体系结构如图 3.2 所示。 用 户 登 录 模 块 用户登录界面 用户登录后台处理 Login_ok.jsp Login_ok.jsp 数据处理 图 3.2 用户登录模块系统结构 (2)其用户登录模块的顺序图如图 3.3 所示。 图 3.3 用户登录模块顺序图 (3)各对象模块的封装见表 3.1。 表 3.1 用户登录的各对象模块封装 模块名称 程序文件 功能说明 封装属性 封装方法 用户登录界面 模块 index.jsp用户登录界面usersno,passw ord 用户登录后台 处理模块 UserLogAction.java后台响应验证用户 名和口令 execute():提取 username,password ; 并进行验证 数据处理模块BabyInformationDAO.java 用 Hibernate 数据 库操作技术进行提 取 BabyInformation 实例 getBabyInformation(): 执行数据库查询并返 回用户实例; 2.用户注册模块 4.用户查看信息模块 3.4.2 前台类图设计 经上述分析得到各用例的对象及封装,经过归纳,合并,补充等优化工作后,得 到前台模块的类及关系图如图 3.10 所示。 图 3.10 前台类图 3.4.3 后台模块设计 1.管理员添加用户模块 图 3.12 管理员添加用户模块顺序图 2.管理员维护检查记录模块 图 3.13 管理员维护检查记录模块系统结构 3.管理员查询用户信息模块 图 3.16 管理员查询用户信息模块顺序图 3.4.4 后台类图设计 经上述分析得到各用例的对象及封装,经过归纳,合并,补充等优化工作后,得 到后台模块的类及关系图如图 3.17 所示。 图 3.17 后台类图 3.5 实体类设计 实体类的设计是系统设计的关键一步,设计到系统操作的每一个部分,如提交表单 的设计也需要根据实体类设计。 因为本系统是使用 Hibernate 架构,因此每个将为每个数据库表定义一个实体类, 将这些数据库表转换为 Java 对象进行操作,从而就能够使用面向对象的方式操作数据 库了。 经过分析,本系统的实体类之间的关系如图 3.18 所示。 -name -usersno -password -father -mother -familyaddress -birthday BabyInformation -babyinformation -checkdate -bodylong -checkman -densnum -deyesight -head -headthstatus -leyesight -lung -monthweight BabyCheck -checkdate -age -ablactation -babyinformation -belly -eatfashion -energystatus -food -id Enquire -id -name -age -phone -workunit Father -id -name -age -phone -workunit Mother -id -babyinformation -checkdate -checkdaoctor -checkitem -checkresult -resultidea EspecialCheck 0* 1 1 1* 0* 1 1* 1 1 0* 图 3.18 实体类的类图 4 详细设计 总体设计完成后,还需要确定各个模块的具体实现方法,以便最终建立一个完善的 系统。要建立系统的各个功能模块,就要进行程序设计。而详细设计阶段的目标是确 定怎样具体的实现所需求的系统,也就是说,经过这个阶段的设计工作,应该得出目 标系统的精确描述,从而在编码阶段可以把这个描述直接翻译或用总程序设计语言书 写程序。 4.1 模块逻辑设计 4.1.1 Hibernate 处理逻辑设计 1使用 Hibernate 进行数据库操作的过程。 本系统是使用 Hibernate 技术进行数据操作的,使用 Hibernate 进行持久化操作的主 要步骤如下: (1)创建 Configuration 对象 在这一步中主要为了进行配置文件的封装操作,读取所有配置文件并进行解 析。 (2)创建 SessionFactory 对象 通过创建好的 Configuration 对象可以创建一个 SessionFactory 对象的实例,它 是产生 Session 对象实例的工厂,它在整个应用中应该是唯一的。 (3)创建 Session 对象 Session 对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接。 (4)开始一个事务 在 JAVA 中定义一个事务操作的开始,这是使用 Hibernate 进行持久化操作 必不可少的步骤。 (5)进行持久化操作 在这个步骤中可以读取或者保存 JAVA 对象。 (6)结束事务 在操作完这个步骤后还要进行显式地结束事务的操作。 (7)关闭 Session 类似释放数据库的连接。 2Hibernate 工具类 Hibernat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论