(软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型
文章目录
- 一:建立动态模型
- (1)概念
- A:适用性
- B:步骤
- (2)编写脚本
- A:定义
- B:目的
- C:内容
- D:方法
- (3)设想用户界面
- A:重要性
- B:目的
- C:方法
- (4)画事件跟踪图
- A:必要性
- B:步骤
- ①:确定事件
- (5)画状态图
- A:定义
- B:适用性
- C:方法
- (6)审查动态模型
- 二:建立功能模型
- (1)定义
- (2)画出基本系统模型图
- (3)画出功能级数据流图
- (4)描述处理框功能
- A:要点
- B:分类
一:建立动态模型
(1)概念
A:适用性
- 对于仅存储静态数据的系统来说,动态模型并没有什么意义
- 在开发交互式系统时,动态模型却起着很重要的作用
- 收集输入信息是系统的主要工作时,则在开发时建立正确的动态模型是至关重要的
B:步骤
- 编写典型交互行为的脚本
- 从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象
- 排列事件发生的次序,确定每个对象的状态及状态间的转换关系,用状态图描绘
- 比较各个对象的状态图,确保事件之间的匹配
(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:分类
- 说明性描述(更为重要):规定了输入值和输出值之间的关系,以及输出值应遵循的规律
- 过程性描述:通过算法说明“做什么”
(软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型相关推荐
- (软件工程复习核心重点)第九章面向对象分析-第二节:面向对象分析之建立对象模型
文章目录 一: 基本概念 (1)对象模型 (2)先建立对象模型的原因 (3)信息来源 (4)典型的建模步骤 二:确定类与对象 (1)找出候选的类与对象 A:客观事物分类 B:非正式分析 C:提取隐含的 ...
- (软件工程复习核心重点)第八章面向对象方法学习题
文章目录 名词解释 简答题 应用题 名词解释 面向对象方法学:面向对象方法是一种以数据或信息为主线,把数据和处理相结合的方法,即把对象作为由数据及可以施加在这些数据上的操作所构成的统一体.面向对象的方 ...
- (软件工程复习核心重点)第十章面向对象设计-第五节:设计数据管理子系统和设计类中的服务
文章目录 一:设计数据管理子系统 (1)概念 (2)选择数据存储管理模式 A:文件管理系统 B:关系数据库管理系统 C:面向对象数据库管理系统 (3)设计数据管理子系统 A:设计数据格式 B:设计相应 ...
- (软件工程复习核心重点)第十章面向对象设计-第四节:设计人机交互子系统和设计任务管理子系统
文章目录 一:设计人机交互子系统 (1)概念 A:主要内容 B:重要性 (2)设计策略 A:分类用户 B:描述用户 C:设计命令层次 ①:研究现有的人机交互含义和准则 ②:确定初始的命令层次 ③:精化 ...
- (软件工程复习核心重点)第十章面向对象设计-第一节:面向对象设计的基本概念与准则
文章目录 一:面向对象设计概念 (1)定义 (2)设计与分析的关系 (3)分类 二:面向对象的设计准则 (1)模块化 (2)抽象 (3)信息隐藏 (4)低耦合 A:交互耦合 B:继承耦合 (5)高内聚 ...
- (软件工程复习核心重点)第三章需求分析习题
文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 四:简答题 (1)必考 (2)了解 五:应用题/画图题 一:选择题 二:填空题 需求分析的任务 确定对系统的综合要求 分析系统的数据要求 导 ...
- (软件工程复习核心重点)第六章实现和测试-第七节:黑盒测试
文章目录 一:概念 (1)目的 (2)适用性 (3)设计测试方案时需要考虑的问题(了解) (4)测试用例的标准 二:技术方法 (1)等价类划分法 A:定义 B:目的 C:流程 ①:划分数据的等价类 ② ...
- (软件工程复习核心重点)第九章软件项目管理
文章目录 一:估算软件规模 (1)代码行技术 (2)功能点技术 二:工作量估算 三:进度计划 (1)甘特图(Cantt图) (2)工程网络 四:人员组织 五:质量保证 六:软件配置管理 七:能力成熟度 ...
- (软件工程复习核心重点)第十章面向对象设计-第二节:启发规则和软件重用
文章目录 一:启发规则 (1)设计结果应该清晰易懂 (2)一般一特殊结构的深度适当 (3)设计简单的类 (4)使用简单的协议 (5)使用简单的服务 (6)把设计变动减至最小 二:软件重用 (1)概述 ...
最新文章
- springboot mockmvc单元测试
- linux内核链表的使用
- [攻防世界 pwn]——dice_game
- 5招减少网站恶意文件上传
- (转)如何查看java本地方法
- WeUI 为微信 Web 服务量身设计-h5前端框架
- Macbook pro笔记本键盘失灵了(u,i,o,j,k,l,k,m无效了)解决办法
- java getcause_java - 如果在异常上调用getCause(),为什么还要处理Throwable - 堆栈内存溢出...
- linux查看空间使用情况并且清除,科技常识:Linux 查看空间使用情况的实例详解...
- 微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布| 极客头条...
- 开个坑,不定期更新OI段子
- 对c语言课程的收获,c语言课程设计心得体会精选.doc
- redis的持久化相关操纵
- Ubuntu安装ISE14.7与Vivado2018.2
- 百度一键Root授权管理完美卸载解决方案
- 为什么一提到苹果就想到乔布斯,蒂姆·库克的事迹你知道多少?
- ppt中如何合并流程图_PPT中流程图如何分支?
- 央视气象女主播王蓝一揭秘天气预报潜规则
- 大佬用python写了个豆瓣短评爬虫,有你喜欢的电视试试吗
- wince buid
热门文章
- 程序员工资虽高,但也很苦逼!
- 预充电电路工作原理_常见变频空调室外机电路工作原理及组成
- 绕固定坐标轴旋转与绕自身坐标轴旋转一致性证明
- 4 月 10 截止 | 南开大学百名青年学科带头人孙宝发课题组招生
- Mac如何快速导出保存Pages文档里的图片
- echo 多行_Java中Scanner的用法:单行多行输入
- P2911 [USACO08OCT]Bovine Bones G (python3实现)
- 虚拟化物理服务器参数,浅谈部署VMware物理系统虚拟化技术P2V(Physical to Virtual)
- php倒计时关闭订单,订单倒计时取消,nodejs 辅助实现倒计时任务
- JAVA的静态方法的运算_java. util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。...