欢迎来到天天文库
浏览记录
ID:50077580
大小:846.00 KB
页数:59页
时间:2020-03-08
《软件工程 教学课件 作者 张海藩 1_ 第1章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第1章概述1.1开发软件不等于编写程序1.2软件工程1.3软件生命周期1.4软件过程1.5小结1.1开发软件不等于编写程序1.1.1开发软件应该完成的工作远远多于编写程序应该完成的工作由于对程序的需求很明确,编写程序所应完成的工作主要是设计算法(即完成指定功能的步骤),然后用程序设计语言(例如,C语言)表达该算法。返回目录开发软件并非就是编写程序,事实上编写程序仅仅是开发软件所应完成的工作的一部分,而且只占一小部分。为了开发出一个符合用户需要、质量合格的软件,软件工程师必须首先弄清楚用户面临的问题是什么,也就是要明确软件的“主攻”方向;接下来应该进行
2、可行性研究,分析用户面临的问题是否有行得通的解决方案,为避免浪费资源,仅在该软件的开发是可行的前提下,才进行实质性的开发工作;然后应该进行需求分析工作,通过与用户的反复交流,搞清楚用户对该软件的具体需求,这些需求是进行软件设计的依据;在编写程序之前需要先进行设计,通常,大型软件的设计工作又分成两个阶段进行,先进行总体设计(又称为概要设计),再进行详细设计;编写程序实质上是把设计结果翻译成用某种程序设计语言书写的程序;程序编写出来之后,还需要经过严格的测试过程,软件确实符合用户需求而且质量合格,才能交付给用户使用。此外,规模较大的软件都是由多人分工协作
3、开发出来的,为了使开发人员相互之间能准确地交换信息,同时也为了在软件交付给用户使用期间能比较容易地修改或扩充,必须把软件开发全过程中各个阶段的工作成果用文字、图表等适宜的形式准确地记录下来(通常把这些记录称为文档)。事实上,软件是由程序、数据和相关的文档组成的。从软件的构成可以看出,程序仅仅是组成软件的一个成分,从这个角度说,开发软件也绝不等于编写程序。1.1.2错误做法导致软件危机开发软件不等于编写程序,但是,迄今为止,仍然有不少人错误地认为开发软件就是编写程序,或者认为开发软件主要就是编写程序。人们之所以有错误的认识并在开发软件时采用了错误的做法
4、,主要可归因于在计算机系统发展的早期阶段“开发软件”的个体化特点。所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题:怎样开发软件,以满足人们对软件日益增长的需求;如何维护数量不断增加的已有软件。具体说来,软件危机主要有以下一些典型表现:●对软件开发成本和进度的估计常常很不准确。实际成本比估计成本高出几倍甚至十几倍,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。●用户对“已完成的”软件系统不满意甚
5、至拒绝接受的现象经常发生。●软件产品的质量往往靠不住。●软件常常是不可维护的。很多程序中的错误都非常难以改正,实际上不可能使这些程序适应新的运行环境,也不能根据用户的需要在原有程序中增加一些新的功能。●软件通常没有适当的文档资料。缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难和问题。●软件成本在计算机系统总成本中所占的比例逐年上升,例如,美国在1985年软件成本大约已占计算机系统总成本的90%●软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及的趋势。软件产品“供不应求”的现象使得人类无法充
6、分利用现代计算机硬件提供的巨大潜力。以上列举的仅仅是软件危机的一些明显的表现,与软件开发和维护有关的问题远远不止这些。出现软件危机的主要原因是人们在开发软件时使用了错误的方法,而错误做法是在错误认识的指导下采用的。为了消除软件危机首先应该树立起对软件和软件开发的正确认识。因此下面我们着重批驳一些典型的似是而非的论调。“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充。”事实上,对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。只有用户才真正了解他们自己的需要,但是许多用户在开始时并不能准确具体地叙
7、述他们的需要,软件开发人员需要做大量深入细致的调查研究工作,反复多次地和用户交流信息,才能真正全面、准确、具体地了解用户的要求。对问题和目标的正确认识是解决任何问题的前提和出发点,软件开发同样也不例外。急于求成仓促上阵,对用户要求没有正确认识就匆忙着手编写程序,这就如同不打好地基就盖高楼一样,最终必然垮台。“所谓软件开发就是编写程序并设法使它运行。”一个软件从定义、开发、使用和维护,直到最终被废弃,经历了一个漫长的时期,这就如同一个人要经过胎儿、儿童、青年、中年、老年,直到最终死亡的漫长时期一样。通常把软件经历的这个漫长的时期称为软件生命周期(也称为
8、生存周期)。正如我们在1.1.1小节中已经讲过的那样,软件开发最初的工作应是问题定义,也就是确定要求解决的问
此文档下载收益归作者所有