资源预览内容
第1页 / 共79页
第2页 / 共79页
第3页 / 共79页
第4页 / 共79页
第5页 / 共79页
第6页 / 共79页
第7页 / 共79页
第8页 / 共79页
第9页 / 共79页
第10页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四讲. 初始化阶段Chapter 4-7,曹健 上海交通大学,2020/9/7,2,内容,案例简介 初始化阶段 需求概念 基于用例的功能性需求获取 非功能性需求,1. 案例,2020/9/7,4,NEXTGEN POS 系统,NextGen 销售终端(point-of-sale, POS) 系统 POS系统是用来记录销售信息和处理支付的计算机系统,它一般用于零售店,2020/9/7,5,体系结构,minor focus,explore how to connect to,other layers,primary focus of,case study,explore how to,design objects,secondary,focus,explore how,to design,objects,2020/9/7,6,讲授方法,Iteration 1,Iteration 2,Iteration 3,介绍与第一次迭代相关的分析和设计技术,介绍其他的分析和设计技术,Likewise.,2. 初始化阶段,2020/9/7,8,2.1 在我们开始一个项目前,在项目启动前,我们需要回答下列问题: 该项目的vision(设想,前景) 和business case(业务案例) ? 可行吗? 购买and/or 构造? 成本的大致估计; 是$10K-100K 或者几百万? 我们需要继续还是停止?,2020/9/7,9,2.2 目的,该阶段的目的不是定义所有的需求,而是做适当的调研(to do just enough investigation) 何谓“适当的”: 对新系统的整体目的和可行性形成一个合理的意见 确定是否值得深入研究,2020/9/7,10,初始化阶段的主要目标为: 建立项目的软件范围和边界条件,包括一个操作“前景”,“接受准则”和产品中包含什么,不包含什么 确定核心的用例,这是系统运行的主要场景,它将决定系统设计的方案 针对主要的场景,确定或者演示至少一个备选的系统结构 对整个项目估计总成本和计划 (更详细的估计将安排在细化阶段中) 估计可能的风险 (不可预计性的来源) 为项目准备支持环境,2020/9/7,11,2.3 制品,前景和业务用例(Vision and Business Case) 用例模型(Use-Case Model) 补充规格说明(Supplementary Specification) 词汇表(Glossary) 风险列表和风险管理计划(Risk List next-day or 3-day delivery) System presents full pricing information, including shipping Customer fills in credit card information System authorizes purchase System confirms sale immediately System sends confirming email to customer Alternative: 授权失败 6a.At step 6, system fails to authorize credit purchase Allow customer to re-enter credit card information and re-try Alternative: 会员 3a. System displays current shipping information, pricing information, and last four digits of credit card information 3b. Customer may accept or override these defaults Return to primary scenario at step 6,2020/9/7,34,思考 用例是相关的成功或者失败的场景的集合 “在ATM机中输入用户ID 不能建模为单独的Use Case,因为无人使用系统仅仅为了输入ID,2020/9/7,35,用例是什么,不是什么 用例是需求,而且主要是功能需求,反映了系统将做什么 用例是需求,而不是功能或者特征列表 用例是文档,而不是图,用例建模主要是写文字,而不是画图,2020/9/7,36,4.4 编写用例,不同形式化程度 摘要 非正式 详述 详述格式的例子,见pp50-54(中译本),pp68-72(英文版),2020/9/7,37,章节内容 绪言 范围:系统用例,业务用例 级别:用户目标级别,子功能级别(可被许多用例重复使用的) 主要角色 涉众 前置条件和后置条件 主成功场景和步骤(或基本流程) 扩展(或替代流程) 特殊需求:非功能性需求,质量属性或约束 技术和数据变元表:比如用户对如何实现系统的要求,2020/9/7,38,指南 以无界面约束的本质风格编写用例 发现目标的目标,可以拓宽我们的视野 What versus How What: 标识我自己并获得授权 How 通过对话框输入用户ID和口令 生物识别i Smart Card 指南:“以本质风格编写用例,摒弃用户界面并关注参与者的意图” “具体风格”需要在早期需求工作中避免,2020/9/7,39,另外一个例子,Recycle Items: The user uses this machine to automatically have all the return items (bottles, cans, and crates) counted, and receives a receipt. The receipt is to be cashed at a cash register (machine). Add New Bottle Type: New kinds of bottles can be added to the machine by starting it in learning mode and inserting 5 samples just like when returning items. In this way, the machine can measure the bottles and learn to identify them. The manager specifies the refund value for the new bottle type.,2020/9/7,40,编写简洁的用例 编写黑盒用例 软件元素具有责任(responsibility) 采用参与者和参与者目标的观点 “对特定参与者而言具有价值的可观察的结果”,4.5 如何发现用例,2020/9/7,42,4.5.1 主要过程,选择系统边界 寻找主要参与者 为每个参与者确定他们的目标 定义用例,2020/9/7,43,系统边界描述了系统被包含在内的“信封” 在许多情形下,系统边界是显而易见的。例如对一个单个用户的运行在Microsoft Windows上的个人联系信息管理本,它的边界是很容易定的,因为只有一个用户,一个平台。.,2020/9/7,44,4.5.2 参与者与目标,选择系统边界 寻找主要参与者 为每个参与者确定他们的目标 定义用例,2020/9/7,45,参与者是与系统交换数据的实体。参与者可以使用户,外部的硬件或者另外一个系统,2020/9/7,46,某些技巧,我们可以问一些代表性的问题来找到参与者和目标 参与者的类型 主要的参与者Primary Actors 支持参与者Supporting Actors 幕后参与者Offstage actors 参与者-活动列表 这似乎一个交互和叠代的过程,The focus of this stage,2020/9/7,47,主要的参与者和用户目标依赖于系统的边界,2020/9/7,48,4.5.3 定义用例,选择系统边界 寻找主要参与者 为每个参与者确定他们的目标 定义用例,2020/9/7,49,一般而言,为每一个用户目标定义用例 用例名称以动词开头 将CRUD (create, retrieve, update, delete)这些分散的目标合并成一个CRUD用例: Manage 定义用例需要交流和参与 领域专家的参与非常重要 迭代开发,2020/9/7,50,发现有效用例 用例的粒度问题 大用例 我们的企业需要拓宽销售渠道 整个系统就只有一个用例! 小的用例 输入口令 系统中可能有成百上千个用例! 我们必须权衡,2020/9/7,51,经验方法 老板测试 EBP测试 规模测试,2020/9/7,52,老板测试 老板是付钱的人 老板必须看到可量化的价值,2020/9/7,53,EBP测试 EBP用例 对计算机应用的需求分析,关注于基本业务过程( elementary business processes,EBPs)层面上的用例 依据持续时间,步骤,涉及到的人来定 增加可见的或者可度量的业务价值 没有人仅仅想输入一个口令 客户愿意为此付费吗?,2020/9/7,54,规模测试 用例通常应该包括多个步骤 在详细描述的情形下,应该需要3-10页文本,2020/9/7,55,分析 供应者合同进行协商 处理退货 登陆 在游戏板上移动棋子,2020/9/7,56,任何东西都有例外 EBP 原则也不是圣经 有些时候我们会把多个用例中的公共部分单独成为用例 目标与用例的关系 目标可以分解成不同层次 用户目标 EBP层次的用例=用户目标 EBP层次的用例 用户目标 Use Case reflects current solutions Understanding Goal opens up the vision for new and improved solutions 企业层次 增加利润 子功能目标,4.6 用例图,2020/9/7,58,用例的组织和用例图,在UML里, 用例图是表达用例和活动者及其之间关系的载体 用例图是模型图,用例图可包含用例,活动者以及它们之间的关系,这些关系可以是: 关联关系 依赖关系 实现关系 用例图的用途是为软件系统、软件子系统、类的动态行为建模。它从两个方面对其建模对象的内容进行描述,即: 描述它们的边界 对它们进行需求分析,2020/9/7,59,下图是一个描绘系统边界的用例图的例子,它通过区分系统用例和活动者,明确区分了系统内部的事物和系统外部的事物,通过描绘它们之间的关联关系,系统的边界得到了清晰的表达,2020/9/7,60,用例图和用例关系在编写用例工作中是次要的。用例是文本文档。编写用例意味着编写文本。 绘制简单的用例图,并与参与者-目标列表关联。 用例不是面向对象的,2020/9/7,61,画图建议,4.7 在迭代方法中如何使用用例,2020/9/7,63,用例驱动开发,功能需求首先记录在用例(用例模型)中; 用例是迭代计划的重要部分,是预算的关键输入 用例实现驱动设计 用例影响了用户手册和测试,2020/9/7,64,需求规格说明的工作任务跨越了各个迭代,见书表6-1, 中文,pp72,英文,pp96,2020/9/7,65,初始阶段编写用例,确定目标和涉众,推测项目范围 参与者-目标-用例 表 绝大部分需要关注的,复杂的,具有风险的用例采用简单的形式编写 其中的10%-20% 的用例代表了复杂的核心功能,需要构建核心架构或者在某些方面具有风险,采用详细的格式进行描述 确定是否要继续到细化阶段,2020/9/7,66,细化阶段编写用例,多次时间定量的迭代 绝大部分的需求被识别和描
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号