1、中软培训中软培训UML实用技术实用技术V1.0中软培训中软培训软件开发过程详解目前的现实是什么?目前的现实是什么?业务建模业务建模在这个现实下,开发系统是为了达到什么目标?在这个现实下,开发系统是为了达到什么目标?愿景愿景为了达到目标,系统应对外提供什么样的功能和性能?为了达到目标,系统应对外提供什么样的功能和性能?需求需求为了提供这些功能,系统内部应该有什么样的核心业务机制?为了提供这些功能,系统内部应该有什么样的核心业务机制?分析分析为了满足性能,系统的核心机制如何在选定的架构上实现?为了满足性能,系统的核心机制如何在选定的架构上实现?设计设计找找到到问问题题解解决决问问题题中软培训中软培
2、训UML三个主要作用(1)使用可视化建模来获取并表现商业逻辑和对象使用可视化建模来获取并表现商业逻辑和对象使用可视化建模来分析和设计计算机应用程序使用可视化建模来分析和设计计算机应用程序 理由一:理由一:UML是客户、系统分析员和程序员之间的是客户、系统分析员和程序员之间的“桥梁桥梁”用例图用例图 活动图活动图 状态图状态图 时序图时序图 对象图对象图 部署图部署图 中软培训中软培训UML三个主要作用(2)理由二:理由二:UML从客户的角度将复杂的系统整理清楚从客户的角度将复杂的系统整理清楚中软培训中软培训UML三个主要作用(3)software可移植可移植技术交互技术交互性能性能全面全面容量
3、容量稳定性稳定性错误处理错误处理容错性容错性功能需求功能需求成本成本兼容性兼容性 理由三:理由三:UML能使越来越复杂的软件能使越来越复杂的软件 系统架构更加合理和健壮系统架构更加合理和健壮中软培训中软培训系统模型可由“4+1”视图展现逻辑视图逻辑视图进程视图进程视图用例视图用例视图系统功能系统功能分析设计结构系统并发工作情况实现视图实现视图实现模块和代码间的关系部署视图部署视图 系统物理拓扑架构中软培训中软培训模型可由9个图来展现Use CaseDiagramUse CaseDiagram用例图用例图ScenarioDiagramScenarioDiagram协作图协作图StateDiagr
4、amStateDiagram组件图组件图ComponentDiagramComponentDiagram部署图部署图StateDiagramStateDiagram对象图对象图ScenarioDiagramScenarioDiagram状态图状态图Use CaseDiagramUse CaseDiagram时序图时序图StateDiagramStateDiagram类图类图活动图活动图模型模型墨绿色表示动态图粉红色表示静态图(可把用例图单列出来)功能功能静态结构静态结构物理架构物理架构动动态态行行为为中软培训中软培训UML9种图 用例图:业务建模、需求、测试用例图:业务建模、需求、测试 类图:
5、业务建模、分析、设计类图:业务建模、分析、设计 对象图:业务建模、分析、设计对象图:业务建模、分析、设计 组件图:设计组件图:设计 部署图:设计部署图:设计 顺序图:业务建模、分析、设计顺序图:业务建模、分析、设计 协作图:业务建模、分析、设计协作图:业务建模、分析、设计 状态图:需求、分析、设计状态图:需求、分析、设计 活动图:业务建模、设计活动图:业务建模、设计结结构构行行为为敏捷建模原则:需要时再添加敏捷建模原则:需要时再添加可互换可互换可互换可互换中软培训中软培训主要步骤中软培训中软培训识别执行者执行者(执行者(Actor)在在系统之外系统之外,透过,透过系统系统边界边界与系统进行与系
6、统进行有有意义交互意义交互的的任何事物任何事物。中软培训中软培训识别执行者执行者要点:执行者要点:系统外系统外必须和它交互必须和它交互 系统边界系统边界直接与系统交互直接与系统交互 有意义的交互有意义的交互属于目标系统的责任属于目标系统的责任 任何事物任何事物人、外系统、外部因素、时间人、外系统、外部因素、时间中软培训中软培训识别执行者思路:思路:谁使用了系统的主要功能?谁使用了系统的主要功能?谁改变了系统的主要数据?谁改变了系统的主要数据?谁从系统获取信息?谁从系统获取信息?谁需要系统的支持以完成日常工作任务?谁需要系统的支持以完成日常工作任务?谁负责维护、管理并保持系统正常运行?谁负责维护
7、、管理并保持系统正常运行?系统需要应付(处理)哪些硬件设备?系统需要应付(处理)哪些硬件设备?系统需要和哪些外部系统交互?系统需要和哪些外部系统交互?谁(或什么)对系统运行产生的结果感兴趣?谁(或什么)对系统运行产生的结果感兴趣?有没有自动发生的事件?有没有自动发生的事件?中软培训中软培训识别执行者责任类似或重叠责任类似或重叠抽象出执行者抽象出执行者中软培训中软培训识别用例用例的基本定义:用例的基本定义:用例实例是用例实例是在系统中执行在系统中执行的的一系列动作一系列动作,这些,这些动作将生成特定动作将生成特定执行者可见执行者可见的的价值结果价值结果。一个。一个用例定义用例定义一组用例实例一组
8、用例实例。Ivar Jacobson(RUP)通俗地讲:执行者通过系统达到某个目标通俗地讲:执行者通过系统达到某个目标步骤步骤目标目标路径路径中软培训中软培训识别用例用例要点:用例要点:价值结果价值结果有意义的目标有意义的目标 系统执行系统执行价值结果由系统生成价值结果由系统生成 执行者可见执行者可见业务语言,用户观点业务语言,用户观点 一组用例实例一组用例实例用例的粒度用例的粒度中软培训中软培训识别用例有意义的目标:有意义的目标:中软培训中软培训识别用例用户观点而非系统观点:用户观点而非系统观点:用户观点用户观点系统观点系统观点中软培训中软培训识别用例用例命名:执行者视角用例命名:执行者视角
9、动词(动词(+宾语)宾语)状语状语定语定语中软培训中软培训识别用例用例的粒度(用例的粒度(3):四轮马车):四轮马车任何业务归根到底都可以看作任何业务归根到底都可以看作CURD,但光,但光CURD能为能为Actor提供价值吗?提供价值吗?CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)缩写警惕警惕CURD泛滥!泛滥!中软培训中软培训识别用例用例的粒度(用例的粒度(3):四轮马车误区):四轮马车误区多个用例会操作同一项数据多个用例会操作同一项数据中软培训中软培训识别用例用例的粒度(用例的粒度(6):灵活处理):灵活处理CURD也可以把包含复杂交互的路径
10、独立出去形成用例也可以把包含复杂交互的路径独立出去形成用例中软培训中软培训识别用例执行者使用这个系统达到什么目标?执行者使用这个系统达到什么目标?语法测试:语法测试:【执行者执行者】使用系统来使用系统来【用例用例】中软培训中软培训识别用例讨论(讨论(1):登录怎么处理?):登录怎么处理?中软培训中软培训识别用例讨论(讨论(2):几个登录?):几个登录?或或中软培训中软培训用例文档:更进一步的精度用例图可以作用例文档的总图用例图可以作用例文档的总图进一步的精度:有层次的文档进一步的精度:有层次的文档文档中每一句话都有其价值文档中每一句话都有其价值中软培训中软培训书写用例文档用例的内容用例的内容v
11、 用例编号:用例名用例编号:用例名v 执行者执行者v 前置条件前置条件v 后置条件后置条件v 涉众利益涉众利益v 基本路径基本路径v1XXXXv2XXXXv3XXXXv 扩展扩展v2a.XXXXv 2a1.XXXXv 字段列表字段列表v 业务规则业务规则v 非功能需求非功能需求v 设计约束设计约束v 待解决问题待解决问题中软培训中软培训书写用例文档涉众利益涉众利益利益的冲突利益的冲突银行的银行的用户的用户的法律的法律的谁的?谁的?中软培训中软培训书写用例文档路径交互步骤的描述路径交互步骤的描述v只写只写“可观测的可观测的”v使用主动语句使用主动语句v句子必须以执行者或系统作为主语句子必须以执行
12、者或系统作为主语v每一句都要朝目标迈进每一句都要朝目标迈进v分支和循环分支和循环v不要涉及界面细节不要涉及界面细节中软培训中软培训书写用例文档字段列表字段列表v+数据序列数据序列v 可选项可选项v*多个多个v|可能取值可能取值vA=B 把把B的结构赋给的结构赋给A可以用自然语言,也可以用表达式可以用自然语言,也可以用表达式中软培训中软培训书写用例文档字段列表字段列表v注册信息注册信息=公司名公司名+联系人联系人+电话电话+联系地址联系地址*v联系地址联系地址=州州+城市城市+街道街道+邮编邮编v保存信息保存信息=注册信息注册信息+注册时间注册时间v客房状态客房状态=空闲空闲|已预定已预定|占用
13、占用|维修中维修中用表达式用表达式中软培训中软培训书写用例文档可用性可用性v系统应易于使用系统应易于使用v第一次使用时第一次使用时30分钟内能学会添加员工(任务时间)分钟内能学会添加员工(任务时间)v5次击键能完成客人入住服务,不需要使用鼠标(操作次次击键能完成客人入住服务,不需要使用鼠标(操作次数)数)v80%的用户认为系统易学,并且使用效率高(用户调查)的用户认为系统易学,并且使用效率高(用户调查)v系统界面应如系统界面应如XX附件所示的屏幕图像(小心)附件所示的屏幕图像(小心)可用性需求的表达可用性需求的表达?中软培训中软培训通过关系整理用例用例的关系用例的关系扩展:分离扩展路径扩展:分
14、离扩展路径包含:提取公共步骤,便于复用包含:提取公共步骤,便于复用泛化:同一业务目的的不同技术实现泛化:同一业务目的的不同技术实现中软培训中软培训通过关系整理用例包含关系的误用包含关系的误用中软培训中软培训通过关系整理用例除此之外,不能有别的关系!除此之外,不能有别的关系!中软培训中软培训类图解说中软培训中软培训识别类及其属性审查v属性是否描述类对象的特征属性是否描述类对象的特征v属性是否存在冗余属性是否存在冗余v是否有复杂结构的属性是否有复杂结构的属性v是否有是否有1对多的属性对多的属性v属性是否对类的所有对象都有意义属性是否对类的所有对象都有意义中软培训中软培训识别类及其属性审查属性是否描
15、述类对象的特征属性是否描述类对象的特征类的属性类的属性什么的什么什么的什么什么的什么的什么什么的什么的什么什么的什么的什么的什么什么的什么的什么的什么中软培训中软培训识别类及其属性审查属性是否存在冗余属性是否存在冗余常见冗余如:常见冗余如:出生年月出生年月年龄年龄中软培训中软培训识别类及其属性审查是否有复杂结构的属性是否有复杂结构的属性中软培训中软培训识别类及其属性审查复杂结构属性的处理复杂结构属性的处理v1:1可以在原类中展开可以在原类中展开v1:N独立出去形成关联独立出去形成关联中软培训中软培训识别类及其属性审查复杂结构属性的处理复杂结构属性的处理中软培训中软培训识别类及其属性审查是否有是
16、否有1对多的属性对多的属性中软培训中软培训识别类及其属性审查属性是否对类的所有对象都有意义属性是否对类的所有对象都有意义中软培训中软培训识别类之间的泛化识别思路识别思路vA的对象的对象总是总是B的对象,的对象,B的对象也的对象也总是总是A的对象的对象vA的对象的对象总是总是B的对象,的对象,B的对象的对象有时是有时是A的对象(的对象(*)vA的对象的对象从来不是从来不是B的对象,的对象,B的对象也的对象也从来不是从来不是A的对象的对象vA和和B之间有一些共同的属性(之间有一些共同的属性(*)中软培训中软培训识别类之间的关联关联的几种表现形式关联的几种表现形式思考:与用例关联种类的区别?思考:与
17、用例关联种类的区别?中软培训中软培训识别类之间的关联聚合聚合 vs.组合组合v组合组合/部分部分v容器容器/内容内容v集合集合/成员成员中软培训中软培训识别类之间的关联关联的几种表现形式关联的几种表现形式中软培训中软培训识别类之间的关联绘制关联关系绘制关联关系中软培训中软培训识别类之间的关联要点(要点(2):自反关联):自反关联中软培训中软培训识别类之间的关联关联类关联类关联本身可以有自己的属性和操作关联本身可以有自己的属性和操作关联类关联类或或中软培训中软培训识别类之间的关联警惕警惕“数据库数据库”习惯习惯关联类也要有业务意义关联类也要有业务意义中软培训中软培训识别类之间的关联警惕警惕“数据
18、库数据库”习惯习惯不是拥有不是拥有“外键外键”,而是拥有,而是拥有“对象对象”中软培训中软培训三种版型的类在分析阶段在分析阶段v边界类:用例的每个执行者映射一个边界类边界类:用例的每个执行者映射一个边界类v 责任:输入、输出、过滤责任:输入、输出、过滤v控制类(可选):一个用例映射一个控制类控制类(可选):一个用例映射一个控制类v 责任:控制事件流,负责为实体类分配责任责任:控制事件流,负责为实体类分配责任v实体类:一个用例有多个实体类参与,一个实体类:一个用例有多个实体类参与,一个实体类可以参与多个用例实体类可以参与多个用例v 责任:业务行为的主要承载体责任:业务行为的主要承载体中软培训中软
19、培训顺序图解说中软培训中软培训顺序图和类图的映射中软培训中软培训顺序图绘制要点(Rose)(1)中软培训中软培训顺序图绘制要点(Rose)(4)中软培训中软培训顺序图绘制要点(Rose)(5)中软培训中软培训责任分配原则v原则原则1:专家(:专家(Expert)原则)原则v原则原则2:老板(:老板(Boss)原则)原则v原则原则3:可视(:可视(Visibility)原则)原则中软培训中软培训结束语软件质量是设计出来的,而不是测试出来的!设软件质量是设计出来的,而不是测试出来的!设计思想是比开发语言更重要的东西!计思想是比开发语言更重要的东西!现在还有不少程序员在使用现在还有不少程序员在使用Java语言来进行结构语言来进行结构化编程,使用化编程,使用Rose进行面向功能的分析!进行面向功能的分析!Rose不仅仅是不仅仅是OO的设计工具,更重要的是通过的设计工具,更重要的是通过用例、类图和顺序图三者来实现用例、类图和顺序图三者来实现OO的思考!的思考!我们呢我们呢
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。