电子教案4-5软件工程_第1页
电子教案4-5软件工程_第2页
电子教案4-5软件工程_第3页
电子教案4-5软件工程_第4页
电子教案4-5软件工程_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学计算机,第4章计算机软件基础,软件工程,05,4.5软件工程,所谓软件危机,是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。,4.5.1软件工程概述,1软件危机和软件工程,软件危机的主要表现,(1)软件成本严重超标,项目进度严重延期实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了开发组织的信誉。为赶进度和节约成本所采取的权宜之计往往又损害了软件产品的质量,从而不可避免地引起用户的不满。,(2)开发的软件不能满足用户实际需要软件开发人员常常在对用户需求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就仓促上阵匆忙着手编写程序。软件开发人员和用户之间的交流往往很不充分,“闭门造车”必然导致最终产品不符合用户实际需要。,(3)开发的软件可维护性差开发过程没有统一、公共的方法和规范进行指导,软件开发人员各行其是。另外,开发过程缺乏完整、规范的资料,程序结构不好,导致软件可维护性差。(4)开发的软件可靠性差由于在开发过程中没有确保软件质量的体系和措施,加之软件测试不充分,提交给用户的软件质量差,在运行中暴露大量的问题。这种不可靠的软件,轻者会影响系统正常工作,重者会发生事故。,典型案例,例:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果.,典型案例,这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,.谁也没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,典型案例,美国银行信托软件系统开发案美国银行1982年进入信托商业领域,并规划发展信托软件系统。项目原订预算2千万美元,开发时程9个月,预计于1984年12月31日以前完成,后来至1987年3月都未能完成该系统,期间已投入6千万美元。美国银行最终因为此系统不稳定而不得不放弃,并将340亿美元的信托账户转移出去,并失去了6亿美元的信托生意商机。,软件危机,为了解决软件危机,“软件工程”的概念在1967年北大西洋公约组织的一次学术讨论会上首次被提出。其主要思想是按工程化的原则和方法来组织和规范软件开发过程,以解决软件研制中面临的困难和混乱。两个典型的定义1968年在第一届NATO会议上曾经给出了软件工程的一个早期定义:“软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”1983年IEEE进一步给出了一个更全面更具体的定义:“软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。”,概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。,2软件生命周期,软件生命周期是指一个软件产品从提出开发要求开始直到该软件报废为止的整个时期。一般包括可行性研究与需求分析阶段、设计阶段、实现阶段、测试阶段和运行维护阶段等,有时还包括退役阶段。如右图所示:,4.5.2结构化分析方法,软件开发方法是软件开发过程所遵循的方法和步骤,其目的在于有效地编写出满足质量要求的程序和文档。结构化开发方法是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。,结构化分析方法采用面向过程的方式,对于复杂问题从上层入手,自顶而下,逐层分解,经过一系列的分解和抽象,每层的复杂程度即可降低,到最底层的就是很容易描述并可用代码实现的小问题了。,4.5.3结构化设计方法,软件设计的主要任务是要解决如何做的问题,在需求分析的基础上,建立各种设计模型,并通过对设计模型的分析和评估,来确定这些模型是否能够满足需求。软件设计是将用户需求准确地转化成为最终的软件产品的唯一途径,在需求到构造之间起到了桥梁作用。在软件设计阶段,往往存在多种设计方案,通常需要在多种方案中进行决策和折中,并使用选定的方案进行后续的开发活动。,1软件设计基础,2结构化设计方法,结构化设计方法主要用于构造软件设计。它是在结构化分析方法的基础上构造一个实现软件系统的模型。从宏观上看,系统分析给出了系统“做什么”,而系统设计则给出了系统“怎么做”。其基本思想是将软件设计成由相对独立、单一功能的模块组成的结构。分为概要设计和详细设计两个阶段。,4.5.4软件测试,1.软件测试的定义是为了发现错误而执行程序的过程。1983年IEEE提出的软件工程标准术语中给软件测试下的定义是:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。在整个软件开发中,测试工作量一般占30%40%,甚至50%。在人命关天的软件(如飞机控制、核反应堆等)中,测试所花费的时间往往是其它软件工程活动时间之和的三到五倍。,2.软件测试的目的,基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。,2.软件测试的目的,概括地讲,测试的目的包括以下几点:想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。,软件测试的基本原则,应尽早地和不断地进行软件测试,这是软件开发者的座右铭。据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占64%,属于程序编写的错误仅占36%。程序编写的许多错误是“先天的”。测试用例应是以发现错误为目的而精心设计的一组测试数据,应由测试输入数据和对应的预期输出结果这两部分组成。测试用例=输入数据+期望结果,软件测试的基本原则,程序员应避免检查自己的程序。在设计测试用例时,应包括合理的输入条件和不合理的输入条件。充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。严格执行测试计划,排除测试的随意性。应当对每一个测试结果做全面检查。妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。,软件测试的对象,软件测试贯穿于软件定义与开发的整个周期。软件测试的对象需求分析、概要设计、详细设计、程序编码等各阶段所得到的文档资料,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。,两种常见的软件测试方法,白盒测试黑盒测试,白盒测试,黑盒测试,黑盒测试,软件测试的流程,单元测试:用设计的测试用例,测试模块是否正确实现了功能。集成测试:把通过单元测试的模块集成在一起,看能不能正常实现功能。确认测试:检查已经组装完的软件能否实现需求说明规定的功能,以及软件配置是否完整、正确。系统测试:把经过确认的软件纳入实际的运行环境,与应用环境组合在一起进行测试,以检查软件能否正确、稳定地运行,软件测试的步骤,4.5.5软件的调试,主要的调试方法有以下几种:(1)强行排错法(2)回溯法(3)演绎法(4)归纳法(5)二分法,4.6本章小结,计算机软件系统是计算机系统的重要组成部分。它的发展大致可以分为3个阶段:程序设计阶段、程序系统阶段、软件工程阶段。通常将软件分为两大类,即系统软件和应用软件。操作系统是控制和管理计算机硬件和软件资源、合理组织计算机工作流程以及方便用户使用计算机资源的程序和数据的集合。操作系统的种类繁多,常见的分类方法有根据所支持的用户数目分类、根据其工作的特点分类、根据计算机的体系结构分类。操作系统具有4个方面的功能:存储器管理功能、处理机管理功能、设备管理功能和文件管理功能。目前,常用的操作系统有DOS、Windows、Unix、Linux、MacOS等。,办公软件是为办公自动化服务的,一般包括字处理、电子表格、演示软件等。目前常用的办公软件主要是Microsoft公司的MicrosoftOffice。数据库技术的发展分为4个阶段,常见的数据库模型有层次模型、网状模型、关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论