面向对象的需求分析方法 .docx





《面向对象的需求分析方法 .docx》由会员分享,可在线阅读,更多相关《面向对象的需求分析方法 .docx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结面对对象的需求分析方法面对对象的需求分析方法的核心是利用面对对象的概念和方法为软件需求建造模型。 它包含面对对象风格的图形语言机制和用于指导需求分析的面对对象方法学。面对对象的思想最初起源于 20 世纪 60 岁月中期的仿真程序设计语言 Simula67 。20 世纪 80 岁月初显现的 Smalltalk 语言及其程序设计环境对面对对象技术的推广应用起到了显著的促进作用。20 世纪 90 岁月中后期产生并快速成熟的 UMLUnified Modeling Language,统一建模语言是面对对象技术进展的一个重要里程碑。UML统一了面对对象建模的基本概念、术语和表示方法, 不
2、仅为面对对象的软件开发过程供应了丰富的表达手段,而且也为软件开发人员供应了相互沟通、共享体会的共用语言。本章第一介绍面对对象的主要概念和思想。在概述了 UML 的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML 语言机制以及基于 UML 的面对对象的需求分析方法和过程。第一节面对对象的概念与思想一、面对对象的概念关于“面对对象”,有很多不同的看法。 Coad 和 Yourdon 给出了一个定义:“面对对象 = 对象 + 类 + 继承 + 消息通信” 。假如一个软件系统是使用这样 4 个概念设计和实现的,就认为这个软件系统是面对对象的。 一个面对对象的程序的每一成分应是对象,
3、 运算是通过新的对象的建立和对象之间的消息通信来执行的。可编辑资料 - - - 欢迎下载精品名师归纳总结1. 对象 object 一般意义来讲, 对象是现实世界中存在的一个事物。 可以是物理的, 如一个家具或桌子 , 如图 5-1-1 所示,可以是概念上的 ,如一个开发项目。对象是构成现实世界的一个独立的单位,具有自己的静态特点 用数据描述 和动态特点行为或具有的功能 。例如:人的特点: 、性别、年龄等,行为:衣、食、住、行等。图 5-1-1对象的定义1对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位, 由一组属性和一组对属性进行操作的服务组
4、成。属性一般只能通过执行对象的操作来转变。可编辑资料 - - - 欢迎下载精品名师归纳总结操作又称为方法或服务,在 C + 中称为成员函数,它描述了对象执行的功能,假设通过消息传递,仍可以为其他对象使用。而所谓的消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。发送给一个对象的消息定义了一个操作名和一个参数表可能是空的,并 指定某一个对象。 由一个对象接收的消息就调用消息中指定的操作,并将传递过来的实际参数与参数表中相应的形式参数结合起来。接收对象对消息的处理可能会转变对象中的状态,即转变接收对象的属性, 并发送一个消息给自己或另一个对象。 可以认为, 这种
5、消息的传递大致等价于过程性范型中的函数调用。2对象的分类外部实体:与软件系统交换信息的外部设备、相关子系统、操作员或用户等。信息结构:问题信息域中的概念实体,如信号、报表、显示信息等。需要记忆的大事:在系统运行过程中可能产生并需要系统记忆的大事,如单击鼠标左键、击打键盘“ .”键等。角色:与软件系统交互的人员所扮演的角色,如经理、部长、技术支持等。组织机构:有关机构,如单位、小组等。可编辑资料 - - - 欢迎下载精品名师归纳总结位置:作为系统环境或问题上下文的场所、位置,如客户的址、收件人机构的址等。操作规程:如操作菜单、某种数据输入过程等。在标识对象时必需留意遵循“信息隐匿”的原就:必需将
6、对象的属性隐匿在对象的内部, 使得从对象的外部看不到对象的信息是如何定义的, 只能通过该对象界面上的操作来使用这些信息。对象的状态通过给对象给予具体的属性值而得到。它只能通过该对象的操作来转变。对象有两个视图,分别表现在分析设计和实现方面。从分析及设计方面来看,对象表示了一种概念 ,它们把有关的现实世界的实体模型化。从实现方面来看,一个对象表示了在应用程序中显现的实体的实际数据结构。 之所以有两个视图, 是为了把说明与实现别离, 对数据结构和相关操作的实现进行封装。2. 类class 和实例 instance 把具有相同特点和行为的对象归在一起就形成了类。类成为某些对象的模板, 抽象的描述了属
7、于该类的全部对象的属性和操作。属于某个类的对象叫做该类的实例。 对象的状态就包含在它的实例变量,即实例的属性中。如图5-1-2 所示。从“李杰”、“王辉”和“杨芳”等对象可得到类“同学”,而这些对象就称为该类的实例。可编辑资料 - - - 欢迎下载精品名师归纳总结图 5-1-2对象、类与实例类定义了各个实例所共有的结构, 类的每一个实例都可以使用类中定义的操作。 实例的当前状态是由实例所执行的操作定义的。面对对象程序设计语言, 如 C+ 和 smalltalk都定义了一个 new 操作,可建立一个类的新实例。 C+仍引入了构造函数,用它在声明一个对象时建立实例。此外,程序设计语言给 出了不同的
8、方法,来撤消称为析构实例,即当某些对象不再使用时把它们删去,把储备释放以备其他对象使用。 C+ 给出了一个操作 delete ,可以释放一个对象所用的空间。C+ 仍答应每个类定义自己的析构方法,在撤消一个对象时调用它。smalltalk没有供应一个机制来撤消对象,但可以进行无用单元收集。类经常可看做是一个抽象数据类型 ADT 的实现 。但更重要的是把类看做是表示某种概念的一个模型。事实上,类是单个的语义单元,它可以很自然的治理系统中的对象,匹配数 据定义与操作。类加进了操作,给通常的记录给予了语义,可供应各种级别的可拜访性。可编辑资料 - - - 欢迎下载精品名师归纳总结3. 继承 inher
9、itance假如某几个类之间具有共性的东西信息结构和行为,抽取出来放在一个一般类中,而将各个类的特有的东西放在特殊类中分别描述,就可建立起特殊类对一般类的继承,如图5-1-3所示。各个特殊类可以从一般类中继承共性,这样防止了重复。图 5-1-3特殊类对一般类的继承关系建立继承结构的好处:易编程、易懂得 代码短, 结构清楚。易修改:共同部分只要在一处修改即可。易增加新类:只须描述不同部分。4. 多继承假如一个类需要用到多个既存类的特点, 可以从多个类中继承, 称为多继承。 例如退休老师是继承退休者和老师这两个类的某些特点或行为而得到的一个新类。可编辑资料 - - - 欢迎下载精品名师归纳总结图
10、5-1-4多继承对象相互通信,即一个对象发消息给另一个对象, 执行某些行为或又发消息给另外的对象, 从而执行系统的功能。发送消息的对象可能不知道另一个对象的类型是什么。如在C 程序中使用命令 ClearInt 时要严格区分该命令适合一个整数,仍是一个整数数组。但在C+ 情形, ClearInt对两者都适用,它自己判定对象是哪一个。这就是多态性。它意味着一个操作 在不同类中可以有不同的实现方式。如清零操作ClearInt 针对消息对象是 int array仍是 int ,其实现是不同的。在一个面对对象的多态性语言中,可能代替一个特定类型的类型的集合就是它的子类集合。例如,图 5-1-5给出了 4
11、 个类的继承层次。使用这个继承结构,发送给多边形类的全部消息,它的全部子类都能够响应。又例如,想要在屏幕上画一系列多边形,多态性答应一个表的元素可以属于一组指定的类型而不仅仅是一个类型,可以认为这是一个类族。 通过遍历这个表,发送给各个表元素以 draw 消息,画出全部的多边形。可编辑资料 - - - 欢迎下载精品名师归纳总结图 5-1-54 个类的继承层次动态绑定把函数调用与目标代码块的连接推迟到运行时进行。这样,只有发送消息时才与接收消息实例的一个操作绑定。 它与多态性可以使我们建立的系统更敏捷, 易于扩充。 做为动态绑定的例子,考虑在多边形类中的方法contains .aPoint 。这
12、个操作可以在类层次的各层重新实现, 以有效利用各个子类的特殊的特点。 例如,假定一个矩形有某些边与屏幕的边平行,这时, 检查一个点是否包含在矩形内, 比检查一个点是否在一个一般的四边形内的效率要高一些。二、面对对象软件开发的分析模型面对对象分析过程分为论域分析和应用分析。 论域分析建立大致的系统实现环境, 应用分析就依据特定应用的需求进行论域分析。1. OOA 分析的基本原就和任务为建立分析模型,要运用如下的5 个基本原就 :建立信息域模型。描述功能。表达行为。划分功能 、数据 、行为模型, 揭示更多的细节。 用早期的模型描述问题的实质, 用后期的模型给出实现的细节。这些原就形成OOA 的基础
13、。可编辑资料 - - - 欢迎下载精品名师归纳总结OOA 的目的是定义全部与待解决问题相关的类包括类的操作和属性、类与类之间的关系以及它们表现出的行为。为此, OOA 需完成的任务是:1软件工程师和用户必需充分沟通,以明白基本的用户需求。2必需标识类即定义其属性和操作。3必需定义类的层次。4应当表达对象与对象之间的关系即对象的连接。5必需模型化对象的行为。6反复的做任务,直到模型建成。2. OOA 概述目前已经衍生很多种 OOA 方法。每种方法都有各自的进行产品或系统分析的过程, 有一组可描述过程演进的图形标识, 以及能使得软件工程师以一样的方式建立模型的符号体系。 现在广泛使用的 OOA 方
14、法有以下几种:可编辑资料 - - - 欢迎下载精品名师归纳总结1 Booch方法: Booch方法包含“ 微开发过程 ”和“宏开发过程”。微开发过程定义了一组任务,并在宏开发过程的每一步骤中反复使用它们,以保护演进途径。Booch OOA宏开发过程的任务包括标识类和对象、标识类和对象的语义、定义类与对象间的关系, 以及进行一系列求精从而实现分析模型。2 Rumbaugh方法: Rumbaugh和他的同事提出的对象模型化技术 OMT 用于分析、系统设计和对象级设计。分析活动建立三个模型:对象模型描述对象、类、层次和 关系,动态模型描述对象和系统的行为,功能模型类似于高层的DFD ,描述穿越系统的
15、信息流。3 Coad 和 Yourdon方法: Coad 和 Yourdong方法经常被认为是最简洁学习的OOA方法。建模符号相当简洁, 而且开发分析模型的导引直接明白。 其 OOA 过程概述如下:使用“要找什么”准就标识对象。定义对象之间的一般化特殊化结构。定义对象之间的整体部分结构。标识主题系统构件的表示。定义属性及对象之间的实例连接。可编辑资料 - - - 欢迎下载精品名师归纳总结定义服务及对象之间的消息连接。4 Jacobson方法:也称为 OOSE面对对象软件工程。 Jacobson方法与其他方法的不同之处在于他特殊强调使用实例use case 用以描述用户与系统之间如何交互的场景。
16、 Jacobson方法概述如下:标识系统的用户和它们的整体责任。通过定义参加者及其职责、使用实例、对象和关系的初步视图,建立需求模型。通过标识界面对象、建立界面对象的结构视图、表示对象行为、别离出每个对象的子系统和模型,建立分析模型。5 Wirfs Brock方法: Wirfs Brock方法不明确区分分析和设计任务。从评估客户规格说明到设计完成 ,是一个连续的过程 。与 Wirfs Brock 分析有关的任务概述如下:评估客户规格说明。使用语法分析从规格说明中提取候选类。将类分组以表示超类。可编辑资料 - - - 欢迎下载精品名师归纳总结定义每一个类的职责。将职责给予每个类。标识类之间的关系
17、。基于职责定义类之间的协作。建立类的层次表示。构造系统的协作图。6 统一的 OOA 方法 UML 。统一的建模语言 UML 已经在企业中广泛使用, 它把 Booch 、Rumbaugh和 Jacobson等各自独立的 OOA 和 OOD 方法中最优秀的特色组合成一个统一的方法。 UML答应软件工程师使用由一组语法的语义的有用的规章支配的符号 来表示分析模型。在 UML 中用 5 种不同的视图来表示一个系统,这些视图从不同的侧面描述系统。每一个视图由一组图形来定义。这些视图概述如下:用户模型视图:这个视图从用户 在 UML 中叫做参加者角度来表示系统。它用使用可编辑资料 - - - 欢迎下载精品
18、名师归纳总结实例 use case 来建立模型,并用它来描述来自终端用户方面的可用的场景。结构模型视图:从系统内部来看 数据和功能性 。即对 静态结构类、对象和关系模型化。行为模型视图:这种视图表示了系统动态和行为。它仍描述了在用户模型视图和结构模型视图中所描述的各种结构元素之间的交互和协作。实现模型视图:将系统的结构和行为表达成为易于转换为实现的方式。环境模型视图:表示系统实现环境的结构和行为。通常, UML分析建模的留意力放在系统的用户模型和结构模型视图,而UML 设计建模就定位在行为模型、实现模型和环境模型。其次节UML 概述一、UML 的语言机制在 UML产生之前, 面对对象领域已经涌
19、现出了很多开发方法及相应的表示机制,它们各有千秋 ,却又有很多类似之处,往往让使用者无所适从。 UML 在这样的背景下应运而生。它主要以 BOOCH方法、 OMT 方法 71 和 OOSE 方法为基础,同时也吸取了其他面对对象建模方法的优点, 形成一种概念清楚、 表达才能丰富、 适用范畴广泛的面对对象的标准建模语言。可编辑资料 - - - 欢迎下载精品名师归纳总结UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画。它共定义了10 种视图,并将其分为如下 4 类:1用例图 use case diagram 。从外部用户的角度描述系统的功能,并指出功能的执行者。2静态图。包括类图
20、class diagram、对象图 object diagram 和包图 pack diagram 。类图描述系统的静态结构,类图的节点表示系统中的类及其属性和操作,类图的边表示类之间的联系,包括继承、关联、依靠、聚合等。对象图是类图一个实例,它描述在某 种状态下或在某一时间段, 系统中活跃的对象及其关系。 在对象图, 一个类可以拥有多个活跃的对象实例。包图描述系统的分解结构,它表示包package 以及包之间的关系。包由子包及类组成。包之间的关系包括继承、构成与依靠关系。3行为图。包括交互图 interactive diagram、状态图 statechar diagram 与活动图 act
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象的需求分析方法 面向 对象 需求 分析 方法

限制150内