理 UML和Rose教程.doc 目录 目录…2 1.第一周:概述.... 1.1 Rational家族工具和应用方向介绍................4 1.1.1用Rational工具和以往的软件开发方式,我们能改变什么?..·4 1.1.2在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。4 1.1.3从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。…5 1.1.4利用Rational的成功经验..........5 1.200A&D面向对象的基本原则: 1.3 Rational Rose的界面介绍.............8 2.第二周:静态建模:用例和用例图(Use Case Diagram)...... 2.1角色和角色之间的关系.. 8 2.1.1角色… 8 2.1.2发现角色:… 9 2.1.3角色之间的关系........... …9 2.2用例和用例之间的关系。 10 2.2.1用例的特征: 10 2.2.2发现用例.......... 10 2.2.3用例之间的关系. 11 2.3举例建立用例图的方法和文档的详细注释.… 12 2.3.1描述用例.... 12 2.3.2测试用例.…13 2.3.3实现用例..…...... 3.第三周:静态建模:类图和对象图(Class Diagram)......... 15 3.1类的定义… 6 3.2类图的属性、操作和使用方法。 17 33类图之间的关系.…18 3.3.1关联.. 18 3.3.2依赖性.… 19 3.3.3精化关系. 20 3.3.4聚合…… 20 3.3.5一般化. 21 3.4类图的约束和派生规则..…… 23 3.5类图的接口、组件、包和模板..…… 24 3.6类图怎样生成java代码框架.…25 3.7类的java代码生成类图.…… 25 4.第四周:动态建模:序列图和协作图(Sequence&Callaboration Diagram)..·25 4.1序列图...... 26 4.1.1序列图的格式和并发事件.… 26 第贬
UML 和 Rose 教程.doc 第页2 目录 目录............................................................................... 2 1. 第一周:概述................................................................ 4 1.1 Rational 家族工具和应用方向介绍 ........................................ 4 1.1.1 用 Rational 工具和以往的软件开发方式,我们能改变什么? ............ 4 1.1.2 在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。4 1.1.3 从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。 ....... 5 1.1.4 利用 Rational 的成功经验 .......................................... 5 1.2 OOA&D 面向对象的基本原则: ............................................. 5 1.3 Rational Rose 的界面介绍 ............................................... 8 2. 第二周:静态建模:用例和用例图(Use Case Diagram) ............................ 8 2.1 角色和角色之间的关系 ................................................... 8 2.1.1 角色............................................................. 8 2.1.2 发现角色:....................................................... 9 2.1.3 角色之间的关系 ................................................... 9 2.2 用例和用例之间的关系 .................................................. 10 2.2.1 用例的特征:.................................................... 10 2.2.2 发现用例........................................................ 10 2.2.3 用例之间的关系 .................................................. 11 2.3 举例建立用例图的方法和文档的详细注释 .................................. 12 2.3.1 描述用例........................................................ 12 2.3.2 测试用例........................................................ 13 2.3.3 实现用例........................................................ 13 3. 第三周:静态建模:类图和对象图(Class Diagram) .............................. 15 3.1 类的定义.............................................................. 16 3.2 类图的属性、操作和使用方法 ............................................ 17 3.3 类图之间的关系........................................................ 18 3.3.1 关联............................................................ 18 3.3.2 依赖性.......................................................... 19 3.3.3 精化关系........................................................ 20 3.3.4 聚合............................................................ 20 3.3.5 一般化.......................................................... 21 3.4 类图的约束和派生规则 .................................................. 23 3.5 类图的接口、组件、包和模板 ............................................ 24 3.6 类图怎样生成 java 代码框架 ............................................. 25 3.7 类的 java 代码生成类图 ................................................. 25 4. 第四周:动态建模:序列图和协作图(Sequence & Callaboration Diagram) ......... 25 4.1 序列图................................................................ 26 4.1.1 序列图的格式和并发事件 .......................................... 26
UML和Rose教程.doc 4.1.2序列图定义迭代和约束的标签...…28 4.1.3序列图的递归方式… 28 4.2协作图..29 42.1协作图的格式和消息流........................ 29 4.2.2协作图的链接.…… 30 4.2.3对象的生命周期.…… 32 4.3从序列图转换为协作图的方式...… 32 4.4从协作图转换为序列图的方式.. 32 5.第五周:动态建模:状态图/话动图(Statechart/Activity Diagram).....32 5.1状态图.… 32 5.1.1状态和转移.… 32 5.1.2事件..… 33 5.1.3状态图与子状态.… 35 5.1.4历史指示器 35 5.2活动图.… 36 5.2.1活动图的动作和转移 37 5.2.2活动图的泳道........ 38 5.2.3活动图的对象.… 38 5.2.4活动图的信号.. 39 6.第六周:图书馆信息系统L实例........ 39 6.1需求. 39 6.2分析-用例图 40 6.3建模及设计一类图........ 40 6.4建模及设计一状态图. 40 6.5建模及设计一序列图. 40 6.6详细设计一类包......... 40 6.7详细设计一详细的类图.…...… 40 6.8详细设计一关键对象的状态图.. 40 6.9详细设计一关键对象的序列图 40 6.10详细设计一关键对象的协作图.. 40 6.11详细设计一组件图....... 40 6.12接口的设计.... 41 6.l3转成java并encoding实现.... 6.14测试和配置-展开图 41 6.15总结... 41 第页3
UML 和 Rose 教程.doc 第页3 4.1.2 序列图定义迭代和约束的标签 ...................................... 28 4.1.3 序列图的递归方式 ................................................ 28 4.2 协作图................................................................ 29 4.2.1 协作图的格式和消息流 ............................................ 29 4.2.2 协作图的链接.................................................... 30 4.2.3 对象的生命周期 .................................................. 32 4.3 从序列图转换为协作图的方式 ............................................ 32 4.4 从协作图转换为序列图的方式 ............................................ 32 5. 第五周:动态建模:状态图/活动图(Statechart / Activity Diagram) ............. 32 5.1 状态图................................................................ 32 5.1.1 状态和转移...................................................... 32 5.1.2 事件............................................................ 33 5.1.3 状态图与子状态 .................................................. 35 5.1.4 历史指示器...................................................... 35 5.2 活动图................................................................ 36 5.2.1 活动图的动作和转移 .............................................. 37 5.2.2 活动图的泳道.................................................... 38 5.2.3 活动图的对象.................................................... 38 5.2.4 活动图的信号.................................................... 39 6. 第六周:图书馆信息系统 UML 实例 ............................................. 39 6.1 需求.................................................................. 39 6.2 分析-用例图.......................................................... 40 6.3 建模及设计-类图...................................................... 40 6.4 建模及设计-状态图.................................................... 40 6.5 建模及设计-序列图.................................................... 40 6.6 详细设计-类包........................................................ 40 6.7 详细设计-详细的类图 .................................................. 40 6.8 详细设计-关键对象的状态图 ............................................ 40 6.9 详细设计-关键对象的序列图 ............................................ 40 6.10 详细设计-关键对象的协作图 ........................................... 40 6.11 详细设计-组件图..................................................... 40 6.12 接口的设计........................................................... 41 6.13 转成 java 并 encoding 实现 ............................................. 41 6.14 测试和配置-展开图 ................................................... 41 6.15 总结................................................................. 41
装 uml.org.cn UML和Rose教程.doc 1.第一周:概述 1.1 Rational家族工具和应用方向介绍 1.1.1用Rational工具和以往的软件开发方式,我们能改变什么? Rational家族及在软件工程中的应用 基于团队的需求 分析设计 者理 拘造 测试 提交 可视化遵模语 Rational 用户的idea Rational Suite Requisite Pro Rational Rose 单元测试 TestStudio 方法:JCM SCM+Rational ClearCase系列 方表:CM+Rational Clear@ues平列 Rational ClearCase:提供版本控制,提供工作空间管理,建立管理和过程控制功能。 ●Rational ClearQuest:定制缺陷和变更请求的信息域、过程、用户界面、查询、图表和报告 等。 ●Rational Requisite Pro:用户需求分析工具。 ●Rational Rose:可视化的建模工具,将应用程序可视化、说明应用程序的完整结构或行为、 创建一个模板引导你构建应用程序、将质量贯穿与整个开发生命周期、将开发过程中的所有决 策信息整理归档。 ●Rational Unified Process:是一个可以通过Web来使用的软件工程流程,可以提高团队的生 产效率,并将最佳软件开发经验传递给所有团队成员。 ●Rational SoDA:文档维护工具。 ●Rational Suite TestStudio:全方位的质量测试,包括单元测试和自动化测试。 1.12在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。 需求分析主要使用的工具为Rational Requisite Pro 分析建模阶段主要使用的工具为:Rational Rose。 在系统构造阶段就是用基于面向对象的语言(如Java、C+等)用程序员的经验、技能、好的 想法合理的在体现前面二项分析的模型情况下具体实现软件的功能,并进行单元项的测试和修改。 测试阶段包括单元测试、整体联合测试、软件全方位的质量测试、满足项目需求的功能测试、 第页4
UML 和 Rose 教程.doc 第页4 1. 第一周:概述 1.1 Rational 家族工具和应用方向介绍 1.1.1 用 Rational 工具和以往的软件开发方式,我们能改变什么? Rational ClearCase:提供版本控制,提供工作空间管理,建立管理和过程控制功能。 Rational ClearQuest:定制缺陷和变更请求的信息域、过程、用户界面、查询、图表和报告 等。 Rational Requisite Pro:用户需求分析工具。 Rational Rose:可视化的建模工具,将应用程序可视化、说明应用程序的完整结构或行为、 创建一个模板引导你构建应用程序、将质量贯穿与整个开发生命周期、将开发过程中的所有决 策信息整理归档。 Rational Unified Process:是一个可以通过 Web 来使用的软件工程流程,可以提高团队的生 产效率,并将最佳软件开发经验传递给所有团队成员。 Rational SoDA:文档维护工具。 Rational Suite TestStudio:全方位的质量测试,包括单元测试和自动化测试。 1.1.2 在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。 需求分析主要使用的工具为 Rational Requisite Pro 分析建模阶段主要使用的工具为:Rational Rose。 在系统构造阶段就是用基于面向对象的语言(如 Java、C++等)用程序员的经验、技能、好的 想法合理的在体现前面二项分析的模型情况下具体实现软件的功能,并进行单元项的测试和修改。 测试阶段包括单元测试、整体联合测试、软件全方位的质量测试、满足项目需求的功能测试
uml.org.cn UML和Rose教程.doc 寻找应用程序缺陷的可靠性测试、查找响应时间瓶颈的性能测试等。并按测试的结果提出相应的改 进建议。 提交阶段:包括为用户的安装、调试、培训、应用等具体行为。 1.1.3从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。 方法一、UCM(全球变更管理)、SCM(软件配置管理),版本控制(Rational ClearCase)。 方法二、CM(变更管理),工具为Rational ClearQuest。 1.1.4利用Rational的成功经验 1)迭代化的开发 2)基于构件的软件构架 3)可视化建模(ML) 4)持续地质量验证 5)配置和变更管理 1.2OOA&D面向对象的基本原则: 面向对象机制是另一种观察应用程序的方式。利用面向对象方法,把应用程序分成许多小块(或 对象),这些对象是相互独立的。然后可以组合这些对象,建立应用程序。可以把它看成砌砖墙。 第一步要建立或购买基本对象(各种砖块)。有了这些砖块后,就可以砌出砖墙了。在计算机领域 中建立或购买基本对象后,就可以集成起来,生成新的应用程序。 面向对象机制的一个好处是可以一次性地建立组件,然后反复地使用。 那么面向对象机制与传统开发方法有什么不同呢?传统开发方法集中考虑系统要维护的信息。 用这种方法时,我们要向用户询问他们需要什么信息,然后设计保存信息的数据库,提供输入信息 的屏幕并打印显示信息的报表。换句话说,我们关注信息,而不是关注信息的作用或系统的功能。 这种方法是以数据为中心的,多年来用它建立了成千上万个系统。 以数据为中心的模型适合数据设计和捕获信息。但用来设计商业应用程序就有问题。一个主要 问题是系统要求随着时间不断变化。以数据为中心的系统可以方便地处理数据库变化,但很难实现 商业规则变化和系统功能变化。 面向对象机制的开发正是要解决这个问题。利用面向对象机制,我们同时关注信息与功能。因 此,我们可开发密切关注和适应信息与功能变化的系统。 要实现灵活性带来的好处,只能通过设计好的面向对象系统。这就要求了解面向对象的基本原 则: 第页5
UML 和 Rose 教程.doc 第页5 寻找应用程序缺陷的可靠性测试、查找响应时间瓶颈的性能测试等。并按测试的结果提出相应的改 进建议。 提交阶段:包括为用户的安装、调试、培训、应用等具体行为。 1.1.3 从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。 方法一、UCM(全球变更管理)、SCM(软件配置管理),版本控制(Rational ClearCase)。 方法二、CM(变更管理),工具为 Rational ClearQuest。 1.1.4 利用 Rational 的成功经验 1) 迭代化的开发 2) 基于构件的软件构架 3) 可视化建模(UML) 4) 持续地质量验证 5) 配置和变更管理 1.2 OOA&D 面向对象的基本原则: 面向对象机制是另一种观察应用程序的方式。利用面向对象方法,把应用程序分成许多小块(或 对象),这些对象是相互独立的。然后可以组合这些对象,建立应用程序。可以把它看成砌砖墙。 第一步要建立或购买基本对象(各种砖块)。有了这些砖块后,就可以砌出砖墙了。在计算机领域 中建立或购买基本对象后,就可以集成起来,生成新的应用程序。 面向对象机制的一个好处是可以一次性地建立组件,然后反复地使用。 那么面向对象机制与传统开发方法有什么不同呢?传统开发方法集中考虑系统要维护的信息。 用这种方法时,我们要向用户询问他们需要什么信息,然后设计保存信息的数据库,提供输入信息 的屏幕并打印显示信息的报表。换句话说,我们关注信息,而不是关注信息的作用或系统的功能。 这种方法是以数据为中心的,多年来用它建立了成千上万个系统。 以数据为中心的模型适合数据设计和捕获信息。但用来设计商业应用程序就有问题。一个主要 问题是系统要求随着时间不断变化。以数据为中心的系统可以方便地处理数据库变化,但很难实现 商业规则变化和系统功能变化。 面向对象机制的开发正是要解决这个问题。利用面向对象机制,我们同时关注信息与功能。因 此,我们可开发密切关注和适应信息与功能变化的系统。 要实现灵活性带来的好处,只能通过设计好的面向对象系统。这就要求了解面向对象的基本原 则:
uml.org.cn UML和Rose教程.doc a)封装(Encapsulation) 在面向对象系统中,我们将信息与处理信息的功能组合起来,然后将其包装成对象,称为封装。 另一种理解封装的方法就是把应用程序分解成较小的功能组件。 例如,我们把与银行有关的信息,如帐号、节余、客户名和功能:开户、销户、存取款。我们 将这些信息与处理信息的功能封装成帐目对象。结果,银行系统对帐目的任何改变就会在帐目对象 中实现。它是所有帐目信息与功能的集合。 银行模型:有银行信用帐户的客户,增加支票帐户的透支额只要改变Account类。 Card Reader ATM Screen Accept Card ◆Prompt0 ◆Accept Card(0 ◆AcceptInput0 Eject Card0 Read Card0 Account ®Card Number PIN Cash Dispenser Balance Cash Balance ◆open0 ◆Provide Cash0 ithdraw Funds0 Provide Receipto Deduct Funds0 Verify Funds0 封装的另一好处是将系统改变的影响限制在对象内。 b)继承(Inheritance) 在面向对象系统中,继承机制可以根据旧对象生成新对象。子对象继承父对象的特性。 继承的主要好处之一是易于维护。(变化时只需改变父对象) 第页6
UML 和 Rose 教程.doc 第页6 a) 封装(Encapsulation) 在面向对象系统中,我们将信息与处理信息的功能组合起来,然后将其包装成对象,称为封装。 另一种理解封装的方法就是把应用程序分解成较小的功能组件。 例如,我们把与银行有关的信息,如帐号、节余、客户名和功能:开户、销户、存取款。我们 将这些信息与处理信息的功能封装成帐目对象。结果,银行系统对帐目的任何改变就会在帐目对象 中实现。它是所有帐目信息与功能的集合。 银行模型:有银行信用帐户的客户,增加支票帐户的透支额只要改变 Account 类。 封装的另一好处是将系统改变的影响限制在对象内。 b) 继承(Inheritance) 在面向对象系统中,继承机制可以根据旧对象生成新对象。子对象继承父对象的特性。 继承的主要好处之一是易于维护。(变化时只需改变父对象)
uml.org.cn UML和Rose教程.doc 父母 发色 眼睛 ®肤色 儿子 女儿 c)多态(Polymorphism) 多态的定义是多种不同形式、阶段或类型发生的事,表示特定功能有多种形式或实现方法。 画图 恩形状 drawMe0 圆 长方形 线 ◆drawMe0 ◆drawMe0 ◆drawMe0 假如没有多态代码为 Function shape.drawMe() case shape.Type case“Circle" shape.drawCircle(); case”Rectangle” shape.drawRectangle(): case”Line” shape.drawLine(); Endcase } 多态代码为 第页7
UML 和 Rose 教程.doc 第页7 c) 多态(Polymorphism) 多态的定义是多种不同形式、阶段或类型发生的事,表示特定功能有多种形式或实现方法。 假如没有多态代码为 Function shape.drawMe() { case shape.Type case “Circle” shape.drawCircle(); case”Rectangle” shape.drawRectangle(); case”Line” shape.drawLine(); Endcase } 多态代码为
uml.org.cn UML和Rose教程.doc Function drawO shape.drawMe(); } 1.3 Rational Rose的界面介绍 可视化建模将模型中的信息用标准图形元素直观地显示。 建立模型后,可以向所有感兴趣的方面显示这个模型,让他们对模型中的重要信息一目了然。 演示并解说Rose的主要功能和使用方法。 专Rational Rose-银行.mdl[das5 Diagram:Use Case View/银行模型】 5x Ele Edi Yiew Format Browse Report Query Iools Add-Ins Window Help x D它日品追昌▣品咒自是如室←aQ四@ 的银行 白C□Us9 Case View 星ia 目银行积型 Card Reader ATM Screen 甲Card Reader Accept Card 回园Account b ◆Prompti0 由目C4 sh Dispen5eg ◆Accept Card(0 AcdClass Use Case View::ATM Screen g白Loic1View Eject Card0 目Main Read Card0 由三Associations 白 白□Component View 毛Main Deploymont Viow Account Model Properties Card Number PIN Cash Dispenser 色8 alance cash日alance Open0 Provide Casho withdraw Funds( ◆Provide Receipto Deduct Funds0 erity Funds0 For Help,pross F1 机M 2.第二周:静态建模:用例和用例图(Use Case Diagram) 2.1角色和角色之间的关系 2.1.1角色 角色(actor)是与系统交互的人或事。角色是一个群体概念,代表的是一类能使用某个功能的 人或事,角色不是指某个个体。 第页8
UML 和 Rose 教程.doc 第页8 Function draw() { shape.drawMe(); } 1.3 Rational Rose 的界面介绍 可视化建模将模型中的信息用标准图形元素直观地显示。 建立模型后,可以向所有感兴趣的方面显示这个模型,让他们对模型中的重要信息一目了然。 演示并解说 Rose 的主要功能和使用方法。 2. 第二周:静态建模:用例和用例图(Use Case Diagram) 2.1 角色和角色之间的关系 2.1.1 角色 角色(actor)是与系统交互的人或事。角色是一个群体概念,代表的是一类能使用某个功能的 人或事,角色不是指某个个体
uml.org.cn UML和Rose教程.doc “所谓系统交互”指的是角色向系统发送消息,从系统中接受消息,或是在系统中交换信息。 只要使用用例,与系统相互交流的任何人或事都是角色。比如,某人使用系统中提供的用例,则该 人是角色:与系统进行通讯(通过用例)的某种硬件设备也是角色。 角色与系统进行通讯的收、发消息机制,与面向对象编程中的消息机制很像。角色是启动用例 的前提条件,又称为刺激物(stimulus)。 角色可以分为:主要角色(primary actor)指执行系统主要功能的角色,次要角色(secondary ctor)指使用系统的次要功能的角色,次要功能是指一般完成维护系统的功能(比如,管理数据库、 通讯、备份等)。 或分为:主动角色(可以初始化用例),被动角色(不能初始化用例)仅仅参与一个或多个用 例,在某个时刻与用例通讯。 2.1.2发现角色: ●使用系统主要功能的人是谁(即主要角色)? ●需要借助与系统完成日常工作的人是谁? ●谁来维护、管理系统(次要角色),保证系统正常工作? ●系统控制的硬件设备有哪些? ● 系统需要与哪些其他系统交互?其他系统包括计算机系统,也包括该系统将要使用的计算 机中的其他应用软件。其他系统也分二类,一类是启动该系统,另一类是该系统要使用的 系统。 ● 对系统产生的结果感兴趣的人或事是哪些? ≥ 保险代理 角色 角色类的图示方式 2.1.3角色之间的关系 角色是类所以拥有与类相同的关系描述: 第项9
UML 和 Rose 教程.doc 第页9 “所谓系统交互”指的是角色向系统发送消息,从系统中接受消息,或是在系统中交换信息。 只要使用用例,与系统相互交流的任何人或事都是角色。比如,某人使用系统中提供的用例,则该 人是角色;与系统进行通讯(通过用例)的某种硬件设备也是角色。 角色与系统进行通讯的收、发消息机制,与面向对象编程中的消息机制很像。角色是启动用例 的前提条件,又称为刺激物(stimulus)。 角色可以分为:主要角色(primary actor)指执行系统主要功能的角色,次要角色(secondary actor)指使用系统的次要功能的角色,次要功能是指一般完成维护系统的功能(比如,管理数据库、 通讯、备份等)。 或分为:主动角色(可以初始化用例),被动角色(不能初始化用例)仅仅参与一个或多个用 例,在某个时刻与用例通讯。 2.1.2 发现角色: 使用系统主要功能的人是谁(即主要角色)? 需要借助与系统完成日常工作的人是谁? 谁来维护、管理系统(次要角色),保证系统正常工作? 系统控制的硬件设备有哪些? 系统需要与哪些其他系统交互?其他系统包括计算机系统,也包括该系统将要使用的计算 机中的其他应用软件。其他系统也分二类,一类是启动该系统,另一类是该系统要使用的 系统。 对系统产生的结果感兴趣的人或事是哪些? 2.1.3 角色之间的关系 角色是类所以拥有与类相同的关系描述:
-头水 UML和Rose教程.doc 雇员 合同工 季时工 把某些角色的共同行为(原角色中的部分行为),抽取出来表示成通用行为,且把它们描述成 为超类(superclass),即通用化关系。 这样在定义某一具体的角色时,仅仅把具体的角色所特有的那部分行为定义一下就行了,具体 角色的通用行为则不必重新定义,只要继承超类中相应的行为即可。表示方式如上图。 2.2用例和用例之间的关系 用例代表的是一个完整的功能。在L中的用例是动作步骤的集合。 2.2.1用例的特征: 用例总由角色初始化 用例为角色提供值 用例具有完全性 2.2.2发现用例 ·角色需要从系统中获得哪些功能?角色需要做什么? ●角色需要读取、产生、删除、修改或存储系统中的某些消息吗? ●系统中发生的事件需要通知角色吗?或者角色需要通知系统某件事吗?这些事件(功能) 能干些什么? 如果用系统的新功能处理角色的日常工作是简单化了,还是提高了工作效率? 。系统需要的输入/输出是什么信息?这些输入/输出信息从哪儿来到哪儿去? ●系统当前的这种实现方法要解决的问题是什么(也许是用自动系统代替手工操作)? 表示方式: 第0
UML 和 Rose 教程.doc 第页10 把某些角色的共同行为(原角色中的部分行为),抽取出来表示成通用行为,且把它们描述成 为超类(superclass),即通用化关系。 这样在定义某一具体的角色时,仅仅把具体的角色所特有的那部分行为定义一下就行了,具体 角色的通用行为则不必重新定义,只要继承超类中相应的行为即可。表示方式如上图。 2.2 用例和用例之间的关系 用例代表的是一个完整的功能。在 UML 中的用例是动作步骤的集合。 2.2.1 用例的特征: 用例总由角色初始化 用例为角色提供值 用例具有完全性 2.2.2 发现用例 角色需要从系统中获得哪些功能?角色需要做什么? 角色需要读取、产生、删除、修改或存储系统中的某些消息吗? 系统中发生的事件需要通知角色吗?或者角色需要通知系统某件事吗?这些事件(功能) 能干些什么? 如果用系统的新功能处理角色的日常工作是简单化了,还是提高了工作效率? 系统需要的输入/输出是什么信息?这些输入/输出信息从哪儿来到哪儿去? 系统当前的这种实现方法要解决的问题是什么(也许是用自动系统代替手工操作)? 表示方式: