软件工程第7章 面向对象分析与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

还可找出其中的动词作为候选方法(即后面要介绍的服务),然后产生一个由对象(名词)
和方法(动词)构成的表格,作为词汇分析的初步结果,最后从中选出确定的真正的对象类。 如图7-5所示。
第7章
7.2 建立对象模型
7.2.1 确定对象和类
采用系统词汇法确定对象类,并进行建模的具体做法如下: (1)确定对象类 (2)准备数据词典 (3)确定关联
第7章
7.1 面向对象分析
7.1.2 面向对象分析的过程
2.需求建模 系统分析员根据所提取的用户需求,深入地理解用户需求,识别出问题域内的对象,并 分析它们之间相互的关系,抽象出目标系统应该完成的任务,并用OOA模型准确地表示出来, 即用面向对象观点建立对象模型、动态模型和功能模型。OOA模型是OOD的基础,它应该准 确、简洁地表示问题。通过建立模型,可以避免理解上的片面性,提高目标系统的正确性和 可靠性,在此基础上,编写出面向对象的需求规格说明书。 3.需求评审
象。
第7章
7.1 面向对象分析
7.1.4 对象模型的层次
3.OOA的主要流程 面向对象分析大体上按照如图7-4所示的顺序进行。
第7章
7.2 建立对象模型
7.2.1 确定对象和类
OOA的核心是确定问题域中相关的对象,找出这些对象是个重要而复杂的过程。一般采 用基于词汇分析的方法:从目标系统的描述开始,找出其中的名词作为候选对象类,此外,
开始另外一项工作,在分析过程中并不需要严格遵循自顶向下,逐步求精的原则。五项活动
可以同时(并行)处理,也可以从较高抽象层转移到较低的具体层,然后再返回到较高抽象层继 续处理。例如,当系统分析员在确定类\|&\|对象时,想到了该类应该包含的一个服务,于
是把这个服务的名字写在服务层,然后又返回到类\|&\|对象层,继续寻找另外的类\|&\|对
解问题的分析,确定目标系统所要做的工作,定义所有与待解决问题相关的类,并建立系统的
模型。OOA的核心思想是利用面向对象的概念和方法为软件需求建造模型,以使用户需求逐步 精确化、一致化、完全化。为了达到这一目标,必须完成以下任务:
(1)与用户进行充分沟通,全面理解和分析用户需求,明确所开发的软件系统的职责,
属性层和服务层,如图7-3所示。
第7章
7.1 面向对象分析
7.1.4 对象模型的层次
2.OOA的五项活动 OOA对象模型的五个层次对应着OOA过程中建立对象模型的五项活动。这五项活动是: 确定类\|&\|对象、识别结构、识别主题、定义属性、定义服务。 需要说明的是,这五项工作完全没有必要顺序完成,也无需在彻底完成一项工作以后再
1.分析需求文档 系统分析通常是从一个需求文档(或称需求陈述)和用户一系列的讨论开始的。大多数需 求陈述都是有二义性的、不完整的甚至不一致的。通过分析可以发现和改正需求文档中的歧 义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、 更准确。分析过程中,系统分析员除了要反复多次地与用户讨论沟通外,还应调研、观察和 了解现有的类似系统,从而快速地建立一个原型系统,通过在计算机上运行原型系统,使得 分析员和用户尽快交流和相互理解,从而能更正确地、更完整地提取和确定用户的需求。
第7章
面向对象的分析与设计
理解面向对象分析的主要任务和一般过程;
本章 要点
初步掌握对象模型的建立方法; 了解动态模型和功能模型的建立方法; 理解面向对象设计的基本模型及主要内容。
第7章
7.1 面向对象分析
7.1.1 面向对象分析的目标和任务
面向对象分析(Object Oriented Analysis,OOA)是软件开发过程中的问题定义和需求分 析阶段,这一阶段最后得到的是对问题领域的清晰、精确的定义。OOA的目标是完成对所需求
形成文件并规范地加以表述; (2)识别解决问题的对象集合及对象间的关系; (3)定义类(包括定义其属性和操作)并建立类间的层次关系; (4)通过建立模型来表示对象之间的关系及行为特性。
第7章
7.1 面向对象分析
7.1.2 面向对象分析的过程
第7章
7.1 面向对象分析
7.1.2 面向对象分析的过程
所谓服务是在接收到一条消息后所要进行的加工。定义服务时,首先定义行为,然后定 义实例的通信。值得说明的是,确定服务和消息,只有在建立了动态模型和功能模型之后,
才可能最后确定对象类的服务。本教材为保持案例的连续性,故将服务和消息在此介绍。
确定一个类中的服务,主要取决于该类在问题中的实际作用以及求解过程中承担的处理 责任,确定的原则如下: (1)基本的属性操作服务。即类中应提供的访问、修改自身属性值的基本操作。这类 操作属于类的内部操作,可不必在对象模型中显式表示。 (2)事件的处理操作。动态模型中状态图描述了对象应接收的事件(消息),类和对 象中必须提供处理相应消息的服务,这些服务用于修改对象的状态(属性值)并启动相应的 服务。
(1)对象模型描述系统的数据结构,它是用来描述系统包含的对象及对象之间关系的
模型; (2)动态模型描述系统的控制结构,它是用来确定各个对象之间交互及整体的控制结 构的模型; (3)功能模型描述系统的功能,它是用来描述系统要实现的功能的模型。
第7章
7.1 面向对象分析
7.1.4 对象模型的层次
1.对象模型的五个层次 复杂问题(大型系统)的对象模型由五个层次组成,即主题层、类\|&\|对象层、结构层、
(4)确定属性
(5)使用继承来细化对象类 (6)完善对象模型
第7章
7.2 建立对象模型
7.Hale Waihona Puke Baidu.3 确定主题
主题是一种关于模型的抽象机制,起一种控制作用。引入主题有助于分解大型项目以便 成立工作小组来承担不同的主题任务。主题有两种表示形式,如图7-7所示。
第7章
7.2 建立对象模型
7.2.4 确定服务和消息
需求规格说明文档经用户、领域专家、系统分析员和系统设计人员以及其他有关人员评
审、并进行反复修改后形成定稿,该文档将成为面向对象设计的依据。
第7章
7.1 面向对象分析
7.1.3 面向对象分析的三种模型
面向对象建模是OOA的关键。OOA的模型要表示出系统的数据、功能和行为三方面的基 本特征,因此通常需要建立三种模型,分别是对象模型、动态模型和功能模型。其中:
相关文档
最新文档