功能模型功能模型表明

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象的主要优点:
1. 与人类习惯的思维一致 2. 稳定性好 3. 可重用性好 4. 较易开发出大型软件产品 5. 可维护性好
稳定性好、易于修改、容易理解、容易测试和调试
面向对象技术的优点并不是减少了开发时间, 相反,初次使用这种技术开发软件,可能比用传统的方 法所需要的实践还稍微长一点。
对象(object)
类常常可看做是一个抽象数据类型(ADT)的 实现。但更合适的是把类看做是某种概念 的模型。
建立类的实例时常常使用其它类的实例, 它们提供了该类所需要的服务。
用到的这些实例应当受到保护不被其它对 象存取,包括同一个类的其它实例。
消息(Message)
什么是消息?
消息,就是要求某个对象执行在定义它的那个类 中所定义的某个操作的规格说明。通常,一个消息有 下述三部分组成:
面向对象中的基本概念
对象的特点 以数据为中心 对象是主动的 实现了数据封装 本质上具有并行性 模块独立性
对象的分类
外部实体:与系统交换信息的外部设备、相 关子系统、操作员或用户等;
信息结构:问题论域中的概念实体,如信号、 报表、显示信息等;
需要记忆的事件:系统执行过程中产生并需 要记忆的事件,如单击鼠标,击打键盘等;
第9章 面向对象方法学引论
面向对象的概念
什么是面向对象 对象 类 消息 继承
什么是面向对象
Coad和Yourdon给出了一个定义:“面向对象 =对象+类+继承+通信”。
如果一个软件系统是使用这样 4 个概念设计 和实现的,则认为这个软件系统是面向对象 的。
一个面向对象的程序的每一成份应是对象, 计算是通过新的对象的建立和对象之间的通 信来执行的。
对象模型
动态模型
功能模型
这个模型化的过程是一个迭代过程。通过不断 更新、细化,直到切合系统的真正需求为止。
对象模型
是三个模型中最关键的一个模型,它的作用是 描述系统的静态结构,包括构成系统的类和对 象,它们的属性和操作,及它们之间的关系。
在OMT中,类与类之间的关系叫做关联。关联 代表一组存在于两个或多个对象之间的、具有 相同结构和含义的具体连接。关联可以是物理 的,也可以是逻辑的。
既存类可当做基类来引用,则新类相应地可 当做派生类来引用。
例:类的继承层次
Polygon
Triangle
Quadrilateral
Rectangle
使用继承设计一个新类,可以视为描述一 个新的对象集,它是既存类所描述对象集 的子集合。
这个新的子集合可以认为是既存类的一个 特殊化。
新类的界面可以等同于既存类的界面,新 类的界面还可以被看做是既存类界面的一 个扩充界面。例如,从一个既存的车辆类 派生的四轮驱动车类可能不仅是车辆类子 集合定义的特殊化,而且还可能在新类的 界面中引入新的能力。
角色:与系统交互的人员所扮演的角色,如 学生、教师、会计等;
组织机构:有关机构,如公司、部门、小组 等;
地点或位置:用做系统环境或问题上下文的 场所、位置,如客户地址、收件人地址等;
操作规程:如操作菜单、某种数据输入过程 等。
类(class)
类是一组具有相同数据结构和相同操作的对象 的集合。
接受消息的对象 消息选择符(也称为消息名) 零个或多个变元 如:myCircle.show(GREEN) 不同于结构化设计中的函数调用。
继承 (Inheritance)
继承是使用已有的类定义做为基础建立新类 的定义的技术。
新类的定义可以是既存类所声明的数据和新 类所增加的声明的组合。新类复用既存的定 义,而不要求修改既存类。
Polygon
referencePoint Vertices
Draw( ) move(x, y) contains?(aPoint)
Quadrilateral
referencePoint Vertices
Draw( ) move(x, y) contains?(aPoint)
Polygon类
Polygon类的子类 Quadrilateral
有两种重载:
函数重载是指在同一作用域内的若干个参数特 征不 同的函数可以使用相同函数名字。 运算符重载是指同一个运算符可以施加于不同 类型的操作数上面。当然,当参数特征不同或被 操作数的类 型不同时,实现函数的算法或运算符 的语义是不相同的。
对象模型化技术OMT
对象模型化技术把分析时收集的信息构造在三 类模型中,即对象模型、动态模型和功能模型。
Baidu Nhomakorabea
面向对象的要点:
1. 认为客观世界是由各种对象组成的,任何事 物都是对象,复杂的对象可以有比较简单的对 象以某种方式组合而成。 2. 把所有对象都划分成各种对象类,每个对象 类都定义了一组数据和一组方法。 3. 按照子类(或称为派生类)与父类(或称为 基类)的关系,把若干个对象类组成一个层次 结构的系统(也称为类等级)。 4. 对象彼此之间仅能通过传递消息互相联系。
类的定义包括一组数据属性和在数据上的一组 合法操作。
类定义可以视为一个具有类似特性与共同行为 的对象的模板,可用来产生对象。
在一个类中,每个对象都是类的实例 (Instance),它们都可使用类中的函数。
类 ← 两个四边形对象
Quadrilateral类的每个对象有相同的一组 属性和操作。因此,类Quadrilateral提供 了一个模板,表示了所有四边形对象。
对象是面向对象开发方法的基本成份。 每个对象可用它本身的一组属性和它可以执
行的一组操作来定义。 属性一般只能通过执行对象的操作来改变。 操作又称为方法或服务,它描述了对象执行
的功能,若通过消息传递,还可以为其它对 象使用。
面向对象中的基本概念
对象的形象表示
操作1
界 面
操作2
操作3
状态 S
操作1,2,3的实现
多态性(Polymorphism)
在面向对象的软件技术中,多态性是指子 类对象可以象父类对象那样使用,同样的消 息既可以发送给父类对象也可以发送给子类 对象。
多态性机制不仅增加了面向对象软件系 统的灵活性,进一步减少了信息冗余,而且 显著提高了软件的可重用性和可扩充性。
重载(Overloading)
相关文档
最新文档