资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,*,国防科技大学计算机学院,*,软件工程,Software Engineering,国防科技大学计算机学院,2004.07,齐治昌 教授, 谭庆平 教授, 宁洪 教授, 董威 博士,2024/11/27,1,第六章 面向对象的需求分析,面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它包含面向对象风格的图形语言机制以及用于指导需求分析的面向对象方法学。,面向对象的思想最初起源于1960年代中期的仿真程序设计语言,Simula67。1980,年代初出现的,Smalltalk,语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。,1990年代中后期诞生并迅速成熟的,UML(,统一建模语言,,Unified Modeling Language),是面向对象技术发展的一个重要里程碑。,UML,统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了能力丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。,2024/11/27,2,面向对象的需求分析,面向对象的概念与思想,UML,概述,基于,UML,的需求分析,以“家庭保安系统”为实例,介绍与需求分析相关的部分,UML,语言机制以及基于,UML,的面向对象的需求分析方法和过程。,第六章 面向对象的需求分析,2024/11/27,3,6.1,面向对象的概念与思想,客观世界中的应用问题都是由实体及其相互关系构成的。,可以将客观世界中与应用问题有关的实体及其属性抽象为问题空间中的对象。,为应用问题寻求软件解,是借助于计算机语言对其提供的实体施加某些动作,以动作的结果给出问题的解。汇编语言提供的实体是寄存器、存储单元;过程式程序设计语言提供的实体是变元、数组、记录、文件等。这些实体构成解空间中的对象。,问题空间中对象的行为是丰富多彩的,而软件解空间中对象的行为却是单调刻板的。例如,存储单元只能作存取操作,文件只能作读、写和定位操作。,只有借助于相当复杂的方法操纵解空间中的对象才能得到问题的软件解。这就是所谓的“语义断层”。,第六章 面向对象的需求分析,2024/11/27,4,面向对象的概念与思想,面向对象(,Object-Oriented,简称,OO),的需求分析方法通过提供对象、对象间消息传递等语言机制让分析人员在解空间中直接模拟问题空间中的对象及其行为,从而削减了语义断层,为需求建模活动提供了直观、自然的语言支持和方法学指导。,6.1面向对象的概念与思想,2024/11/27,5,面向对象的概念与思想,为了在解空间模拟现实问题并与人类的思维习惯相一致,,OO,方法学包容了以下核心概念:,(1) 对象,对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。例如,大型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于 该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞机的属性值(状态)。,6.1面向对象的概念与思想,2024/11/27,6,面向对象的概念与思想,(2)类。,类表示某些对象在属性和操作方面的共同特征。,例如,直升飞机、大型客机、轰炸机可归为飞行器类。,共同属性有:位置、速度和颜色等。,共同操作有:起飞、降落、加速和维修等。,6.1面向对象的概念与思想,2024/11/27,7,面向对象的概念与思想,(3)继承,类之间的继承关系是现实世界中遗传关系的模拟,它表示类之间的内在联系 以及对属性和操作的共享,即,子类可以沿用父类(被继承类)的某些特征。子类也可以具有自己独有的属性和操作。例如,飞行器、汽车和轮船可归于交通工具类,飞行器类可以继承交通工具类的某些属性和操作。,6.1面向对象的概念与思想,2024/11/27,8,面向对象的概念与思想,(4)聚集,现实世界普遍存在部分整体关系。,例如,飞机可由发动机、机身、机械控制系统、电子控制系统等构成。,部分整体关系在,OO,方法学中表示为类之间的聚集关系。在聚集关系下,部分类的对象是整体类对象的一个组成部分。,6.1面向对象的概念与思想,2024/11/27,9,面向对象的概念与思想,(5)消息,消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其它对象发送消息以请求服务,也可以响应其它对象传来的消息,完成自身固有的某些操作,从而服务于其它对象。,例如,直升飞机可以响应轮船的海难急救信号,起飞,加速,飞赴出事地点并实施救援作业。因为对象的操作主要用来响应外来消息并为其它对象提供服务,所以它们也被称作“外部服务”。,面向对象 = 对象 + 类 + 继承 + 聚集 + 消息。,6.1面向对象的概念与思想,2024/11/27,10,6.2,UML,概述,UML,的语言机制,UML,主要以,Booch,方法、,OMT,方法71和,OOSE,方法为基础,,,,同时也吸,收,收了其他面,向,向对象建模,方,方法的优点,,,,形成了一,种,种概念清晰,、,、表达能力,丰,丰富、适用,范,范围广泛的,面,面向对象的,标,标准建模语,言,言。,第六章 面,向,向对象的需,求,求分析,2022/12/31,11,UML,的语言机制,UML,通过图形化,的,的表示机制,从,从多个侧面,刻,刻画系统的,分,分析和设计,模,模型。,UML,共定义十种,视,视图,可分,四,四类:,(1) 用,例,例图(,use case diagram),从外部用,户,户的角度,描,描述系统,的,的功能,,并,并指出功,能,能的执行,者,者。,6.2,UML,概述,2022/12/31,12,UML,的语言机,制,制,(2)静,态,态图,类图(,class diagram)、,类图描述,系,系统的静,态,态结构,,类,类图的结,点,点表示系,统,统中的类,及,及其属性,和,和操作,,类,类图的边,表,表示类之,间,间的联系,,,,包括继,承,承、关联,、,、依赖、,聚,聚合等。,对象图(,object diagram),对象图是,类,类图的一,个,个实例。,它,它描述在,某,某种状态,下,下,或者,在,在某一时,间,间段系统,中,中活跃的,对,对象及其,关,关系。在,对,对象图中,,,,一个类,可,可以拥有,多,多个活跃,的,的对象实,例,例。,包图(,packagediagram),包图描述,系,系统的分,解,解,表示,包,包(,package),以及包之,间,间的关系,。,。,包由子包,及,及类组成,。,。,包之间的,关,关系包括,继,继承、构,成,成与依赖,关,关系。,6.2,UML,概述,2022/12/31,13,UML,的,语,语,言,言,机,机,制,制,(3),行,行,为,为,图,图,交,互,互,图,图(,interactivediagram),状,态,态,图,图(,statechartdiagram),活,动,动,图,图(,activitydiagram),它,们,们,从,从,不,不,同,同,的,的,侧,侧,面,面,刻,刻,画,画,系,系,统,统,的,的,动,动,态,态,行,行,为,为,。,。,交,互,互,图,图,描,描,述,述,对,对,象,象,之,之,间,间,的,的,消,消,息,息,传,传,递,递,。,。,它,它,又,又,可,可,分,分,为,为,顺,顺,序,序,图,图(,sequencediagram),与,合,合,作,作,图,图(,collaborationdiagram),两,种,种,形,形,式,式,。,。,顺,顺,序,序,图,图,强,强,调,调,对,对,象,象,之,之,间,间,消,消,息,息,发,发,送,送,的,的,时,时,间,间,序,序,。,。,合,合,作,作,图,图,更,更,强,强,调,调,对,对,象,象,间,间,的,的,动,动,态,态,协,协,作,作,关,关,系,系,。,。,合,作,作,图,图,也,也,可,可,通,通,过,过,消,消,息,息,序,序,号,号,来,来,表,表,示,示,消,消,息,息,传,传,递,递,的,的,时,时,间,间,序,序,,,,,只,只,不,不,过,过,这,这,种,种,表,表,示,示,不,不,如,如,顺,顺,序,序,图,图,那,那,样,样,直,直,观,观,。,。,6.2,UML,概述,2022/12/31,14,UML,的语言,机,机制,状态图,描,描述类,的,的对象,的,的动态,行,行为。,它包含,对,对象所,有,有可能,的,的状态,、,、活动,图,图描述,系,系统为,完,完成某,项,项功能,而,而执行,的,的操作,序,序列,,这,这些在,每,每个状,态,态下能,够,够响应,的,的事件,以,以及事,件,件发生,时,时的状,态,态迁移,与,与响应,动,动作。,操,操作序,列,列可以,并,并发和,同,同步。,活动图,中,中包含,控,控制流,和,和信息,流,流。控,制,制流表,示,示一个,操,操作完,成,成后对,其,其后续,操,操作的,触,触发,,信,信息流,则,则刻画,操,操作之,间,间的信,息,息交换,。,。,6.2,UML,概述,2022/12/31,15,UML,的语,言,言机,制,制,(4),实,实现,图,图(,implementationdiagram),描述,软,软件,系,系统,的,的实,现,现。,构件,图,图(,componentdiagram),描述,软,软件,实,实现,系,系统,中,中各,组,组成,部,部件,以,以及,它,它们,之,之间,的,的依,赖,赖关,系,系。,一个,部,部件,可,可能,是,是一,个,个资,源,源描,述,述文,件,件、,一,一个,二,二进,制,制文,件,件或,一,一个,可,可执,行,行文,件,件。,构件,图,图用,于,于理,解,解和,分,分析,软,软件,各,各部,分,分之,间,间的,相,相互,影,影响,程,程度,。,。,6.2,UML,概述,2022/12/31,16,UML,的语,言,言机,制,制,部署,图,图(,deploymentdiagram),描述,软,软件,系,系统,运,运行,环,环境,的,的硬,件,件及,网,网络,的,的物,理,理体,系,系结,构,构。,结点,表,表示,实,实际,的,的计,算,算机,和,和设,备,备,,边,边表,示,示结,点,点之,间,间的,物,物理,连,连接,关,关系,也,可,可显,示,示连,接,接的,类,类型,及,及结,点,点之,间,间的,依,依赖,性,性。,在结,点,点内,部,部,,可,可以,放,放置,可,可执,行,行部,件,件和,对,对象,以,以显,示,示结,点,点与,可,可执,行,行软,件,件单,元,元之,间,间的,对,对应,关,关系,。,。,部署,图,图对,于,于软,件,件安,装,装工,程,程师,有,有重,要,要的,参,参考,价,价值,。,。,6.2,UML,概述,2022/12/31,17,例: 课,程,程注册管,理,理系统的,用,用例图,课表维护,、,、个人课,程,程规划和,选,选课学生,花,花名册查,询,询。教务,管,管理人员,使,使用“课,表,表维护”,用,用例,设,置,置或修改,课,课程属性,(,(课程的,时,时间、地,点,点、上课,老,老师等),,,,增删课,程,程;,学生使用,“,“个人课,程,程规划”,用,用例选课,、,、修改自,己,己的个人,课,课表,收,费,费管理系,统,统根据每,个,个学生的,选,选课情况,计,计算其应,缴,缴费用;,老师使用,“,“选课学,生,生花名册,查,查询”用,例,例获取选,定,定其所开,课,课程的学,生,生花名册,。,。,6.2,UML,概述,2022/12/31,18,课程注,册,册管理,系,系统的,用,用例图,图6.2表示,课,课程注,册,册管理,系,系统包,括,括:,“教务,管,管理人,员,员”、,“,“学生,”,”、“,老,老师”,、,、“课,程,程”、,“,“课程,设,设置”,、,、“课,程,程注册,表,表”、,“,“课程,注,注册管,理,理器”,、,、“课,程,程管理,器,器”八,个,个类。,前三个,类,类为一,般,般化的,“,“用户,”,”类的,子,子类。,一门“,课,课程”,可,可由一,到,到多个,“,“课程,设,设置”,构,构成,,例,例如,,对,对于全,校,校性的,公,公共基,础,础课,,由,由于选,修,修的学,生,生太多,,,,必须,安,安排不,同,同的老,师,师、不,同,同的教,室,室或者,不,不同的,时,时间段,。,。,“学生,”,”、“,老,老师”,与,与“课,程,程设置,”,”之间,,,,“课,程,程注册,表,表”与,“,“课程,注,注册管,理,理器”,之,之间,,以,以及“,课,课程注,册,册管理,器,器”与,“,“课程,”,”之间,存,存在着,关,关联关,系,系。,6.2,UML,概述,2022/12/31,19,课程注,册,册管理,系,系统的,类,类图,6.2,UML,概述,2022/12/31,20,用,UML,顺序图表示,“,“个人课程,规,规划”用,例,例中的学生,选,选课过程,6.2,UML,概述,2022/12/31,21,用,UML,协作图表示,“,“个人课程,规,规划”用,例,例中的学生,选,选课过程,6.2,UML,概述,2022/12/31,22,UML,状,态,态,图,图,示,示,例,例,“,课,课,程,程,设,设,置,置,”,”,对,对,象,象,的,的,状,状,态,态,图,图,表,表,示,示,,,,,每,每,个,个,“,“,课,课,程,程,设,设,置,置,”,”,最,最,多,多,只,只,能,能,容,容,纳,纳50,个,个,选,选,课,课,学,学,生,生,。,。,6.2,UML,概,述,述,2022/12/31,23,UML,的,语,语,言,言,机,机,制,制,本,章,章,的,的,后,后,续,续,章,章,节,节,将,将,结,结,合,合,需,需,求,求,分,分,析,析,过,过,程,程,介,介,绍,绍,UML,的,用,用,例,例,图,图,、,、,包,包,图,图,、,、,类,类,图,图,和,和,活,活,动,动,图,图,第,十,十,章,章,将,将,结,结,合,合,软,软,件,件,设,设,计,计,过,过,程,程,介,介,绍,绍,顺,顺,序,序,图,图,、,、,协,协,作,作,图,图,、,、,状,状,态,态,图,图,和,和,活,活,动,动,图,图,。,。,6.2,UML,概,述,述,2022/12/31,24,基,于,于,UML,的,软,软,件,件,开,开,发,发,过,过,程,程,虽,然,然,UML,是,独,独,立,立,于,于,软,软,件,件,开,开,发,发,过,过,程,程,的,的,,,,,即,即,,,,,UML,能,够,够,在,在,几,几,乎,乎,任,任,何,何,一,一,种,种,软,软,件,件,开,开,发,发,过,过,程,程,中,中,使,使,用,用,,,,,但,但,是,是,,,,,熟,熟,悉,悉,一,一,种,种,有,有,代,代,表,表,性,性,的,的,面,面,向,向,对,对,象,象,的,的,软,软,件,件,开,开,发,发,过,过,程,程,,,,,并,并,知,知,悉,悉,UML,各语,言,言要,素,素在,过,过程,中,中不,同,同阶,段,段的,应,应用,,,,对,于,于理,解,解,UML,将大,有,有裨,益,益。,图6.6,表,表示,了,了一,种,种迭,代,代的,渐,渐进,式,式软,件,件开,发,发过,程,程,,它,它包,含,含四,个,个阶,段,段:,初,初启,,,,细,化,化,,构,构造,和,和移,交,交。,6.2,UML,概述,2022/12/31,25,面向,对,对象,的,的迭,代,代、,渐,渐进,式,式软,件,件开,发,发过,程,程,6.2,UML,概述,2022/12/31,26,1,初,初启,在初,启,启阶,段,段,,软,软件,项,项目,的,的发,起,起人,确,确定,项,项目,的,的主,要,要目,标,标和,范,范围,,,,并,进,进行,初,初步,的,的可,行,行性,分,分析,和,和经,济,济效,益,益分,析,析。,6.2,UML,概述,2022/12/31,27,2 细,化,化,细化阶,段,段的开,始,始标志,着,着项目,的,的正式,确,确立。,软,软件项,目,目组在,此,此阶段,需,需要完,成,成以下,工,工作:,(1),初,初步的,需,需求分,析,析。采,用,用,UML,的用例,描,描述目,标,标软件,系,系统所,有,有比较,重,重要、,比,比较有,风,风险的,用,用例,,利,利用用,例,例图表,示,示参与,者,者与用,例,例、以,及,及用例,与,与用例,之,之间的,关,关系。,采,采用,UML,的类图,表,表示目,标,标软件,系,系统所,基,基于的,应,应用领,域,域中的,概,概念及,概,概念之,间,间的关,系,系。这,些,些相互,关,关联的,概,概念构,成,成领域,模,模型。,领,领域模,型,型一方,面,面可以,帮,帮助软,件,件项目,组,组理解,业,业务背,景,景,与,业,业务专,家,家进行,有,有效沟,通,通;另,一,一方面,,,,随着,软,软件开,发,发阶段,的,的不断,推,推进,,领,领域模,型,型将成,为,为软件,结,结构的,主,主要基,础,础。如,果,果领域,中,中含有,明,明显的,流,流程处,理,理成分,,,,可以,考,考虑利,用,用,UML,的活动,图,图来刻,画,画领域,中,中的工,作,作流,,并,并标识,业,业务流,程,程中的,并,并发、,同,同步等,特,特征。,6.2,UML,概述,2022/12/31,28,细化,(2),初,初步的,高,高层设,计,计。如,果,果目标,软,软件系,统,统的规,模,模比较,庞,庞大,,那,那么,,经,经初步,需,需求分,析,析获得,的,的用例,、,、类将,会,会非常,多,多。此,时,时,可,以,以考虑,根,根据用,例,例、类,在,在业务,领,领域中,的,的关系,,,,或者,根,根据业,务,务领域,中,中某种,有,有意义,的,的分类,方,方法将,整,整个软,件,件系统,划,划分为,若,若干个,包,包,利,用,用,UML,的包图刻画,这,这些包及其,关,关系。如此,,,,用例、用,例,例图、类、,类,类图将依据,包,包的划分方,法,法分属于不,同,同的包,从,而,而给出整个,目,目标软件系,统,统的高层结,构,构。,6.2,UML,概述,2022/12/31,29,细化,(3)部分,的,的详细设计,。,。对于系统,中,中某些重要,的,的、或者风,险,险比较高的,用,用例,可以,采,采用交互图,进,进一步探讨,其,其内部实现,过,过程。同样,,,,对于系统,中,中的关键类,,,,也可以详,细,细研究其属,性,性和操作,,并,并在,UML,类图中加以,表,表现。因此,,,,这里倡导,的,的软件开发,过,过程并不在,时,时间轴上严,格,格分划分析,与,与设计、总,体,体设计与详,细,细设计,而,是,是根据软件,元,元素(用例,、,、类等)的,重,重要性和风,险,险程度确立,优,优先细化原,则,则,建议软,件,件项目组优,先,先考虑重要,的,的、比较有,风,风险的用例,和,和类,不能,将,将风险的识,别,别和解决延,迟,迟到细化阶,段,段之后。,6.2,UML,概述,2022/12/31,30,(4),部,部分的,原,原型构造,。,。在许多,情,情形下,,针,针对某些,复,复杂的用,例,例构造可,实,实际运行,的,的原型是,解,解决技术,风,风险、让,用,用户帮助,软,软件项目,组,组确认用,户,户需求的,最,最有效方,法,法。为了,构,构造原型,,,,需要针,对,对用例生,成,成详尽的,交,交互图,,对,对所有相,关,关类给出,明,明确的属,性,性和操作,定,定义。,在细化阶,段,段可能需,要,要使用的,UML,语言机制,包,包括:描,述,述用户需,求,求的用例,及,及用例图,,,,表示领,域,域概念模,型,型的类图,,,,表示业,务,务流程处,理,理的活动,图,图,表示,系,系统高层,结,结构的包,图,图,表示,用,用例内部,实,实现过程,的,的交互图,等,等。,细化阶段,的,的结束条,件,件是,所,有,有主要的,用,用户需求,已,已通过用,例,例和用例,图,图得以描,述,述;所有,重,重要的风,险,险已被标,识,识,并对,风,风险应对,措,措施了如,指,指掌;能,够,够比较精,确,确地估算,实,实现每一,用,用例的时,间,间。,细化,6.2,UML,概述,2022/12/31,31,3,构,构,造,造,在,构,构,造,造,阶,阶,段,段,,,,,开,开,发,发,人,人,员,员,通,通,过,过,一,一,系,系,列,列,的,的,迭,迭,代,代,完,完,成,成,对,对,所,所,有,有,用,用,例,例,的,的,软,软,件,件,实,实,现,现,工,工,作,作,,,,,在,在,每,每,次,次,迭,迭,代,代,中,中,实,实,现,现,一,一,部,部,分,分,用,用,例,例,。,。,以,迭,迭,代,代,方,方,式,式,实,实,现,现,所,所,有,有,用,用,例,例,的,的,好,好,处,处,在,在,于,于,,,,,用,用,户,户,可,可,以,以,及,及,早,早,参,参,与,与,对,对,已,已,实,实,现,现,用,用,例,例,的,的,实,实,际,际,评,评,价,价,,,,,提,提,出,出,改,改,进,进,意,意,见,见,,,,,降,降,低,低,大,大,型,型,软,软,件,件,系,系,统,统,的,的,开,开,发,发,风,风,险,险,。,。,6.2,UML,概,述,述,2022/12/31,32,构,造,造,在,实,实,际,际,开,开,始,始,构,构,造,造,软,软,件,件,系,系,统,统,之,之,前,前,,,,,有,有,必,必,要,要,预,预,先,先,制,制,定,定,迭,迭,代,代,计,计,划,划,。,。,计,计,划,划,的,的,制,制,定,定,需,需,遵,遵,循,循,两,两,项,项,原,原,则,则,:,:,(1,),),用,用,户,户,认,认,为,为,业,业,务,务,价,价,值,值,较,较,大,大,的,的,用,用,例,例,应,应,优,优,先,先,安,安,排,排,。,。,(2,),),开,开,发,发,人,人,员,员,评,评,估,估,后,后,认,认,为,为,开,开,发,发,风,风,险,险,较,较,高,高,的,的,用,用,例,例,应,应,优,优,先,先,安,安,排,排,。,。,在迭代,计,计划中,,,,要确,定,定迭代,次,次数、,每,每次迭,代,代所需,时,时间,,以,以及每,次,次迭代,中,中应完,成,成(或,部,部分完,成,成)的,用,用例。,每次迭,代,代过程,由,由针对,用,用例的,分,分析、,设,设计、,编,编码、,测,测试、,集,集成共5个子,阶,阶段构,成,成。在,集,集成之,后,后,用,户,户可以,对,对用例,的,的实现,效,效果进,行,行评价,,,,提出,修,修改意,见,见。这,些,些修改,意,意见可,以,以在本,次,次迭代,过,过程中,立,立即实,现,现,也,可,可以在,下,下次迭,代,代中再,予,予考虑,。,。,6.2,UML,概述,2022/12/31,33,构造,构造过,程,程中,,需,需要使,用,用,UML,的交互,图,图来设,计,计用例,的,的实现,方,方法。,为,为了与,设,设计得,出,出的交,互,互图协,调,调一致,,,,需要,修,修改或,精,精化在,细,细化阶,段,段绘制,的,的作为,领,领域模,型,型的类,图,图,增,加,加一些,为,为软件,实,实现所,必,必需的,类,类、类,的,的属性,或,或方法,。,。如果,一,一个类,有,有复杂,的,的生命,周,周期行,为,为,或,者,者类的,对,对象在,生,生命周,期,期内需,要,要对各,种,种外部,事,事件的,刺,刺激作,出,出反应,,,,应考,虑,虑用,UML,状态,图,图来,表,表述,类,类的,对,对象,的,的行,为,为。,UML,的活,动,动图,可,可以,在,在构,造,造阶,段,段用,来,来表,示,示复,杂,杂的,算,算法,过,过程,和,和有,多,多个,对,对象,参,参与,的,的业,务,务处,理,理过,程,程。,活,活动,图,图尤,其,其适,用,用于,表,表示,过,过程,中,中的,并,并发,和,和同,步,步。,在构,造,造阶,段,段的,每,每次,迭,迭代,过,过程,中,中,,可,可以,对,对细,化,化阶,段,段绘,出,出的,包,包图,进,进行,修,修改,或,或精,化,化,,以,以便,包,包图,切,切实,反,反映,目,目标,软,软件,系,系统,最,最顶,层,层的,结,结构,划,划分,状,状况,。,。,6.2,UML,概述,2022/12/31,34,构造,阶,阶段,可,可能,使,使用,的,的,UML,语言,机,机制,(1,),)用,例,例及,用,用例,图,图。,它,它们,是,是开,发,发人,员,员在,构,构造,阶,阶段,进,进行,分,分析,和,和设,计,计的,基,基础,。,。,(2,),)类,图,图。,在,在领,域,域概,念,念模,型,型的,基,基础,上,上引,进,进为,软,软件,实,实现,所,所必,需,需的,类,类、,属,属性,和,和方,法,法。,(3,),)交,互,互图,:,:表,示,示针,对,对用,例,例设,计,计的,软,软件,实,实现,方,方法,。,。,(4,),)状,态,态图,:,:表,示,示类,的,的对,象,象的,状,状态,事,件,件,响,响应,行,行为,。,。,(5,),)活,动,动图,:,:表,示,示复,杂,杂的,算,算法,过,过程,,,,尤,其,其是,过,过程,中,中的,并,并发,和,和同,步,步。,(6,),)包,图,图:,表,表示,目,目标,软,软件,系,系统,的,的顶,层,层结,构,构。,(7,),)构,件,件图,。,。,(8,),)部,署,署图,。,。,6.2,UML,概述,2022/12/31,35,4 移交,在移交阶,段,段,开发,人,人员对构,造,造阶段获,得,得的软件,系,系统在用,户,户实际工,作,作环境(,或,或接近实,际,际的模拟,环,环境)中,试,试运行,,根,根据用户,的,的修改意,见,见进行少,量,量调整。,6.2,UML,概述,2022/12/31,36,6.3,基于,UML,的需求分,析,析,初步业务,需,需求描述,形,形成后,,基,基于,UML,的需求分,析,析分为以,下,下步骤:,(1)利,用,用用例及,用,用例图表,示,示需求:,从,从业务需,求,求描述出,发,发获取执,行,行者和场,景,景;对场,景,景进行汇,总,总、分类,、,、抽象,,形,形成用例,;,;确定执,行,行者与用,例,例、用例,与,与用例图,之,之间的关,系,系,生成,用,用例图。,(2)利,用,用包图及,类,类图表示,目,目标软件,系,系统的总,体,体框架结,构,构:,根据领域,知,知识、业,务,务需求和,工,工作经验,,,,设计目,标,标软件系,统,统的顶层,架,架构;,从业务需,求,求描述中,提,提取“关,键,键概念”,,,,形成领,域,域概念模,型,型;,从概念模,型,型和用例,出,出发,研,究,究系统中,主,主要的类,之,之间的关,系,系,生成,类,类图。,第六章,面,面向对象,的,的需求分,析,析,2022/12/31,37,需,求,求,分,分,析,析,过,过,程,程,6.3,基,基,于,于,UML,的,需,需,求,求,分,分,析,析,2022/12/31,38,开发场景,场景,从,从单个执行,者,者的角度观,察,察目标软件,系,系统的功能,和,和外部行为,。,。这种功能,通,通过系统与,用,用户之间的,交,交互表征。,场,场景是用户,与,与系统进行,交,交互的一组,具,具体的动作,。,。场景是用,例,例的实例,,而,而用例是某,类,类场景的共,同,同抽象。,对场景的完,整,整描述包含,场,场景名称、,执,执行者实例,、,、前置条件,、,、事件流和,后,后置条件。,如,“家庭,保,保安系统”,的,的初步需求,描,描述,具有,系,系统配置、,开,开机、关机,、,、门窗监测,、,、烟雾监测,、,、复位等场,景,景。,6.3基于,UML,的需求分析,2022/12/31,39,监测场景的,描,描述,场景名称,:门窗监测,。,。,参与执行者,实,实例,:警报器,,报,报警电话,,显,显示器,门,窗,窗监视器。,前置条件,:系统已开,机,机。,事件流,:,(1)门窗,监,监视器发现,门,门或窗户发,生,生异动,向,软,软件系统报,告,告异常事件,。,。,(2)软件,系,系统启动警,报,报器并拨报,警,警电话号码,。,。,(3)报警,电,电话接通后,,,,软件系统,播,播出语音,,报,报告异常事,件,件发生的时,间,间、地点和,事,事件的性质,(,(门窗异动,),)。,(4)系统,在,在控制面板,的,的显示器上,显,显示报警时,间,间及当前状,态,态(报警:,门,门窗异动),。,。,后置条件,:系统处于,“,“报警”状,态,态。,6.3基,于,于,UML,的需,求,求分,析,析,2022/12/31,40,场景,的,的分,类,类,(1),实际,场,场景,对实,际,际的,业,业务,处,处理,流,流程,或,或其,优,优化,流,流程,的,的描,述,述,,是,是用,户,户需,求,求的,重,重要,组,组成,部,部分,。,。,(2),设想,场,场景,分析,人,人员,对,对目,标,标软,件,件系,统,统投,入,入应,用,用后,经,经改,进,进或,优,优化,的,的业,务,务流,程,程的,描,描述,。,。这,种,种场,景,景是,纸,纸面,原,原型,,,,帮,助,助分,析,析人,员,员挖,掘,掘潜,在,在的,用,用户,需,需求,。,。,(3),评价,场,场景,确认,需,需求,或,或提,出,出改,进,进建,议,议为,主,主要,目,目的,的,的业,务,务流,程,程描,述,述。,评,评价,场,场景,可,可以,在,在用,例,例生,成,成后,对,对用,例,例进,行,行实,例,例化,而,而形,成,成,,以,以便,用,用户,对,对用,例,例进,行,行评,价,价或,改,改进,。,。,(4),培训,场,场景,:,:面,向,向开,发,发人,员,员及,用,用户,解,解释,系,系统,的,的功,能,能和,外,外部,行,行为,的,的业,务,务流,程,程描,述,述。,6.3,基,基,于,于,UML,的,需,需,求,求,分,分,析,析,2022/12/31,41,场,景,景,的,的,获,获,取,取,确,定,定,执,执,行,行,者,者,和,和,场,场,景,景,的,的,关,关,键,键,在,在,于,于,理,理,解,解,业,业,务,务,领,领,域,域,和,和,初,初,步,步,需,需,求,求,描,描,述,述,文,文,档,档,。,。,下,下,列,列,问,问,题,题,的,的,回,回,答,答,可,可,帮,帮,助,助,分,分,析,析,人,人,员,员,获,获,取,取,场,场,景,景,:,:,(1,),),目,标,标,软,软,件,件,系,系,统,统,有,有,哪,哪,些,些,执,执,行,行,者,者,?,?,(2,),),执,行,行,者,者,希,希,望,望,系,系,统,统,执,执,行,行,的,的,任,任,务,务,有,有,哪,哪,些,些,?,?,(3,),),执,行,行,者,者,希,希,望,望,获,获,得,得,哪,哪,些,些,信,信,息,息,?,?,这,这,些,些,信,信,息,息,由,由,谁,谁,生,生,成,成,?,?,由,由,谁,谁,修,修,改,改,?,?,(4,),),执,行,行,者,者,需,需,要,要,通,通,知,知,系,系,统,统,哪,哪,些,些,事,事,件,件,?,?,系,系,统,统,响,响,应,应,这,这,些,些,事,事,件,件,时,时,会,会,表,表,现,现,出,出,哪,哪,些,些,外,外,部,部,行,行,为,为,?,?,(5,),),系,统,统,将,将,通,通,告,告,执,执,行,行,者,者,哪,哪,些,些,事,事,件,件,?,?,场,景,景,将,将,促,促,成,成,开,开,发,发,人,人,员,员,和,和,用,用,户,户,对,对,于,于,业,业,务,务,处,处,理,理,流,流,程,程,和,和,目,目,标,标,软,软,件,件,系,系,统,统,的,的,功,功,能,能,范,范,围,围,的,的,共,共,同,同,理,理,解,解,。,。,在,在,场,场,景,景,确,确,定,定,之,之,后,后,,,,,通,通,过,过,对,对,场,场,景,景,的,的,汇,汇,总,总,、,、,分,分,类,类,归,归,并,并,、,、,抽,抽,象,象,即,即,可,可,形,形,成,成,用,用,例,例,。,。,6.3,基,基,于,于,UML,的,需,需,求,求,分,分,析,析,2022/12/31,42,生成用例,从外部用,户,户的视角,看,看,一个,用,用例是执,行,行者,(,actor),与目标软,件,件系统之,间,间一次典,型,型的交互,作,作用。,从软件系,统,统内部的,视,视角出发,,,,一个用,例,例代表着,系,系统执行,的,的一系列,动,动作,动,作,作执行的,结,结果能够,被,被外部的,执,执行者所,察,察觉。,执行者指,外,外部用户,或,或外部实,体,体在系统,中,中扮演的,角,角色。,如果多个,用,用户在使,用,用目标软,件,件系统时,扮,扮演同一,角,角色,这,些,些用户用,单,单一执行,者,者表示。,如果一个,用,用户扮演,多,多种角色,,,,则需要,用,用多个执,行,行者来表,示,示同一用,户,户。,6.3基,于,于,UML,的需求分,析,析,2022/12/31,43,生成用例,对用例的,完,完整描述,包,包括用例,名,名称、参,与,与执行者,、,、前置条,件,件、一个,主,主事件流,、,、,0,到多个辅,事,事件流、,后,后置条件,。,。,主事件流,表,表示正常,情,情况下执,行,行者与系,统,统之间的,信,信息交互,及,及动作序,列,列,辅事,件,件流则表,示,示特殊情,况,况或异常,情,情况下的,信,信息交互,及,及动作序,列,列。,显式地分,隔,隔主、辅,事,事件流是,为,为了使分,析,析人员首,先,先聚焦于,正,正常的业,务,务处理流,程,程,同时,也,也便于用,例,例的读者,理,理解业务,需,需求。,6.3基,于,于,UML,的需求分,析,析,2022/12/31,44,生成用例,用例源于,分,分析人员,对,对场景的,分,分类和抽,象,象,对相,似,似场景进,行,行归并,,使,使得一个,用,用例可以,通,通过实例,化,化、参数,调,调节而涵,盖,盖多个场,景,景。,例如,“,家,家庭保安,系,系统”中,的,的“开机,”,”、“关,机,机”、“,复,复位”三,个,个场景可,以,以归并为,“,“命令处,理,理”用例,,,,三个场,景,景之间的,差,差异通过,用,用户命令,区,区分。,门窗监测,、,、烟雾监,测,测两个场,景,景可归并,为,为统一的,“,“传感器,监,监测”用,例,例。,熟悉业务,领,领域的分,析,析师,可,以,以略过场,景,景,直接,从,从业务需,求,求描述中,获,获取用例,。,。,在家庭保,安,安系统中,,,,执行者,有,有“用户,”,”、“传,感,感器”、,“,“警报器,”,”、“报,警,警电话”,、,、“显示,器,器”,用,例,例有“系,统,统配置”,、,、“命令,响,响应”和,“,“传感器,监,监测”。,6.3基,于,于,UML,的需求分,析,析,2022/12/31,45,“传感器监,测,测”用例的,描,描述,用例名称,:传感器监,测,测,参与执行者,:各类传感,器,器,警报器,,,,报警电话,,,,显示器,前置条件,:系统已开,机,机。,主事件流,:,(1)传感,器,器向目标软,件,件系统上报,其,其监测数据,,,,系统判断,监,监测数据正,常,常。,(2)如果,不,不正常,系,统,统启动警报,器,器,拨报警,电,电话号码。,(3)报警,电,电话接通后,,,,软件系统,播,播出语音,,报,报告异常事,件,件发生的时,间,间、地点和,事,事件的性质,。,。,(4)系统,在,在控制面板,的,的显示器上,显,显示报警时,间,间及当前状,态,态(报警),。,。,6.3基于,UML,的需求分析,2022/12/31,46,“传,感,感器,监,监测,”,”用,例,例的,描,描述,辅事,件,件流,:,(1,),)如,果,果报,警,警电,话,话无,人,人接,听,听,,则,则按,照,照重,拨,拨延,迟,迟反,复,复拨,号,号,,直,直至,电,电话,接,接通,,,,再,转,转入,主,主事,件,件流,的,的步,骤,骤(,3,)。,(2,),)如,果,果重,拨,拨次,数,数达,到,到系,统,统预,设,设的,最,最大,次,次数,,,,电,话,话仍,无,无人,接,接听,,,,则,跳,跳过,主,主事,件,件流,的,的步,骤,骤(,3,),,转,转入,步,步骤,(,(,4,)。,后置,条,条件,:,如果,已,已发,现,现异,常,常的,监,监测,数,数据,,,,系,统,统处,于,于“,报,报警,”,”状,态,态;,否,否则,系,系统,处,处于,正,正常,的,的“,监,监测,”,”状,态,态。,6.3基,于,于,UML,的需,求,求分,析,析,2022/12/31,47,用活,动,动图,表,表示,用,用例,用例,的,的描,述,述既,可,可采,用,用自,然,然语,言,言,,也,也可,采,采用,活,活动,图,图,,活,活动,图,图表,示,示法,更,更为,精,精确,、,、直,观,观。,下面,介,介绍,活,活动,图,图的,语,语法,机,机制,,,,然,后,后结,合,合实,例,例说,明,明如,何,何用,活,活动,图,图表,示,示用,例,例。,6.3基,于,于,UML,的需,求,求分,析,析,2022/12/31,48,1,UML,活,动,动,图,图,用,例,例,的,的,事,事,件,件,流,流,或,或,者,者,操,操,作,作,均,均,可,可,表,表,示,示,为,为,一,一,系,系,列,列,的,的,活,活,动,动,,,,,每,每,个,个,活,活,动,动,在,在,活,活,动,动,图,图,中,中,被,被,表,表,示,示,为,为,一,一,个,个,结,结,点,点,。,。,结,点,点,之,之,间,间,的,的,有,有,向,向,边,边,表,表,示,示,顺,顺,序,序,执,执,行,行,的,的,活,活,动,动,。,。,在,结,结,点,点,间,间,的,的,连,连,接,接,边,边,上,上,可,可,以,以,附,附,加,加,条,条,件,件,表,表,达,达,式,式,,,,,表,表,示,示,在,在,有,有,向,向,连,连,接,接,边,边,的,的,源,源,结,结,点,点,执,执,行,行,完,完,成,成,后,后,,,,,如,如,果,果,条,条,件,件,成,成,立,立,,,,,则,则,开,开,始,始,执,执,行,行,有,有,向,向,连,连,接,接,边,边,的,的,目,目,标,标,结,结,点,点,所,所,表,表,示,示,的,的,活,活,动,动,;,;,如,如,果,果,条,条,件,件,不,不,成,成,立,立,,,,,则,则,目,目,标,标,结,结,点,点,的,的,活,活,动,动,不,不,执,执,行,行,。,。,菱,形,形,在,在,活,活,动,动,图,图,中,中,表,表,示,示,条,条,件,件,判,判,断,断,,,,,条,条,件,件,表,表,达,达,式,式,一,一,般,般,出,出,现,现,在,在,以,以,菱,菱,形,形,为,为,源,源,结,结,点,点,的,的,有,有,向,向,边,边,上,上,。,。,活,动,动,图,图,可,可,以,以,表,表,示,示,过,过,程,程,的,的,并,并,发,发,。,。,活,活,动,动,图,图,的,的,同,同,步,步,条,条,(,水,平,平,或,或,者,者,垂,垂,直,直,粗,粗,线,线,),可,以,以,将,将,一,一,条,条,有,有,向,向,连,连,接,接,边,边,分,分,叉,叉,为,为,多,多,个,个,并,并,发,发,执,执,行,行,的,的,分,分,支,支,进,进,程,程,,,,,或,或,将,将,多,多,个,个,有,有,向,向,连,连,接,接,边,边,上,上,的,的,进,进,程,程,同,同,步,步,合,合,并,并,为,为,一,一,个,个,进,进,程,程,。,。,6.3,基,基,于,于,UML,的,需,需,求,求,分,分,析,析,2022/12/31,49,UML,活动,图,图,泳道,为了,描,描述,活,活动,的,的责,任,任对,象,象,,活,活动,图,图引,进,进了,“,“泳,道,道”,的,的概,念,念。,泳,泳道,是,是由,垂,垂直,长,长线,分,分割,出,出来,的,的矩,形,形区,域,域,,在,在泳,道,道上,方,方的,对,对象,负,负责,该,该矩,形,形区,域,域内,的,的所,有,有活,动,动。,如,,在,在图,6.8,中,,类,类“,Customer,”,的对,象,象负,责,责“,插,插入,银,银行,卡,卡”,、,、“,输,输入,密,密码,”,”、,“,“选,择,择功,能,能”,、,、“,输,输入,金,金额,”,”四,项,项活,动,动,,其,其余,活,活动,由,由类,“,“,ATMsystem,”,的对,象,象负,责,责。,6.3基,于,于,UML,的需,求,求分,析,析,2022/12/31,50,典型,的,的活,动,动图,6.3基,于,于,UML,的需,求,求分,析,析,2022/12/31,51,2,用例的活,动,动图表示,传感器监,测,测用例活,动,动图,6.3基,于,于,UML,的需求分,析,析,2022/12/31,52,生成用例,图,图,执行者与,用,用例之间,的,的关系,触发执行,信息交换,触发执行,与,与信息交,换,换,如,在“,家,家庭保安,系,系统”中,,,,执行者,“,“用户”,在,在触发用,例,例“命令,响,响应”的,同,同时,还,要,要向用例,传,传送命令,信,信息。,在,UML,用,例,例,图,图,中,中,,,,,从,从,执,执,行,行,者,者,指,指,向,向,用,用,例,例,的,的,边,边,表,表,示,示,触,触,发,发,执,执,行,行,和,和,/,或,信,信,息,息,交,交,换,换,,,,,从,从,用,用,例,例,指,指,向,向,执,执,行,行,者,者,的,的,边,边,则,则,表,表,示,示,用,用,例,例,将,将,生,生,成,成,的,的,信,信,息,息,传,传,递,递,给,给,执,执,行,行,者,者,。,。,6.3,基,基,于,于,UML,的,需,需,求,求,分,分,析,析,2022/12/31,53,UML,用例与用例,之,之间的关系,(1)使用,(,(,use,),关系,如果,多,多个用例都,有,有一个公共,的,的动作序列,,,,为避免重,复,复并使模型,简,简洁,可以,将,将公共动作,序,序列抽取出,来,来,构成新,的,的独立用例,。,。,原来的多个,用,用例与新的,用,用例之间通,过,过使用关系,连,连接。,如,“家庭,保,保安系统”,中,中,“系统,配,配置”和“,命,命令响应”,两,两个用例都,使,使用公共的,“,“密码验证,”,”子用例。,(2)扩展,(,(,extend,),关系。如果,一,一个用例的,动,动作序列完,全,全包含另一,个,个用例的动,作,作序列,且,前,前者含有后,者,者所不具备,的,的一些特殊,情,情况下的处,理,理动作,则,称,称前者扩展,后,后者。例如,,,,图,6.10,中的“传感,器,器监测”用,例,例仅包含正,常,常的处理流,程,程,而“报,警,警电话未接,通,通”用例除,正,正常流程外,还,还增加了“,重,重复拨号”,以,以及“重拨,次,次数达到最,大,大次数仍无,人,人接听”这,两,两种异常处,理,理动作。,6.3基于,UML,的需求分析,2022/12/31,54,“家庭保安,系,系统”的用,例,例图,6.3基于,UML,的需求分析,2022/12/31,55,建立,顶,顶层,架,架构,顶层,架,架构,的,的主,要,要目,的,的是,为,为后,续,续的,分,分析,和,和设,计,计活,动,动建,立,立一,种,种结,构,构和,分,分划,,,,以,便,便开,发,发人,员,员在,不,不同,的,的开,发,发阶,段,段,,以,以及,同,同一,开,开发,阶,阶段,的,的不,同,同开,发,发人,员,员,,能,能够,聚,聚焦,于,于系,统,统的,不,不同,部,部分,。,。,顶层,架,架构,是,是分,析,析和,设,设计,阶,阶段,的,的成,果,果。,随,随着,开,开发,过,过程,的,的推,进,进,,框,框架,中,中的,内,内容,不,不断,丰,丰富,、,、翔,实,实,,最,最终,演,演进,为,为完,整,整的,面,面向,对,对象,软,软件,结,结构,。,。,6.3基,于,于,UML,的需,求,求分,析,析,2022/12/31,56,1,UML,包图,UML,包图是表,示,示顶层架,构,构的机制,。,。下面首,先,先介绍包,图,图的语法,机,机制,然,后,后探讨建,立,立顶层架,构,构的方法,与,与原则。,包是,UML,支持,对类分组,的,的一种机,制,制。可以,从,从某种视,角,角,将某,些,些关联密,切,切的类划,为,为一个包,,,,而不同,包,包的两个,类,类的关联,应,应比较松,散,散。,对于大型,软,软件系统,,,,包的划,分,分是实现,“,“分而治,之,之”的重,要,要技术手,段,段。,6.3基,于,于,UML,的需求分,析,析,2022/12/31,57,UML,包图,包的依赖,和,和构成关,系,系,如果对类,A,的修改将,导,导致类,B,的改变,,则,则称,B,依赖于,A,。,如果两个,包,包中存在,具,具有依赖,关,关系的两,个,个类,则,称,称这两个,包,包之间存,在,在依赖关,系,系。,包的构成,关,关系,包可以嵌,套,套,包可,包,包含类,,也,也可包含,子,子包。,为了表示,软,软件架构,,,,还需要,在,在包之间,引,引进“连,接,接器”边,,,,连接器,表,表示包之,间,间的信息,传,传递、事,件,件发送、,软,软件调用,等,等关系。,连接器分,为,为单向和,双,双向(即,无,无向)。,6.3基,于,于,UML,的需求分,析,析,2022/12/31,58,包图示,例,例,“领域,”,”包由,“,“订单,”,”和“,客,客户”,两,两个子,包,包构成,,,,“订,单,单”包,依,依赖于,“,“客户,”,”包。,数据库,接,接口类,仅,仅定义,抽,抽象数,据,据访问,,,,数据,操,操作。,Oracle,接口包,和,和,DB2,接口包,基,基于具,体,体的数,据,据库管,理,理系统,实,实现通,用,用接口,定,定义的,抽,抽象接,口,口函数,。,。,6.3,基,基于,UML,的需求,分,分析,2022/12/31,59,2,软件顶层架,构,构的设计,方法,结合实际需,求,求,选取架,构,构模式,再,进,进行局部调,整,整。,主要架构模,式,式,流程处理模,式,式,客户,/,服务器模式,、,、,模型视图,控制器模,式,式,分层模式,6.3基于,UML,的需求分析,2022/12/31,60,软件顶层架,构,构的设计,(,1,)流程处理,模,模式。,流程处理系,统,统以算法和,数,数据结构为,中,中心,其系,统,统功能由一,系,系列的处理,步,步骤构成,,相,相邻处理步,骤,骤用数据流,通,通管道连接,。,。,流程处理模,式,式适用于批,处,处理方式的,软,软件系统,,不,不适合交互,式,式系统。,6.3基于,UML,的需求分析,2022/12/31,61,流程处理,模,模式,流程处理,模,模式具有,三,三个处理,步,步骤。,步骤都使,用,用公共的,系,系统服务,(,(例如数,据,据库访
展开阅读全文