期刊鉴别 论文检测 免费论文 特惠期刊 学术答疑 发表流程

软件开发方法的创新发展过程研究(上)(2)

时间:2016-03-23 11:51 文章来源:http://www.lunwenbuluo.com 作者:高禹,冯相忠 点击次数:


  1973年,Nass和Shneidemani出著名的盒图(N—S图)1974年ChaPir对盒图进行了扩展,这一创新为结构化程序设计提供了一个强有力的工具,改变了使用传统流程图容易产生随意性的弊病,使结构化程序设计方法得到完善。随后,日立公司的二村良彦等人提出了问题分析图(PAD图)问题分析图是结构化程序设计的又一个有效的工具,从而进一步丰富了结构化程序设计方法。1971年Wit首先开发出Pascal语言,1972年贝尔实验室的Rtli设计出C语言,1983年美国正式公布AN-SIPasa和ANSPC标准,以Pascal语言和C语言为代表的结构化程序设计语言的出现和完善,使结构化程序设计方法得到了更加广泛的应用。
  在结构化程序设计方法基础上,人们开始从整体范围思考软件开发方法。软件生命周期理论的提出,是人们正确认识软件开发整体性的结果。一个软件从开始计划,到废弃不用,有一个完整的生命周期,包括这样几个阶段:问题定义、可行性研究、需求分析、软件设计、编写程序、测试、维护。根据软件生命周期理论,开发软件不仅仅是编写程序,必须还要完成其它阶段的工作,编写程序只是软件开发的整体过程中的一项活动,因此开发软件时不能只重视编写程序而忽视其它软件开发活动。一个完整的软件开发方法,应该对软件生命周期中的每个阶段的任务和目标都能给出清晰的描述。1970年Royce首先提出瀑布模型,,瀑布模型将软件生命周期概念非常清晰地表达出来,它的出现,标志着人们开始从软件开发的整体性出发来构建软件开发方法。
  在结构化程序设计取得巨大成功的推动下,以结构化程序设计方法为中心,开始形成结构化软件开发方法。1974年SevensMyers和Contmine发表文章“SrcuiedAnalss,提出了结构化分析
和结构化设计的概念,随后许多专家为结构化分析和结构化设计方法的形成和完善做了大量工作,如1977年Rass口Schma发表文章“Srclred八na-ysisorRequiramentsDefinition,如1978年Myeis出版著作《CcmPostSrcuiedDesgrn,如1978年Yourjon和Contnfne出版著作《SiucuedDein》如1979年DeMarco出版著作《StructuredAnalysisandSystemSpecification》,等等,在Yourdon、Constantine、DeMarco、Stevens、Myers等人的积极工作和倡导下,结构化的思想被应用到软件开发的整体过程,逐渐形成了现在大家熟知的、包括结构化分析、结构化设计和结构化实现在内的完整的结构化软件开发方法。
        结构化分析方法使用数据流图和数据字典以及ER图、层次方框图、Warnier图、IPO图等工具来描述软件需求。结构化设计方法使用模块化和自顶向下逐步细化技术,根据数据流图等结构化分析的结果来设计软件系统总体结构,使用盒图或PAD图等工具来设计每个模块的算法和数据结构。结构化软件开发方法成为20世纪70年代和80年代占主导地位的软件开发方法,直到现在仍在发挥作用。它的广泛运用,有效地遏制了软件危机的蔓延。
  1.2面向对象软件开发方法的创新发展的过程
  面向对象软件开发方法包括面向对象分析方法、面向对象设计方法和面向对象实现方法,其核心是面向对象程序设计方法。面向对象程序设计语言的创新发展推动面向对象程序设计方法逐渐形成和完善,从而推动面向对象软件开发方法形成并发展。人们早在20世纪60年代就开始面向对象软件开发方法的研究[7],1967年KistenNygaard和OleJohanDahl开发了Simula语言,提出许多面向对象的概念。1972年,AlanKay引用Simula语言中关于类和对象的概念,开发出Smalltalk语言。1980年,Xerox公司推出比较完善的Smalltalk语言。1986年,Digitalk公司推出了运行在IBM-PC机的DOS环境下的Smalltalk版本—Smalltalk/v。
  Snaltk语言是第一种真正的面向对象语言。面向对象语言的核心概念是类和对象,类和对象的概念的提出是软件开发历史上的一次重要的思维观念创新,正是这一思维观念创新推动了程序设计方法乃至软件开发方法的创新发展。结构化程序设计方法所代表的思维观念创新被称为程序设计方法的第一次飞跃,面向对象程序设计方法这一思维观念创新被称为程序设计方法的又一次飞跃。
  在传统的程序设计方法中,数据和施加在数据上的操作被分离成两个独立的部分,而程序被看作是工作在数据上的一系列过程或函数的集合。实际上这样分离不利于使用计算机解决问题。原因在于:如果我们将客观世界中描述的实体称为问题空间中的对象,将计算机中的实体称为解空间的对象。因为客观世界的实体既有静态的属性(即数据)又有动态的行为(即对数据的操作)因此这两方面内容密切相关。由于传统的程序设计方法将这两方面内容分离,无形中加深了问题空间与解空间之间的裂痕,无法实现从问题空间到解空间的自然过渡,增加了软件开发的难度。从软件重复使用和软件维护的角度看,由于数据和施加在数据上的操作被分离成两个独立的部分,尽管传统方法也提倡软件重复使用,但局限于少数函数或过程的重复使用,重复使用的粒度比较小,不利于大型软件的开发;由于数据和施加在数据上的操作被分离成两个独立的部分,使模块的信息隐藏和独立性受到影响,因此传统方法开发的软件的可维护性较差。

  •   论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
  •   论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
  •  
  •   论文投稿客服QQ: 论文投稿2863358778 论文投稿2316118108
  •  
  •   论文投稿电话:15380085870
  •  
  •   论文投稿邮箱:lunwenbuluo@126.com

联系方式

  • 论文投稿客服QQ: 论文投稿2863358778
  • 论文投稿客服QQ: 论文投稿2316118108
  • 论文投稿电话:15380085870
  • 论文投稿邮箱:lunwenbuluo@126.com

热门排行

 
QQ在线咨询
咨询热线:
15380085870
微信号咨询:
lunwenbuluoli