【软件工程系列】面向对象方法学

面向对象方法学

一、面向对象方法学

传统软件工程方法学适用于中小型软件产品开发;

面向对象软件工程方法学适用于大型软件产品开发。

面向对象方法学方程式:

OO = 对象 + 类 + 继承 + 传递消息实现通信

1.1 面向对象方法学概念

  1. 对象:具有相同状态的一组操作的集合,对状态和操作的封装。

    形象表示:

    【软件工程系列】面向对象方法学
  2. 消息

    要求某对象执行某个操作的规格说明。

    三部分:

    • 接受消息的对象
    • 消息名
    • 0或多个变元
  3. 方法和属性

    • 方法:对象执行的操作,即类中定义的服务。
    • 属性:类中所定义数据,对客观世界实体具体性质的抽象。
  4. 继承

    子类自动共享基类中定义的属性和方法的机制。

    【软件工程系列】面向对象方法学

    【软件工程系列】面向对象方法学

    1.3 面向对象方法学优点

    1. 与人类习惯思维方法一致

      对象是对现实世界正确抽象,问题空间和解空间结构一致。

    2. 稳定性好

      软件系统结构根据问题领域模型建立,功能需求变化不会引起软件结构整体变化,作局部性修改。

      如从已有类派生新子类实现功能扩充或修改。

    3. 可重用性好

      传统软件重用技术:标准函数库。

      面向对象重用技术:类,派生类和创建类的实例

    4. 易开发大型软件产品

      封装性好,易于分解,易于合作开发。

    5. 可维护性好

      稳定性好、容易修改、容易理解、易于测试和调试。

    二、UML简介

    UML全称为Unified Modeling Language,目前最流行的面向对象建模语言。

    2.1 建模必要性

    “建模是捕获系统本质的过程”

    • 捕获商业流程
    • 促进沟通
    • 管理复杂性
    • 定义软件构架
    • 促进软件复用

    2.2 UML发展

    UML全称为Unified Modeling Language

    UML是图示化、说明、构造一个软件系统并生成其文档的标准语言。

    UML独立于开发过程,可与大多数面向对象开发过程配合使用

    UML独立于程序设计语言,可用C++、Java等任何一种面向对象程序语言实现。

    2.3 UML构成

    【软件工程系列】面向对象方法学

    2.4 UML视图

    【软件工程系列】面向对象方法学

    【软件工程系列】面向对象方法学

    主要元素:用例执行者

    用例:执行者与计算机一次典型交互,代表系统某一完整功能。

    执行者:描述与系统交互的人或物,代表外部实体。

    3.1 UML用例图案例

    案例:建立一航空公司的机票预定系统,让客户通过电
    话或网络买票、改变订票、取消订票、预定旅馆、租
    车等等。

    建立用例模型:

    1. 发现执行者

      • 谁使用该系统;

      • 谁改变系统的数据;

      • 谁从系统获取信息;

      • 谁需要系统的支持以完成日常工作任务;

      • 谁负责维护、管理并保持系统正常运行;

      • 系统需要应付那些硬件设备;

      • 系统需要和那些外部系统交互;

      • 谁对系统运行产生的结果感兴趣。

        【软件工程系列】面向对象方法学 【软件工程系列】面向对象方法学
      • 执行者间关联

        泛化关系

        【软件工程系列】面向对象方法学

        有父用例的行为,可出现在父用例出现的任何地方。添加自己行为。

        扩展关系:

        允许一个用例扩展另一用例提供的功能,与泛化关联类似,有更多规则限制:

        基本UseCase必须声明若干“扩展点”,扩展UseCase只能在扩展点上增加新行为。

        【软件工程系列】面向对象方法学

        Check Credit检查输入的信用卡号是否有效,有足够资金。处理Purchase Ticket用例,总运行Check Credit用例。

        【软件工程系列】面向对象方法学

        活动:活动名/动作表达式

        entry入口活动、exit出口活动、do内部执行活动

        【软件工程系列】面向对象方法学
      • 状态转换

        时间说明[ 守卫条件 ] / 动作表达式^发送子句

        事件说明:事件名(参数表)

        守卫条件:事件发生且守卫条件为真状态转换

        动作表达式:状态转换开始,执行的表达式

        发送子句:动作特例,在状态转换期间发送消息

    【软件工程系列】面向对象方法学
  5. 历史状态

    转移到组合状态的历史状态,对象恢复上次离开组合状态的最后一个子状态。

    【软件工程系列】面向对象方法学

    五、顺序图、协作图、活动图

    5.1 消息

    对象间交互通过消息。

    1. 简单消息:没有描述通信的细节

      【软件工程系列】面向对象方法学
    2. 异步消息:调用者发出消息后不等待消息返回就继续执行

      【软件工程系列】面向对象方法学

      5.3 协作图(Collaboration diagram)

      协作图描述相互协作对象间交互关系和链接关系。

      顺序图着重表现交互时间顺序;

      协作图着重表现交互对象的静态链接消息;

      协作图显示对象间处理过程的分布。

      【软件工程系列】面向对象方法学

      泳道:对象对活动的责任。泳道把活动分成若干组,把组指定给对象,对象履行该组活动。

      【软件工程系列】面向对象方法学
    3. 6.2 配置图

      配置图(Deployment diagram)描述了系统硬件和软件物理配置情况和系统体系结构,显示系统运行时刻的结构。

      配置图包含结点和连接两个元素,配置图中的结点代表实际的物理设备以及在该设备上运行的构件和对象,结点的图符是一个立方体。

      配置图各结点之间进行交互的通信路径称为连接,用结点间的连线表示。

      【软件工程系列】面向对象方法学

      7.2 约束

      约束是用文字表达式表达的语义限制,对声明全局的或影响大量元素的条件特别适用。

      约束表示为括号中的表达式字符串,附加在类、对象、关系上和注释上等。

      【软件工程系列】面向对象方法学

      7.3 版类

      版类(版型)在模型本身中定义的一种模型元素,UML元素具有通用语义,利用版类进行专有化和扩展,在已有元素上增加新语义。

      版类用放置在基本模型元素符号中或附近的被《》括起

      的文字串显示,还可为特殊版型创建图标,替换基本元素符号。

      【软件工程系列】面向对象方法学

      班级管理子用例图

      【软件工程系列】面向对象方法学

      账户管理子用例图:

      【软件工程系列】面向对象方法学

      账户管理协作图:

      【软件工程系列】面向对象方法学

      修改账户顺序图:

      【软件工程系列】面向对象方法学

      课程管理类图:

      【软件工程系列】面向对象方法学

      8.4 生成核心代码

      详细功能代码可在实现软件时再补充,也可实现由代码到类图的逆向工程。

      8.5 建立数据模型

      【软件工程系列】面向对象方法学

      来源:槑!

      声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月23日
下一篇 2021年1月23日

相关推荐