面向对象需求分析
9_面向对象的需求分析方法

9.1 面向对象技术概述9 面向对象的需求分析方法二者的本质区别• 面向过程的结构化系统 = 功能 + 数据 • 面向对象的系统 = 对象 + 消息9 面向对象的需求分析方法二者的本质区别银行账户对象 存款 取款 利息结算 账户 余额 存 款 账户 余额 利息结算 外部消息 取 款9 面向对象的需求分析方法面向对象方法的发展历史• 初始阶段• 1960’s:Simula编程语言 • 1970’s:Smalltalk编程语言• 发展阶段• 1980’s:理论基础,许多OO 编程语言(如C++, Objective-C等)• 成熟阶段• 1990’s:面向对象分析和设计方法(Booch, OMT等), Java • 1997:OMG 组织的统一建模语言(UML) • 逐渐替代了传统的结构化方法9 面向对象的需求分析方法面向对象的软件工程• 面向对象分析(Object Oriented Analysis, OOA)• 分析和理解问题域,找出描述问题域和系统责任所需的类及 对象,分析它们的内部构成和外部关系,建立OOA 模型。
• 面向对象设计(Object Oriented Design, OOD)• 将OOA 模型直接变成OOD 模型,并且补充与一些实现有关 的部分,如人机界面、数据存储、任务管理等。
• 面向对象编程(Object Oriented Programming, OOP)• 用一种面向对象的编程语言将OOD 模型中的各个成分编写成 程序,由于从OOA→OOD→OOP实现了无缝连接和平滑过 渡,因此提高了开发工作的效率和质量。
9 面向对象的需求分析方法面向对象的软件工程现实世界OOA结构化分析OOD结构化设计OOP结构化编程可执行软件系统9 面向对象的需求分析方法OO中的喷泉过程模型• 喷泉模型:• 在OO开发过程中,各阶段之间形 成频繁的迭代; • OO各阶段均采用统一的“对象”概 念,各阶段之间的区分变得不明 显,形成“无缝”连接,从而容易实 现多次反复迭代。
面向对象分析

面向对象分析:是确定需求或者业务的角度,按照面向对象的思想来分析业务。
例如:OOA只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。
OOA与结构化分析有较大的区别。
OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
基本步骤:
在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:
第一步,确定对象和类。
这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。
类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
第二步,确定结构(structure)。
结构是指问题域的复杂性和连接关系。
类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
第三步,确定主题(subject)。
主题是指事物的总体概貌和总体分析模型。
第四步,确定属性(attribute)。
属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。
第五步,确定方法(method)。
方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。
对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。
(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。
它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。
面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。
20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。
20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。
UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。
本章首先介绍面向对象的主要概念和思想。
在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。
第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。
Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。
如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。
一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。
1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。
可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。
对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。
例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。
图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。
面向对象的软件需求分析方法研究

面向对象的软件需求分析方法研究在现代软件开发中,需求分析是软件开发过程中的第一个重要步骤。
需求分析是指通过采集和整理用户要求、需求,进行建模、分析和评估,确定软件开发的需求,为软件开发提供蓝图。
而面向对象的需求分析方法是一种建立在面向对象设计基础之上的分析方法,下面将探讨一下这种方法的具体内容与实践。
一、面向对象需求分析方法的概念面向对象需求分析方法,顾名思义,是一种在需求分析过程中遵循面向对象设计思想进行的分析方法。
面向对象的设计是一种以对象为中心的设计方法,它将系统中的各个组件定义为一个个对象,并且将它们组合在一起完成特定的功能。
面向对象的设计方法具有高度的重用性、可扩展性和可维护性等特性,因此在软件设计中,越来越多的人选择使用面向对象的设计方法。
在面向对象需求分析方法中,分析人员需要把用户的需求转化为对象模型,并且将这些对象之间的关系和交互关系进行描述,并最终形成一套需求规格说明书。
通过对这些需求规格说明书的分析和评估,可以确定软件的功能、性能、界面等方面的要求,从而协助软件开发人员完成设计和编码等具体工作。
二、面向对象需求分析方法的主要步骤1、分析用户需求:在需求分析的开始阶段,分析人员需要建立和维护客户关系,获取软件需求相关的信息。
主要包括用户需求和软件约束条件,分析人员通过交流和调研等方式,与客户沟通并理解用户需求。
2、分析业务对象模型:分析人员需要将用户需求转化为对象模型,建立业务对象模型,识别和表示用户需求中的对象、行为和属性等。
通过业务对象模型的建立和规范化,可以确保需求描述的准确性和完整性。
3、识别和描述用例:分析人员需要识别和描述用例需求,表述各种用户使用系统时的情况。
通过用例分析,软件设计者可以从用户角度出发,理解和分析运行时的逻辑流程,进一步深入理解用户对系统的需求,推导出用例描述和系统功能。
4、设计和描述类:在分析用户使用场景和用例时,分析人员需要识别和描述其中所涉及的类,而每个类都是面向对象编程中不可缺少的元素。
《软件工程实用教程》第5_章_面向对象的需求分析

第5 章 面向對象的需求分析
5.2.2 封裝、繼承和多態
1.封裝 封裝是指把對象的外部特徵與內部實現細節分開,使 得一個對象的外部特徵對其他對象來說是可訪問的, 而它的內部細節對其他對象是隱蔽的。 對象具有封裝性的條件如下: (1) 有一個清楚的邊界,所有私有數據和操作的代碼都被 封裝在這個邊界內,從外面看不見更不能訪問; (2) 有確定的介面,這些介面描述這個對象和其他的對象 之間相互的作用; (3) 受保護的內部實現,這個實現給出了由軟體對象提供 的功能的細節,實現細節能在定義這個對象的類的外 面訪問。
第5 章面向對象的需求分析
通過在不同程度上運用抽象原則(忽略事物 之間的一些差異),可以得到較一般的類和 較特殊的類。特殊類繼承一般類的屬性和操 作,面向對象方法支持這種繼承關係的描述 與實現,從而簡化系統的構造過程及其文檔; 複雜對象可以用簡單的對象作為其構成部分 (稱為聚合); 對象之間通過消息進行通信,以實現對象之 間的動態聯繫; 通過關聯表達對象之間的靜態關係。
第5 章面向對象的需求分析
5.1.3 面向對象方法的優點 1. 與人們習慣的思維方法一致 2. 可使軟體系統結構更加穩定 3. 軟體具有更好的可複用性 4. 軟體更加便於維護與擴充
第5 章面向對象的需求分析
5.1.4 面向對象建模
用例模型:包含所有用例及其與用戶之間的關係; 對象模型:包含問題域涉及的類及其屬性和關係,其 作用是更詳細地提煉用例,將系統的行為初步分 配給提供行為的一組對象; 設計模型:將系統的靜態結構定義為子系統、類和介 面,並定義由子系統、類和介面之間的協作來實 現的用例; 實現模型:包含構件和類到構件的映射; 配置模型:定義電腦的物理節點和構件到這些節點的 映射; 測試模型:描述用於驗證用例的測試用例。
软件工程概论_8_面向对象需求分析

• 一.面向对象分析模型的组成结构 • 二.面向对象分析模型描述工具 • 三.面向对象分析的基本过程
• 四. 面向对象分析方法
• 五. 小结
一.面向对象分析模型的组成结构
数据模型
属性、操作、协作者
功能模型
类/对象 模型
对象关系模型
使用实例
对象-行为模型
行为模型
二.面向对象分析模型描述工具
1. 用例图
2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析 人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对 问题的一种无歧义的描述。模型由一组图示符号和组织这些 符号的规则组成。利用它们来定义和描述问题域中的术语和 概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型
2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别 结构、识别主题、定义属性和定义服务(方法)。对于一个复杂 问题的面向对象的模型可用五个层次表示:类-&-对象层、结 构层,主题层、属性层和服务层,见图3.3.8。
主题层 subject level 类-&-对象层object 结构层 structure 属性层 attribute 服务层 serves
•使用具有确切含义的名词。
• 尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含 义模糊的词作名字。例如,“库房”比“房屋”或“存物场所”更确切。
•必要时用名词短语作名字。
• 为使名字的含义更准确,必要时用形容词加名词或其他形式的名词 短语作名字。例如,“最小的领土单元”、“储藏室”、“公司员工”等 都是比较恰当的名字。
签定保险单 销售统计
客户
软件工程实用教程 (5)

【学习目标】
1.理解面向对象方法的基本概念 2.了解面向对象方法的特点与优点 3.初步掌握面向对象分析的各种模型及视图 4.掌握面向对象需求分析的过程与步骤
【教学方法】案例教学法
第五章 面向对象的需求分析
【教学重点】本章的学习重点在于正确理解面向对象方法
的基本概念:对象、类、封装、继承、多态性、消息、关
5.3.2 用例 用例是可以被执行者感受到的、系统的一个完整 的功能。用例具有下述特征: ●用例代表某些用户可见的功能,实现一个具体的 用户目标; ●用例总是被执行者启动,并向执行者提供可识别 的值; ●用例可大可小,但它必须是完整的; ●用例在以后开发过程中,可以进行独立的功能检 测。
5.3.3 用例之间的关系 用例之间主要有“关联”、“包含”和“扩展” 三种关系。下面分别给予说明。 1. 关联关系 关联(association):用单向箭头表示角色启动用例, 每个用例都有角色启动,除包含和扩展用例。无 论用例和角色是否存在双向数据交流,关联总是 由角色指向用例 。
5.2.2 封装继承和多态
封装:封装(Encapsulation)是面向对象方法的 一个重要原则,它把对象的属性和服务结合成一个 独立的系统单位,并尽可能隐藏对象的内部细节。 封装是一种信息隐藏技术,用户只能见到对象封装 界面上的信息,对象内部对用户来说是隐蔽的。 继承:继承(Inheritance)是指从一个类的定义中 可以派生出另一个类的定义,被派生出的类(子类) 可以自动拥有父类的全部属性和服务。 多态:多态性(Polymorphism)是指同名的方法 或操作在不同类型的对象中有各自相应的实现。
5.3 用例模型
1
执行者
主 要 内 容
面向对象需求分析——用例图和活动图

面向对象需求分析——用例图和活动图面向对象软件开发的方法有:a,面向对象分析(OOA)b,面向对象设计(OOD)c,面向对象实现(00I)d,面向对象测试(OOT),e,面向对象维护(OOM)这几个主要大步骤。
下边我们就从面向对象的角度来学习UML的相关图。
这里介绍面向对象分析阶段的用例图和活动图。
面向对象分析阶段,我们要明确系统的职责,范围和边界;确定软件的功能和性能;构建需求模型(用例模型)。
首先在这里说一下,为什么将这两个图放在一起,主要原因就是活动图的一个目的是更细致的描述用例图,和文档的配合使用,使用例图更加清楚明了。
先介绍一下:用例图1,概念:用例是系统的一个功能单元,是对用户需求的描述。
2,组成:参与者,用例及其之间的关系(包括关联关系,泛化关系,包含关系,扩展关系):3,用例建模的步骤:a,确定系统的范围和边界;b,确定系统的用例和参与者;c,描述用例;d,对用例分类,并确定用例之间的关系;e,建立用例图,并定义用例图的层次结构;f,评审用例模型。
下边我们看个例子:这是一个教务管理系统的总用例图和一个子一级用例图,当然还可以再分:在上述6个步骤中,我简单总结一下:a,系统边界,就是一个系统内部所有元素与系统外部事物的分界线。
b,用例和参与者,需要我们根基实际情况去抽象。
c,描述用例,这个我重点写一下(举例,选课注册):用例编号:0101用例名称:选课注册执行者:学生功能:实现学生选课注册的过程类型:主要用例,基本用例级别:一级过程描述:1,学生输入系统账号和密码,系统进行验证;2,查询课程信息3,查询个人选课信息4,若可以选课,则进行选课注册,并将选课信息写入数据库中5,返回选课注册是否成功异常事件流处理:1,学生的账号和密码错误,允许重新输入(3次)2,学生未按时交纳学费,不可选课3,学生人数已达到上限,不可选课。
(当然在这里在把下边的活动图,添加进来即可)d,用例分类和确定之间的关系,有端点用例,基本用例,主要用例,辅助用例等,关系弄准确就可以。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/1/8
12
UML的语言机制
UML 通过图形化的表示机制从多个侧面刻画系统的分 析和设计模型。 UML共定义十种视图,可分四类: (1) 用例图(use case diagram) 从外部用户的角度描述系统的功能, 并指出功能的执行者。 (2)静态图 类图(class diagram)、 类图描述系统的静态结构,类图的结点表示系统中的 类及其属性和操作,类图的边表示类之间的联系, 包括继承、关联、依赖、聚合等。
第六章 面向对象的需求分析
面向对象的需求分析方法的核心是利用面向对象的概念 和方法为软件需求建造模型。它包含面向对象风格的图 形语言机制以及用于指导需求分析的面向对象方法学。 面向对象的思想最初起源于1960年代中期的仿真程序设 计语言Simula67。1980年代初出现的Smalltalk语言及其 程序设计环境对面向对象技术的推广应用起到了显著的 促进作用。 1990 年代中后期诞生并迅速成熟的 UML (统一建模语 言,Unified Modeling Language)是面向对象技术发展 的一个重要里程碑。 UML 统一了面向对象建模的基本 概念、术语和表示方法,不仅为面向对象的软件开发过 程提供了能力丰富的表达手段,而且也为软件开发人员 提供了互相交流、分享经验的共用语言。
2019/1/8
9
飞
机
机身
机械控制系统
电子控制系统
2019/1/8
10
面向对象的概念与思想
(5)消息 消息传递是对象与其外部世界相互关联的唯一 途径。对象可以向其它对象发送消息以请求服务, 也可以响应其它对象传来的消息,完成自身固有 的某些操作,从而服务于其它对象。 例如,直升飞机可以响应轮船的海难急救信号, 起飞,加速,飞赴出事地点并实施救援作业。因 为对象的操作主要用来响应外来消息并为其它对 象提供服务,所以它们也被称作“外部服务”。
2019/1/8 13
对象图(object diagram) 对象图是类图的一个实例。它描述在某种状态下, 或者在某一时间段系统中活跃的对象及其关系。 在对象图中,一个类可以拥有多个活跃的对象实 例。 包图(package diagram) 包图描述系统的分解,表示包(package)以及包之间 的关系。 包由子包及类组成。 包之间的关系包括继承、构成与依赖关系。
2019/1/8
7
飞行器类 位 置,速 度,颜ຫໍສະໝຸດ 色 起 飞、降 落、加 速、维 修
轰炸机
直升飞机
大型客机
2019/1/8
8
面向对象的概念与思想
(4)聚集 现实世界普遍存在部分—整体关系。 例如,飞机可由发动机、机身、机械控制系统、 电子控制系统等构成。 部分 —整体关系在 OO方法学中表示为类之间的 聚集关系。在聚集关系下,部分类的对象是整体 类对象的一个组成部分。
2019/1/8 14
(3)行为图 交互图(interactive diagram) 状态图(statechart diagram ) 活动图(activity diagram) 它们从不同的侧面刻画系统的动态行为。 交互图描述对象之间的消息传递。它又可分为顺序 图 (sequence diagram) 与 合 作 图 (collaboration diagram)两种形式。顺序图强调对象之间消息发送 的时间序。合作图更强调对象间的动态协作关系。 合作图也可通过消息序号来表示消息传递的时间序, 只不过这种表示不如顺序图那样直观。 2019/1/8 15
2019/1/8
3
面向对象的概念与思想
OO (1) 对象 对象是现实世界中个体或事物的抽象表示, 是其属性和相关操作的封装。属性表示对象的性 质,属性值规定了对象所有可能的状态。对象的 操作是指该对象可以展现的外部服务。例如,大 型客机可视为对象,它具有位置、速度、颜色、 容量等属性,对于 该对象可施行起飞、降落、加 速、维修等操作,这些操作将或多或少地改变飞 机的属性值(状态)。
面向对象 = 对象 + 类 + 继承 + 聚集 + 消息。
2019/1/8 11
6.2 UML概述
6.2.1 UML的语言机制 UML 主要以 Booch 方法、 OMT 方法 [71] 和 OOSE 方法为基础,同时也吸收了其他面向对象建模方 法的优点,形成了一种概念清晰、表达能力丰富、 适用范围广泛的面向对象的标准建模语言。
飞行器类:
位 速 颜 起 降 加 维 置 度 色 飞 落 速 修
6
2019/1/8
面向对象的概念与思想
(3)继承 类之间的继承关系是现实世界中遗传关系的模 拟,它表示类之间的内在联系 以及对属性和操作 的共享,即,子类可以沿用父类 ( 被继承类 ) 的某 些特征。子类也可以具有自己独有的属性和操作。 例如,飞行器、汽车和轮船可归于交通工具类, 飞行器类可以继承交通工具类的某些属性和操作。 直升飞机、大型客机、轰炸机可归为飞行器类。
1
2019/1/8
面向对象的需求分析
面向对象的概念与思想 UML概述 基于UML的需求分析 以“家庭保安系统”为实例,介绍与需求分析相 关的部分 UML 语言机制以及基于 UML 的面向对 象的需求分析方法和过程。
2019/1/8
2
6.1 面向对象的概念与思想
客观世界中的应用问题都是由实体及其相互关系构成的。 可以将客观世界中与应用问题有关的实体及其属性抽象为 问题空间中的对象。 为应用问题寻求软件解,是借助于计算机语言对其提供的 实体施加某些动作,以动作的结果给出问题的解。 面向对象 (Object-Oriented, 简称 OO) 的需求分析方法通过 提供对象、对象间消息传递等语言机制让分析人员在解空 间中直接模拟问题空间中的对象及其行为
2019/1/8
4
如:人这个实体 属性:姓名、年龄、职业 行为:跑、跳
Tom Tom Name Name Age Age Professior Professior Walk Walk Dance Dance 属性 属性
行为 行为
2019/1/8
5
面向对象的概念与思想
(2)类。 类表示某些对象在属性和操作方面的共同特征。 例如,直升飞机、大型客机、轰炸机可归为飞行器 类。共同属性有:位置、速度和颜色等。 共同操作有:起飞、降落、加速和维修等。