第8章 面向对象开发方法.pptx
第8章
面向对象开发方法;教学目的;教学要求;知识目标;技能目标;8.1面向对象开发方法概述;第1节
面向对象开发方法概述;教学目的;教学要求;8.1.3对象/类的关系;1.对象(Object);2.属性(Attribute);3.对象实例(ObjectInstance);4.行为(Behavior);面向对象的原理;5.封装(Encapsulation);1.类(Class)是共享相同属性和行为的对象集合
类有时也被称作对象类;继承(Inheritance)是指在一个对象类中定义的方法和/或属性可以被另一个对象类继承或复用。;概化/特化(Generalization/specialization)
是一种技术
几类对象类的公共属性和行为被组合成类,称为超类(如“人”)
超类的属性和方法可以被子类继承。;超类(supertype)是包含一个或多个对象子类的公共属性和行为的实体,也称为父类或抽象类
子类(subtype)是一个对象类,它从一个超类继承属性和行为并可能包含自身所特有的属性和行为,也称为儿子类
如果它位于继承层次的最底层,也称为实类
子类和超类的关系是“isa”;;对象/类关系(Object/ClassRelationship)是一种存在于一个或多个对象/类之间的自然业务联系;对象/类之间的特殊种类的关系称为聚合(Aggregative)
聚合是一种关系,其中一个较大的“整体”类包含一个或多个较小的“部分”类
相反地,一个较小的“部分”类是一个较大的“整体”类的一部分;通过聚合关系可以分解复杂的对象,并给其中的每个对象分配行为和属性
聚合关系又分为基本聚合和合成(Composition)聚合
合成是一种强形式的聚合,“整体”对象完全拥有“部分”对象,“部分”对象只能与一个“整体”对象有关联,“整体”不存在了,“部分”也就不存在了。;;消息(Message)是当一个对象调用另一个对象的方法(行为)以请求信息或者某些动作时发出的通信
如当客户对象检查订单的当前状态时,发送一条消息给订单对象,通过调用订单对象显示状态行为;客户;一个与消息密切相关的重要概念是多态性(Polymorphism)
多态性是指多种形式,即不同的对象可以以不同的形式响应同样的消息
当超类的行为需要被子类的行为重载时,就需要在面向对象应用中使用多态性;重载(Override)是一种技术,其中子类使用它自己的属性或行为,而非从父类继承的属性或行为
多态性和消息发送的关系是请求服务的对象知道要请求什么服务(或行为)和从哪个对象请求,但是请求对象不需要关心行为如何实现。;1.对象/类关联和重数符号有哪些?;第2节
使用UML进行面向对象分析与建模;教学目的;教学要求;8.2.3用例活动建模;面向对象分析(OOA)是用面向对象方法开发管理信息系统的一个重要阶段
一般需要建立3个系统模型:对象静态模型、对象动态模型和系统功能模型
这3个模型称为系统的分析模型
系统分析主要是获取需求,建立需求模型;面向对象分析活动:
(1)获取领域知识
(2)定义系统功能
定义系统的功能模型可以采用数据流图,也可以采用用例图,在UML中采用用例图表示。
(3)确定合适的类
根据需求陈述以及领域知识和经验确定系统的类。
(4)建立类的静态模型
对象类的静态模型描述了系统的静态结构,包括构成系统的类和对象,它们的属性、操作以及这些对象之间的联系,通常用类图和对象图表示。
。;面向对象分析活动:
(5)描述对象的动态行为
系统的动态行为模型包括对象状态模型和交互行为模型,对象状态模型由状态图和活动图组成,对象交互模型由协作图和时序图组成
(6)验证
专家对前面完成的模型作静态验证,以便确定系统的正确性
(7)给出基本的用户界面原型
给出系统整体结构的原型,包括主窗口的内容、窗口之间的导航等;面向对象分析:
面向对象分析过程从了解用户需求开始
需求分析阶段的工作是在客户和软件开发人员之间沟通基本的需求
与问题领域的专家进行讨论,分析领域的业务范围、业务规则和业务处理过程
明确系统的责任、范围和边界
确定系统的需求,形成需求陈述;需求陈述的内容:
问题范围
功能需求
性能需求
应用环境及假设条件等
需求陈述应该阐明系统“做什么”而不是“怎样做”
它应该描述用户的需求而不是提出解决问题的方法
书写需求陈述要尽力做到语法正确,而且应该慎重选用名词、动词、形容词和同义词;系统分析员应该深入理解用户需求
抽象出目标系统的本质属性
并用模型准确地表示出来
通过对象建模记录确定的对象、对象封装的数据和行为以及对象之间的关系;;3.用例建模步骤;用例建模是用于描述一个系统功能的建模技术
用例可用于获取新系统的客户需求
可以作为对已有系统进行升级时的指南
一个系