面向对象的问题域分析方法

合集下载

面向对象分析实例

面向对象分析实例

4
学生ID 自选习题,
5
习题解答 核对答案
练习本类的属性和方法
确定对象类
属性: 方法:
01
习题号 编写习题,
02
题目内容 编写答案,
03
答案 习题入库
04
所属课程
02
筛选对象原则:
发现对象
2
3

从需求中找名词作为侯选对象:
教师,系统,习题,答案,作业,时间,学生,试题,系统管理员,权限,学校,班,学期,课程,习题板,考试板,练习本,习题库.
共18项
具体做法:
发现对象
系统:太大的抽象,不能作为对象.
时间:只有考试板要求,可作为考试板属性处理.
作业:是习题的同义词,可舍弃.
系统需求说明按三方面描述:
01
系统问题域说明:应用系统的业务范围
02
系统边界说明:确定系统与用户之间接口
03
系统功能说明:系统需要实现的责任
04
实例描述:习题管理系统
对象
系统问题域说明:
在一个公共习题库的支持下, 负责各科习题的教师: 可用系统编写习题及答案,并存入习题库; 从习题库中选择一组习题去组成作业,并在要求时间公布习题答案; 从习题库中选择一组习题组成考试题公布; 可以批改学生的作业; 学生答题后收卷,阅卷评分.
用系统完成作业或答题并提交给系统; 可在习题库中选择习题自己练习; 可以在公布答案后核对自己的作业;
每个学生:
负责习题,编班和权限管理和维护习题库.
一名系统管理员:


系统问题域说明:
系统的用户有本校教师,学生,系统管理员.
学校以班组织学生,每班每学期有若干课程.

02面向对象设计-问题域部分的设计

02面向对象设计-问题域部分的设计
2
(1)为复用设计与编程的类而增加结构
OOA识别和定义的类是本次开发中新定义的,需要进行 编程。 如果已存在一些可复用的类,而且这些类既有分析、设 计时的定义,又有源程序,那么,复用这些类即可提高 开发效率与质量。 可复用的类可能只是与OOA模型中的类相似,而不是完 全相同,因此需对二者进行修改。 目标:尽可能使复用成分增多,新开发的成分减少
8
(3)按编程语言调整继承
起因:OOA强调如实地反映问题域,OOD考虑实现问题, 所用语言不支持多继承,甚至不支持继承
多继承模式
狭义菱形
广义菱形
9
把多继承调整为单继承
A
B
C
A
B
C
因为聚合和泛化是不同的概念,这种方法并不是通用的(按 定义)。 在大多数情况下,需要考虑形成多继承的原因,将本来在 特殊类中显式定义的信息离出来,作为部分对象,以原来 的一般类作为整体对象。
供货商
1..*
0..*
客户
供货商 1
客户 1
供需合同
0..*
卖方
买方 …….
1..*
20
项目
语言
把多元关联转化为二元关联
人员
项目
任务项 项目名 人员 语言 ……
1 1..*
1 ..*
语言
*
1
1..*
人员
21

公司

*

雇员
1..*



工作


薪水



公司
工作
1
1..*
*
雇员
1
薪水
对关联进行调整后,要考虑关联的实现方式。

面向对象的需求分析方法

面向对象的需求分析方法

面向对象的需求分析方法面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。

它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。

面向对象的思想最初起源于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面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。

OOA与结构化分析有较大的区别。

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

OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。

在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。

分类结构就是所谓的一般与特殊的关系。

组装结构则反映了对象之间的整体与部分的关系。

OOA在定义属性的同时,要识别实例连接。

实例连接是一个实例与另一个实例的映射关系。

OOA在定义服务的同时要识别消息连接。

当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。

OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。

OOD模型由4个部分组成。

它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。

一、OOA的主要原则。

(1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。

抽象是形成概念的必须手段。

抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。

第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。

抽象是面向对象方法中使用最为广泛的原则。

抽象原则包括过程抽象和数据抽象两个方面。

过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。

数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。

面向对象分析方法

面向对象分析方法

面向对象分析方法1/2面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。

OOA与结构化分析有较大的区别。

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

OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。

在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。

分类结构就是所谓的一般与特殊的关系。

组装结构则反映了对象之间的整体与部分的关系。

OOA在定义属性的同时,要识别实例连接。

实例连接是一个实例与另一个实例的映射关系。

OOA在定义服务的同时要识别消息连接。

当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。

OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。

OOD模型由4个部分组成。

它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。

一、OOA的主要原则。

(1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。

抽象是形成概念的必须手段。

抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。

第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。

抽象是面向对象方法中使用最为广泛的原则。

抽象原则包括过程抽象和数据抽象两个方面。

过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。

数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。

面向对象分析.

面向对象分析.
面向对象分析是识别和分析问题域内的类与对象,并探究它们之间的关系,以构建简洁、精确且可理解的模型。这一过程从分析用户需求开始,通过需求陈述来整理和提炼用户的实际需求,需求陈述是细化和完善需求的基础。随后,系统分析员深入理解需求,抽象出系统本质属性,并用模型表示,涉及对象模型、动态模型和功能模型的建立。对象模型是核心,反映实体及关系组成,分别是主题层、类与对象层、结构层、属性层和服务层,通过这五个层次来全面描述系统的静态结构和动态行为。在进行分析时,并不需要严格遵守自顶向下的原则,而是要通过多次迭代来逐步完善模型。此外,需求陈述的内容包括问题范围、功能需求、性能需求等,描述用户需求而非解决方法,避免对设计策略施加约束。

面向对象的分析方法

面向对象的分析方法

如何确定执行者: 1、谁使用系统的主要ห้องสมุดไป่ตู้能(主执行者)? 2、谁需要从系统获得对日常工作的支持和服务? 3、需要谁维护管理系统的日常运行(副执行者)? 4、系统需要控制哪些硬件设备? 5、系统需要与其它哪些系统交互? 6、谁需要使用系统产生的结果(值)?
简单的用例:自动售货系统
客户
买饮料 供货
供货人
用例之间的关系
❖ 包含关系:使用包含(Include)用例来封装一组跨越 多个用例的相似动作(行为片断)。
《include》
• 有时当某用例的事件流过于复杂时,为了简化用例的描述,我们 也可以把某一段事件流抽象成为一个被包含的用例
用例之间的关系
3、扩展关系Extend 一个用例也可以定义为基本用例的增量扩展,这称作扩 展关系,即扩展关系是把新的行为插入到已有的用例中 的方法。
贸易经理 营销人员
设置边界
更新帐目
风险分析 交易估价
《使用》 《使用》
评价
进行交易
《扩展》
超越边界
记帐系统 销售人员
Use case图
采用“基于用例的方法”来识别和获取需求,是从外部的角度来看系统功能 ,建立系统的Use case模型。描述外部执行者(Actor)所理解的系统功能。即待开发 系统的功能需求。
用例 — 表示一个子系统,或者系统一个独立的功能。 角色— 表示外部的“执行者”。
描述方法: 用例 :
角色: 用例
连接:
一、执行者(Actor)
一、执行者
执行者是指用户在系统中所扮演的角色。执行者在用例
图中是用类似人的图形来表示, 但执行者可以是人,也可以
是一个外界系统。
注意:用例总是由执行者启动的。

面向对象分析方法

面向对象分析方法

(3)按照子类(也称为派生类)和父类(也称为基类)的关系,把若干 个类组成一个层次结构的系统。在这种类层次结构中,通常下层的派生类 具有和上层的基类相同的特征(包括数据和方法),这一特性称为继承 (Inheritance)。 (4)对象与对象之间只能通过传递消息进行通信(Communication with Message)。
面向对象的开发方法
1.Booch方法 Booch最先描述了面向对象的软件开发的基础问题,指出面向对象开发 是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接 近人对客观事物的理解。 2.Coad方法 Coad方法是1989年Coad和Yourdon提出的面向对象的开发方法,经典著 作有“OOA”, “OOP”,该方法比较完整而系统地介绍了面向对象的分析 和面向对象的设计。 3.OMT方法 OMT方法是1991年由James Rumbaugh等5人提出来的,其经典著作为 “面向对象的建模与设计”。 4.UML建模语言 UML(Unified Modeling Language)语言是一种统一建模语言,产生于90 年代中期,它不仅统一了Booch方法、OMT方法、OOSE方法的概念和表示 法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语 言。UML语言的出现具有重要的、划时代的意义,将是面向对象技术领域 内占主导地位的标准建模语言。
面向对象分析方法 OOA
Object-Oriented Analysis
传统的结构化方法适合需求比较确定的应用领域。但事实上系统的需 求却往往是变化的,而且用户对系统到底要求做什么也不是很清楚,而这 些在面向对象方法中不再成为问题,因而对象技术发展十分迅速,成为90 年代十分流行的软件开发技术。 面向对象的开发包括三个主要阶段:面向对象分析(Object-Oriented Analysis)、面向对象设计(OOD)和面向对象程序设计(OOP)。其中,OOA是 指系统分析员对将要开发的系统进行定义和分析,进而得到各个对象类以 及它们之间的关系的抽象描述;OOD是指系统设计人员将面向对象分析的 结果转化为适合于程序设计语言中的具体描述,它是进行面向对象程序设 计的蓝图;OOP则是程序设计人员利用程序设计语言,根据OOD得到的对 象类的描述,建立实际可运行的系统。

管理信息系统第九章 面向对象的分析与设计

管理信息系统第九章 面向对象的分析与设计
构成对象的基本要素: ➢ 标识:即是对象的名称,用来在问题域中区分其它对 象; ➢ 数据:描述对象属性的数据或数据结构,表明对象的 一个状态; ➢ 操作:即对象的行为。分为对象自身承受的操作和施 加于其它对象的操作; ➢ 接口:主要指对外接口,是指对象受理外部消息所指 定的操作名称集合。
一、对象的基本概念 -2
对象、类和消ห้องสมุดไป่ตู้传递
二、类的继承 -1
类的层次
实际应用中,事物分类很难一蹴而就,往往要先进行粗分 类,再进一步细分,最终使分类相互联系而形成完整系统结构.继 承是类之间的重要关系,依赖继承机制,可由类产生对象,或由已 知类定义其它类.
继承是指一个类(即称子类)因承袭而具有另一个类 (或称父类)的能力和特征的机制或关系。
称为OOPL)。50年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不 同部分发生冲突的问题。鉴于此,ALGOL语 言的设计者在ALGOL60中采用了以 "Begin……End"为标识的程序块,使块内变 量名是局部的,以避免它们与程序中块外的同 名变量相冲突。这是编程语言中首次提供封装 (保护)的尝试。此后程序块结构广泛用于高 级语言如Pascal 、Ada、C之中。
有继承关系的类之间应具有如下特性: 类间具有共享特征(包括数据和程序代码的共享); 类间具有细微的差别或新增部分(包括非共享程序代码 和数据); 类间具有层次结构。
二、类的继承 -2
类的层次
例如,飞机和交通工具都是类,它们之间的关系是“is a”关系,飞机是 一种特殊的交通工具。
通常,越上层的类越具有一般性和共性,越下层的类越特殊、越具体。
OOD是把系统所要求解的问题分解为一些对象及对象间传 递消息的过程;

面向对象的OOA_OOD软件开发技术分析

面向对象的OOA_OOD软件开发技术分析

第25卷 第5期2009年10月 忻州师范学院学报JOURNAL OF X I N ZHOU TE ACHERS UN I V ERSI TY Vol.25 No.5 Oct.2009 面向对象的OOA、OOD软件开发技术分析任胜兰(太原师范学院,山西太原030012)摘 要:面向对象是当前计算机界关心的重点,是上个世纪90年代软件发展的主流,实际上,面向对象的概念和应用已经超越程序设计和软件开发,而且已经渗透到了系统模拟、数据库、多媒体、图形技术、网络管理系统、CAD技术、人工智能等多个领域。

文章主要讨论面向对象的开发方法OOA和OOD,并且对面向过程与面向对象加以比较,阐述了面向对象的OOA、OOD之不足及适用范围,同时也分析了发展中存在的争论问题。

关键词:面向对象;OOA;OOD;软件开发中图分类号:TP311 文献标识码:A 文章编号:1671-1491(2009)05-0039-04 面向对象(Object-O riented,简称OO)技术是一种以对象为中心的分析和解决问题的新方法,它克服了传统方法中对象与行为之间联系松散的缺点,更能体现软件开发中的三个重要概念,即抽象、信息隐蔽和模块化。

因此面向对象技术已广泛应用于软件开发的各个阶段,从而产生了面向对象的分析方法OOA(Object-O riented Analysis),面向对象的设计方法OOD(Object-O riented Design)等面向对象的技术。

面向对象(OO:Object-O riented)是当前计算机界关心的重点,是90年代软件发展的主流,实际上,面向对象的概念和应用已经超越程序设计和软件开发,而且已经渗透到了系统模拟、数据库、多媒体、图形技术、网络管理系统、CAD 技术、人工智能等多个领域。

一些新的工程概念及其实现,如并发工程、综合集成工程等,也需要面向对象的支持。

实践证明,采用面向对象的方法在提高软件的可靠性、可理解性和可维护性,提高软件质量和生产效率,降低生产成本等方面都具有重要的意义。

软考知识点梳理--面向对象方法

软考知识点梳理--面向对象方法

软考知识点梳理--⾯向对象⽅法⾯向对象(Object-Oriented,OO)⽅法认为,客观世界是由各种对象组成的,任何事物都是对象,每⼀个对象都有⾃⼰的运动规律和内部状态,都属于某个对象类,是该对象类的⼀个元素。

复杂的对象可由相对简单的各种对象以某种⽅式⽽构成,不同对象的组合及相互作⽤就构成了系统。

OO⽅法是当前的主流开发⽅法,拥有很多不同的分⽀体系,主要包括OMT(Object Model Technology,对象建模技术)⽅法、Coad/Yourdon⽅法、OOSE(Object-Oriented Software Engineering,⾯向对象的软件⼯程)⽅法和Booch⽅法等,⽽OMT、OOSE和Booch已经统⼀成为UML(United Model Language,统⼀建模语⾔)。

使⽤OO⽅法构造的系统具有更好的复⽤性,其关键在于建⽴⼀个全⾯、合理、统⼀的模型(⽤例模型与分析模型)。

与结构化⽅法类似,OO⽅法也划分阶段,但其中的系统分析、系统设计和系统实现三个阶段之间已经没有 “缝隙”。

也就是说,这三个阶段的界限变得不明确,某项⼯作既可以在前⼀个阶段完成,也可以在后⼀个阶段完成;前⼀个阶段⼯作做得不够细,在后⼀个阶段可以补充。

OO⽅法使系统的描述及信息模型的表⽰与客观实体相对应,符合⼈们的思维习惯,有利于系统开发过程中⽤户与开发⼈员的交流和沟通,缩短开发周期。

OO⽅法可以普遍适⽤于各类信息系统的开发,但是,OO⽅法也存在明显的不⾜。

例如,必须依靠⼀定的OO技术⽀持,在⼤型项⽬的开发上具有⼀定的局限性,不能涉⾜系统分析以前的开发环节。

当前,⼀些⼤型信息系统的开发,通常是将结构化⽅法和OO⽅法结合起来。

⾸先,使⽤结构化⽅法进⾏⾃顶向下的整体划分;然后,⾃底向上地采⽤OO⽅法进⾏开发。

因此,结构化⽅法和OO ⽅法仍是两种在系统开发领域中相互依存的、不可替代的⽅法。

OOA 的基本任务是运⽤OO⽅法,对问题域进⾏分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。

第六讲面向对象分析

第六讲面向对象分析
问题域(problem domain):被开发系统的应用领 域,即在现实世界中由这个系统进行处理的业务范 围 系统职责(system responsibilities),所开发 的系统应该具备的职能
分析中存在的问题
1.对问题域和系统职责的理解 2.交流问题 3.需求的不断变化 4.软件复用的要求 如何解决?
3. 阅卷子系统 为了方便老师批量批改解答题和程序设计题,系统能 灵活支持将某道题的学生解答汇总成一个文档供老师 拿回去批阅,并将阅后成绩导入数据库中。 4. 给分子系统 在每小题的成绩都已经给出的情况下,统计出每一个 学生的最终机考成绩并记载到数据库中。 5. 统计子系统 统计子系统主要是提供考试结果分析信息,以方便老 师了解考试情况,对教学结果做出较好的评估。
第7步 优化用例模型——系统分析员检查模型中的 每个用例,提炼出公共部分,创建抽象用例,并 用使用关系与之连接;确定补充功能或可选功能; 检查每个用例,如果发现一个用例比较大,并且 其中既包含了一般处理又包含了特殊处理,那么 则应该将特殊处理的部分提取出来,创建单独的 用例,并且用扩展关系连接相关的用例。这样做 可以减小用例规模,简化用例的处理。
办公室
1.协助馆长制订工作计划、规章制度和总结工作。 2.负责汇总全馆的业务统计。 3.办理读者借书证。 4.负责处理各种处罚。 5.负责全馆人事、财务、劳动纪律等的管理。 1.负责中外文图书、期刊、音像制品的采购、验收、登录、注销和财产估价工作。 2.组织和开展国内外图书、期刊等文献资料的交换工作。 3.新书报导等任务。 4.负责全馆中外文书刊资料的著录、标引、加工和典藏等工作; 5.图书馆书目数据标准化及维护。
面向对象分析的过程
面向对象分 析,就是抽 取和整理用 户需求并建 立问题域精 确模型的过 程。

软件工程 面向对象的分析设计方法

软件工程 面向对象的分析设计方法

实验三:面向对象的分析设计方法一、实验目的:学习用Rose或Together等工具绘制UML图,通过实际绘制UML图加深理解UML,了解利用UML进行面向对象的分析、建模和面向对象系统设计的方法。

二、实验内容:利用Rose绘制给定的用例图、包图、活动图、序列图、协作图、类图。

三、实验方法和步骤:(一)Rose绘图环境的使用(二)人事档案管理系统的面向对象分析首先明确问题域和系统责任,目标系统的主要功能是:人事信息的变动管理(增、删、查、改、打),人事信息查询检索、分类汇总、统计报表,用户管理、登录,下属部门数据的维护、数据备份与恢复。

根据系统的这些总体信息,可以确定系统的参与者(角色)和用例。

(1)确定系统的参与者该系统的参与者(系统用户)是进行日常人事档案信息管理的操作员和进行基础数据维护与数据备份(恢复)的管理员。

(2)确定系统用例可将系统分为如下用例:人事档案信息管理用例、系统账户管理用例、部门数据维护用例、系统维护用例。

①人事档案信息管理用例:该用例的参与者是一般的操作员,需要经过系统登录后才能正式进入系统,完成人事档案信息的变动管理、分类汇总统计、报表打印等功能。

②系统账户管理用例:完成系统用户的增、删、查、改、打功能。

③部门数据维护用例:完成部门信息的增、删、查、改、打功能。

④系统维护用例:完成系统数据的备份和恢复功能。

(3)识别系统中的类可从类的表现形式或分类来识别类,类的表现形式有:外部实体、事物、事件、角色、组织单元、场地、结构。

类又分为实体类、边界类和控制类。

①参与者相关的类。

本系统的参与者是系统用户,包含的属性有登录名、密码、类别(操作员或管理员)、操作权限等。

②其他外部实体(数据库)类。

●员工人事档案信息类,包含的属性有员工编号、姓名、所在部门、性别、年龄等。

●部门信息类,包含的属性有部门编号、部门名称等。

③边界类。

●系统用户登录窗口、系统主界面窗口、用户信息管理窗口。

●员工人事档案信息管理窗口、人事信息查询显示窗口、分类统计窗口、人事信息报表打印窗口。

软件需求工程 第11章 面向问题域的需求分析方法

软件需求工程 第11章 面向问题域的需求分析方法
• 按系统软件和应用软件分类,进一步将后者划分为商业软件和工程软件两类。 • 按批处理系统/脱机系统、交互系统和实时系统等分类。 • 按以数据处理为主的系统、交互为主的系统和算法为主的系统等分类。
问题框架可根据问题域特征、接口特征和需求特征定义一个直观的、可标识的问题类。对于上面所提 及的五类基本问题,可以用五个不同的基本问题框架分别进行描述。 在形式上,一个问题框架类似于一个问题图。 与问题图稍微不同的是,问题框架中对每个域1的类型与共享现象的类型都进行了描述。 问题框架不对应具体问题,其中的组成元素也不具有任何实际的意义。 具体应用一个问题框架于某个实际问题称为实例化该问题框架,实例化后的结果称为问题框架实例。
11ቤተ መጻሕፍቲ ባይዱ4 问题框架的类型
信息显示问题框架的其他两种变体
除带连接域的变体外,信息显示问题框架还有两种常见的变体。第一种变体引进一 个模型域,并将信息显示问题框架用两个子框架表示,其中第一个子框架对现实世界 进行建模,生成一个反映现实世界的模型域; 第二个子框架基于该模型域显示需求 中所要求的信息,如图所示:
11-2 问题域的划分
11-2 问题域的划分
分治策略
对于复杂问题的分析,一般的做法是采用“分而治之”的策略。人们一般采用层次式功能 分解的方法。 1. 确定系统所需的各项功能; 2. 若某些(或个)功能对应于一个足够小的具体实现单元,则由该实现单元直接实现这些 (或个)功能; 3. 否则,把功能分解为一系列子功能,并重复步骤2和3,直到所有子功能可分别对应一个 足够小的具体实现单元。
问题框架是一种模式,它捕获并定义了常见的简单子问题的类型。问题框架的作用类似于设计模式,只 是前者用于问题的分析和描述,后者用于解决方案的设计。
11-4 问题框架的类型

《实用软件工程》第7章 面向对象分析

《实用软件工程》第7章 面向对象分析
一般来说,应该按照问题领域而不是功能分解的方法来确定主题。此外确定主题应遵循 “使不同主题内的类之间依赖和交互最少”的原则来确定主题,可以使用UML的包来展现主题。
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。

1.3 面向对象的分析方法

1.3 面向对象的分析方法

1.3 面向对象的分析方法面向对象分析作为一个比较全面的方法,面向对象分析由五个主要步骤组成,即确定类与对象,识别结构,识别主题,定义属性和定义方法。

一旦建立了模型,就可以由五个层次来表示,它们是:主题层主题给出分析模型的总体概貌。

对象层对象是数据及其处理的抽象。

它反映了系统保存和处理现实世界中某些事物的信息的能力。

结构层结构表示问题域的复杂性。

类—成员结构反映了一般——特殊关系,整体——部分结构反映了整体和部分的关系。

属性层属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出并在对象的存储中定义。

方法层方法是在收到消息后必须进行的处理,在图上定义它并在对象的存储中指定。

一、确定类与对象1、什么是类、对象在面向对象分析中对象是一个封装体和抽象体,即是属性和处理这些属性的方法的封装体以及问题域的抽象体。

类是对一个以上对象的共同属性和方法集合的描述,包括如何在一个类中建立新对象的描述。

属性以及处理这些属性的方法的封装体对面向对象分析模型的稳定性影响很大。

首先,封装性是可以将属性和方法看成一个不可分割的整体的基础。

第二,封装性有助于减少重复劳动。

在面向对象分析中,对问题域中某件事情的抽象是很重要的。

事实上,在每次分析活动中,分析人员必须首先理解要分析的问题域。

而将对象定义为现实世界的抽象,这样有助于深刻理解问题域,从而获得系统模型。

这种模型至少可以产生一个现实的可观察且可管理的模型层集合,包括主题、对象、结构、属性和方法。

系统模型还为上下文的初始表示奠定了基础。

上下文树是由系统分析人员在分析过程中画出来用于技术决策的。

系统上下文表明该系统包含有几个问题域、要保存什么样的数据、处理的复杂程度如何等。

系统上下文有着“四重约束”,即预算、进度、性能和人员。

为了使一个项目顺利进行,必须满足所有这四个约束。

2、为什么要识别对象识别对象的主要目的是为了使一个系统的技术表示同现实世界更为接近。

这种分析的表示和策略是依据人类的3种基本分析方法的,即对象和属性,类与成员,以及整体和部分。

第10章面向问题域的需求分析方法

第10章面向问题域的需求分析方法

变换问题框架
直观思想:存在一些计算机可读的输入文件, 其数据必须变换,以给出所需要的特定输出文 件。输出数据必须遵守特定的格式,按照特定 的规则从输入数据中导出。问题是要建立一个 机器,该机器从输入中产生所需要的输出。其 问题框架见P(140)
10.5PDOA方法的分析步骤
PDOA方法的基本过程可分为三步 1)搜集需求信息,界定和描述问题及问题域; 2)划分问题域并开发相关问题框架; 3)根据问题框架的类型进一步描述问题域的
10.3问题框架
问题框架是一种模式,它捕获并定义了常见的 简单子问题的类型。
问题框架由三部分组成:问题域D,需求R,机 器M
五种基本问题框架:需求式行为问题框架、命 令式行为问题框架、信息显示问题框架、工件 问题框架、变换问题框架
10.4问题框架的类型
需求式行为问题框架 需求式行为问题框架的直观思想是:存在客观
需求分析文档全部包含在问题域中,与机器域 无关
程序作用在机器域中,与问题域无关。 规格说明文档描述问题域与机器域之间的接口
需求分析文档包括两方面的内容:问题域知识 的描述,用K表示;用户期望在问题域中产生 的效果,即用户需求,用R表示;
S表示需求规格说明时,K,S⇒ R
10.2问题域的划分
用来产生相关效果的方法可分为直接方法和间接方法。 直接方法是指机器的输入/输出设备,间接方法则包括 用户以及可以执行任务的其他计算机等。
用户需求可视为通过计算机程序在问题域中施加的效 果,这些效果是对用户预期的描述。
问题的解决方案(解系统)
在软件开发中是指在计算机上运行、且能解决 问题的程。
问题框架实例的组合与基于问题框架划分问题 及其问题域相辅相成,它主要考虑在组合各个 独立的问题框架实例时,如何使不同的问题框 架实例在整体上保持协调,从而使它们能与原 来的整个问题及其问题域保持一致。问题框架 实例间的组合与它们之间存在的关系密切相关, 不同类型的关系所对应的组合问题不同.详情 请看书本第151—152页
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档