需求的OO描述方法
- 格式:ppt
- 大小:5.98 MB
- 文档页数:116
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.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设计原则在软件软件系统中,一个模块设计得好不好的最主要、最重要的标志,就是该模块在多大程度上将自己的内部数据和其他与实现有关的细节隐藏起来。
一个设计得好的模块可以将它所有的实现细节隐藏起来,彻底地将提供给外界的API和自己的实现分隔开来。
这样一来,模块与模块之间就可以仅仅通过彼此的API相互通信,而不理会模块内部的工作细节。
OO设计根本的指导原则是提高可维护性和可复用性。
这些原则主要有:1. 开闭原则一个软件实体应该对扩展开放,对修改关闭。
在设计一个模块的时候,就当使这个模块可以在不被修改的前提下被扩展。
换言之,就当可以在不必修改源代码的情况下改变这个模块的行为。
如何做到既不修改,又可以扩展?解决问题的关键在于抽象化:在Java语言里,可以给出一个或多个抽象Java类或Java接口,规定出所有的具体类必须提供的方法特征作为系统设计的抽象层。
这个抽象层预见了所有的可能扩展,因此,在任何扩展情况下都不会改变。
这就使得系统的抽象层不需要修改,从而满足了—对修改关闭。
同时,由于从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的设计对扩展是开放的。
开闭原则实际上是对“对可变性的封闭原则“:找到一个系统的可变因素,将之封装起来。
这个原则意昧着两点:1) 一个可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面。
同一种可变性的不同表象意昧着同一个继承等级结构中的具体子类。
继承就当被看作是封装变化的方法,而不应当被认为是从一般的对象生成特殊对象的方法。
2) 一种可变性不应当与另一种可变性混合在一起。
(所有类图的继承结构一般不会超过两层,不然就意昧着将两种不同的可变性混合在了一起。
)开闭原则是总的原则,其它几条是开闭原则的手段和工具。
2. 依赖倒转原则依赖倒转原则讲的是:要依赖于抽象,不要信赖于实现。
开闭原则是目标,而达到这一目标的手段是依赖倒转原则。
抽象层次包含的是应用系统的商务逻辑和宏观的、对整个系统来说重要的战略性决定,是必然性的体现;而具体层次则含有一些次要的与实现有关的算法和逻辑,以及战术性的决定,带有相当大的偶然性选择。
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是一个地道的英语单词,意思是“勺子”。
它通常用来描述一种小型的铲子,这种铲子有着宽大的头部,可以用来挖掘土壤或捡起物体,也可以用来吃冰淇淋或淘汰细菌。
这是一个非常实用的工具,常用于家庭装修、园艺花园种植、小型建筑等等。
企业QQ是腾讯公司针对企业需求量身打造的QQ平台,安全、高效、可管、可控。
众所周知,很多公司都要用到QQ进行日常办公。
但同时面临着很多问题(比如:账号安全,聊天记录不能保存、淀,不能统一管理员工的QQ)
功能介绍:。
连号QQ,所有账号由公司管理员统一管理,统一下放回收。
内部员工层级管理。
内部组织结构清晰明了,内部查找,沟通非常方便。
每个阶层的管理者都可以监督管理到下面人员的客户和聊天内容,作为管理者您可以看到下面的人在做什么。
聊天信息漫游永久存储在云端,需要时是可查,可选,可使用。
客户不流失,所有客户永久保留不被删除带走。
离职员工的账号可回收重新启用,客户依然存在。
可以屏蔽禁止个人QQ的登录。
对外是以公司的logo.电子名片进行展示。
纯办公、无游戏/娱乐/新闻。
广播功能可以一键通知所有员工,且无法忽略。
所有群的权限是需要下放的,有管理员统一管控。
可作为电子通讯录,取代A4纸张的通讯录表格,减少行政人员的工作量。
每个账号可以加外部好友1500个。
企业邮箱图标,绑定公司域名,收发邮件方便快捷。
绑定手机,短信群发。
可以进行个性化管理,上网管理和软件管理,禁用网站和软件。
企业文档共享管理系统,企业微云,文档使用权限管理。
手机端登陆,移动的公司通讯录,移动的办公软件。
聊天窗口专业简捷,个人名片,公司简介一目了然。
实验报告规实 验 报 告姓 名 学 号 班 级 成 绩实验名称 超市进销存管理系统的UML建模 实验日期一.实验容基于OO设计与分析方法,用统模语言UML完成一个超市进销存管理系统要求:软件系统模型包括8种建模图,其中至少包含三个主要用例的用例脚本描述、顺序图、活动图和两个有较复杂行为的类的实例状态图。
二.需求分析文档描述超市进销存管理系统要求能对超市的进、销、存行为进行管理,并且能根据不同权限的系统用户的需求进行报表的生成和查询,为超市管理者的决策提供协助。
当库存和在架商品数量低于临界值时,能发出警报,提醒库存管理人员。
当销售人员售出商品时,记录的在架商品的数量能相应的减少出售数量。
能进行人员的日常管理。
三.设计方法、思路和主要技术设计方法、思路:根据系统需要实现的功能,我将系统划分成五个子系统,分别是销售部、进货部、库存部、会计部、经理室。
分别用于实现商品的销售,商品的进货,商品的库存,金钱和报表,人事和决策的管理。
主要技术:UML四.软件系统建模(包括完整建模图) (一)系统用例图(1)企业级用例图(2)系统级用例图(3)销售部用例图(4)进货部用例图用例生成定单”的描述用例名称 生成定单标识符 SP0001用例描述 当进货员收到经理发出的定货单,联系供货商,谈好价格,报经理审核后,生成定单,用例结束。
参预者进货员 经理 供货商优先级 1状态 未审核前置条件 定货员收到经理发出的定货单后置条件 定货基本操作流程 进货员根据定货表选择多家供货商联系,谈好价格,将多家供货商的价格报经理审核,由经理选择供货商,然后进货员生成定单。
可选操作流程 进货员根据定货表先选择一家供货商联系,谈好价格,将价格报经理审核,审核通过,生成定单,不通过再联系下一家供货商。
被泛化的用例 无被包含的用例 无被扩展的用例 无(5)库存部用例图用例货物上架”描述用例名称 货物上架标识符 SP0003用例描述 当在架商品数量低于最小临界值,库存员收到警报,将库存货物摆上货架,用例结束。
软件⼯程导论简答题三、简答题1.什么是需求分析?需求分析阶段的基本任务是什么?答:需求分析是当前软件⼯程中的关键问题,需求分析阶段的任务是:在可⾏性分析的基础上,进⼀步了解、确定⽤户需求。
准确地回答“系统必须做什么?”的问题。
获得需求规格说明书。
还涉及到软件系统的⽬标、软件系统提供的服务、软件系统的约束和软件系统运⾏的环境。
它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。
需求分析的基本任务包括:(1)抽取需求分析现⾏系统存在需要解决的问题。
获取⾜够多的问题领域的知识,需求抽取的⽅法⼀般有问卷法、⾯谈法、数据采集法、⽤例法、情景实例法以及基于⽬标的⽅法等;还有知识⼯程⽅法,例如,场记分析法、卡⽚分类法、分类表格技术和基于模型的知识获取等。
(2)模拟和分析需求需求分析和模拟⼜包含三个层次的⼯作。
⾸先是需求建模。
需求模型的表现形式有⾃然语⾔、半形式化(如图、表、结构化英语等)和形式化表⽰等三种。
需求概念模型的要求包括实现的独⽴性:不模拟数据的表⽰和内部组织等;需求模拟技术⼜分为企业模拟、功能需求模拟和⾮功能需求模拟等。
(3)传递需求传递需求的主要任务是书写软件需求规格说明。
(4)认可需求就是对需求规格说明达成⼀致,其主要任务是冲突求解,包括定义冲突和冲突求解两⽅⾯。
常⽤的冲突求解⽅法有:协商、竞争、仲裁、强制、教育等,其中有些只能⽤⼈的因素去控制。
(5)进化需求客户的需要总是不断(连续)地增长,但是⼀般的软件开发⼜总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的⾸要问题。
对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查⼩组。
当前的发展是软件家族法,即产品线⽅法。
多视点⽅法也是管理需求变化的⼀种新⽅法,它可以⽤于管理不⼀致性,并进⾏关于变化的推理。
2.等价分类法的基本思想是什么?答:根据程序的输⼊特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中选择出的⽤例具有“代表性”,即测试某个等价类的代表值就等价于对这⼀类其他值的测试。