《实验课5 编写类图和时序图、状态图ppt课件.ppt》由会员分享,可在线阅读,更多相关《实验课5 编写类图和时序图、状态图ppt课件.ppt(81页珍藏版)》请在三一办公上搜索。
1、软件工程实验课 05,授课老师: 张志青 副教授,根据用例规约提取分析类编写类的属性、方法和职责分析、讨论类图与对象图分析、讨论顺序图与协作图 分析、讨论状态图与活动图分析、讨论构件图与部署图,学习目标:,实验任务,各组讨论,评分评分标准:讲述:20分内容:60分完整修改:20分,完善实验,课后完成提交修改版本提交截止日起:下周结束前,类的提取与设计,类的种类,边界类实体类控制类参数类,类的提取,掌握类的概念及作用学会在用例及其行为描述中提取类(属性和操作)。,类的提取,定义系统对象类如上述所说的实体类的定义定义用户界面类如:类MainWindow是系统的主界面,系统的主界面有菜单和菜单项,实
2、体类的识别,实体对象是实体类的实例用来保存或更新关于某个现象的信息通常是持久性的独立于它们的环境、独立于应用程序通常是那些被系统用来完成某些责任的类如图书管理系统中的借阅者,物理书刊,借阅记录等,分析类寻找过程*,分析类经验法则每个类大约35个职责不存在独立的类当心非常小的类当心几个非常庞大的类当心“伪类”当心万能类避免深度继承类,分析类寻找过程*,“寻找类”Meyer(软件工程专家)在其著作中指出:不存在找出恰当分析类的简单算法,如果这样的算法存在,那么意味着存在没有错误的方法来设计OO软件,这同找出没有错误的方法证明数学定理一样是不可能的。仍然存在导致良好答案的已尝试和测试的技术,来做这件
3、事。,分析类寻找过程*,1)名词/动词分析寻找类它是基于问题域语言的直接分析经验法,因此要求分析人员对问题域要有尽可能多的了解。名词/名词短语-类/类的属性动词/动词短语-职责/类的操作用颜色/字体标识文档,找出候选类及属性,分配属性,关联类,精化。,分析类寻找过程*,2)CRC寻找类类、职责、协作者。(制作便笺,或在ROSE中制作类图)阶段1:脑力风暴-收集信息阶段2:分析信息,分析类寻找过程*,3)创建初步分析模型(类图)比较上述两种方法得到的结果从结果中整合出分析类、职责、属性,并把它们制作中ROSE中(或其它CASE工具)。协作者代表类间的关系按照标准命名约定来改进CRC的命名,类名的
4、定义,每个类都有一个名字,跟其他的类相区别在实践中,类名通常用问题域中的短名词或名词词组来表示类名中的每个组成词的第一个字母大写类的命名尽量用问题域中的术语,应明确无歧义,类的属性,原则上类的属性应能描述并区分每个特定的对象只有与系统有关的特征才包含在类的属性中系统建模的目的也会影响到属性的选取根据图的详细程度,每个属性可以包括属性的可见性、属性名称、类型、缺省值和约束UML规定类属性的语法为:【可见性】属性名【:类型】【=初始值】【属性字符串】【】中的部分是可选的实践中属性名用短名词或名词短语,类的操作,UML规定操作的语法为:【可见性】操作名【(参数)】【:返回类型】【属性字符串】实践中操
5、作名用短动词或动词短语,可见性-类、包,Public (+) The element is visible outside of the enclosing package and you can import it to other portions of your model. Operations are accessible to all clients. Protected (#) The element is accessible only to nested classes, friends, or to the class itself. Private(-) The elem
6、ent is accessible only to nested classes, friends, or to the class itself.ImplementationThe element is visible only in the package in which it is defined. An operation is part of the implementation of the class.,图示可见性,确立关系,1)依赖关系2)类属关系(泛化关系)3)关联关系4)聚合关系5)组合关系6)实现关系分析教材P182-P191,关系,建立关联创建角色确定重数高级关联,分
7、析讨论类图,类图的主要组成,类接口协作依赖、类属、实现或关联关系注释和约束,类图元语-1,类图元语-2,类图的划分,概念层(Conceptual)概念层类图描述问题域中的概念说明层(Specification)说明层类图描述软件接口部分实现层(Implementation)实现层才真正有类的概念,并且揭示软件的实现部分,对象图Object Diagrams,对象图模拟类图中所含有的类的实例,对象图是描述某一瞬间对象集及对象间的关系对象图为处在时域空间某一点的系统建模描绘系统的对象、对间的状态及对象间的关系主要用于对象结构建模,对象图的组成部分,对象连接注解和约束,对象图的获得,对象图(Obje
8、ct Diagrams)模拟类图中所含有的类的实例,对象图描述了某一瞬间对象集及对象间的关系。对象是类的实例,对象之间的连接(Link)是类之间的关系关系的实例。,对象图,对象图说明了一个给定上下文或场景中的一组对象和它们之间的关系。它包含对象和链。链是对象之间的语义连接。UML对象图是类图在运行时的映像,是一组对象的生命周期的一个快照。类似于一个公司的收支表,它只在打印或绘制时才是有效的。但根据不同的读者,有时对象图有助于从运行时角度来描述类。,对象结构建模的注意事项,确定要模拟的机制对于每个机制,识别参加这个写作的类、接口等交互作用产生的关系如果必要,揭示没给对象的状态和属性值类似的,揭示
9、对象间的连接,这些连接是关联关系的实例,如何做顺序图与协作图,用例描述的另一有力工具-顺序图。,顺序图,Sequence Diagram序列图描述对象是如何交互的,即描述消息如何在对象间发送和接收。纵轴时间、横轴对象。序列图以可视化方式为系统中逻辑的流程建模,通常用于(用例)分析和设计阶段。,顺序图示例,协作图,协作图是方案的另外一种图形代表协作图可以独立地被建立直接从序列图中建立,同一个类的多个对象,消息可以发送给同一个类的多个对象这些可以通过堆栈对象图标来实现,反身消息,对象可以同自己进行合作它可以通过反身消息来描述,移动或插入消息,在协作图中消息不能被移动或插入序列图必须被使用过程转换序
10、列图移动或插入需要的消息转换回协作图,数据(对象)流程,在图中可以描述数据的返回值只能描述重要的数据返回,注释,注释可以被附属在协同图的任何一个实体上,状态图与活动图,一、状态图-1,主要使用场合:系统分析(类)、设计,定义: Statechart Diagram用于利用状态和事件描述对象本身的行为。状态:给定类的对象的一组属性值事件:某特定环境的发生转移:从一个状态转变为另一个状态,状态图-2,状态和转移所有对象均有状态,状态是对象上一次操作的结果。事件的动态性:交互、内部状态改变状态的动作:接收参数、正常/异常退出子状态与并行状态子状态-继续变化的状态顺序子状态、并发子状态,状态图-3,显
11、示一个对象在其生命期响应外部激励和消息所经历的状态的序列。状态图描述了:给定类的状态转换空间导致状态转换的事件导致状态改变的动作为类的重要动态行为建立状态转换图,活动图-1,定义: Activity Diagram它是一种变种的状态图,通过动作来组织,主要用于描述某一方法、机制或用例的内部行为。它依据对象状态的变化来捕获动作与动作的结果。活动图能够表达顺序流程控制和并发流程控制,并发活动可以同时执行也可以顺序执行。如果排除了这一点,活动图很像一个传统的流程图。,活动图-2,它可以:描述一个操作执行过程中所完成的工作;描述对象内部的工作;显示如何执行一组相关动作,以及这些动作如何影响它们周围的事
12、物;显示用例的实例是如何执行动作及如何改变对象状态;说明一次业务活动的工人(角色)、工作流、组织和对象是如何工作的。,活动图-3,活动图显示系统中从一个活动到另一个活动的流。活动是状态机中的一个非原子元素。状态机对个体对象的行为建模。每个活动将产生一个动作。动作将导致对象状态的改变,对另一个对象的调用或将一个值返回给调用者。活动图由对象、动作状态、活动状态和转换组成。,试验步骤状态图,1.模拟一个特定的对象模拟对象按事件排序的行为2.提取该对象所有可能的状态以及引起状态跃迁的事件3.编写状态图,状态图的基本元素,简单状态、复合状态跃迁,包括事件和动作注解及约束,状态图相关概念,状态图(Stat
13、echart Diagrams)状态机(State Machine) 状态(State)事件(Event)跃迁(Transition)活动(Activity)动作(Action),状态图示例-1:“图书”,状态图示例-2:“商品”,状态图示例-3,状态图选课,选课对应的代码,int sum=0;Public int register(student s) switch(state) case Open; if (sum56) state =Open; sum=sum+1; else state=close; break; case Close: System.out.println(“the
14、class is full”); return sum;,试验步骤活动图,1.模拟一个个体对象2.抽象出对象的行为动作状态3.确定活动状态和转换4.编写活动图,活动图的基本元素,活动图是根据对象状态胡变化来确定动作与动作的结果,是特殊的状态机。活动状态与动作状态跃迁对象,活动图示例-1:“借书用例,活动图示例-2:-找饮料,活动图示例-3,活动图示例-4,组件图,定义: 也可叫作构件图 Component Diagram描述在系统实现环境中的软件构件和它们间的关系,组件图,组件图中包括组件、接口及其关联。一个组件可以包括多个类。组件的接口和类的接口是相同的概念。外部只能通过组件的接口来使用组件
15、中定义的操作。提供服务的组件提供了输出接口,访问服务的组件使用了输入接口。组件接口是组件重用中的重要概念。组件类型:工作产品组件、执行组件。,构件用一边有两个小矩形的一个长方形表示,它可以用实线与代表构件接口的圆圈相连(如下图)。,组件图2,构件图表示了构件之间的依赖关系(如下图)。每个构件实现(支持)一些接口,并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以被具有同样接口的其他构件替代。,组件图2,组件图的应用,为源代码建模为可执行版本建模为数据库建模为自适应系统建模,构件图元语,示例:图书管理系统组件图,组件图示例:,部署图,定义: Deployment Diagram部署图
16、是描述计算机、外部硬件设备及它们构成的物理分布结构。简单的单机系统部署图包含一台计算机及其外部设备,所有组件都部署在这个节点上。在网络支持和系统中,部署图不仅描述每个分布的节点,还描述组件在节点上的分布。,部署图显示了运行时处理元素的组织。这些元素包括组件、进程和对象。这些运行时处理元素称为节点(NODE),它表示一个拥有内存和处理能力的计算资源。部署图是一个节点的图。每个节点均连接到其他节点被以描述通信关联。节点是表示计算资源的运行时的物理对象,通常具有内存和处理能力。节点可能具有用来辨别各种资源的构造型,如CPU、设备和内存等。节点可以包含对象和构件实例。,部署图,节点用带有节点名称的立方
17、体表示,可以具有分类(可选)(如下图)。,部署图,节点间的关联代表通信路径。关联有用来辨别不同路径的构造型。节点也有泛化关系,将节点的一般描述与具体的特例联系起来。对象在节点内的存在用嵌套在节点符号内的对象符号来表示。如果这样的表示不方便,对象符号可以包含表示它所在节点名称的location标签。节点间对象或构件实例的迁移也可以表示出来。,部署图,部署图元语-1,对象,结点,部署图元语-2,示例:图书管理系统部署图,示例,示例,部署图的应用,为嵌入式系统建模为客户/服务器系统建模为完全的分布式系统建模,组件图与部署图,1.组件图和部署图都是用来为面向对象系统的物理方面建模的两种图2.组件图描述了组件、组件间的关系,表示了组件之间的组织和依赖关系3.组件图被用来为系统的静态实现视建模4.部署图描述了运行处理节点和运行其上的组件配置5.部署图被用来模拟系统的静态配置,