文档详情

面向对象分析的基本过程

新**
实名认证
店铺
DOCX
11.39KB
约3页
文档ID:490324069
面向对象分析的基本过程_第1页
1/3

第110章嬲匍对象介娇a ■ ~ j ■.点 ■ - j10.1面向对象分析的基本过程10.2需求陈述10.3建立对象模型10.4建立动态模型10.5建立功能模型10.6定义服务I a ■ I a ・■ 3 ■ I不论采用哪种方法开发软件,分析的过程都是提取系统需求的过 程分析工作主要包括3项内容,这就是理解、表达和验证首先,系 统分析员通过与用户及领域专家的充分交流,力求完全理解用户需求 和该应用领域中的关键性的背景知识,并用某种无二义性的方式把这 种理解表达成文档资料分析过程得出的最重要的文档资料是软件需 求规格说明(在面向对象分析中,主要由对象模型、动态模型和功能模 型组成)面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分 析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正 确模型在用面向对象观点建立起的3种模型中,对象模型是最基本、 最重要、最核心的10.1面向对象分析的基本过程10.1.1概述面向对象分析,就是抽取和整理用户需求并建立问题域精确模型 的过程通常,面向对象分析过程从分析陈述用户需求的文件开始可能 由用户(包括出资开发该软件的业主代表及最终用月单方面写出需求 陈述,也可能由系统分析员配合用户,共同写出需求陈述。

当软件项 目采用招标方式确定开发单位时,“标书”往往可以作为初步的需求 陈述接下来,系统分析员应该深入理解用户需求,抽象出目标系统的 本质属性,并用模型准确地表示出来用自然语言书写的需求陈述通题的精确而又简洁的表示后继的设计阶段将以分析模型为基础更 重要的是,通过建立分析模型能够纠正在开发早期对问题域的误解10.1.2 3个子模型与5个层次面向对象建模得到的模型包含系统的3个要素,即静态结构(对象 模型)、交互次序(动态模型)和数据变换(功能模型)解决的问题不同, 这3个子模型的重要程度也不同:几乎解决任何一个问题,都需要从客 观世界实体及实体间相互关系抽象出极有价值的对象模型;当问题涉 及交互作用和时序时(例如,用户界面及过程控制等),动态模型是重 要的;解决运算量很大的问题例如,高级语言编译、科学与工程计算 等),则涉及重要的功能模型动态模型和功能模型中都包含了对象模 型中的操作(即服务或方法)复杂问题(大型系统)的对象模型通常由下述5个层次组成:主 题层、类与对象层、结构层、属性层和服务层(图示0.1)10.2需求陈述10.2.1书写要点通常,需求陈述的内容包括:问题范围,功能需求,性能需求, 应用环境及假设条件等。

总之,需求陈述应该阐明“做什么”而不是 “怎样做”它应该描述用户的需求而不是提出解决问题的方法应 该指出哪些是系统必要的性质,哪些是任选的性质注意:应该避免对设计策略施加过多的约束,也不要描述系统的 内部结构,因为这样做将限制实现的灵活性不少用户书写的需求陈 述,都把实际需求和设计决策混为一谈系统分析员必须把需求与实 现策略区分开,后者是一类伪需求,分析员至少应该认识到它们不是 问题域的本质性质10.2.2例子以自动取款机0网系统为例10.3建立对象模型面向对象分析首要的工作,是建立问题域的对象模型这个模型 描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标 系统的静态数据结构静态数据结构对应用细节依赖较少,比较容易 确定;当用户的需求变化时,静态数据结构相对来说比较稳定因此,建立另外两个子模型需求陈述、应用领域的专业知识以及关于客观世界的常识,是建 立对象模型时的主要信息来源典型的工作步骤是:首先确定对象类和关联(因为它们影响系统 整体结构和解决问题的方淘,对于大型复杂问题还要进一步划分出若 干个主题;然后给类和关联增添属性,以进一步描述它们;接下来利 用适当的继承关系进一步合并和组织类。

而对类中操作的最后确定, 则需等到建立了动态模型和功能模型之后,因为这两个子模型更准确 地描述了对类中提供的服务的需求重点:如何确定类的关联和类的继承关系10.4建立动态模型在上面的基础之上,结合ATM系统的实例,进一步讲述建立动态 模型的方法重点:编写脚本和事件跟踪图和状态图10.5建立功能模型功能模型表明了系统中数据之间的依赖关系,以及有关的数据处 理功能,它由一组数据流图组成其中的处理功能可以用IPO图(或表)、 伪码等多种方式进一步描述注:通常在建立了对象模型和动态模型之后再建立功能模型实例:结合ATM系统的例子,讲解数据流图的概念和画法10.6定义服务“对象”是由描述其属性的数据,及可以对这些数据施加的操作 (即服务),封装在一起构成的独立单元因此,为建立完整的对象模 型,既要确定类中应该定义的属性,又要确定类中应该定义的服务 强调:需要等到建立了动态模型和功能模型之后,才能最终确定 类中应有的服务,因为这两个子模型更明确地描述了每个类中应该提 供哪些服务事实上,在确定类中应有的服务时,既要考虑该类实体 的常规行为,又要考虑在本系统中特殊需要的服务。

下载提示
相似文档
正为您匹配相似的精品文档