信息基础第三章.ppt
3.3软件和软件工程2软件工程性质软件工程是一门综合性的交叉学科,涉及计算机科学、工程科学、管理科学、数学等领域3软件工程目标 (1)付出较低的开发成本(2)达到要求的软件功能(3)取得较好的软件性能(4)开发的软件易于移植(5)需要较低的维护费用(6)能按时完成开发任务,及时交付使用(7)开发的软件可靠性高3.3软件和软件工程4软件工程内容软件工程研究的主要内容是软件开发技术和软件管理两方面。在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要是研究软件管理学、软件经济学、软件心理学等5软件工程面临的问题(1)软件费用(2)软件可靠性(3)软件维护(4)软件生产率(5)软件重用3.3软件和软件工程图3.12计算机与软件工程关系3.3软件和软件工程软件的工业化生产过程应具备的特点:1、明确的工作步骤2、详细具体的规范化文档3、明确的质量评价标准软件工程技术的两个明显特点:1、强调规范化2、强调文档化3.3软件和软件工程3.3.4软件开发过程软件过程(Process)是描述、开发、维护软件产品,创建、管理和支持软件项目的一系列活动(1)软件描述:必须定义儒家功能以及对其使用的限制(2)软件开发:必须制作出满足描述的软件(3)软件有效性验证:必须经过验证以保证能够满足客户要求(4)软件进化:必须随客户需求的变化不断改进3.3软件和软件工程软件开发模型为了描述、规范软件开发的管理和技术活动,就需要建立软件过程模型,对软件开发过程的结构和属性进行抽象。软件过程模型定义了软件开发活动,给出了其间的逻辑关系为软件工程管理提供里程碑和进度表,为软件开发提供框架和方法1瀑布模型瀑布模型将软件开发过程分解成可行性研究、软件需求分析、软件设计(概要设计、详细设计)、编码、测试、运行与维护、退役等几个阶段。如图3.13所示3.3软件和软件工程图3.13带反馈的瀑布模型2增量模型增量过程模型是将需求分解,划分成一系列的增量,并根据增量急需和缓需为其排序。每个增量都经历需求分析、设计、编码、测试等过程。如图3.14示3.3软件和软件工程图3.14增量模型3.3软件和软件工程3原型模型原型(Prototyping)是开发人员根据客户提出的软件(部分或者全部)的定义,快速开发一个原型。原型向客户展示待开发软件系统的全部和部分功能和性能。由于原型是客户和软件开发人员共同设计和评审,因此利用原型能统一客户和软件开发人员对让软件项目的理解,消弭歧义,有助于需求的定义和确认。如图3.15所示3.3软件和软件工程图3.15原型模型3.3软件和软件工程4螺旋模型螺旋模型(SpiralModel)是B.Boehm在1988年提出。螺旋模型是迭代模型,从里向外每个回路表示软件过程的4个阶段组成。如图3.16所示软件过程阶段(1)定义目标(2)风险分析(3)开发验证(4)对项目进行评审3.3软件和软件工程图3.16螺旋模型3.3软件和软件工程5基于构件的过程模型构件(Component)是指可复用的软件单元。粗略分有基础构件、功能构件、接口构件和用户界面构件等。基于构件的软件开发核心思想在于软件复用、行业分工及软件工业化 基于构件开发模型减少了软件开发工作量,降低了软件开发成本和风险,缩短了软件开发周期。当然具有足够的可选择构件,以及构件标准的完备也直接影响到基于构件的软件开发的质量和进度3.3软件和软件工程1基础构件,2功能构件3接口构件,4用户界面构件图3.17基于构件的开发过程模型3.3软件和软件工程3.3.5软件开发方法软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。软件开发的目标是在规定的投资和时间内,开发出符合用户需求的高质量的软件 1.结构化方法 2.Jackson方法3.维也纳开发方法(VDM) 4.面向对象的开发方法大学信息技术基础*大学信息技术基础第三章计算机软件*本章要点与计算思维本章要点计算机软件分为系统软件和应用软件。系统软件是硬件层之上、与应用领域无关软件,如操作系统软件。应用软件则通过系统软件工作。本章介绍计算机软件、程序与程序设计语言、数据结构与算法、软件和软件工程以及操作系统软件。本章要点与计算思维本章与计算思维计算机软件是计算机硬件的扩展和延伸。本章着重