用例分析方法总结
1. 前言
2. 具体分析方法
2.1. 如何参与者用例?
(1)、谁会来使用这个系统?
(2)、谁会来安装这个系统?
(3)、谁会来启动这个系统?
(4)、谁会来维护这个系统?
(5)、谁会来关闭这个系统?
(6)、哪些系统会来使用这个系统?
(7)、谁会从这个系统获取信息?
(8)、谁会给这个系统提供信息?
(9)、在预先设定的时候到达时,有什么事情会自动发生吗?
(10)、哪些系统会和这个系统联网?
(11)、是否会有硬件设备会与这个系统联网?
(12)、哪些数据库会与这个系统联网?
(13)、公司内部会有哪些人员会来使用这个系统?
(14)、公司外部会有哪些人员会来使用这个系统?
(15)、当特定的时间或事件发生时,这个系统需要自动通知什么人,或是自动通知其他系统吗?
2.2. 如何寻找参与者?
(1)、参与者想要从这个系统获得什么样的功能?
(2)、这个系统存储信息吗?哪些参与者将建立、读取、更新或删除这些信息?
(3)、当系统内部状态有变化的时候,这个系统需要通知参与者吗?
(4)、是否有什么外部事件是这个系统需要知道的的?当这些外部事件发生时,哪些参与者会通知这个系统?
(5)、这个系统需要定期执行什么操作?
(6)、当发生了某些重要的外部事件时,这个系统需要自动执行什么操作吗?
(7)、这个用例的名称够明确吗?是否能够从这个用例的名称,直接判断出它的结果?
(8)、这个用例会有许多不同的结果吗?还是这些结果,其实是在不同的时间点产生的?
2.3. 包含关系注意要点
(1)、需要共享的相同流程,才能独立处理
(2)、暂存数据或是访问数据库的操作,不要轻易独立出来
(3)、如果只是一两句相同的流程叙述,不要大费周章地独立出来
2.4. 扩展关系要点
(1)、谨慎的使用扩展关系,避免因为扩展关系,而让用例图变得很难理解
(2)、扩展关系通常用于系统上线之后的改版,可以在不变动已经写好的用例叙述的情况下,利用扩展关系,加上一段新的用例
叙述,以满足需求
(3)、不一定会执行的流程,可以放置在替代流程中,要是想要跟其他用例共享这段流程的话,也可以改用扩展关系
2.5. Gustav Karner的用例点模型估算工时
Karner先生建议:一个用例点大约可以估算成20人时(man hour)
举个例子:假设我们的项目算出来一共有100个用例点,团队成员一共有5人,没人每天工作8小时,并且一周工作5天,最后就
会得到需要花费10州的估算,计算过程如下:
每个用例点估算人时:20人时
用例点:100个
团队成员:5人
每天工作时数:8小时
每周工作天数:5天
计算过程:
20(人时) × 100(用例点) = 2000(人时)
8(小时) × 5(工作天) = 40(工时)
2000(人时) ÷ 5(人) ÷ 40(工时) = 10(周)
估计工时:10周
用例点 = 未经调整的用例点 × 技术复杂系数 × 环境系数
未经调整的用例点 = 参与者总权重 + 用例总权重
2.5.1. 参与者总权重
参与者总权重 |
类型 | 描述 | 权值 | 个数 |
简单参与者 | 这种类型的参与者通常是其他系统,采用程序接口与我们开发的系统交互 | 1 |
一般参与者 | 一般有2中,第一种是采用特殊协议交互的其他系统,第二种是采用文本模式交互的人类用户 | 2 |
复杂参与者 | 这种参与者就是我常见的人类用户,采用丰富且亲和力高的图形界面 | 3 |
总计权重: | |
2.5.2. 用例总权重——分类方法1
用例总权重 |
类型 | 描述 | 权值 | 个数 |
简单型用例 | 拥有少于3个的事务 | 5 |
一般型用例 | 拥有4——7个事务 | 10 |
复杂型用例 | 拥有多于7个事务 | 15 |
总计权重: | |
2.5.3. 用例总权重——分类方法2
用例总权重 | |
类型 | 描述 | 权值 | 个数 |
简单型用例 | 少于5种分析对象 | 5 |
一般型用例 | 使用了5——10种分析对象 | 10 |
复杂型用例 | 多于10种分析对象 | 15 |
总计权重: | |
2.5.4. 技术系数加权值
技术系数加权值 |
系数 | 说明 | 加权值 | 强度等级(0-5) | 技术权重(加权值 * 强度等级) |
T1 | 分布式系统 | 2 |
T2 | 相应时间(联网) | 2 |
T3 | 终端客户性能 | 1 |
T4 | 复杂的内部处理 | 1 |
T5 | 程序代码的可重用度 | 1 |
T6 | 容易安装 | 0.5 |
T7 | 容易使用 | 0.5 |
T8 | 便于携带 | 2 |
T9 | 容易更改 | 1 |
T10 | 同步性 | 1 |
T11 | 包含特殊的安全机制 | 1 |
T12 | 提供直接访问给第三方 | 1 |
T13 | 特殊的用户培训设施要求 | 1 |
技术权重总和: |
2.5.5. 环境系数和加权值
环境系数和加权值 |
系数 | 说明 | 加权值 | 强度等级(0-5) | 环境权重(加权值 * 强度等级) |
E1 | 熟悉迭代开发方法 | 1.5 |
E2 | 应用领域的经验 | 0.5 |
E3 | 面向对象的经验 | 1 |
E4 | 分析师的能力 | 0.5 | |
E5 | 干劲 | 1 |
E6 | 稳定的需求 | 2 |
E7 | 简直的工作人力 | -1 |
E8 | 困难的程序语言 | -1 | |
环境总权重: |
2.5.6. 调整人时
用例点的传世人Karner先生建议,以20人时完成一个用例点为基准。但是并非所有的项目的情况都适合用20人时来估算,可以
根据项目的负面系数的个数来调整人时,如下:
≤2 | ——项目的总负面系数个数小于等于2是,可以采用20人时来估算 |
3~4 | ——项目的总负面系数个数等于3或4时,可以采用28人时来估算 | |
≥5 | ——项目的总负面系数个数大于或等于5时,项目失败的可能性非常高,最好调整项目,知道项目的负面系数个数降到5以下为止 |
如何计算项目的负面系数个数呢?在E1~E6的环境系数之中,数数看有几个系数的强度等级低于3的,然后再数数看E7~E8环境系
数中,有几个系数的强度等级高于3的。最后,再把这两个数字加起来,就是项目的负面系数个数了。
分享到:
相关推荐
依据 Gustav Karner1993 年的工作,UCP 分析用例角色、场景和各种技术、环境因素,并抽象它们,得到一个计算公式。计算公式包含四个参数组成:技术复杂度因素(TCF)、环境复杂度因素(ECF)、原始用例点数(UUCP)...
软件工程网上图书销售系统用例模型及用例图借鉴 软件工程中的用例模型和用例图是一种非常重要的需求分析技术,它们可以帮助开发者和客户之间进行更好地沟通,确保软件系统能够满足客户的需求。本文档主要介绍了一个...
通用测试用例模型是软件测试领域中的一种重要方法,它旨在提供一种标准化的方式来设计和组织测试用例,以便在不同的项目或系统中复用。在Java编程语言中,我们可以利用面向对象的特性来构建这样的模型。下面将详细...
知识点:UML面向对象建模与设计的用例模型 标题和描述中提及的“uml面向对象建模与设计的用例模型”是IT行业中软件工程领域的核心概念之一,尤其对于初学者而言,掌握这一知识点至关重要。用例模型是统一建模语言...
用例模型是系统设计中的关键部分,它详细描述了系统各个组件如何与用户交互以及系统内部如何处理各种业务流程。在这个模型中,我们可以深入理解酒店管理系统的功能需求和用户需求。 首先,用例模型通常由一系列用例...
"基于UML的用例模型实验" 本实验基于UML的用例模型实验,旨在通过统一建模语言(Unified Modeling Language,UML)来描述车辆管理信息系统的用例模型。UML是一种易于交流的模型描述语言,融入了软件工程领域的新...
软件工程网上图书销售系统用例模型及用例图 软件工程网上图书销售系统用例模型及用例图是软件工程领域中一个重要的概念,涉及到用例模型和用例图的设计及实现。下面将对该系统的用例模型及用例图进行详细的解释。 ...
本文档将介绍用例模型实例的相关知识点,从系统登录、系统管理、用户管理、角色管理到权限分配,涵盖了系统的各个方面。 4.1.1 系统登录用例 系统登录用例从用户进入登录页面开始,用户可以选择本地验证方式或域...
过去的研究提出了一种结合动态信息和静态信息的恢复方法,通过单次运行中的动态信息提取基本用例序列,然后根据规则抽取、合并用例,最终形成用例模型。这种方法虽然有效,但因依赖单次动态信息,可能导致模型不全面...
- **使用关系的应用**:定义用例的“使用”关系是为了抽取多个用例的共同点,避免重复描述。 通过上述详细解释,我们可以更好地理解UML中的用例建模以及如何有效地建立和使用用例模型。这有助于软件工程师在软件...
一种多进程系统用例模型的逆向生成方法,邬丽红,陈平,用例模型是展现程序系统级行为的有效手段。本文针对具有并发特征的面向对象软件系统提出了一种多进程系统用例模型的逆向生成方法
在进行测试自动化的成本估算时,测试团队常常面临的一个挑战是如何选择正确的测试用例进行自动化。测试自动化的失败往往归因于应用的频繁变更、不适宜的测试用例选择、框架的不可靠性以及脚本编写的问题。为避免这些...
下面将详细阐述网上书店系统的关键知识点,包括用例模型、类图、时序图和活动图。 1. **用例模型**:用例模型是用例图的组成部分,它描述了系统提供的服务以及这些服务如何被外部参与者(如用户)使用。在基于Web的...
本文主要讲述了通过软件工程导论的用力模型建模的过程,由艾孜尔江·艾尔斯兰亲自实践并执笔撰著,后续仍有更新,尽情关注! 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它...