《软件工程齐志昌版.pptx》由会员分享,可在线阅读,更多相关《软件工程齐志昌版.pptx(83页珍藏版)》请在优知文库上搜索。
1、 Software Engineering2023-5-81第六章第六章 面向对象的需求分析面向对象的需求分析 o面向对象的需求分析方法的核心是利用面向对象的概念面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它包含面向对象风格的图和方法为软件需求建造模型。它包含面向对象风格的图形语言机制以及用于指导需求分析的面向对象方法学。形语言机制以及用于指导需求分析的面向对象方法学。o面向对象的思想最初起源于面向对象的思想最初起源于1960年代中期的仿真程序设年代中期的仿真程序设计语言计语言Simula67。1980年代初出现的年代初出现的Smalltalk语言及其语言及其程序
2、设计环境对面向对象技术的推广应用起到了显著的程序设计环境对面向对象技术的推广应用起到了显著的促进作用。促进作用。o1990年代中后期诞生并迅速成熟的年代中后期诞生并迅速成熟的UML(统一建模语统一建模语言,言,Unified Modeling Language)是面向对象技术发展是面向对象技术发展的一个重要里程碑。的一个重要里程碑。UML统一了面向对象建模的基本统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过概念、术语和表示方法,不仅为面向对象的软件开发过程提供了能力丰富的表达手段,而且也为软件开发人员程提供了能力丰富的表达手段,而且也为软件开发人员提供了互相交流、分享
3、经验的共用语言。提供了互相交流、分享经验的共用语言。2023-5-82面向对象的需求分析面向对象的需求分析 o面向对象的概念与思想面向对象的概念与思想oUML概述概述o基于基于UML的需求分析的需求分析 以以“家庭保安系统家庭保安系统”为实例,介绍与需求分析相为实例,介绍与需求分析相关的部分关的部分UML语言机制以及基于语言机制以及基于UML的面向对的面向对象的需求分析方法和过程。象的需求分析方法和过程。第六章第六章 面向对象的需求分析面向对象的需求分析2023-5-836.1 面向对象的概念与思想面向对象的概念与思想o客观世界中的应用问题都是由实体及其相互关系构成的。客观世界中的应用问题都是
4、由实体及其相互关系构成的。o可以将客观世界中与应用问题有关的实体及其属性抽象为可以将客观世界中与应用问题有关的实体及其属性抽象为问题空间中的对象。问题空间中的对象。o为应用问题寻求软件解,是借助于计算机语言对其提供的为应用问题寻求软件解,是借助于计算机语言对其提供的实体施加某些动作,以动作的结果给出问题的解。汇编语实体施加某些动作,以动作的结果给出问题的解。汇编语言提供的实体是寄存器、存储单元;过程式程序设计语言言提供的实体是寄存器、存储单元;过程式程序设计语言提供的实体是变元、数组、记录、文件等。这些实体构成提供的实体是变元、数组、记录、文件等。这些实体构成解空间中的对象。解空间中的对象。o
5、问题空间中对象的行为是丰富多彩的,而软件解空间中对问题空间中对象的行为是丰富多彩的,而软件解空间中对象的行为却是单调刻板的。例如,存储单元只能作存取操象的行为却是单调刻板的。例如,存储单元只能作存取操作,文件只能作读、写和定位操作。作,文件只能作读、写和定位操作。o只有借助于相当复杂的方法操纵解空间中的对象才能得到只有借助于相当复杂的方法操纵解空间中的对象才能得到问题的软件解。这就是所谓的问题的软件解。这就是所谓的“语义断层语义断层”。第六章第六章 面向对象的需求分析面向对象的需求分析2023-5-84面向对象的概念与思想面向对象的概念与思想o面向对象面向对象(Object-Oriented,
6、简称简称OO)的需求分析方的需求分析方法通过提供对象、对象间消息传递等语言机制让法通过提供对象、对象间消息传递等语言机制让分析人员在解空间中直接模拟问题空间中的对象分析人员在解空间中直接模拟问题空间中的对象及其行为,从而削减了语义断层,为需求建模活及其行为,从而削减了语义断层,为需求建模活动提供了直观、自然的语言支持和方法学指导。动提供了直观、自然的语言支持和方法学指导。6.1面向对象的概念与思想面向对象的概念与思想2023-5-85面向对象的概念与思想面向对象的概念与思想 为了在解空间模拟现实问题并与人类的思维习为了在解空间模拟现实问题并与人类的思维习惯相一致,惯相一致,OO方法学包容了以下
7、核心概念:方法学包容了以下核心概念: (1) 对象对象 对象是现实世界中个体或事物的抽象表示,对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。例如,大操作是指该对象可以展现的外部服务。例如,大型客机可视为对象,它具有位置、速度、颜色、型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于容量等属性,对于 该对象可施行起飞、降落、加该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞速、
8、维修等操作,这些操作将或多或少地改变飞机的属性值机的属性值(状态状态)。 6.1面向对象的概念与思想面向对象的概念与思想2023-5-86面向对象的概念与思想面向对象的概念与思想 (2)类。类。类表示某些对象在属性和操作方面的共同特征。类表示某些对象在属性和操作方面的共同特征。例如,直升飞机、大型客机、轰炸机可归为飞行器例如,直升飞机、大型客机、轰炸机可归为飞行器类。类。共同属性有:位置、速度和颜色等。共同属性有:位置、速度和颜色等。共同操作有:起飞、降落、加速和维修等。共同操作有:起飞、降落、加速和维修等。6.1面向对象的概念与思想面向对象的概念与思想2023-5-87面向对象的概念与思想面
9、向对象的概念与思想 (3)继承继承 类之间的继承关系是现实世界中遗传关系的模类之间的继承关系是现实世界中遗传关系的模拟,它表示类之间的内在联系拟,它表示类之间的内在联系 以及对属性和操以及对属性和操作的共享,即,子类可以沿用父类作的共享,即,子类可以沿用父类(被继承类被继承类)的的某些特征。子类也可以具有自己独有的属性和操某些特征。子类也可以具有自己独有的属性和操作。例如,飞行器、汽车和轮船可归于交通工具作。例如,飞行器、汽车和轮船可归于交通工具类,飞行器类可以继承交通工具类的某些属性和类,飞行器类可以继承交通工具类的某些属性和操作。操作。6.1面向对象的概念与思想面向对象的概念与思想2023
10、-5-88面向对象的概念与思想面向对象的概念与思想 (4)聚集聚集 现实世界普遍存在部分现实世界普遍存在部分整体关系。整体关系。 例如,飞机可由发动机、机身、机械控制系统、例如,飞机可由发动机、机身、机械控制系统、电子控制系统等构成。电子控制系统等构成。 部分部分整体关系在整体关系在OO方法学中表示为类之间的方法学中表示为类之间的聚集关系。在聚集关系下,部分类的对象是整体聚集关系。在聚集关系下,部分类的对象是整体类对象的一个组成部分。类对象的一个组成部分。 6.1面向对象的概念与思想面向对象的概念与思想2023-5-89面向对象的概念与思想面向对象的概念与思想 (5)消息)消息 消息传递是对象
11、与其外部世界相互关联的唯一消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其它对象发送消息以请求服务,途径。对象可以向其它对象发送消息以请求服务,也可以响应其它对象传来的消息,完成自身固有也可以响应其它对象传来的消息,完成自身固有的某些操作,从而服务于其它对象。的某些操作,从而服务于其它对象。 例如,直升飞机可以响应轮船的海难急救信号,例如,直升飞机可以响应轮船的海难急救信号,起飞,加速,飞赴出事地点并实施救援作业。因起飞,加速,飞赴出事地点并实施救援作业。因为对象的操作主要用来响应外来消息并为其它对为对象的操作主要用来响应外来消息并为其它对象提供服务,所以它们也被称作象提供服务,所以
12、它们也被称作“外部服务外部服务”。 面向对象面向对象 = 对象对象 + 类类 + 继承继承 + 聚集聚集 + 消息。消息。6.1面向对象的概念与思想面向对象的概念与思想2023-5-8106.2 UML概述概述6.2.1 UML的语言机制的语言机制 UML主要以主要以Booch方法、方法、OMT方法方法71和和OOSE方法为基础,同时也吸收了其他面向对象建模方方法为基础,同时也吸收了其他面向对象建模方法的优点,形成了一种概念清晰、表达能力丰富、法的优点,形成了一种概念清晰、表达能力丰富、适用范围广泛的面向对象的标准建模语言。适用范围广泛的面向对象的标准建模语言。第六章第六章 面向对象的需求分析
13、面向对象的需求分析2023-5-811UML的语言机制的语言机制UML通过图形化的表示机制从多个侧面刻画系统的通过图形化的表示机制从多个侧面刻画系统的分析和设计模型。分析和设计模型。 UML共定义十种视图,可分四类:共定义十种视图,可分四类: (1) 用例图(用例图(use case diagram) 从外部用户的角度描述系统的功能,并指出从外部用户的角度描述系统的功能,并指出功能的执行者。功能的执行者。6.2UML概述概述2023-5-812UML的语言机制的语言机制 (2)静态图静态图 o类图类图(class diagram)、类图描述系统的静态结构,类图的结点表示系统中的类及其类图描述系
14、统的静态结构,类图的结点表示系统中的类及其属性和操作,类图的边表示类之间的联系,包括继承、属性和操作,类图的边表示类之间的联系,包括继承、关联、依赖、聚合等。关联、依赖、聚合等。o对象图对象图(object diagram)对象图是类图的一个实例。它描述在某种状态下,或者在某对象图是类图的一个实例。它描述在某种状态下,或者在某一时间段系统中活跃的对象及其关系。在对象图中,一一时间段系统中活跃的对象及其关系。在对象图中,一个类可以拥有多个活跃的对象实例。个类可以拥有多个活跃的对象实例。o包图包图(package diagram) 包图描述系统的分解,表示包包图描述系统的分解,表示包(packag
15、e)以及包之间的关系。以及包之间的关系。 包由子包及类组成。包由子包及类组成。 包之间的关系包括继承、构成与依赖关系。包之间的关系包括继承、构成与依赖关系。6.2UML概述概述2023-5-813UML的语言机制的语言机制(3)行为图行为图 o 交互图交互图(interactive diagram)o 状态图状态图(statechart diagram )o 活动图活动图(activity diagram) 它们从不同的侧面刻画系统的动态行为。它们从不同的侧面刻画系统的动态行为。 交互图描述对象之间的消息传递。它又可分为顺序图交互图描述对象之间的消息传递。它又可分为顺序图(sequence d
16、iagram)与合作图与合作图(collaboration diagram)两种形两种形式。顺序图强调对象之间消息发送的时间序。合作图更强式。顺序图强调对象之间消息发送的时间序。合作图更强调对象间的动态协作关系。调对象间的动态协作关系。 合作图也可通过消息序号来表示消息传递的时间序,只不过合作图也可通过消息序号来表示消息传递的时间序,只不过这种表示不如顺序图那样直观。这种表示不如顺序图那样直观。6.2UML概述概述2023-5-814UML的语言机制的语言机制o状态图描述类的对象的动态行为。状态图描述类的对象的动态行为。o它包含对象所有可能的状态、活动图描述系统为它包含对象所有可能的状态、活动图描述系统为完成某项功能而执行的操作序列,这些在每个状完成某项功能而执行的操作序列,这些在每个状态下能够响应的事件以及事件发生时的状态迁移态下能够响应的事件以及事件发生时的状态迁移与响应动作。操作序列可以并发和同步。与响应动作。操作序列可以并发和同步。o活动图中包含控制流和信息流。控制流表示一个活动图中包含控制流和信息流。控制流表示一个操作完成后对其后续操作的触发,信息流则刻画操作完成后对其后续操