第八章系统设计之面向对象方法ppt课件_第1页
第八章系统设计之面向对象方法ppt课件_第2页
第八章系统设计之面向对象方法ppt课件_第3页
第八章系统设计之面向对象方法ppt课件_第4页
第八章系统设计之面向对象方法ppt课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章第八章 系统设计之面向对象方法系统设计之面向对象方法 与传统开发方法不同的是,面向对象方与传统开发方法不同的是,面向对象方法的分析与设计两阶段工作的界限并不法的分析与设计两阶段工作的界限并不明显,系统设计阶段要做的大多数工作明显,系统设计阶段要做的大多数工作是对分析阶段的成果进行改进和扩展。是对分析阶段的成果进行改进和扩展。 在设计阶段,需要修改和精炼面向应用在设计阶段,需要修改和精炼面向应用的分析模型,以适合目标实现环境。的分析模型,以适合目标实现环境。类图的扩展和改进类图的扩展和改进 通过顺序图映射出实体类图的方法通过顺序图映射出实体类图的方法 设计其他类和对象设计其他类和对象 通过

2、顺序图映射出类图的具体方法。通过顺序图映射出类图的具体方法。 类图的改进类图的改进8.1类的简介类的简介 类是具有相同特性类是具有相同特性(属性属性)和相同行为和相同行为(方方法法)的对象的集合。在的对象的集合。在UML中类使用一个中类使用一个矩形图符来表示,类的图符分为上、中、矩形图符来表示,类的图符分为上、中、下三个部分,分别用来标识类的名称、下三个部分,分别用来标识类的名称、属性和方法。属性和方法。+ 摇 尾 巴 ()+ 进 食 ()+ 去 取 东 西 ()+ 睡 觉 ()-名 字-品 种-年 龄-颜 色-性 别-最 喜 爱 的 食 物狗狗描 述 类 的特 征 (属 性 )描 述 类 可

3、 以 执 行的 任 务 (方 法 )类名 字 = k a tie品 种 = 牧 羊 犬年 龄 = 3颜 色 = 白性 别 = 母最 喜 爱 的 食 物 = 宠 物 饼 干k a tie : 狗名 字 = A n n ie品 种 = 藏 獒年 龄 = 5颜 色 = 黑性 别 = 公最 喜 爱 的 食 物 = 带 肉 骨 头A n n ie : 狗对 象1. 名称名称2. 属性属性3. 方法方法4. 消息消息5. 对象对象 对象模型中类之间可以有四种关系:对象模型中类之间可以有四种关系: 关联:(关联:(AssociationsAssociations表示两个类存在表示两个类存在某种语义上的联系某

4、种语义上的联系 依赖:所谓依赖就是某个对象的功能依赖依赖:所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是于另外的某个对象,而被依赖的对象只是作为一种工具在使用作为一种工具在使用客户供应商人空气聚合聚合/ /合成:是强关联合成:是强关联/ /弱关联,它反映的是整体和个弱关联,它反映的是整体和个体之间的关系体之间的关系泛化:显示类之间的继承关系。泛化:显示类之间的继承关系。 人学生信息教师信息学生学籍变动信息学生信息学生基本信息学生奖励信息学生处分信息学生课外活动信息8.2通过顺序图映射出类图的方法通过顺序图映射出类图的方法分析阶段确定了实体类,实体类的属性及分析阶段确定了实体

5、类,实体类的属性及关联,并没有确定实体类的方法。关联,并没有确定实体类的方法。在设计阶段可以通过所有用例的顺序图中,在设计阶段可以通过所有用例的顺序图中,对象所接受的消息,来确定对象的方法,对象所接受的消息,来确定对象的方法,即类的方法。即类的方法。图图书书馆馆管管理理系系统统分分析析阶阶段段类类图图 1.读者预约图书的顺序图读者预约图书的顺序图 2.管理员处理借书顺序图管理员处理借书顺序图3.图书管理员处理还书的顺序图图书管理员处理还书的顺序图 3.读者续借图书的顺序图读者续借图书的顺序图 8.3.设计类和对象设计类和对象1. MVC模型模型 把系统的组成分解成了模型、视图、控制把系统的组成

6、分解成了模型、视图、控制3个个核心组件。核心组件。客户浏览器、客户端(HTML)控制器Controller(Servlet)视窗View(JSP)模型Model(Bean/EJB)数据库文件系统其它后端系统请求响应创建转发存取 视图:视图是用户看到并与之交互的界面。对视图:视图是用户看到并与之交互的界面。对于于WebWeb应用程序来说,视图就是由应用程序来说,视图就是由HTMLHTML元素组元素组成的界面成的界面 作用作用1:1:将用户输入数据翻译成系统可以理解和将用户输入数据翻译成系统可以理解和应用的信息应用的信息 作用作用2 2:获取关于业务事件的数据,翻译后提:获取关于业务事件的数据,翻

7、译后提交用户。交用户。 控制器:控制器接受用户的输入并调用模型和控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击视图去完成用户的需求。所以当单击WebWeb页面页面中的超链接和发送中的超链接和发送HTMLHTML表单时,它只是接收请表单时,它只是接收请求并决定调用哪个模型构件去处理请求,然后求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。用确定用哪个视图来显示模型处理返回的数据。 模型:包含了应用程序功能核心,它封模型:包含了应用程序功能核心,它封装了应用程序的数据结构和事务逻辑,装了应用程序的数据结构和事务逻辑,集中体现了应用程序的状

8、态。集中体现了应用程序的状态。如果使用如果使用MVCMVC框架开发框架开发B/SB/S结构的应用系统,结构的应用系统,使用使用JavaBeanJavaBean进行模型设计与开发进行模型设计与开发视窗则可以利用视窗则可以利用JSPJSP来开发,来开发,客户端使用客户端使用HTMLHTML来实现来实现控制器则通常使用控制器则通常使用ServletServlet,它调用,它调用JavaBeanJavaBean,并且负责选择正确的并且负责选择正确的JSPJSP页面来创建和显示页面来创建和显示动态内容。动态内容。 使用用例图来描述教学管理系统总体业务流程使用用例图来描述教学管理系统总体业务流程 数据管理

9、员教室设施管理教师基本信息管理教师排课学生选课学生成绩管理员学籍管理员专业教学秘书教务秘书统计报表处理学籍处理成绩管理统计员制订教学计划2.2.为教师信息管理用例设计对象和类为教师信息管理用例设计对象和类 1 1、视窗、视窗ViewView部分部分 采用采用StrutsStruts框架设计出了两个对象:教框架设计出了两个对象:教师基本信息管理页面对象、教师信息编师基本信息管理页面对象、教师信息编辑页面对象辑页面对象 教师基本信息管理页面对象:提供添加、教师基本信息管理页面对象:提供添加、删除、查询、修改功能链接。删除、查询、修改功能链接。 教师信息编辑页面对象:要对教师信息教师信息编辑页面对象

10、:要对教师信息具体进行添加、修改时则调用该对象。具体进行添加、修改时则调用该对象。 2 2、控制器、控制器ControllerController部分部分 StrutsStruts框架的控制器部分由框架的控制器部分由ActionServletActionServlet和和ActionMappingActionMapping对象构成,因此在教师基本信对象构成,因此在教师基本信息管理用例中增加两个与之对应的对象息管理用例中增加两个与之对应的对象控控制器对象和教师管理控制对象。制器对象和教师管理控制对象。 控制器对象:根据用户请求转发给下一级控制控制器对象:根据用户请求转发给下一级控制对象。对象。

11、教师管理控制对象:接收对于教师信息管理的教师管理控制对象:接收对于教师信息管理的相关请求,并转发给相应模型对象处理。相关请求,并转发给相应模型对象处理。 3 3、模型、模型(Model)(Model)部分部分 StrutsStruts结构为结构为ModelModel部分提供了部分提供了ActionAction和和ActionFormActionForm对象对象 由 于由 于 S t r u t sS t r u t s 建 议 在 实 现 时 把建 议 在 实 现 时 把 “ 做 什做 什么么”(Action)(Action)和和“如何做如何做”(业务逻辑分别,(业务逻辑分别,实现业务逻辑的重

12、用实现业务逻辑的重用 因此在设计时引入两个对象:教师管理事务对因此在设计时引入两个对象:教师管理事务对象和教师数据存取对象,另外利用数据库连接象和教师数据存取对象,另外利用数据库连接池对象实现与数据库的交互。池对象实现与数据库的交互。对象及类的设计结果:对象及类的设计结果: 教 师 基 本 信 息管 理 页 面教 师 信 息编 辑 页 面控 制 器ActionServlet教 师 管 理 控 制 对 象 :TeacherController教 师 管 理 事 务 对 象 :TeacherBO教 师 数 据 存 取 对 象 :TeacherDAO教 师 实 体 :Teacher数 据 库 连 接

13、 池 :ConnectionPool 3.扩充顺序图扩充顺序图 第一组清空查询条件):第一组清空查询条件):“请求清空请求清空是由角色向教师基本信息管理页面发是由角色向教师基本信息管理页面发起,起,“清空查询条件又在页面上进行,清空查询条件又在页面上进行,两个消息的实现均采用两个消息的实现均采用JSP技术实现。技术实现。第二组添加操作)第二组添加操作)第三组查询操作)第三组查询操作)第四组修改操作和第五组删除操作第四组修改操作和第五组删除操作的处理方式与前面基本相同,都是页面向控的处理方式与前面基本相同,都是页面向控制对象发送消息,控制对象再将这些消息转制对象发送消息,控制对象再将这些消息转发

14、给事务对象,事务对象分析操作类型后再发给事务对象,事务对象分析操作类型后再把相应的操作要求转发给数据存取对象,由把相应的操作要求转发给数据存取对象,由数据存取对象通过数据库连接池和数据实体数据存取对象通过数据库连接池和数据实体最终实现相应的数据操作。最终实现相应的数据操作。 4.完成顺序图上消息到方法的映射完成顺序图上消息到方法的映射5. 类图的设计类图的设计 “教师基本信息管理类图”ConnectionPoolgetConnection() : ConnectionConnectionPool()TeacherTeacher()setteacher_id(teacher_id : Strin

15、g) : voidgetteacher_id() : StringTeacherControllerperform()TeacherController()TeacherDAOTeacherDAO()delete(teacher_no : String) : voidupdate(form : ActionForm) : voidquery(form : ActionForm) : ArrayListadd(form : ActionForm) : voidadd() : voiddelete() : voidupdate() : voidquery() : ArrayList+theConn

16、ectionPool+theTeacherTeacherBOadd(form : ActionForm) : voidquery(form : ActionForm) : ArrayListupdate(form : ActionForm) : voiddelete(form : ActionForm) : voidTeacherBO()+theTeacherBO+theTeacherDAOActionDATA_SOURCE_KEY : StringERROR_KEY : StringEXCEPTION_KEY : StringFORM_BEANS_KEY : StringFORWARDS_K

17、EY : StringLOCALE_KEY : StringMAPPING_KEY : StringMAPPINGS_KEY : StringMESSAGES_KEY : StringMULTIPART_KEY : StringSERVLET_KEY : StringTRANSACTION_TOKEN_KEY : StringdefaultLocale : LocaleAction()getServlet()setServlet()perform()perform()perform()perform()generateToken()getLocale()getResources()isCanc

18、elled()isTokenValid()resetToken()saveErrors()saveToken()setLocale()toHex()ActionFormActionForm()getServlet()getServletWrapper()getMultipartRequestHandler()setServlet()setMultipartRequestHandler()reset()reset()validate()validate()validate()完成完成“教师基本信息管理教师基本信息管理”、“教室设施管理教室设施管理”、“学学生基本信息管理类图设计后的总体类图生基本

19、信息管理类图设计后的总体类图RoomRoom()setroom_id()getroom_id()RoomControllerperform()RoomController()StudentControllerperform()TeacherControllerperform()TeacherController()TeacherTeacher()setteacher_id()getteacher_id()Studentsetstudent_id()getteacher_id()ConnectionPoolgetConnection() : ConnectionConnectionPool()R

20、oomBOadd()delete()update()query()RoomBO()+theRoomBORoomDAORoomDAO()add() : voiddelete() : voidupdate() : voidquery() : ArrayList+theRoom+theConnectionPoolStudentBOadd()query()update()delete()StudentBO()+theStudentBOStudentDAOadd()query()update()delete()+theStudent+theConnectionPoolTeacherBOadd()quer

21、y()update()delete()TeacherBO()+theTeacherBOTeacherDAOTeacherDAO()delete()update()query()add()add()delete()update()query()+theTeacher+theConnectionPooltheRoomDAOtheStudentDAOtheTeacherDAO8.4 优化类图优化类图增加派生属性和派生关联以提高访问效率。增加派生属性和派生关联以提高访问效率。采用抽象与具体的方法来优化继承关系,建立合采用抽象与具体的方法来优化继承关系,建立合理的,易于理解的类继承结构,一实现代码共理的

22、,易于理解的类继承结构,一实现代码共享、减少重复。享、减少重复。例如:例如:TeacherDAO,RoomDAO,StudentDAO这这3个类中都有数据库连接初始化、数据库连个类中都有数据库连接初始化、数据库连接关闭等重复特性,可以引入接口接关闭等重复特性,可以引入接口DAOObject优优化化后后的的总总体体类类图图TeacherControllerperform()TeacherController()RoomControllerperform()RoomController()TeacherBOadd()query()update()delete()TeacherBO()+theTeacherBORoomBOadd()delete()update()query()RoomBO()+theRoomBOStudentControllerperform()DAOObjectadd() : voiddelete() : voidupdate() : voidquery() : ArrayList+theDAOObject+theDAOObjectStudentBOadd()query()update()delete()StudentBO()+theStudentBO+theDAOObje

温馨提示

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

最新文档

评论

0/150

提交评论