收藏 分销(赏)

《软件建模技术》课件.ppt

上传人:s4****5z 文档编号:14157702 上传时间:2026-07-02 格式:PPT 页数:332 大小:6.37MB 下载积分:10 金币
下载 相关 举报
《软件建模技术》课件.ppt_第1页
第1页 / 共332页
《软件建模技术》课件.ppt_第2页
第2页 / 共332页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件建模技术,讲,义,云南大学软件学院 梁志,宏博士,软件建模概论,1.1,模型和建模,1.2,软件,模型,1.3,面向对象方法基础,第,1,章,1.1,模型与建模,模型(,Model,)是,对现实系统的简化或,模拟,,,是,对现实系统本质特征的一种简化、直观、类比和抽象的描述,。,建模,(,Modelling,),是,对现实系统进行适当的过滤,用适当的表现规则描绘,出,简洁,的,模型。,模,型,是理解、分析、开发或改造现实系统的一种常用手段,。,建模包含两,个问题:,怎么建,?,“模”,是,什么?,1,、怎么建?,依赖于两个方面,方法论,建模方向,筷子,勺子和盘子的相同点和不同点?,2,、,“,模,”,是什么?,模是,依赖于确定抽象角度下的场景模拟。,模就是“人”、“事”、“物”、“规则”的集合,静态,的事物(物),+,特定的条件(规则),+,特定的动作(参与者的驱动),=,特定的场景(事件,),一,个,游戏,:,每个,同学发四张纸条,在第一张纸条上写上,XXX,的名字,在第二张纸条上写上在什么地方,在第三张纸条上写上一个动作,在第四张纸条上写上一个物体,然后将这些纸条分开放在四个箱子里,再,随意,从,这,四个箱子里各取出一张纸条,就能组成很多非常搞笑的,句子,。,软件建模概论,1.1,模型和建模,1.2,软件模型,1.2.1,软件模型的概念,1.2.2,软件模型的内容,1.3,面向对象方法基础,第,1,章,1.2,软件模型,1.2.1,软件模型的概念,软件模型,:,通过一定的形式和方法用来描述软件的模型。,软件建模:建立软件模型的过程被称为软件建模。,可行性研究与计划,需求分析,设计,编码,运行维护,测试,定义,阶段,开,发,阶,段,维护阶段,瀑布模型,业务模型,也叫领域模型,描述软件所要服,务的业务领域的业务状况和业务,关系。,1.2.2,软件模型的内容,需求模型,描述软件向用户所能够提供的,外在特性,包括软件的目标、,功能、性能等。,业务模型,1.2.2,软件模型的内容,1.2.2,软件模型的内容,软件的实现方案。,包括软件的实现结构,构件,,文件等。,1.2.2,软件模型的内容,1.2.2,软件模型的内容,软件建模概论,第,1,章,1.3,面向对象,的方法,基础,1.1,模型和建模,1.2,软件模型,1.3,面向对象方法基础,1.3.1,面向过程还是面向对象,1.3.2,抽象,Abstraction,1.3.3,层次,Arrangement,1.3.4,继承,Inheritance,1.3.5,耦合,Couple,1.3.6,运作,Moving,一,、看世界,1,、过程论与对象论的,共识,不论,是,过程论,还是,对象论,,,都承认一点,那就是程序世界本质上只有两种东西,数据和逻辑。数据天性喜静,构成了程序世界的本体和状态;逻辑天性好动,作用于数据,推动程序世界的演进和发展。尽管上述观点是统一的,但是在数据和逻辑的存在形式和演进形式上,,,过程,论,还是,对象,论,的,观点截然不同。,2,、,过程论,过程论,数据,和逻辑是分离的、独立的,各自形成程序世界的一个方面(,Aspect,)。所谓世界的演变,是在逻辑作用下,数据做改变的一个过程。这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。过程是相对稳定的、明确的和预定义的,小过程组合成大过程,大过程还可以组合成更大的过程。所以,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。,1.3.1,面向过程还是面向对象,3,、,对象,论,对象论,认为数据,和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做,对象(,Object,),,世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。所谓世界的演进,是在某个“初始作用力”作用下,对象间通过,相,互,调用,而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。世界就是由各种对象组成,然后在初始作用力下,对象间的交互完成了世界的演进,。,二,、,一道智力题引发的,思考,甲,、乙、丙三人住店,一间房,30,元,于是,每人,10,元,共计给店老板,30,元,住进一间房。后来店老板发现弄错了,房价应该是,25,元,于是给小二,5,元让小二退给房客。小二黑心,贪污了,2,元,退给甲乙丙每人,1,元。这样房客每人付了,10-1=9,元,三九,27,,加上小二贪污的,2,元,共,29,元,问那,1,元哪里去了,?,1.3.1,面向过程还是面向对象,过程论看待,这件事情,对象论看待,这件事情,对象的概念,对象,是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。对象,既可以描述,客观存在的事物,,也可以表示由人主观构造的,抽象观念,。,汽车,灯泡,扳手,农村,汽车,客观世界:,(客观事物),主观世界:,(概念),软件世界:,(对象),灯泡,扳手,农村,共产主义,共产主义,软件中对象由一组属性和操作组成。,软件,中的对象及性质,雇员,姓名,身份,雇佣日期,雇员,(),雇员对象,封装,是把某些可以独立存在的内容封裹起来,构成一个整体,并把内部细节隐藏起来,仅向外部提供可以提供的外在描述。,对象,封装,是把对象的属性和操作结合成一个独立的系统单位,并隐藏对象的内部细节,向外部提供对象的接口。,对象的封装,在类的外部不能访问,在类的外部可以访问,私有,公有,类,封装,三、总结,过程,论和对象论是两种看世界的观点,没有孰对孰错、孰好孰坏之分。,过程,论和对象论不是一种你死我活的绝对对立,而是一种辩证统一的对立,两者相互渗透、在一定情况下可以相互转化,是一种“你中有我、我中有你”的对立。,过程,论相对确定,有利于明晰演进的方向,但当事物过于庞大繁杂,将很难理清思路。,对象,论相对不确定,但是因为以对象为基本元素,即使很庞大的事物,也可以很好地分离关注,在研究一个对象的交互时,只需要关心与其相关的少数几个对象,不用总是关注整个流程和世界。,1.3.1,面向过程还是面向对象,“,金、木、水、火、土元素,构成宇宙万物,并作为各种自然现象变化之基础,五行说”,1.3.2,抽象,Abstraction,一,、类是怎么来的,和,真实世界中构成和衍生方式不同,程序世界中,最重要的衍生方式是,抽象,。,类(,Class,),用来,描述具有相同性质的一组,对象,。,1.3.2,抽象,Abstraction,1.3.2,抽象,Abstraction,二、为什么要有类,类,可以帮助我们方便地认识和定义世界中的对象。上天只给了这个世界各种对象,但我们用抽象去更好地认识世界,。,“,道生一,一生二,二生三,三生万物,老子”,关键,在于:抽象是有层次的。,1.3.3,层次,Arrangement,世界是一棵树。,这是一棵单根树,最顶层“本体”为唯一的根,最下层叶子节点为基本对象。一切中间节点都为类。,越往上的类抽象层次越高,具体度越低,其内涵越小,外延越大;越往下的类抽象层次越低,具体度越高,其内涵越大,外延越小。,抽象层次树不是从根部向下长的,而是从叶子节点向上归纳生成的。,某一个叶子节点所代表的对象可以归入所有其祖先结点所代表的类,从,树中我们可以认识到,一,、,原来,是先有儿子才有父亲,泛化(,Generalization,)优于继承(,Inheritance,)的概念。,从哲学和认识论角度来说,是先有对象,然后有类;,先有子类,然后有父类,是一种自底向上形成的体系。,继承是自顶向下的。,1.3.4,继承,Inheritance,二、继承的作用,我们需要继承这个概念,本质上是因为对象论中世界的运作往往是在某一抽象层次上进行的,而不是在最低的基本对象层次上。,继承的哲学作用就是:规定了抽象与具体之间的可映射性。,1.3.4,继承,Inheritance,三、,开放,-,关闭,开放,-,关闭原则(,OCP,):软件实体应该,可以扩展,,但,不可以修改,。,“可以扩展”四字从哲学上其实是要我们在设计和开发软件时提高抽象层次,不要总在具体对象层面上进行处理。,“不可以修改”,因为如果随便乱改,那就天下大乱了。软件世界中也会发生这种牵一发而动全身的问题。,1.3.4,继承,Inheritance,四,、,儿子,你要能完全替代老爹才,行,里,氏代换原则(,LSP,):子类型应该能代替掉其父类型,且代替后程序运行情况不会,错乱,Barbara,Liskov,。,凡是系统中有继承关系的地方,子类型一定能代替父类型,而且替换后程序运行要正常。换言之,继承是一种严格的“,IS-A”,关系,也是“一般,和特殊”的哲学原理在程序,世界中的体现。,1.3.4,继承,Inheritance,“,一只蝴蝶在巴西轻拍翅膀,可以导致一个月后德克萨斯州的一场龙卷风,蝴蝶效应,”。,1.3.5,耦合,Couple,形形色色的,耦合,泛化,耦合,(,Generalization Couple,):由于泛化(继承)关系的存在,在两个有祖孙、父子关系的类间形成的一种逻辑关联。,包含耦合:这种耦合出现的哲学基础是,对象本身固有的包含关系,在进行事物抽象时被同时抽象到了类中。,聚合,(,Aggregation,):一种弱的拥有关系,体现,A,对象可以包含,B,对象,但,B,对象不是,A,对象的一部分。,组合,(,Composition,):一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体具有一样的生命周期。,依赖,(,Dependency,):由于逻辑上相互协作可能,而形成的一种关系。,1.3.5,耦合,Couple,耦合示例,1.3.5,耦合,Couple,泛化,聚合,组合,依赖,“,运动是绝对的,牛顿”,1.3.6,运作,Moving,一、,世界本没有,类,对象论认为:世界的演进,是而且只是各种对象通过互相调用其他对象的公开服务而完成交互。,时刻铭记,参与真正世界运行的,只有对象,没有类!对象在世界中,类在我们心中!,1.3.6,运作,Moving,二,、程序,世界,大同的和谐世界,程序,世界与现实世界第一点区别:现实世界的,依赖,以对象为单位,程序世界的,依赖,以类为单位。,现实,世界,中的,依赖是以对象为单位的,这种依赖关系不会随着泛化过程而被泛化到类里面去。,程序世界,中的,依赖是以类为单位的,这种依赖关系会随着泛化过程而被泛化到类里面去。并且,只要两个类建立了依赖,那么两个类之间的所有对象都两两依赖了。,1.3.6,运作,Moving,两个世界中依赖的区别,1.3.6,运作,Moving,三,、,程序世界,封建的专制世界,程序,世界里的对象没有选择权。,程序世界里的对象不认识对象。,有奶就是娘,不,以其他对象实体本身为交互准则,而以其他对象的行为作为交互准则,与一个对象是否进行交互纯粹是从其行为判断,而不对对象本体有任何概念。,1.3.6,运作,Moving,四、,接口横空出世,接口,(,Interface,):对象行为的抽象。,类与接口的不同点有以下几点,:,抽象,范畴不同。类是对象“体征”的抽象,接口是对象行为的抽象。,抽象,动机不同。抽象出类是为了帮助记忆、认识世界,抽象出接口是为了实现低耦合交互。,关注,不同。类关注共同的体征,接口关注用来交互的行为。,存在,范畴不同。类存在于抽象层次树上,接口存在于接口网。,应用,范畴不同。类应用于结构范畴,是静态概念,接口应用于运作范畴,是动态概念。,1.3.6,运作,Moving,五,、依赖,是如何被倒置的,1,)没有接口的依赖。,依赖,是有方向的,客户类依赖于服务类,。,1.3.6,运作,Moving,2,)引入接口的依赖,接口的哲学意义:对客户类的保证,对服务类的约束。,3),服务类拥有,接口,5,)依赖倒置原则(,DIP,):客户类和服务类都应该依赖于抽象(接口),并且客户类拥有接口。,4),客户,类,拥有接口,程序世界是有这么一个统治者,他就是大名鼎鼎的“依赖注入容器,(DI)”,,也有人叫做“控制反转容器,(IOC)”,。,依赖,注入就是容器挑选符合接口的服务类为客户类提供,服务,一个符合,OO,原则的、低耦合的程序世界的运作形式是这样的:首先参与运作的本质只有对象,对象不直接依赖,没有选择权,互相不知道,而只知道各个接口。客户类制定接口,对象间通过接口交互,形成运作。世界的统治者依赖注入容器决定选择哪个服务类给客户类使用。,五,、神秘的统治者,面向对象,(,Object Oriented,,简称,OO,),方法将世界看作一个个相互独立的对象,相互之间并无因果关系,他们平时是“鸡犬之声相闻,老死不相往来”的,只有在某个外部力量的驱动下,对象之间才会依据某种规律相互传递信息。这些交互构成这个生动世界的一个“过程”,在没有外力的情况下,对象则保持着“静止”状态,。,从,微观的角度,,这些对象保持着一系列奇妙的特性,例如,对象有着坚硬的外壳,从外部看,除了它用来与外界交互信息的通道外,对象内部就是一个黑匣子,什么也看不到,这被称为,封装,;对象可以结合在一起形成新的对象,结合后的对象具有前两者特性的总和,称为,聚合,;对象可以繁育,产下的孩子拥有父辈全部的本领,称为,继承,;对象都是多面派,他会根据不同的要求展现其中的一个面,这就是,接口,;多个对象可能长着相同的脸,而这张脸背后却有不同的行为,这就是“,多态,”。从宏观的角度,对象是“短视”的,他不知道他身处的世界是怎么回事,也不知道他的行为是如何贡献给这一个世界的。它只知道它身边有一群与它有联系的小伙伴(称为,依赖,),并与伙伴之间保持着信息交流的关系(称为,耦合,),同时对象也是“自私”的,即便在伙伴之间,每个对象仍然顽固地保护着自己的领地,只允许其它人通过它打开的小小的窗口(称为,方法,)进行交流,从不会向对方敞开,心扉,。,小结,小结,1.1,模型和建模,1.2,软件,模型,1.2.1,软件模型的概念,1.2.2,软件模型的内容,1.3,面向对象方法基础,1.3.1,面向过程还是面向对象,1.3.2,抽象,Abstraction,1.3.3,层次,Arrangement,1.3.4,继承,Inheritance,1.3.5,耦合,Couple,1.3.6,运作,Moving,第,1,章 软件建模概论,重要知识点,2.1,关于,UML,2.2 UML,的构成,UML,概述,第,2,章,UML,概述,第,2,章,2.1,关于,UML,2.1,关于,UML,2.1.1 UML,的含义,2.1.2 UML,的发展历史,2.2,UML,构成,UML:Unified Modeling Language,统一建模语言,.,作用,:,建立软件模型,建模语言,:,提供交流的词汇和规,则,可视化,:,通过标准图符构成图形来描述模型,建模语言而非编程语言,通用标准,:,成为软件建模的标准语言,并且在其他领域也得到应用。,UML,是面向对象思想和方法的具体化和,符号化,。,2.1.1 UML,的含义,Whats UML,52,Booch 91,Booch 93,Unified Method 0.8,UML 1.0,OMT-2,OMT-1,OOSE,UML 0.9&0.91,95,年,96.1,到,96.10,97.12 OMG Standard,Other methods,向上,96.12,UML Partners,UML 1.1,UML 1.3,UML 1.4,UML 2.0,工业化,标准,集成,多种方法,2.1.2 UML,的发展历史,UML,的创建人,:,OMT,方法,Booch,方法,OOSE,方法,UML,Rumbaugh,Booch Jacobson,(,朗伯夫,)(,布奇,)(,雅各布森,),UML,之父,IBM Rational,部门首席科学家 现代语言学家,UML,概述,第,2,章,2.2 UML,的构成,2.1,关于,UML,2.2,UML,构成,2.2.1 UML,构成概述,2.2.2,UML,基本语言,要素,2.2.3,UML,的基本语义规则,2.2.4 UML,的通用机制,2.2.1 UML,构成概述,图,基本语言构成,语义,规则,要素,结构,:(,共,7,种,),行为,:(,消息,状态,),分组,:(,包,),注释,:(,注释,),关系,依赖,关联,泛化,实现,类图,对象图,用例图,顺序图,协作图,状态图,活动图,构件图,部署图,命名,范围,可见性,完整性,执行,规范说明,修饰,通用划分,扩展机制,(,版型,标记值,约束,),通用机制,图,基本语言构成,语义,规则,要素,结构,:(,共,7,种,),行为,:(,消息,状态,),分组,:(,包,),注释,:(,注释,),关系,依赖,关联,泛化,实现,类图,对象图,用例图,顺序图,协作图,状态图,活动图,构件图,部署图,命名,范围,可见性,完整性,执行,规范说明,修饰,通用划分,扩展机制,(,版型,标记值,约束,),通用机制,2.2.2 UML,基本语言要素,UML,语言的基本构成要素,包括四类,:,结构,:,语言的静态构成要素,有,7,种,行为,:,语言的动态构成要素,表示事物,的变化和状态,分组,:,对模型中事物分组组织的要素,注释,:,对模型中事物标注和解释,2.2.2.1,UML,语言中的要素,1,结构,结构,:,UML,语言的静构成要素,包括,7,种,:,类名,属性,操作,类,:,描述一组具有相同性质的对象。,接口,:,描述一个类或一个构件的服务操作集。,类名,属性,操作,主动类,:,对象至少拥有一个进程或线程,能启动控制活动,。,2.2.2.1,UML,语言中的要素,用例,:,描述一组动作序列,参与者通过它能够完成一定的功能。,构件,:,描述软件系统的构成件。,结点,:,一个基本计算单元,可以是一个物理结点,客户机或服务器,。,协作,:,描述一组动作序列的实现,。,1,结构,2.2.2.1,UML,语言中的要素,2,行为,行为,:,UML,的动态构成要素,包括,2,种,:,消息,:,一组对象之间为完成某一项任务而进行的一系列消息交换的行为说明。,状态,:,一个对象或一个交互在生命期内响应事件所经历的状态序列。,2.2.2.1,UML,语言中的要素,3,分组,分组,:,UML,对模型的组织要素。,包,:,UML,用包来对模型进行分组组织,一个包中包括若干个相关的模型元素。,2.2.2.1,UML,语言中的要素,4,注释,注释,:,解释,模型元素的要素。,注释,:,对模型中的元素进行解释。,2.2.2.1,UML,语言中的要素,关系,:,UML,定义的模型元素之间的关系,包括四种,:,关联,泛化,依赖,实现,2.2.2.2,UML,语言中,的,关系,1,关联,关联,:,本指事物之间存在的固有的牵连关系,在,UML,中,是对具有共同结构特征、关系和语义的对象或实例之间的链接描述。,表示:,一条实线,教师,学生,教学,2.2.2.2,UML,语言中,的,关系,2,泛化,超类,子类,家具,沙发,泛化,:,在,UML,中,描述事物之间的一般和特殊关系。特殊事物具有并继承一般事物的特性。,表示:,一条带空心三角形箭头的实箭线,特殊,一般,例子:,2.2.2.2,UML,语言中,的,关系,3,依赖,依赖,:,两个要素之间的因果关系,其中一个要素(独立要素)发生变化会影响另外一个要素(依赖要素)的语义。,表示,:一条虚箭线,教师,课表,授课,独立要素,(,因,),依赖要素,(果),依赖于,2.2.2.2,UML,语言中,的,关系,4,实现,实现,:,描述类元之间的语义关系,表示说明和实现间的关系。一种是接口与实现它的类和构件;另一种是用例和实现它们的协作。,表示,:一条带空心三角形箭头的虚箭线。,类,接口,用例,协作,实现,说明,2.2.2.2,UML,语言中,的,关系,UML,共定义了,9,种图,:,用例图,状态图,类图,活动图,对象图,构件图,顺序图,部署图,协作图,2.2.2.3 UML,中的,图,1,用例图,用例,:,是外部可见的一个系统功能单元。,作用,:,描述一组用例,参与者及其它们之间的关系,是外部用户所能观察到的系统功能的模型图。用于需求建模。,2.2.2.3 UML,中的,图,2,类图,作用,:,描述一组类之间的关系。用于对应用领域中的概念以及与系统实现有关的内部概念建模。,2.2.2.3 UML,中的,图,3,对象图,作用,:,描述一组对象之间的关系。它是对象类图的一个实例,表示在某一时刻系统对象的状态、对象之间关系的状态以及对象行为静态方面的状态。,2.2.2.3 UML,中的,图,4,顺序图,作用,:,描述一个交互,表示了对象之间传送消息的时间顺序。,2.2.2.3 UML,中的,图,5,协作图,作用,:,描述一个交互,强调对象与对象之间的消息传递。,2.2.2.3 UML,中的,图,6,状态图,作用,:,描述一个对象所处的状态及其变化,是一个类对象所可能经历的所有历程的模型图。,2.2.2.3 UML,中的,图,7,活动图,作用,:,描述执行算法的工作流程中涉及的活动,是对人类组织的现实世界中的工作流程建模。,2.2.2.3 UML,中的,图,8,构件图,作用,:,描述一组构件及其关系,用于为系统的构件建模。,2.2.2.3 UML,中的,图,9,部署图,作用,:,描述一组节点及其关系,允许评估分配结果和资源分配。节点是一组运行期间的系统资源,如计算机、数据库、设备或存储器。,2.2.2.3 UML,中的,图,图,基本语言要素,语义,规则,要素,结构,:,(,共,7,种,),行为,:,(,交互,状态机,),分组,:,(,包,),注释,:,(,注释,),关系,依赖,关联,泛化,实现,类图,对象图,用例图,顺序图,协作图,状态图,活动图,构件图,部署图,命名,范围,可视性,完整性,执行,规范说明,修饰,通用划分,扩展机制,(,版型,标记值,约束,),通用机制,2.2.3 UML,的基本语义规则,1),命名,规定对要素、关系、图命名。,例如:,S,tudent,为一个类的名字,2),范围,给一个名字特定含义的语境。,例如:属性,name:string,3),可视性,规定外界对该名字识别和使用的范围。,三种:,public:,公共,+,protected:,保护,#,private:,私用,-,2.2.3 UML,的基本语义规则,4),完整性,保证事物正确、一致地相互联系。,例如:一个对象出现在不同的图中时,如何保证其一致性。,5),执行,运行或模拟动态模型的含义是什么。,2.2.3 UML,的基本语义规则,图,基本语言要素,语义,规则,要素,结构,:,(,共,7,种,),行为,:,(,交互,状态机,),分组,:,(,包,),注释,:,(,注释,),关系,依赖,关联,泛化,实现,类图,对象图,用例图,顺序图,协作图,状态图,活动图,构件图,部署图,命名,范围,可视性,完整性,执行,规格说明,修饰,对应划分,扩展机制,(,版型,标记值,约束,),通用机制,2.2.4 UML,的通用机制,通用机制:通过与具有公共特征的模式取得一致性,使模型更为简单和协调。,UML,的通用机制有,:,规格说明,修饰,对应划分,扩展机制,2.2.4 UML,的通用机制,1),规格说明,UML,对每一个元素都有确定的图形表示符号,但对该图形符号还有语法、语义的文字说明。,例如:,Actor,:参与者,,UML,表示为:,2.2.4 UML,的通用机制,2),修饰,图形符号表示一个元素的主要特征,此外,可以加上修饰,表示该元素的特征。,例如:矩形框表示一个类,有类名,属性,操作等。但也可增加,“,可视性,”,等修饰。,可视性,2.2.4 UML,的通用机制,3),对应划分(通用划分),指元素,/,元素实例、接口,/,实现这样的划分方法。,抽象,-,实例,例如,类,-,对象,用例,-,具体用例,接口,-,实现,接口表示约定,实现表示对约定的实施,2.2.4 UML,的通用机制,4),扩展机制,UML,提供了一种绘制软件蓝图的标准语言,为了表示出各种领域的各种模型在不同时刻所有可能的细微差别,以受控方法扩展该语言。,版型,(,构造型,),用来扩展,UML,的词汇,增加语言元素;或者划分某一种元素的不同类型。,形式:,扩展描述,例,1,,把“成绩管理包”构造为“子系统”类型。,2.2.4 UML,的通用机制,4),扩展机制,例,2,,参与者是一个版型化的类,其版型为,Actor,。,2.2.4 UML,的通用机制,4),扩展机制,标记,-,值,标记,-,值用来规定模型元素的特性。通常把标记与值用等号相连,放在花括号中,放在模型元素后面。,形式:,标记,=,值,例如,,院校,=,云南大学,指出类“学生”是云南大学的学生。,学生,院校,=,云南大学,2.2.4 UML,的通用机制,4),扩展机制,约束,约束规定所约束的模型元素的某个条件或命题必须为真,否则模型无效。约束也用,描述。,形式:,约束条件,例如,,子集,指出领导属于成员的子集。,人,学会,*,成员,*,领导,*,子集,2.2.4 UML,的通用机制,【UML,支持工具,】,StarUML,(免费英文,UML,建模工具),Rational Rose,(商业版,IBM,开发,UML,建模工具),Visio,(商业版微软开发通用建模工具),Visual Paradigm for UML,(免费中文社群版),Archware,(免费自主研发,UML,建模工具),小结,2.1 UML,概述,2.1.1 UML,的含义,2.1.2 UML,的发展历史,2.1.3 UML,的特点,2.2 UML,构成,2.2.1,UML,构成,概述,2.2.2,UML,的基本语言要素,2.2.3,UML,的语义规则,2.2.4,UML,的通用机制,第,2,章,UML,概述,重要知识点,用例及用例图,3.1,参与者,3.2,用例,3.3,用例之间的关系,3.4,用例图,3.5,发现用例,第,3,章,用例,:,是外部可见的一个系统功能单元。,用例图,:,描述一组用例,参与者及其它们之间的关系,是外部用户所能观察到的系统功能的模型图。用于需求建模。,1.,参与者的概念,参与者,(,actor,),参与者是在系统之外与系统交互的某人或某事物,。,也被称为活动者。,3.1,参与者,2.,参与者的表示,参与者可以表示为下面三种形式。,图标形式,标签形式,装饰形式,3.,参与者的特点,参与者,位于边界,之外,需求场景:,小王,到银行去开户,向大厅经理询问了办理手续,填写了表单,交给柜台管理员,拿到了银行,存折,,在这个场景中,谁是参与者?,谁对系统有着明确的目标和要求并且主动发出动作?,系统是为谁服务的,?,参与者,可以非人,需求,场景:,每天自动统计网页访问量,生成统计报表,并发到管理员邮箱。这个需求的参与者是谁?,参与者,的三种类型,a.,人:客户,读者,库管员,b,.,设备:计算机,磁盘,读卡机等,c.,外部系统:上层系统等,1.,用例的概念,用例,(use case):,用例就是与参与者,(actor),交互的,并且给参与者提供可观测的有意义的结果的一系列活动的,集合,。,表示参与者与系统的一次交互过程。,网上支付,用例名,3.2,用例,2.,用例的表示,:,用例,用椭圆表示,后,置,条件,前置,条件,参与者,场景,1,场景,2,用例的作用:捕捉功能性需求。,3.,用例的特点,用例是相对独立的,不需要与其他用例交互而独自完成参与者的目的。,开户,存款,取款,转帐,填写取款单,取款人,储蓄系统,3.,用例的特点,用例描述用户提出的一些可见需求,对应一个具体的用户目标。,用例的执行结果对参与者来说是可观测的和有意义,的,。,参与者,后台监控,登陆系统,输入密码,参与者,3.,用例的特点,用例,必须由一个参与者,发起,,,不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个,用例,。,取款人,取款,吐钞,ATM,3.,用例的特点,用例反映系统与用户的一次交互过程,应该具有交互的信息的传递。,取款人,取款,帐户,,密码,金额,确认信息,账户余额,3.,用例的特点,用例是对系统功能的描述,属于需求建模。,a,通过读卡机,储户插入,ATM,卡,b,ATM,系统从卡上读取银行,ID,、帐号、并验证帐号。,c,储户键入密码,系统检验密码。,d,储户按确认键,输入取款金额。,e ATM,把帐号和取款金额传递给银行系统,取回帐户余额。,f ATM,输出现金,并显示帐户余额。,d ATM,记录事务到日志文件。,取款,用例的动态事件流,用例的特点,用例是相对独立的,不需要与其他用例交互而独自完成参与者的目的。,用例描述用户提出的一些可见需求,对应一个具体的用户目标。,用例的执行结果对参与者来说是可观测的和有意义的,。,用例必须由一个参与者发起,,,不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例,。,用例,反映系统与用户的一次交互过程,应该具有交互的信息的传递。,用例,是对系统功能的描述,属于需求建模。,总结,用例之间可以具有以下几种关系:,.,关联关系,.,泛化关系,.,包含关系,.,扩展关系,3.3,用例之间的关系,1,.,关联关系,参与者与用例之间是关联关系,表示参与者与用例之间具有使用、交互信息的关联。,2,.,泛化关系,参与者与参与者之间,用例与用例之间存在一般与特殊的关系,发出箭头的事物“,is a,”箭头指向的事物。,3,.,包含关系,两个用例之间,一个用例,(,基本用例,),的行为包含了另外一个用例,(,包含用例,),的行为。,包含关系用依赖关系的,构造型来表示,箭头指向被包含的用例。,4,.,扩展关系,扩展关系表示基本用例在扩展点要增加新的行为或功能,以扩展到新用例。,扩展关系用依赖关系的,构造型来表示,箭头指向被扩展的用例。,关系,解释,图,参与者与用例之间的关系,关联,表示参与者与用例之间的交互,通信途径。,(,关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。,),用例之间的关系,包含,箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。,include,扩展,箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。,参与者之间,或用例之间,的关系,泛化,发出箭头的事物“,is a”,箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。,extend,5.,用例图中的关系及解释,1.,用例图的作用,用例图,用来描述软件需求模型中的系统功能,通过一组用例可以描述软件系统能够给用户提供的功能。,用例图,可以作为整个系统开发过程中的开发依据,指导和驱动其他模型。,3.4,用例图,2.,用例图的形式,网上购物用例图,订货系统用例图,答辩系统用例图,自然语言,内容:,用例的目标,用例是怎么启动的,参与者和用例之间的消息是如何传送的,用例中除了主路径外,其它路径是什么,用例结束后的系统状态,其它需要描述的内容,3.5,用例的描述,模板,描述项,说明,用例名称,用例的用途,标识符,*,唯一,在文档别处可引用,用例描述,简单描述,参与者表,与此用例相关的参与者列表,优先级,数字越小,优先级越高。以此决定用例开发的顺序,状态,*,进行中、等待审查、通过审查或未通过审查,前置条件,条件列表,访问用例之前应得到满足,后置条件,条件列表,访问用例之后得到满足,基本操作流,描述用例中各项工作正常进行是用例工作方式,可选操作流,描述变更工作方式、出现异常所遵循的工作路径,被泛化用例表,该用例的特化用例列表,被包含用例表,该用例所包含用例列表,被扩展用例表,该用例的扩展用例列表,修改历史记录,*,关于用例的修改时间、原因和修改人信息等,问题,*,与此用例开发相关的问题列表,决策,*,关键决策列表,频率,*,参与者访问该用例的频率,取款用例描述实例,用例名称,取款,参与者表,储户,基本操作流,通过读卡机,储户插入,ATM,卡,ATM,系统从卡上读取银行,ID,、帐号、并验证帐号。,储户键入密码,系统检验密码。,储户按确认键,输入取款金额。,ATM,把帐号和取款金额传递给银行系统,取回确认信息和帐户余额。,ATM,输出现金,并显示帐户余额。,ATM,记录事务到日志文件。,开户,存款,取款,转帐,取款人,用例描述是对,用例(图示中的椭圆),的描述,不是对,用例图,的描述。,发现用例的一般方法:,找出系统外部参与者,确定系统边界和范围。,确定各参与者所期望的系统行为。,把这些系统行为命名为用例。,确定各用例之间的关系,(,泛化,包含,扩展,),。,绘制用例图。,编制用例说明。,对异常流程确定单独用例。,优化用例图,解决用例之间的冲突和重复。,3.6,发现用例,某学校网上选课系统的用例分析,管理员通过系统管理界面进入系统,建立本学期要开设的各种课程,将课程信息保存到系统中,并可以对课程进行改动和删除。,学生通过客户机浏览器进入系统,选择课程:可以查询课程,选择课程,支付课程费用。,案例:,找出系统外部参与者,确定系统边界和范围。,找出系统外部参与者,确定系统边界和范围。,确定各参与者所期望的系统行为。,管理员:增加课程,修改课程,删除课程,学生:查询课程,选择课程,网上付费,找出系统外部参与者,确定系统边界和范围。,确定各参与者所期望的系统行为。,把这些系统行为命名为用例。,找出系统外部参与者,确定系统边界和范围。,确定各参与者所期望的系统行为。,把这些系统行为命名为用例。,确定各用例之间的关系,(,泛化,包含,扩展,),。,绘制用例图。,编制用例说明。,用例名称,增加课程,参与者表,管理员,基本操作流,管理员选择进入管理界面,用例开始。,系统提示输入管理员密码。,管理员输入密码。,系统检验密码。,A1,:密码出错。,进入管理界面,系统显示当前所建立的全部课程信息。,管理员选择增加课程,管理员输入新课程信息。,系统验证是否与已有课程冲突。,:有冲突。,系统添加新课程,并提示添加成功。,系统回到管理主界面,显示所有课程,用例结束。,对异常流程确定单独用例。,优化用例图,解决用例之间的冲突和重复。,小结,3.1,参与者,3.1.1,参与者,的,概念,3.1.2,参与者的表示,3.1.3,参与者的特点,3.2,用例,3.2.1,用例的概念,3.2.2,用例的表示,3.2.3,用例的特点,3.3,用例之间的关系,3.3.1,关联关系,3.3.2,泛化关系,3.3.3,包含关系,3.3.4,扩展关系,3.4,用例图,3.4.1,用例图的作用,3.4.2,用例图的形式,3.5,用例的描述,3.6,发现,用例,第,3,章 用例和用例图,重要知识点,问题:,1,、下面说法错误的是,:,A,泛化表示一般和特殊的关系,B,用例之间存在泛化关系,C,参与者之间存在泛化关系,D,参与者和用例之间存在泛化关系,?,问题:,2,、下面说法错误的是,:,A,参与者是与所建立系统交互的人或物,B,参与者可以是人,也可以是其他系统,C,参与者是系统的一部分,是用例图的重要组成部分,D,参与者之间存在泛化关系,?,类图及对象图,4.1,类的定义,4.2,类之间的,关系,4.3,类图,4.4,对象图,4.5,几个特殊问题,第,4,章,类图及对象图,第,4,章,4.1,类的定义,4.1.1,类的概念,4.1.2,分析类,4.1.3,设计类,4.1.4,类,的,名称,4.1.5,类的属性,4.1.6,类
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服