需求的OO描述方法

合集下载

OOD模型设计

OOD模型设计

OOD模型设计目录1 面向对象设计(OOD)的定义? (3)2 面向对象设计(OOD)与面向对象分析(OOA)的关系? (3)3 面向对象设计(OOD)的特点? (3)4 面向对象设计(OOD)过程以及过程模型? (4)4.1 问题域部分的设计 (6)4.2 人机交互部分的设计 (7)4.3 控制驱动部分的设计 (8)4.4 数据管理部分的设计 (9)4.5 构件及部署部分的设计 (10)1 面向对象设计(OOD)的定义?在面向对象分析阶段,已经针对用户需求建立起用面向对象概念描述的系统分析模型。

在设计阶段,要考虑为实现系统而采用的计算机设备、操作系统、网络、数据库管理系统以及所采用的编程语言等有关因素,进一步运用面向对象的方法对系统进行设计,最后形成一个可以实现的设计模型,即面向对象设计模型。

2 面向对象设计(OOD)与面向对象分析(OOA)的关系?在面向对象分析阶段,针对的是现实世界,把需求转化为面向对象概念所建立的模型,以易于理解问题域和系统责任,最终建立一个映射问题域,满足用户需求,独立于实现的OOA模型,面向对象的设计就是在面向对象分析的基础上运用面向对象方法主要解决与实现有关的问题,目标是产生一个符合具体实现条件的OOD模型。

由于OOD以OOA为基础,且OOA与OOD采用一致的表示法,使得从OOA到OOD不存在转换,只需做必要的修改与调整。

OOA与OOD之间不存在传统方法中分析与设计之间的鸿沟,二者能够紧密衔接。

OOA与OOD之间不强调阶段划分,但是OOA与OOD有着不同的侧重点和不同的分工,并因此具有不同的开发过程及具体策略。

“分析”只针对问题域和系统责任,不考虑实现有关的因素,建立一个独立于实现的OOA模型;”设计“则考虑与实现有关的问题,如选用的编程语言、数据库系统和图形用户界面等,建立一个针对具体实现的OOD模型。

3 面向对象设计(OOD)的特点?•以面向对象的分析为基础,一般不依赖结构化分析•与相应的OOA方法共同构成OOA&D方法体系,OOA和OOD采用一致的概念与原则,但属于软件生命周期的不同阶段,有不同的目标和策略•较全面地体现了面向对象方法的概念与原则•大多数OOD方法独立于编程语言,但是具体应用OOD时,则要考虑特定编程语言,因为它通过面向对象的设计所得到的系统模型,要由确定的编程语言实现4 面向对象设计(OOD)过程以及过程模型?在OOA 阶段只考虑问题域和系统责任,在OOD阶段则要考虑与具体实现有关的问题,这样做的目的是•使反映问题域本质的总体框架和组织结构长期稳定,而细节可变•把稳定部分(问题域部分)与可变部分(与实现有关的部分)分开,使得系统能从容地适应变化•有利于同一个分析模型用于不同的设计和实现•支持系统族和相似系统的分析与设计•使一个成功的系统具有超出其生存期的可扩展性为达到上述目的,设计如下的面向对象设计模型从一个侧面观察OOD模型,它包括一个核心部分,即问题域部分;还包括四个外围部分,即人机交互部分、控制驱动部分、数据管理部分以及构件及部署部分。

面向对象

面向对象

面向对象面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

定义首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。

在Java中,面向对象可以看成面向抽象和面向接口编程。

浅谈面向对象谈到面向对象,这方面的文章非常多。

但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。

起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。

可是,这个定义显然不能再适合现在情况。

面向对象的思想已经涉及到软件开发的各个方面。

如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。

许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。

看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。

这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。

面向对象的分解根据抽象关键的问题域来分解系统。

面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。

一、传统开发方法存在问题1.软件重用性差重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。

软件重用性是软件工程追求的目标之一。

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

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各阶段均采用统一的“对象”概 念,各阶段之间的区分变得不明 显,形成“无缝”连接,从而容易实 现多次反复迭代。

OO设计原则

OO设计原则

OO设计原则在软件软件系统中,一个模块设计得好不好的最主要、最重要的标志,就是该模块在多大程度上将自己的内部数据和其他与实现有关的细节隐藏起来。

一个设计得好的模块可以将它所有的实现细节隐藏起来,彻底地将提供给外界的API和自己的实现分隔开来。

这样一来,模块与模块之间就可以仅仅通过彼此的API相互通信,而不理会模块内部的工作细节。

OO设计根本的指导原则是提高可维护性和可复用性。

这些原则主要有:1. 开闭原则一个软件实体应该对扩展开放,对修改关闭。

在设计一个模块的时候,就当使这个模块可以在不被修改的前提下被扩展。

换言之,就当可以在不必修改源代码的情况下改变这个模块的行为。

如何做到既不修改,又可以扩展?解决问题的关键在于抽象化:在Java语言里,可以给出一个或多个抽象Java类或Java接口,规定出所有的具体类必须提供的方法特征作为系统设计的抽象层。

这个抽象层预见了所有的可能扩展,因此,在任何扩展情况下都不会改变。

这就使得系统的抽象层不需要修改,从而满足了—对修改关闭。

同时,由于从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的设计对扩展是开放的。

开闭原则实际上是对“对可变性的封闭原则“:找到一个系统的可变因素,将之封装起来。

这个原则意昧着两点:1) 一个可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面。

同一种可变性的不同表象意昧着同一个继承等级结构中的具体子类。

继承就当被看作是封装变化的方法,而不应当被认为是从一般的对象生成特殊对象的方法。

2) 一种可变性不应当与另一种可变性混合在一起。

(所有类图的继承结构一般不会超过两层,不然就意昧着将两种不同的可变性混合在了一起。

)开闭原则是总的原则,其它几条是开闭原则的手段和工具。

2. 依赖倒转原则依赖倒转原则讲的是:要依赖于抽象,不要信赖于实现。

开闭原则是目标,而达到这一目标的手段是依赖倒转原则。

抽象层次包含的是应用系统的商务逻辑和宏观的、对整个系统来说重要的战略性决定,是必然性的体现;而具体层次则含有一些次要的与实现有关的算法和逻辑,以及战术性的决定,带有相当大的偶然性选择。

oo结尾的英语单词

oo结尾的英语单词

oo结尾的英语单词这是一段有关以“oo”结尾的英语单词的文章,这是一组词汇,可以满足学习者的不同语言需求。

以“oo”结尾的英语单词丰富了学习者的英语表达能力,也增强了英语写作技巧。

一、goroogoroo是一个口头用语,意思是“到达或达成目的”,尤其是在汽车出行方面。

这是一个动态单词,表示不断运行向前,以达成目标。

例如:Let goroo!(让我们一路顺风!)go好像有比goroo更广泛的用途。

这个词不仅可以表示汽车行驶的运动,还可以用来表示其他类型的行动,如进行工作、活动、学习,等等。

例如:Go and get it now.(现在去把它拿来。

)二、doodoo是一个口头用语,用于表示“完成,做完”。

例如:Don forget to doo it.(别忘了尽力完成它。

)doo这个词也可以用来表示物体、活动、动作等其它不同方面的完成。

例如:I dooed the assignment.(我做完了作业。

)三、kangarookangaroo是一个地道的英语单词,意思是“袋鼠”。

它的拼写也很容易记住,比如图案可以作为记忆的参照,例如kangaroo的首字母“k”就像袋鼠的大腿,“a”像袋鼠的脚,“o”就像是袋鼠的尾巴。

四、zoozoo是一个地道的英语单词,意思是“动物园”,它也和其他常见的动物有着关联,比如lion(狮子),elephant(大象),tiger(老虎),zebra(斑马)等。

这些动物也都是动物园的重要展品,是许多孩子们来动物园时最感兴趣的生物。

例如:My family went to the zoo and saw a lot of animals.(我们一家去动物园,看到了很多动物。

)五、scoopscoop是一个地道的英语单词,意思是“勺子”。

它通常用来描述一种小型的铲子,这种铲子有着宽大的头部,可以用来挖掘土壤或捡起物体,也可以用来吃冰淇淋或淘汰细菌。

这是一个非常实用的工具,常用于家庭装修、园艺花园种植、小型建筑等等。

企业OO介绍

企业OO介绍

企业QQ是腾讯公司针对企业需求量身打造的QQ平台,安全、高效、可管、可控。

众所周知,很多公司都要用到QQ进行日常办公。

但同时面临着很多问题(比如:账号安全,聊天记录不能保存、淀,不能统一管理员工的QQ)
功能介绍:。

连号QQ,所有账号由公司管理员统一管理,统一下放回收。

内部员工层级管理。

内部组织结构清晰明了,内部查找,沟通非常方便。

每个阶层的管理者都可以监督管理到下面人员的客户和聊天内容,作为管理者您可以看到下面的人在做什么。

聊天信息漫游永久存储在云端,需要时是可查,可选,可使用。

客户不流失,所有客户永久保留不被删除带走。

离职员工的账号可回收重新启用,客户依然存在。

可以屏蔽禁止个人QQ的登录。

对外是以公司的logo.电子名片进行展示。

纯办公、无游戏/娱乐/新闻。

广播功能可以一键通知所有员工,且无法忽略。

所有群的权限是需要下放的,有管理员统一管控。

可作为电子通讯录,取代A4纸张的通讯录表格,减少行政人员的工作量。

每个账号可以加外部好友1500个。

企业邮箱图标,绑定公司域名,收发邮件方便快捷。

绑定手机,短信群发。

可以进行个性化管理,上网管理和软件管理,禁用网站和软件。

企业文档共享管理系统,企业微云,文档使用权限管理。

手机端登陆,移动的公司通讯录,移动的办公软件。

聊天窗口专业简捷,个人名片,公司简介一目了然。

UML建模案例——超市进销存管理系统

UML建模案例——超市进销存管理系统

实验报告规实 验 报 告姓 名 学 号 班 级 成 绩实验名称 超市进销存管理系统的UML建模 实验日期一.实验容基于OO设计与分析方法,用统模语言UML完成一个超市进销存管理系统要求:软件系统模型包括8种建模图,其中至少包含三个主要用例的用例脚本描述、顺序图、活动图和两个有较复杂行为的类的实例状态图。

二.需求分析文档描述超市进销存管理系统要求能对超市的进、销、存行为进行管理,并且能根据不同权限的系统用户的需求进行报表的生成和查询,为超市管理者的决策提供协助。

当库存和在架商品数量低于临界值时,能发出警报,提醒库存管理人员。

当销售人员售出商品时,记录的在架商品的数量能相应的减少出售数量。

能进行人员的日常管理。

三.设计方法、思路和主要技术设计方法、思路:根据系统需要实现的功能,我将系统划分成五个子系统,分别是销售部、进货部、库存部、会计部、经理室。

分别用于实现商品的销售,商品的进货,商品的库存,金钱和报表,人事和决策的管理。

主要技术:UML四.软件系统建模(包括完整建模图) (一)系统用例图(1)企业级用例图(2)系统级用例图(3)销售部用例图(4)进货部用例图用例生成定单”的描述用例名称 生成定单标识符 SP0001用例描述 当进货员收到经理发出的定货单,联系供货商,谈好价格,报经理审核后,生成定单,用例结束。

参预者进货员 经理 供货商优先级 1状态 未审核前置条件 定货员收到经理发出的定货单后置条件 定货基本操作流程 进货员根据定货表选择多家供货商联系,谈好价格,将多家供货商的价格报经理审核,由经理选择供货商,然后进货员生成定单。

可选操作流程 进货员根据定货表先选择一家供货商联系,谈好价格,将价格报经理审核,审核通过,生成定单,不通过再联系下一家供货商。

被泛化的用例 无被包含的用例 无被扩展的用例 无(5)库存部用例图用例货物上架”描述用例名称 货物上架标识符 SP0003用例描述 当在架商品数量低于最小临界值,库存员收到警报,将库存货物摆上货架,用例结束。

03-系统需求建模-事件和事物

03-系统需求建模-事件和事物

l
图形模型:描述系统的图表或系统某些方面的示 意性表示
8
1.3 用于分析和设计的模型
分析阶段创建的模型
l l
设计阶段创建的模型
l l l l l l l l l l
事件列表 事物列表 基于UML的OO方法
l l l l l l
体系结构图 界面布局图 系统结构图 程序流程图 设计类图 时序图 包图 组件图 网络图 部署图 9
u
关联实体 – 解决上述问题的人为增加的数据实体,它
一定包含两端数据实体的关键字
33
5 类图
u u u
面向对象的方法也强调对系统中所包含事物的理解 面向对象的方法给事物建立的模型即是“类图” “类”和“实体”是明显区别的
34
5 类图
5.1 有关对象类的更复杂的问题
u
泛化/具体层次图 – 把类按照从最概括的父类到
3 事物和系统需求
3.4事物的属性
属性:有关事物的一条特定信息 标示符(关键字):能唯一标志事物的一个属性 复合属性:包括了许多相关属性的属性,如客户全名:名+姓
所有客户具有如下属性 客户编号 名 姓 住宅电话 公司电话
每个客户的每个属性都有一个值 101 102 103 John Smith 555-9182 555-3425 Mary Jones 423-1298 423-3419 Bill Casper 874-1297
事件分三大类:外部事件、临时事件、状态事件
l 外部事件:系统之外发生的事件,通常是由外部实体或
系统参与者触发的
l 临时事件:由于到达某一时刻所发生的事件 l 状态事件:当系统内部发生了需要处理的情况时所引发
的事件
12
2.1 事件的类型
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 属性:表示关于一个对象相关特征的数据。 • 对象实例:由描述特定的人、地点、事物或者事件的属
性值构成。 • 行为:指的是对象可以做的事情,以及在对象数据(或属
性)上执行的功能。在OO环境中,对象的行为通常被称 为方法、操作或者服务。 • 封201装9年9:月21日几星期项六 内容一起打包成一个单元(信息隐藏)。 9/117
• 用于联系用例详细描述或活动图。
• 顺序图中,出入系统的信息流被称为消息。
2019年9月21日星期六
7/117
对象建模(Object Modeling)
• 是一种用于辨识系统环境中的对象和这些对象之间关系的 技术。
• 对象建模方法要求使用完全不同于数据建模和过程建模的 方法和图形记号。
2019年9月21日星期六
8/117
术语
• 对象:某种存在的,或者能被看到、触摸或以其他方式 感觉到的事物,用户就该事物存储数据和相关行为。
2019年9月21日星期六
3/117
概述
• 在OOA中需要使用事实发现技术。 • 事实发现行为称做发现活动,发现必须先于理解。 • 本章学习发现的下一个阶段:建立理解。 • 事件发生在系统必须响应的商业环境中。事件被定义和记录在
事件表中。新系统必须能够通过运行系统活动(月21日星期六
2019年9月21日星期六
16/117
1. 用例图 2. 系统顺序图 3. 消息 4. 状态图
四种模型
2019年9月21日星期六
17/117
1. 用例图
• 一种用以显示不同的用户角色和这些用户角色如何使用系统 的图。
• 以图形化的方式描述系统与外部系统和用户的交互。 • 换言之,它们以图形化的方式描述谁将使用系统,以及用户
期望以什么方式与系统交互。
2019年9月21日星期六
18/117
• 目的:识别新系统的“用法”或用例,即识别如何使用系统。
• 用例图本质上是事件表的延伸。
• 用例图是用于记录系统必须支持的所有功能的一种简便方法。 可以用一个综合的用例图来描述整个系统。
• 活动图可以用来定义用例。
2019年9月21日星期六
需求的OO描述方法
本章内容
先导案例 概述 1 统一建模语言和对象管理组织 2 OO的需求 3 系统活动:OO的用例/场景视图 4 确定输入和输出——系统顺序图 5 问题域建模——域模型类图 6 OO模型的集成 要点回顾 阅读章节要求
2019年9月21日星期六
2/117
先导案例
• 无限电子公司:供应链一体化
19/117
2. 系统顺序图(SSD)
• 在用例或场景中,用于显示外部参与者和系统 之间的消息顺序的图。
• 以图形化的方式描述在一个用例或操作的执行过程中 对象如何通过消息互相交互,说明了消息如何在对象 之间被发送和接收以及发送的顺序。
• 用来定义一个用例的输入和输出,以及在用户 和系统之间交互的顺序。
生成完整的系统功能需求图。 • 本章主要讨论一个关于模型的集合,它根据OO
方法中的用例来捕获系统需求四种模型——用 例图、用例描述、活动图和系统顺序图,用来 从不同的观点描述系统用例。
2019年9月21日星期六
15/117
使用模型来记录需求最大的好处
• 在于它能帮助系统开发员仔细和清楚地考虑处理的细节, 以及系统相关人员的信息需求。
以应答、拨号、挂断,还可以执行其他与电话相关的行为。 • 因此,用于系统开发的OO方法要求我们调整通常看待对象
的方式。
2019年9月21日星期六
12/117
重要的OO原理
• 对象单独地负责执行任何在其数据(或属性)上操 作的功能或者行为。
• 例如:只有你(一个对象)可以修改(行为)你的名 字和家庭住址(你的属性)。
• 引出对象的一个重要概念,即封装。
• 对象的属性和行为都被封装到一起作为那个对象 的一部分。
• 访问或修改对象属性只能通过那个对象的行为来
实现。 2019年9月21日星期六
13/117
1 统一建模语言和对象管理组织
• OMG是一个由800多个软件销售商、开发商和组织组成的共同 体,他们致力于发展和传播OO系统。
4/117
• 系统的信息(包含在商业过程中的事物信息 )存储需求或使用传 统方法中的ERD进行记录,或用OO方法中的类图进行记录。
• 学习:使用OO的分析模型和技术来理解和定义新系统的需求。
• OO的分析和OO设计之间的界限并不明显,因为系统的设计就 是对分析阶段中用于定义需求的模型进行改进和扩展得到的。
• 成立于1989年。 • 使命:在分布式计算系统的开发中提高应用对象技术的理论和实
践水平。 • 目标:为基于广泛接口规格的OO的应用程序提供一个通用的体
系框架。
2019年9月21日星期六
14/117
2 OO的需求
• 系统开发过程开始于确定事件和事物。 • 事件:新系统所必须考虑的商业过程; • 事物:包含在商业过程中的问题域对象。 • 过程和对象通常一起定义(不断切换)。 • 必须学会将所有不同的模型和它们组合在一起
2019年9月21日星期六
5/117
面向对象分析(OOA)
• 系统分析过程中使用对象建模的方法被称为面向对象分析 (OOA)。
2019年9月21日星期六
6/117
OOA技术用于
• 研究现有对象,看它们是否能够被复用或者被调整用于新 的用途;
• 定义各种新对象和修改后的对象,它们将与现有对象一起 组合成一个有用的企业计算应用系统。
• 在用于系统开发的OO方法中,门对象可以同假 定能够在其上的行为相关联。
• 例如,门可以打开,可以关闭,可以锁上,或 者可以开锁。
• 所有这些行为都与门对象相关,并且由门对象 实现,而不是由其他对象实现。
2019年9月21日星期六
11/117
以电话对象为例
• 什么行为同一个电话相关联? • 随着技术的进步,我们实际上有了语音激活的电话,我们可
考虑我们所处的环境
• 教室中的所有人,我们中的每一个都代表人对象的一个实 例;
• 我们中的每一个都可以按照一些公共属性描述,例如:姓 名、社会保险号、电话号码、地址等。
2019年9月21日星期六
10/117
对象的行为
• 当看到周围环境中的门对象时,可能仅仅看到 一个不能思考的静止对象——几乎很少执行什 么动作。
相关文档
最新文档