软件工程导论 (第五版 ) 1 第 10 章 面向对象分析10.1 面向对象分析的基本过程不论采用哪种软件工程方法开发软件,需求分析的主要工作都是:理解需求、表达需求和验证需求,下面的图概括地表示了参照当前系统建立目标系统的过程。图:参照当前系统建立目标系统面向对象分析 (Object-Oriented Analysis, 简称 OOA )的关键就是识别出对象与类,并分析它们之间的关系,最终建立对象模型、动态模型和功能模型。软件工程导论 (第五版 ) 2 10.1.1 概述系统分析员要善于学习、勇于实践 ,更重要的是一切从实际出发。[[ 注注 ]]“OOA 就是抽取和整理用户需求并建立问题域精精 确确 模模 型型的过程。”(P231)——这在一开始能做到吗?——扯蛋10.1.2 3 个子模型与5 个层次面向对象建模需建立包含系统的三个要素:1)静态结构(对象模型)、2)交互次序 (动态模型) 、3)数据交换 (功能模型)。建立系统模型的过程是一个迭代(iterations )式的自顶向下的求精过程。对于一个大型复杂系统来说对对 象象 模模 型型 一般由下述 5 个层次组成:软件工程导论 (第五版 ) 3 图 10.2 复杂问题的对象模型的5 个层次其中主题层是指从一个更高(高于“类”)的抽象层次来描述对象模型 (即从一个相当高的层次上描述总体模型),通过划分“主题”把一个复杂系统的对象模型分解成几个不同的概念范畴。其实上述 5 个层次就是OOA 中建立对象模型的5 项主要工作: 找出类和对象, 识别结构 (类或对象之间的关系),识别主题、定义属性、定义服务。我们知道动态模型和功能模型中都包含了对象模型中的操作,因此人们在定义每个类中的服务前,往往先建立起动态模型和功能模型,这样说来OOA 大体上可按下列顺序进行:(1)确定类和对象(2)确定关联(3)划分主题(4)定义属性(5)确定继承关系(6)建立动态模型软件工程导论 (第五版 ) 4 (7)建立功能模型(8)定义服务需要注意地是在这里我们根本不强调顺序,更不是谈什么步骤。10.2 需求陈述需求陈述的主要任务是准确地回答“系统必须做什么?”,而不是“系统应该怎么做?”10.2.1 书写要点10.2.2 例子我们用 “ATM 系统”(ATM 是 Automatic Teller Machine 的缩写,意即自动柜员机)的开发作为OOA&OOD的实例。软件工程导论 (第五版 ) 5 图 10.2ATM 系统10.3 建立对象模型10.3.1 确定类与对象1. 找出 候候 选选 的类与对象(例...