结构化方法与面向对象可结合性研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xiaoyuerhaha
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:文章通过对结构化方法和面向对象两种软件开发方法的论述,在进行比较分析其优缺点基础上,讨论了它们不同的适合场合。通过一个实例提出在开发过程中应根据开发实际,采用结构化和面向对象相结合的方法。
  关键词:软件开发;结构化方法;面向对象方法;问题域
  中图分类号:TP311.11文献标识码:A 文章编号:1009-3044(2007)04-11057-01
  
  1 引言
  在软件业,有关结构化方法和面向对象方法的优劣之争,自面向对象方法出现后没有平息过。其实,通过分析比较这两种软件开发方法,和联系当前实际,就能发现两者各自的优缺点。我们可以根据开发实际出发,采用结构化方法和面向对象方法适当相结合的方法,能够得到最佳的开发效益。
  
  2 结构化方法的概述
   结构化方法产生于上世纪70年代中后期,它是一种强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
  结构化方法强调过程抽象和功能模块化。 将世界问题域映射为数据流和加工,加工之间通过数据流来通信,数据流作为被动的实体被主动的操作所加工,以过程(操作)抽象为中心来构造系统和设计程序。结构化分析产生功能规约。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
  结构化设计阶段用结构化程序设计语言实现分析阶段标示出来用户需求。结构化分析与设计的本质是功能分解,围绕实现处理功能的过程来构造系统。
  结构化方法的基本思想是:基于功能分解设计系统结构,从内部功能上模拟客观世界结构化方法基于功能分解设计系统结构,它从内部功能上模拟客观世界所采用的工具,主要是数据流图DFD,通过不断将DFD中复杂的处理分解成子数据流图来简化问题。
  
  3 面向对象方法的概述
  面向对象方法兴起于上世纪80年,是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。对象是由数据和允许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统,它主要分为三个阶段:
  面向对象分析阶段。这个阶段从陈述问题开始,再分析和构造的世界问题域的模型,并用相应的符号系统表示。
  面向对象设计阶段。这个阶段对的系统分析的结果进行深入和改进;设计交互过程和用户接口,设计任务管理,设计全局资源,设计对象。
  面向对象实现阶段。使用面向对象语言,运用抽象、继承、封装等编程技术实现对象。
  面向对象方法首先强调来自域的对象,然后围绕对象设置属性和操作。它尽可能模拟人类习惯的思维方式。把问题域的概念直接映射到对象和对象之间的接口,符合人们的常用的思维方式,减少结构化方法的从问题域到分析阶段的映射误差。面向对象方法鼓励开发者使用“对象”的观念去看待问题。
  面向对象的方法基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的,可重用的,维护性好的软件,同时限定软件的复杂性和降低开发维护费用。
  
  4 面向对象方法与结构化方法的比较
  面向对象方法与结构化方法的比较如表1
  从上表可以看到,结构化方法和面向对象方法各有自己的优缺点,主要表现在如下几个方面:
  (1)从执行效率来说。结构化方法比面向对象方法,产生的可执行代码更直接,更高。所以对于一些嵌入式的系统,结构化方法产生的系统更小,运行效率更高;
  (2)从重用性方面来说。采用结构化方法的系统难以修改和扩充。结构化分析与设计清楚定义了系统的接口,当系统对外界接口发生变动时,往往造成系统结构较大变动,难以扩充新的功能接口。采用结构化方法的系统可复用性较差。结构化方法将数据和操作分离,导致一些可重用的软件构件在特定具体应用环境才能应用,降低了软件的可重用性。面向对象方法具有很好的重用性。在遇到类似的问题,通过应用了抽象 继承等技术,来重用代码;
  (3)从程序语言编译器来说。面向对象方法,通过编译器实现代码的面向对象性。也就使说经过编译器后,代码会被翻译为相对应的结构化代码。所以要熟练开发,还要懂一定的结构化方法做为基础;
  (4)从掌握难度来说,面向对象方法比结构化对象方法复杂,难于理解。面象对象方法的内容广,概念多,而且很多都是难于理解,做到精通更加不易。应用面向对象方法,常常需要一种支持的分析,设计方法,如RUP方法,敏捷方法等。这些知识抽象枯燥,难于掌握。面象对象方法要经过长期的开发实践才能很好的理解,掌握。相比之下,结构化方法知识内容少,容易上手;
  (5)从应用的范围看,结构化方法适用于数据少而操作多的问题。实践证明对于象操作系统这样的以功能为主的系统,结构化方法比较适应它。面向对象方法正好相反,对于数据库,信息管理等以数据为主的而操作较少的系统,用面向对象方法描述要好于结构化方法。
  
  5 二者的可结合性
  从上面的论述可以看到,面向过程的结构化方法更接近于计算机世界的物理实现;而面向对象更符合人类的认识习惯。相对传统的结构化方法来说,面向对象的方法具有更多的优势,但任何语言设计方法都不是十全十美的,结构化程序设计方法经过了30多年的发展和积累,已经有了一整套的工具和成熟的方法学,在发展其他软件方法的同时绝对不能全盘抛弃它。
  在应用程序开发过程中,应将二者结合,采用一种综合的程序设计方法,即在分析和设计阶段采用结构化(SA)分析和结构化设计(SD),生成软件的结构图,然后通过转换获得面向对象(OOD)编码所需要的控件,再使用面向对象编码完成程序的设计,使用SA、SD节省分析的时间,减少错误,使用OOD又使程序设计交互性强,适应性好,取得了双赢的效果。
  下面用一个简单的实例来进行论述上述方法:
  项目:加法器
  为简单起见,该应用程序只完成输入任何两个数字实现求和的功能,用结构化的SA,SD得出软件的结构图形,如图1。
  (1)在结构图中,输入模块输入两个数据,就对应2个文本框,输入得数据作为文本框得TEXT属性值;
  (2)加法和等号的模块对应2个命令按钮,各模块的算法就是对应命令按钮的CLICK事件的算法;
  (3)输出模块输出一个数据,就对应1个标签,输出的数据作为标签的CAPTION属性值;
  (4)结构图中最上层控制模块对应一个窗体,该窗体将上面2个文本框,2个命令按钮,1个标签容纳在其中。
  图1 软件的结构图
  经过上述分析后,已获得编码时所需的全部控件,余下的工作只是把算法该为程序。在VB.NET里很容易实现上述功能的编码:
  Public Class Form1
  Inherits System.Windows.Forms.Form
  Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
  TextBox3.Text = Str(Val(TextBox1.Text) + Val(TextBox2.Text))
  End Sub
  End Class
  
  6 结束语
  综上所述,开发者在开发实践中,从实际出发,考虑执行效率,开发者的技术水平,系统规模,是否为易需求变化的系统等因素,尽量利用它们各自的优点,避免他们的缺点。如对于开发一些小型嵌入式实时监控系统或同等稳定小系统,可用结构化方法,对于开发入门者,使用用结构化方法和面向对象方法相结合。对与大型系统或者需求易变系统,使用面向对象方法。总之,根据实际出发,选取合适的软件开发方法,达到最佳的开发效益。
  参考文献:
  [1]李光志,等.对象分析与设计方法比较[M]. 北京:电子工业出版社,1996.
  [2]柴跃廷,等.应用软件系统开发[M].北京:清华大学出版社,1999.
  [3]张海藩.软件工程[M].北京: 清华大学出版社,1999.
  [4]刘作伟,宁洪.现代软件开发方法中的use case技术[J].计算机科学,1999,26(4):70-74.
  [5]赵池龙.实用软件工程[M]. 北京:电子工业出版社,2003.
  [6]孙晋文,李明树.软件开发:从面向对象到Agent技术[J].计算机与现代化,2000,(3):30-32.
  [7]王建仁.计算机软件与开发技术[M].西安: 西安交通大学出版社,1996.
  [8]邵维忠,杨芙清.面向对象的系统设计[M].北京: 清华大学出版社,2003.
  [9]邵维忠,杨芙清.面向对象的系统分析[M].北京: 清华大学出版社,2003.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:在《电子商务安全》教学过程中,如何让学生理解好抽象概念,实训手段显得尤为重要。文章分析了高职高专、技工学校类电子商务专业《电子商务安全》课程内容和实训设置,提出了该课程实训设置的建议,通过案例分析了实训设置的要点。  关键词:实训设置;实训探讨;商务安全  中图分类号:G424文献标识码:A 文章编号:1009-3044(2008)32-1260-02    1引言    随着电子商务应用的
本文介绍了一种基于TI公司TMS320C6000系列芯片与异步FIFO的接口关系,阐述了设计的方法,并给出了接口的硬件组成和软件设计。
摘要:分析了传统访问控制中的授权管理策略:强制访问控制,自主访问控制和基于角色的访问控制。然后提出分布式环境下访问控制的特点,并详细介绍了XACML,得出XACML适合于分布式系统的结论。结合XACML研究实现分布式系统的访问控制模型,并通过Sun提供的XACML2.0工具包实现访问控制。  关键词:分布式系统;访问控制;XACML  中图分类号:TP393.08 文献标识码:A文章编号:1009
互联网的飞速发展为企业的发展带来了契机。Web挖掘在电子商务网站中的地位已经越来越重要。本文主要对Web挖掘最新技术进行了全面分析,阐述了在电子商务网站中使用Web挖掘技
当前抗疫题材是新闻报道的重要题材。要想提升抗疫报道效果,注重诉诸受众感受是十分重要的问题。建议新闻媒体强化报道现场感,增强受众共情效应;保持报道客观感,提升受众公信
随着标准化事业的不断发展,标准在科研生产和经营活动中所起的作用愈来愈明显,标准资料的管理越来越被人们所重视。如何使标准资料的管理与利用做得既科学又规范,既合理又有序。
作为拜耳股份有限公司的子集团、全球建筑业材料的杰出供应商,拜耳材料科技支持联合国环境规划署(UNEP),提出制定全球一致的持续建筑碳排放度量标准。该提议将为衡量建筑物的温室
由中国节能协会节能服务产业委员会(EMCA)主办的“中国节能服务产业2009年度峰会”1月29日在北京举行。历时两天的产业峰会以“新形势、新起点、新机遇”为主题,会上就“哥本哈
该文主要介绍了基于ARM内核的S3C2410在移动机器人控制系统中的应用,通过传感器来感知外部环境信息,再通过路径规划做出决策进行运动。同时,为了让机器人能够更好地完成任务,
摘要:模型驱动架构是OMG对于互操作问题提供的一条新的解决途径。文章介绍了模型驱动架构的核心构造、开发流程,以及当前的应用现状。  关键词:模型驱动架构;平台无关模型;平台相关模型  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2007)13-30148-02