结构化方法与面向对象方法的比较分析

上传人:小** 文档编号:65882105 上传时间:2022-03-25 格式:DOC 页数:5 大小:138.50KB
返回 下载 相关 举报
结构化方法与面向对象方法的比较分析_第1页
第1页 / 共5页
结构化方法与面向对象方法的比较分析_第2页
第2页 / 共5页
结构化方法与面向对象方法的比较分析_第3页
第3页 / 共5页
点击查看更多>>
资源描述
结构化方法与面向对象方法的比较分析吴松娇(凯里学院信息工程学院, 09 本( 1)班, 2009406012)摘 要: 剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程, 讨论了各自在不同软件开发中的应用及局限性 , 提出了在选用面向对象方法开发大型软件系统的 同时可结合结构化方法.通过对具体实例的剖析,揭示DFD与UML之间的对应关系,从而提 出结构化软件分析方法与面向对象软件分析方法存在的对应关系, 在软件需求分析方法上实现了二者的相互转换 , 这种对应与转换关系对现有结构化软件的维护及再工程具有指导意 义。关键词 : 软件开发 ; 结构化方法 ; 面向对象方法 ; 问题域20 世纪 60 年代以来 , 软件的发展一直受到开发综合症“软件危机”的影响. 为了提高软件质量 ,软件开发方法不断推陈出新 , 其中结构化方法 1 ,2 经过30 多年的研究及应用 , 最为成熟且影响最大 , 直到现在仍有许多系统是用它开发的 . 而面向对象方法 1 ,3 是在结 构化方法、信息建模方法等基础上发展起来的, 近 10 年来发展较快 , 现已呈现出取代结构化方法的趋势 . 本文具体分析两者在软件开发中的差别以及面向对象方法的优越性.1 结构化方法结构化方法基于功能分解设计系统结构 , 通过不断把复杂的处理逐层分解来简化问题, 它从内部功能上模拟客观世界 . 用结构化开发的软件运行效率较高 , 且能够增加软件系统的 可 靠性 .1. 1 结构化分析它是面向数据流进行需求分析的方法 , 在该阶段力求寻找功能及功能之间的说明 . 它主要 采用的工具是数据流图 DFD(Data Flow Diagram),禾U用DFD描述边界和数据处理过程的关 系.1. 2 结构化设计结构化设计是将数据流图表示的信息转换成程序结构的设计描述, 在该阶段力求寻找功能的实现方法 , 采用系统结构图表示系统所具有的功能和功能之间的关系 . 设计过程分两步 完成,第一步以需求分析的结果作为出发点 ,构造出一个具体的系统设计方案 ,决定系统的模 块结构 (包括决定模块的划分、模块间的数据传递及调用关系) . 第二步详细设计即过程设计, 在总体设计的基础上 , 确定每个模块的内部结构和算法 , 最终产生每个模块的程序流程图 因此,结构化方法比较适合于像操作系统、实时处理系统等这样的以功能为主的系统.1. 3 结构化方法的局限(1) 结构化方法在需求分析中对问题域的认识和描述不是以问题域中固有的事物作为基本 单位,而是打破了各项事物之间的界限 ,在全局范围内以数据流为中心进行分析 ,所以分析 结果不能直接反映问题域 . 同时,当系统较复杂时 ,很难检验分析的正确性 . 因此,结构化分 析方法容易隐蔽一些对问题域的理解偏差 ,与后续开发阶段的衔接也比较困难 ; (2) 结构化方 法中设计文档很难与分析文档对应 , 因为二者的表示体系不一致 . 结构化方法的结果 2数据流 图(DFD)和结构化设计结果2模块结构图(MSD)是两种不同的表示体系,从分析到设计的“转 换”实际上并不存在可靠的转换规则 ,而是带有人为的随意性,容易因理解上的错误而埋下隐患,使得设计文档与问题域的本来面貌相差甚远;(3)结构化方法对需求变化的适应能力比较弱,软件系统结构对功能的变化十分敏感,功能的变化会引起一个加工和它相连的许多数据流的修改,同时设计出的软件难以重用,延缓了开发的过程2 面向对象方法面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位.面向对象方法更强调运用人类 在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来.00A和00D的软件开发方法层出不穷,其中有代表性的有Coad和Yourdon的五层次分析方法和四组件设计方法、Booch的静态和动态的描述方法以及Rumbaugh的三种模型描述法等,这些方法都有各自的特点但总的来说,这些方法还不完善目前OO方法所采用的统一建模语言UML (Un ified Modeli ng Lan guage) 46 ,它是面向对象开发中一种通用的、图形化的模型语言,是近代软件工程环境中对象分析和设计的重要工具以下通过UML语言来分析 00A口 00D过程.2. 1 面向对象分析具体过程如下:(1) 使用用例00A阶段是通过行为分析法认定对象及它们之间的关系图1 顾客和销售商通过电话联系的用例模型图1 (Use Case Diagram) 从用户角度描 述系统功能并指出各功能的操作者用例(Use Case)是指用户使用系统时所执 行的一个与行为相关的事务序列,这个序列是在与系统的会话中完成的用例之间存在三种关系:角色(Actor) 与用例 之间的连接,用例之间的使用(Use)和 扩展(Extend)关系,通过角色执行用例,可以识别出不同的用例图1显示了顾 客和销售商通过电话联系的用例模型;(2)根据需求建立系统的静态模型来构 造系统的结构静态模型包括类图(Class Diagram )、对象图(ObjectDiagram)禾口包图(Package Diagram). 类 图描述了系统中的类及其相互之间的关系,其本质反映了系统中对象的类型以及对象之间的各种静态关系,如关联、依赖、聚合等.对象图是类图的实例,几乎使用与类图完全相同的标识,它们的不同点在于对象图显示类的多个对象实例而不是实际的类包图由包或类组成,表示包与包之间的关系,包图用于描述系统的分层结构;(3)根据系统执行时的时序状态或交互关系来描述系统的行为,从而构造其动态模型,包括交互图(In teraction Diagram)、状态图(Status Diagram) 、活动图(Activity Diagram) 等.交互图描述对象间的交互关系,包括顺序图和合作图.顺序图显示开始对象之间的动态合作关系,强调对象之间 厶-空闲消息发送的时间顺序;合作图也显示对象间4 准备的动态合作关系,但更强调上下级关系.状f护路过车站态图描述对象的所有可能状态以及事件发生 时状态的转移条件;活动图描述为满足用例 要求所进行的活动以及活动间的约束关系,用于识别并行活动图2显示铁路模型中 火车的状态图,其中以“ 开头的表示复 合状态,需进一步精化。2. 2 面向对象设计00A和00D采用一致的概念、原则和表示方法到达车站判断转移I中L_.1J 离车站开当前方无车| 进行$1者之间不存在鸿沟,不需要从分析文档到设计文档的转换,二者之间也不强调严格的阶段划分.能体现二者之间关系的是近几年提的一种新的软件生命周期模型喷泉模型,其中分析与设计这两个水泡表明 00与00D没有严格的边界,它们是连续的、无缝的、允许有一定的相交(一些工作既可以看作是 00A的,也可以看作是00D的).在分析阶段所获得的信息,不仅是设计阶段的输入,同时也是设计阶 段的一个完整部分,分析得到对象及其相互关系 ,而设计则是解决这些对象及其相互关系的实现问题.具体过程:(1)对象行为和对象间交互作用的进一步细化;(2)用例的设计和实现.用例的分析工作从系统的外部角度展示系统的功能,系统内部的对象为实现这些外部功能而要发生的相互作用的行为是由用例的设计和实现工作来确定的;(3)精化分析阶段的交互图、状态图、活动图;(4)确定系统可重用的类或部件;(5)用构件图(Component Diagram)描述代码部件的物理结构及相互之间的依赖关系;(6)用配置图(Deployment Diagram) 描述软硬件的物理体系结构.面向对象方法中的00A对问题域的观察、分析和认识是很直接的, 使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌.00D是对00A所得出的对象模型的直接细化和抽象,得到可直接实现的类图.因此,00设计不但是一个细化的过程,同时还是数据抽象的过程.从应用范围看,面向对象方法适用于数据库、信息管理系统等这些以数据为主而操作较少的系统.2. 3面向对象方法的局限(1)面向对象方法中对象的确定有时会因客观边界模糊而难以确定,这样就很难保证软件描述的正确性;(2)面向对象在描述问题域方面的不足.在问题域模型中,面向对象方法把具体或抽象的问题域现象直接表述为对象,同时把现象类型直接表述为类.大多数00A方法支持多视角模型,即对同一问题域现象,不同的主体可以将它表述为同一对象或类型.但系统的描述者在应用面向对象方法进行建模时常遇到这样的困惑,描述者力图通过面向对象的表述对存在的问题域现象达成一致,然而,结果得到的对象或类并不很适合于某个描述者对对象的独自观察而得到的表述.也就是说,在面向对象模型中,不同的系统描述者在观察描 述同一个问题域现象时,都可以把该现象表述为对象(或类),但却不能表述各自之间存在的对问题域现象的不同认识,除非通过底层结构(如操作、协议等)的处理.3结束语从上面的分析设计过程可以看出,结构化方法是对系统功能建模,基于功能分解设计系统结 构,从内部功能上模拟客观世界.面向对象方法则是从行为的角度进行建模,基于行为分析法认定对象及它们之间的关系 ,从内部结构上模拟客观世界 ,它采用了新概念、新方法、新的 表示形式,有助于软件开发人员加深对系统的理解,给软件开发带来很大益处.但在实际应用中,开发的大型软件系统通常是混合型系统,即需要处理实时信息、又需要数据库的支持,同时还涉及大量的事务性操作请求 ,在这种情况下,在选用面向对象方法的同时在局部处理 上可以结合使用结构化方法.参考文献:1 缪淮扣 , 高晓雷 , 李刚 . 结构化方法、面向对象方法和形式方法的比较与结合 J . 计 算机工程和科学 ,1999 ,21 :2829.2 郑人杰,殷人昆,陶永雷. 实用软件工程 M . 北京:清华大学出版社 ,1997. 3 邵维忠,杨芙清. 面向对象的系统分析 M . 北京:清华大学出版社 ,1998.4 鲁博,柴跃廷. 关于统一建模语言 UML. 计算机工程与科学 J ,2000 ,22(4) :59 60.5 The Object Management Group. doc. no. ad/ 97208204. UML SemanticsOL . versions1. 1 ,1 September , 1997.6 The Object Management Group. doc. no. ad/ 97208205. UML Notation Guide OL . version 1. 1 September ,1997.7刘作伟,宁洪现代软件开发方法中的use case技术J . 计算机科学,1999 ,26 (4) :7074.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!