面向对象需求分析


1、UML建模语言

1.1 模型

  • 是目标事物的某种介质表达,由符号和语义组成
  • 软件模型就是用建模语言对目标软件的简化或抽象
  • 使用模型可以
    • 以一致的方式捕捉或表达软件需求和领域知识
    • 方便软件设计
    • 使设计与需求相分离
    • 生成可用的软件部件
    • 简化复杂系统的表达
    • 减低软件开发成本

1.2 面向对象分析模型

1、功能模型
从用户的角度对软件系统功能的模型化
主要使用用例图

2、对象模型
使用面向对象方法对软件系统静态结构的模型化
主要使用对象图、类图和包图

3、动态模型
对软件系统内部对象行为的模型化
主要使用时序图、活动图、状态图

2、面向对象需求分析

  • 使用面向对象模型分析软件需求的一种方法
  • 面向对象模型包含:静态结构(对象模型)、交互次序(动态模型)和系统功能(功能模型)
  • 面向对象分析大体上有以下内容:
    • 寻找类与对象
    • 识别结构
    • 识别主题
    • 定义属性
    • 建立动态模型
    • 建立功能模型
    • 定义服务

2.1 对象模型(有时也称为领域模型)

  • 对象模型表示静态的、结构化的系统的“数据”性质,
  • 使用统一建模语言(UML)所提供的类图或对象图来建立对象模型
    步骤
    • 识别对象
    • 创建对象模型图
    • 定义对象属性
    • 定义对象行为
    • 定义对象之间的关系

2.2 动态模型

  • 描述对象对内部或外部事件的响应过程
  • 使用UML时序图、状态图、活动图等描述
  • 步骤
    • 编写典型交互行为的脚本(包含构想用户界面)
    • 从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象
    • 排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们
    • 比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配

2.3 功能模型

  • 表明了系统中数据之间的依赖关系,以及有关的数据处理功能
  • 可以使用用例图、数据流图等进行描述
  • 步骤
    • 识别输入、输出
    • 展示功能依赖关系
    • 描述每个功能的目标
    • 优化

2.4 定义服务对象

  • 服务即对象对数据施加的操作
  • 定义方法
    • 常规行为,如Setters,Getters等
      从事件导出的操作
      事件触发消息,消息接收者对该消息进行处理和响应
    • 与数据流图中处理框对应的操作
      由1个对象或多个对象的服务实现
    • 利用继承减少冗余操作
      尽量在分析时减少所需定义的服务数量,降低复杂度
      运用继承可以减少同类型服务的数量

3、用例建模

3.1 用例

  • 用于描述参与者(Actor)为了完成某种业务目标(任务)与软件系统之间的一系列交互步骤
  • 通过用例建模能够建立系统的功能模型

3.2 建模步骤

  • 识别参与者和用例以及它们之间的关系
  • 简述用例的场景(Scenario)
  • 按交互顺序描述用例的事件流程
  • 构建用例表
  • 模型可视化

3.3 识别参与者(使用名词或名词短语的角色命名)

  • 谁使用软件
  • 谁从软件中获得信息
  • 谁向软件提供信息
  • 软件在何处使用
  • 谁维护软件
  • 使用该软件的第三方对象
  • 参与者命名一般使用其业务角色名称,如银行客户

3.4 识别用例

  • 参与者使用软件的目的是什么
    • 参与者为什么要使用软件
    • 参与者会创建、保存、修改和删除数据吗?为什么?
    • 参与者需要将外部的事件输入到软件内部吗?
      -参与者需要知道软件内部的发生的事件吗?
  • 软件是否以恰当的行为提供了业务服务
  • CRUD用例应当合并为一个用例,例如管理***/维护***
  • 每个用例至少有一个参与者
  • 一般使用动宾短语命名,如“取钱”

3.5 简述用例的场景

  • 简洁描述用例的业务目标

  • 包括参与者与软件的交互行为

  • 和软件向参与者反馈的业务结果

  • 例如,银行客户输入取款信息,ATM向客户提供指定数额现金,并显示取款结果

  • 按交互顺序描述用例的事件流程

    • 描述主事件流
    • 描述分支事件流
  • 构建用例表

    • 用例编号
    • 用例名称
    • 参与者
    • 用例简介
    • 前置条件
    • 事件流
    • 后置条件

3.6 模型可视化

  • 绘制用例
  • 绘制参与者
  • 绘制参与者与用例的关系
  • 绘制系统边界
  • 模型优化
    • 包含子用例:多个主用例中的共享主事件流可以抽离成一个包含子用例
    • 扩展子用例:多个主用例中的共享分支事件流可以抽离成一个扩展子用例
    • 泛化

4、领域建模

  • 领域模型是业务中不同领域概念(Concept)和其之间关系(Relationship)的可视化模型
  • 同E-R模型比,领域模型含有数据实体和属性,但还包括其他非持久化存储的领域概念
  • 同设计类模型比,领域模型仅仅针对领域概念进行建模,而不会涉及软件内部技术设计的对象类
  • 建模步骤
    • 头脑风暴,识别领域概念
    • 划分概念类
    • 识别概念类之间的关联
    • 识别概念类的属性
    • 领域模型可视化与优化

3、需求说明文档的撰写与评审

3.1 需求说明文档(SRS)

  • 作用
    • 团队的沟通与交流媒介
    • 软件设计的基础和依据
    • 测试与验收的依据
  • 结构
    • 需求概述
    • 需求规格
    • 详细需求说明
    • 未解决的问题标注

3.2 需求评审

  • 目的
    • 与用户确认需求,保证需求的一致性
    • 去除需求缺陷
  • 评审点
    -完整性
    • 一致性
    • 可理解性
    • 可实现性等
  • 参与人员
    • 需求分析人员,软件设计人员,领域专家,用户,软件测试人员等
  • 需求评审就是技术评审,根据评审的方法划分为以下两类:
    • 非正式评审:由开发人员描述产品并征求意见,不需要记录
    • 正式评审:应该包含一组由不同背景的审查人员组成的小组
      在这里插入图片描述
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangkay88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值