《电子商务系统分析与设计》 课件0302-UML-类图概述;0303-UML-时序图-序列图;0304-UML-状态图概述_第1页
《电子商务系统分析与设计》 课件0302-UML-类图概述;0303-UML-时序图-序列图;0304-UML-状态图概述_第2页
《电子商务系统分析与设计》 课件0302-UML-类图概述;0303-UML-时序图-序列图;0304-UML-状态图概述_第3页
《电子商务系统分析与设计》 课件0302-UML-类图概述;0303-UML-时序图-序列图;0304-UML-状态图概述_第4页
《电子商务系统分析与设计》 课件0302-UML-类图概述;0303-UML-时序图-序列图;0304-UML-状态图概述_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

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

文档简介

用例图的作用?09:381回顾用例图是需求分析中的产物,主要作用是描述参与者和用例之间的关系,帮助开发人员可视化地了解系统的功能。借助于用例图,系统用户、系统分析人员、系统设计人员、领域专家能够以可视化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。UML-类图能够通过分析用例和问题域得到相关的类能够根据需求对各种概念和系统内部概念进行的建模09:383能力目标1209:384目录实例练习4.类与类之间的关系3.类图的组成2.类图概述1.09:385以小组为单位讨论后,用直线连接以下图形且说明09:386小组讨论&操作09:3871.1类图基本概念09:3881类图概述

不同的实体(人、事物和数据)如何彼此相关联的包含了类的属性和操作也包含了他们之间的关系这种描述在系统的整个生命周期中都是有效的类图展示了系统的静态结构1.2类图和对象图09:389类图中一共包含以下几种模型元素:类(Class)、接口(Interface)、依赖关系(Dependecy)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)对象图中包含:对象(Object)和链(Link),对象是类的特定实例,链是类之间的关系实例2.1类(Class)具有相同结构、行为和关系的一组对象的描述符号,类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。09:38102类图的组成职责指的是类要完成什么样的功能,要承担什么样的义务职责分解成为类的属性和操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责职责2.2类的分类09:38111实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。2控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类3边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。2.3类的UML图示在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name、age和email,以及操作modifyInfo(),在UML类图中该类如图所示:public

class

Employee

{private

String

name;

private

int

age;

private

String

email;

public

void

modifyInfo()

{

......

}

}

09:38122.4类的组成09:3813ClassName类名:每个类都必须有一个名字,类名是一个字符串Attributes属性:属性是指类的性质,即类的成员变量Operations操作:是类的任意一个实例对象都可以使用的行为,是类的成员方法属性和操作的”可见性“对于类外的元素而言是否可见publicprivate表示公有的,用加号表示“+”表示私有的,用减号表示“-”protected表示受保护的,用井号表示“#”可见性名称:类型[=缺省值]可见性名称(参数列表)[:返回类型]在现实世界中,万物皆有联系,在软件系统中,类也不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式09:38143类与类之间的关系依赖Dependency泛化Generalization关联单向关联、双向关联、自关联、聚合关系、组合关系实现Realization3.1关联关系关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等等如在一个登录界面类LoginForm中包含一个JButton类型的注册按钮loginButton,它们之间可以表示为关联关系,代码实现时可以在LoginForm中定义一个名为loginButton的属性对象,其类型为JButton。publicclassLoginForm{privateJButtonloginButton;//定义为成员变量……}publicclassJButton{……}09:38153.1.1双向关联默认情况下,关联是双向的。例如:顾客(Customer)购买商品(Product)并拥有商品,反之,卖出的商品总有某个顾客与之相关联。因此,Customer类和Product类之间具有双向关联关系publicclassCustomer{privateProduct[]products;……}publicclassProduct{privateCustomercustomer;……}09:38163.1.2单向关联类的关联关系也可以是单向的,单向关联用带箭头的实线表示。例如:顾客(Customer)拥有地址(Address),则Customer类与Address类具有单向关联关系publicclassCustomer{privateAddressaddress;……}publicclassAddress{……}09:38173.1.3自关联在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。例如:一个节点类(Node)的成员又是节点Node类型的对象publicclassNode{privateNodesubNode;……}09:38183.1.4多重性关联多重性关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系。在UML中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示。09:3819例如:一个界面(Form)可以拥有零个或多个按钮(Button),但是一个按钮只能属于一个界面,因此,一个Form类的对象可以与零个或多个Button类的对象相关联,但一个Button类的对象只能与一个Form类的对象关联。publicclassForm{privateButton[]buttons;//定义一个集合对象……}publicclassButton{……}09:38203.1.5聚合关系聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。在UML中,聚合关系用带空心菱形的直线表示。例如:汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此,汽车和发动机是聚合关系09:38213.1.6组合关系组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。在UML中,组合关系用带实心菱形的直线表示。例如:人的头(Head)与嘴巴(Mouth),嘴巴是头的组成部分之一,而且如果头没了,嘴巴也就没了,因此头和嘴巴是组合关系,如图09:38223.2依赖关系依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。例如:驾驶员开车,在Driver类的drive()方法中将Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用car的move()方法,且驾驶员的drive()方法依赖车的move()方法,因此类Driver依赖类Car,如图09:38233.3泛化关系泛化(Generalization)关系也就是继承关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。09:3824对应的Java代码片段:publicclassPersonprotectedStringname;protectedintage;publicvoidmove(){……}publicvoidsay(){……}}publicclassStudentextendsPerson{privateStringstudentNo;publicvoidstudy(){……}}publicclassTeacherextendsPerson{privateStringteacherNo;publicvoidteach(){……}}09:38253.4接口与实现关系在很多面向对象语言中都引入了接口的概念,如Java、C#等,在接口中,通常没有属性,而且所有的操作都是抽象的,只有操作的声明,没有操作的实现。UML中用与类的表示法类似的方式表示接口,如图09:3826接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现(Realization)关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。例如:定义了一个交通工具接口Vehicle,包含一个抽象操作move(),在类Ship和类Car中都实现了该move()操作,不过具体的实现细节将会不一样09:3827对应的Java代码片段如下publicinterfaceVehicle{publicvoidmove();}publicclassShipimplementsVehicle{publicvoidmove(){……}}publicclassCarimplementsVehicle{publicvoidmove(){……}}09:3828一张图总结出所有关系09:3829根据以下类,请绘制出类图:车、轮胎、发动机、小汽车、自行车、学生、班级、身份证、suv、嘴巴09:3830(1)以“远程网络教学系统”为例,在该系统中参与者为学生、教师和系统管理员:学生包括登录名称、登录密码、学生编号、性别、年龄、班级、年级、邮箱等属性;教师包括登录

名称、登录密码、姓名、性别、教授课程、电话号码和邮箱等属性;系统管理员包括用户名系统管理员密码、邮箱等属性。根据这些信息创建系统的类图。(2)在上题中如果把参与者学生、教师和系统管理员进行抽象,从而抽象出一个单独的人员类类,学生、教师和系统管理员分别是人员类的子类。根据这些信息重新创建类图。09:38314实例练习(1)09:3832答案图书管理系统中,有各种类型的读者,可以借阅各种类型的图书,图书由图书编目员维护,图书管理员管理图书、借阅信息和读者09:38334实例练习(2)09:3834答案09:3835Thanks!UML统一建模语言

时序图/顺序图UMLUnifiedModelingLanguage09:3837目标知识目标·掌握时序图的基本元素·熟悉绘制时序图的步骤和方法Teachinggoal能力目标·具有根据项目实际情况利用时序图建模的能力素质目标:培养学生动手、解决问题、逻辑分析的能力09:3838内容时序图案例案例及练习4.时序图元素2.时序图绘制步骤及方法3.时序图概述1.09:3839系统或对象的动态模型主要包括09:38401序列(顺序/时序sequence)图概述状态模型交互模型活动图状态图协作图顺序图09:38411时序图(SequenceDiagram)概述①描述了与用例相关的多个对象及其之间的动态交互关系,通常用于解释系统用例的实现过程。用例常常被细化为一个或多个时序图。②主要用来描述对象之间信息交换时的时间顺序。③可以有效地帮助人们观察和理解系统的动态行为。09:38421时序图概述–例如:用户登录登录(1)用户将用户名和密码提交给LoginAction

(2)由LoginAction调用UserManager

(3)UserManager到用户数据库UserServer中查找用户对象并返回(4)由UserManager判断用户名是否为空、密码是否正确(5)然后将User对象返回(6)返回后台登录主界面。09:384309:3844活动者(actor)或者对象(object)生命线(lifeline)激活(activation)/控制焦点(focusofcontrol)消息(message)09:38452时序图的组成元素当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。09:3846①活动者活动者和对象按照从左到右的顺序排列一般最多两个活动者,他们分列两端。启动这个用例的活动者往往排在最左边;接收消息的活动者则排在最右端;对象从左到右按照重要性排列或按照消息先后顺序排列。09:3847②对象对象的命名方式有三种:包括对象名和类名类名(匿名对象)对象名(不关心类)09:3848③生命线(Lifeline):每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在,垂直的虚线表示。如果对象生命期结束,则用注销符号表示对象默认的位置在图顶部,表示对象在交互之前已经存在如果是在交互过程中由另外的对象所创建,则位于图的中间某处。09:3849④激活当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说该对象被激活了。在UML中,激活用一个在生命线上的细长矩形框表示。矩形本身被称为对象的激活期或控制期,对象就是在激活期顶端被激活的。激活期说明对象正在执行某个动作。当动作完成后,伴随着一个消息箭头离开对象的生命线,此时对象的一个激活期也宣告结束。09:3850⑤消息向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的一个operation。顺序图中消息编号可显示,也可不显示。订单类发消息给客户类调用客户类中的“验证客户”操作09:3851当进行时序图建模时,所用到的消息主要包括以下几种类型:同步消息(SynchronousMessage)自关联消息(Self-Message)返回消息(ReturnMessage)异步消息(AsynchronousMessage)09:385209:3853同步消息是指消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。在时序图中,同步消息用实心箭头表示。自关联消息自关联消息是指自身调用自身的方法,即自我调用的同步消息09:3854返回消息调用消息中的操作完成后,由接收对象返回给发送对象的说明执行结果的回应。一个同步消息通常对应一个返回消息。异步消息是一种不需要等待返回消息的特殊调用消息。发送对象发送消息后可以立刻进行下一步操作,无需一直等待回复。09:3855组合片段组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。09:3856片段类型名称说明Opt选项包含一个可能发生或可能不发生的序列。

可以在临界中指定序列发生的条件。Alt抉择包含一个片段列表,这些片段包含备选消息序列。

在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。

else

的临界指示其他任何临界都不为

True

时应运行的片段。

如果所有临界都为

False

并且没有

else,则不执行任何片段。Loop循环片段重复一定次数。

可以在临界中指示片段重复的条件。Loop

组合片段具有“Min”和“Max”属性,它们指示片段可以重复的最小和最大次数。

默认值是无限制。Break中断如果执行此片段,则放弃序列的其余部分。

可以使用临界来指示发生中断的条件。Par并行并行处理。

片段中的事件可以交错。Critical关键用在

Par

Seq

片段中。

指示此片段中的消息不得与其他消息交错。Seq弱顺序有两个或更多操作数片段。

涉及同一生命线的消息必须以片段的顺序发生。

如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。Strict强顺序有两个或更多操作数片段。

这些片段必须按给定顺序发生。a.抉择(Alt)抉择在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。else的临界指示其他任何临界都不为True时应运行的片段。如果所有临界都为False并且没有else,则不执行任何片段。09:385809:3859b.选项(Opt)包含一个可能发生或不发生的序列09:3860c.循环(Loop)片段重复一定次数。可以在临界中指示片段重复的条件。09:3861d.

并行(Par)09:3862对系统动态行为建模的过程中,当强调按时间展开信息的传送时,一般使用时序图建模技术。一个单独的时序图只能显示一个控制流。一般情况下,一个完整的控制流是非常复杂的,要描述它需要创建很多交互图(包括时序图和协作图),一些图是主要的,另一些图用来描述可选择的路径和一些例外,再用一个包对它们进行统一的管理。09:38633时序图绘制步骤及方法时序图建立步骤64设置消息4.设置对象生命线开始和结束3.识别参与交互的对象和活动者2.确定交互的范围1.细化消息5.09:3865①②③⑤④设置交互的语境,这些语境可以是系统、子系统、类、用例和协作的一个脚本。识别对象在交互语境中所扮演的角色,根据对象的重要性及相互关系,将其从左至右放置在时序图的顶部。设置每个对象的生命线。通常情况下,对象存在于整个交互过程中,但它们也可以在交互过程中创建和撤销从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的内容标识。设置对象的激活期,可视化消息的嵌套或可视化实际计算发生时的时间点。⑥如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束。如果需要形式化的说明某控制流,可以为每个消息附上前置和后置条件。时序图交互建模策略下面将以“教师查看学生成绩”为例,介绍如何去创建系统的序列图09:3866名称教师查看学生成绩标识UC011描述教师查看学生关于某门课程的成绩前提学生为在校学生,拥有学号结果显示学生的成绩或空扩展N/A包含N/A继承N/A09:3867可以通过更加具体的描述来确定工作流程,基本的工作流程如下:李老师希望通过系统查询某名学生的学科成绩。李老师通过用户界面录入学生的学号。用户界面根据学生的学号向数据库访问层请求学生信息。数据库访问层根据学生的学号加载学生信息。数据库访问层根据学生信息和学科科目获取该名学生的分数信息。数据库访问层将学生信息和分数信息提供给用户界面。用户界面将学生信息和分数信息显示出来。09:3868在这些基本的工作流程中还存在分支,可使用备选过程来描述。备选过程A:该名学生没有学科成绩。① 数据访问层返回学科成绩为空。② 系统提示李老师没有该学生的成绩。备选过程B:系统没有该学生的信息。① 数据访问层返回学生信息为空。② 系统提示李老师该学生不存在。09:386909:387009:387109:3872请使用alt组合片段在一张图中重新绘制教师查看学生成绩的时序图?09:387309:3874请绘制读者借阅图书的时序图。小提示:有读者、系统键盘鼠标、系统屏幕、书籍对象、读者对象、借阅对象。09:3875练习09:38764时序图建模案例及练习图书管理系统时序图建模

1.添加借阅者添加借阅者的过程为:系统管理员选择菜单项“添加借阅者”,弹出AddBorrowerDialog对话框。系统管理员可以在该对话框中输入借阅者的信息并提交,随后系统对管理员所提交的借阅者信息进行验证,查看输入的借阅证号是否已经存在于系统中,若不存在,则为借阅者创建一个账户,并存储借阅者信息。2.修改借阅者修改借阅者的过程为:系统管理员选择菜单项“修改借阅者”,弹出UpdateBorrowerDialog对话框。系统管理员可以在该对话框中输入借阅者的借阅证号,随后系统查询数据库并显示相关的借阅者信息(如果输入的借阅者信息不存在,则显示提示信息,结束修改操作),修改相关借阅者信息,并存储。3.删除借阅者删除借阅者的过程为:系统管理员选择菜单项“删除借阅者”,弹出DeleteBorrowerDialog对话框。系统管理员可以在该对话框中输入借阅者的借阅证号,随后系统查询数据库并显示相关的借阅者信息(如果输入的借阅者信息不存在,则显示提示信息,结束删除操作),点击删除按钮,系统确认是否存在与该借阅者相关的借阅信息,若有,显示提示信息,结束删除操作;若没有,则系统删除该借阅者。4.添加书目添加书目的过程为:系统管理员选择菜单项“添加书目”,弹出AddTitleDialog对话框。系统管理员可以在该对话框中输入图书的名称、ISBN号、出版社名、作者姓名等信息并提交,系统根据提交的ISBN号查询图书的书目是否存在,若不存在,则为创建该书目。5.修改书目修改书目的过程为:系统管理员选择菜单项“修改书目”,弹出UpdateTitleDialog对话框。系统管理员可以在该对话框中输入图书的ISBN号并提交,随后系统查询数据库并显示相关的书目信息(如果输入的ISBN号不存在,则显示提示信息,结束修改操作),修改相关书目信息,并存储。6.删除书目删除书目的过程为:系统管理员选择菜单项“删除书目”,弹出DeleteTitleDialog对话框。系统管理员可以在该对话框中输入图书的ISBN号并提交,随后系统查询数据库并显示相关的书目信息(如果输入的书目信息不存在,则显示提示信息,结束删除操作),点击删除按钮,系统验证该书目对应的图书数目是否为0,如果为0,则删除该书目信息;反之,则系统提示必须先删除相应的图书。7.添加图书添加图书的过程为:系统管理员选择菜单项“添加图书”,弹出AddBookDialog对话框。系统管理员可以在该对话框中输入图书的ISBN号并提交,系统根据提交的ISBN号查询图书的书目是否存在,若不存在,则提示管理员需要先添加书目,然后才可以添加图书;若存在,则添加一个图书,并更新图书对应的书目信息。8.删除图书删除图书的过程为:系统管理员选择菜单项“删除图书”,弹出DeleteBookDialog对话框。系统管理员可以在该对话框中输入要删除图书的ISBN号并提交,随后系统查询数据库并显示相关的图书信息(如果输入的ISBN号不存在,则显示提示信息,结束删除操作),系统管理员进行确认并点击删除按钮,删除该图书,系统更新相应的书目信息。9.添加管理员添加管理员的过程为:系统管理员选择菜单项“添加管理员”,弹出AddManagerDialog对话框。系统管理员可以在该对话框中先输入一个用户名和初始密码,然后提交,系统根据提交的用户名和密码验证该用户名是否已经存在,若该用户已经存在,系统则提示出错;若不存在,则系统提示先添加管理员的权限为系统管理员还是图书管理员,并根据系统管理员的选择添加一个图书管理员或系统管理员。10.删除管理员删除管理员的过程为:系统管理员选择菜单项“删除管理员”,弹出DeleteManagerDialog对话框。系统管理员可以在该对话框中输入要删除的管理员的用户名并提交,随后系统查询数据库,以检验该管理员是否存在,若存在,则删除该管理员。11.借阅图书借阅图书的过程为:图书管理员选择菜单项“借阅图书”,弹出BorrowDialog对话框,图书管理员在该对话框中输入借阅者信息,然后由系统查询数据库,以验证该借阅者的合法性,若借阅者合法,则在由图书管理员输入所要借阅的图书信息,系统记录并保存该借阅信息。12.归还图书归还图书的过程为:图书管理员选择菜单项“归还图书”,弹出ReturnDialog对话框,图书管理员在该对话框中输入归还图书编号,然后由系统查询数据库,以验证该图书是否为本馆藏书,若图书不合法,则提示图书管理员;若合法,则由系统查找该图书的借阅者信息,然后删除相对应的借阅记录,并更新借阅者信息。13.查询借阅信息查询借阅信息的过程为:图书管理员选择菜单项“查询借阅信息”,弹出QueryDialog对话框,图书管理员在该对话框中输入要查询的借阅证号,然后由系统查询数据库,以获得该借阅者信息,并通过显示借阅信息用例显示该借阅者所借阅的所有图书信息。14.显示借阅信息显示借阅信息的过程为:当BorrowDialog、ReturnDialog和QueryDialog对话框调用Borrower类的GetTitleInfo()方法时,系统获取该借阅者信息,然后根据借阅信息找到所借阅的图书,并进一步获取所借阅图书对应的书目信息,最后由相应的对话框负责显示。15.超期处理超期处理的前提条件是:当发生借书或还书时,首先由系统找到借阅者的信息,然后调用超期处理以检验该借阅者是否有超期的借阅信息。超期处理的过程为:获取借阅者的所有借阅信息,查询数据库以获取借阅信息的日期,然后由系统与当时日期比较,以验证是否超过了规定的借阅期限,若超过规定的借阅时间,则显示超期的图书信息,以提示图书管理员。16.管理员登录管理员登录的过程为:当图书管理员或系统管理员运行系统时,系统将首先运行Login对话框,然后又图书管理员或系统管理员输入用户名和密码,并提交到系统,后来由系统查询数据库以完成对用户身份的验证,当通过验证后,将根据登录的用户是系统管理员还是图书管理员,以打开相应的对话框。17.修改密码修改密码的过程为:图书管理员选择菜单项“修改密码”,弹出ModifyDialog对话框,图书管理员在该对话框中输入旧密码和新密码,并提交,然后由系统查询数据库,以验证当前用户的密码是否与输入的旧密码相同,若相同,则将密码更改为新的密码,并提示图书管理员修改密码成功。在图中出现了两个Librarian对象,它们的含义是不相同的,一个代表系统的参与者,它不包含在系统中,另一个是为了实现系统的安全性,在系统中创建的参与者对象的映像。

09:38111Thanks!序列图由哪几个元素组成?序列图常用的有几种消息?交互框中使用“alt”“opt”“par”分别代表什么意思?一般什么情况下使用序列图建模?09:38112回顾UML-状态图能够理解状态图对系统交互建模能够根据实体处于不同的状态建模09:38114能力目标09:38115目录建立状态图的步骤4.状态图的组成3.实体的状态2.状态图概述1.09:38116状态图(StatechartDiagram)状态图主要用于可视化的描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。一个状态机可以被一个状态图描述,对于一个比较复杂的状态机,也可用多张状态图来表示。(状态机“StateMachine”

是一种数学模型,它描述了一个系统或对象在不同时间内所处的状态,以及在不同状态下如何响应输入和事件。)09:381171概述先举个栗子:09:38118状态是指在对象(状态从属于一个特定的对象)的生命期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。下面一些例子形象地说明了对象和状态。(1)支票(对象)已付(状态)。(2)汽车(对象)已启动(状态)。(3)小王(对象)睡着了(状态)。(4)小红(对象)未婚(状态)。对象在任何时候都会处于某种状态中,所有对象都有状态对象所处的状态决定了它如何响应所检测到的事件或所接收的消息。A.清醒-(被批评)-生气B.醉酒-(被批评)-无反应通常,事件使对象从一个状态转向另一个状态(即状态的转换)09:381192首先看看什么是状态?(1)状态state初态:是状态图的起始点,用实心圆表示,一个状态图只能有一个初态。终态:是状态图的终点,用套有一个小

温馨提示

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

评论

0/150

提交评论