系统分析与设计-第4章-上_第1页
系统分析与设计-第4章-上_第2页
系统分析与设计-第4章-上_第3页
系统分析与设计-第4章-上_第4页
系统分析与设计-第4章-上_第5页
已阅读5页,还剩179页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章电子商务系统的分析第四章电子商务系统的分析1o 何谓SDLC?2软件开发生命周期:软件开发生命周期: Software Development Life Cycle 系统开发生命周期:系统开发生命周期: Systems Development Life Cycleo 要搞清楚的问题n 已有的系统是如何工作的?n 用户希望新系统如何工作?o 目的:获取系统需求信息n 功能需求n 性能需求o 成果n 需求分析报告n 针对新系统建立的模型(逻辑模型)SDLC中的系统分析中的系统分析3电子商务系统分析电子商务系统分析vs一般的信息系统分析一般的信息系统分析o 基本的方法、流程和工具相同o 不同点

2、主要体现在n 调研分析的边界n 创新性o 电子商务系统分析要求n 以战略规划和系统规划成果为依据n 充分了解管理及业务人员的需求n 借鉴典型的电子商务系统功能( ?)4一一. 企业商务活动的基本内容企业商务活动的基本内容企业的主要商务活动及它们之间的信息流转企业的主要商务活动及它们之间的信息流转5市场活动(市场活动(Marketing)o目标n增加客户对企业及相关产品的认知程度,了解企业的服务n为企业发现潜在的商业机会,发掘潜在客户,发现客户需求n培养客户的忠诚度(新客户-老客户,留住老客户!客户服务方面的研究指出,开发一个新客户的费用(主要是广告费和产品推销费)是留住一个现有客户的费用(这方

3、面的花费可能包括支付退款、提供样品、更换商品等)的6倍。)o要点n企业的形象n产品的优势及特点n发现客户的需求o借助于Internet,电子商务可以:n获得不受地域限制的市场宣传空间n减少对外界力量的依赖,直接面对潜在客户n拥有最廉价的信息发布渠道(相对来讲)(了解百度推广)n直接通过客户的浏览及消费历史记录获取用户需求信息6销售活动(销售活动(Sale)o销售过程实质上是为用户提供备选产品的过程,这一过程包括:产品的发现、选择两个基本环节。(如何让客户选择你的产品?)o目标n与顾客搭成交易,并使交易结果符合企业利益需要o要点n产品的信息及描述n消费的环境(良好的购物体验)o电子商务中的销售活

4、动可以:n为客户提供发现产品的渠道(哪些渠道?)n带来交易方式的变革,使交易免受地域的限制n直接产生电子化的交易记录7订货(订货(Order)o 目标n满足企业生产和销售的需要o 要点n供应商的选择n运输n合适的库存量(牛鞭效应)o 电子商务系统可以n优化订货需求n帮助扩大供应商的选择范围,优化供应商选择结果n提高订货过程的效率n改善对运输过程的监管和优化(全球定位系统GPS的利用)8支付与交付(支付与交付(Payment & Delivery )o支付与交付的过程也就是履行订单的执行过程o目标n完成交易费用的给付n完成产品的包装、运输和递交n完成产品所有权的转移o要点n安全性n时间n

5、费用o电子商务系统可以n缩短支付时间,降低支付成本n实现交付过程可视化n追踪订单执行过程n提供无形产品的交付渠道9客户服务(客户服务(Service)o目标n培养客户忠诚度n从服务中发现客户需求,为市场及销售活动提供依据o要点n订单完成情况的检查n产品使用的反馈n订货及客户历史记录n客户行为分析o电子商务可以n提供新的客户服务方式(在线、远程、动态)n使服务超越地域和时间的限制n加快服务的反馈n提供自助式服务n进行服务过程的记录及发掘n提供One-To-One 的个性化服务10二、典型的电子商务业务需求二、典型的电子商务业务需求o市场推广过程中的电子商务业务需求n网络广告nE-mail推销n品

6、牌形象展示no销售过程中的电子商务业务需求n网上产品展示n产品搜索no订货过程中的电子商务业务需求n联机采购n在线报价和价格计算n远程协商n电子支付n11简答简答典型的电子商务业务需求(续)典型的电子商务业务需求(续)o 交付过程中的电子商务业务需求n交付过程跟踪no 服务过程中的电子商务业务需求n 客户信息反馈n 客户跟踪服务n o 企业内部相关管理业务需求n 商品库存管理n 经营辅助决策n .12在系统分析的时候可以在系统分析的时候可以把这些电子商务典型的功把这些电子商务典型的功能模块给用户推荐,结合能模块给用户推荐,结合用户实际需求决定是否采用户实际需求决定是否采用。用。13电子商务下的

7、物流配送系统需求分析电子商务下的物流配送系统需求分析 合合约约议议定定仓仓储储管管理理货货物物追追踪踪运运输输管管理理客客户户管管理理费费率率管管理理帐帐务务管管理理报报表表管管理理物流配送系统基本需求三、电子商务系统分析的过程三、电子商务系统分析的过程o 1.信息系统分析的基本思路o 2.电子商务系统分析的基本过程和方法141. 信息系统分析的基本思路信息系统分析的基本思路o 自顶向下o 从静到动o 去伪存真o 不断迭代152. 电子商务系统分析的基本过程电子商务系统分析的基本过程o 进行需求调查,获取需求(Requirement)o 整理提炼,针对需求进行建模利用相关的软件工程方法n 结构

8、化分析方法n 面向对象的分析方法n 原型法o 反复修改16需求调查需求调查(如何调查用户的需求?)(如何调查用户的需求?)o 参与人员:参与人员:n系统分析人员与业务人员系统分析人员与业务人员共同完成共同完成o 方法方法n访谈访谈n问卷调查问卷调查n跟班跟班n查阅资料查阅资料n利用原型利用原型o 可采纳的资料素材可采纳的资料素材n有关机构组成和职责的有关机构组成和职责的规定规定n报表报表n历史数据历史数据n访谈记录访谈记录n相关法律、法规、文件相关法律、法规、文件等等o 成果成果n需求调查报告需求调查报告n相关资料素材相关资料素材17四、结构化分析方法四、结构化分析方法 (Structured

9、 Analysis,SA)o 结构化分析方法是一种面向数据流的需求分析方法,也是一种建模活动,它主要根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件系统。o 尤其适合于较大型的信息系统18结构化分析的主要工具结构化分析的主要工具o 数据流图(DFD):功能模型o 数据字典(DD)o 实体关系图(E-R图):数据模型o 状态变迁图(STD图):行为模型19数据流图(数据流图(DFD)o Data Flow Diagramo 用于表示数据在信息系统中的流动情况,但不表示具体的程序逻辑和处理步骤20数据流图的基本元素数据流图的基本元素21数据流图的基本元素(续)数据流图的

10、基本元素(续)o 实体n代表了系统边界之外的,与系统存在数据交换的人员、组织或其它系统o 数据流n是数据在系统内传播的路径,由一个或一组数据项构成。n除了数据存储之间的数据流不用命名外,其它数据流应该用名词或名词短语命名。(对于有些含义比较明显的数据流也不一定加以命名)n数据流的准确定义由数据字典Data Dictionary给出22数据流图的基本元素(续)数据流图的基本元素(续)o 处理n也称为数据加工,它对数据流进行某些操作或变换。n每个处理要有名字,通常是动词短语,简明地描述完成什么处理。n在分层的数据流图中,处理还应有编号。o 数据存储n指暂时保存的数据,它可以是数据库表、文件或其它任

11、何形式的数据组织。n流向数据存储的数据流可理解为写入存储或提交查询请求,从数据存储流出的数据可理解为从存储设备读数据或得到查询结果。n数据存储也可有编号23数据流图的绘制方法数据流图的绘制方法o 首先,确定系统的边界和外部实体o 绘出系统的顶层数据流图(context diagram)n 只包含一个处理,标号为0 ,且名称为整个系统的名称o 在顶层数据流图的基础上,细化得出第0层数据流图o 逐层细化,扩展得出更低一层的数据流图,直到所有处理都已足够简单24Visio:Gane-Sarson (视频演示)(视频演示)绘制的时候利用绘制的时候利用visio提供的图标,不要乱用图标!提供的图标,不要

12、乱用图标!P84绘制数据流图的规则绘制数据流图的规则o 每个数据流都至少有一端是连接到处理的o 每个处理都至少有一个输入数据流,且至少有一个输出数据流o 每一个数据存储都必须通过数据流连接到处理o 一般情况下,每个数据存储都应该既有输入数据流,又有输出数据流o 注意命名的唯一性、易懂性25绘制数据流图的常规原则绘制数据流图的常规原则o 同一幅图上包含的处理不超过9个o 尽量避免数据流的交叉o 使用多级符号,表示处理之间的父子关系26案例:家具公司电子商务系统案例:家具公司电子商务系统 有哪几个外部实体?有哪几个外部实体?o外部实体n客户n内容维护人员n销售人员n生产调度系统 (生产调度人员)

13、n财务系统 (财务人员)n客服人员n物流跟踪系统n维修人员 27案例:主要的处理案例:主要的处理o用户管理用户管理n注册注册n登录登录n用户信息检索用户信息检索n用户信息维护用户信息维护o产品展示产品展示n产品目录浏览产品目录浏览n产品信息检索产品信息检索n产品效果图展示产品效果图展示o网上订货网上订货n购物车处理购物车处理o添加到购物车添加到购物车o修改购物车修改购物车n下订单下订单n订单确认订单确认n订单跟踪订单跟踪o客户服务客户服务n咨询咨询n报修报修n派发修理通知派发修理通知n服务跟踪服务跟踪o信息发布信息发布n企业信息发布企业信息发布n产品信息发布产品信息发布n招聘信息发布招聘信息发

14、布o企业企业/招聘信息检索招聘信息检索o统计分析统计分析2829数据字典(数据字典(Data Dictionary,DD)1订单订单n1.1 订单标识订单标识n1.2 顾客详情顾客详情n1.3 家具详情家具详情o 1.1 订单标识订单标识n1.1.1 订货日期订货日期n1.1.2 订单编号订单编号o 1.2 顾客详情顾客详情n1.2.1 姓名姓名n1.2.2 联系电话联系电话n地址地址nIDn1.2.2 联系电话联系电话o固定电话固定电话o移动电话移动电话说明:上述两项至少一项为说明:上述两项至少一项为非空非空30 在结构化分析方法中,单纯采用在结构化分析方法中,单纯采用DFD有时很难具体表有

15、时很难具体表示出数据的详细内容,比如,在某个系统的示出数据的详细内容,比如,在某个系统的DFD中,有一中,有一个数据流是个数据流是“订货单订货单”,对于该,对于该“订货单订货单”具体包含哪些具体包含哪些内容则无法显示出来。内容则无法显示出来。行为模型:状态变迁图(行为模型:状态变迁图(STD图)图)o 目标:直观地分析系统的动作o 从特定的视角出发描述系统的动态行为31状态迁移图的内容状态迁移图的内容o 描述系统行为的三个要素:l 状态状态l 事件事件(输入)(输入)l 状态迁移状态迁移 (输出)(输出)32状态迁移图的表示举例状态迁移图的表示举例s s1 1s s2 20110s s3 31

16、033状态迁移图的表示举例状态迁移图的表示举例-其他表示方法其他表示方法34状态迁移表状态迁移表举例举例35除了状态迁移图,我们还可以用表格的形式来表示状态除了状态迁移图,我们还可以用表格的形式来表示状态之间的关系。这种表一般称为状态迁移表。之间的关系。这种表一般称为状态迁移表。状态迁移图的应用状态迁移图的应用o 作用n 明确系统需求n 确定系统在不同状态下的可能的动作n 进而指导系统设计o 实现n 引入状态变量n 对应不同状态变量值,提供不同的界面、处理36五、面向对象的分析与设计方法五、面向对象的分析与设计方法(Object Oriented Analysis&Design, OO

17、A&OOD)o 基本思想: 现实世界由相互联系的各种事物组成,每一事物均有其自身的属性和特定的行为,面向对象的分析与设计方法即遵循此思想,以最自然的形式针对现实世界中的问题建模,并按人们通常的思维方式对问题进行求解,力图籍此简化问题模型,降低求解难度。37面向对象方法的几个基本概念面向对象方法的几个基本概念 对象 封装 消息 类 继承 多态性 结构与连接 381. 对象对象o 客观世界里的任何实体都可以被称为对象。 o 对象可以是具体的、有形的物,也可以是无形的事物或概念。 o 对象是问题域或实现域中某些事物的一个抽象。 o 对象是一个封装数据属性和操作行为的实体。o 系统中的对象在软

18、件生命周期的各个阶段可能有不同的表示形式。39一个对象的实例图解一个对象的实例图解402. 封装封装o 封装是面向对象方法的一个重要原则。 o 封装有两个含义: 结合性结合性 信息隐蔽性信息隐蔽性412. 封装封装o封装实际上是一种信息隐藏技术,抽象性通过封装得以实现。o封装就是指将对象的方法程序和属性代码包装在一起。封装将操作对象的内部复杂性与应用程序的其它部分隔离开来。n例如,我们将电话的零部件和线路封装在电话的外例如,我们将电话的零部件和线路封装在电话的外壳里,这样使用户看不到电话内部线路的复杂性,壳里,这样使用户看不到电话内部线路的复杂性,只专心拨号、讲话、听音,从而也产生用户对电话只

19、专心拨号、讲话、听音,从而也产生用户对电话具有拨号、讲话、听音功能这种抽象化的认识。具有拨号、讲话、听音功能这种抽象化的认识。423. 消息消息o 消息是向对象发出的服务请求。o 一个消息包含消息名、接受对象的标志、服务标志、输入信息、回答信息等。 o 消息传递机制。434. 类类o 类是一组具有相同数据结构和相同操作的对象的集合。o 类是对象的抽象。 o 客观世界实际存在的都是对象,而不是类 。o 类和对象的关系。 445. 继承继承o 继承性是面向对象程序设计语言不同于其他语言的最主要特点。继承是指子类可以自动拥有父类的全部属性与操作的机制。 n 例如,由基本类型的电话(拨号、讲话、听音功

20、能)例如,由基本类型的电话(拨号、讲话、听音功能),可以派生出电话传真机、移动电话、公用投币电话,可以派生出电话传真机、移动电话、公用投币电话等,等,这些电话都继承了电话基本类型的拨号、讲话、这些电话都继承了电话基本类型的拨号、讲话、听音功能,又添加了各自的独特功能听音功能,又添加了各自的独特功能。n 由于有了继承性,当我们把基本类型的电话由拨号改由于有了继承性,当我们把基本类型的电话由拨号改为按键,其它类型的电话都可以改为按键,继承性使为按键,其它类型的电话都可以改为按键,继承性使我们不必研究每种电话如何实现按键。我们不必研究每种电话如何实现按键。455. 继承继承o 继承的描述:465.

21、继承继承o 继承性又分为单重继承和多重继承两类。 475. 继承继承o 继承性又分为单重继承和多重继承两类。 486. 多态性多态性o 定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。o 多态性的实现方式:n 通过通过接口实现多态实现多态性:性:实例实例n 通过通过继承实现多态实现多态性:性:实例实例o 先定义一个父类,再定义N个子类,子类继承父类,但是还可以有自己的方法。这样子类除了有父类的方法还有子类的方法。n 通过通过抽象类实现多态性实现多态性49UML面向对象的分析设计工具面向对象的分析设计工具o UMLUnified Modeling Language统一建模语

22、言o 1996年,由Rational公司的G.Booch、J.Rumbaugh、I.Jacobson共同提出,并由若干大公司共同推荐,为OMG所采纳,进而成为了可视化建模的事实标准o OMG对象管理组织(Object Management Group)50UML的创始人的创始人o UML是由世界著名的面向对象技术专家G. Booch、J. Rumbaugh 和 I. Jacobson发起,在Booch方法、OMT方法和OOSE方法的基础上,广泛征求意见,集众家之长,几经修改而完成的。o Three amigosBooch Rumbaugh Jacobson51UML的特点的特点o 统一了面向对

23、象方法的表示o 表示能力强大,可用于各种软件系统建模,以及其他系统建模,如商业系统o 与开发过程无关,是一种绘制软件蓝图的标准语言。o 从企业信息系统到基于Web的分布式应用,甚至严格的实时嵌入式系统都适合于用UML来建模。o 它是一种富有表达力的语言,可以描述开发所需要的各种视图,然后以此为基础开发系统。 o 本身不涉及具体语言的语法及规则,但可对应到各种OOP语言框架52UML和和OOA、OODo UML既不是方法论,也不是一种开发过程,而是面向对象系统分析与设计的建模语言,是一种语言工具。n 如同英语充当国际交流的工具一样o OOA&OOD是方法论,该方法论的实践过程中需要使用U

24、ML的图符,使用时还必须遵循一定的原则及步骤。53UML的历史的历史Booch methodOMTUnified Method 0.8OOPSLA 95OOSEOther methodsUML 0.9Web - June 96 UML 1.0UML partnerspublicfeedback1989-19941989-1994期间,期间,OOOO方法从不足方法从不足1010种增加到种增加到5050多种多种 2004Final submission to OMG, Nov 97First submission to OMG, Jan 97UML 1.1OMG Acceptance, Nov 1

25、997 Fall 1998UML 1.3UML2.0UML2.054几个网站几个网站o o http:/ https:/ Case diagram)o静态图(Static diagram)n类图 Class diagramn对象图 Object diagramn包图 Package diagramo行为图(Behavior diagram)n状态图 Statechart diagramn活动图 Activity diagramo交互图 (Interactive diagram)n顺序图 Sequence diagramn协作图 Cooperation diagramo实现图(Implement

26、ation diagram)n构件图 Component Diagramn部署图 Deployment Diagram描述系统的动态模型和描述系统的动态模型和组成对象间的交互关系组成对象间的交互关系描述系统组成元描述系统组成元素的静态结构素的静态结构描述对象间的交描述对象间的交互关系互关系描述系统的物理描述系统的物理组成单元组成单元56图图图图diagrams类图类图class diagrams对象图对象图object diagrams构件图构件图component diagrams部署图部署图deployment diagrams用例图用例图use case diagrams顺序图顺序图se

27、quence diagrams协作图协作图collaboration diagrams状态图状态图statechart diagrams活动图活动图activity diagrams静态模型静态模型(系统结构系统结构)动态模型动态模型(系统行为系统行为)57UML1.X结构结构UMLUML构造块构造块公共机制公共机制架构架构物件物件关系关系图图规格说明规格说明修饰修饰公共分类公共分类扩展机制扩展机制用例视图用例视图逻辑视图逻辑视图进程视图进程视图实现视图实现视图部署视图部署视图结构物件结构物件行为物件行为物件分组物件分组物件注解物件注解物件关联关联依赖依赖泛化泛化实现实现类图类图顺序图顺序图对

28、象图对象图协作图协作图构件图构件图状态图状态图部署图部署图活动图活动图用例图用例图58UML为模型可视化提供表示法为模型可视化提供表示法o 说明用户与系统的交互的用例图o 说明逻辑结构的类图o 说明对象和链接的对象图o 说明行为的状态图o 说明软件的物理结构的构件图o 显示软件与硬件配置之间的映射关系的部署图o 说明行为的交互图(即协作图和顺序图)o 说明用例中事件流的活动图59UML在软件开发生命周期中的应用在软件开发生命周期中的应用60UML在软件开发生命周期中的应用在软件开发生命周期中的应用61UML在软件开发生命周期中的应用在软件开发生命周期中的应用62UML在软件开发生命周期中的应用

29、在软件开发生命周期中的应用63UML在软件开发生命周期中的应用在软件开发生命周期中的应用64UML基本元素基本元素 类类(Class)o 由三部分构成由三部分构成o 必须包含名称必须包含名称o 其余可省略或陆续添加其余可省略或陆续添加o 可说明属性及操作的可见可说明属性及操作的可见性性o 可说明属性的类型可说明属性的类型o 可说明操作的参数、返回可说明操作的参数、返回值值65类举例类举例个人账户个人账户NameIncomePaymentLimitationUsedLimitationGetBalance( )Save( )Pay( )CarryForward( )类名类名属性属性操作操作张三的

30、个人账户张三的个人账户张三张三1800.00230.5050000.00680.00对象名对象名属性属性66UML基本元素基本元素 对象对象(Object)o 由两部分组成由两部分组成o 没有操作,因为对属于没有操作,因为对属于同一个类的对象,其操作是同一个类的对象,其操作是相同的相同的o 名称必须包含名称必须包含o 名称带下划线名称带下划线o 名称后可跟类名名称后可跟类名o 其余可省略或陆续添加其余可省略或陆续添加o 可说明属性的类型可说明属性的类型67UML基本元素基本元素 参与者参与者(Actor)和用例和用例(Use Case)o参与者n存在于作为研究对象的系统之外的实体n可以为人、机

31、构、设备、系统等n利用人形表示n通常仅包含其名称o用例用例n对一组动作序列的描述,系对一组动作序列的描述,系统执行这些动作将产生一个统执行这些动作将产生一个对特定参与者有价值而且可对特定参与者有价值而且可观察的结果观察的结果n使用实线椭圆使用实线椭圆n通常仅包含其名称通常仅包含其名称68o 用例图o 类图和对象图o 状态图o 活动图o 交互图o 包图o 构件图o 配置图69用例图(用例图(Use Case Diagram)o 要素要素n 参与者参与者n 用例用例n 关系关系o 关联关系(关联关系(Association)o 包含关系(包含关系(Include)o 扩展关系(扩展关系(Exten

32、d)o 泛化关系(泛化关系(Generalization)70事物事物名称名称解释解释UML表表示示参与者参与者(Actor)在系统外部与系统直接交互的人或事物在系统外部与系统直接交互的人或事物(如另一个计算如另一个计算机系统或一些可运行的进程机系统或一些可运行的进程)。我们需要注意的是:。我们需要注意的是:1.参与者是角色参与者是角色(role)而不是具体的人,它代表了而不是具体的人,它代表了参与参与者在与系统打交道的过程中所扮演的角色。所以在者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的

33、用户也可以只对应于一个参与多个参与者。不同的用户也可以只对应于一个参与者。者。2.参与者作为外部用户参与者作为外部用户(而不是内部而不是内部)与系统发生交互与系统发生交互作用,是它的主要特征。作用,是它的主要特征。3.在后面的顺序图等中出现的在后面的顺序图等中出现的“参与者参与者”,与此概念,与此概念相同,但具体指代的含义,视具体情况而定。相同,但具体指代的含义,视具体情况而定。用例图中的事物及解释用例图中的事物及解释71确定确定参与者参与者o 如何寻找系统的参与者 72参与者间的关系参与者间的关系o 在用例图中,使用泛化关系来描述多个参与者之间的公共行为73事物事物名称名称解释解释UML表示

34、表示用例用例(Use Case)定义:对定义:对一组动作序列的描述一组动作序列的描述,系统通过执行这一组动作序列为系统通过执行这一组动作序列为参与者产生一个可观察的结果。参与者产生一个可观察的结果。1.系系统外部可见的一个统外部可见的一个系统功能单元系统功能单元。2.系系统的功能由系统单元所提供统的功能由系统单元所提供,并并通过一系列系统单元与一个或多个通过一系列系统单元与一个或多个参与者之间交换的消息所表参与者之间交换的消息所表达达 。3.在不揭示系统内部构造的前提下定在不揭示系统内部构造的前提下定义连贯的行为。义连贯的行为。 4.不是需求或功能的规格说明,但是不是需求或功能的规格说明,但是

35、也展示和体现其所描述的过程中的也展示和体现其所描述的过程中的需求情况。需求情况。用例图中的事物及解释用例图中的事物及解释74o 用例图描述了n 谁将是系统的使用者n 使用者希望系统提供什么服务(功能)n 使用者与系统之间的交互(参与者与用例之间的关系)o 关联关系(association)n 系统所提供的服务(用例之间的关系)o 包含关系(include)o 扩展关系(extend)o 泛化关系(generalize)75识别识别用例用例o 识别用例最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何使用系统的76用例图中的关系及解释:用例图中的关系及解释: 关联关系关联关系(assoc

36、iation)77关系关系解释解释图图参与者参与者与用例与用例之间的之间的关系关系关联关联表示参与者与用例之间的交互,通信表示参与者与用例之间的交互,通信途径。途径。(关联关联有时候也用带箭头的实线来表示有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例这样的表示能够显示地表明发起用例的是参与者的是参与者。)关联命名:一个动词或者一个动词短关联命名:一个动词或者一个动词短语,用于指明关系的类型或者目的。语,用于指明关系的类型或者目的。 参与者与用例之间的关联关系参与者与用例之间的关联关系78关联关系关联关系(association)o 在用例图中,通常存在两种类型的关联:n 单向关

37、联 n 双向关联 o Actor1 与 UseCase1o Actor2 与 UseCase179用例图中的关系及解释:用例图中的关系及解释: 泛化关系泛化关系(generalization)80关系关系解释解释图图用例之用例之间的关间的关系系泛化泛化定义:在一个更一般的模型要素和另一个较具定义:在一个更一般的模型要素和另一个较具体的模型要素之间存在的一种关系,通常用于体的模型要素之间存在的一种关系,通常用于表示类(包括用例、参与者等)之间的继承关表示类(包括用例、参与者等)之间的继承关系系 。1. 发发出出箭头的箭头的事物事物“is a”箭头指向的箭头指向的事物事物。泛化关系是泛化关系是一般

38、和特殊关系一般和特殊关系,发出箭头的,发出箭头的一方代表特殊的一方,箭头指向的一方代一方代表特殊的一方,箭头指向的一方代表一般一表一般一方。方。2. 特殊一方继承了一般方的特性并增加了新特殊一方继承了一般方的特性并增加了新的特性。的特性。泛化关系泛化关系(generalization)81泛化关系泛化关系(generalization)82补充:依赖关系补充:依赖关系(dependency)o 定义n存在于两个模型要素之间的一种关系,其中一个模型要素的改变将影响另一个模型要素 n箭头指向被依赖的事物o 表示方法n 表示为一个带箭头的虚线 83dependency用例图中的关系及解释:用例图中的

39、关系及解释: 扩展关系扩展关系(extend)84关系关系解释解释图图用例用例之间之间的关的关系系扩展扩展1. 扩展用例扩展用例被定义为被定义为基础用例基础用例的增量扩展。的增量扩展。2. 扩展扩展用例是用例是可选的可选的,如果缺少扩展用例,如果缺少扩展用例,不会影响到基用例的完整不会影响到基用例的完整性性;3. 扩展关系是指用例功能的延伸,相当于扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。为基础用例提供一个附加功能。4. 扩扩展用例在一定条件下才会执行,并且展用例在一定条件下才会执行,并且其执行会改变基用例的行为。其执行会改变基用例的行为。 扩展关系扩展关系(extend)

40、o 例:系统允许用户对查询的结果进行导出、打印。对于查询而言,“导出”、“打印”是“查询”功能的扩展,因此可以采用扩展关系来描述85o 扩展关系:n 将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,从而使基用例行为更简练和目标更集中。o 扩展用例为基用例添加新的行为。用例图中的关系及解释:用例图中的关系及解释: 包含关系包含关系(include)86关系关系解释解释图图用例用例之间之间的关的关系系包含包含1. 箭箭头指向的用例为被头指向的用例为被包含的包含的用例,称为用例,称为包含用包含用例;例;2. 箭箭头出发的用例为基头出发的用例为基用例用例;3. 包包含用

41、例是含用例是必选的必选的,如果缺少包含用例,如果缺少包含用例,基用例就不完基用例就不完整;整;4. 包包含用例含用例必须被执行必须被执行,不需要满足某种,不需要满足某种条件条件,其其执行并不会改变基用例的行为。执行并不会改变基用例的行为。 客户用例客户用例可以简单可以简单地包含地包含提供者用例提供者用例具有的行为,并把具有的行为,并把它所包含的用例行它所包含的用例行为作为自身行为的为作为自身行为的一部分。一部分。 包含关系包含关系(include)o 使用包含关系的三种情况:n如果有多个用例,并且这些用例包含大量类似的行为,应该考虑将这些类似的行为通过包含关系包含到用例中; n对两个或多个互相

42、独立的用例建模时做了重复的工作,可以通过包含关系包含这些重复的工作; n如果某个行为可能会引入冗余,或者,当行为发生变化时可能导致不一致性,这时,应该对这种行为进行孤立建模并将它包含到用例中。87包含与扩展的区别包含与扩展的区别/联系联系o包含关系:当可以从2个或2个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能时,应该使用包含关系来表示它们。 o扩展关系:如果一个用例明显地混合了2种或2种以上的不同场景,即根据情况可能发生多种事情,可以断定,将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。下订单下加急订单查询订单状态用户合法性检查检查密码检查指纹

43、88这几种关系的应用对象这几种关系的应用对象1-1实例实例1:参与者之间的泛化关系参与者之间的泛化关系参与者:经理,安全主管,保安 用例:管理人事,批准预算,批准安全证书,监视周边90 在参与者之间不存在泛化关系的情况下,各个参与者参与在参与者之间不存在泛化关系的情况下,各个参与者参与 用例的情况用例的情况分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安由于安全主管与经理,安全主管与保安之间泛化关系

44、的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全主管就可以参与全部这样,安全主管就可以参与全部4个用例。但经理或者保安却不能担任个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。安全主管的角色,也就不能参与用例批准安全证书。实例实例2:用例之间扩展和包含关系用例之间扩展和包含关系o 背景信息:去旅行,但汽车的油不足以应付全部路程。o 那么为汽车加油的动作在旅行的每个场景(事件流)中都会出现,不加油就不会完成旅行。o 吃饭则可以由司机决定是否进行,不吃饭不会影响旅

45、行的完成。91实例实例3:用例之间的关系:用例之间的关系下订单下加急订单查询订单状态用户合法性检查检查密码检查指纹92用例图的主要用途用例图的主要用途o 分析阶段n 帮助识别系统的相关主体n 帮助明确并逐步细化系统功能需求n 是绘制其它图的出发点o 实现阶段n 是编制测试用例的基础o 实施阶段n 是制定培训、维护计划的依据931. 右图中的参与者有? (a) 1 (b) 2 (c) 3(d) 42. 下列选项中属于右图用例的是?(a) 1(b) 2(c) 3(d) 43. 2和3之间是什么关系?5和6呢?(a) 扩展,包含 (b) 包含,扩展4. 5缺少了3仍然是个完整的用例?(a) 是的(b

46、) 不是5. 4能够参与2吗?1能够参与5吗?(a) 可以,不可以 (b) 不可以,可以习题答案:1、(a)(d) 2、(b)(c) 3、(b) 4、(b) 5、(b)94o用例(use case)用来描述系统在对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是_关系?oA. 包含(include) oB. 扩展(extend) oC. 泛化(generalization) oD. 关联(association)95o 用例从用户角度描述系统的行为。

47、用例之间可以存在一定的关系。在“某图书馆管理系统”用例模型中,所有用户使用系统之前必须通过“身份验证”,“身份验证”可以有 “密码验证”和“智能卡验证”两种方式,则“身份验证”与“密码验证”和“智能卡验证”之间是 _关系。 o A. 关联B. 包含o C. 扩展D. 泛化 96UML中扩展和泛化的区别中扩展和泛化的区别o 泛化表示类似于OO术语“继承”或“多态”。o UML中的Use Case泛化过程是将不同Use Case之间的可合并部分抽象成独立的父Use Case,并将不可合并部分单独成各自的子Use Case;o 扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extensio

48、n)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。o 包含以及扩展过程与泛化过程类似,但三者对用例关系的优化侧重点是不同的。97UML中扩展和泛化的区别中扩展和泛化的区别o 既然用例是系统提供服务的UML表述,那么服务这个过程在所有用例场景中是必然发生的,但发生按照发生条件可分为如下两种情况:无条件发生:肯定发生的;有条件发生:未必发生,发生与否取决于系统状态。o 泛化与包含用例属于无条件发生的用例,而扩展属于有条件发生的用例。98下订单下加急订单查询订单状态用户合法性检查检查密码检查指

49、纹用例图示例用例图示例o 如果想要强调某一个参与者和多个用例的关系,就可以以该参与者为中心,用一个用例图表述出该参与者和多个用例之间的关系。在这个用例图中,我们强调的是该参与者会使用系统所提供的哪些服务。o 如果想要强调某一个用例和多个参与者之间的关系,就可以以该用例为中心,用一个用例图表述出该用例和多个参与者之间的关系。在这个用例图中,我们强调的是该用例会涉及到哪些参与者,或者说该用例所表示的系统服务有哪些使用者。99用例图示例用例图示例100用例图示例用例图示例101用例图示例用例图示例102用例图示例用例图示例103用例图示例用例图示例104使用使用Rational Rose绘制用例图的

50、步绘制用例图的步骤骤o 1.创建用例图o 2.添加参与者与用例o 3.添加参与者与用例之间的关系o 4.添加用例之间的关系105创建用例图创建用例图106工具栏的定制工具栏的定制107实例实例图书馆管理系统的用例图图书馆管理系统的用例图 o 一、确定系统的参与者及所需要的主要功能o 二、确定系统的用例o 三、图书馆管理系统的用例图108一、确定系统的参与者及所需要的主要功能一、确定系统的参与者及所需要的主要功能o 首先分析系统所涉及的问题领域和系统运行的主要任务:n 分析使用该系统主要功能部分的是哪些人。n 谁将需要该系统的支持以完成其工作。n 系统的管理者与维护者。109一、确定系统的参与者

51、及所需要的主要功能一、确定系统的参与者及所需要的主要功能o读者: 借书 还书 书籍预定系统管理员:图书馆管理员:110二、确定系统的用例二、确定系统的用例o 1.借阅者请求服务的用例o 2.图书馆管理员处理借书、还书等的用例o 3.系统管理员进行系统维护的用例 1111.借阅者请求服务的用例借阅者请求服务的用例 登录系统 查询自己的借阅信息 查询书籍信息 预定书籍 借阅书籍 归还书籍112三、图书馆管理系统的用例图三、图书馆管理系统的用例图1.借阅者请求服务的用例图借阅者请求服务的用例图1132.图书馆管理员处理借图书馆管理员处理借/还书等的用例还书等的用例 处理书籍借阅 处理书籍归还 删除预

52、定信息1142.图书馆管理员处理借图书馆管理员处理借/还书的用例图还书的用例图1153.系统管理员进行系统维护的用例系统管理员进行系统维护的用例 查询借阅者信息 查询书籍信息 增加书目 删除或更新书目 增加书籍 删除书籍 添加借阅者帐户 删除或更新借阅者帐户1163.系统管理员进行系统维护的用例图系统管理员进行系统维护的用例图117视频:如何使用视频:如何使用Rose建立用例模型建立用例模型118类图类图o用于描述类与类之间的用于描述类与类之间的静态关系静态关系。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)o类图主要由类及它们之间的关系构成,此

53、外,还可以包含接口、类图主要由类及它们之间的关系构成,此外,还可以包含接口、包等元素,也可包括对象等实例包等元素,也可包括对象等实例。119泛化组合Graphics: 基本图形和组合图基本图形和组合图形的父类,声明了所有图形共形的父类,声明了所有图形共同的操作,如同的操作,如Draw;也声明;也声明了专用于组合图形管理子图形了专用于组合图形管理子图形的操作,如的操作,如Add、Remove。Line、Rectangle: 基本图形基本图形类类GroupGraphics: 组合图形组合图形类,与父类有组合关系,从而类,与父类有组合关系,从而可以组合所有图形对象可以组合所有图形对象(基本图基本图形

54、和组合图形形和组合图形)类图中的事物及解释类类从上到下分为三部分,分别是类名、属性和操作。类名是必须从上到下分为三部分,分别是类名、属性和操作。类名是必须有的有的类如果有属性,则每一个属性都必须有一个名字,另外还可以类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等有其它的描述信息,如可见性、数据类型、缺省值等类如果有操作,则每一个操作也都有一个名字,其它可选的信类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等返回值的

55、类型等120Account- balance : double = 1+ Deposit(amount : double) : int+ ComputeInterest() : double可见性可见性-代表代表private+代表代表public#代表代表protected也可以使用图形表示也可以使用图形表示返回值类型返回值类型操作名称操作名称斜体为抽象操作斜体为抽象操作缺省值缺省值类名类名斜体为抽象类斜体为抽象类属性名称属性名称参数列表参数列表类的映射C+代码class Vehiclepublic: virtual int Start() = 0; virtual int Stop() =

56、 0; virtual int Run(float fSpeed) = 0;private: float fMaxSpeed;Java代码public abstract class Vehicle public abstract int Start(); public abstract int Stop(); public abstract int Run(float fSpeed); private float fMaxSpeed;Vehicleabstract - fMaxSpeed : float+Start ()Stop ()Run (float fSpeed): int: int:

57、int121类图中常见的关系o 依赖关系o 泛化关系(继承关系)o 关联关系122依赖关系(依赖关系(dependency)o代表:使用关系代表:使用关系o说明一个事物规格的变化可能影响到使用它的另一个事物说明一个事物规格的变化可能影响到使用它的另一个事物o箭头指向被依赖的事物箭头指向被依赖的事物o可以简单的理解,就是一个类可以简单的理解,就是一个类A使用到了另一个类使用到了另一个类B,B类的变化类的变化会影响到会影响到A;o比如某人要过比如某人要过 河,需要借用一条船,此时人与船之间的关系就是河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类依赖;表现在代码层面,为类B作

58、为参数被类作为参数被类A在某个在某个method方方法中使用;法中使用;123泛化关系(泛化关系(generalization)o 指一般事物(称为超类或指一般事物(称为超类或父类父类)和该事物的较为特)和该事物的较为特殊的种类(称为殊的种类(称为子类子类)之)之间的关系间的关系o 一个类可以有一个类可以有0个、个、1个或个或多个父类多个父类o 没有父类且最少有一个子没有父类且最少有一个子类的类称为根类或基类类的类称为根类或基类o 没有子类的类称为叶子类没有子类的类称为叶子类o 箭头指向被继承的类箭头指向被继承的类124关联关系(关联关系(association)o 代表一种结构关系代表一种结

59、构关系o 类型类型n 自关联自关联n 二元关联二元关联o 关联可以有一个名称关联可以有一个名称125角色角色类的角色是类的角色是“事物事物”多重性多重性(用数字和(用数字和*表示)表示)1*:1个或多个个或多个1个类图有个类图有1个或多个类个或多个类1个类属于个类属于1个或多个类图个或多个类图ClassDiagramClass+thing+diagram1.*1.*use1.*1.*方向方向双向关联(省略箭头)双向关联(省略箭头)名字名字关联的名字是关联的名字是“使用使用”实例聚合(聚合(Aggregation)一种特殊的关联关系一种特殊的关联关系o用于表示整体与部分的关系用于表示整体与部分的

60、关系o以菱形表示以菱形表示o可进一步细分为:可进一步细分为:n普通聚集,共享聚集普通聚集,共享聚集(Shared Aggregation)o 整体与部分可以单独整体与部分可以单独存在存在o 以空心菱形表示以空心菱形表示n组合(组合(Composition)o 整体拥有部分,部分整体拥有部分,部分与整体共存与整体共存o 以实心菱形表示以实心菱形表示126类及类之间的关系类及类之间的关系自关联自关联同时存在同时存在两种关系两种关系依赖依赖关系关系泛化泛化关系关系多元多元关联关联127大学里的几种关系大学里的几种关系普通普通聚集聚集组合组合指定关指定关系名称系名称和方向和方向另一种另一种指定关指定关系名称系名称的方法的方法指定多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论