面向对象分析

面向对象的需求分析建模

面向对象分析方法中的需求分析包含两个模型:领域模型和用例模型。

  • 领域模型表示了需求分析阶段“当前系统”逻辑模型的静态结构;

  • 用例模型是“目标系统”的逻辑模型,定义了“目标系统”做什么的需求。由以下四个部分组成:

    • 用例图
    • 用例说明
    • 系统顺序图(system sequence diagram)
    • 操作契约(operation contract)

image.png

领域模型

领域模型:针对某一特定领域内概念类或者对象的抽象可视化表示。
主要用于概括地描述业务背景及重要的业务流程,帮助软件开发人员在短时间内尽快了解业务。

  • 业务背景:可由用户需求说明书或者调研报告中具有代表业务概念或者业务对象的词汇获得,这些词汇可统称为“概念类”;并通过能够代表关系的词汇建立概念类之间的关系,表示成能够代表业务知识结构的类图;
  • 业务流程:一般由提交请求的角色及提供服务的对象所执行的活动(活动及任务节点)构成,活动的输出一般有数据对象和传给另一个活动的消息组成,建议使用UML的活动图进行描述。

用例模型

用例模型由以下四个部分组成:

  • 用例图;
  • 用例说明;
  • 系统顺序图(system sequence diagram,option);
  • 操作契约(operation contract,option)

以用例为核心从使用者的角度描述和解释待构建系统的功能需求

用例模型的基本结构:
image.png

用例图

用例图由三个基本元素组成:

  • Actor:称为角色或者参与者,表示使用系统的对象,代表角色的不一定是人,也可以是组织、系统或设备;
  • Use_case:称为用例,描述角色如何使用系统功能实现需求目标的一组成功场景和一系列失败场景的集合;
  • Association:表示角色与用例之间的关系,以及用例和子用例之间的关系;

基本用例与子用例

  • 基本用例:与角色直接相关的用例,表示系统的功能需求;

  • 子用例:通过场景描述分析归纳出的用例,也表示了系统的功能,是基本用例的一个组成部分:

    • 包含子用例:多个基本用例中的某个与角色交互的场景具有相同的操作,且这些场景都是基本用例中必须执行的步骤,可以将其抽取出来作为基本用例的子用例
    • 扩展子用例:(多个)基本用例中的某些场景存在相同的条件判断的情况,可以将其抽取出来作为基本用例的子用例;

系统顺序图SSD

使用UML的sequence diagram描述角色与系统之间的交互场景实例;
在用例描述的基础上需进一步确定角色与系统之间的交互信息,并以可编程的方式将其命名;
系统顺序图中“一般”只需要三个UML的符号元素

  • 顺序图中的对象图标:<类名:对象名>
  • 角色,类的特殊标识;
  • 代表软件系统的对象,一般使用system或者系统命名;
  • 角色与system之间的交互信息,简称消息或操作;
    • 同步消息:请求必须有应答才能发送后续消息;
    • 异步消息:无须等待消息应答就可发送其他消息;
    • 创建消息:创建一个对象实例的消息,SSD中不需要;
    • 删除消息:删除一个对象实例的消息。

注意:

  1. SSD是用于替代用例说明文本的一种方式;
  2. 图中只有两个对象,表示角色对象与系统对象;
  3. 图中的消息名称及参数要求以可编程的方式命名;
  4. 消息名称和参数可以通过一个列表使用中文说明具体含义;
  5. 用例图中的每个用例都应该对应一张SSD;
  6. 角色发给系统的指令(系统事件)是操作契约关注的元素
    image.png

操作契约


面向对象分析
http://example.com/2024/11/27/Notes/课程/大三(上)/软件工程/面向对象分析/
许可协议