基于UML的软件设计和建模(2).ppt
《基于UML的软件设计和建模(2).ppt》由会员分享,可在线阅读,更多相关《基于UML的软件设计和建模(2).ppt(83页珍藏版)》请在麦多课文档分享上搜索。
1、基于UML的 软件设计和建模(2),上海交通大学 电子信息与电气工程学院 2006.10,2018/10/14,2,Agenda,软件开发流程简介 需求捕获工作流简介 软件分析工作流简介,2018/10/14,3,统一开发工程(RUP)基本流程,四次迭代 初始 精化 构建 产品化,2018/10/14,4,RUP核心工作流,需求捕获工作流 分析工作流 设计工作流 实现工作流 测试工作流,2018/10/14,5,Agenda,软件开发流程简介 需求捕获工作流简介 分析工作流简介,2018/10/14,6,需求分析的主要任务,获取需求 明确功能性需求 明确非功能性需求 需求按优先级分类 将需求转
2、化为用例模型 找到参与者与用例 用例细化 结构化用例模型,2018/10/14,7,获取需求,需求是所有软件开发项目的基础 需求分析根据用户对产品的功能的期望, 提取出产品外部功能的描述。需求分为两类: 1). 功能需求: 系统应该提供什么样的功能 2). 非功能需求: 系统的某种特别性质或者限制,2018/10/14,8,举例: ATM系统,功能需求: ATM系统可以检查插入的ATM卡的合法性 验证用户输入的密码正确与否 用户可以查询对应帐户余额 用户可以取款,取款限额不超过帐户余额 非功能需求 用 C+实现 与银行数据库通信时采用256位密钥加密 验证ATM卡的时间不超过3秒钟 验证密码的
3、时间不超过3秒钟,2018/10/14,9,用例建模,用例建模是需求工程的一种形式,用于引出并文档化需求 用例建模流程:- 找到系统边界 system boundary- 明确参与者actors- 明确用例 use cases: A. 明确用例明细; B. 建立场景scenarios.,2018/10/14,10,用例图的组成元素,四种元素: 参与者 Actors: 使用系统的人或事物 用例 Use case: 一组系统行为- 关系 Relationships: 参与者与用例之间的 关联、泛化和实现关系 - 系统边界System boundary: 区分系统内部和外部,2018/10/14,1
4、1,外部实体与系统交互时扮演的角色 可以是用户,也可以是与这个系统交互的另外一个系统注意:参与者总是在系统之外的,students,什么是参与者 actors,2018/10/14,12,如何找到参与者 actors,考虑谁或者什么使用这个系统,并且他们在交互过程中扮演一个什么样的角色 可以问自己这样一些问题: 谁或者什么使用这个系统? 他们在交互过程中扮演什么角色? 谁安装这个系统? 谁启动或者关闭这个系统? 谁维护这个系统? 有其他系统与这个系统交互么? 谁或什么从这个系统取得或者提供信息? 这些事情是不是在某个确定时间发生的? ,2018/10/14,13,需要注意的几点:,参与者总是在
5、系统之外的也在你的控制之外 参与者直接与系统交互用于定义系统边界 参与者代表用户或事物与系统交互过程中扮演的角色,而不是某一个人或者特定的事物 同一个人或者事物可能在某一时刻或在不同时刻扮演多个角色 每个参与者要有不同的名字,而且简明扼要 每个参与者需要有一个简单描述. 像类的表示一样,参与者也可以有属性或是事件,2018/10/14,14,时间作为参与者,当在建模的时候发现系统某一事件是在特定时刻发生的,而不是被人触发的 可以引入一个参与者叫做Time举例: 数据库系统每天晚上12点自动备份,2018/10/14,15,什么是用例,用例描述了当系统作用者和软件系统进行交互时,软件系统所执行的
6、一系列的动作序列。 这些动作序列包含 正常使用的各种动作序列, 对非正常使用时软件系统的动作序列的描述 注意 用例总是由参与者引发的 用例总是从参与者的角度描述的,2018/10/14,16,什么是用例(续),用例视图中用例的设置,就代表了软件系统的功能的划分。 为了得到得合理而方便的软件系统的功能设置,必须仔细考虑每个用例代表的动态行为的内容,使得每个用例都能产生一个有价值的结果。 在通过用例考虑软件系统的功能划分时,应使得功能的分布较为均衡、易于理解和使用,2018/10/14,17,如何来找用例,最佳方法:从每个参与者开始,考虑每个参与者是如何与系统交互的 可以考虑如下问题: 这个参与者
7、要求系统提供什么功能? 这个系统存储或者获取信息么?如果是的话,谁触发这个行为? 系统状态变化时,要通知某个参与者么? 有没有外部事件影响系统? 什么事物产生这个影响?,2018/10/14,18,用例的组织和用例图,在UML里, 用例图是表达用例和系统作用者及其之间关系的的载体 用例图可包含 用例 系统作用者 它们之间的关系 这些关系可以是 关联关系(某种联系,e.g. 参与,影响,使用) 依赖关系(include, extend) 实现关系(一般-特殊) 泛化关系(参与者泛化、用例泛化),2018/10/14,19,用例图示意,Course registration system,Enqu
8、ire courses,Register courses,Cancel courses,student,Use case,System name,actor,relationship,System boundary,FindStudent,FindCourse,2018/10/14,20,用例明细,用例明细Use case specification 每个用例都应该有它的名字和明细specification. 用例明细包括:- 前置条件 Preconditions- 事件流 Flow of events- 后置条件 Postconditions,2018/10/14,21,用例名,标识符,相关
9、的参与者,用例开始前的系统状态,用例的实际步骤,用例结束时的系统状态,包含的用例(可选),次要事件流(可选),2018/10/14,22,事件流的描述,用例代表系统和系统作用者之间发生的一系列的事件 事件流构成了用户对系统功能的一次使用。 对事件流的描述包括四种形式,即: 形式文本 非形式文本 交互图 状态图 有相应的UML成员作为这些描述的载体 文本和正式文本可用注标(note)表示 交互图和活动图本身即是一个标准的UML成员。,2018/10/14,23,主事件流和次要事件流,主事件流(main flow of events)和次要事件流(alternative flow of event
10、s)。 用来区分对系统功能的合法使用和非法使用 主事件流(main flow of events) 合法使用 只有一个 次要事件流(alternative flow of events) 可包含若干个 在描绘事件流时,必须用足够清晰的语言以使得一个普通的用户能够理解。,2018/10/14,24,场景(Scenario),一个用例可以有多个事件流,每一个事件流是一个完整的用户对系统的功能的使用。 它们出于同一个目的,但出于事件流不同,使得系统产生的响应不同。 它是对系统功能使用的特例(合法或非法的)每一个完整的事件流在UML中被称为场景,2018/10/14,25,高阶用例建模,参与者泛化 A
11、ctor Generalization 用例泛化 Use Case Generalization 包含 扩展,2018/10/14,26,参与者泛化,从特殊的参与者到一般的参与者的泛化关系 找到参与者泛化:- 找到一种公共的行为;- 找到parent actors (abstract actors) 和 child actors (concrete actors). 注意:- 参与者泛化中的父参与者并不一定是抽象的(abstract )。但是好的建模风格要求父参与者是抽象的.- 如果两个参与者与同一组用例有相同的交互,我们就可以用泛化的形式表示. 如下图所示,2018/10/14,27,Buy
12、er,Seller,Online Sales System,Login,Logout,Register,PublishNewItem,2018/10/14,28,Logout,Register,泛化,Buyer,Seller,User,PublishNewItem,Login,Online Sales System,2018/10/14,29,用例泛化,从特殊的用例到一般的用例之间的泛化关系 子用例是父用例的更详细的描述 如何确定用例泛化:- 将一个或多个公共行为抽象到一个父用例中 注意:- 子用例自动继承父用例的所有特征- 子用例可以增加新的特征;- 子用例可以覆盖(override)或改变
13、父用例的特征.例子见后面图,2018/10/14,30,包含关系 ,位于两个用例之间的包含关系意味着基用例显式地在其指定位置将另一个用例包含进来, 使其成为自己的行为的一部分。 包含关系可用于提取共用的用例。 在具有包含关系的两个用例中,被包含的那个用例不能单独存在,它只能以实例的形式存在于包含它的用例之中。,2018/10/14,31,扩展关系,两个用例之间的扩展关系,代表基用例(base use case)可以隐式地包含另一个用例作为其行为的一部分。 基用例可以独立于扩展用例单独存在。 当一个用例有多个子流程时,可以用扩展关系对其进行扩展,使得此基用例的不同子流程能在不同的情形下以扩展用例
14、的形式被激活,2018/10/14,32,注意:UML把包含关系和扩展关系表示为依赖关系的变体 在任何一种图形表示中,箭头所指的模型元素分别代表被包含的用例或被扩展用例(基用例), 而包含关系和扩展关系的变体标记分别是和(下页图)。,2018/10/14,33,2018/10/14,34,Agenda,软件开发流程简介 需求捕获工作流简介 分析工作流简介,2018/10/14,35,分析和设计阶段的建模工作,分析类(Analysis classes): 业务模型的核心概念 类图 用例实现(Use case realization): 描述某个用例中的分析类的实例是如何交互来完成用例明细中的事件
15、流的 交互图,2018/10/14,36,分析流程,Architectural Analysis,Analyze Use Cases,Analyze Classes,Analyze Packages,2018/10/14,37,分析建模经验方法,The analysis model is always in the language of the business. Create models that “tell a story”. Capture the big picture. Distinguish clearly between the problem domain and solu
16、tion domain. Always focus on abstractions that exist in the problem domain. Always try to minimize coupling: focus on classes and associations Explore inheritance where there is a natural hierarchy of abstractions Always ask “ is the model useful to all the stakeholders?” Do not make implementation
17、decisions Keep the model simple,2018/10/14,38,分析类,什么是分析类 分析类明细 寻找类 Noun/Verb and CRC 什么是好的分析类,2018/10/14,39,什么是分析类,分析类是在分析阶段产生的,用于解决用例视图定义的问题的解决方案中必须具备的对象的抽象 经过细化和完善后变成设计类,2018/10/14,40,8.2. 分析类明细,分析类一般包含以下信息: Name: 必要的 Attributes: 在这一阶段不一定完整,但尽量写. Operations: 操作的参数和返回类型可选. Visibility:一般按缺省即可(Att:pr
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 UML 软件设计 建模 PPT
