UML业务建模与需求分析.ppt
《UML业务建模与需求分析.ppt》由会员分享,可在线阅读,更多相关《UML业务建模与需求分析.ppt(156页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022-7-62参加本次培训,您有什么目标/目的?明确学习目标o SMART原则:n Specific-具体的目标n Measurable-可衡量的目标n Attainable-可实现的目标n Realistic-和本次培训相关的目标n Time-based-两天内的目标2022-7-63需求工程介绍中国科学院软件研究所许舒人2022-7-64软件需求的基本概念oI E E E的软件需求定义n用户解决问题或达到目标所需的条件或能力( Capability)。n系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。n一种反映上面或所描述的条件或能力的文档说明。oRUP的软
2、件需求定义n需求用于说明系统必须符合的条件或具备的功能。n它可以直接来自于用户需要,或在合同、标准、规约或其他正式规定的文档中阐明。nFURPS + 模型(Functionality、Usability、Reliability、Performance 、Supportability )o功能性、可用性、 可靠性、 性能和可支持性 1.“+”:设计约束、实施需求、接口需求和物理需求2022-7-65需求的层次软件需求各组成部分之间的关系问题空间解 空 间2022-7-66业务需求(business requirement)o 反映了组织机构或客户对系统、产品高层次的目标要求。o 业务用例模型(b
3、usiness use-case model) 业务既定功能的模型。业务用例模型被用作一种基本输入,用于确定组织的各个角色和可交付工件。o 业务对象模型(business object model)说明业务用例实现的对象模型。o 业务规则(business rule) 在业务之中必须满足的策略或条件的声明。2022-7-67用户需求(user requirement)o 描述了用户使用产品必须要完成的任务。o 前景(vision) 用户或客户的待开发产品的视图,它是在关键涉众需要和系统特性的层次上指定的。2022-7-68功能需求(functional requirement)o 定义了开发人
4、员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。o 所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。2022-7-69需求管理定义o CMU/SEI 1995n 需求管理需要“建立并维护在软件工程中同客户达成的契约”。o RUP的定义n 一种系统化的方法系统化的方法,用来获取、组织和记录系统的需求,还要使客户和项目团队在系统变更需求上达成并保持一致。2022-7-610需求工程关注的问题o 软件开发的目标是在预算内及时开发出满足用户需求的软件o 项目的成功取决于有效的需求管理o 需求错误是最常见的系统开发错误,并且修改代价最高o
5、一些关键的技巧可以大大减少需求错误,并因此改善软件质量o 分析问题 o 理解涉众需求 o 定义系统 o 管理范围 o 精炼系统定义 o 建造正确系统 2022-7-611需求问题oStandish Group 从 1994 年到 2001 年的 CHAOS Reports 证实,导致项目失败的最重要的原因与需求有关。o2001 年,Standish Group 的CHAOS Reports 报导了该公司的一项研究,该公司对多个项目作调查后发现,74%项目是失败的,既这些项目不能按时按预算完成。其中提到最多的导致项目失败的原因就是“变更用户需求”。o常见的需求问题:o无法跟踪需求变更71%o难以
6、编写70%o特性偏移67%o组织欠佳54%IBM Rational 需求管理技术白皮书2022-7-612导致不合格需求说明的原因o 无足够用户参与o 用户需求的不断增加o 模棱两可的需求o 不必要的特性o 过于精简的规格说明o 忽略了用户分类o 不准确的计划2022-7-613不同阶段修改错误的代价o 后期发现缺陷修改代价更高:n 如果设计或编码1¥,系统测试19¥, 产品发布后92¥n 客户发现与需求相关的错误的修改代价是需求阶段时的68-110倍需求0.10.2设计0.5编码1.0单元测试2.0验收测试5.0维护20.02022-7-614高质量的需求过程带来的好处o 最大的好处是在开发
7、和维护的工作大大减少o 收集需求能使开发小组更好地了解市场n 市场因素是项目成功的关键因素o 避免在无用功能上白耗精力o 弥补用户期望和开发者实际开发之间的“鸿沟(期望差异)”2022-7-615优秀需求具有的特性o 完整性o 正确性o 可行性n软件工程小组的组员负责检查技术可行性o 必要性o 划分优先级o 无二义性n对需求文档的正规审查n编写测试用例n开发原型n设计特定的方案脚本o 可验证性n是否能通过设计测试用例或其它的验证方法2022-7-616需求规格说明的特点o 完整性o 一致性o 可修改性o 可跟踪性2022-7-617为什么需求获取很困难o 用户n任何系统都会有很多用户,每个用户
8、只知道他如何使用系统,没有任何人知道系统的整个情况n用户常常不知道需求是什么,或不知道如何以一种精确的方式描述需求n即使有分析人员的帮助,用户也不完全理解系统到底应实现什么功能,直到系统基本完成时才知道自己的需求o 业务价值n更重要的是系统要支持任务,系统是为执行任务而构造的,系统应为业务和客户提供价值n很难确定或理解这种价值,有时也不能确保这种价值o 世界是不断变化的n业务、技术、资源等等2022-7-618需求获取的目的o 致力于开发正确的系统o 要足够详细地说明系统需求,使客户和开发人员在系统应做什么、不应做什么方面达成共识o 必须用客户语言来描述需求o 需求获取的结果也有助于经理规划迭
9、代和客户版本2022-7-619需求获取概述o每个软件项目都是唯一的,源于系统、客户、开发组织、技术等情况都各不相同,但在大多数情况下一些确定的步骤都是可行的:o列举出候选的需求n特性:状态、估计实现成本、优先级风险级别o理解系统的语境n领域建模:领域对象及其之间的连接n业务建模:领域模型+支持的业务过程支持的业务过程+过程所需的能力过程所需的能力n业务工程方法是业务应用中用来获取需求的最系统的过程o获取功能性需求:用况既获取功能需求,也获取非功能需求1.获取非功能性需求:不能与用况或现实世界中特定类相联系的非功能需求,归入补充需求2022-7-620需求的开发和管理 需求工程域的层次分解20
10、22-7-621需求开发o 可进一步分为:n 问题获取(elicitation)、n 分析(analysis)、n 编写规格说明(specification)和n 验证(verification)四个阶段2022-7-622需求开发活动o 确定产品所期望的用户类o 获取每个用户类的需求o 了解用户任务和目标以及业务需求o 区别任务、功能、业务规则、质量属性、建议解决方法和附加信息o 需求分子系统,分配给软件组件o 相关质量属性o 实施优先级的划分o 编写成规格说明和模型o 评审,达到共识2022-7-623需求管理活动o 定义需求基线o 评审提出的需求变更o 将需求变更融入到项目中o 使当前的
11、项目计划与需求一致o 估计变更产生影响以协商新的承诺o 需求与设计、源代码和测试用例联系o 跟踪需求状态及其变更情况2022-7-624需求开发和需求管理之间的区别2022-7-625客户的需求观o 软件客户:提出要求、支付款项、项目风险承担、或是获得产品所产生的结果的人。o 业务需求为后继工作建立了一个指导性的框架。o 对信息系统、合同(contract)或是应用系统的开发,业务需求应来自风险承担者,而用户需求则应来自产品的真正使用、操作者2022-7-626客户权利1. 要求分析人员使用符合客户语言客户语言习惯的表达。2. 要求分析人员了解客户系统的业务及目标业务及目标。3. 要求分析人员
12、组织需求获取期间所介绍的信息,并编写软件需求规格说需求规格说明明。4. 要求开发人员对需求过程中所产生的工作结果进行解释说明解释说明。5. 要求开发人员在整个交流过程中保持和维护一种合作的职业态度职业态度。6. 要求开发人员对产品的实现及需求都要提供建议,拿出主意拿出主意。7. 描述产品使其具有易用、好用易用、好用的特性。8. 可以调整需求,允许重用允许重用已有的软件组件。9. 当需要对需求进行变更时,对成本、影响、得失(trade-off)有个真真实可信的评估实可信的评估。10. 获得满足客户功能和质量要求的系统,并且这些要求是开发人员同意同意的。2022-7-627客户义务1. 给分析人员
13、讲解业务及说明业务方面的术语等专业问题专业问题。2. 抽出时间清楚地说明需求说明需求并不断完善。3. 当说明系统需求时,力求准确详细力求准确详细。4. 需要时要及时对需求做出决策决策。5. 要尊重尊重开发人员的成本估算和对需求的可行性分析。6. 对单项需求、系统特性或使用实例划分优先级划分优先级。7. 评审需求评审需求文档和原型。8. 一旦知道要对项目需求进行变更,要马上与开发人员联系联系。9. 在要求需求变更时,应遵照开发组织确定的工作过程工作过程来处理。10. 尊重需求工程中开发人员采用的流程流程(过程)2022-7-628需求工程的推荐方法o 知识技能o 需求获取o 需求分析o 需求规格
14、说明o 需求验证o 需求管理o 项目管理2022-7-629知识技能o 培训需求分析人员n了解应用领域并有效地应用需求工程中的成熟技术o 培训软件需求的用户代表和管理人员n明白强调需求的重要性,以及忽略需求带来的风险o 让开发人员了解应用领域的基本概念n关于客户业务活动、术语、目标等o 编写项目术语汇编2022-7-630需求获取o确定需求开发过程o编写项目视图和范围文档o将用户群分类并归纳各自特点o选择每类用户的产品代表o建立起典型用户的核心队伍o让用户代表确定使用实例o召开应用程序开发联系会议o分析用户工作流程o确定质量属性和其它非功能需求o通过检查当前系统的问题报告来进一步完善需求o跨项
15、目重用需求2022-7-631需求分析o包括提炼、分析和仔细审查提炼、分析和仔细审查已收集到的需求,以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其它不足的地方o与客户交流交流以澄清某些易混淆的问题,并明确哪些需求更为重要o分析的目的在于开发出高质高质量和具体的需求量和具体的需求,这样你就能作出实用的项目估算并可以进行设计、构造和测试o 绘制系统关联图o 创建用户接口原型o 分析需求可行性o 确定需求的优先级别o 为需求建立模型o 创建数据字典o 使用质量功能调配n将产品特性、属性与对客户的重要性联系起来n期望需求、普通需求、兴奋需求2022-7-632需求规格说明o采用SRS模板
16、o指明需求的来源n使用实例或其它客户要求n更高层系统需求、业务规范、政府法规、标准或别的外部来源o为每项需求注上标号o记录业务规范o创建需求跟踪能力矩阵n把每项需求与实现、测试它的设计和代码部分联系起来n把功能需求和高层的需求及其它相关需求联系起来了2022-7-633需求验证o 验证是为了确保需求说明准确、完整地表达必要的质量特点o 客户的参与在需求验证中占有重要的位置o 审查需求文档o 以需求为依据编写测试用例o 编写用户手册o 确定合格的标准2022-7-634需求管理o 建立起良好的配置管理方法是进行有效需求管理的先决条件o确定需求变更控制过程o建立变更控制委员会o进行需求变更影响分析
17、o跟踪所有受需求变更影响的工作产品o建立需求基准版本和需求控制版本文档o维护需求变更的历史记录o跟踪每项需求的状态o衡量需求稳定性o使用需求管理工具2022-7-635项目管理o 项目计划建立在功能基础之上,而需求变更会影响这些计划o 选择一种合适的软件开发方法生存周期o 基于需求的项目计划o 发生需求变更时协商项目约定o 编写文档和管理与需求相关的风险o 跟踪需求工程所耗的工作量2022-7-636统一建模语言UML中国科学院软件研究所许舒人2022-7-637UML图o九种图n用例图(use case diagram)n顺序图(sequence diagram)n协作图(collabora
18、tion diagram)n类图(class diagram)n对象图(object diagram)n状态转移图(state transition diagram)n活动图(activity diagram)n构件图(component diagram)n部署图(deployment diagram)oUML2.0的新图n组合结构图(composite structure diagram) n交互概览图(interaction overview diagram)n时序图(timing diagram)n包图(package diagram)2022-7-638模型和图oUML用多个视图来展示
19、一个系统o这组视图成为一个模型o模型是一个特定系统的完整描述分类分类o用例图(Use-Case)o静态图 (Static diagram)n类图、包图n对象图o行为图(Behavior diagram)n状态图n活动图 o交互图(Interactive diagram)n顺序图 n协作图 o实现图(Implementation diagram )n构件图 n部署图 部署图用例图类图对象图构件图活动图状态图协作图顺序图模型库模型库2022-7-639UML元素2022-7-640体系结构和UML组织:包、子系统动态:交互、状态机逻辑视图构件视图过程视图构件类、接口、协作活动类部署视图节点用例视图
20、用例2022-7-641RUP工作流间关系业务建模需求需求分析设计实现测试业务用例模型业务对象模型用例模型用例模型分析模型分析模型设计模型实现模型测试模型2022-7-642在开发过程中运用UMLo需求获取n发现领域过程活动图n领域分析高层类图、会谈记录n识别协作系统部署图n发现系统需求细化类图、高层用例n将结果交给用户o分析n理解系统的用法用例图n充实用例用例说明n细化类图细化类图n分析对象状态变化状态图n定义对象间的交互顺序图、协作图n分析与协作系统的集成部署图、数据模型o设计n开发和细化对象图对象图、活动图n开发构件图构件图n制定部署图部署图n设计和开发GUI原型屏幕界面原型n测试设计测
21、试脚本n开始编制文档文档的结构o开发n编制代码代码n测试代码测试结果n构建GUI和GUI到代码的连接及测试带有用户界面的功能系统n完成文档文档o部署n编制备份和恢复计划n安装最终系统部署好的计算机系统n测试按装后的系统测试结果n庆祝新系统JAD:联合应用开发会议2022-7-643用例图o 用例图,从用户角度描述系统行为功能(行为),并指出各功能的操作者n 参与者(actor)o 一个人o 一个系统o 又称“主角”n 用例(use case)o 参与者使用用例n 系统(system)o 硬件和软件的结合体o 业务问题的解决方案2022-7-644系统、参与者、用例2022-7-645包含、扩展
22、补货扩展点扩展点在填充隔层之前根据销售情况补货打开柜门关闭柜门2022-7-646泛化_用例买饮料买一听饮料买一杯饮料2022-7-647泛化_参与者厂商代理采购员保管员2022-7-648行为图o 行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系n 状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件n 活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动o 用例行为o 对象行为2022-7-649活动图o显示工作步骤(活动)、判断点和分支o活动n起点、终点o活动转移o判定n直接、判定符号n条件o并发o信号n输出事件n输入事
23、件o泳道:明确角色职责o对象节点:明确输入和输出;钉o处理异常n异常句柄o活动析构o时间流失、流程结束节点o约束符号o交互概览图n活动图和交互图的组合n每个活动都是一个独立的交互图2022-7-650发送和接收事件:电视显示新频道改变(频道)遥控器键按下(频道)改变(频道)按频道号码看2022-7-651时间、接收、异常手动设置时间时间时间时间时间显示时间接收时间校准信号信号中断信号接收时间1 秒时间:=时间+1 秒3-6分上午2:00-5:00(东部时间)定点2022-7-652状态图o对象改变了自身的状态以响应事件和时间的流失oUML状态图就能捕捉这些状态变化o焦点是一个对象的状态变化o状
24、态n起点、终点n状态名n活动列表o入口动作(entry)o出口动作(exit)o动作(do)o状态转移:触发器事件、无触发器转移o组成状态:历史状态(记住子状态、深H*、浅H)o子状态:顺序子状态、并发子状态o连接点:进入一个状态或退出一个状态的位置2022-7-653初始、终止状态2022-7-654传真机状态转移发传真entry/输入对方传真号exit/完成传输do/加时间戳空闲entry/传真完成exit/开始传真2022-7-655PC状态转移打开PC初始化do/引导工作中屏幕保护时间到关机关机中按键 或移鼠标2022-7-656顺序、并发、历史状态等待用户输入修改显示工作中监视系统时
25、钟时间到按键 或移鼠标时间间隔到输入保存用户输入显示用户输入2022-7-657入口和出口在书架上已预约正在办理借出结束2022-7-658静态图o 静态图 (Static diagram),包括类图、对象图和包图n类图o描述系统中类的静态结构(模仿现实世界、客户术语)o属性、操作、责任n对象图o是类图的实例,对象图只能在系统某一时间段存在 o对象名:类名、 :类名n包图o由包或类组成,表示包与包之间的关系o包图用来对一个图的元素进行分组,描述系统的分层结构o全限定名:包名:包元素名n路径名:包:类o关系:泛化、依赖和细化2022-7-659类图o 类(领域知识的词汇)n属性:属性名:类型=缺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 业务 建模 需求 分析
限制150内