版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象分析与设计
O-OAnalysisandDesign机电学院杨静萍2013-2014(1)内容提要面向对象的概念
(ConceptsofObject-Oriented)面向对象技术框架
(ArchitectureofObject-Oriented)面向对象分析技术
(Object-OrientedAnalysisTechnology)面向对象概念哲学的观点:客观世界与主观世界计算机软件:模拟现实世界面向对象的基本概念面向对象(ObjectOriented)对象和类(
Object&Class)消息(Messages)类的特性(FeaturesofClass)接口(Interface)包(Package)哲学的观点:客观世界与主观世界事物实体:内部状态—
属性运行规律—
行为事物归类相互联系相互作用对象Object属性—域行为—方法类Class关系Relation消息Method计算机软件:模拟现实世界面向对象(ObjectOriented)面向对象是一种用于产生模型的技术,这些模型使用某个领域的术语,以自然的方式来反映该领域;面向对象有5个基本概念:对象、类、消息、继承和多态。面向对象=对象+类+消息+继承+多态对象和类(
Object&Class)对象(Object):现实世界中实体的逻辑模型。每个对象有一个名称,多种属性和多个操作。类(Class):对象共性
特征的抽象。
每个对象也有
一个名称,多种
属性和多个操作。类是对象
的抽象化,对象是类的实例化。ClassCar消息(Messages)消息是指对象间相互联系和相互作用的方式。一个消息主要由5部分组成:发送消息的对象、接收消息的对象、消息传递办法、消息内容(参数)、反馈。类的特性(FeaturesofClass)(1)抽象(Abstraction)(2)封装(Encapsulation
)(3)继承(Inherit,Extends)
(4)多态、覆盖(Polymorphism/Override)(5)重载(Overload
)(6)关联(Association)(7)聚集(Aggregation)(1)抽象(Abstraction)类的定义中明确指出类是一组具有内部状态和运动规律对象的抽象,抽象是一种从一般的观点看待事物的方法,它要求我们集中于事物的本质特征(内部状态和运动规律),而非具体细节或具体实现。面向对象鼓励我们用抽象的观点来看待现实世界,也就是说,现实世界是一组抽象的对象——类组成的。
(2)封装(Encapsulation
)对象间的相互联系和相互作用过程主要通过消息机制得以实现。对象之间并不需要过多的了解对方内部的具体状态或运动规律。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。类是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。在类中定义的接收对方消息的方法称为类的接口。
(3)继承(Inherit,Extends)
继承是类不同抽象级别之间的关系。类的定义主要有2种办法归纳和演绎;由一些特殊类归纳出来的一般类称为这些特殊类的父类,特殊类称为一般类的子类,同样父类可演绎出子类;父类是子类更高级别的抽象。子类可以继承父类的所有内部状态和运动规律。在计算机软件开发中采用继承性,提供了类的规范的等级结构;通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。(4)多态、覆盖(Polymorphism/Override)多态(覆盖):多态性是指同名的方法可在不同的类中具有不同的运动规律。在父类演绎为子类时,类的运动规律也同样可以演绎,演绎使子类的同名运动规律或运动形式更具体,甚至子类可以有不同于父类的运动规律或运动形式。不同的子类可以演绎出不同的运动规律。(5)重载(Overload
)重载指类的同名方法在给其传递不同的参数是可以有不同的运动规律。在对象间相互作用时,即使接收消息对象采用相同的接收办法,但消息内容的详细程度不同,接收消息对象内部的运动规律也可能不同。(6)关联(Association)对象之间以某种方式发生联系,例如:ThemanturnsontheTV;Themanismarriedtothewoman;Themanisafriendoftheotherman;Themandrivethecar;……(7)聚集(Aggregation)对象之间的组成关系,例如:计算机对象由主机、键盘、鼠标、显示器等对象组成;汽车对象由车身、轮胎、动力系统、电气装置、内饰等对象组成;……接口(Interface)接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为,即,实现接口的类应具有接口所定义的功能。Nota-buthasafunctionof包(Package)哲学认为现实世界中不同对象间的相互联系和相互作用构成了各种不同的系统,不同系统间的相互联系和相互作用构成了更庞大的系统,进而构成了整个世界。在面向对象概念中把这些系统称为包。面向对象技术框架序号列名类型为空备注1brandNameString(20)N商标2modelNameString(10)N型号3serialNameString(15)Y系列4capacityNumber(8,2)N容量5stateString(8)N状态UMLOOP(Java)ORDBMS(DERBY)面向对象分析技术(OOA)面向对象分析技术概述基于UML的面向对象分析面向对象分析技术概述OOA的目的:是对客观世界并进行建模OOA的实质:是对需求的分析和理解.OOA的过程:获取问题陈述确定类准备数据字典确定关联使用继承来细化类型完善对象模型建立对象动态模型建系统功能模型
OOA的工具:UML基于UML的面向对象分析UML简介UML建模范围UML世界的构成UML分析设计过程UML简介UML概述UML的诞生UML的发展历程UML概述统一建模语言(UnifiedModelingLanguage,UML)是用来对软件系统进行可视化建模的一种语言。是为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML可以贯穿软件开发周期中的每一个阶段。被OMG(ObjectManagementGroup)采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。UML的诞生GradyBoochJamesRubaughIvarJacobsonRationalOMG(1997)IBM(2003)UML的发展历程UML建模范围UML是一种统一的、标准化的建模语言UML是一种应用面很广泛的建模语言
模型种类模型用途业务模型对业务过程、工作流、组织的建模需求模型对捕获的需求进行整理和分析的工具,辅助开发人员与用户进行沟通设计模型包含高层设计(架构模型)和详细设计模型,用于统一开发人员、沟通设计信息数据库模型设计数据库的结构、表结构以及与应用系统的交互实现模型用来理清软件的组成、部署方案,为安装与维护人员的工作提供指导UML世界的构成UML构造块规则公共机制建模元素关系图规格描述修饰公共分类扩展机制命名范围可见性完整性执行1.结构元素(类,接口,协作,用例,对象,构件,节点等)2.行为元素(交互,状态机)3.分组元素(包)4.注解元素1.关联2.依赖3.泛化4.实现1.静态模型(类图,构件图,部署图)2.动态模型(对象图,用例图,顺序图,协作图,状态图,活动图)构造块构造块是对模型中最具有代表性的成分的抽象建模元素:UML中的名词,它是模型基本物理元素。行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组元素:UML中的容器,用来组织模型,使模型更加的结构化。注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。建模元素类(class)和对象(object)用例(usecase)协作(collaboration)构件(component)节点(node)类(class)和对象(object)类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法对象则是类的一个实例用例(usecase)用例是著名的大师IvarJacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个
用例定义一组用例实例。
协作(collaboration)协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体。对于某个用例的实现就可以表示为一个协作构件(component)在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换
节点(node)为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力
行为元素交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合交互的表示法很简单,就是一条有向直线,并在上面标有操作名状态机(statemachine):是一个对象或交互在生命周期内响应事件所经历的状态序列在UML模型中将状态画为一个圆
角矩形,并在矩形内写出状态名
称及其子状态分组元素对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标。注释元素结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分
UML模型关系的种类种类变种表示法关键字或符号种类变种表示法关键字或符号抽象派生泛化关系《derive》导入私有依赖关系《access》显现《manifest》公有《import》实现实现关系虚线加空心三角信息流《flow》精化依赖关系《refine》包含并《merge》跟踪《trace》许可《permit》关联关联关系实线协议符合未指定绑定依赖关系《bind》(参数表)替换依赖关系《substitute》部署《deploy》使用调用《call》扩展Extend《extend》(扩展点)创建《create》扩展extension扩展关系实线加实心三角实例化《instantiate》泛化泛化关系实线加空间三角职责《responsibility》包含依赖关系《include》发送《send》关联关系关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。在UML中,使用一条实线来表示关联关系。两种特殊的关联关系:例:聚合(Aggregation)表示类之间的关系是整体与部分的关系组合:如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述PersonCompanyWorksforemployee*
1employer聚合与组合例组合是聚合的变种,加入了一些重要的语义。也就是说,在一个组合关系中一个对象一次就只是一个组合的一部分,“整体”负责“部分”的创建和破坏,当“整体”被破坏时,“部分”也随之消失成员**课题组个人***窗口显示区外框标题抽象(泛化、实现与依赖)关系泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。抽象(泛化、实现与依赖)关系实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。抽象(泛化、实现与依赖)关系有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。UML规则命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符范围:与类的作用域相似.可见性:可见性规则标准表示法Rose属性Rose方法public任一元素,若能访问包容器,就可以访问它+
protected只有包容器中的元素或包容器的后代才能够看到它#
private只有包容器中的元素才能够看得到它-
package只有声明在同一个包中的元素才能够看到该元素~UML视图和图领域视图图结构静态视图类图设计视图复合结构图、协作图、构件图用例视图用例图动态状态视图状态机图活动视图活动图交互视图顺序图、通信图物理部署视图部署图模型管理模型管理视图包图UML图形分类UML分析设计过程UML分析设计过程用例建模用例(Usecase)、用例的一般化(分类和继承)参与者(Actor)、参与者的一般化(交叠角色)包含关系(Include)扩展关系(Extend)用例描述(Usecasedescription)过程建模顺序图(SequenceDiagram)将用例映射为类用例(Usecase)用于定义建模的系统如何被周围环境所使用,一个正常中等大小的系统约有20~50个用例。一个用例可以模拟系统的一个用法(功能)。用例不捕获系统外部的动作,只存在与系统内部。一个用例组成系统的完整用法。其名字是一个从系统观点以主动现在时态给定的动词短语,尽量使用约定俗成的名称,如Login。用例与系统的内部结构是相互独立的。用例是系统的灰盒描述:描述系统的功能和处理过程(基本的,选择性的,例外的),而不描述系统的内部构造。用例的一般化(分类和继承)可用于同类用途建模的用例可以抽象(一般化)为父用例,由特殊化而来的子用例实现具体的用途。体现UML中的分类学关系。参与者(Actor)建模了系统用户组使用系统时—即在与用例交互时扮演的角色。参与者处在系统的外部。参与者可以由人扮演,也可以有机器、其他计算机系统扮演。一个参与者可以和多个用例交互。参与者的名称是单数的名词性短语。从系统角度而非业务角度建模用户,例如:经理和销售员下订单办事员。参与者的一般化(交叠角色)如果多个参与者与同一个用例相关联,且角色相同,则应考虑采用一个交叠角色来代替这些参与者。包含关系(Include)重用机制,公用事件流部分抽象。包含用例通常也被称为抽象的(abstract),不能被实例化和自行执行。不需要参与者启
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食用油加工场所清洗消毒和维修保养制度
- 2025年北京市海淀区网格员招聘考试试题及答案解析
- 2026年信阳市师河区网格员招聘笔试参考题库及答案解析
- 大学生体育个人总结
- 2026年广州市白云区网格员招聘笔试备考试题及答案解析
- 2026年哈尔滨市动力区网格员招聘笔试备考题库及答案解析
- 初中英语Unit 7 Whats the highest mountain in the world Section A教案设计
- 科学版九年级下册活动2 信息获取的方法教案及反思
- 高中物理人教版 (2019)必修 第二册5 相对论时空观与牛顿力学的局限性教案
- 双曲线的简单几何性质
- 《新媒体营销》课件-项目二 走进新媒体营销
- 2024年广西高考物理试卷试题真题解读及答案详解
- (正式版)SHT 3075-2024 石油化工钢制压力容器材料选用规范
- 第一单元项目一探秘鸟类研究认识数据信息与知识课件沪科版高中信息技术必修1
- T CACM、T CAAM 冬病夏治穴位贴敷疗法治未病干预指南
- 关于请求支援xxx的函-公文关于协助函
- 第七讲-80年代文学思潮
- 超级电容器制造技术
- 基于无人机技术的土石方测量
- 盒马鲜生仓储数据分析报告
- 2023年临床执业医师资格考试笔试真题及答案
评论
0/150
提交评论