欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    面向对象系统设计精选PPT讲稿.ppt

    • 资源ID:84119961       资源大小:3.05MB        全文页数:154页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象系统设计精选PPT讲稿.ppt

    关于面向对象系统关于面向对象系统设计设计第一页,讲稿共一百五十四页哦本章主要内容本章主要内容l11.1软件架构的设计软件架构的设计l11.2高层结构设计高层结构设计l11.3面向对象设计方法面向对象设计方法l11.4对象持久化与数据库对象持久化与数据库l11.5设计原则设计原则l11.6设计模式设计模式第二页,讲稿共一百五十四页哦11.1软件架构的设计软件架构的设计l11.1.1什么是软件架构什么是软件架构l11.1.2多层应用架构设计多层应用架构设计l11.1.3软件框架软件框架第三页,讲稿共一百五十四页哦1.架构的概念架构的概念l建筑、文学、音乐、机械、电子、计算机软硬件等领域都建筑、文学、音乐、机械、电子、计算机软硬件等领域都会使用会使用“架构(架构(architecture)”这一概念。架构都提供这一概念。架构都提供了系统最高层的设计方案,以确保建筑、小说、乐曲、设了系统最高层的设计方案,以确保建筑、小说、乐曲、设备、计算机等系统满足期望的特性。备、计算机等系统满足期望的特性。好的建筑应该美观、坚固、实用好的建筑应该美观、坚固、实用好的计算机应用系统应该实用、好维护、可靠、性价比高好的计算机应用系统应该实用、好维护、可靠、性价比高l架构师(架构师(architect)需要发现特定系统的最重要的关注)需要发现特定系统的最重要的关注点,设计某种折衷的总体方案以满足关注点。点,设计某种折衷的总体方案以满足关注点。l架构包含系统的一组基本结构(架构包含系统的一组基本结构(structure),每种结),每种结构都有各种类型的部件(构都有各种类型的部件(component)及其关系构成,)及其关系构成,架构描述了这些部件的组合、相互调用参照、通信以及其架构描述了这些部件的组合、相互调用参照、通信以及其他动态交互。他动态交互。第四页,讲稿共一百五十四页哦架构和结构的关系架构和结构的关系l架构是抽象无形的,体现高层全局的决策,就像文章的中架构是抽象无形的,体现高层全局的决策,就像文章的中心思想和提纲。心思想和提纲。l结构是具体有形的,体现决策的贯彻,如同文章的每结构是具体有形的,体现决策的贯彻,如同文章的每个段落及细节描述。个段落及细节描述。l架构包含了结构的初步描述和决策。架构包含了结构的初步描述和决策。l相同架构的系统,具体结构允许有差异。相同架构的系统,具体结构允许有差异。第五页,讲稿共一百五十四页哦使用桥梁来比喻使用桥梁来比喻l桥梁的架构设计可以使用草图描述,架构决定了桥梁的基桥梁的架构设计可以使用草图描述,架构决定了桥梁的基本结构部件。本结构部件。桥梁有梁式桥、拱桥、斜拉桥、悬索桥等架构桥梁有梁式桥、拱桥、斜拉桥、悬索桥等架构斜拉桥的基本结构:斜拉桥的基本结构:l索塔索塔l主梁主梁l斜拉索斜拉索第六页,讲稿共一百五十四页哦使用桥梁来比喻使用桥梁来比喻l桥梁的结构设计则需要考虑各种部件的数量、材料、重桥梁的结构设计则需要考虑各种部件的数量、材料、重量、形态等方面,是可以施工的严谨的结构图。量、形态等方面,是可以施工的严谨的结构图。架构是抽象的,对结构进行了设计和限定,每座桥的结构是具架构是抽象的,对结构进行了设计和限定,每座桥的结构是具体有形的、元素组合千变万化体有形的、元素组合千变万化第七页,讲稿共一百五十四页哦2.软件架构软件架构l软件架构(软件架构(softwarearchitecture)的定义没有统一的)的定义没有统一的版本,一般认为:一个应用程序或计算系统的软件架版本,一般认为:一个应用程序或计算系统的软件架构是一个或一组结构,它包含组成系统的软件元素、构是一个或一组结构,它包含组成系统的软件元素、这些元素对外可见的性质以及它们之间的关系。对外这些元素对外可见的性质以及它们之间的关系。对外可见的性质指软件元素能够提供的服务、性能特征、可见的性质指软件元素能够提供的服务、性能特征、错误处理、共享资源的用法等。错误处理、共享资源的用法等。软件的一个结构元素可能是一个子系统、构件、进程、库、数据软件的一个结构元素可能是一个子系统、构件、进程、库、数据库、计算结点、遗留系统等等。库、计算结点、遗留系统等等。l软件架构是最高层次的系统分解,它不会囊括所有的结软件架构是最高层次的系统分解,它不会囊括所有的结构和行为的定义,它只关注那些被认为是重要的元素。构和行为的定义,它只关注那些被认为是重要的元素。n架构难以更改,一旦修改,意味着整个系统重建,而结构修架构难以更改,一旦修改,意味着整个系统重建,而结构修改只影响局部。改只影响局部。第八页,讲稿共一百五十四页哦3.软件架构模式软件架构模式l大部分的架构来源于有相似关注点的系统的总结和抽象,这大部分的架构来源于有相似关注点的系统的总结和抽象,这些相似性被描述成某种特殊模式的架构风格,也就是架构模些相似性被描述成某种特殊模式的架构风格,也就是架构模式(式(architecturalpattern)。)。l一种架构模式就是一个经验秘籍,架构师在设计不同系统时一种架构模式就是一个经验秘籍,架构师在设计不同系统时可以重复使用这些先进经验。可以重复使用这些先进经验。图图10.110.1就是桥梁的四种常用架构模式。就是桥梁的四种常用架构模式。中国建筑有一种攒尖模式,被广泛应用在古典园林中,如三中国建筑有一种攒尖模式,被广泛应用在古典园林中,如三角、四角、五角、八角等亭子,宫殿、坛庙大量应用。角、四角、五角、八角等亭子,宫殿、坛庙大量应用。第九页,讲稿共一百五十四页哦软件架构模式软件架构模式l软件架构模式就是可重复使用的软件结构风格软件架构模式就是可重复使用的软件结构风格。第十页,讲稿共一百五十四页哦10.1.2多层应用架构模式多层应用架构模式l分层的含义分层的含义l三层三层l多层多层lMVC架构模式架构模式l多层的物理配置多层的物理配置第十一页,讲稿共一百五十四页哦1.分层的含义分层的含义l基于组件的软件开发,组件根据横向位置划分为多层(基于组件的软件开发,组件根据横向位置划分为多层(N-Layer):):下层组件负责对上层组件提供服务下层组件负责对上层组件提供服务上层组件可以使用下层组件定义的服务,但下层组件对上层组件上层组件可以使用下层组件定义的服务,但下层组件对上层组件一无所知。一无所知。层与层之间通常是不透明的,每一层都具有独立的职责层与层之间通常是不透明的,每一层都具有独立的职责 不同层的软件构件可以分布在多台机器上,也可以部署在同一不同层的软件构件可以分布在多台机器上,也可以部署在同一台机器上,形成物理上的多层(台机器上,形成物理上的多层(N-TierN-Tier)第十二页,讲稿共一百五十四页哦理解分层概念理解分层概念l层次模型的理念就是将整个任务横向划分为不同级别,层次模型的理念就是将整个任务横向划分为不同级别,而不是纵向而不是纵向比如学校管理纵向划分有教学、人事、财务、后勤等任务比如学校管理纵向划分有教学、人事、财务、后勤等任务横向划分有主管校长(高层)、部门领导(中层)、普通员横向划分有主管校长(高层)、部门领导(中层)、普通员工(基层),或处、科、室工(基层),或处、科、室l计算机程序的组织结构也可以有纵向划分和横向划分计算机程序的组织结构也可以有纵向划分和横向划分纵向:教师管理功能、学生管理功能、课程管理功能纵向:教师管理功能、学生管理功能、课程管理功能横向:界面窗体、业务逻辑类、数据访问类横向:界面窗体、业务逻辑类、数据访问类第十三页,讲稿共一百五十四页哦理解分层概念理解分层概念l自从自从C/S出现之后,软件就被分层了:出现之后,软件就被分层了:ClientClient端的软件完成前台任务,端的软件完成前台任务,ServerServer端的软件完成后台任务端的软件完成后台任务(一般是(一般是DB ServerDB Server););ClientClient使用使用ServerServer端的服务,依赖于端的服务,依赖于ServerServer端。端。l自从自从Internet出现之后,软件进一步分层:出现之后,软件进一步分层:ClientClient端的软件(端的软件(IEIE浏览器)完成输入输出任务,浏览器)完成输入输出任务,Web ServerWeb Server上上的程序提供业务逻辑处理,后台的程序提供业务逻辑处理,后台DB ServerDB Server完成数据的存取。完成数据的存取。lC/S常被称为传统的两层,常被称为传统的两层,B/S称为三层。称为三层。l本书的分层将不包含有关系统软件(屏蔽如本书的分层将不包含有关系统软件(屏蔽如IE、DBMS等等内容),仅讨论应用系统本身的设计,即应用架构设计。内容),仅讨论应用系统本身的设计,即应用架构设计。第十四页,讲稿共一百五十四页哦2.三个基本层次三个基本层次l应用应用软件内部也可以进行多层的划分。软件内部也可以进行多层的划分。l比如一个用户注册程序可以划分为两层:比如一个用户注册程序可以划分为两层:Register.aspx/Register.aspx.csRegister.aspx/Register.aspx.cs窗体:负责界面数据的输入和格窗体:负责界面数据的输入和格式检验,结果的输出等。式检验,结果的输出等。PersonPerson类:负责数据库访问和注册规则检查等。类:负责数据库访问和注册规则检查等。从应用层面上看,如果整个应用软件都是采用这种方式编程从应用层面上看,如果整个应用软件都是采用这种方式编程(如订单处理由(如订单处理由PlaceOrder.aspxPlaceOrder.aspx窗体负责界面交互,由窗体负责界面交互,由OrderOrder、ProductProduct等类负责数据库访问和订单金额计算等业务逻辑处理),等类负责数据库访问和订单金额计算等业务逻辑处理),那么称之为两层的应用架构。那么称之为两层的应用架构。l可以有两层、三层、四层等不同分层模式。可以有两层、三层、四层等不同分层模式。Register.aspx/Register.aspx.csRegister.aspx/Register.aspx.cs窗体窗体PersonBllPersonBll类:负责注册规则检查等业务逻辑。类:负责注册规则检查等业务逻辑。PersonDalPersonDal类:负责数据库访问。类:负责数据库访问。第十五页,讲稿共一百五十四页哦传统的传统的C/S应用程序应用程序l界面窗口程序中包含所有的内容,如输入输出、界面界面窗口程序中包含所有的内容,如输入输出、界面逻辑控制、业务逻辑运算等。逻辑控制、业务逻辑运算等。l系统架构是两层,应用架构没有分层。系统架构是两层,应用架构没有分层。数据库数据库第十六页,讲稿共一百五十四页哦经典的三层架构经典的三层架构数据库数据库借还书组件借还书组件读者管理组件读者管理组件表示层(表示层(UI)业务逻辑层(业务逻辑层(BLL)数据访问层(数据访问层(DAL)数据库访问组件数据库访问组件第十七页,讲稿共一百五十四页哦经典的三层架构经典的三层架构1.表现层:处理用户和信息系统之间的交互。表现层:处理用户和信息系统之间的交互。可以是简单的命令行窗口,也可以功能完善的图形用户界面(胖可以是简单的命令行窗口,也可以功能完善的图形用户界面(胖客户端程序),如基于客户端程序),如基于HTMLHTML的浏览器界面(瘦客户端程序),也的浏览器界面(瘦客户端程序),也可以是手机界面。可以是手机界面。2.业务逻辑层:也称为领域层或应用层,是信息系统所有业务逻辑层:也称为领域层或应用层,是信息系统所有和领域相关的工作。和领域相关的工作。如根据输入数据或已有数据进行计算,可以是类库或如根据输入数据或已有数据进行计算,可以是类库或WebWeb服务。依服务。依赖于数据访问层获取数据或保存数据。赖于数据访问层获取数据或保存数据。3.数据访问层:一般指与数据库的交互,主要责任是数据库记数据访问层:一般指与数据库的交互,主要责任是数据库记录的存取。录的存取。如组件中包含专门的数据访问类,或每个表对应一个数据访问类如组件中包含专门的数据访问类,或每个表对应一个数据访问类第十八页,讲稿共一百五十四页哦3.扩展的五层架构扩展的五层架构1.表现层:等同于三层中的表现层。表现层:等同于三层中的表现层。2.控制层控制层/中介层:是表现层和领域层的中介层,也称应用中介层:是表现层和领域层的中介层,也称应用控制器。控制器。主要表示业务逻辑中的工作流,一般针对于用例的事件流控制。此主要表示业务逻辑中的工作流,一般针对于用例的事件流控制。此外还负责会话状态、数据的合成或分解等事务。外还负责会话状态、数据的合成或分解等事务。3.领域层:业务逻辑中的领域类的集合,不包含复杂工作领域层:业务逻辑中的领域类的集合,不包含复杂工作流。流。4.数据映射层:负责将基于对象的领域层数据映射到数据库关系数据映射层:负责将基于对象的领域层数据映射到数据库关系表中的记录。也称为数据持久层,可自行开发或采用持久化框表中的记录。也称为数据持久层,可自行开发或采用持久化框架。架。5.数据访问层:负责数据库表的增删改查等操作。持久化框架数据访问层:负责数据库表的增删改查等操作。持久化框架中包含该层组件。中包含该层组件。第十九页,讲稿共一百五十四页哦4.MVC架构模式架构模式l模型(模型(Model)代表数据,使用对象及其属性实现。代表数据,使用对象及其属性实现。l控制器(控制器(Controller)是模型与视图的联系纽带,客户的请求由控制器处理,它根据是模型与视图的联系纽带,客户的请求由控制器处理,它根据客户的请求调用模型的方法,完成数据更新,然后调用视图的客户的请求调用模型的方法,完成数据更新,然后调用视图的方法将响应结果展示给客户。相应的,模型的更新与修改将通方法将响应结果展示给客户。相应的,模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性过控制器通知视图,保持视图与模型的一致性l视图(视图(View)是模型的外在表现形式,视图可以直接访问模型;查询数据信是模型的外在表现形式,视图可以直接访问模型;查询数据信息,当模型中数据发生变化时,它会通知视图刷新界面,显示息,当模型中数据发生变化时,它会通知视图刷新界面,显示更新后的数据。更新后的数据。第二十页,讲稿共一百五十四页哦MVC架构示意图架构示意图lMVC模式和三层模式有共同特点(业务逻辑、数据和表模式和三层模式有共同特点(业务逻辑、数据和表示的分离),但不完全遵守分层约定。示的分离),但不完全遵守分层约定。第二十一页,讲稿共一百五十四页哦MVC架构模式工作流程架构模式工作流程控制器对象负责页面转向,控制器对象负责页面转向,并传递页面数据并传递页面数据第二十二页,讲稿共一百五十四页哦5.多层的物理配置多层的物理配置l由于应用软件封装成不同层次的独立组件,这给软件部署由于应用软件封装成不同层次的独立组件,这给软件部署带来了灵活性:带来了灵活性:物理一层:所有应用软件的组件都安装配置在一台机器上。比物理一层:所有应用软件的组件都安装配置在一台机器上。比如全部如全部WebWeb程序、程序、DBMSDBMS都在都在WebWeb服务器上。服务器上。物理两层:应用软件的组件配置在两台机器上,比如一部分安装在物理两层:应用软件的组件配置在两台机器上,比如一部分安装在客户端,另一部分配置在应用服务器上。客户端,另一部分配置在应用服务器上。物理多层:客户端、一台或多台应用服务器、数据库服务器,物理多层:客户端、一台或多台应用服务器、数据库服务器,即多台服务器的方式,这是分布式结构的一种形式。即多台服务器的方式,这是分布式结构的一种形式。第二十三页,讲稿共一百五十四页哦多层体系结构的优势多层体系结构的优势l客户对数据的访问通过中间层进行了隔离,数据库的安客户对数据的访问通过中间层进行了隔离,数据库的安全性提高了。全性提高了。l应用程序分布部署在多个物理节点上成为可能,从而增应用程序分布部署在多个物理节点上成为可能,从而增强了处理大量的用户负载或计算任务的能力,系统可靠强了处理大量的用户负载或计算任务的能力,系统可靠性和响应速度得到了提高。性和响应速度得到了提高。l业务逻辑处于不同的中间服务器,当业务规则变化后,业务逻辑处于不同的中间服务器,当业务规则变化后,客户端程序基本不做改动,当组件接口不变时,某一层客户端程序基本不做改动,当组件接口不变时,某一层的改动不会影响其它层,这也意味着更好的重用和可维的改动不会影响其它层,这也意味着更好的重用和可维护性(如从窗口界面变更到护性(如从窗口界面变更到Web界面)。界面)。l将不同层的开发任务在开发者之间适当地分配(如一些将不同层的开发任务在开发者之间适当地分配(如一些人专注页面表现,另一些人专注于业务逻辑),有效地人专注页面表现,另一些人专注于业务逻辑),有效地利用开发人员的专长和开发技巧,并且能够提高并行开利用开发人员的专长和开发技巧,并且能够提高并行开发能力。发能力。第二十四页,讲稿共一百五十四页哦11.1.3软件框架软件框架l“不要重复发明轮子不要重复发明轮子”l软件复用:软件复用:从代码角度(开发态)看有子过程、函数、类等从代码角度(开发态)看有子过程、函数、类等从部署角度(运行态)看有类库、从部署角度(运行态)看有类库、WebWeb服务等二进制可执行组件、服务等二进制可执行组件、中间件和平台中间件和平台l架构模式同样可以复用,当架构模式的复用形式不仅仅停留架构模式同样可以复用,当架构模式的复用形式不仅仅停留在逻辑层面,而以物理的二进制组件的方式提供重用时,就在逻辑层面,而以物理的二进制组件的方式提供重用时,就产生了框架。产生了框架。第二十五页,讲稿共一百五十四页哦1.软件框架的概念软件框架的概念l软件框架(软件框架(softwareframework)是对整个或部分系统可)是对整个或部分系统可重用的重用的设计和实现设计和实现。l框架可以选择对某种架构模式的基本结构和接口机制框架可以选择对某种架构模式的基本结构和接口机制进行编程实现,不仅封装该架构模式的基本元素对外进行编程实现,不仅封装该架构模式的基本元素对外提供类库,还封装底层公用的流程控制逻辑,从而直提供类库,还封装底层公用的流程控制逻辑,从而直接为应用软件提供了最初的骨架。接为应用软件提供了最初的骨架。l框架就是一个半成品软件平台,软件框架和应用软件:框架就是一个半成品软件平台,软件框架和应用软件:八股文八股文/元芳体元芳体 与与 具体文章具体文章汽车流水线汽车流水线 与与 汽车汽车第二十六页,讲稿共一百五十四页哦基于框架的软件开发基于框架的软件开发l引入软件框架之后,整个开发过程变成了引入软件框架之后,整个开发过程变成了“分三步走分三步走”:决定应用架构决定应用架构选择实现应用架构的框架选择实现应用架构的框架基于框架之下编写程序(简单、统一)基于框架之下编写程序(简单、统一)l优点:优点:代码具有相同规范和结构,易于理解和维护;提高效率;更稳定更代码具有相同规范和结构,易于理解和维护;提高效率;更稳定更可靠。可靠。l局限:局限:囿于框架所限定的囿于框架所限定的“框框框框”之内构建应用程序,比较死板,缺乏之内构建应用程序,比较死板,缺乏灵活性灵活性第二十七页,讲稿共一百五十四页哦典型框架产品典型框架产品l支持支持MVC架构模式的框架:架构模式的框架:nJavaJava开源开源MVCMVC框架框架StrutsStrutsn微软平台的微软平台的MVC4MVC4框架框架nPHPPHP的的ZendZend框架框架l多种框架产品的组合使用:多种框架产品的组合使用:n如如SSHSSH(StrutsStruts、SpringSpring、HibernateHibernate)第二十八页,讲稿共一百五十四页哦Struts2简介简介lMVC:ViewView:由:由JSPJSP页面实现页面实现ModelModel:由自行编写的:由自行编写的ActionAction对象完成,对象完成,ActionAction类就是一个普通的类就是一个普通的JavaJava类,里面类,里面封装了领域对象的属性和方法,可以用于存取数据和执行有关业务逻辑。属性和封装了领域对象的属性和方法,可以用于存取数据和执行有关业务逻辑。属性和方法也可以分开到不同类中。方法也可以分开到不同类中。ControllerController:由:由Struts2Struts2的内置过滤器(的内置过滤器(dispatcher filterdispatcher filter)、拦截器)、拦截器(interceptorinterceptor)或自行编写的拦截器来实现,过滤器和拦截器可以截获)或自行编写的拦截器来实现,过滤器和拦截器可以截获JSPJSP页面请求,解析页面请求,解析httphttp请求中的参数,赋值给请求中的参数,赋值给ActionAction对象中对应的属性,还对象中对应的属性,还可以在调用可以在调用ActionAction之前或之后进行预处理或后处理。之前或之后进行预处理或后处理。第二十九页,讲稿共一百五十四页哦11.2高层结构设计高层结构设计l高层结构讨论系统比较大的组成部件(如包、构件、子系统高层结构讨论系统比较大的组成部件(如包、构件、子系统等)及其接口设计。等)及其接口设计。l11.2.1包包l11.2.2子系统及接口子系统及接口l11.2.3构件及接口构件及接口第三十页,讲稿共一百五十四页哦11.2.1包包l包(包(Package)是一种)是一种逻辑分组逻辑分组手段,可以取手段,可以取UML模型模型中的任何一种事物,将相关成分聚在一起,以构成更中的任何一种事物,将相关成分聚在一起,以构成更高层的组织单元高层的组织单元包。包。l最常用的方法是将类以包为单位进行分组,比如上一节提到最常用的方法是将类以包为单位进行分组,比如上一节提到的层,每一层中的所有类组成一个包。的层,每一层中的所有类组成一个包。l一个包可以包含其它的包,高层包被分成若干子包,子包一个包可以包含其它的包,高层包被分成若干子包,子包又可以在分成更小的包。又可以在分成更小的包。但在但在JavaJava中,包还指代了物理的组织手段中,包还指代了物理的组织手段第三十一页,讲稿共一百五十四页哦如何分包如何分包l分包(软件类的分组)有两种原则:分包(软件类的分组)有两种原则:共同封闭原则(共同封闭原则(Common Closure PrincipleCommon Closure Principle)。一个包中的各个)。一个包中的各个类应该是由于相似的原则而改变,即将一组职责相似、但以不同类应该是由于相似的原则而改变,即将一组职责相似、但以不同方式实现的类归为一个包中。比如按照层来进行分包就是这种类方式实现的类归为一个包中。比如按照层来进行分包就是这种类型。型。共同复用原则(共同复用原则(Common Reuse PrincipleCommon Reuse Principle)。一个包中的各个)。一个包中的各个类应该一起被复用,复用其中一个可能需要同时考虑同一个包中的类应该一起被复用,复用其中一个可能需要同时考虑同一个包中的其它协作类。通常和业务功能相关。其它协作类。通常和业务功能相关。第三十二页,讲稿共一百五十四页哦包图包图l包图用来描述包及其依赖关系。包图用来描述包及其依赖关系。l当表现层包中的类要使用领域包中的领域类提供当表现层包中的类要使用领域包中的领域类提供的服务时,表示包就依赖于领域包。的服务时,表示包就依赖于领域包。第三十三页,讲稿共一百五十四页哦11.2.2子系统及接口子系统及接口l当按照相对完整和独立的业务功能或管理职能组织包,当按照相对完整和独立的业务功能或管理职能组织包,并对这样的包进行封装后,一个高层的具有特定功能并对这样的包进行封装后,一个高层的具有特定功能的可以运行的独立构件就产生了,称为子系统的可以运行的独立构件就产生了,称为子系统(Subsystem)。)。l子系统对外可以提供有限的接口,只要接口不改变,不子系统对外可以提供有限的接口,只要接口不改变,不管子系统内部发生什么变化,也不会影响到依赖于该子管子系统内部发生什么变化,也不会影响到依赖于该子系统接口的其它子系统。系统接口的其它子系统。l子系统及其关系使用子系统及其关系使用UML构件图(构件图(componentdiagram)描述。)描述。第三十四页,讲稿共一百五十四页哦理解接口概念理解接口概念l词典释义词典释义两个不同系统两个不同系统(或子程序或子程序)交接并通过它彼此作用的部分。交接并通过它彼此作用的部分。l人类与计算机之间的接口称为用户接口。人类与计算机之间的接口称为用户接口。l计算机硬件元件间的接口叫硬件接口。计算机硬件元件间的接口叫硬件接口。l计算机软件元件间的接口叫软件接口。计算机软件元件间的接口叫软件接口。内部接口:系统内部各元件间的接口内部接口:系统内部各元件间的接口外部接口:系统对外提供给其他系统使用的接口外部接口:系统对外提供给其他系统使用的接口APIAPI:应用编程接口(:应用编程接口(Application Programming InterfaceApplication Programming Interface),),一种应用程序提供的外部接口的说法一种应用程序提供的外部接口的说法第三十五页,讲稿共一百五十四页哦区分子系统和包区分子系统和包l子系统与包在语义上具有差异:子系统与包在语义上具有差异:子系统是一种通过一个或多个它所实现的接口来提供行为的子系统是一种通过一个或多个它所实现的接口来提供行为的软件单位,可运行,具有物理意义。软件单位,可运行,具有物理意义。包并不提供行为,包只不过是用来容纳各种其他模型元素的容器,包并不提供行为,包只不过是用来容纳各种其他模型元素的容器,一般是逻辑意义上的。一般是逻辑意义上的。第三十六页,讲稿共一百五十四页哦子系统的关系子系统的关系l财务子系统将内部操作进行了封装,但对外提供必要的财务子系统将内部操作进行了封装,但对外提供必要的接口(比如一组函数)接口(比如一组函数)l销售子系统在执行销售业务过程中可以使用该接口对销售子系统在执行销售业务过程中可以使用该接口对销售数据执行某些财务操作。对于销售子系统而言,销售数据执行某些财务操作。对于销售子系统而言,依赖的是财务子系统的接口,并不需要关心财务子系依赖的是财务子系统的接口,并不需要关心财务子系统的具体实现。统的具体实现。l采用采用UML2.0的构件图表示如下:的构件图表示如下:第三十七页,讲稿共一百五十四页哦子系统的关系子系统的关系l子系统之间的关系:子系统之间的关系:数据接口:定义相互可以理解的数据格式和数据文件,子系数据接口:定义相互可以理解的数据格式和数据文件,子系统之间采用数据文件进行通信。统之间采用数据文件进行通信。服务接口:定义相互可以理解的软件服务(操作、消息),子系统服务接口:定义相互可以理解的软件服务(操作、消息),子系统之间采用发送服务请求和响应来进行通信。之间采用发送服务请求和响应来进行通信。l思考:思考:教务管理系统(基础数据子系统、排课子系统、成绩管理子教务管理系统(基础数据子系统、排课子系统、成绩管理子系统、毕设管理子系统),各子系统是否有关系?系统、毕设管理子系统),各子系统是否有关系?第三十八页,讲稿共一百五十四页哦不同系统的关系不同系统的关系l子系统及接口关系也可以扩展到不同系统及接口关系,子系统及接口关系也可以扩展到不同系统及接口关系,如学籍管理系统与其他系统的关系如学籍管理系统与其他系统的关系需要服务:高招系统(获取学生信息)、教委学位系统(学位数据需要服务:高招系统(获取学生信息)、教委学位系统(学位数据上报)上报)本系统需要提供的服务:提供学生学籍信息本系统需要提供的服务:提供学生学籍信息l同样可采用同样可采用UML构件图描述:构件图描述:学籍管理系统学籍管理系统高招系统高招系统教委系统教委系统发布录取学生发布录取学生学位授予上报学位授予上报档案系统档案系统提供学籍信息提供学籍信息第三十九页,讲稿共一百五十四页哦11.2.2构件及接口构件及接口l构件(构件(component)是系统中实际存在的可更换部分,)是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。它实现特定的功能,符合一套接口标准并实现一组接口。l构件是可复用的软件组成成份,可被用来构造其他软件。构件是可复用的软件组成成份,可被用来构造其他软件。在系统中采用构件在系统中采用构件软软件件程序不需要重新编译,也不需要构件自身程序不需要重新编译,也不需要构件自身的的源代码源代码并且不局限于某一种编程语言,所以构件的复用也称并且不局限于某一种编程语言,所以构件的复用也称为二进制复用(为二进制复用(binary reusebinary reuse),因为它是建立在接口而不是),因为它是建立在接口而不是源源代码代码级别的复用。级别的复用。l构件及其关系使用构件及其关系使用UML构件图描述。构件图描述。第四十页,讲稿共一百五十四页哦构件图构件图1l构件之间存在依赖关系:构件之间存在依赖关系:DataAccessDataAccess构件用于实现数据存取访问,对外提供接口名为构件用于实现数据存取访问,对外提供接口名为SearchInDBSearchInDB(查询数据库,接口参数等细节省略)。(查询数据库,接口参数等细节省略)。BookBook构件实现图书的管理,对外提供构件实现图书的管理,对外提供SearchBookSearchBook(查询图书)(查询图书)和和ExportToXmlExportToXml(导出图书为(导出图书为XMLXML文件)两个接口。文件)两个接口。BookBook构件需要使用构件需要使用DataAccessDataAccess构件提供的接口,构件提供的接口,即即构件构件BookBook依赖于依赖于DataAccessDataAccess构件。构件。DataAccessBookSearchBookExportToXmlSearchInDB第四十一页,讲稿共一百五十四页哦区分子系统和构件区分子系统和构件l子系统和构件在结构上具有差异:子系统和构件在结构上具有差异:子系统是一个系统,是有特定功能的整体,可以直接使用,子系统是一个系统,是有特定功能的整体,可以直接使用,不会被复用。不会被复用。构件只是构成系统的元素,不具备单独使用的能力,用于复构件只是构成系统的元素,不具备单独使用的能力,用于复用。用。第四十二页,讲稿共一百五十四页哦11.3面向对象设计方法面向对象设计方法l10.4.1根据架构设计软件类根据架构设计软件类l10.4.2设计类的属性设计类的属性l10.4.3设计类的方法设计类的方法l10.4.4设计类的关系设计类的关系第四十三页,讲稿共一百五十四页哦11.3.1根据架构设计软件类根据架构设计软件类l一种一种3层的分层模式:层的分层模式:n从分析模型的领域类导出设计阶段中的实体类从分析模型的领域类导出设计阶段中的实体类n增加边界类和控制类完成程序的交互和控制。增加边界类和控制类完成程序的交互和控制。n为了分辨出类的这三种不同类型,可以采用为了分辨出类的这三种不同类型,可以采用UML提供的提供的扩展机制扩展机制构造型(构造型(stetreotype)及其表达符号来)及其表达符号来定义模型元素构造型定义模型元素构造型第四十四页,讲稿共一百五十四页哦Rose中不同构造型的图符中不同构造型的图符系统边界系统边界对象行为对象行为的控制和协调的控制和协调系统服务和信息系统服务和信息第四十五页,讲稿共一百五十四页哦分层的软件类协作实现一个用例分层的软件类协作实现一个用例第四十六页,讲稿共一百五十四页哦1、边界类、边界类l边界类的职责是完成系统与其参与者之间的交互。边界类的职责是完成系统与其参与者之间的交互。接收来自用户和外部系统的信息与请求接收来自用户和外部系统的信息与请求将信息与请求提交给用户和外部系统将信息与请求提交给用户和外部系统l通过用例图可以得知每个边界类至少应该与一个参与通过用例图可以得知每个边界类至少应该与一个参与者有关,参与者类型不同,边界类的设计也不同者有关,参与者类型不同,边界类的设计也不同l边界类包括屏幕窗口、通信接口、打印机接口、传感器、边界类包括屏幕窗口、通信接口、打印机接口、传感器、终端以及专用终端以及专用API(应用程序编程接口)等软件对象。(应用程序编程接口)等软件对象。对于图书馆系统来说,参与者都是系统用户,因此边界类只有对于图书馆系统来说,参与者都是系统用户,因此边界类只有窗口界面这一种形式。窗口界面这一种形式。假如考虑提供馆际互借业务,那么系统就会产生与其它外部合假如考虑提供馆际互借业务,那么系统就会产生与其它外部合作的图书馆系统的交互,这时与外部系统间的通信接口也是一作的图书馆系统的交互,这时与外部系统间的通信接口也是一种边界类种边界类第四十七页,讲稿共一百五十四页哦识别边界类识别边界类:图书管理员:图书管理员 boundary:借书用户界面:借书用户界面图书管理员图书管理员借出图书借出图书l根据用例图,每个参与者与一个用例交互,必定导出一个边根据用例图,每个参与者与一个用例交互,必定导出一个边界类界类第四十八页,讲稿共一百五十四页哦图书馆系统的用例图图书馆系统的用例图第四十九页,讲稿共一百五十四页哦2、实体类、实体类l实体类来源于领域模型中的类。实体类来源于领域模型中的类。l实体类是一个软件对象,表示了领域对象的信息,以及具有实体类是一个软件对象,表示了领域对象的信息,以及具有与它所表示的信息有关的操作。与它所表示的信息有关的操作。l实体类反映的信息需要在系统中进行处理,并需要进行实体类反映的信息需要在系统中进行处理,并需要进行持久化存储。持久化存储。持久化存储可以由实体类来实现,也可以持久化存储可以由实体类来实现,也可以设计专门的数据访问类来完成。设计专门的数据访问类来完成。第五十页,讲稿共一百五十四页哦边界类和实体类的交互边界类和实体类的交互l边界类仅负责数据的输入和输出,不应承担和数据处理有边界类仅负责数据的输入和输出,不应承担和数据处理有关的业务逻辑,可负责部分不太复杂的数据校验功能(如关的业务逻辑,可负责部分不太复杂的数据校验功能(如非空检查、多个输入域之间的约束和联动)。非空检查、多个输入域之间的约束和联动)。l边界类通过与实体类的交互,获得有关数据处理的结边界类通过与实体类的交互,获得有关数据处理的结果果:图书管理员:图书管理员验证验证 boundary:借书用户界面:借书用户界面 entity:读者:读者第五十一页,讲稿共一百五十四页哦3、控制类、控制类l控制类代表协调、排序、事务处理以及对其它对象的控制,控制类代表协调、排序、事务处理以及对其它对象的控制,经常用于封装与某个具体用例有关的控制流。经常用于封装与某个具体用例有关的控制流。l控制类处理和协调用例事件流中的主要动作和控制流,并控制类处理和协调用例事件流中的主要动作和控制流,并将部分任务委派给其它对象。将部分任务委派给其它对象。l根据分层原则,控制类不封装与参与者交互有关的内容,也根据分层原则,控制类不封装与参与者交互有关的内容,也不封装与系统处理的长效持久的信息有关的问题,这些问题不封装与系统处理的长效持久的信息有关的问题,这些问题分别由边界类和实体类进行封装。分别由边界类和实体类进行封装。第五十二页,讲稿共一百五十四页哦识别控制类识别控制类l当用例逻辑较为复杂,并涉及到多个实体类时,可以当用例逻辑较为复杂,并涉及到多个实体类时,可以考虑采用控制类考虑采用控制类l简化方案:控制类的职责合并给边界类简化方案:控制类的职责合并给边界类获取获取验证验证:图书管理员:图书管理员创建创建 boundary:借书用户界面:借书用户界面 control:借书控制类:借书控制类 entity:读者:读者 entity:资源项目:资源项目 entity:借书记录:借书记录第五十三页,讲稿共一百五十四页哦不同类的职责分配不同类的职责分配向下依赖的关系:向

    注意事项

    本文(面向对象系统设计精选PPT讲稿.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开