软件开发设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一.软件开发的概念 (2)
二.软件开发的发展过程 (2)
三.软件开发的进步 (3)
(一)最早的软件开发方法——Parnas方法 (3)
(二)面向数据结构的软件开发方法 (4)
(三)SASD方法 (5)
(四)问题分析法 (5)
(五)面向对象的软件开发方法 (6)
(六)可视化开发方法 (6)
(七)ICASE (7)
(八)软件重用和组件连接 (8)
四.软件开发的前景展望 (9)
软件开发行业的进步研究与前景展望一.软件开发的概念
软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合。软件分为系统软件和应用软件。软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。
二.软件开发的发展过程
哲学家认为凡事都是从实践提升到理论,再由理论指导实践, 由此向前发展。软件开发行业也不例外。软件开发的发展历史主要分为四个阶段:
1、20世纪60年代末期出现"软件危机", 软件产品开发周期长, 错误多,难以维护和适应修改。当时的荷兰物理学家E.W.Dijkstra提出"结构程序设计方法", 由此出现了软件开发的最早理论: 结构化分析和结构化设计(SASD , Structured Analysis and Design)。
2、人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。然而编制软件每次却都是从零开始,这是造成“软件危机”的根本原因。由此提出了编程工作是否也可以重用以前成功的经验和程序呢?整整经过十多年的探索,到七十年代才获得成功。由此出现了软件开发的第二大技术理
论体系: 面向对象分析和设计(OOAD , Object-oriented Analysis & Design)。
3、鉴于面向对象的缺陷,三位面向对象的奠基人联合起来,创建了UML统一建模语言: 统一面向对象的基本概念,并引进了许多新的概念,认为软件开发的过程实质上是从抽象的模型逐步细化,过渡到具体的实现,其中间的每个阶段都是实现了某一抽象模型,UML为此提供了建立模型的工具。但是由于此套理论要求开发人员的素质较高, 所以很少看到真正应用于实际软件开发中。在1998年日本京都召开的“基于构件的软件开发(CBSD)”国际专题学术会议上,一致认为软件开发技术离不开构件和体系结构。软件体系结构现简称“架构”. 由此出现了第三大技术理论体系: 基于构件的软件开发(CBSD , Component-based software development)。
4、后来随着分布式的出现,出现了第四大技术理论体系: 面向服务的架构(SOA , Service-oriented Architecture)。
三.软件开发的进步
软件开发技术是时下最主流的高端技术,研究软件开发有哪些进步的最佳方式就是从软件开发的开发方法入手,软件开发方法的变化历程见证了软件开发与过去相比的所有进步。
(一)最早的软件开发方法——Parnas方法
最早的软件开发方法是由D.Parnas在1972年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生
变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。Parnas 提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。如在分配使用设备前,应该取设备状态字,检查设备是否正常。此外,模块之间也要加强检查,防止错误蔓延。Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所以这一方法不能独立使用,只能作为其它方法的补充
(二)面向数据结构的软件开发方法
过了两年之后,软件开发的方法逐渐进化,由过去笨拙的开发方式进步为面向数据结构的软件开发方法,较为方便和完整。
1、Jackson方法
1975年,M.A.Jackson提出了一类至今仍广泛使用的软件开发方法。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。Jackson方法有时也称为面向数据结构的软件设计方法。
2 、Warnier方法
1974年,J.D.Warnier提出的软件开发方法与Jackson方法类似。差别有三
点:一是它们使用的图形工具不同,分别使用Warnier图和Jackson图;另一个差别是使用的伪码不同;最主要的差别是在构造程序框架时,Warnier方法仅考虑输入数据结构,而Jackson方法不仅考虑输入数据结构,而且还考虑输出数据结构。
(三)SASD方法
1978年,E.Yourdon和L.L.Constantine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1979年TomDeMarco对此方法作了进一步的完善。Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典型的软件结构(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。
(四)问题分析法
PAM问题分析法。PAM(Problem Analysis Method)是80年代末由日立公司提出的一种软件开发方法。PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,而避免它们的缺陷。它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的