您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第一章 软件工程概述
第一章软件工程概述•学习目标:掌握:软件和软件工程的基本概念、软件开发的瀑布型模型了解:软件生存周期及软件开发的各种模型•学习要点:软件、软件工程、软件生存周期和软件开发的模型(瀑布型和螺线型)1.1软件的概念、特点和分类•软件的概念软件是计算机系统中与硬件相互依存的另一部份,它是包括程序、数据及其相关文档的完整集合。软件的特点•软件是一种逻辑实体,而不是具体的物理实体,因此它具有抽象性。•软件一旦研制成功,以后就可以大量复制,即它的研制成本远远大于它的生产成本。软件故障往往是在开发时产生,所以要保证软件的质量,必须重视软件的开发过程。•在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。•软件的开发和运行经常受到计算机系统的限制,对计算机系统有不同程度的依赖性。•软件的开发至今尚未完全摆脱手工的开发方式。•软件的开发费用越来越高,成本相当昂贵。软件的分类按软件的功能进行划分•系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。•支撑软件:是协助用户开发软件的工具性软件,其中包括帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发的进程的工具。按软件规模进行划分•微型:一个人在几天之内完成的软件。写出的程序不到5百行语句。•小型:一个人半年之内完成的2千行以内的程序。•中型:5个人以内在一年多时间里完成的5千到5万行的程序。•大型:5至10个人在两年多的时间里完成的5万到10万行的程序。•甚大型:100至1000人参加用4到5年时间完成的具有100万行程序的软件项目。•极大型:2000人到5000人参加,10年内完成的1000万行以内的程序。按软件工作方式划分•实时处理软件:指在事件或数据产生时,应立即在规定的时间里予以处理,并及时反馈信号,控制需要监测和控制的过程的软件。•分时软件:允许多个联机用户同时使用计算机。系统把处理机时间轮流分配给各联机用户,使各用户都感到只是自已在使用计算机的软件。•交互式软件:能实现人机通信的软件。•批处理软件:把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软件。这是最传统的工作方式。按软件服务对象的范围划分•项目软件:也称定制软件,是受某个特定客户(或少数客户)的委托,由一个或多个软件开发机构在合同的约束下开发出来的软件。•产品软件:直接提供给市场的软件。1.2软件的发展和软件危机软件经历了三个发展阶段:•程序设计阶段,约为50至60年代•程序系统阶段,约为60至70年代•软件工程阶段,约为70年代以后软件危机•在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。软件危机中遇到的问题•软件开发无计划性•软件需求不充分•软件开发过程无规范•软件产品无评测手段软件危机定义软件危机指的是软件开发和维护过程中遇到的一系列严重问题。(1)软件危机的表现•产品不符合用户的实际需要。软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力。•软件产品的质量差。•对软件开发成本和进度的估计常常不准确。•软件的可维护性差。•软件文档资料通常既不完整也不合格。•软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。(2)产生软件危机的原因软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前,很难检验开发的正确性,而且软件开发的质量也较难评价。软件不同于一般程序,它的一个显著特点是规模庞大。虽然软件本身独有的特点确实给开发和维护带来一些客观困难,但是人们在开发和使用计算机系统的长期实践中,也确实积累和总结出了许多成功的经验。开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。在软件的开发与维护关系问题上存在错误的概念。软件工程的定义软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。1.3软件工程过程和软件生存期1.3软件工程过程和软件生存期•软件工程过程是为获得软件产品而完成的一系列软件工程活动。软件工程过程通常包含四种基本的过程活动:(1)软件规格说明:规定软件的功能及其运行的限制;(2)软件开发:产生满足规格说明的软件;(3)软件确认:确认软件能够完成客户提出的要求;(4)软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。软件工程准则可以概括为如下六条基本原理。(1)用分阶段的生存周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)合理安排软件开发小组的人员软件工程的基本内容与目标1.软件工程的基本内容从内容上划分软件工程学可分为理论、结构、方法、工具、环境、管理、规范等。2.软件工程学研究的基本目标(1)定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。(2)确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹。(3)可预测的结果,在生存周期中,每隔一定时间可以进行复审。软件工程学的最终目标是以较少投资获得易维护、易理解、可靠、高效率的软件产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。软件工程的原则为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:1.分解2.独立性3.一致性4.确定性软件生存周期与软件开发模型软件工程采用的生存周期方法就是从时间角度对软件的开发与维护这个复杂问题进行分解,将软件生存漫长的时期分为若干阶段,每个阶段都有其相对独立的任务,然后逐步完成各个阶段的任务。软件生存周期从前面的介绍中可以知道,一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。软件生存期问题定义可行性研究需求分析设计编码测试运行与维护软件生存期也可以分为三个大的阶段:计划阶段。开发阶段和维护阶段。(1)计划阶段(2)开发阶段(3)维护阶段1.4软件生存期模型•软件生存期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。软件开发模型为了反映软件生存周期内各种工作应如何组织及软件生存周期各个阶段应如何衔接,需要用软件开发模型给出直观的图示表达。软件开发模型是软件工程思想的具体化,是实施于过程模型中的软件开发方法和工具,是在软件开发实践中总结出来的软件开发方法和步骤。总的说来,软件开发模型是跨越整个软件生存周期的系统开发、运行、维护所实施的全部工作和任务的结构框架。1.瀑布模型2.螺旋模型3.第四代技术模型4.原型模型5.构件组装模型6.混合模型1.5软件工程的基本目标•软件工程的定义开发、运行、维护和修复软件的系统方法。包括三个要素:方法、工具和过程。•软件工程项目的基本目标较低的开发成本;达到要求的功能;较好的软件性能;开发的软件易于移植;需要较低的维护费用;能及时交付使用。课后作业一、填空题(在括号内填入正确答案)1.软件工程学的内容可包括()、结构、()、()、环境、管理、规范等。2.软件生存周期一般可分为问题定义、()、()设计、()、测试、运行与维护阶段。二、判断题(正确用√表示,错误用Χ表示)1.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。()2.螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示。()3.原型模型适用于嵌入式软件。()4.面向对象技术是构件组装模型的基础。()三、单项选择题1.下列哪个阶段不是软件生存期三个阶段中的内容()。A.计划阶段B.开发阶段C.编码阶段D.维护阶段2.下列关于瀑布模型的描述正确的是()。A.瀑布模型的核心是按照软件开发的时间顺序将问题简化。B.瀑布模型具有良好的灵活性。C.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。D.利用瀑布模型,如果发现问题则修改的代价很低。四、简答题1软件的定义与特点。2.什么是软件工程?3.什么是软件生存周期?4.什么是软件危机,软件危机有哪几种表现?
本文标题:第一章 软件工程概述
链接地址:https://www.777doc.com/doc-3210537 .html