信息系统分析与开发技术(第3版) 课件 第六章 信息系统的面向对象分析与建模_第1页
信息系统分析与开发技术(第3版) 课件 第六章 信息系统的面向对象分析与建模_第2页
信息系统分析与开发技术(第3版) 课件 第六章 信息系统的面向对象分析与建模_第3页
信息系统分析与开发技术(第3版) 课件 第六章 信息系统的面向对象分析与建模_第4页
信息系统分析与开发技术(第3版) 课件 第六章 信息系统的面向对象分析与建模_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第六章信息系统的面向对象分析与建模

导言系统面向对象分析与建模按照面向对象模型(方法),对系统需求进行分析,首先分析系统的业务,在业务需求的基础上,分析提取需求对象模型。目录6.1面向对象分析的基本概念6.2统一建模语言6.3面向对象分析6.4面向对象的UML分析建模6.5面向对象分析案例6.1面向对象分析的基本概念面向对象的思想源于20世纪70年代出现的面向对象的编程语言。

•面向对象的程序设计方法(Object-OrientedProgramming,OOP)

•面向对象分析

(Object-OrientedAnalysis,OOA)

•面向对象设计(Object-OrientedDesign,OOD)

面向对象不仅是一些具体的软件开发技术与策略,还是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。6.1面向对象分析的基本概念

6.1.1

面向对象方法的基本概念从软件开发的角度来看面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件方法。1.对象在面向对象方法中,对象是一些属性及专用服务的封装体,它是问题域中一些事物的抽象。这些属性的值刻画了一个对象的状态;这些操作是对象的行为,通过它们改变对象的状态(即属性值)。

2.类在面向对象的软件技术中,类可以定义为由数据结构及相关操作所形成的集合,或所有相似对象的状态变量和行为构成的模板。类是对一组对象的抽象、归纳与概括,更确切地说,类是对一组具有相同数据成员和相同操作成员的对象的定义或说明。而每个对象都是某个类的一个具体实例。6.1面向对象分析的基本概念

6.1.1

面向对象基本概念个人账户NameIncomePaymentLimitationUsedLimitationGetBalance()Save()Pay()CarryForward()……类名属性操作张三的个人账户张三1800.00230.5050000.00680.00GetBalance()Save()Pay()CarryForward()……对象名属性操作6.1面向对象分析的基本概念

6.1.1

面向对象基本概念3.消息消息是为了实现某一功能而要求某个对象执行其中某个功能操作的规格说明。它一般含有下述信息:提供服务的对象标识、服务标识、输入信息和响应信息。4.方法方法对应于对象的能力,它是实现对象所具有的功能操作代码段,是响应消息的“方法”。在C++中,方法即是类中定义的成员函数,它只不过是该类对象所能执行的操作的算法实现。类中的方法一般可以分为:对外服务的方法、对内服务的方法、属性方法和对象控制方法。6.1面向对象分析的基本概念

6.1.1

面向对象基本概念5.继承继承是对象类之间的一种相关关系,指对象继承它所在类的结构、操作和约束,也指一个类继承另外一个类的结构、操作和约束。继承体现了一种共享机制。6.封装封装即将数据和行为隐藏在一个公共界面背后。它保证软件部件具有较好的模块性,它对于提高软件清晰度和可维护性,以及软件的分工有重要的意义。7.多态性多态性又叫多形性,指相同的操作(或函数,过程)可作用于多种类型的对象并获得不同的结果。6.1面向对象分析的基本概念

6.1.2

面向对象分析概念和优点1.面向对象分析的概念面向对象分析是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。

OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对面向对象方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。面向对象分析是直接将问题域中客观存在的事物或概念识别为对象,建立分析模型,用对象的属性和服务分别描述事物的静态特征和行为,并且保留问题域中事物之间关系的原貌。它的主要任务是决定“做什么”。6.1面向对象分析的基本概念

6.1.2

面向对象分析概念和优点2.面向对象分析的优点(1)有利于对问题域和系统责任的理解(2)有利于交流(3)适应需求的不断变化(4)更好地支持软件复用6.1面向对象分析的基本概念

6.1.3

面向对象分析的主要原则(1)抽象原则(2)封装原则(3)继承原则(4)分类原则(5)聚合原则(6)关联原则(7)消息通信原则(9)粒度控制原则(10)行为分析原则目录6.1面向对象分析的基本概念6.2统一建模语言6.3面向对象分析6.4面向对象的UML分析建模6.5面向对象分析案例6.2统一建模语言UML

6.2.1UML概述公认的面向对象建模语言出现于20世纪70年代中期Booch提出了面向对象软件工程的概念、Booch1993方法Rumbaugh等人提出了面向对象的建模技术(OMT)方法Jacobson于1994年提出了OOSE方法Coad/Yourdon方法(OOA/OOD)1995年10月,Booch和Rumbaugh发布了第一个公开版本统一方法UM0.8(UnifiedMethod)1996年,Booch、Rumbaugh和Jacobson发布了两个新的版本,即UML0.9和UML0.911996年成立了UML成员协会,发布UML1.0及UML1.1在1997年11月7日UML正式被OMG采纳作为业界标准6.2统一建模语言UML

6.2.1UML概述UML2.02004图4.2UML的发展历程OOSEUML1.3UML1.1FinalsubmissiontoOMG,Nov‘97FirstsubmissiontoOMG,Jan´97OMGAcceptance,Nov1997UML1.0UMLpartnersFall1998UML0.9Web-June´96OOPSLA´95UnifiedMethod0.8Booch

方法OMT其他方法公众反馈6.2统一建模语言UML

6.2.2UML内容UML的定义包括UML语义和UML表示法两个部分:1.UML语义描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。2.UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法,为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。6.2统一建模语言UML

6.2.2UML内容UML的主要内容可以由五类图来表示:1.用例图

从用户角度描述系统功能,并指出各功能的操作者。2.静态图

包括类图、对象图和包图3.行为图包括状态图、活动图,描述系统动态模型和组成对象间的交互关系

4.交互图包括顺序图、合作图,描述对象间的交互关系

5.实现图

包括构件图、部署图6.2统一建模语言UML

6.2.3UML分析建模过程UML从不同角度描述待开发系统,为了更好地提供有效的交流方式,促进各方对需求的理解,将整个建模过程分为需求捕获、结构建模、行为建模、体系框架建模、模型检查5个阶段。目录6.1面向对象分析的基本概念6.2统一建模语言6.3面向对象分析6.4面向对象的UML分析建模6.5面向对象分析案例6.3面向对象分析软件开发的分析过程就是获取系统需求的过程,该过程是通过系统分析员与领域专家反复交流和多次修正,不断抽取和整理用户需求并建立问题域精确模型的过程。分析工作主要包括理解、表达和验证。面向对象分析的关键是识别问题域内的对象及其关系,最终建立起模型。6.3面向对象分析OOA的主要目标是利用面向对象的方法,站在对象的角度对所要研究的问题空间及系统进行深刻的理解,正确认识问题空间中的事务及其事务之间的关系,识别描述问题空间及系统所需的对象、类,定义对象及类的属性与服务,建立与问题空间相映射、相对应的系统对象模型。

OOA的系统模型包括三大部分:(1)基本模型(2)补充模型(3)系统的详细说明。

6.3.1

面向对象分析的系统模型6.3面向对象分析

6.3.1面向对象分析的系统模型1.基本模型

基本模型是以类图的形式来表达系统最重要的信息,类图由类、属性、服务、泛化-特化结构、整体-部分结构、实例连接和消息连接等主要成分所构成。模型信息可分为对象层、特征层和关系层。6.3面向对象分析

6.3.1

面向对象分析的系统模型1.基本模型6.3面向对象分析

6.3.1

面向对象分析的系统模型2.补充模型

补充模型是基本模型之外的用于帮助理解并延伸基本模型的模型,补充模型的组成部分:主题图是具有较强联系的类组织的集合体,它是对系统类图的进一步抽象,是较高层次上的系统视图。使用实例是对系统功能使用情况的文字描述,它描述系统的外实体与系统之间的信息交互关系。交互图是一个使用实例与完成相应功能的系统成分之间的对照图,它具体表明了使用实例中陈述的事件是由系统中的哪个服务来响应和完成,以及这个服务在执行过程中又进一步用到哪些其它对象中的服务。6.3面向对象分析

6.3.1

面向对象分析的系统模型2.补充模型用例名称借出图书参与者图书管理员(主要参与者),读者(次要参与者)假设图书馆是开架借阅,读者总是找到书后办理借书手续,因此,借书不需要验证库存,而且每本书都是可识别的。前置条件图书管理员已被识别和授权后置条件存储借书记录,更新库存数量,所借图书状态为出借主事件流1.图书管理员将读者借书卡提供给系统;2.系统验证读者身份和借书条件;3.图书管理员将读者所借图书输入系统;4.系统记录借书信息,并且修改图书的状态和此种书的可借数量;5.系统累加读者的借书数量;6.重复3-5,直到图书管理员确认全部图书登记完毕;7.系统打印借书清单,交易成功完成。备选事件流2a.非法读者

1.系统提示读者身份错误,用例结束2b.读者借书数已达限额

1.系统提示读者已达结束限额,用例结束2c.读者有过期未还书籍

1.系统提示读者应归还的书籍列表和到期日,用例结束5a.读者借书数已达限额

1.系统提示,并要求结束输入

2.图书管理员确认借书完成5b.读者有该书的预定记录

1.删除该书的预定信息6.3面向对象分析6.3.1面向对象分析的系统模型图书馆系统的用例图

6.3面向对象分析6.3.1面向对象分析的系统模型3.系统的详细说明详细说明是按照面向对象方法的要求格式对系统模型作出的进一步解释,它主要由类描述模板构成。

OOA的系统模型给出了对OOA分析结果的完整表达和精确描述。三部分关系:基本模型是描述表达OOA的核心,补充模型是对基本模型的必要补充和辅助说明,而详细说明则给出了系统模型中类、对象、属性和服务的详细定义与进一步解释。这三个部分组合起来,构成OOA分析文档的主要内容,也是OOA的主要工具,OOA就是根据这一框架来展开工作的。6.3面向对象分析

6.3.2

面向对象分析的过程在一个系统开发过程中进行了系统业务调查以后,就可以按照面向对象的思想来分析问题了。

OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行归类分析和整理。

OOA强调如下基本观点:

(1)分析规格说明的总体框架贯穿结构化方法,如整体和局部,类和成员,对象和属性等;

(2)用消息进行用户和系统之间以及系统中实例之间的相互通讯;6.3面向对象分析

6.3.2

面向对象分析的过程OOA大致上遵循如下六个基本步骤(Coad与Yourdon方法):

(1)标识问题域中的类和对象(2)标识结构(3)定义主题(4)定义属性(5)标识服务(6)汇集OOA的分析文档目录6.1面向对象分析的基本概念6.2统一建模语言6.3面向对象分析6.4面向对象的UML分析建模6.5面向对象分析案例6.4面向对象的UML分析建模

6.4.1

用例图用例(usecase)图来描述系统需求分析中的问题。其中用例是对用户所关心的事情的描述,而用例图则是从系统外部参与者(Actor)的角度理解系统的功能:它描述参与者与系统的交互,其参与者可以是一个用户,也可以是另一个系统。6.4面向对象的UML分析建模

6.4.1

用例图

1.用例图的组成与表示用例图主要包含参与者、用例和用例间的关系。(1)参与者参与者是系统外部的一个实体,通过向系统输入或请求某些事件来触发系统的执行。参与者由参与用例时所担当的角色来表示,角色是与系统有交互作用的实体(人或其他系统等),它在执行用例时与系统之间有信息的交流。参与者有三大类:系统用户、其他系统和一些可以运行的进程。6.4面向对象的UML分析建模

6.4.1

用例图(2)用例用例是外部可见的系统功能单元,这些功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。用例是对一组动作序列的描述,系统执行这些动作会对特定的参与者产生可观测的、有价值的结果。用例的作用在于不揭示系统内部构造的前提下定义连贯的行为。6.4面向对象的UML分析建模

6.4.1

用例图(3)用例间的关系用例除了与其参与者发生关联外,还可以具有系统中的多个关系,这些关系包括包含关系、扩展关系和泛化关系。

关联关系描述参与者与用例之间的关系,表示了参与者用例之间的通信。在UML中,关联关系使用箭头来表示。6.4面向对象的UML分析建模

6.4.1

用例图包含关系描述了一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。包含关系6.4面向对象的UML分析建模

6.4.1

用例图扩展关系

扩展关系描述一个用例可以被定义为基础用例的增量扩展,它是把新的行为插入到已有用例中。基础用例的扩展增加了原有的语义,此时是基础用例而不是扩展用例被作为例子使用。6.4面向对象的UML分析建模

6.4.1

用例图泛化关系

泛化关系表示一个用例可以被特别列举为一个或多个子用例,当父用例能被使用时,任何子用例也可以被使用。6.4面向对象的UML分析建模

6.4.1

用例图

2.用例建模

用例模型是面向对象分析的关键输入,通过建立用例模型可以获取系统的需求,归纳系统所要实现的功能,使最终的软件系统能最大限度的符合用户的要求。

用例建模一般涉及3个主要步骤:(1)确定参与者(2)确定用例(3)确定用例和参与者之间的关系。6.4面向对象的UML分析建模

6.4.1

用例图(1)确定参与者通过分析系统与外界的交互,考虑以下三个方面来解决。考虑使用系统的个人。①谁负责提供、使用或删除信息?②谁将使用该系统的主要功能?③谁对某个特定功能感兴趣?④在组织中的什么地方使用系统?⑤谁负责支持、维护和管理系统?考虑系统所连接的外部硬件设备。考虑与该系统交互的其他信息系统。6.4面向对象的UML分析建模

6.4.1

用例图(2)确定用例

确定用例就是确定系统需求,通过用例名称可以表达系统要完成的工作。确定参与者解决了“谁来做”的问题,而确定用例则是解决“做什么”的问题。确定用例一般从分析系统的参与者开始,考虑每个参与者是如何使用系统的。系统分析者先从用例的名称开始,然后添加用例的细节信息,这些信息由简短的描述组成,最后形成完整的规格说明。6.4面向对象的UML分析建模

6.4.1

用例图(3)确定参与者、用例之间的关系

主要是确定用例之间的关系以及参与者与用例之间的关系,确定用例之间的关系是确定用例之间是包含关系、扩展关系,还是泛化关系。如果要把一个用例中描述某项局部功能得动作组织到另外一个用例中,则建立它们之间的包含或扩展关系。如果不容易判断究竟是包含还是扩展关系,则优先使用包含关系。在基本用例的过程描述中需确切指出在哪个点以及什么条件下调用被包含用例或扩展用例。6.4面向对象的UML分析建模

6.4.2

类图分析模型是利用UML的类图将现实系统环境中的事物或发生的事件进行可视化的表达,包括领域对象或概念类、类之间的关系以及类的属性等。1.类的表示类是对一组具有相同属性、操作、关系和语义的对象的描述,它定义了一组有着状态和行为的对象。在UML中,类用被划分为名称、属性和操作3个部分的矩形来表示。6.4面向对象的UML分析建模

6.4.2

类图2.类之间的关系(1)关联关系

关联关系表示对象之间的结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。关联体现的是对象实例之间的关系,而不表示两个分类之间的关系。关联的名称关联的角色6.4面向对象的UML分析建模

6.4.2

类图2.类之间的关系(2)依赖关系

依赖表示两个或多个模型元素之间语义上的关系。它表示对一个元素(提供者)的某些修改可能会影响或提供消息给其他元素(客户),即客户以某种形式依赖于提供者。6.4面向对象的UML分析建模

6.4.2

类图2.类之间的关系(3)泛化关系

泛化关系是一种存在于一般元素和特殊元素之间的分类关系。泛化关系描述了“isakindof”的关系。例如卡车是汽车中的一种。泛化关系不仅用于类,还用于用例以及其他模型元素。6.4面向对象的UML分析建模

6.4.2

类图2.类之间的关系(4)实现关系

实现是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来,比如类和接口。通常在两种情况下被使用:在接口与实现该接口的类之间;在用例以及实现该用例的协作之间。6.4面向对象的UML分析建模

6.4.2

类图3.概念类在面向对象分析阶段,主要用概念类来分析类,概念类分为边界类、控制类和实体类3种类型,引入上述概念类是为了方便分析和设计人员确定系统中的类。(1)边界类边界类是描述系统与参与者之间交互的抽象要素。边界类只对系统与参与者之间交互的抽象建模,不表示交互的具体内容及交换界面的具体形式。边界类位于系统与外界的交界处,窗体、对话框、直接与外部设备交互的类等都是边界类的例子。6.4面向对象的UML分析建模

6.4.2

类图3.概念类(2)实体类实体类是系统表示客观实体的抽象要素。实体类保存的是要放进持久存储体的信息。所谓持久存储体是指像数据库系统、文件系统等可以永久存储数据的介质。6.4面向对象的UML分析建模

6.4.2

类图3.概念类

(3)控制类控制类是负责其他类工作的类。每个用例通常有一个控制类,控制用例中的事件发生顺序。控制类也可以在多个用例间共用。其他类并不向控制类发送消息,而是由控制类发出很多消息。6.4面向对象的UML分析建模

6.4.3

顺序图顺序图描述对象之间的动态合作关系,着重体现对象间消息传递的时间顺序,适合于描述实时系统和复杂的脚本。顺序图是由对象、生命线、消息和激活4种元素组成。6.4面向对象的UML分析建模

6.4.4

协作图协作图与顺序图一样都是用来描述对象间的交互关系,但协作图描述的是和对象结构相关的信息,侧重于研究对象间的合作,而时序图侧重于研究对象的活动顺序。协作图描述了两个方面:一方面是对交互作用的对象的静态结构的描述,包括相关对象的关系、属性和操作,被称为协作所提供的“上下文”;第二个方面是对为完成工作在对象间交换的消息的时间顺序的描述,被称为协作支持的“交互作用”。协作图包含了3个元素:对象、链和消息。6.4面向对象的UML分析建模

6.4.4

通信图6.4面向对象的UML分析建模

6.4.5

状态机图

状态图描述了一个特定对象的所有可能状态以及引起状态跃迁的事件。一个状态图包括一系列的状态以及状态之间的跃迁,状态图可用来模拟对象的按事件排序的行为。目录6.1面向对象分析的基本概念6.2统一建模语言6.3面向对象分析6.4面向对象的UML分析建模6.5面向对象分析案例6.5面向对象分析案例

6.5.1

案例概述

以图书管理系统作为实际案例,描述如何用UML和Rose建模工具在系统分析阶段为系统建模。运用面向对象的方法在分析阶段建模的主要步骤:需求分析主要用于获取用户需求,以用例图的方式表达用户的功能需求,并以文本方式来描述系统的其他一些非功能性需求。系统分析以需求分析为基础,分析系统中的主要类,画出每个类图,并确定类之间的关系。再用顺序图或协作图来描述系统的主要用例,最后形成系统分析的成果-分析模型,该模型作为一个从需求分析到设计模型的中间产品,主要从概念角度描述系统的结构和功能。6.5面向对象分析案例

6.5.2

需求分析系统需求一般分为三类:功能性需求、非功能性需求和可用性需求。1.功能需求描述图书借还的业务过程:系统要为每个读者建立一个账户,账户中存储读者的个人信息和图书借阅信息。图书的借阅是通过图书管理员与系统交互来实现的,读者不直接与系统进行交互,但读者可以通过网络远程与系统交互进行图书预借。借阅图书时,由读者在开放书架上找到所要借的图书交给图书管理员,由图书管理员输入读者借阅证ID,确定读者当前是否拥有借书权限,再输入图书ID,确定该图书当前能否借阅(如被其他读者预借则不能借阅),以上两条件都满足时,系统才接受借阅请求,读者才可以借出图书,此时系统还要保存读者的借阅记录,修改被借图书的借阅状态。还书时,图书管理员只要输入图书ID,系统自动修改读者借阅信息和图书的借阅状态。6.5面向对象分析案例

6.5.2

需求分析系统的主要功能性需求描述:

(1)图书管理系统为管理员提供图书借还主功能界面。

(2)图书管理系统为读者提供图书借阅查询和预借功能界面。(3)管理员负责对图书管理系统的系统维护工作,因此系统应赋予管理员对图书信息、读者信息和出版社信息等进行增加、修改、查询和删除等功能的操作权限。(4)图书信息、读者信息和图书借阅、预借等信息保存在对应的数据库表中6.5面向对象分析案例

6.5.2

需求分析2.创建用例视图(1)确定系统参与者和用例系统的外部用户包括图书管理员和读者,因此系统的参与者就是图书管理员和读者。系统中存在着如下的用例:借书——提供借阅图书的功能。还书——提供归还图书的功能。预借——提供预借图书的功能。检索——提供检索图书的功能。读者信息维护—提供创建、修改以及取消读者账户信息的功能图书信息维护—提供添加、修改及报废图书的功能。系统登录——提供系统登录功能。6.5面向对象分析案例

6.5.2

需求分析2.创建用例视图图

确定系统参与者6.5面向对象分析案例

6.5.2

需求分析2.创建用例视图图

确定系统用例6.5面向对象分析案例

6.5.2

需求分析2.创建用例视图(2)确定系统参与者与系统用例间的关系6.5面向对象分析案例

6.5.2

需求分析2.创建用例视图(2)确定系统参与者与系统用例间的关系6.5面向对象分析案例

6.5.3

系统分析借助用例图完成需求分析后,需要在其基础上进行系统分析,即从抽象的概念层次上确定系统的要素、构成和结构,从而得出分析模型,为创建设计模型提供依据。分析模型是系统分析的成果,由多个分析包、概念类和用例分析组成。建立分析模型所要做的主要工作是:用例视图分析、创建分析类图、用例实现及概念类的分析。6.5面向对象分析案例

6.5.3

系统分析1.用例视图分析用例视图分析的主要工作是确定组成系统的分析包、以及分析包之间的关系。用例视图是创建系统分析包的依据,在开始阶段可以直接把用例视图作为其分析的初步结构,然后再对各分析包进行分解

温馨提示

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

评论

0/150

提交评论