《面向对象分析与设计 课件.ppt》由会员分享,可在线阅读,更多相关《面向对象分析与设计 课件.ppt(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向面向面向面向对对象分析与象分析与象分析与象分析与设计设计 第1页,此课件共87页哦本章重点本章重点面向对象方法产生和发展面向对象方法产生和发展面向对象方法产生和发展面向对象方法产生和发展 1面向对象方法的基本概念面向对象方法的基本概念面向对象方法的基本概念面向对象方法的基本概念 2统一建模语言统一建模语言统一建模语言统一建模语言 3面向对象设计面向对象设计面向对象设计面向对象设计 5面向对象分析和设计案例面向对象分析和设计案例面向对象分析和设计案例面向对象分析和设计案例6面向对象分析面向对象分析面向对象分析面向对象分析 4第2页,此课件共87页哦11.1面向对象方法的形成与发展面向对象方法
2、的形成与发展 11.1.111.1.1面向对象方法的发展史面向对象方法的发展史l2020世纪世纪6060年代末,年代末,Simula67Simula67语言。语言。l7070年代到年代到8080年代,年代,SmalltalkSmalltalk语言。语言。l8080年代中期到年代中期到9090年代,年代,C+C+,Object PascalObject Pascal、JavaJava等。等。l8080年代后年代后 ,BoochBooch提出的提出的BoochBooch方法;方法;JacobsonJacobson提出的提出的OOSEOOSE方法方法 ;RumbaughRumbaugh提出的提出的O
3、MTOMT方法。方法。l9090年代中期年代中期 ,统一建模语言(,统一建模语言(Unified Modeling LanguageUnified Modeling Language,UMLUML)第3页,此课件共87页哦11.1面向对象方法的形成与发展(续)面向对象方法的形成与发展(续)11.1.211.1.2面向对象方法的基本原理面向对象方法的基本原理 OOOO方法强调从方法强调从“问题域问题域”到到“实现域实现域”的映射应采用一种直接和的映射应采用一种直接和自然的映射方法,使实现域保持了问题域的本来面目,没有对问题自然的映射方法,使实现域保持了问题域的本来面目,没有对问题域造成扭曲。这是
4、域造成扭曲。这是OOOO方法最突出的优点。方法最突出的优点。OOOO方法以对象为中心,强调对象是对客观事物的正确抽象,是方法以对象为中心,强调对象是对客观事物的正确抽象,是构成软件系统的基本单位。对象是由属性和服务组成的。将具有构成软件系统的基本单位。对象是由属性和服务组成的。将具有相同属性和服务的对象归为一类,类是这些对象的抽象描述。通相同属性和服务的对象归为一类,类是这些对象的抽象描述。通过继承机制简化了对系统的构造和描述。通过消息实现了对象的过继承机制简化了对系统的构造和描述。通过消息实现了对象的动态联系。通过关联实现对象的静态联系。动态联系。通过关联实现对象的静态联系。第4页,此课件共
5、87页哦11.2面向对象方法的主要概念面向对象方法的主要概念11.2.111.2.1对象对象1 1、对象、对象 对象是系统中用来描述客观事物的一个实体,一个对象由一组对象是系统中用来描述客观事物的一个实体,一个对象由一组属性和对这组属性进行操作的一组服务构成。属性和对这组属性进行操作的一组服务构成。2 2、属性、属性 属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。3 3、服务、服务 服务是用来描述对象动态特征的一个操作序列。服务是用来描述对象动态特征的一个操作序列。第5页,此课件共87页哦11.2面向对象方法的主要概念(续)面向对象方法的主要概念(续)11.2
6、.211.2.2类类 类是指具有相同属性和服务的一组相似对象的集合。类是指具有相同属性和服务的一组相似对象的集合。11.2.311.2.3封装封装 封装(封装(EncapsulationEncapsulation)是指通过对象将属性和服务组合起来,)是指通过对象将属性和服务组合起来,构成一个不可分割的独立的系统单位,并尽可能隐蔽其内部细节。构成一个不可分割的独立的系统单位,并尽可能隐蔽其内部细节。11.2.411.2.4继承继承 继承(继承(InheritanceInheritance)是指特殊类的对象可自动地拥有其一般类)是指特殊类的对象可自动地拥有其一般类定义的全部属性与服务。定义的全部属
7、性与服务。第6页,此课件共87页哦11.2面向对象方法的主要概念(续)面向对象方法的主要概念(续)11.2.511.2.5消息消息 消息(消息(MessageMessage)是指向对象发出的服务请求。)是指向对象发出的服务请求。11.2.611.2.6关系关系u一般特殊关系一般特殊关系 又称作继承关系或又称作继承关系或“is-a-kind-ofis-a-kind-of”关系。关系。u关联关系关联关系 关联(关联(AssociationAssociation)表示一个对象了解其它对象的程度。)表示一个对象了解其它对象的程度。第7页,此课件共87页哦11.2面向对象方法的主要概念(续)面向对象方法
8、的主要概念(续)u整体部分关系整体部分关系 整体部分关系又称作组合关系或整体部分关系又称作组合关系或“is-a-part-ofis-a-part-of”关系。关系。u行为依赖关系行为依赖关系 行为依赖关系描述对象之间的动态联系,即:若一个对象在执行行为依赖关系描述对象之间的动态联系,即:若一个对象在执行自己的服务时,需要向另外的一个对象发送消息请求它的某种服务,自己的服务时,需要向另外的一个对象发送消息请求它的某种服务,则称这两个对象之间存在着行为依赖关系。则称这两个对象之间存在着行为依赖关系。11.2.711.2.7多态性多态性 对象的多态性(对象的多态性(PolymorphismPolym
9、orphism)是指在一般类中定义的属性或)是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。的行为。第8页,此课件共87页哦11.2面向对象方法的主要概念(续)面向对象方法的主要概念(续)11.2.811.2.8永久对象永久对象 永久对象(永久对象(Persistent ObjectPersistent Object),就是其生存期可以超,就是其生存期可以超越程序的执行时间而长期存在的对象。越程序的执行时间而长期存在的对象。11.2.911.2.9主动对象主动对象1 1、被动对象、被动对象 对象的
10、每一个服务只有在一条消息的驱动下才被执行,这对象的每一个服务只有在一条消息的驱动下才被执行,这样的对象称为被动对象(样的对象称为被动对象(Passive ObjectPassive Object)。)。2 2、主动对象、主动对象 主动对象(主动对象(Active ObjectActive Object)就是至少有一个服务不需要)就是至少有一个服务不需要接收消息就能主动执行(称为主动服务)的对象。接收消息就能主动执行(称为主动服务)的对象。第9页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML11.3.1UML11.3.1UML的发展与作用的发展与作用 (一)(一)UMLUML发展
11、史发展史n19951995年年1010月同在美国月同在美国RationalRational软件公司工作的软件公司工作的G.BoochG.Booch和和J.RumbaughJ.Rumbaugh把他们各自提出的把他们各自提出的BoochBooch方法和方法和OMTOMT方法结合起来,形成一方法结合起来,形成一种统一方法,即种统一方法,即UMUM(Unified MethodUnified Method)0.80.8。nOOSEOOSE的提出者的提出者I.JacobsonI.Jacobson也加入了这一行列,经过三人的密切合作,也加入了这一行列,经过三人的密切合作,于于19961996年年6 6月和
12、月和1010月先后发布了二义性较少的月先后发布了二义性较少的UML0.9UML0.9和和0.910.91版本。版本。n19971997年年1 1月,他们推出了月,他们推出了UML1.0UML1.0版,并提交到对象管理组织(版,并提交到对象管理组织(Object Object Management GroupManagement Group,OMGOMG)作为初步的提案申请。)作为初步的提案申请。第10页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)n19971997年年9 9月月1 1日提出了日提出了UML1.1UML1.1,并作为最终提案提交到,并作为最终提案提交
13、到OMGOMG,该,该提案在提案在19971997年年1111月被月被OMGOMG正式采纳为正式采纳为OOOO建模的标准语言。建模的标准语言。nOMGOMG平台技术委员会批准成立平台技术委员会批准成立UMLUML修订任务组,先后制定改进修订任务组,先后制定改进版本版本,包括包括:UML 1.2:UML 1.2、UML1.3 UML1.3、UML1.4 UML1.4。并将。并将UMLl.3UMLl.3作为其作为其最终草案,于最终草案,于19991999年年6 6月提交给月提交给OMGOMG组织委员会和平台技术委员组织委员会和平台技术委员会,并获得批准。会,并获得批准。n目前最高版本是目前最高版本
14、是UML2.0 UML2.0 第11页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(二)(二)UMLUML的主要作用的主要作用u作为一种建模语言,作为一种建模语言,UMLUML定义了建立系统模型所需的概念及其标定义了建立系统模型所需的概念及其标准的可视化图形表示符号。但是它并不介绍如何进行系统建模。准的可视化图形表示符号。但是它并不介绍如何进行系统建模。因此,因此,UMLUML并不是一种面向对象建模方法和过程。并不是一种面向对象建模方法和过程。uUMLUML是一种建模语言,而不是一种程序设计语言。是一种建模语言,而不是一种程序设计语言。uUMLUML是一个可扩展的
15、建模语言。是一个可扩展的建模语言。第12页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.211.3.2面向对象分析和设计的面向对象分析和设计的UMLUML模型结构模型结构 UML UML将将OOA&DOOA&D要建立的系统模型划分为系统功能视图、系统静态视要建立的系统模型划分为系统功能视图、系统静态视图和系统动态视图。图和系统动态视图。第13页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(一)功能视图(一)功能视图 功能视图用于展现一个系统应具有的功能集合。功能视图用于展现一个系统应具有的功能集合。UMLUML用例图用例图(U
16、se Case DiagramUse Case Diagram)来描述。)来描述。(二)静态视图(二)静态视图 静态视图也成为逻辑视图,用于展现系统的静态结构,揭示系统静态视图也成为逻辑视图,用于展现系统的静态结构,揭示系统内部的组成元素及其它们之间的关系。内部的组成元素及其它们之间的关系。UMLUML用用“类图类图”和和“对象图对象图”来描述。来描述。(三)动态视图(三)动态视图 动态视图用于展现系统的动态行为特征。动态视图用于展现系统的动态行为特征。UMLUML用序列图用序列图(Sequence DiagramSequence Diagram)、状态图()、状态图(State Diagra
17、mState Diagram)、协作图)、协作图(Collaboration DiagramCollaboration Diagram)和活动图()和活动图(Activity DiagramActivity Diagram)来描)来描述。述。第14页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.311.3.3功能视图的概念和表示方法功能视图的概念和表示方法 用例图基本的模型元素包括用例(用例图基本的模型元素包括用例(Use CaseUse Case)、角色)、角色(ActorActor)和用例关系。)和用例关系。用例图中的主要模型元素及其表示符号用例图中的
18、主要模型元素及其表示符号 第15页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(一)角色(一)角色 “角色角色”是指在系统边界以外与系统进行信息交互的有关事物。是指在系统边界以外与系统进行信息交互的有关事物。(二)用例(二)用例 “用例用例”是指从系统外部各个角色的角度观察,系统应支是指从系统外部各个角色的角度观察,系统应支持哪些功能,一个用例提供对应系统对外部提供的一项功能,持哪些功能,一个用例提供对应系统对外部提供的一项功能,它是对系统功能的宏观描述。它是对系统功能的宏观描述。(三)用例关系(三)用例关系扩展(扩展(ExtendsExtends)关系)关系使用
19、(使用(UsesUses)关系)关系 第16页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(四)用例图示例(四)用例图示例 第17页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.411.3.4静态视图的概念和表示方法静态视图的概念和表示方法(一)类和对象的表示(一)类和对象的表示1 1、类和对象表示的符号、类和对象表示的符号 类和对象都用长方形表示,长方形分成上、中、下三个区类和对象都用长方形表示,长方形分成上、中、下三个区域来分别表示类和对象的名字、类的属性和服务。域来分别表示类和对象的名字、类的属性和服务。第18页,此课件
20、共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、属性、属性 类的属性用来描述该类的所有对象所具有的静态特征,对象类的属性用来描述该类的所有对象所具有的静态特征,对象的属性用来描述该对象所有的属性值。的属性用来描述该对象所有的属性值。UMLUML描述属性的语法格式为:描述属性的语法格式为:可见性可见性 属性名:属性类型名属性名:属性类型名 初值初值 性质串性质串3 3、服务、服务 类的服务说明了该类能做些什么。每种服务定义的标准语法类的服务说明了该类能做些什么。每种服务定义的标准语法格式为:格式为:可见性可见性 服务名(参数表):返回值类型服务名(参数表):返回值类型性
21、质串性质串第19页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)4 4、类定义示例、类定义示例 第20页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(二)继承关系的表示(二)继承关系的表示1 1、继承关系表示的符号、继承关系表示的符号 继承关系用一条带空心三角形的直线表示,空心三角形继承关系用一条带空心三角形的直线表示,空心三角形紧挨父类。紧挨父类。第21页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2多态多态 子类也可以把本来在父类中定义的属性和服务重新进行定义,子类也可以把本来在父类中定义的属性和服
22、务重新进行定义,来达到来达到“名字相同,语义不同名字相同,语义不同”的目的。的目的。“多态多态”是在属性或服务是在属性或服务的的“性质串性质串”中来说明的。中来说明的。3 3抽象类抽象类 所谓所谓“抽象类抽象类”是指没有具体对象的类。抽象类一般只作为是指没有具体对象的类。抽象类一般只作为父类,用于描述其子类的公共属性和服务。抽象类通常都具有抽象父类,用于描述其子类的公共属性和服务。抽象类通常都具有抽象服务。抽象服务仅仅用来指定某个类的所有子类应具有哪些行为,服务。抽象服务仅仅用来指定某个类的所有子类应具有哪些行为,但并不指定具体的实现方式。抽象服务的表示方法是在抽象服务标但并不指定具体的实现方
23、式。抽象服务的表示方法是在抽象服务标记后跟随一个性质串抽象性记后跟随一个性质串抽象性AbstractAbstract。第22页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)4 4、多继承及其抽象类表示法示例、多继承及其抽象类表示法示例 第23页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(三)关联关系表示(三)关联关系表示1 1、关联关系表示的符号、关联关系表示的符号 一般的关联关系采用一条直线来表示,该直线连接了一般的关联关系采用一条直线来表示,该直线连接了具有关联关系的两个类或对象。具有关联关系的两个类或对象。第24页,此课件共87
24、页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、关联名称、关联名称 使用关联名称可更清晰地说明该关联关系的含义和目的。使用关联名称可更清晰地说明该关联关系的含义和目的。3 3、角色名、角色名 角色名用于规定某个类在关联关系中所起的作用。角色名用于规定某个类在关联关系中所起的作用。4 4、多重性、多重性 多重性用于说明关联关系中某类对象的数量关系,即该类的多少个对象多重性用于说明关联关系中某类对象的数量关系,即该类的多少个对象可以与另一个类的一个对象相关联。可以与另一个类的一个对象相关联。5 5、导向性、导向性 导向性用于说明两个类的关联是单向的,导向性采用实线箭头表示,导向
25、性用于说明两个类的关联是单向的,导向性采用实线箭头表示,即只有箭头所指方向上才有这种关联关系。即只有箭头所指方向上才有这种关联关系。第25页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)6 6、关联类、关联类 “关联类关联类”用来表示关联关系本身所拥有的特征。用来表示关联关系本身所拥有的特征。7 7、多元关联、多元关联 客观世界中,有时多个事物之间存在某种联系。客观世界中,有时多个事物之间存在某种联系。第26页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(四)整体部分关系表示(四)整体部分关系表示 对象间的整体部分关系是关联关系的特例。
26、对象间的整体部分关系是关联关系的特例。UMLUML中表示整体中表示整体部分关系的符号与关联关系类似,只是在指向整体对象的一端增加了一部分关系的符号与关联关系类似,只是在指向整体对象的一端增加了一个小菱形。如果是聚合关系,则小菱形是空心的,如果是组成关系,则个小菱形。如果是聚合关系,则小菱形是空心的,如果是组成关系,则小菱形是实心的。小菱形是实心的。第27页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(五)包的概念及其表示(五)包的概念及其表示1 1、包的概念、包的概念 包(包(PackagePackage)是一种组合机制,把各种各样的模型元素通)是一种组合机制,把
27、各种各样的模型元素通过内在的语义连成一个整体就形成一个包。构成包的模型元素称过内在的语义连成一个整体就形成一个包。构成包的模型元素称为包的内容。为包的内容。2 2、包的表示、包的表示 “包包”的图形表示符号类似文件夹,由两个长方形组成,的图形表示符号类似文件夹,由两个长方形组成,小长方形位于大长方形的左上角。小长方形位于大长方形的左上角。第28页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)3 3、包间关系、包间关系u依赖关系依赖关系 如果包如果包A A引用了包引用了包B B的类或类的服务,则称的类或类的服务,则称B B依赖依赖A A。依赖关系。依赖关系用一条带箭头
28、的虚线表示。用一条带箭头的虚线表示。u继承关系,继承关系,如果包如果包B B内的某个类是包内的某个类是包A A某个类的子类,则包某个类的子类,则包A A和和B B构成了构成了继承关系,包间继承关系的表示符号同类间的继承关系一样。继承关系,包间继承关系的表示符号同类间的继承关系一样。第29页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)4 4、包的示例、包的示例第30页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.511.3.5动态视图的概念和表示方法动态视图的概念和表示方法(一)状态图(一)状态图 状态图用于描述一个对象所能达到
29、的所有状态以及引起状态变化的状态图用于描述一个对象所能达到的所有状态以及引起状态变化的事件,用于对类所描述事物的补充说明。事件,用于对类所描述事物的补充说明。1 1、状态的表示、状态的表示 一个对象的状态由一个初始状态、若干个中间状态和零到一个对象的状态由一个初始状态、若干个中间状态和零到多个终止状态组成。多个终止状态组成。第31页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、状态转移表示、状态转移表示 对象状态间的转换用一条带箭头的线表示,线上要标注引起状态转对象状态间的转换用一条带箭头的线表示,线上要标注引起状态转换的条件。换的条件。转移条件的语法格式为
30、:转移条件的语法格式为:事件名(参数表)事件名(参数表)守卫条件守卫条件/动作表达式动作表达式 发送子句发送子句 第32页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)3 3状态图示例状态图示例第33页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(二)序列图(二)序列图 序列图是用来反映对象之间行为依赖关系的模型之一,它侧序列图是用来反映对象之间行为依赖关系的模型之一,它侧重于描述为完成一个功能,随着时间的流逝对象之间的交互方式。重于描述为完成一个功能,随着时间的流逝对象之间的交互方式。1 1、消息的表示、消息的表示 一般来说消息可以分
31、为普通消息、同步消息和异步消息三种。一般来说消息可以分为普通消息、同步消息和异步消息三种。第34页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、消息协议、消息协议 条件条件 服务名(参数表)服务名(参数表)3 3、序列图示例、序列图示例第35页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(三)协作图(三)协作图 协作图是用来反映对象之间行为依赖关系的另一种模型。它侧重协作图是用来反映对象之间行为依赖关系的另一种模型。它侧重于描述为完成一个功能,从空间的角度,对象的链接(关联的实例)于描述为完成一个功能,从空间的角度,对象的链接(
32、关联的实例)以及链接对象间的交互。以及链接对象间的交互。1 1、消息标签、消息标签 前缀前缀/守卫条件守卫条件消息序列号消息序列号并发消息别名并发消息别名循环子句循环子句条件子句条件子句:消息名(参数表)消息名(参数表)第36页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、协作图示例、协作图示例打印文件协作图打印文件协作图 第37页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)(四)活动图(四)活动图 活动图是另一种用来描述交互的模型,主要描述完成一项功能要活动图是另一种用来描述交互的模型,主要描述完成一项功能要执行的动作、动作顺
33、序和动作所产生的结果。执行的动作、动作顺序和动作所产生的结果。1 1、活动图基本的建模元素及其表示符号、活动图基本的建模元素及其表示符号 第38页,此课件共87页哦11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、活动图示例、活动图示例 第39页,此课件共87页哦11.4 面向对象分析面向对象分析11.4.111.4.1、概述、概述1 1、主要任务、主要任务 系统分析的主要任务是对拟建系统所涉及的领域进行全面系统分析的主要任务是对拟建系统所涉及的领域进行全面而深入的理解和认识,从而确定系统要解决的问题以及要达到而深入的理解和认识,从而确定系统要解决的问题以及要达到的目标,并对该问
34、题域进行清晰、完整、准确和详细的认识和的目标,并对该问题域进行清晰、完整、准确和详细的认识和描述,以便为后续的系统设计提供清晰准确的设计依据。描述,以便为后续的系统设计提供清晰准确的设计依据。2 2、最终目标、最终目标 系统分析的其最终目标是产生综合描述问题域特征的文档。系统分析的其最终目标是产生综合描述问题域特征的文档。第40页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)3 3、系统分析方法、系统分析方法n结构化方法结构化方法n数据驱动方法数据驱动方法nOOAOOA方法方法BoochBooch方法方法OMTOMT方法方法OOSEOOSE方法方法统一过程统一过程RUPRUP
35、(Rational Unified ProcessRational Unified Process)第41页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)11.4.211.4.2面向对象分析的任务面向对象分析的任务uOOAOOA的基本任务是:运用的基本任务是:运用OOOO方法,对拟建信息系统所涉及的领域和方法,对拟建信息系统所涉及的领域和要解决的领域问题进行分析和理解,正确认识问题域中的事物及其事要解决的领域问题进行分析和理解,正确认识问题域中的事物及其事物间的关系,确定为解决领域问题信息系统应具备的功能和其它方面物间的关系,确定为解决领域问题信息系统应具备的功能和其它方面的
36、要求。在此基础上,勾画出拟建系统的逻辑模型来反映系统的静态的要求。在此基础上,勾画出拟建系统的逻辑模型来反映系统的静态和动态结构。和动态结构。u对系统静态结构的认识和描述,主要是利用抽象、分类、继承、对系统静态结构的认识和描述,主要是利用抽象、分类、继承、组合以及封装等原则来实现三种映射,组合以及封装等原则来实现三种映射,u对系统动态结构的认识和描述,必须从系统要完成的功能出发,对系统动态结构的认识和描述,必须从系统要完成的功能出发,既要搞明白对象的行为方式,又要认识清楚构成系统基本部件的既要搞明白对象的行为方式,又要认识清楚构成系统基本部件的交互和协作过程。最终建立相关模型来刻画系统的动态结
37、构。交互和协作过程。最终建立相关模型来刻画系统的动态结构。第42页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)11.4.311.4.3面向对象分析的过程模型面向对象分析的过程模型第43页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)11.4.411.4.4确定系统目标和范围确定系统目标和范围 学习和掌握领域背景学习和掌握领域背景 常用的途径包括资料阅读、调查、访谈、实地考查和操作、请教领常用的途径包括资料阅读、调查、访谈、实地考查和操作、请教领域专家等。域专家等。确定系统范围确定系统范围 在领域中哪些领域问题可以借助信息系统来加以解决,进在领域中哪些领域问
38、题可以借助信息系统来加以解决,进而确定问题域,即系统范围。而确定问题域,即系统范围。确定系统目标确定系统目标 确定问题域中的每个问题要解决到什么程度,即信息系统要达到的确定问题域中的每个问题要解决到什么程度,即信息系统要达到的目标,制定目标时,一要尽可能量化,二要适度,既不能过高,也不能目标,制定目标时,一要尽可能量化,二要适度,既不能过高,也不能过低。过低。第44页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)11.4.511.4.5需求获取和定义需求获取和定义第45页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(一)需求调研(一)需求调研 需求调研要采
39、取全面而有序和逐步引入细节的策略。需求调研要采取全面而有序和逐步引入细节的策略。(二)建立用例模型(二)建立用例模型1 1、识别系统角色、识别系统角色n谁是使用系统主要功能的人?谁是使用系统主要功能的人?n谁需要借助系统完成日常工作?谁需要借助系统完成日常工作?n谁来维护、管理系统,以保证系统正常运行?谁来维护、管理系统,以保证系统正常运行?n系统控制和使用的硬件设备有哪些?系统控制和使用的硬件设备有哪些?n系统需要与哪些其它系统进行交换?系统需要与哪些其它系统进行交换?n哪些人、系统和设备需要系统的输出的结果?哪些人、系统和设备需要系统的输出的结果?第46页,此课件共87页哦11.4 面向对
40、象分析(续)面向对象分析(续)2 2、发现用例及其关系、发现用例及其关系n角色的日常工作是什么?这些日常工作能用系统来完成吗?角色的日常工作是什么?这些日常工作能用系统来完成吗?n角色需要维护或使用系统存储的某种信息吗?角色需要维护或使用系统存储的某种信息吗?n系统中发生的事件需要通知角色吗?或者角色需要通知系统某系统中发生的事件需要通知角色吗?或者角色需要通知系统某事件吗?这些事件的作用是什么?事件吗?这些事件的作用是什么?n为简化角色的日常工作,或提高其工作效率,系统还能做什么?为简化角色的日常工作,或提高其工作效率,系统还能做什么?n系统需要的输入系统需要的输入/输出信息是什么?这些信息
41、从哪儿来到哪儿去?输出信息是什么?这些信息从哪儿来到哪儿去?n系统开发要解决的主要问题是什么?系统开发要解决的主要问题是什么?第47页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)3 3、描述用例、描述用例n用例名称用例名称 全系统范围内唯一的表示这个用例并且能反映出它的角色和它所全系统范围内唯一的表示这个用例并且能反映出它的角色和它所描述的功能。其书写格式是:角色名用例名。描述的功能。其书写格式是:角色名用例名。n用例目标用例目标 用例的最终任务是什么?通过该用例能得到什么样的结果?用例的最终任务是什么?通过该用例能得到什么样的结果?n行为描述行为描述 用自然语言分别描述角
42、色的行为和系统行为。用自然语言分别描述角色的行为和系统行为。n控制语句控制语句 在一些较为复杂的交互活动中往往含有循环或条件分支。此时需要在一些较为复杂的交互活动中往往含有循环或条件分支。此时需要在用例中使用一些控制语句。在用例中使用一些控制语句。第48页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(三)确定系统的非功能性需求(三)确定系统的非功能性需求 系统的非功能性需求主要包括系统的环境需求、质量需求、用户系统的非功能性需求主要包括系统的环境需求、质量需求、用户界面需求和资源需求四个方面。界面需求和资源需求四个方面。(四)需求复审与确认(四)需求复审与确认 开发商要与用
43、户一起以该文档为依据,进行第一次需求复审和开发商要与用户一起以该文档为依据,进行第一次需求复审和确认,以确定文档的内容是否真实地反映了用户的功能性和非功能确认,以确定文档的内容是否真实地反映了用户的功能性和非功能性需求。性需求。第49页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)11.4.611.4.6划分系统主题划分系统主题n主题的概念主题的概念 主题是指在语义上有密切联系的系统模型元素的集合。主题是指在语义上有密切联系的系统模型元素的集合。n划分主题的方法划分主题的方法按功能自顶向下划分系统的高层主题按功能自顶向下划分系统的高层主题 按功能自顶向下划分系统的高层主题按功
44、能自顶向下划分系统的高层主题 n主题的表示主题的表示 采用采用UMLUML“包包”的概念建立主题图。的概念建立主题图。第50页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)11.4.711.4.7系统静态模型的建立系统静态模型的建立(一)建立静态模型的过程(一)建立静态模型的过程1 1、类图的层次、类图的层次对象层对象层特征层特征层关系层关系层第51页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)2 2、类图建立过程的三项活动、类图建立过程的三项活动发现对象和类发现对象和类发现属性和服务发现属性和服务发现对象和类的关系发现对象和类的关系第52页,此课件共87
45、页哦11.4 面向对象分析(续)面向对象分析(续)3 3、识别对象和类建立类图的过程、识别对象和类建立类图的过程 第53页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(二)发现对象和类(二)发现对象和类1 1、确定对象候选空间、确定对象候选空间 从问题域角度出发,反复阅读相关文档,筛选出属于系统从问题域角度出发,反复阅读相关文档,筛选出属于系统范围内的名词或名词短语,建立初步的候选对象空间。范围内的名词或名词短语,建立初步的候选对象空间。2 2、审查和筛选对象、审查和筛选对象 逐个检查候选对象,以舍弃无用的和精简剩余的对象。逐个检查候选对象,以舍弃无用的和精简剩余的对象。3
46、 3、对象分类、对象分类 确定系统所需要的类,建立类图的对象层。确定系统所需要的类,建立类图的对象层。第54页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(三)发现属性(三)发现属性1 1、确定属性的候选空间、确定属性的候选空间 主要工作是在研究当前的问题域和系统功能基础上,找出每一类主要工作是在研究当前的问题域和系统功能基础上,找出每一类对象应有的属性。确定属性候选空间的目标是尽可能全面地发现属性,对象应有的属性。确定属性候选空间的目标是尽可能全面地发现属性,宁多勿缺。宁多勿缺。2 2、属性的审查和筛选、属性的审查和筛选 舍弃一些不必要的属性,简化系统模型。舍弃一些不必要
47、的属性,简化系统模型。第55页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(四)发现服务(四)发现服务1 1、确定服务的候选空间、确定服务的候选空间 主要工作是在研究当前的问题域和系统功能基础上,找出每一主要工作是在研究当前的问题域和系统功能基础上,找出每一类对象应有的服务。确定服务候选空间的目标是尽可能全面地发现类对象应有的服务。确定服务候选空间的目标是尽可能全面地发现服务,宁多勿缺。服务,宁多勿缺。2 2、服务的审查和调整、服务的审查和调整 对所发现的每个对象的每个服务逐个进行审查,舍弃无用的服务,对所发现的每个对象的每个服务逐个进行审查,舍弃无用的服务,并通过分解或合
48、并来提高服务的独立性。并通过分解或合并来提高服务的独立性。第56页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(五)识别继承关系(五)识别继承关系1 1确定继承关系的候选空间确定继承关系的候选空间识别现有类的继承关系识别现有类的继承关系按自顶向下的演绎法,把现有的类细化成更具体的类。按自顶向下的演绎法,把现有的类细化成更具体的类。按自底向上的归纳法,抽象出现有类的共同特征形成其父按自底向上的归纳法,抽象出现有类的共同特征形成其父类。类。第57页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)2 2继承关系的审查和调整继承关系的审查和调整继承关系是否符合领域的
49、分类体系或分类常识?继承关系是否符合领域的分类体系或分类常识?继承关系是否在问题空间内?继承关系是否在问题空间内?继承关系对满足系统功能有无作用?继承关系对满足系统功能有无作用?在用具体的在用具体的OOPLOOPL来实际实现来实际实现“多继承多继承”时,可能会存在时,可能会存在OOPLOOPL不支持多继承、不支持多继承、“命名冲突命名冲突”、破坏系统清晰性和造成实现、破坏系统清晰性和造成实现的复杂等问题。的复杂等问题。3 3调整对象层和特征层调整对象层和特征层 对类图中的对象层和特征层做某些调整,包括增加、删除、合对类图中的对象层和特征层做某些调整,包括增加、删除、合并或分开某些类,以及增、删
50、某些属性和服务或把它们移到其它类并或分开某些类,以及增、删某些属性和服务或把它们移到其它类中。中。第58页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(六)识别和定义关联关系(六)识别和定义关联关系发现关联关系发现关联关系识别并定义关联关系的属性和服务识别并定义关联关系的属性和服务分析关联关系的多重性分析关联关系的多重性定义关联关系的含义定义关联关系的含义多元关联关系处理多元关联关系处理调整对象层和特征层调整对象层和特征层 第59页,此课件共87页哦11.4 面向对象分析(续)面向对象分析(续)(七)识别和定义整体部分关系(七)识别和定义整体部分关系确定整体部分关系候选空间