浅谈软件开发过程中的方法问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈软件开发过程中的方法问题

摘要:先进的制造模式要求信息集成和功能集成贯穿于产品生命周期的每一阶段,功能的集成需要软件系统的支持,从而推动先进制造模式的实现。软件开发过程是建造软件解决方案的关键要素。本文详细讨论了两类主要的过程开发方法,即面向对象方法和结构化方法。

关键词:软件开发过程;面向对象方法;结构化方法methodological issues in the process of software development

xia xue

(beijing elite creation technology

co.,ltd.,beijing100081,china)

abstract:advanced manufacturing model requires information integration and functional integration throughout the product life cycle at every stage of the functional integration needs the support of the software system,thus promoting the realization of advanced manufacturing mode.the software development process is a key element of construction software solutions.this paper discusses the two main types of process development methods,object-oriented methods and structured methods.

keywords:software development process;object-oriented methods;

structured approach

一、软件系统的开发过程

软件可划分为智能软件、系统软件和应用软件三个领域。由于不同的软件采用的开发知识不同,从而构成各自相应的方法。尽管,智能软件和应用软件分属不同的领域,但智能软件和应用软件都是计算机软件。

建造软件系统的解决方案由三个关键的相互关联的基本要素组成:

1.软件工程过程(sep)。

2.软件工程过程支持环境(sepse,如开发工具和建模语言等)。

3.培训、指导和咨询服务。

watts humphrey曾经说过,“软件工程过程就是将客户需求转化为软件产品的所有必须活动的集合”。在整个解决方案中首当其冲而且也是最重要的要素是过程。

二、当前主流的软件开发方法

(一)结构化方法

1.结构化程序设计方法

20世纪60年代,围绕是否应取消goto语句,人们展开了一场激烈的争论。最终人们认识到,软件开发中的问题的解决不仅仅是简

单的取消goto语句,而是应该改变传统软件开发思维观念,在此基础上创建新的程序设计方法。

围绕goto语句争论的结果使人们形成了新的思维观念:编写程序时,在正确地实现了软件功能的前提下,必须考虑到程序的可维护性,重视程序的可读性、清晰性和可理解性,而不能随心所欲地去过分追求程序编写技巧。

由于使用三种基本程序结构(顺序、选择、循环)组成的程序具有良好的可读性、清晰性和可理解性,容易维护,所以逐渐成为主流的程序结构标准。按照这样的新思维观念,形成了一个新的程序设计方法———结构化程序设计方法,结构化程序设计是根据结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从而实现详细设计。

2.结构化分析方法和结构化设计方法

结构化程序设计方法的巨大成功推动了结构化分析方法和结构

化设计方法的发展。1974年,stevens、myers和constantine发表文章《structured analysis》,提出了结构化分析和结构化设计的概念。

结构化分析方法根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模块,从而完成需求分析工作。结构化设计方法使用模块化和自顶向下逐步细化技术,将数据流图等结构化分析的结果转化为软件系统总体结构,用软件结构图来

建立系统的物理模型,实现系统的概要设计。

结构化软件开发方法成为20世纪70年代和80年代占主导地位的软件开发方法,它有效地遏制了软件危机的蔓延,直到现在仍在发挥作用。结构化方法简单实用,技术成熟,应用广泛,但难以承担大规模的项目或特别复杂的项目,难以解决软件重用(复用)问题,难于适应需求变化,且软件维护依然比较复杂。

(二)面向对象方法

面向对象软件开发方法包括面向对象分析方法

(object-oriented analysis,简称ooa)、面向对象设计方法(object -oriented design,简称ood)和面向对象程序设计(object-oriented pro-gramming,简称oop),其核心是面向对象程序设计方法。

一般认为软件由程序和文档组成,而程序又由数据结构和算法组成,在传统的程序设计方法中,数据(数据结构)和施加在数据上的操作(算法)被分离成两个独立的部分,而程序被看作是工作在数据上的一系列过程或函数的集合,然而客观世界的实体既有静态的属性(即数据),又有动态的行为(即对数据的操作),因此这两方面内容密切相关,由于传统的程序设计方法将这两方面内容分离,无形中加深了问题空间与解空间之间的裂痕,增加了软件开发的难度。

相反,面向对象方法有下列要点:客观世界是由各种对象

(object)组成的,复杂对象可以由简单对象组成。有共同属性和方法的一组对象抽象为一个类(class)。一个类(子类)可以继承另外一个类(父类)的方法和属性,这一特性称为继承。对象之间通过传递消息进行通信。

以上特点可以归结为如下的公式:object-ori-ented =object +classification +inheritance +commu-nication with messages。在面向对象程序设计方法中,数据和施加在数据上的操作被封装在一起,形成类和对象的概念,用对象分解取代了传统方法的功能分解。这一思维观念创新使得问题空间与解空间的结构基本一致,有利于软件复用,也与人们通常认识世界的思维方式相符,更利于加强代码的易懂性。

20世纪60年代末,kristen nygaard和ole-johan dahl在挪威计算中心开发出simula67语言,提出许多面向对象的概念。1972年,alankay引用simula语言中关于类和对象的概念,开发出第一种真正的面向对象语言smaltalk。

smalhalk语言的发布引起了人们的广泛关注,随后产生了数十种面向对象语言,例如著名的c++和java。

在面向对象程序设计方法基础上,许多面向对象分析和设计(ooa /ood)方法被提出,比较著名的如wirfs -brock方法、booch 方法、coad/yourdon方法、对象建模技术 omt(objectmodeling technique)、面向对象软件工程oose(object-oriented software

相关文档
最新文档