信息系统分析与设计-第8章 面向对象分析.ppt
《信息系统分析与设计-第8章 面向对象分析.ppt》由会员分享,可在线阅读,更多相关《信息系统分析与设计-第8章 面向对象分析.ppt(188页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 面向对象系统分析本章主要内容面向对象方法的优势面向对象方法的基本概念UML概况需求建模用例分析、用例图、用例描述面向对象分析模型对象分析、类图8.1 面向对象方法的基本概念对象、类、属性和操作封装、隐藏消息继承多态关系面向对象的基本思想从面向对象的角度来看,世界就是由对象组成的。任何给定的商业功能都是由一整套共同工作的对象互相协作来完成的。程序由一组实例对象互相通信完成特定功能。1、对象(Object)现代汉语词典(商务印书馆,1996)的解释是:对象是行动或思考时作为目标的人或事物。广义地讲,对象可以是任何人或事物。对象是一些属性及专用服务的封装体,它是问题域中一些事物的抽象。这些属
2、性的值刻画了一个对象的状态;这些操作是对象的行为,通过它们改变对象的状态(即属性值)属性:属性:高度高度总重量总重量燃料成分燃料成分燃料重量燃料重量搭乘物搭乘物操作:操作:点火点火轨道运行轨道运行返回返回countercounter valuevalueinit()init()decdec()()inc()inc()一个计数器对象:一个计数器对象:属性:属性:值值操作:操作:清空清空 加加1 1 减减1 1对象举例医疗保险账户医疗保险账户属性:属性:姓名:张三姓名:张三年度:年度:20052005医保号:医保号:100100195009090090100100195009090090累计账户拨
3、入金额:累计账户拨入金额:1800.001800.00累计账户支付金额:累计账户支付金额:230.50230.50最高统筹限额:最高统筹限额:50000.0050000.00累计统筹支付金额:累计统筹支付金额:680.00680.00操作:操作:查询余额查询余额拨入资金拨入资金支付费用支付费用年度结转年度结转对象举例对象的属性属性是类的特征或特性属性的值是某一特定对象的属性值在类中属性名必须是唯一的每一个类的实例都有为这个类定义的所有属性的值属性取决于视点 从销售人员的角度 型号 价格 颜色 里程数一辆汽车具有的属性一辆汽车具有的属性:从维修人员的角度 马达类型 传动类型 维修记录对象的操作对
4、象的行为是由为此对象定义的一系列操作决定的操作访问或修改对象的属性值一个类可能同时存在多个实例,也可能在某一时刻没有实例一个类的所有实例都可以使用在这个类中定义的操作 从销售人员的角度 处理客户定单准备销售合同加入清单从清单中删除一辆汽车具有的操作一辆汽车具有的操作:从维修人员的角度 测试刹车修理刹车转动轮胎检查马达速度操作取决于视点2、类(Class)对象类(Object class)简称类,是指有相同属性和服务的一组对象的集合。类的概念体现了人类常用的一种思维方式抽象,类就是对一组对象的抽象表示,同样包含属性和服务两个部分。实例(Instance):一个具体的对象就是该对象所在类的一个实例
5、类是抽象虚无的,实例是具体实在的(如个人账户与我的个人账户)在程序运行过程中根据类定义来创建实例,每个实例互不干扰,各自有自己独立的存储空间,保存自己特有的属性。(如同数据类型和变量的关系)类举例个人账户个人账户NameIncomePaymentLimitationUsedLimitationGetBalance()Save()Pay()CarryForward()类名类名属性属性操作操作张三的个人账户张三的个人账户张三张三1800.00230.5050000.00680.00GetBalance()Save()Pay()CarryForward()对象名对象名属性属性操作操作区分对象和类同类
6、对象具有相同的属性和服务,是指它们的定义形式相同,即具有相同的属性项和行为方式,而不是说每个对象的属性值都相同。类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。对象是动态的,对象在程序执行时可以被创建和删除。计算机中一个对象通常就是指一个实例有的场合不作区分抽象类和接口抽象类(abstract class)用来表征我们在对问题领域进行分析、设计中得出的抽象概念。如如圆、三角形属于“形状”这样一个抽象概念。接口(interface)是抽象类的变体。接口是一些方法的集合,但所有方法都是抽象的,只有声明而没有程序体。其他类需要实现某个接口时才对这个接口的所有方法进行定义。比如很多物体都有
7、“开”和“关”的操作,但对于不同的对象类是抽象的行为,具体实现由不同的物体来定义,如电灯的开、关和门的开、关。3、封装(Encapsulation)封装即信息隐藏,它保证软件部件具有较好的模块性。设计软件总体结构时,应尽量封装为独立的模块,每个模块对外提供接口,而尽可能少地显露其内部处理逻辑。(黑箱)对象是更高一个级别的封装体,它把数据和服务封装于一个内在的整体。对象向外提供某种界面(接口),可能包括一组数据(属性)和一组操作(服务),而把内部的实现细节(如函数体)隐蔽起来。良好封装的好处封装使对象对外仅提供接口,即可见的一些属性和操作,而具体实现是不可见的。开发人员一旦设计好对象的界面(接口
8、)后,不需要等待该对象全部完成就可以进行后续开发,实现并行工作;只要对象接口不变,对象内部逻辑的修改不会影响其他部件,便于复用,也减少了因修改引起的“水波效应”;严密的接口保护,使对象的属性或服务不会随意地被使用,对象的状况易于控制,可靠性随之增强。4、继承(Inheritance)继承是指特殊类的对象拥有其一般类的全部属性与服务一般类/特殊类、父类/子类、超类/子类、基类/派生类等都是相同的概念。可以简化系统的描述和实现,较好地实现软件重用,提高效率。子类(特殊类)可以继承父类(一般类)的属性和操作,也可以重新定义特殊行为。继承可分为单继承和多继承,单继承是指子类只从一个父类继承,多继承是指
9、子类从多个父类继承。继承举例PersonStudentFacultyStaff继承下去继承下去5、多态(Polymorphism)多态性又叫多形性,指相同的操作(或函数,或过程)可作用于多种类型的对象并获得不同的结果。在OOP中多态的实现有两种方法:由覆盖(override)实现动态多态,子类对父类的方法进行重写,称为运行时多态,展示的是父类及其多个不同子类的多态性。由重载(overload)实现的静态多态,即利用重载技术在一个类中定义多个名称相同、参数类型不同的方法,称为编译时多态,是一个类中操作多态性的表现。PRINTPRINTPRINTTEXT objectGRAPH objectIMA
10、GE objectGraphDraw()CircleDraw()RectangleDraw()多态举例多态的好处多态性一般需要建立在继承机制之上。1.当给不同子类型的对象发送相同的消息时,消息的发送者可以不用关心具体的对象类型,而由对象自身做出不同的响应处理。2.需要扩充一种新类型时,只需要从父类中再派生出一个子类,覆盖父类的某些服务,而不需要改动其他外部程序。3.多态性极大地提高了重用性和灵活性,对象的使用和理解也得以简化。6、消息(Message)消息是指向对象发出的服务请求(对象间的交互信息)。一个对象向另一个对象发消息请求某项服务,接收消息的对象响应该消息,激发所要求的服务操作,并把操
11、作结果返回给请求服务的对象。一个消息应当包含以下信息:消息名、接收消息对象的标识、服务类型、输入信息、回答消息。采用消息(而不是函数调用)这个术语的好处:1、更接近人们日常思维所采用的术语,符合对象的独立自治原则;2、在分布式环境中,对象可以在不同的网络结点上相互提供服务,消息具有更强的适应性。7、关系(Relationship)类之间的联系方式:(1)继承/泛化(generalization):类之间的关系是指对象分类的层次关系,继承关系对于类中的所有对象都成立,而不特指某个具体对象。(2)实现(realization):即描述和实现。一个接口可以提供某些操作的描述,另一些类需要具体来完成这
12、些操作,即对接口进行实现。对象关系则是存在于具体对象实例之间的联系:(3)关联(association):表达对象与对象的静态联系,是一种长期关系,比如整体和部分关系。(4)依赖(dependency):表达对象与对象的动态联系(运行时),是一种短期关系。8、重用(Reuse)对象具有封装性和信息隐蔽等特性,使其容易实现软件重用一般对象类可以派生出新类,类可以产生实例对象,从而实现了对象类的数据结构和操作代码的复用复杂类可以分解为简单类的组装结构,这些简单类又可以重复成为多个对象类的组成元素面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供大量公用程序代码,避免重复编写,提高了开发
13、效率和质量面向对象分析与设计对于结构化分析与设计和面向对象的分析与设计来说,信息系统开发的生命周期是相同的,都要经过规划、分析、设计和实施,所不同的是建立的模型和采用的建模技术。结构化分析与设计注重对过程进行建模,面向对象的分析与设计则强调对事物和它们的交互建模。UML是OO方法的标准建模语言8.2 UML概述什么是UMLUML可以做什么UML包含哪些内容UML工具软件1、UML是什么统一建模语言 Unified Modeling LanguageUML是一个通用的可视化建模语言Unified Modeling LanguageUnified Modeling Language(统一建模语言)
14、是对(统一建模语言)是对象管理组织象管理组织(OMGOMG)制定的一个制定的一个通用通用的、的、可视化可视化的的建建模语言模语言标准,可以用来标准,可以用来可视化可视化(visualizevisualize)、描述描述(specifyspecify)、)、构造构造(constructconstruct)和)和文档化文档化(documentdocument)软件密集型系统的各种工件)软件密集型系统的各种工件(artifactsartifacts,又译制品),又译制品)UML的历史Booch methodOMTUnified Method 0.8OOPSLA 95OOSEOther methods
15、UML 0.9Web-June 96 UML 1.0UML partnerspublicfeedback1989-19941989-1994期间,期间,OOOO方法从不足方法从不足1010种增加到种增加到5050多种多种 2004Final submission to OMG,Nov 97First submission to OMG,Jan 97UML 1.1OMG Acceptance,Nov 1997 Fall 1998UML 1.3UML2.0UML2.0UML的创始人UML是由世界著名的面向对象技术专家G.Booch、J.Rumbaugh 和 I.Jacobson发起,在Booch方
16、法、OMT方法和OOSE方法的基础上,广泛征求意见,集众家之长,几经修改而完成的。Three amigosBooch Rumbaugh JacobsonUML的特点统一了面向对象方法的表示表示能力强大,可用于各种软件系统建模,以及其他系统建模,如商业系统与开发过程无关允许扩展本身不设计特点语言的语法及规则,但可对应到各种OOP语言框架UML和OOA、OODUML既不是方法论,也不是一种开发过程,而是面向对象系统分析与设计的建模语言,是一种语言工具。如同英语充当国际交流的工具一样OOA&OOD是方法论,该方法论的实践过程中需要使用UML的图符,使用时还必须遵循一定的原则及步骤。图图图diagra
17、ms类图类图class diagrams对象图对象图object diagrams构件图构件图component diagrams部署图部署图deployment diagrams用例图用例图use case diagrams顺序图顺序图sequence diagrams协作图协作图collaboration diagrams状态图状态图statechart diagrams活动图活动图activity diagrams静态模型静态模型(系统结构系统结构)动态模型动态模型(系统行为系统行为)4+1视图-1Process ViewProcess ViewDeployment ViewDeploy
18、ment ViewLogical ViewLogical ViewUse-Case ViewUse-Case ViewImplementation ViewImplementation ViewEnd-user FunctionalityProgrammers Software management PerformanceScalabilityThroughput System integratorsSystem topology Delivery,installationcommunicationSystem engineeringAnalysts/DesignersStructure 视图
19、的另眼解读视图的另眼解读-1 视图的另眼解读视图的另眼解读-2 4+1视图-2Use Case ViewEnd-user:Functionality这些视图由用例视图所统一,它描述项目干系人(stakeholder)的需求;所有其他视图都是从用例视图派生而来,该视图把系统的基本需求捕获为用例并提供构造其他视图的基础Logical View Analysts/Designers:Structure系统功能和词汇;描述问题域的词汇,作为类和对象的集合。重点是展示对象和类是如何组成系统、实现所需系统行为的4+1视图-3Process View System integrators:Performan
20、ce,Scalability,Throughput系统性能、可伸缩性和吞吐量;建模在我们系统中的可执行线程和进程作为活动类。其实,它是逻辑视图面向进程的变体,包含所有相同的制品Implementation ViewProgrammers:Software Management系统组装和配置管理;对组成基于系统的物理代码的文件和构件进行建模。它同样展示出构件之间的依赖,展示一组构件的配置管理以定义系统的版本Deployment View System engineering:System Topology,Delivery,Installation,Communication系统的拓扑结构、分布
21、、移交和安装;建模把构件物理地部署到一组物理的、可计算节点上,如计算机和外设上。3、UML中的图对整个系统而言:功能由用例图描述。静态结构由类图和对象图描述。动态行为由状态图、顺序图、协作图和活动图描述。物理架构则是由构件图和部署图描述。用例图Use Case Diagram用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。是从外部执行者的角度来描述系统提供的功能。购买货品购买货品归还货品归还货品出租货品出租货品报废货品报废货品店员店员类图Class Diagram类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。对象图Object Di
22、agram对象图描述了一组对象以及它们之间的关系,表示类的对象实例。对象图是对类图一种实例化。是系统某个时期可能存在的具体对象实例。aLoan2:借书记录借书记录借书日期借书日期=2006-04-16应还日期应还日期=2006-06-16还书日期还书日期=2006-06-10aItem3:图书图书序号序号=003状态状态=租出租出aReader:读者读者编号编号=042440101姓名姓名=张三张三aLoan1:借书记录借书记录借书日期借书日期=2006-04-16应还日期应还日期=2006-06-16还书日期还书日期=2006-05-8aItem2:图书图书序号序号=001状态状态=在库在库
23、aItem1:图书图书流水号流水号=001状态状态=租出租出aTitle:图书品种:图书品种索书号索书号=TP21108馆藏数量馆藏数量=3可借数量可借数量=2状态图StateChart Diagram状态图表示一个状态机,强调对象行为的事件顺序。是对类的补充,展示此类对象可能的状态和发生某些事件时其状态的转移情况。在馆内在馆内状态=在馆借出归还淘汰图书购买图书正常正常状态=借出超过期限借出借出超期超期通知读者活动图Activity Diagram活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。核对借书记录核对借书记录检查借出图书损坏情况检查借出图书损坏情况严重损坏严重损坏
24、删除该图书删除该图书修改图书状态修改图书状态是是否否记录借书记录记录借书记录的还书日期的还书日期顺序图Sequence Diagram&协作图Collaboration Diagram顺序图和协作图均表示一组对象之间的动态协作关系,其中顺序图反映对象之间发送消息的时间顺序,协作图反映收发消息的对象的结构组织。顺序图和协作图是同构的,即两者之间可以相互转换。构件图Component Diagram构件图描述程序代码的组织结构。构件以及它们之间的依赖关系,表示系统的静态实现视图。CourseCourseOfferingStudentProfessorCourse.dllPeople.dllCour
25、seUserRegister.exeBilling.exeBillingSystemUML2.0中的构件图部署图Deployment Diagram部署图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中构件的配置。瘦客瘦客户端户端Web服务器服务器(HP6000)应用应用服务器服务器(HP6000)数据库数据库服务器服务器(IBM7100)HTTPTCP/IPTCP/IP管理员管理员客户端客户端TCP/IP5、UML建模工具Rational Rose 98、20002003(UML1.3)Rational Software Architect(UML2.0)Microsof
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息系统分析与设计-第8章 面向对象分析 信息 系统分析 设计 面向 对象 分析
限制150内