管理信息系统面向对象分析与设计.ppt
《管理信息系统面向对象分析与设计.ppt》由会员分享,可在线阅读,更多相关《管理信息系统面向对象分析与设计.ppt(151页珍藏版)》请在三一文库上搜索。
1、面向对象的基本概念,面向对象技术的基本观点: 客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 类是对象的抽象。具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。 对象之间的联系通过消息传递来维系。 客观世界实际存在的都是对象,而不是类。,对象表示现实世界中某个具体的事物。 抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。 对象具有两方面的含义: 在现实世界中: 是客观世界中的一个实体 在计算机世界中: 是一个可标识的存储区域加操作 对象作为一个可以显现给周围世界的一个实体,是构成物理世界
2、的个体元素。,一个对象的实例图解,对象和类既有区别又有联系,类是创建实例对象的代码模板,而对象则是按照类创建出来的一个个实例,有点像汽车的设计图纸和汽车的关系。 采用面向对象程序设计技术的原因主要有两个: 其一是我们认识世界研究乃至于改造世界都是以“对象”为基本单位而进行的,我们将这一人类活动衍生到计算机编程中来顺理成章; 其二是为了提高程序设计的效率,尤其是在越来越复杂问题环境中,解决模块的颗粒度问题,既内聚性和耦合性的分界线问题。,类是具有共同属性和行为的对象的抽象。 类可以定义为数据和方法的集合。 类也称为模板,因为它们提供了对象的基本框架。,类,对象,抽象,实例化,属性或状态,操作或行
3、为,数据或变量,方法,封装的实体=数据+方法,抽象就是从大量的普遍的个体中抽象出共有的属性和行为,从而形成一般化概念的过程。在现实世界中,人们正是通过抽象来理解复杂的事物。例如,人们并没有把汽车当作成百上千的零件组成来认识,而是把它当作具有自己特定行为的对象。我们可以忽略发动机、液压传输、刹车系统等如何工作的细节,而习惯于把汽车当作一个整体来认识。,如果从一个抽象模型中剔除足够多的细节,则它将变得足够通用,足以适应于多种情况或场合,这样的抽象常常在程序设计中非常有用。经过对大量事物的抽象和归类,可以形成相应的类属层次,如下图就是一个自然界各事物的一个分类抽象:,抽象原则,8,封装原则,封装原则
4、是一个普适原则,正如我们看到的、我们学习到的、以及我们周围的一切实体,包括动物、植物、各种人造物品都是封装的,一般情况下,我们只能看到这些物体的“外壳”,看不到其内部结构。 这种将内部结构和功能对外隐藏,只留下必需的接口和外界进行能量或信息交流就是封装,比如说我们人类,我们的内脏、血管、神经都被封装在我们皮肤里面,对外表现出来的仅仅是皮肤和五官接口,也就是说我们都是内聚性很强的对象个体,但我们又留有眼耳鼻口等接口,我们通过这些接口在这个世间生存和忙碌。,在面向对象程序设计中,我们应该遵循同样的原则,将对象的内部结构对外作信息隐藏,让外部不可访问,但提供一系列的共有接口,用来进行信息和能量交换。
5、在面向对象程序设计语言中,实现封装的关键字是private, 提供接口的关键字是public。,9,继承原则,继承原则也是一个普适原则,如果没有继承,我们的生物世界就会永远在生物链的底端徘徊,就不会出现如此丰富的生态世界。继承是发展的一部分,只有不断地继承旧的、成熟的东西,才能发展出更新的、更先进的东西,否则,我们就会在原地踏步,永远重复。 在面向对象程序设计中,我们从已经存在的类产生新类的机制,我们也称之为继承,原来存在的类叫父类(或叫基类),新类叫子类(或叫派生类)。子类中会自动拥有父类中的设计代码,继承带来的好处是:一方面可减少程序设计的错误,另一方面,做到了代码复用,可简化和加快程序设
6、计,提高了工作效率。,继承不仅仅是简单的拥有父类的设计代码,继承机制本身就具有进化的能力,跟生物世界一样,子代总是比父代更能适应环境。我们通过对父类的设计作一些局部的修改,使得子类对象具有更好的适应能力和强大的生存能力。,10,多态原则,多态性原则是生物多样性在面向对象程序设计中的应用,面对同样的刺激、消息等,不同的动物的反应是不一样的。在面向对象程序设计中,如果我们有许多不同的对象,每个对象都具有相应的行为模式(即执行代码),通过对每个对象发送同样的消息,但每个对象的执行的代码是不一样的,这就是面向对象程序设计中的多态。 多态性(polymorphism)是面向对象编程的基础属性,它允许多个
7、方法使用同一个接口,从而导致在不同的上下文中,对象的执行代码可以不一样。面向对象程序设计从多个方面支持多态性,其中两个方面最为突出。第一个是每个方法都可以被子类重写;第二个是设立interface关键字。,基于UML的面向对象分析设计过程,识别系统的用例和角色 进行系统分析,并抽象出类 设计系统和系统中的类及其行为,1. 面向对象的建模语言 2. 面向对象的程序设计语言,视图,系统通常是从多个不同的方面来描述的: 系统的使用实例 系统的逻辑结构 系统的构成 系统的并发特性 系统的配置,视图,视图的分类: 用例视图 逻辑视图 组件视图 并发视图 配置视图,构成系统模型的几种视图,用例视图,用途:
8、描述系统应该具备的功能,即被称为参与者的外部用户所能观察到的功能。 用例视图是几个视图的核心,它的内容直接驱动其他视图的开发。,逻辑视图,用途:描述用例视图中提出的系统功能的实现。 逻辑视图既描述系统的静态结构,也描述系统内部的动态协作关系。 使用者:主要是设计人员和开发人员。 组成:静态结构在类图和对象图中进行描述;动态模型在状态图、时序图、协作图以及活动图中进行描述。,并发视图,用途:考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。 使用者:主要是开发人员和系统集成人员。 组成:状态图、协作图和活动图。,组件视图,用途:描述系统的实现模块以及它们之间的依赖关系。 组成:组件
9、图。 使用者:主要是开发人员。,配置视图,用途:显示系统的物理部署,并描述位于节点实例上的运行组件实例的部署情况。 组成:配置图。 使用者:开发人员、系统集成人员和测试人员。,图,1 用例图 2 类图 3 对象图 4 状态图 5 时序图 6 协作图 7 活动图 8 组件图 9 配置图,用例图,用例图的概念 用例图建模技术 实例图书馆管理系统中的用例图,用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。 用例图最常用来描述系统以及子系统。,用例图包含6个元素: 参与者(Actor) 用例(Use Case) 关联关系(Association) 包含关系(Inclu
10、de) 扩展关系(Extend) 泛化关系(Generalization),参与者,由参与用例时所担当的角色来表示。 每个参与者可以参与一个或多个用例。,参与者间的关系,在用例图中,使用泛化关系来描述多个参与者之间的公共行为。,参与者间的泛化关系示例:,用例,外部可见的系统功能单元。 识别用例最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何使用系统的。,5.1.4 用例间的关系,1 关联关系 2 包含关系 3 扩展关系 4 泛化关系,关联关系,表示参与者用例之间进行通信。 不同的参与者可以访问相同的用例。,包含关系,客户用例可以简单地包含提供者用例具有的行为,并把它所包含的用例行为作
11、为自身行为的一部分。,扩展关系,扩展用例被定义为基础用例的增量扩展。 基础用例提供扩展点以添加新的行为。 扩展用例提供插入片段以插入到基础用例的扩展点上。,泛化关系,父用例也可以被特别列举为一个或多个子用例。 子用例表示父用例的特殊形式。 子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变继承的行为。,实例图书馆管理系统的用例图,读者: 借书 还书 书籍预定 图书馆管理员: 书籍借出处理 书籍归还处理 预定信息处理,系统管理员: 增加书目 删除或更新书目 增加书籍 减少书籍 增加读者帐户信息 删除或更新读者帐户信息 书籍信息查询 读者信息查询,1. 借阅者请求服务的用例,登录系统 查询
12、自己的借阅信息 查询书籍信息 预定书籍 借阅书籍 归还书籍,2. 图书馆管理员处理借书、还书的用例,处理书籍借阅 处理书籍归还 删除预定信息,3. 系统管理员进行系统维护的用例,查询借阅者信息 查询书籍信息 增加书目 删除或更新书目 增加书籍 删除书籍 添加借阅者帐户 删除或更新借阅者帐户,图书馆管理系统的用例图,1. 借阅者请求服务的用例图 2. 图书馆管理员处理借书、还书的用例图 3. 系统管理员进行系统维护的用例图,1. 借阅者请求服务的用例图,2. 图书馆管理员处理借书、还书的用例图,3. 系统管理员进行系统维护的用例图,类图,描述类、接口及它们之间关系的图。 显示系统中各个类的静态结
13、构。,类,面向对象系统组织结构的核心。 对一组具有相同属性、操作、关系和语义的对象的抽象。 包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。,名称,分为简单名称和路径名称。,属性,描述了类在软件系统中代表的事物(即对象)所具备的特性。 类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为:,属性,1. 可见性 2. 属性名 3. 类型 4. 初始值 5. 属性字符串,(1) 可见性,类型: 公有(Public) “” 私有(Private)“” 受保护(Protected)“” 缺省的成员,(2) 属性名,每个属性都必须有一个名字以区别
14、于类中的其他属性。 属性名由描述所属类的特性的名词或名词短语组成。 单字属性名小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。,(3) 类型,简单类型: 整型 布尔型 实型 枚举类型 系统中的其他类,(4) 初始值,目的: 保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。 为用户提供易用性。,(5) 属性字符串,指定关于属性的其他信息。 任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。,操作,对类的对象所能做的事务的抽象。 一个类可以有任意数量的操作或者根本没有操作。 返回类型、名称和参数一起被称为操作
15、签名。 在UML中,类操作的语法为:,操作,1. 可见性 2. 操作名 3. 参数表 4. 返回类型 5. 属性字符串,(1) 可见性,类型: 公有(Public) “” 私有(Private) “” 受保护(Protected) “”,(2) 操作名,用来描述所属类的行为的动词或动词短语。 单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。,(3) 参数表,一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数才行。 定义方式:“名称:类型”。 若存在多个参数,将各个参数用逗号隔开。 参数可以具有默认值。,(4) 返回类型
16、,是可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void来表示无返回值。,(5) 属性字符串,在操作的定义中加入一些除了预定义元素之外的信息。,注释,注释可以包含图形也可以包含文本。,很多人用$来表示一个查找对象的函数; 标识符由字母、数字、下划线_、$组成; 必须以字母字符、下划线、$符号开始,并且首字母不能是数字。,接口,在没有给出对象的实现和状态的情况下对对象行为的描述。接口是一套规范和标准,没有具体的实现细节,只有常量和公有抽象方法。 包含操作但不包含属性。 没有对外界可见的关联。 一个类可以实现一个或多个接口。一个接口可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理信息系统 面向 对象 分析 设计
链接地址:https://www.31doc.com/p-2324454.html