《UML业务建模与需求分析.ppt》由会员分享,可在线阅读,更多相关《UML业务建模与需求分析.ppt(156页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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属性:属性名:类型=缺
26、省值n操作(型构)o 操作名(参数:类型)o 操作名():类型n职责o 类的缺省表示法n缺省符:o 用构造型来组织属性和操作列表o 约束:规则o 注释o 可见性n其他类可访问的属性和操作的范围n共有:其他类,“+”n受保护:子类,“#”n私有:类本身,“-”o 作用域n实例:每个实例对象都有自己的属性和操作n分类符:所有实例只存在一个属性和操作2022-7-660可见性电视+ 商标+ 型号+ 调音量()- 在屏幕上绘图像()# 修改里程计数()2022-7-661关系-关联o 关联n 关联o 名字、方向、角色、约束o 关联类o 链:对象间的关系n 多重性o 一对一、一对多、一对“一或多”、一对
27、“零或一”、n 限定关联o 限定符:ID信息n 自身关联2022-7-662关联上的约束银行出纳员服务排队顾客排队2022-7-663or约束高中生选择选择理科文科2022-7-664关联类、链球员球队雇员雇主合同总经理商议2022-7-665链齐达内:球员踢球法国队:球队2022-7-666自身关联司机开车汽车乘坐者乘客2022-7-667关系-泛化、依赖o 继承和泛化n 基类或根类n 叶类n 单继承n 多继承n抽象类o 依赖n 使用了另一个类n 通常是操作的型构中用到另一个类的定义n 如:displayForm(f:Form)2022-7-668泛化哺乳动物马2022-7-669依赖系统表
28、格2022-7-670关系-聚集、组成o 聚集n 整体-部分关联n 约束o 组成n 强类型的聚集n 每个部分只能属于一个整体o 组合结构图n 展示潜入在一个类中的那些类n 使该类的内部结构变得可见2022-7-671聚集膳食汤沙拉主食餐后甜点2022-7-672组成茶几桌面腿2022-7-673接口和实现o 接口n描述类的部分行为的一组操作n提供给其他类使用的一个操作集n所有操作的可见性都是共有的n用没有属性的类表示,o 实现n一个类和它的接口之间的关系o 一个类可以实现多个接口o 一个接口也可以被多个类实现o 接口和端口2022-7-674类和接口洗衣机控制钮2022-7-675接口的省略表
29、示法洗衣机控制钮2022-7-676接口和类交互洗衣机控制钮人2022-7-677球窝洗衣机人2022-7-678端口鼠标计算机鼠标口2022-7-679交互图o 交互图(Interactive diagram),描述对象间的交互关系n 顺序图显示对象之间的动态协作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互o 消息:发送对象对接收对象的一个请求,要求接收对象完成一个操作o 时间从上到下延续n 协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态协作关系o 时间顺序用消息前的序号表示2022-7-680顺序图o对象n生命线n激活o消息n调用消息n返回消息n异步消息o时
30、间o实例顺序图:描述一个场景o一般顺序图:描述所有场景n条件oif:表达式oWhile:*表达式n最终消息前加上o在消息序列中创建对象实例o对象销毁o帧化顺序图sdn交互事件refn交互片断组合altn交互片断并发par2022-7-681创建对象实例:顾客按键(信用卡号):手机:面板处理顾客信息(信用卡号)显示提示(确认)按键(选择)处理顾客信息(选择)检查可用性(选择 )可用:交易记录:售货机释放饮料(选择 )接收饮料(选择 )2022-7-682销毁对象实例:交易记录:面板:交易记录2022-7-683帧化顺序图:顾客接受(现金,选择):登记:面板显示提示(“用零钱”):售货机释放饮料(
31、选择 )选择有货接收饮料(选择 )获取顾客输入(现金,选择)现金价格找零(现金,价格)没零钱退回现金(现金)transaction over没零钱检查存货(选择)售完显示提示(“售完”)transaction over售完退回现金(现金)修改(现金,价格)现金价格接收找零(现金,价格)transaction overSd买饮料2022-7-684帧化交互事件transaction over:顾客接受(现金,选择):登记:面板:售货机释放饮料(选择 )选择有货接收饮料(选择 )获取顾客输入(现金,选择)检查存货(选择)修改存货(现金,价格)Sd 买饮料最佳情况有货2022-7-685复用交互事件
32、:顾客接受(现金,选择):登记:面板:售货机释放饮料(选择 )接收 (零钱)获取顾客输入(现金,选择)检查存货(选择)修改存货(现金,价格)Sd买饮料不合适零钱有货找零(现金,价格)2022-7-686条件执行:顾客接受(现金,选择):登记:面板显示提示(“用零钱”):售货机释放饮料(选择 )选择有货接收饮料(选择 )获取顾客输入(现金,选择)现金价格找零(现金,价格)没零钱退回现金(现金)transaction over没零钱检查存货(选择)显示提示(“售完”)售完退回现金(现金)修改(现金,价格)现金价格接收找零(现金,价格)transaction overSd买饮料elsetransac
33、tion over2022-7-687并行执行:顾客:登记:面板显示提示(“用零钱”):售货机释放饮料(选择 )选择有货接收饮料(选择 )获取顾客输入(现金,选择)transaction over没零钱售完显示提示(“售完”)退回现金(现金)现金价格接收找零(现金,价格)transaction overSd买饮料接受(现金,选择)没零钱退回现金(现金)现金价格找零(现金,价格)检查存货(选择)修改(现金,价格)transaction over售完2022-7-688协作图o顺序图与协作图语义等价o顺序图强调交互的时间顺序(按时间布局)o协作图强调交互的语境和参与交互的对象的整体组织(按空间布局
34、)o对象图是一个快照,协作图是一部电影o状态变化和消息嵌套n3.1:o互斥保护条件的消息编号nyes 2.1go() nno2.1 stop()o多对象n一叠o返回值表示法n变量:=操作名(参数,参数)o主动对象n边框加粗o同步表示法n序号/消息2022-7-689实现图o 实现图 (Implementation diagram),与计算机系统密切相关n 构件图o 描述代码构件的物理结构及各构件之间的依赖关系。o 有助于理解构件间的相互影响n 部署图o 定义系统中软硬件的物理体系结构 o 计算机、外设,之间的连接o 驻留的软件 2022-7-690构件图o软件构件是软件系统的一个物理单元o作为
35、一个或多个类的实现o构件驻留在计算机中o构件定义了一个系统的功能o工件是一个构件的实现n部署构件、工作产品、执行构件o目的n使客户能够看到最终系统的结构和功能n让开发者有一个工作目标n让文档编写者能够理解所写文档是关于哪些方面的内容n利于复用(构件重要特征)o构件接口n只能通过构件的接口来使用构件定义的操作n提供接口n所需接口n替换:只要新构件符合旧构件的接口o实现(构件和构件的接口关系)o构件图恰好包括构件、接口和关系o黑盒、白盒(在构件中列出接口,并用关键字分组)o连接点、汇编连接、委托连接2022-7-691部署图o 部署图:展示工件如何在系统硬件上部署,以及各个硬件部件如何相互连接o
36、节点:各种计算机资源的统称n 处理器:能够执行软件构件o 部署工件n 设备o 连接:节点之间的连线2022-7-692UML2.0新图o 组成结构图o 交互概览览图o 时序图o 包图2022-7-693组合结构图人灵魂肉体2022-7-694交互概览图:用户:用户:用户:图书馆数据库:图书馆员:保安查找()办理借阅请求()拿走书()查证借阅 ()走出图书馆()到存书位置2022-7-695时序图:洗衣机甩干.漂洗.洗涤.浸泡.2022-7-696包图2022-7-697业务建模中国科学院软件研究所许舒人2022-7-698模型o 在许多学科中,模型是设计者的语言o 模型是系统要被创建的描述o
37、模型是不同的投资者通信的手段o 可视化模型,蓝图o 范围o 模型允许推断真实系统的某些特征2022-7-699为什么需要业务模型?建立客观系统软件的开发标准软件客户化业务工程成本核算工作流系统的实施ISO 9000 质量论证模型目的业务状况- 今天 (现状)- 明天 (目标)2022-7-6100哪些对象能用于描述企业?o 功能n检查信用度,输入客户订单,.o 数据n商品,客户,材料,供应商,. o 组织单元n销售,采购,会计,生产部门,.o 事件n客户订单已到达,发票已寄出,.o 资源nPC,文件,车床,.o 服务/产品nBPR 咨询,芯片,电路板,PC,这些不同对象不是孤立的,存在相互关系
38、。2022-7-6101怎样描述?o 文本: “销售部负责核查客户的信用度。”o 表格:o 图形:销售部核查信用度负责功能功能组织单元组织单元关系关系核查信用度销售部负责2022-7-6102形式化描述o 管理体系形式化描述的含义是:n用确定的、无二意的一套表达规则来描述组织管理体系。o 为什么必须对管理体系进行形式化描述?n只有被形式化描述的客观事务才能够被计算机所理解。o 形式化描述方法的要求:n管理的形式化描述是衔接管理体系和管理信息系统桥梁管理体系管理信息系统形 式 化 描 述2022-7-6103业务模型o业务n拥有或消耗资源n具有目的的操作o业务模型n业务功能的抽象描述n业务的简化
39、表述n核心概念是业务过程n集中表现业务的核心任务及其关键机制o业务所有者n设定目标n分配资源n运作业务o业务模型构架师n建立基础结构n设计业务流程n分配资源n实现业务目标o系统开发人员n改造、设计或开发配套的信息系统n支持业务运作2022-7-6104业务模型作用o 提高竞争力的需要n 适应环境o 竞争者o 分包商o 供应商o 法律、法规o 客户n 加强自身o 内部运作o 产品和服务改进o 新市场和用户o 信息系统o 作用n专注于事物的重要方面n促进交流n作为其他模型的基础o 目的n理解现行业务关键机制n建立信息系统的基石n改进现行业务基础n展示革新后的业务结构n尝试新的业务理念n用以确定外部
40、机遇2022-7-6105模型组成o 视图n一个业务模型以数个不同的视图表示n一个特定观点的抽象描述o 图表n每个视图由多个图表组成n每个图表表达了业务结构的特定部分或特定的业务状态n这些图表包含并表述了业务状态中的对象、过程、规则、目标和愿景o 对象和过程n对象是业务中的事物n过程是业务中的活动o 模型是由目标推动的2022-7-6106业务建模分类oCIM-OSAn(Computer Integrated Manufacturing - Openness System Architecture)欧共体 oARISn(Architecture of Integrated Informatio
41、n System)德国 oIDEFn(ICAM(Integrated ComputerAided Manufacturing)DEFinition)包含功能模型、信息模型和动态模型等 美国 oGRAI/GIM n(Graph with Results and Activities Interrelated)法国 oBAAN/DEM n(Dynamic Enterprise Modeling) BaaN公司oUMLn(Unified Modeling Language)OMG组织o扩展UML2022-7-6107UML业务建模o 类图o 对象图o 状态图o 活动图o 顺序图o 协作图o 用例图o
42、 构件图o 部署图2022-7-6108Eriksson-Penker扩展o视图n业务愿景o愿景陈述o概念建模o目标问题建模n业务过程(活动和价值)o过程建模o装配线图o装配线图和用例n业务结构(资源结构)o资源建模o信息建模o组织建模n业务行为(个体行为和交互)o状态建模o交互建模o 图表n愿景陈述图n概念模型n目标模型n过程图n装配线图n用例图n资源模型n组织模型n信息模型n状态图n交互图n系统拓扑图2022-7-6109对应关系愿景陈述图文本描述概念模型类图目标模型对象图过程图活动图装配线图活动图用例图用例图资源模型类图组织模型类图|对象图信息模型类图|对象图状态图状态图交互图顺序图|协
43、作图系统拓扑图类图(包图)2022-7-6110业务过程2022-7-6111业务建模元模型2022-7-6112业务模式113RUP 业务建模过程o 评估业务状态 o 描述当前业务 o 确定业务流程 o 改进业务流程 o 设计业务流程实现 o 改进角色和职责 o 研究流程自动化o 开发领域模型 114业务建模活动2022-7-6115需求分析中国科学院软件研究所许舒人2022-7-6116常用的需求分析方法o 面向数据流的结构化分析方法(SA)o 面向数据结构的Jackson方法(JSD)o 结构化数据系统开发方法(DSSD)o 面向对象的分析方法(OOA)等2022-7-6117面向数据流
44、的结构化分析o 业务分析(IPO)n范围o目标和任务o组织机构o职能范围o与外界联系n业务流程o业务1o业务2on信息系统存在问题n对信息系统期望o 数据分析(DFD)n范围n任务概述o目标o用户特点n信息系统边界n功能分析n数据流分析o顶层o分解n业务1n业务2nn性能分析2022-7-6118信息传递日日 常常 业业 务务 处处 理理业业 务务 控控 制制管管 理理 控控 制制战略规划战略规划分解和具体化综合和抽象化2022-7-6119面向对象分析o 面向对象分析的目的n 完成对问题空间的分析n 建立系统模型o 具体任务:确定和描述n 系统中的对象n 对象的静态特性和动态特性n 对象间的
45、关系n 对象的行为约束2022-7-6120分析原则o 构造和分解相结合n构造:基本对象组装复杂对象n分解:对大粒度对象精化o 抽象和具体化相结合n抽象:数据、操作对象n具体化:细节刻画,确定对象,提高模型稳定性o 封装:独立的外部特性与内部实现细节分开o 相关n静态结构关联:如整体和部分n动态结构关联:如消息传递o 行为约束:静态、动态2022-7-6121静态结构分析o 确定对象、对象类n 对象o 一种具有简明界面及应用意义的实体的抽象n 对象类o 一组具有共同属性、操作和语义特征的对象o 属性是类中对象的性质o 操作是类中对象的行为o 确定对象类之间的关系2022-7-6122确定对象类
46、之间的关系o 一般化和特殊化关系n 高层次的类表达共性,形成父类n 低层次的类表达个性,形成子类n 子类通过继承机制来获得父类的属性和操作o 聚合关系:对象之间的组合构造关系n 聚合对象:容器对象n 组成对象:内含对象n 聚合对象通过组成对象的操作来实现自身的操作o 关联关系:引用关系和消息传递关系n 一对一、一对多、多对多2022-7-6123动态行为分析o 动态行为分析n 单个对象自身的生命周期演化n 整个对象系统中对象间的消息传递和协同工作o 静态结构限制了对象状态的取值范围o 对象状态的变化是通过对象操作来完成的o 事件可以由操作调用来表达o 对象操作可以是并发的,对象状态的变化也可以
47、是并发的2022-7-6124开发领域模型 o 确定所有对于业务领域来说比较重要的产品、可交付工件和事件 o 详细说明业务实体的定义 o 正式核实业务对象建模的结果是否符合涉众对业务的看法o 核心开发团队o 领域专家 2022-7-6125领域模型o 领域模型描述领域中系统之间的共同的需求n 领域模型是逻辑模型,而不是物理模型n 领域模型是面向问题域的2022-7-6126领域特定的软件构架o 领域特定的软件构架(Domain Specific Software Architecture)o DSSA描述在领域模型中表示的需求的解决方案n DSSA不是单个系统的表示,而是能够适应领域中多个系统
48、的需求的一个高层次的设计n DSSA是面向解空间的2022-7-6127领域工程与应用工程行为产品领域工程应用工程系统1系统2系统n领域分析领域设计领域实现领域模型DSSA领域构件分析用户需求设计应用系统规约应用系统实现应用系统构架应用系统2022-7-6128领域分析o “标识一个特定问题领域中一类相似系统的对象和操作的活动”o 关心n 相似系统的共性n 分析、设计的复用n 代码的复用o 借助用户的智能,提高系统的适应性,灵活性 2022-7-6129领域分析的步骤 概览领域需求 确定领域边界 主题文档分析 领域专家交互 确定体系结构 领域共性分析 抽取领域构件 软件进化设计 领域知识库设计
49、 2022-7-6130需求分析目的o 与客户和其他相关人员在系统的工作内容方面达成并保持一致 o 使系统开发人员能够更清楚地了解系统需求 o 定义系统边界 o 为计划迭代的技术内容提供基础 o 为估算开发系统所需成本和时间提供基础 o 定义系统的用户界面,重点是用户的需要和目标 2022-7-6131如何看待IT在企业中的作用1 o CEO:n使IT目标和业务目标相一致;n借助IT完善业务流程;n提高业务有效性;n增强企业竞争优势;n提高内部客户满意度;n控制IT成本。n更关注o应用新技术建立企业竞争优势,o完善供应链。o CIO:n借助IT完善业务流程;n提高业务有效性;n使IT目标和业务
50、目标相一致;n提高客户满意度;n增强企业竞争优势;n控制IT成本。n更重视oIT系统建设及oIT成本的控制。2022-7-6132如何看待IT在企业中的作用2o 一半的CEO认为IT具有“前瞻性” n 68%的CIO认为,o IT应当“前瞻性”地预测出业务发展时机,o 并运用技术来实现。n 只有56%的CEO认同这一观点。n 44%的CEO认为,o IT应当支持并促进企业已划定的业务拓展活动。 o CEO比较注重CIO和CXO间的关系 n 在培养IT员工的业务和领导技巧方面,o CEO认为有效性是3.7,o CIO认为是3.2。 2022-7-6133如何看待IT在企业中的作用3o CEO对技