一个Java Web项目的逆向工程应用案例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个Java Web项目的逆向工程应用案例
摘要对于绝大多数企业来说,现有的许多系统要想彻底更换或者对其做大的调整,在经济能力上是不可想象的。因此,通常采用再工程的方法以延长其寿命,逆向工程为形式之一。本文就以Java Web网站项目中“用户登录模块”为例剖析逆向工程。
关键词逆向工程;用户登录模块;UML
1 概述
逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身经过逆向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过程的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
2 一个逆向工程应用的案例
以Java Web网站项目中“用户登录模块”为例剖析逆向工程,运行效果如图1所示,包结构图如图2所示:
其中,登录页面login.jsp、欢迎页面main.jsp、转向控制类LoginServlet.java、对应数据库中用户信息表的通用数据模型的实体类User.java、完成用户信息的数据访问类LoginDAO.java、数据库公共连接类DBConnection.java、阻止非法IP 访问的过滤器类IPFilter.java、进行编码转换的过滤器类EncodingFilter.java、版权控制的过滤器类CopyrightFilter.java、阻止未登录用户访问主页的过滤器类LoginFilter.java、此外配置文件web.xml负责相关配置工作。
1)MVC的设计模式。
在进行逆向工程之前,首先需明白MVC设计模式的基本概念,即Model View Controller,把一个应用的输入、处理、输出流程按照Model、View、Controller 的方式进行分离,这样一个应用被分为三层:模型层、视图层、控制层,如图3所示。
2)基于MVC模式及包图结构图,构建出“用户登录模块”的组件图及部署图(如图4及图5所示)。
3)观察运行效果,利用软件建模方法分析“用户登录模块”,重构用例模型。
使用如图6所示的用例图来描述其关系。另外使用UML进行系统建模,并非只是意味着画出UML用例图,用例文档说明是同样重要的,这里不一一详述了,同时根据用例文档画出其活动图如图7所示。
4)利用UML软件建模方法分析“用户登录模块”,提取其类图模型、顺序图模型。
在完成了用例模型的设计及活动图设计之后,应已基本明了“用户登录模块”的需求,可以进行动态建模。通过用例文档明了“用户登录模块”的基本工作流,结合之前所了解的MVC模式,进行类图、顺序图模型重构,其类图如图8所示:
最后进行“用户登录模块”顺序图的设计。其“登录成功”顺序图如图9及图10所示,还可以依次画出“登录失败”顺序图、“IP被阻止”顺序图等。
5)完成“用户登录模块”的数据库重构、网站页面设计框架,重构出用户表1所示:
通过网页设计工具重构前台JSP网页的设计,有需要时可辅之画图软件及动画设计软件。
参考文献
[1]孙卫琴.Tomcat与Java Web开发技术详解[M].电子工业出版社,2005,8.