软件工程之面向对象分析与设计

文章链接:https://codemouse.online/archives/2020-05-15124035

面向对象的基本概念

  • :一组属性以及这组属性上专用操作封装体。
  • :对象间通信手段,通过发送消息请求服务。
  • :基于层次关系不同类共享数据和操作机制。
  • :一组具有相同属性和相同操作的对象集合。
  • :不同对象对同一个操作产生不一样的结果。
  • :不是编译之前就把对象和类绑定在一起,编译的时候对象和类才会产生一定的联系。

面向对象的分析与设计过程

面向对象分析步骤

  1. 获取客户的系统需求
  2. 以需求选择类和对象
  3. 定义类的结构和层次
  4. 建造对象—关系模型
  5. 建造对象—行为模型
  6. 用用况/场景来复审分析模型

面向对象设计步骤

  1. 系统设计
  2. 对象设计
  3. 消息设计
  4. 复审

系统设计

  1. 将分析模型划分成子系统
  2. 标识问题本身的并发性,并为子系统分配处理器
  3. 任务管理设计
  4. 数据管理设计
  5. 资源管理设计
  6. 人机界面设计
  7. 子系统间的通信

UML概述

UML发展

  • 1994年开始研究统一的方法
  • 1996年UML0.9
  • 1995年Jacobson加盟
  • 1997年UML1.0
  • 2004年UML2.0

模型元素

  • :内部结构图展示了类的分解,给出了组成一个结构化类元的相互连接的部分、端口和连接器。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YB3EiVKU-1592880955681)(https://store.codemouse.online/pic/a191628e50b2299ef7197f218276d311.png)]
  • 确定执行者

    • :指与系统交互的人或其它系统,代表一种角色,而不是具体的某个人 。
    • :使用系统的主要功能 。
    • :处理系统的辅助功能 。
    • :开始一个用况 。
    • :从不开始用况,只是参与一个或多个用况 。

    确定用况

    1. 用况的特征

      • 用况总是被执行者启动的,执行者必须直接或间接地指示系统去执行用况
      • 用况向执行者提供的值必须可识别
      • 用况是完整的,一个用况必须是一个完整的描述
      • 用况是一个类,而不是实例,用况的实例称为场景
    2. 用况的描述:通常用正文来描述或活动图来描述。

      • 用况的目的
      • 用况是如何启动的
      • 执行者和用况之间的消息流
      • 用况中可供选择的流
      • 如何通过给执行者一个值来结束用况
    3. 用况的详细描述

      • 前置条件和后置条件:表示用况开始和结束的条件
      • 事件流(flow of events):事件流是一系列陈述句,它是从执行者的角度,列出用况各个步骤用况描述中可以包含条件、分支和循环。

    描述用况

    :订购货物
    :客户、客户代表
    :一个合法的客户已经登录到这个系统

    1. 当客户选择订购货物时,用况开始
    2. 客户输入他的姓名和地址
    3. 当客户输入产品代码
      a. 系统给出产品描述和价格
      b. 系统往客户订单中添加该物品的价格
      循环结束
    4. 客户输入信用卡支付信息
    5. 客户选择提交
    6. 系统检验输入的信息,保存订单,向记账系统转发支付信息
    7. 支付确认后,订单已确认,返回给客户一个订单ID,用况结束
      :如果订单没有被取消,它将保存在系统中,并做上标记

    如果在订购货物用况中,客户可以在提交订单前随时取消订单,其如下:

    • 在选择提交前的任何时候,客户都可以选择cancel。这次订购没有被保存,用况结束。
    • 在基本路径第6步,如果有任何不正确的信息,系统提示客户去修改这些信息。
    • 在基本路径第7步,如果支付没有被确认,系统将提示客户改正支付信息或者取消。

    事件流

    • :是运转正常时的路径,是没有分支和选择的简单陈述句。
    • :不同于基本路径而允许不同的事件序列的路径。

    用况关系

  • 描述用况

    • 开户用况
      :开户
      :银行职员(客户代理),客户
      :一个合法的银行职员(客户代理)已登录到该系统

      1.当选择开户功能时用况开始
      2.输入客户信息(姓名、地址、身份证 等)
      3.从账户管理系统获取新的账
      4.请客户输入密码
      5.请客户再次输入密码
      6.如果两次密码不一致则回到第4步,否则继续
      7.在账户库中添加新账户
      8.打印存折,用况结束
      :在账户库中增加了一个新账户,得到一张新存折

    • 取款用况
      :取款
      :银行职员(客户代理),客户
      :一个合法的银行职员(客户代理)已登录到该系统

      1.当选择取款功能时用况开始。
      2.当输入客户信息(姓名、账 等)后
      a)如果客户信息与账户不一致,显示错误信息,可以重新输入或结束用况。
      b)如果该账户被冻结(如因挂失而冻结),显示冻结信息并结束用况。
      3.输入并校验密码。
      4.输入取款金额,如果该账户的余款小于取款金额,显示错误信息,要求重新输入。
      5.打印取款单,交客户签字。
      6.建立取款事件记录,更新账户信息。
      7.打印存折,用况结束 。
      :
      1.在第5步客户签字之前的任何时刻,客户可以取消本次取款,用况结束。
      2.第3步校验密码时,如发现密码不一致,则重新输入密码,或用况结束。
      :如果取款成功,客户账户中的余额被更新(减少),否则余额不变。

    静态建模

    建模构图组件

  • :三个或三个以上的类之间可以互相关联 。

  • 表示整体一部分关系的一种关联,它的“部分”对象可以是任意“整体”对象的一部分。

  • :UML中可以把关联定义成类,该关联的每个链都是这个类的实例

  • 符 说明

    实现

    将一个模型元素(如类)连接到另一个模型元素(如接口),后者(如接口)是行为的规约,而不是结构,前者(如类)必须至少支持(通过继承或直接声明)后者的所有操作。可以认为前者是后者的实现。

    依赖

    指出两个或多个模型元素之间语义上的关系。它表示被依赖元素的变化会要求或指示依赖元素的改变。

    派生

    状态机图组件

    复杂迁移

    复杂迁移:多个状态都满足的情况下才触发。

用活动图画出 取款的操作:

部署图

部署图

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月18日
下一篇 2020年5月18日

相关推荐