软件工程整理ppt.ppt

上传人:本田雅阁 文档编号:2618472 上传时间:2019-04-20 格式:PPT 页数:193 大小:2.06MB
返回 下载 相关 举报
软件工程整理ppt.ppt_第1页
第1页 / 共193页
软件工程整理ppt.ppt_第2页
第2页 / 共193页
软件工程整理ppt.ppt_第3页
第3页 / 共193页
亲,该文档总共193页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程整理ppt.ppt》由会员分享,可在线阅读,更多相关《软件工程整理ppt.ppt(193页珍藏版)》请在三一文库上搜索。

1、软件工程,第8章 面向对象建模,复旦大学计算机科学技术学院 软件工程(第二版),内容摘要,用况建模 静态建模 动态建模 物理体系结构建模,2,复旦大学计算机科学技术学院 软件工程(第二版),内容摘要,用况建模 静态建模 动态建模 物理体系结构建模,3,复旦大学计算机科学技术学院 软件工程(第二版),用况建模,用况建模是用于描述一个系统应该做什么的建模技术,用况建模不仅用于新系统的需求获取,还可用于已有系统的升级。用况模型用用况图来描述 用况图展示了各类外部执行者与系统所提供的用况之间的连接。一个用况是系统所提供的一个功能(也可以说是系统提供的某一特定用法)的描述 执行者是指那些可能使用这些用况

2、的人或外部系统,执行者与用况的连接表示该执行者使用了那个用况 用况图给出了用户所感受到的系统行为,但不描述系统如何实现该功能 用况通常用普通正文描述,也可以用活动图来描述,4,复旦大学计算机科学技术学院 软件工程(第二版),任何一个涉及到系统功能活动的人都会用到用况模型 客户:用况模型指明了系统的功能,描述了系统能如何使用。用况建模时客户的积极参与是十分重要的 开发者:用况模型帮助他们理解系统要做什么,同时为以后的其他模型建模、结构设计、实现等提供依据 集成测试和系统测试人员:根据用况来测试系统,以验证系统是否完成了用况指定的功能,5,复旦大学计算机科学技术学院 软件工程(第二版),用况建模步

3、骤,创建用况模型的步骤包括: 1定义系统 2确定执行者 3确定用况 4描述用况 5定义用况间的关系 6确认模型,6,复旦大学计算机科学技术学院 软件工程(第二版),用况模型由用况图组成,用况图展示了执行者、用况以及它们之间的关系。用况通常用正文形式来描述 一个用况模型可由若干幅用况图组成。一幅用况图包含的模型元素有系统、执行者、用况,以及表示它们间的不同关系,如关联、扩展、包含、泛化等,7,复旦大学计算机科学技术学院 软件工程(第二版),用况图,8,复旦大学计算机科学技术学院 软件工程(第二版),一. 定义系统 用况图中的矩形框代表系统,系统的用况画在矩形框内,代表系统之外的执行者画在矩形框外

4、,9,复旦大学计算机科学技术学院 软件工程(第二版),二. 确定执行者 执行者是指与系统交互的人或其他系统 执行者代表一种角色,而不是具体的某个人 执行者可分成主执行者和副执行者: 主执行者使用系统的主要功能 例如,保险系统中主执行者处理保险的注册和管理 副执行者处理系统的辅助功能 例如,管理数据库、通信、备份以及其他管理等系统维护,10,复旦大学计算机科学技术学院 软件工程(第二版),执行者还可分为主动执行者和被动执行者: 主动执行者开始一个用况 被动执行者从不开始用况,只是参与一个或多个用况,11,复旦大学计算机科学技术学院 软件工程(第二版),我们可以通过回答下列问题来确定执行者: 谁使

5、用系统的主要功能(主执行者)? 谁需要从系统中得到对他们日常工作的支持? 谁需要维护、管理和维持系统的日常运行(副执行者)? 系统需要控制哪些硬件设备? 系统需要与哪些其他系统交互? 哪些人或哪些系统对系统产生的结果(值)感兴趣?,12,复旦大学计算机科学技术学院 软件工程(第二版),三. 确定用况 1. 用况的特征 用况总是被执行者启动的(initiated),执行者必须直接或间接地指示系统去执行用况 用况向执行者提供值,这些值必须是可识别的 用况是完整的,一个用况必须是一个完整的描述 用况是一个类型,而不是实例,用况的实例称为场景(scenario),13,复旦大学计算机科学技术学院 软件

6、工程(第二版),2. 寻找用况 可以通过让每个执行者回答以下问题来寻找用况: 执行者需要系统提供哪些功能?执行者需要系统做什么? 执行者是否需要读、创建、删除、修改或储存系统中的某类信息? 执行者是否要被系统中的事件提醒,或者执行者是否要提醒系统中某些事情?从功能观点看,这些事件表示什么? 执行者的日常工作是否因为系统的新功能(尤其是目前尚未自动化的功能)而被简化或提高了效率?,14,复旦大学计算机科学技术学院 软件工程(第二版),另外还有一些不是目前的执行者回答的问题: 系统需要哪些输入/输出?谁从系统获取信息?谁为系统提供信息? 与当前系统(可能是人工系统而不是自动化系统)的实现有关的主要

7、问题是什么? 对同一个项目,不同的开发者选取的用况数是不一样的。例如一个10个人年规模的项目,有人选取了20个用况,而在一个类似的项目中,有人选用了100个用况 似乎20个太少,而100个太多,希望在项目规模和用况数之间保持均衡,15,复旦大学计算机科学技术学院 软件工程(第二版),四. 用况的描述 用况通常用正文(text)来描述,也可用活动图来描述 用况的正文描述应包括以下内容: 用况的目的:用况的最终目的是什么?它试图达到什么? 用况是如何启动(initiate)的:哪个执行者在什么情况下启动用况的执行? 执行者和用况之间的消息流:用况与执行者之间交换什么消息或事件来通知对方改变或恢复信

8、息?描述系统与执行者之间的主消息流是什么?以及系统中哪些实体被使用或修改?,16,复旦大学计算机科学技术学院 软件工程(第二版),用况中可供选择的流:用况中的活动可根据条件或异常(exception)有选择地执行 如何通过给执行者一个值来结束用况:描述何时可认为用况已结束,17,复旦大学计算机科学技术学院 软件工程(第二版),执行者的简要描述 如客户:向公司订购商品的人 客户代表:公司处理客户请求的雇员 库存系统:记录公司库存的软件 用况的简要描述 如订购货物:客户创建一个新的请求商品的订单,并为那些商品付费 取消订单:客户取消一个已经存在的订单,18,复旦大学计算机科学技术学院 软件工程(第

9、二版),用况的详细描述 前置条件和后置条件 前置条件和后置条件表示用况开始和结束的条件 事件流(flow of events) 事件流是一系列陈述句,它是从执行者的角度看,列出用况的各个步骤 用况描述中可以包含条件、分支和循环 例如:订购货物用况的描述如下,19,复旦大学计算机科学技术学院 软件工程(第二版),用况名称:订购货物 参与的执行者:客户、客户代表 前置条件:一个合法的客户已经登录到这个系统 事件流: 当客户选择订购货物时,用况开始 客户输入他的姓名和地址 如果客户只输入邮编,系统将给出州和城市名 当客户输入产品代码 a. 系统给出产品描述和价格 b. 系统往客户订单中添加该物品的价

10、格 循环结束,20,复旦大学计算机科学技术学院 软件工程(第二版),5. 客户输入信用卡支付信息 6. 客户选择提交 7. 系统检验输入的信息,把该订单作为未完成的交易保存,同时向记账系统转发支付信息。如果客户提交的信息不正确,系统将提示客户修改。 8. 当支付确认后,订单就被标记上已经确认,同时返回给客户一个订单ID,用况也就结束了。如果支付没有被确认,系统将提示客户改正支付信息或者取消。如果客户选择修改信息,就回到第5步;如果选择取消,用况结束。 后置条件:如果订单没有被取消,它将保存在系统中,并做上标记,21,复旦大学计算机科学技术学院 软件工程(第二版),其他需求 在用况中还可描述一些

11、特殊的需求,这些需求常常是非功能性需求,如可用性、安全性、可维护性、负载、性能、自动防故障、数据需求等。 如订购货物用况的其他需求: 前置条件:(略) 事件流: (略) 特殊需求: 系统必须在一秒内响应客户的输入 后置条件: (略),22,复旦大学计算机科学技术学院 软件工程(第二版),事件流可分为两部分: 基本路径 基本路径是运转正常时的路径,是一系列没有分支和选择的简单陈述句 可选路径 可选路径是指不同于基本路径而允许不同的事件序列的路径。 对于明显有可能随时发生的事情来说,可选路径非常有效。,23,复旦大学计算机科学技术学院 软件工程(第二版),如订购货物用况的基本路径: 事件流: 基本

12、路径 当客户选择订购货物时,用况开始 客户输入他的姓名和地址 当客户输入产品代码时 a. 系统给出产品描述和价格 b. 系统往客户订单中添加该物品的价格 循环结束 4. 客户输入信用卡支付信息 5. 客户选择提交 6. 系统检验输入的信息,把该订单作为未完成的交易保存,同时向记账系统转发支付信息 7. 当支付确认后,订单就被标记上已经确认,同时返回给客户一个订单ID,用况结束,24,复旦大学计算机科学技术学院 软件工程(第二版),如果在订购货物用况中,客户可以在提交订单前随时取消订单,其可选路径如下: 可选路径: 在选择提交前的任何时候,客户都可以选择cancel。这次订购没有被保存,用况结束

13、。 在基本路径第6步,如果有任何不正确的信息,系统提示客户去修改这些信息。 在基本路径第7步,如果支付没有被确认,系统将提示客户改正支付信息或者取消。如果客户选择修改信息,就回到基本路径第4步;如果选择取消,用况结束。,25,复旦大学计算机科学技术学院 软件工程(第二版),五. 确定用况之间的关系,26,复旦大学计算机科学技术学院 软件工程(第二版),27,复旦大学计算机科学技术学院 软件工程(第二版),六. 确认模型 对用况模型进行评审,以确认该模型是用户所需的,28,复旦大学计算机科学技术学院 软件工程(第二版),网上购物系统的案例说明,客户通过相应的网址访问网上购物系统,进入系统后,客户

14、即可通过多级分类目录逐级浏览商品的名称、规格、单价、图片等信息,直至阅浏览某个商品的详细技术指标。浏览过程中,客户可随时将需要的商品放到购物车内,系统可显示购物车内已选购的商品、单价、数量及价格,客户还可随时删去购物车内尚未结账的任何商品。 当客户选择好所需的商品后,可要求结账,此时,系统首先要求客户注册/登录(对新客户需先注册,填写客户信息,然后登录;对老客户只需通过用户名和密码直接进行登录即可),然后根据购物车中所选的商品形成初始的订单,同时选择支付方式,填写相关的派送信息,如送货地址、建议的送货时间段等,此时即可提交订单,系统向客户返回一个订单号。,29,复旦大学计算机科学技术学院 软件

15、工程(第二版),系统提供网上在线支付和货到现金支付两种支付方式。网上在线支付方式由专门的网上支付系统实现在线支付,需根据网上支付系统的要求填写相关的账户信息,如账号、密码等,并进行扣款,网上在线支付的结果或者是付款成功,或者是付款失败。货到现金支付方式由送货员在送达商品时向客户收取现金。客户还可通过订单号查询自己订单的当前状态,如已提交未付款、已发货已付款等,并允许取消尚未发货的订单。 系统业务员将客户提交的订单交由物流系统或快递公司向客户发货,又称派送,物流系统或快递公司送达商品后对未付款的客户收款,并将客户签收单返回给系统业务员,系统业务员负责更新订单的状态,以便跟踪和了解订单的执行情况。

16、,30,复旦大学计算机科学技术学院 软件工程(第二版),本案例作了简化,假定: 客户所订的商品不存在缺货的情况 物流系统或快递公司向客户送货、收款(只对未付款的客户),以及向系统业务员返回客户签收单都不属于本案例的网上购物系统 不能取消已发货的订单 本案例中不包括对商品信息、客户信息的创建和维护 本案例中不考虑客户拒收的情况 假定系统业务员不能取消客户的订单 假定在提交订单时只确定了支付方式,并未实际付款。在提交订单后,当客户选择网上付款操作时才由系统链接相关的网上支付系统实现真正的支付,31,复旦大学计算机科学技术学院 软件工程(第二版),用况建模实例,1. 识别执行者 使用网上购物系统的人

17、 客户 系统业务员 与网上购物系统交互的其他外部系统 实现网上在线支付功能的网上支付系统 创建和维护客户信息的客户信息管理系统 创建和维护商品信息的商品信息管理系统,32,复旦大学计算机科学技术学院 软件工程(第二版),网上购物系统的执行者及其简要描述: 客户:使用该系统在网上购物的人 系统业务员:完成订单状态更新的人 网上支付系统:实现网上在线支付的软件系统 客户信息管理系统:创建和维护客户信息的软件系统 商品信息管理系统:创建和维护商品信息的软件系统,33,复旦大学计算机科学技术学院 软件工程(第二版),2. 识别用况 客户使用网上购物系统的功能: 商品信息浏览 网上在线订购 订单查询 注

18、册/登录 支付 系统业务员使用系统的功能: 订单状态更新,34,复旦大学计算机科学技术学院 软件工程(第二版),进一步的说明: 由于注册/登录具有相对独立性,又可以被多个用况引用,因此,将其作为一个独立的用况 客户订购过程中会多次在购物车中添加商品、删除商品、显示购物车内的商品,可以将其合并成一个购物车管理的用况 由于商品信息有不同的详细程度,可以有多种多级分类目录的浏览方案,商品信息浏览功能相对独立,因此将其作为一个用况,称为商品信息浏览 网上在线订购是网上购物系统的主要功能,显然是一个用况。由于选购商品时都需要浏览商品信息,并在购物车中添加、删除商品,所以网上在线订购用况包含了购物车管理用

19、况和商品信息浏览用况,35,复旦大学计算机科学技术学院 软件工程(第二版),本案例中有网上在线支付和货到现金支付两种支付方式,通常可以标识出支付、网上在线支付和货到现金支付个用况,后个用况都继承支付用况。考虑到本案例对货到现金支付方式的处理比较简单,可以取消“货到现金支付”用况,此时,将上述个用况简化成个主要实现网上在线支付的用况“支付” 本案例的订单管理只包括订单查询、订单状态更新、取消订单等简单功能,可将其合并成一个用况,称为订单管理。如果订单管理还包括其他更多的功能,也可将其拆分成几个用况 由于选择支付方式和填写送货信息都比较简单,不作为独立的用况,36,复旦大学计算机科学技术学院 软件

20、工程(第二版),网上购物系统的用况及其简要描述如下。 注册/登录:对新客户需先注册,即填写客户信息,然后进行登录;对老客户或系统业务员只需登录,即输入用户名和密码,并经校验合格即可 网上在线订购:在线订购商品,包括商品浏览、购物车管理、选择支付方式、填写送货信息等 商品信息浏览:显示商品信息 购物车管理:在购物车中添加商品、删除商品、显示购物车内的商品 支付:分为网上在线支付和货到现金支付,在采用网上在线支付时,调用网上支付系统,输入且确认账户信息,并进行扣款,网上支付系统返回付款成功或付款失败信息,供系统下一步决策使用 订单管理:订单查询、订单状态更新、取消订单等,37,复旦大学计算机科学技

21、术学院 软件工程(第二版),用况之间的关系 客户只能查询或取消自己的订单,所以客户在查询或取消订单前必须先登录,以确定其身份 修改订单状态应该由授权的系统业务员进行操作,所以,系统业务员也必须登录后才可修改订单状态 网上在线订购在要求结账时,需注册/登录 网上在线订购用况和订单管理用况都使用了注册/登录用况 由进一步说明得知“网上在线订购用况包含了购物车管理用况和商品信息浏览用况”,38,复旦大学计算机科学技术学院 软件工程(第二版),网上购物系统用况图,39,复旦大学计算机科学技术学院 软件工程(第二版),用况的描述 网上在线订购用况的描述 用况名称:网上在线订购 参与的执行者:客户 前置条

22、件:一个客户已进入网上购物系统 事件流: 基本路径 1.当客户进入网上购物系统时,用况开始 2 显示商品目录 3.以任意次数和合理的次序重复如下事件流,直至出现结账事件流 a. 浏览商品信息 b. 订购商品 b.1 将商品和数量添加到购物车 b.2 显示购物车中每个商品的名称、型号、数量、单价、金额,以及总价 c. 删除商品 c.1 删除购物车中的商品 c.2 显示购物车中每个商品的名称、型号、数量、单价、金额,以及总价 d. 显示购物车中的商品 循环结束,40,复旦大学计算机科学技术学院 软件工程(第二版),4. 结账 5. 注册/登录 6. 根据购物车中已选的商品,创建订单 7. 设置支付

23、方式 8. 填写派送信息 9. 提交订单或退出 a. 提交订单,同时返回给客户一个订单ID,用况结束 b. 退出订购,订单未被保存,用况结束 可选路径: 在选择提交订单前的任何时候,客户都可以退出系统,这次订购没有被保存,用况结束。 后置条件:如果订单提交成功,订单将保存在系统中,并标记为已提交未付款状态,41,复旦大学计算机科学技术学院 软件工程(第二版),说明 客户进入网上购物系统时,默认系统自动为客户提供了一辆购物车 第3步表示客户可以以合理的次序和次数重复执行浏览、添加、删除、显示商品等操作,其中,第3.a步指未细化的“商品信息浏览”用况,第3.b、3.c、3.d步是对“购物车管理”用

24、况的描述 当客户选择了结账,首先进行注册登录,登录成功后系统自动根据购物车的内容生成初始的订单,然后,客户选择支付方式,填写派送信息等。最后提交订单,系统返回一个订单号,并结束用况 客户也可通过退出网上购物来结束用况,此时,订单不被保存,42,复旦大学计算机科学技术学院 软件工程(第二版), 订单管理用况的活动图描述 客户成功登陆后系统自动显示该客户的订单列表 客户可选择列表中的订单号,查看该订单的信息和执行状态 客户在查看某订单的信息和状态后,执行取消该订单的操作。本案例规定只能取消未发货的订单,对已付款的订单,还应给予退款。为避免客户误操作,通常在处理取消订单操作时应提醒客户确认,本活动图

25、中省略了确认步骤。 系统业务员成功登陆后可以由系统自动显示所有的订单列表,然后选择列表中的订单号,查看该订单的信息并修改其状态 系统业务员也可以输入需查询或修改状态的订单的号码,如果订单库中存在与该订单号匹配的订单,则认为是有效订单号,允许进行查询或修改状态操作。本活动图给出的是后一种处理方式。,43,复旦大学计算机科学技术学院 软件工程(第二版),订单管理用况的活动图,44,复旦大学计算机科学技术学院 软件工程(第二版),内容摘要,用况建模 静态建模 动态建模 物理体系结构建模,45,复旦大学计算机科学技术学院 软件工程(第二版),静态建模 (类和对象建模),类和对象模型的基本模型元素有类、

26、对象以及它们之间的关系。系统中的类和对象模型描述了系统的静态结构,在UML中用类图和对象图来表示,46,复旦大学计算机科学技术学院 软件工程(第二版),类图由系统中使用的类以及它们之间的关系组成。类之间的关系有关联、依赖、泛化、实现等。类图是一种静态模型,它是其他图的基础。一个系统可以有多张类图,一个类也可出现在几张类图中 对象图是类图的一个实例,它描述某一时刻类图中类的特定实例以及这些实例之间的特定链接。对象图使用了与类图相同的符号,只是在对象名下附加下划线,对象名后可接以冒号和类名,即 object-name:class-name,47,复旦大学计算机科学技术学院 软件工程(第二版),48

27、,复旦大学计算机科学技术学院 软件工程(第二版),类图和对象图,实例,49,复旦大学计算机科学技术学院 软件工程(第二版),确定类,1. 标识类 这里介绍一种类责任协作者(classresponsibilitycollaborator,简称CRC)技术。CRC实际上是一组表示类的索引卡片,每张卡片分成三部分,它们分别描述类名、类的责任和类的协作者,50,复旦大学计算机科学技术学院 软件工程(第二版),(1) 标识候选的对象类 通常陈述中的名词或名词短语是可能的候选对象,它们以不同的形式展示出来,如: 1) 外部实体(如,其他系统、设备、人员),他们生产或消费计算机系统所使用的信息 2) 物件(

28、如,报告、显示、信函、信号),它们是问题信息域的一部分 3) 发生的事情或事件(如,性能改变或完成一组机器人移动动作),它们出现在系统运行的环境中,51,复旦大学计算机科学技术学院 软件工程(第二版),4) 角色(如:管理者、工程师、销售员),他们由与系统交互的人扮演 5) 组织单位(如:部门、小组、小队),他们与一个应用有关 6) 场所(如:制造场所、装载码头),它们建立问题和系统所有功能的环境 7) 构造物(如,四轮交通工具、计算机),它们定义一类对象,或者定义对象的相关类,52,复旦大学计算机科学技术学院 软件工程(第二版),回答下列问题来识别候选对象: 是否有要储存、转换、分析或处理的

29、信息? 是否有外部系统? 是否有模式(pattern)、类库和构件等? 是否有系统必须处理的设备? 是否有组织部分(organizational parts)? 业务中的执行者扮演什么角色?这些角色可以看作类,如客户、操作员等。,53,复旦大学计算机科学技术学院 软件工程(第二版),(2)筛选对象类,确定最终对象类 我们可以用以下选择特征来确定最终的对象: 1) 保留的信息:仅当必须记住有关候选对象的信息,系统才能运作时,则该候选对象在分析阶段是有用的 2) 需要的服务:候选对象必须拥有一组可标识的操作,它们可以按某种方式修改对象属性的值 3) 多个属性:在分析阶段,关注点应该是“较大的”信息

30、(仅具有单个属性的对象在设计时可能有用,但在分析阶段,最好把它表示为另一对象的属性),54,复旦大学计算机科学技术学院 软件工程(第二版),4) 公共属性:可以为候选的对象定义一组属性,这些属性适用于该类的所有实例 5) 公共操作:可以为候选的对象定义一组操作,这些操作适用于该类的所有实例 6) 必要的需求:出现在问题空间中的外部实体以及对系统的任何解决方案的实施都是必要的生产或消费信息,它们几乎总是定义为需求模型中的类,55,复旦大学计算机科学技术学院 软件工程(第二版),对象和类还可以按以下特征进行分类: 1) 确切性(tangibility):类表示了确切的事物(如,键盘或传感器),还是

31、表示了抽象的信息(如,预期的输出)? 2) 包含性(inclusiveness):类是原子的(即不包含任何其他类),还是聚合的(至少包含一个嵌套的对象)? 3) 顺序性(sequentiality):类是并发的(即,拥有自己的控制线程),还是顺序的(被外部的资源控制)?,56,复旦大学计算机科学技术学院 软件工程(第二版),4) 持久性(persistence):类是短暂的(即,它在程序运行期间被创建和删除)、临时的(它在程序运行期间被创建,在程序终止时被删除)、还是永久的(它存放在数据库中)? 永久对象(persistent object):其生存周期可以超越程序的执行时间而长期存在的对象。

32、 5) 完整性(integrity):类是易被侵害的(即,它不防卫其资源受外界的影响),还是受保护的(该类强制控制对其资源的访问)。 基于上述分类,CRC卡的内容可以扩充,以包含类的类型和特征,57,复旦大学计算机科学技术学院 软件工程(第二版),58,复旦大学计算机科学技术学院 软件工程(第二版),2. 标识责任 责任是与类相关的属性和操作,简单地说,责任是类所知道的或要做的任何事情 (1) 标识属性 属性表示类的稳定特征,即为了完成客户规定的目标所必须保存的类的信息,一般可以从问题陈述中提取出或通过对类的理解而辨识出属性。分析员可以再次研究问题陈述,选择那些应属于该对象的内容,同时对每个对

33、象回答下列问题:“在当前的问题范围内,什么数据项(复合的和/或基本的)完整地定义了该对象?”,59,复旦大学计算机科学技术学院 软件工程(第二版),(2) 定义操作 操作定义了对象的行为并以某种方式修改对象的属性值。操作可以通过对系统的过程叙述的分析提取出来,通常叙述中的动词可作为候选的操作。类所选择的每个操作展示了类的某种行为 操作大体可分为三类: 以某种方式操纵数据的操作(如,增加、删除、重新格式化、选择) 完成某种计算的操作 为控制事件的发生而监控对象的操作,60,复旦大学计算机科学技术学院 软件工程(第二版),3. 标识协作者 一个类可以用它自己的操作去操纵它自己的属性,从而完成某一特

34、定的责任,一个类也可和其他类协作来完成某个责任。如果一个对象为了完成某个责任需要向其他对象发送消息,则我们说该对象和另一对象协作。协作实际上标识了类间的关系 为了帮助标识协作者,可以检索类间的类属关系。如果两个类具有整体与部分关系(一个对象是另一个对象的一部分),或者一个类必须从另一个类获取信息,或者一个类依赖于(depends-upon)另一个类,则它们间往往有协作关系,61,复旦大学计算机科学技术学院 软件工程(第二版),4. 复审CRC卡 在填好所有CRC卡后,应对它进行复审。复审应由客户和软件分析员参加,复审方法如下: 1) 参加复审的人,每人拿CRC卡片的一个子集。注意,有协作关系的

35、卡片要分开,即,没有一个人持有两张有协作关系的卡片 2) 将所有用况/场景分类 3) 复审负责人仔细阅读用况,当读到一个命名的对象时,将令牌(token)传送给持有对应类的卡片的人员,62,复旦大学计算机科学技术学院 软件工程(第二版),4) 收到令牌的类卡片持有者要描述卡片上记录的责任,复审小组将确定该类的一个或多个责任是否满足用况的需求。当某个责任需要协作时,将令牌传给协作者,并重复4) 5) 如果卡片上的责任和协作不能适应用况,则需对卡片进行修改,这可能导致定义新的类,或在现有的卡片上刻画新的或修正的责任及协作者 这种做法持续至所有的用况都完成为止,63,复旦大学计算机科学技术学院 软件

36、工程(第二版),UML对属性的描述 UML中,描述一个属性的语法如下: visibilityopt /opt attribute-name : type opt multiplicityopt = initial-valueopt property-stringopt 其中带下标opt或 opt的部分表示该部分是任选的 visibility(可见性):表示该属性在哪个范围内可见(即可使用),见下表,64,复旦大学计算机科学技术学院 软件工程(第二版),可见性,65,复旦大学计算机科学技术学院 软件工程(第二版),attribute-name:表示属性名。 type(类型):用来指明属性值的类型

37、 multiplicity(重数):用来指出该属性可能的值的个数以及它们的排列次序和唯一性。值的个数写在方括号( )中,其形式是:minimummaximum。maximum可以是“*”,表示“无限”。当值的个数是单一值(如值的个数是3)时,可写成33或简写成3。典型的写法有:01,1(表示11),*(表示0*),1*,13。当重数缺省时,隐含表示重数为1。当一个属性有多个值时,可在值的个数后面指明值元素的排列次序和唯一性,排列次序和唯一性写在花括号( )中,可使用的关键字如下表所示,其默认值是set,即无序且值元素唯一,66,复旦大学计算机科学技术学院 软件工程(第二版),67,复旦大学计算

38、机科学技术学院 软件工程(第二版),initial-value(初值):在创建一个类的实例对象时,应对其属性赋值,如果类中对某属性定义了初值,那么该初值可作为创建对象时该属性的默认值 property-string(特征字符串):用来明确地指明该属性可能的候选值,如红,黄,绿指出该属性可枚举的值只能是红、黄、绿,68,复旦大学计算机科学技术学院 软件工程(第二版),属性还可以定义为类属性(class attribute) ,表示被这个类的所有实例对象共享该属性的值。类属性是这个类的名字空间中的全局变量。类属性用下划线来指明。,69,复旦大学计算机科学技术学院 软件工程(第二版),70,复旦大学

39、计算机科学技术学院 软件工程(第二版),UML对操作的描述 UML中描述一个操作的语法如下: visibilityopt operating-name(parameter-list) : return-type opt property-string opt 操作可见性的含义与属性中的含义相同。 参数表是用逗号分隔的形式参数序列,描述一个参数的语法如下: directionopt parameter-name :type multiplicityopt = default -valueopt 其中:direction(方向):用来指明参数信息流的方向,71,复旦大学计算机科学技术学院 软件工程

40、(第二版),方向的取值,72,复旦大学计算机科学技术学院 软件工程(第二版),type 和multiplicity的含义与属性中的含义相同 default value(默认值)是在操作的调用者未提供参数时,用它作为该参数的值 类也可以定义类操作(class operation)。通常操作是在该类的对象实例上被调用的,而类操作可以在没有对象实例的情况下被调用,但此时只允许访问类属性,73,复旦大学计算机科学技术学院 软件工程(第二版),74,复旦大学计算机科学技术学院 软件工程(第二版),类之间的关系,75,复旦大学计算机科学技术学院 软件工程(第二版),1. 关联 关联描述了系统中对象之间或其

41、他实例之间的连接。关联的种类主要有二元关联,多元关联,受限关联,聚集(aggregation)和组合(composition),76,复旦大学计算机科学技术学院 软件工程(第二版),(1)二元关联 二元关联表示为在两个类之间用一条直线连接,直线上可写上关联名,77,复旦大学计算机科学技术学院 软件工程(第二版),关联的两端可加上重数(multiplicity) ,表示该类有多少个对象可与对方的一个对象关联,78,复旦大学计算机科学技术学院 软件工程(第二版),允许一个类与自身关联,79,复旦大学计算机科学技术学院 软件工程(第二版),80,复旦大学计算机科学技术学院 软件工程(第二版),(2)

42、多元关联 三个或三个以上的类之间可以互相关联,81,复旦大学计算机科学技术学院 软件工程(第二版),82,复旦大学计算机科学技术学院 软件工程(第二版),(3)受限关联(qualified association):受限关联用于一对多或多对多的关联。限定符(qualifier)用来区分关联“多”端的对象集合,它指明了在关联“多”端的某个特殊对象,83,复旦大学计算机科学技术学院 软件工程(第二版),(4) 聚集和组合 聚集(aggregation)是表示整体-部分关系的一种关联,它的“部分”对象可以是任意“整体”对象的一部分,84,复旦大学计算机科学技术学院 软件工程(第二版),组合(comp

43、osition):组合是一种更强形式的关联,代表整体的组合对象有管理它的部分对象的特有责任,如部分对象的分配和解除分配。组合关联具有强的物主身份,即“整体”对象拥有“部分”对象,“部分”对象生存在“整体”对象中,85,复旦大学计算机科学技术学院 软件工程(第二版),(5)关联类 :UML中可以把关联定义成类,该关联的每个链都是这个类的实例,86,复旦大学计算机科学技术学院 软件工程(第二版),(6)导航性(navigability),87,复旦大学计算机科学技术学院 软件工程(第二版),导航性,88,复旦大学计算机科学技术学院 软件工程(第二版),2. 泛化 泛化指出类间的“一般特殊关系” (

44、is-a) 一般类定义了它的特殊类的公共属性和操作 对一般类扩展一些属性和/或操作后,可以特化(specialize)成特殊类 一般类是特殊类的父类,特殊类是一般类的子类 特殊类可以继承一般类的属性和操作 子类可以定义自己的属性和操作,也可重新定义父类中的操作,但重新定义的操作必须与父类具有相同的操作特征(signature),89,复旦大学计算机科学技术学院 软件工程(第二版),90,复旦大学计算机科学技术学院 软件工程(第二版),泛化是一种分类学关系,一个一般类可以从不同的维或方面将其特化(specialization)成不同的特殊类集合,用一个类元(用作分类符)来表示一个维或方面,代表一

45、个维度的一组泛化称为泛化集(generalization set)。在泛化集中可对其元素应用约束,在UML中提供以下约束,见下表,91,复旦大学计算机科学技术学院 软件工程(第二版),泛化集的约束,92,复旦大学计算机科学技术学院 软件工程(第二版),93,复旦大学计算机科学技术学院 软件工程(第二版),3. 实现: 实现关系将一个模型元素(如类)连接到另一个模型元素(如接口),后者(如接口)是行为的规约(specification),前者(如类)必须至少支持(通过继承或直接声明)后者的所有操作。可以认为前者是后者的实现 泛化和实现都可以将一般描述与具体描述联系起来。其区别是,泛化是同一语义层

46、上的元素之间的连接,通常在同一模型内;而实现是不同语义层中的元素之间的连接,它通常建立在不同的模型内,如设计类到分析类是一种实现关系,94,复旦大学计算机科学技术学院 软件工程(第二版),95,复旦大学计算机科学技术学院 软件工程(第二版),4. 依赖: 依赖指出两个或多个模型元素之间语义上的关系。它表示被依赖元素的变化会要求或指示依赖元素的改变 依赖关系用一个虚线箭头表示,箭头上可附加含关键字的版型,关键字用来指明依赖的种类。在UML20中的依赖种类如下: Access(访问), bind(绑定), call(调用), create(创建), derive(派生), instantiate(

47、实例化), permit(允许), realize(实现), refine(精化), send(发送), substitute(替换), trace(追踪依赖), use(使用),96,复旦大学计算机科学技术学院 软件工程(第二版),97,复旦大学计算机科学技术学院 软件工程(第二版),5. 约束和派生(constraint & derivation) 约束是用自然语言或指定形式语言中的文本表达的语义条件或限制,它用“正文字符串”形式表示。约束可以附加到任何模型元素上,如前面有关泛化的约束有:不相交、交迭、完全的、不完全的,98,复旦大学计算机科学技术学院 软件工程(第二版),99,复旦大学计

48、算机科学技术学院 软件工程(第二版),100,复旦大学计算机科学技术学院 软件工程(第二版),101,复旦大学计算机科学技术学院 软件工程(第二版),102,复旦大学计算机科学技术学院 软件工程(第二版),关联也可以被派生或约束,103,复旦大学计算机科学技术学院 软件工程(第二版),模板(Templates),模板是一个参数化的模型元素,使用它时参数必须在建模时绑定到实际值。模板的同义词是参数化元素。模板类不是一个直接可用的类,因为它有未绑定的参数,必须将它的参数绑定到实际值,以生成实际的类,104,复旦大学计算机科学技术学院 软件工程(第二版),105,复旦大学计算机科学技术学院 软件工程

49、(第二版),一个模板类可以是一个一般类的子类,这意味着由绑定该模板而形成的所有类都是给定类(一般类)的子类,作为子类的模板,106,复旦大学计算机科学技术学院 软件工程(第二版),在使用模板生成实际类时,还可在绑定的类中附加特征(feature),107,复旦大学计算机科学技术学院 软件工程(第二版),静态建模实例 1. 标识候选对象 外部实体:客户,系统业务员,网上购物系统,物流系统,网上支付系统,客户信息管理系统,商品信息管理系统 需要存储、处理的信息:商品的名称、规格、单价,购物车中的物件,订单的订单项(即选购的商品)、支付信息、送货信息。由此可导出候选对象是商品,购物车,订单,108,复旦大学计算机科学技术学院 软件工程(第二版),2. 筛选候选对象 物流系统:未出现在用况图中,删除 网上支付系统:仅作为外部执行者完成网上在线支付功能,删除 客户信息管理系统和商品信息管理系统:只是作为外部执行者参

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1