下载此文档

第一章 软件设计概论.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/ 13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 13 下载此文档
文档列表 文档介绍
第一章软件设计概论
软件设计是一个将人类思维物化为计算机思维的过程,通过这个过程计算机获得一定程度的独立加工甚至思维能力,从而将人类思维推向更高层次。关于软件设计的概念和方法的研究是随着计算机应用的深入和所处理问题的复杂化而不断加深的。本章将就软件设计的相关概念和程序设计方法的演化发展作一简要介绍。
软件与软件危机
一个计算机系统由硬件系统和软件系统组成。关于软件,过去人们狭义地认为就是程序,软件设计就是程序设计,软件是程序员个人劳动的成果。然而在经历了“软件危机”之后,人们对软件的概念有了新的认识。所谓“软件危机”,爆发于二十世纪六十年代末,在大型程序设计中,人们发现投入大量人力时间设计出来的软件,其成本、效率、质量等方面却呈现失控状态,尤其是软件的维护异常困难,发现和修改错误以及功能扩充往往需要大量的重复性的投入。产生软件危机的原因主要有三个:
1软件开发者与用户之间对于问题的理解不一致。一方面开发者不熟悉用户问题的领域,或没有理解用户的需求,导致设计的软件产品与用户要求不一致;另一方面,用户也难以提出准确、完整、无二义性的软件需求描述。
2软件产品不同于其他物理产品,软件开发过程更多地体现为设计人员个人的思考过程。在提出软件工程概念之前,这种思考过程一般不完整表现在书面上,因此无法对思考过程进行科学规范及质量管理,软件开发进度也无法控制。
3人的智力在面对越来越复杂问题时,处理问题的效率会越来越低。因此,在没有找到控制问题复杂性的有效方法时,开发软件所需的时间和费用将随问题复杂性的增长而急剧增加。
软件工程
1 软件工程的提出和软件的定义
随着计算机应用领域的扩大以及问题复杂程度的增加,对软件的规模、可靠性和可维护性提出了越来越高的要求,软件危机的出现迫使人们重新认识软件的概念和软件开发过程。借鉴机械、建筑等行业从手工方式发展成为完整的工程科学的过程,软件产品也应和其他产品一样,由市场分析人员、管理人员、设计人员、测试人员,甚至用户共同协作完成,即,大型软件的开发也应向“工程化”方向发展。1968年在北大西洋公约组织(NATO)的学术会议上第一次提出“软件工程”的概念,此后又逐步提出了“软件生命期”的概念,经过对软件工程思想的系统的归纳和整理,1983年IEEE(电气和电子工程师协会)给出了软件的定义:
软件是程序、方法、规则、相关文档以及在计算机上运行所必需的数据的集合。而软件工程是开发、运行、维护软件的系统方法。
2 软件生命期
对一个较大的工程项目,把项目开发过程分成若干阶段,分别制定各阶段的实施时间、任务要求和质量要求,对整个工程的进展与质量进行分段管理,显然比整体开发更容易获得高质量的开发结果。例如开发一台机械设备,从开始研制到废弃不用为止,一般经过分析用户要求、设计、制造、测试、运行(同时不断维护)等几个阶段。在各阶段中,分析和设计人员需要产生一整套图纸和资料,如可行性报告、零件图、装配图、使用手册、维护手册等。这台设备的生命期就是从开始研制到废弃不用为止之间的这段时间。
类似地,对于软件产品,从开始研制到废弃不用为止的整个期间称为软件的生命期。软件生命期也可划分为以下五个阶段:需求分析、设计、编程、测试和运行维护。每个阶段都有明确的任务和要求,必须产生一定规格的文档资料;下一阶段在上期交付的文档的基础上开展工作。生命期的前四个阶段总称为开发期,最后一个阶段称为运行期。
3 软件的质量标准
衡量软件质量的指标有很多,通常从正确性、健壮性、可维护性、可用性、可重用性和效率等方面进行综合评价。
(1)正确性。软件的正确性是指软件系统在正常条件下能够正确工作,完成规定功能。这是软件的首要指标。
(2)健壮性。软件的健壮性是指在意外情况下,如输入数据不合理或某部分硬件出现故障,软件系统仍能适当地工作,并对意外情况进行适当处理,而不致于导致错误结果甚至系统的瘫痪或死机。例如,要求设计程序,根据输入的三边a、b、c的长度来判别三角形类型。现有如下设计思想:若a、b、c中只有两个量相等,则为等腰三角形,若三个量均相等,则为等边三角形,否则为一般三角形。按照这样的思想设计程序,当输入分别为(3,2,3)、(2,2,2)和(3,4,6)时,程序输出分别为:等腰三角形、等边三角形和一般三角形,结果是正确的;但如果输入为(-2,-2,-2)时,程序输出为:等边三角形。这个结果显然是错误的。这是由于程序对不合理数据不能进行适当处理,我们说这个程序的健壮性不好。正确性与健壮性合称可靠性。
(3)可维护性。软件的维护包括发现并改正软件的错误,以及由于软件运行环境发生变化或软件功能扩充而对软件进行的改动。软件维护的含义十分广泛,一个软件投入运行后经常会遇到需要维护的情况。而软件的修改必须

第一章 软件设计概论 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 13
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 中国课件站
  • 文件大小 0 KB
  • 时间2011-09-06
最近更新