软件建模项目三

上传人:kms****20 文档编号:54168397 上传时间:2018-09-08 格式:PPT 页数:132 大小:4.38MB
返回 下载 相关 举报
软件建模项目三_第1页
第1页 / 共132页
软件建模项目三_第2页
第2页 / 共132页
软件建模项目三_第3页
第3页 / 共132页
软件建模项目三_第4页
第4页 / 共132页
软件建模项目三_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《软件建模项目三》由会员分享,可在线阅读,更多相关《软件建模项目三(132页珍藏版)》请在金锄头文库上搜索。

1、项目三 架构建模,张志丽,UML建模,UML需求建模 时间:需求分析阶段(用例图和活动图)参与人员:需求分析人员、系统分析员主力,架构师参与目的:是帮助开发者理解系统、方便设计者与客户之间沟通 UML架构建模时间:设计实现阶段(类图、状态图、顺序图、协作图)参与人员:架构师为主,系统分析员、开发人员提供支持目的:架构建模针对系统的轮廓和最重要方面进行表述,它定义了系统顶层的结构,为更具体的结构建模预设了范围,它通过定义架构机制,确定了系统的基本特征,从而为行为建模指明了方向,架构建模,问题引入,通过前面章节的学习,完成了对诚信管理论坛系统的需求建模,我们初步了解系统的业务处理过程。下一阶段我们

2、将对系统继续进行动态和静态建模,最后构建出系统的软件架构。这一阶段包括将系统中对象抽象成类,进行对类之间关系进行建模,而系统内部行为建模则由交互图进行描述。,3.1 状态图,任务提出,通过前面需求建模,我们初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为角度描述系统业务活动。请完成如下任务:1完成用户登录的状态图; 2完成帖子管理的状态图。,状态、状态表示法及状态机,状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况 一个状态通常包括名称、进入/退出活动、内部转换、子状态和延

3、迟事件等五个部分组成 状态机是计算机科学理论的一部分,是用来展示状态与状态之间转换的图,如何阅读状态机图,阅读最简单的状态图最为核心的元素无外乎是两个: 一个是用圆角矩形表示的状态 (初态和终态例外); 另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换,转换的五要素,源状态:即受转换影响的状态目标状态:当转换完成后对象的状态触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件监护条件:布尔表达式,决定是否激活转换、动作:转换激活时的操作,读图小结,与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn

4、,那么将判断壶中是否有水;如果没水,则仍然处于off状态;如果有水则转为on状态,并执行“烧水”动作 而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了,复杂转换,阅读带有复杂转换的状态图,只有动作描述,进入和退出和操作方法写在了里面,各种转换的区别,进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示内部转换:用来处理一些不离开该状态的事件,活动与延迟事件,活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些时间,你可能希望描述个正在进行的活动。在处于一

5、个状态的同时,对象做着某些工作,并一直继续到被某个事件中断延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件,复合状态表示法,顺序复合状态图,监护条件为“应答音”,代表已连接。,并发复合状态图,历史,“一个圆圈中加上字母H”,是用来表示历史状态的。它的含义是:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。也就是说,转到购物车或结账区之后

6、,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息。,子状态机,将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它,引用C状态机,绘制状态机图,绘制状态机图的理想步骤是:寻找主要的状态确定状态之间的转换细化状态内的活动与转换用复合状态来展开细节,寻找主要状态,对于航班机票预订系统而言,显然包括的状态主要有 :- 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态 - 对订座而言显然有“部分预订”和“预订完”两种状态 - 而当航班快要起飞时,显然要“预订关闭” 总结一下,主要有四种状态:无预订、部分预订

7、、预订完以及预订关闭,确定状态间转换,表格横向是转出 表格纵向是转入源目标 无预订 部分预订 预订完 预订关闭无预订 预订() 不直接转换 关闭()部分预订 退订(),使预订人=0 预订(),无空座 关闭()预订完 不直接转换 退订() 关闭()预订关闭 无转换 无转换 无转换,细化状态内的活动与转换,使用复合状态,状态机图应用说明,对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响对反应型对象建模:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作状态机图既可以用来表示一个业务领域的知识,也可以用来描述

8、设计阶段对象的状态变迁,本章小结,首先介绍了“状态”的概念和UML表示法,然后引入了状态机的概念通过三个例子逐一说明简单状态机图、包含复杂转换的状态机图以及包含复合状态的状态机图的阅读方法,紧接着通过一个航班机票预订系统来阐述了状态图的绘制过程:确定状态,分析状态间的转换,细化活动与内部转化,通过复合状态来组织简明地点出状态图的两大功能:对对象的生命周期建模以及对反应型对象的行为建模,3.1 状态图,示例3.1.6,对电话工作的行为建模,3.1 状态图,示例3.1.7,对酒店餐桌状态进行管理,3.1 状态图,任务解决,分析:登录是系统业务中一个用例,用户在做其他操作之前必须完成该用例,登录时系

9、统需要对用户身份进行校验,而这种校验过程是一个反应型对象。用户校验通常在以下几个工作状态中转换: 未登录、校验失败、校验码校验、用户名校验、用户口令校验、用户权限校验,3.1 状态图,精练 1,请根据本节所学的知识解决项目中的任务2,分析:由前面章节对诚信管理论坛系统中有关帖子管理的描述和分析可知,帖子共存在新帖,已审核,已回复,已删除4中状态机激活相互转换的事件。,3.1 状态图,精练 2,用状态图描述系统中服务器运行状态服务器端运行流程如下: 1、在服务器管理端启动服务器 2、服务器启动成功,进入侦听接收客户服务请求 3、服务器响应客户服务请求 4、服务器收到系统系统管理员命令暂停服务 5

10、、系统管理员下达停止服务命令,服务器停止服务 6、结束,3.2 类和类图,类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。,1 类,类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责。在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责。设计类是面向对象设

11、计中最重要的组成部分,也是最复杂和最耗时的部分。,1 类,在软件系统运行时,类将被实例化成对象(Object),对象对应于某个具体的事物,是类的实例(Instance)。类图(Class Diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系。,三种类,在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:(1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实

12、体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。(2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等,三种类,(3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。在面向对象分析和设计的初级阶段,通常首先识别出实体类,绘制初始类图,此时的类图也可称为领域模型,包括实体类及其它们之间的相互关系。,2 类的UML图示,在

13、UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name、age和email,以及操作modifyInfo(),在UML类图中该类如图所示:,对应的Java代码片段如下: public class Employee private String name;private int age;private String email;public void modifyInfo() ,2 类的UML图示,在UML类图中,类一般由三部分组成:(1) 第一部分是类名:每个类都必须有一个名字,类名是一个字符串。(2) 第二部分是类的属性(Attrib

14、utes):属性是指类的性质,即类的成员变量。一个类可以有任意多个属性,也可以没有属性(3) 第三部分是类的操作(Operations):操作是类的任意一个实例对象都可以使用的行为,是类的成员方法。,2 类的UML图示,UML规定属性的表示方式为: 可见性 名称:类型 = 缺省值 其中: “可见性”表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。 “名称”表示属性名,用一个字符串表示。 “类型”表示属性的数据类型,可以是基本数据类型,也可以是用户自定义类型。 “缺省值”是一个可选项,即属

15、性的初始值。,2 类的UML图示,UML规定操作的表示方式为: 可见性 名称(参数列表) : 返回类型 其中: “可见性”的定义与属性的可见性定义相同。 “名称”即方法名,用一个字符串表示。 “参数列表”表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开。 “返回类型”是一个可选项,表示方法的返回值类型,依赖于具体的编程语言,可以是基本数据类型,也可以是用户自定义类型,还可以是空类型(void),如果是构造方法,则无返回类型。,2 类的UML图示,在下面的类图中,操作method1的可见性为public(+),带入了一个Object类型的参数par,返回值为

16、空(void);操作method2的可见性为protected(#),无参数,返回值为String类型;操作method3的可见性为private(-),包含两个参数,其中一个参数为int类型,另一个为int类型,返回值为int类型。,2 类的UML图示,由于在Java语言中允许出现内部类,因此可能会出现包含四个部分的类图,如下图所示:,类与类之间的关系,软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式。 1. 关联关系 (1) 双向关联 (2) 单向关联 (3) 自关联 (4) 多重性关联 (5) 组合和聚合 2. 依赖关系 3. 泛化关

17、系 4. 接口与实现关系,1 关联,关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等等。在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C#和C+等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量。在使用类图表示关联关系时可以在关联线上标注角色名,一般使用一个表示两者之间关系的动词或者名词表示角色名(有时该名词为实例对象名),关系的两端代表两种不同的角色,因此在一个关联关系中可以包含两个角色名,角色名不是必须的,可以根据需要增加,其目的是使类之间的关系更加明确。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号