收藏 分享(赏)

软件工程面向对象.pdf

上传人:精品资料 文档编号:10727956 上传时间:2020-01-03 格式:PDF 页数:46 大小:1.50MB
下载 相关 举报
软件工程面向对象.pdf_第1页
第1页 / 共46页
软件工程面向对象.pdf_第2页
第2页 / 共46页
软件工程面向对象.pdf_第3页
第3页 / 共46页
软件工程面向对象.pdf_第4页
第4页 / 共46页
软件工程面向对象.pdf_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、面 向 对 象 软 件 工 程面向对象方法学的提出结构化软件工程方法学面向过、以算为核心、把数据和过程作为相对独立部分对早期只重视编不重视用户需求开发,只重视代码、不重视文档来说,是一个巨大的进步给软件产业带来了,部分缓解了软件危机在许多中小型软件项目中获得很大的成功但是,它存着明显的缺点当把这种方法学应用于产品开发时,似乎很少取得成功面向对象方法学概述面向对象方法学的出发点和原则尽可能模仿人类习惯思维式,使软件开发的与过程尽可能接近人类认识世界、解决问题与过程面向对象方法的特点与人类习惯的思维方法一致:按照人们习惯的思维方式建立模型,模拟客观世界稳定性好:实体是相对稳定的,以对象为中心构建的

2、软件系统必然是相对稳定的可重用性好:对象类提供了比较理想的模块化机制和可重用机制易于开发大型软件:把大型产品看作一系列本质上相互独立的小产品来处理可维护性好:容易理解、容易修改、易于测试四个要点:对象+类继承+通信面向对象软件是由对象组成中的任何元素都把静态属性数据和动态属性的操作封装在一起而形成的统一体复杂对象由简单组成所有都划分若干类每个类定义了一数据和方法(即施加于对象的操作);按照子与父的关系,把个组成一个层次结构系统(即继承);对象彼此之间仅能通过传递消息相互联系私有信息都被封装在对象类中。Coad和Yourdn给出了一定义:面向对象对象类继承通信类(Clas)是对具有相同属性和行为

3、的一(多)个对象的描述一个支持继承抽象数据类型实例(Instace)就由某特定所描述具体消息(Mesag)是要求个对象执行类中义的某个操作规格说明其组成为:接收消息、名和变元方法(ethod)就所能操作(定服务)属性(Atribute)是类中定义的数据,是对客观世界实体所具有的性质抽象基本概念(1)封装是把数据和实现操作的代码集中起来放在对象内部,不能从外进行访问和修改。继承就子类自动地共享父类定义数据和方法的机制。多态是指对象可以像对象那样使用,同消息既可以发送给父类对象也可以发送给子类对象。函数重载:包括函数重载和运算符重载在同一作域内的若干个参数特征不的函数使用相同的函数名称;运算符个可

4、以施加于类型操作上面。基本概念(2)对象是封装了数据结构及可以施加在这些结构上的操作封装体。该体可以唯一标识它,而且向外界提供服务(公有),对象中的数据表示的状态,对象由操作来改变要状态只能由其他发送消息对象基本特点以数据为中心;是主动的本质上具有并行性模块独立好。对象的基本特点操作12操作3状态S操作的实现界面面向对象建模建模:就是为了理解事物而作出的一种抽,是对事物的一种无歧义的描述。系统建模:对研究的实体进行必要的简化,并用适当的变现形式或规则把它的主要特征描述出来。所得到的系统模仿品称之为模型。模型是指通过主观意识借助实体或者虚拟表现、构成客观阐述形态、结构的一种表达目的的物件。由一组

5、图示符号和组织规则组。面向对象建(3种模型)模型:描述系统数据结构,定义了做事情的实体动态控制指明系统应该“什么”功能功能确规时候这3种从三个角度模拟目标全面反映对目标系统需求对象模型对象模型表示静态的、结构化系统的“数据”性质是拟客观世界实体对象以及彼此间的关系映射描述了系统,为建立动态模型和功能提供了框架。为建立对象模型需要定义一组图形符号组织这些符号以表示特定语义的规则。很多著名专家(Boch,Coad&Yourdn,Shlaer等)都提出了自己的方法。Boch,Rumbag和Jbsn经过合作研究,于196年月设计UML0.9不仅统一了他们三人的表示方法而且融入了众多优秀软件和思想,从而

6、把面向对象方法提高到个崭新高度,标志着面向对象建模方法进入第三代类图的基本符号UML中,形符号为长方形用两条横线把长方分成上、中下3个区域下面个区域可省略3分别放类的名字属性和服务类图的关系符号1.关联:表示两个对象之间存在某种语义上的联系。2. 聚集:也称为聚合,是关联的特例。聚集表示类与之间是整体与部分系动态模型动态模型规定了对象中的合法变化序列,是瞬时的、行为化性质的表示。一般用状图来描绘对象状态、触发转换事件以及对象行为事件就是某个特定时空所生事情,它引起对象从一种状态向另一种状态转换没有持续间,是瞬完成的。引起对象状态转换控制信息功能模型功能模型表示变化的系统“”性质指明了系统应该做

7、什么直接反映用户对目标需求功能模型由一组数据流图成UML提供的例也是进行需求分析和建立功能模型的强有力工具用模型:在UML中,通过用例图建立起来系统模型自动售货机系统用例图分析过程就是提取系统需求的过程,主要包括理解、表达和验证。系统员通过与用户及领域专家交流,用户需求领域知识,用无歧义的方式表达成文档资料。需求分析程是一个反复、修正的过程。面向对象(OA)的关键识别出问题域内对象,分析它们之间相互关系,最终建立起问题域的简洁、精确、可理解模型。目前广泛使用的OA方法有:Wirfs-Brock方法(190)、Coad和Yourdn方法(19)Rambugh(19)、h4等。面向对象分析(OA)

8、的关键面向对象模型的3个子模型与5个层次面向对象模型包含、动态和功能。复杂问题的由五个层次组成主层类-&对象结构、属性服务层五个次逐显现出模型的更多细节,在概念上是整个模型的五张水平切片。从OA到OD是一个逐渐扩充模型的过程,二者界限是模糊的。分析提取和整理用户需求,建立问题域精确模型的过程设计则把阶段得到转变成符合本和质量要求抽象系统实现方案的过程OD准优秀设计就是权衡了各种因素,从而使得系统在整个生命周期中总的开销最小的。OD金字塔4个层次子系统、类和对象、消息层责任OOA与OODOD金字塔的四个层次子系统层实现支持客户需求的技术基础类和对象使系统能够用一般化及不断逼近目标的特例化机制来创

9、建消息层包含对象和其协作者通信设计细节责任所有属性操的数据结构和算法的设计责任设计消息类和对象子系统设计OD的启发式规则设计结果应该清晰易懂一般特殊结构的深度应适当设计简单的类使用简单的协议使用简单的服务把设计变动减至最小软件重用的3个层次广义地说,可分为以下3知识如软件工程知识的重用。方法和标准,面向对象方法或国家制定软件开发规范的重用。软件成分的重用代码、设计结果析的重用如,包括源代码剪贴、包含和继承等前两个重用层次属于知识工程研究范畴软件成分的重用可重用软构件应具备的特点模块独立性强它是一个不受或很少外界干扰的封装体,其内部实现在外面是不可见的。具有高度塑必须提供为适应特定需求而扩充或修

10、改已有构件的机制且使用简单方便接口清晰、简明可靠,且有详尽文档说明以方便户软件成分重用级别代码设计结果析的重用典型可重用软件成分项目划、本估体系结构、需求模型和规格说明、设计源代码、用户文档和技术档户界面数据测试例系统分解软件工程师设计复杂时,首先把成若干个比较小的部分,然后再分别每个部分有利于降低设计难度。人类解决问题的普遍策略“而治之,各个击破”系统的主要组成称为子系统。子划分通常以功能依据,的数目应与系统规模基本匹配。在和设计子系统时,应尽量减少之间依赖性。OD模型的4个问题域、任务管理、数据管理子系统和人机交互子系统大多数系统的面向对象设计模型逻辑上都由四个部分(子系统)组成,可以将它

11、们想象成整个模型四垂直切片,其典结构如图所示。复杂问题由主题层、类与对象层、属性层和服务五个层次组成。OD模型的4个子系统(1)子系统的交互方式客户供应商(Client-Suplier)关作为“”的调用作为“供应商”的子系统,后者完成某些服务工并返回结果,前者要了解后接口。平等伙伴(Per-toPer)关系每个子系统都可能调用其他子统,各个子系统需要相互了解对方的接口。(2)组织系统的两种方案层次组织把软件系统成一个层次,每是一个子系统。块状垂直的分解若干相对独立、弱耦合的一个子系统相当于一块,每提供一种类型服务在实际应用中,使混合结构如图所示(3)层次组织的2种模式层次组织上在下的基础上建立

12、,下层为实现上功能而提供必要服务。每层内所包含对象彼此间相互独。之间是客户-供应商关系可以划分成两种模式封闭:每层子统仅使用其直接下层提供的服务,降低了层次的相互依赖性,容易理解和修改。开放某系可以处于面任何一子系统所提供服务。更加高效紧凑设计问题域子系统面向对象分析和并没有明确的分界线。问题域模型的补充修改以下几方面:调整需求用户或外部环境变化模型不能完、准确反映用户的真实需求重已有的类把问题域组合在一起增添一般化以建立协议设计类中的服务确定类中应有的服务设计实现方法主要完成以下几项工作: 算考虑因素:复杂度、容易理解与实现、容易修改选择数据结构能够方便有效的实现算法数据结构定义内部类和操作

13、中间结果底层设计优化系统质量指标的重要性不同,人员必须确定指标的优先级,以便在优化设计时制定折衷方案。整体与设计人员所制定的折衷方案密切相关最糟糕的情况没有在全局高度确各质量指标优先级,子系统按互对立的目标优化,导致系统资源严重浪费常见效率和清晰性之间寻求适当的折衷方案面向对象的测试面向对象的测试过程面向对象的单元测试面向对象的集成测试面向对象的系统测试面向对象的测试步骤有关测试的一些问题面向对象测试面向对象技术是一种全新的软件开发技术,正逐渐被广泛使用的面向过程的开发方法,被看成是解决软件危机的新兴技术。面向对象技术产生更好的系统结构,更规范的编程风格,极大地优化了数据使用的安全性,提高了程序代码的重用性。然而,一度被实践证明行之有效的软件测试方法对面向对象技术开发的软件多少显得有些力不从心。尤其是面向对象技术所独有的多态、继承、封装等新特点,增加了产生了传统设计方法所不存在的错误的可能性。测试软件的经典策略“小型”逐步到“大型测试”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报