国外大的软件公司和机构一直在研究软件开发方法这个概念性的东西,而且也提出了很多实际的开发方法,比如:生命周期法、原型化方法、面向对象方法等等。下面介绍几种流行的开发方法:
1、结构化方法
结构化开发方法是由E.Yourdon 和 L.L.Constantine 提出的,即所谓的SASD 方 法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软件结构(变换型和事务型)使软件开发的成功率大大提高。
2、面向数据结构的软件开发方法
Jackson方法是最典型的面向数据结构的软件开发方法,Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。三种基本的结构形式就是顺序、选择和重复。三种数据结构可以进行组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。
3、 面向问题的分析法
PAM(Problem Analysis Method)是80年代末由日立公司提出的一种软件开发方法。它的基本思想是考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD 图。这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一。当然由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。
4、原型化方法
产生原型化方法的原因很多,主要随着我们系统开发经验的增多,我们也发现并非所有的需求都能够预先定义而且反复修改是不可避免的。当然能够采用原型化方法是因为开发工具的快速发展,比如用VB,DELPHI等工具我们可以迅速的开发出一个可以让用户看的见、摸的着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。
开发原型化系统一般由以下几个阶段:
(1) 确定用户需求
(2) 开发原始模型
(3) 征求用户对初始原型的改进意见
(4) 修改原型。
原型化开发比较适合于用户需求不清、业务理论不确定、需求经常变化的情况。当系统规模不是很大也不太复杂时采用该方法是比较好的。
5、面向对象的软件开发方法
当前计算机业界最流行的几个单词就是分布式、并行和面向对象这几个术语。由此可以看到面向对象这个概念在当前计算机业界的地位。比如当前流行的两大面向对象技术DCOM和CORBA就是例子。当然我们实际用到的还是面向对象的编程语言,比如C++。不可否认,面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑的意义。
随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT (Object Modeling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM没有完全实现的目标。不仅如此,OO技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破,基本地解决了在这些方面存在的严重问题。
综上所述,面向对象系统采用了自底向上的归纳、自顶向下的分解的方法,它通过对对象模型的建立,能够真正建立基于用户的需求,而且系统的可维护性大大改善。当前业界关于面向对象建模的标准是UML(Unified Modeling Language)。
这里我们需要谈一下微软的MSF(Microsoft Solutions Framework)的框架,它简单的把系统设计分成三个阶段:概念设计、逻辑设计和物理设计。概念设计阶段就是从用户的角度出发可以得到多少个对象,并且以对象为主体,画出业务框架。逻辑设计阶段就是对概念设计阶段的对象进行再分析、细分、整合、删除。并建立各个对象的方法属性以及对象之间的关系。而物理设计实际上就是要确定我们实际需要的组件、服务和采用的框架结构、具体的编程语言等。MCF整个结构比较清楚是基于对象开发的一个比较好的可操作的框架系统。
6、可视化开发方法
其实可视化开发并不能单独的作为一种开发方法,更加贴切的说可以认为它是一种辅助工具,比如用过SYBASE的S-Design的人都知道,用这个工具可以进行显示的图形化的数据库模式的建立,并可以导入到不同的数据库中去。当然用过S-Design的人不一定很多,但用过VB,DELPHI,C++ Builder等开发工具的人一定不少,实际上你就是在使用可视化开发工具。
当然,不可否认的是,你只是在编程这个环节上用了可视化,而不是在系统分析和系统设计这个高层次上用了可视化的方法。实际上,建立系统分析和系统设计的可视化工具是一个很好的卖点,国外有很多工具都致力于这方面产品的设计。比如Business Object就是一个非常好的数据库可视化分析工具。
可视化开发使我们把注意力集中在业务逻辑和业务流程上,用户界面可以用可视化工具方便的构成。通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、 列表框和滚动条等,由可视开发工具自动生成应用软件。
分享到:
相关推荐
Android平台软件开发方法综述.pdf Android 平台软件开发方法综述是指基于 Android 平台的软件开发过程中所采用的方法和技术。Android 平台软件是 2007 年由 Google 开发设计而推出的平台软件,为移动设备进行设计,...
【软件开发工具与环境概述】 软件开发工具与环境是现代软件工程中不可或缺的组成部分,它们旨在提高软件开发的效率和质量,支持软件的全生命周期管理。软件开发工具涵盖了从需求分析到维护的各个环节,包括操作系统...
无论是快速原型法、UML面向对象分析还是领域分析方法,都是为了更准确地捕捉用户的需求,并确保这些需求能够在软件开发过程中得到有效管理。未来,随着技术的发展和用户需求的变化,这些方法也将不断发展和完善。
《软件开发技术综述》是一份深入探讨软件开发领域的文献,涵盖了从软件的运行环境到开发过程中的多种技术和策略。作者原仓周首先对软件开发技术进行了概述,强调了软件运行环境的多样性,包括单机环境和网络环境,并...
美军在军用软件开发方面积累了丰富的经验,采用了先进的软件工程技术和方法,如模型驱动工程(MDE)、形式化方法、自动代码生成等,以提升软件的开发效率和质量。 #### 五、结论 软件工程作为一门综合性强的学科,...
软件开发者和组织为了提高软件系统的安全性,研究提出了系列软件开发安全原则和最佳实践。然而,由于程序的复杂性和软件的广泛应用针对软件的恶意攻击行为和软件系统安全缺陷越来越多地涌现出来,成为威胁信息系统...
《软件过程与管理方法综述》一文详细探讨了软件工程中软件开发过程与管理方法的重要性和发展历程。软件工程化的核心在于对整个软件开发过程进行有效组织和管理,以积累和传递软件开发的经验和教训。文章指出,由于...
关于软件开发的基本概念,方法,包括一些进程,线程的概念
以上内容对几种常见的敏捷软件开发方法进行了综述。通过对比不同方法的特点、优势和应用场景,可以帮助开发者根据项目具体情况选择最合适的方法。随着软件行业的不断发展,敏捷方法的应用也将变得更加广泛和深入。
【ATS软件开发平台研究综述】 自动测试系统(Automatic Test System,简称ATS)在现代测试设备发展中占据核心地位,涉及到计算机技术、自动控制技术、测试技术及软件技术等多个领域。ATS的性能、研制周期和成本在很...
在实际的软件工程专业文档中,通常会详细介绍软件工程的基本原理、软件开发生命周期、需求分析、设计模式、编码标准、测试方法、维护策略以及敏捷开发等关键知识。这些内容有助于软件工程师系统地了解软件的开发、...
在软件开发过程中,软件工程项目文档扮演着至关重要的角色。它不仅是团队沟通的桥梁,也是确保项目按计划进行、质量得到保证的重要工具。本综述文档将深入探讨软件工程项目文档的关键内容,以及它们如何促进项目的...
ATS(Automatic Test System)软件开发平台的研究综述主要探讨了在当前计算机技术、自动控制技术、测试技术和软件技术飞速发展的背景下,ATS作为测试设备的核心组成部分,其软件平台的选择对于系统的性能、成本和...
8. 中庸管理策略:Goldstein等人探讨了在软件开发中寻找中庸管理策略的方法。 9. 外部IT项目经理的角色:Reich和Sauer讨论了外部IT项目经理在软件项目中的角色和责任。 10. 开源软件项目的第一印象管理:Choi等人...