您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第四章-UML建模与MVC模式一体化开发过程
4.基于MVC的一体化开发过程中心任务:从UML建模开始一直遵循MVC模式直到完成详细设计。基本思想:1.通过每个用例按V→M找出每个执行链;2.将每个V→M执行链进行映射(路由配置)得到控制器C;3.从OOA到OOD逐步细化;4.基于MVC的一体化开发过程遵循MVC模式逐步细化过程模型。下图中:•V=Viewer;R=Relation•BF=BusyFlow;BM=BusyModel;DA=DataAccess;DO=DataObject;•C=Controller;CaseActor人机交互Viewer业务逻辑Model数据实体DataEntity分析建模用例图划分类结构设计VBFBMDADOR控制器C详细设计业务层数据映射层控制层客户层资源层??视图原型表单校验映射链表算法分析Hibernate配置DBMS物理设计DBMS关系设计OOAOOD4.基于MVC的一体化开发过程1.UML用例图描述用户需求(OOA模型)2.系统MVC结构设计(OOD模型)3.Struts实现4.1UML用例图描述用户需求(OOA模型)OOA过程是:问题域分析;发现和定义类;识别对象的外部联系;建立系统的静态模型(功能模型、对象模型)与动态模型。这里按进程分OOA模型是:1.业务建模(业务模型/功能需求模型/用例模型)是对领域问题的分析与抽象描述,主要面向用户,反映用户需求。主要使用:用例图(Actor+UseCase)业务场景描述(活动图,时序图,文字说明)2.概念模型(类结构模型/类模型)是业务模型向计算机表示的过渡,面向设计人员。主要使用:类图:表达类类的划分与封装;类间的静态关系与结构;时序图或协作图:对象间的消息传递(动态);对于实时系统还要有状态图;4.1UML用例图描述用户需求(OOA模型)•储蓄业务系统总体用例图(根据用户需求描述)总体用例反映系统的总体结构;每个用例相当于子系统;引导前台界面结构及软件结构设计。操作员登录存款取款转账开户储户管理消户查询usesusesusesusesusesextendsextendsextends4.1UML用例图描述用户需求(OOA模型)展开各用例表达用户需求(得到功能需求),以储户提取存款(取款)为例。1)用户需求(在SRS中文字描述):用户手工填写用户名及提取金额,由操作员输入用户名和金额,系统进行身份验证和余额验证,两个条件通过执行提取现金操作,否则提示错误信息。2)“取款”用例图:取款Officer4.1UML用例图描述用户需求(OOA模型)3)用例脚本:1.目标:储户提取现金。2.事件流:基本流程①用户输入身份号和提取金额;②身份验证;③余额验证,余额是否大于提取金额;④提取现金,修改余额;⑤显示帐户提款后的信息;可选流程①身份号验证不通过,提示并重新输入;②余额不足提示并重新输入;3.特殊需求:无。4.前提条件:用例开始之前,操作员必须在系统登录成功。5.后置条件:如果用例执行成功,用户余额被更新,否则,系统状态不变。用表格方式表达的用例脚本:用例名称:取款用例ID:B_11参与者:操作员描述:操作员根据储户要求提取现金启动:操作员登录后点击“取款”前置条件:用例开始之前,操作员必须在系统登录成功后置条件:如果用例执行成功,用户余额被更新,否则,系统状态不变主事件流:用户视图逻辑运算1.输入用户身份号和提取金额2.储户身份验证3.余额验证,余额是否大于提取金额4.提取现金,修改余额;5.显示帐户提款后的信息备选流:备选说明处理过程1.储户身份验证不通过提示信息,返回“取款”并重新输入2.余额不足提示信息,返回“取款”并重新输入异常流异常原因处理方式用活动图表示事件流后台逻辑前台界面进入取款操作界面输入储户id和提取金额提交表单验证储户id验证余额[验证通过][验证通过]取款操作更新余额[验证不过]储户id错误请重新输入储户余额不够请修改[验证不过]显示取款成功和新余额4.1UML用例图描述用户需求(OOA模型)4)从用例图按MVC找三种类视图类:drawingForm业务类:drawing_operation(C+M)实体类:Account取款OfficerformC+MEntity4.1UML用例图描述用户需求(OOA模型)5)画交互图(用例对象时序图):drawingForm:drawing_operation:操作员1:发送HTTP请求2:输入用户id和金额6:验证储户余额4:连接数据库3:提交5:验证储户身份7:更新储户余额:Account8:返回储户新数据4.1UML用例图描述用户需求(OOA模型)6)对象的封装行为:通过对象交互图,表达对象之间的消息传递,找出对象封装的行为;属性:对象的属性根据具体类比较容易确定;具体如下。6)找对象的属性和行为•表单drawingForm–具有表单输入文本框,提供身份id和金额amount;–具有提交、复位按钮;–显示提示信息;–显示储户取款操作后的余额信息;提交按钮:button复位按钮:buttontypeAmount:textdrawingFormtypeid:text6)找对象的属性和行为•实体Account的属性有:–id,–name,–balance,–涉及到的存储过程转移到应用程序,drawing_operation中,因此实体类只封装属性;注:考虑移植和维护性,比如使用SQLServer2000、Oracle、MySQL等多种数据库,不提倡使用存储过程,实体的数据访问放在应用程序中。+get/set各属性()-id:string-name:string-balance:floatAccount6)找对象的属性和行为•drawing_operation主要是业务方法,通过对象时序图确定:–响应Http请求,获取前台表单数据;–连接数据资源;–验证用户身份–验证储户余额;–更新储户余额;–导航到下个显示更新储户信息的页面+响应Http请求,获取前台表单数据()+连接数据资源()+验证用户身份()+验证储户余额()+更新储户余额()+导航到下个页面()drawing_operation7)类的外部关系(后处理)1.将所有的用例处理完后得到领域问题中所有的类(视图、实体、业务),再进行归纳合并,分类列出表格;(1)视图类:边界类说明LoginForm为操作员提供登录的界面DepositForm为储户存款操作界面DrawingForm为储户取款操作界面CheckForm为储户转账操作界面Manage_depositor_Form进入储户管理操作界面7)类的外部关系(后处理)(2)业务类:业务类说明Login_Operation查询Operator实体,操作员身份登录验证Deposit_Operation为储户存款,UpDate储户Account余额Drawing_Operation为储户取款,UpDate储户Account余额Check_Operation为储户转账,UpDate储户Account余额Open_account_Operation创建新储户,向Depositor实体Insert新户Close_account_Operation删除储户,在Depositor实体Delete用户Query_account_Operation查询储户信息,SelectFormDepositor7)类的外部关系(后处理)(3)实体类:实体类说明Operator操作员ID、Name、PassWord等信息Depositor储户ID、Name|、PassWord、identification等信息Account储户ID、Balance、Date等存款记录7)类的外部关系(后处理)2.用类关系图表达类的外部关系;类关系图在分析模型(OOA)可省略,类关系图在下一步的结构设计中是必需的。尤其方便的是可以利用设计工具进行正反向工程;3.对于实体可以采用类关系图集中表示实体关系,可以取代ER图。ER图在关系数据库的设计中(总体设计)中进行。OOA模型至此基本完成,满足需求分析的三个基本模型:功能模型数据模型行为模型4.2基于MVC的设计(OOD模型)1.体系结构设计2.领域问题软件结构设计3.详细设计4.2.1体系结构设计•体系结构概念什么是体系结构?为什么先进行体系结构设计?体系结构设计有哪些?•设计内容①确定结构:Web结构,瘦客户(桌面∕图形图像∕网络∕分布式∕数据处理∕工作流∕流媒体∕P2P∕B2B∕B2C);②选择架构:J2EE企业架构(.NET∕开源∕商用∕SCA∕SOA);③分层结构:6层;④设计模式:MVC设计模式,Model2(JSP+Servlet+JavaBean)客户层业务流程控制业务模型数据访问实体对象数据资源客户层业务层数据层持久化层DAOViewControlModel资源层4.2.1体系结构设计⑤系统环境配置Windows_xpInternetExplorerWindows_xpInternetExplorer操作员操作员多个服务器OS:WindowsServerWeb服务器:Tomcat5DBMS:MySql54.2.2领域问题软件结构设计•体系结构设计决定领域问题结构设计的走向。领域问题结构设计是在体系框架内对OOA模型的细化。上面按J2EE的Web六层结构遵循MVC模式2这样一个体系结构就确定了每层的组件。如下图:•设计内容–总体结构:采用层次图描述系统功能结构;–模块设计:逻辑层(Model)每个模块内部封装及外部关系;–界面设计:客户层(View)每个界面封装内容及目录组织与导航;–Web版型类关系图:用类图反映每个V→M执行链;–控制器设计:设计V→M路由表–数据设计:针对DBMS的数据库逻辑设计业务层Sevlet组件客户层JSP组件业务模型JavaBean数据访问JavaBean实体对象JavaBeanViewModel4.2.2领域问题软件结构设计对于总体结构与数据设计另行讲解,主要讨论V与M的封装。•指导思想:对OOA模型中确定的每个用例分别处理(按链处理),然后按MVC和E四大部分归类组织。•步骤:①画出按分层结构进行细化的对象时序图;②对V层对象可以用原型法设计界面效果;③对M层,从对象时序图的消息传递找到对象封装的行为;④对持久对象和表单值对象封装属性和get/set方法;⑤画出单个链的Web版型的类外部关系图;⑥画出总的V层界面组织、M层类图、实体对象的外部关系。有利于负责网页制作、负责Java、负责数据库各方面开发人员的分工合作;⑦设计控制器,即设计V→M执行链的路由表;⑧实体数据结构和ER图(也可由关系数据库设计师完成);⑨借助正向工程工具生成代码框架;1、对OOA模型按分层结构进行细化的时序图从时序图再细细品味分层与MVC:•V:JSP人机交互;•C:Servlet执行业务流程和页面导航;•M:JavaBean;•业务模型:提供流程所用的方法(Object);•数据访问:封装JDBC底层API;•持久对象:Account没有使用?•表单值对象:AccountForm何用?drawing:jspDraw_Servlet:ServletBusy_ObjectData_accessAccount对象1Http请求输入id和金额AmountsubmitGetidGetamountgetConnection()get_id_same(AccountForm)get_balance_diff(AccountForm)save_draw(AccountForm)show:jspdoPost()getConnection()executeQuery(sql)executeUpdate(sql)ResultSetsetUserid(id)setAmount(amount)booleanfloatforward()AccountFormexecuteQuery(sql)ResultSet2、客
本文标题:第四章-UML建模与MVC模式一体化开发过程
链接地址:https://www.777doc.com/doc-7285302 .html