面向对象分析-第三节:面向对象分析之建立动态模型和功能模型

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象分析-第三节:面向对象分析之建立动态模型和功能模型相关的知识,希望对你有一定的参考价值。

文章目录

一:建立动态模型

(1)概念

A:适用性

  • 对于仅存储静态数据的系统来说,动态模型并没有什么意义
  • 在开发交互式系统时,动态模型却起着很重要的作用
  • 收集输入信息是系统的主要工作时,则在开发时建立正确的动态模型是至关重要的

B:步骤

  1. 编写典型交互行为的脚本
  2. 从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象
  3. 排列事件发生的次序,确定每个对象的状态及状态间的转换关系,用状态图描绘
  4. 比较各个对象的状态图,确保事件之间的匹配

(2)编写脚本

A:定义

脚本是指系统在某一执行期间内出现的一系列事件。脚本描述用户与目标系统之间的一个或多个典型的交互过程。编写脚本的过程,就是分析用户对系统交互行为的要求的过程

B:目的

保证不遗漏重要的交互步骤,有助于确保交互过程的正确性、清晰性

C:内容

脚本描写的范围主要由编写脚本的具体目的决定,既可以包括系统中发生的全部事件,也可以只包括由某些特定对象触发的事件

D:方法

  • 编写正常情况的脚本
  • 考虑特殊情况
  • 考虑出错情况

(3)设想用户界面

大多数交互行为都可以分为应用逻辑用户界面两部分,通常,系统分析员首先集中精力考虑系统的信息流控制流,而不是首先考虑用户界面

A:重要性

用户界面的美观程度、方便程度、易学程度以及效率等,是用户使用系统时最先感受到的。用户界面的好坏往往对用户是否喜欢、是否接受一个系统起很重要的作用

B:目的

这个阶段用户界面的细节并不太重要,重要的是在这种界面下的信息交换方式。目的是确保能够完成全部必要的信息交换,而不会丢失重要的信息

C:方法

快速地建立起用户界面的原型,供用户试用与评价

(4)画事件跟踪图

A:必要性

用自然语言书写的脚本往往不够简明,而且有时在阅读时会有二义性。为了有助于建立动态模型,需要画出事件跟踪图

B:步骤

①:确定事件

1.提取出所有外部事件

  • 找出正常事件异常事件出错条件(传递信息的对象的动作也是事件)
  • 对控制流产生相同效果的事件组合为一类事件,并取一个唯一的名字

2.画出事件跟踪图

  • 一条竖线代表一个对象
  • 每个事件用一条水平的箭头线表示
  • 箭头方向从事件的发送对象指向接受对象
  • 时间从上向下递增
  • 用箭头线在垂直方向上的相对位置表示事件发生的先后,不表示事件间的时间差

(5)画状态图

A:定义

状态图描绘事件与对象状态的关系。当对象接受了一个事件以后,它的下个状态取决于当前状态及所接受的事件。由事件引起的改变称为“转换”。一张状态图描绘了一类对象的行为,它确定了由事件序列引出的状态序列

B:适用性

对于仅响应与过去历史无关的那些输入事件,或者把历史作为不影响控制流的参数类的对象,状态图是不必要的

C:方法

  • 仅考虑事件跟踪图中指向某条竖线的那些箭头线。把这些事件作为状态图中的有向边,边上标以事件名
  • 两个事件之间的间隔就是一个状态,每个状态取个有意义的名字。从事件跟踪图中当前考虑的竖线射出的箭头线,是这条竖线代表的对象达到某个状态时所做的行为。
  • 根据一张事件跟踪图画出状态图后,再把其他脚本的事件跟踪图合并到该图中
  • 考虑完正常事件后再考虑边界情况和特殊情况,包括在不适当时候发生的事件

(6)审查动态模型

  • 检查系统级的完整性一致性
  • 审查每个事件,跟踪它对系统中各对象所产生的效果,保证与每个脚本都匹配

二:建立功能模型

(1)定义

功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一组数据流图组成。在建立了对象模型和动态模型之后再建立功能模型

(2)画出基本系统模型图

基本的系统模型有下述两部分组成:

  • 数据源点/终点:数据源点输入的数据和输出到数据终点的数据,是系统与外部世界间交互事件的参数
  • 处理框:代表了系统加工变换数据的整体功能

(3)画出功能级数据流图

把基本系统模型中单一的处理框分解成若干个处理框,以描述系统加工、变换数据的基本功能,就得到功能级数据流图

(4)描述处理框功能

A:要点

着重描述每个处理框所代表的功能,而不是实现功能的具体算法

B:分类

  • 说明性描述(更为重要):规定了输入值和输出值之间的关系,以及输出值应遵循的规律
  • 过程性描述:通过算法说明“做什么”

以上是关于面向对象分析-第三节:面向对象分析之建立动态模型和功能模型的主要内容,如果未能解决你的问题,请参考以下文章

面向对象分析-第二节:面向对象分析之建立对象模型

面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?

20171127-构建之法:现代软件工程-阅读笔记

面向对象分析与设计—OOD部分

面向对象设计-第三节:系统分解和设计问题域子系统

面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?