资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
18.9.15,王如龙,第 1 章 概 述,软件工程,2,软件产业是创新的与充满活力的朝阳产业,需要大量的,不同层次的软件人才。 计算机软件是软件产业的主要产品,它是逻辑产品而非物理产品,它与硬件具有完全不同的特征。,前言,关于教学背景与计划,3,学习软件工程应注重计算思维能力、算法设计与分析能力、程序设计和实现能力、系统能力(系统的认知、设计、开发、应用)的培养,尤其是系统能力。 系统能力包含如下两个层面的含义: 对系统的全局掌控能力 系统地考虑问题的求解能力,前言,关于教学背景与计划,4,教 学 计 划,前言,关于教学背景与计划,通过软件工程理论的学习与实践来实施信息化,需要我们达成如下共识: 知道做不到,就是不知道; 做到不知道,也是不知道; 知道并做到,才是真知道!,5,提 纲,软件的发展、特点、定义、分类 软件工程概念 软件生存周期与软件开发模型,6,1.1 关于软件,软件是一种逻辑产品。 逻辑是思维的规律,是人通过概念、判断、推理、论证来理解和区分客观世界的思维过程。 产品是指能够提供给市场,被人们使用和消费,并能满足人们某种需求的任何东西,包括有形的物品、无形的服务、组织、观念或它们的组合。,P.1,7,1.1 关于软件,软件是开发和运行产品的载体。 软件作为一种产品,它表达了由计算机硬件体现的计算潜能。 计算是一种将单一或复数之输入值转换为单一或复数之结果的一种思考过程。 潜能就是潜在的能量,潜能即是以往遗留、沉淀、储备的能量。,P.1,8,1.1 关于软件,不论它是驻留在设备中,还是在主机中,软件都是一个信息转换器,能够产生、管理、获取、修改、显示或转换信息。 这些信息可以很简单,如学生编号;也可以很复杂,如市场信息、多媒体信息。 作为开发运行产品的载体,软件是计算机工作和信息通信的基础,也是创建和控制其他程序的基础。,P.1,9,1.1 关于软件,经济全球化和全球信息化是当今世界的两大趋势; 材料、能源和信息是现代社会发展的三大资源。 信息是21世纪最重要的产品,软件充分体现了这一点。,P.1,10,1.1 关于软件,通过软件处理数据,凸显了数据的重要性; 软件管理商业信息,增强了商业竞争力。 软件不仅提供了通往全球信息网络的途径,而且也提供了获取信息的多种手段。 无处不在,无所不能,这就是软件的能力; 只有想不到,没有做不到,这就是软件工程的魅力!,P.1,11,1.1 关于软件,1.1.1软件发展 1程序设计阶段(1946年1956年) 特点: 尚无软件的概念,程序设计主要围绕硬件进行开发 个体生产方式、工具简单 无明确分工(开发者和用户) 程序设计追求节省空间和编程技巧,无文档资料 主要是用于科学计算,P.1,12,1.1 关于软件,1.1.1软件发展 2程序系统阶段(1956年1968年) 特点: 硬件环境相对稳定,出现“软件作坊”的开发组织形式,开始使用产品软件(可购买),从而建立了软件的概念。 系统规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽。 开发者和用户有了明确分工,社会对软件的需求量剧增,但是软件开发技术没有重大突破,生产效率低下,从而导致“软件危机”产生。,P.1,13,1.1 关于软件,1.1.1软件发展 3软件工程阶段(1968年1989年) 由于软件危机的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件生产进入软件工程时代。 特点: 微机、局域网(LAN ) 硬件向“四化”(巨型、微型、网络、智能)发展。 结构化程序设计方法成熟并取得伟绩。 软件工程学科的基本科学体系趋于成熟。,P.1,14,1.1 关于软件,1.1.1软件发展 4软件工程阶段(1989年-至今) 随着应用领域的不断拓宽,传统程序设计方法受到挑战,它不是万能的。面向对象方法应运而生。 特点: 网络技术成熟并广泛应用 分布式技术应用 人工智能、专家系统 现有的软件系统大多数采用面向对象技术开发。,P.2,15,1.1 关于软件,1.1.1软件发展,表1-1 4个阶段的典型技术,P.2,16,P.2,20世纪60年代,美国的大学开始设立计算机专业,教学生如何编写程序。 软件对人类来说是一个全新的领域,其发展历史只有短短的几十年,但其发展速度和对人类社会发展的影响都是空前的。 软件已从个性化的程序变为工程化的产品,人们已经认识到把软件这一术语等同于计算机程序是很狭隘的。,1.1.2软件定义,1.1 关于软件,17,P.2,软件是计算机系统中与硬件相互依存的另一部分; 软件是有一定功能和性能的程序、数据和文档它的完整集合。,图1-3 软件的组成要素,1.1.2软件定义,1.1 关于软件,18,P.2,一个软件系统通常包括: 在计算机运行中能够提供所希望的功能和性能的程序; 使程序能够正确运行的数据结构和数据; 描述系统结构的文档和如何使用与维护系统的用户文档。 程序是软件的窗口,它展示着系统的能力; 数据是软件的根本,它决定了系统的价值; 文档是软件的灵魂,它关系到系统的命运。,1.1.2软件定义,1.1 关于软件,19,P.2,软件在整个计算机系统中是一个逻辑部件,而硬件是一个物理部件。软件的特点可归纳如下: 1) 软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 2) 软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。,1.1.3软件特点,1.1 关于软件,20,P.2,3) 在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。 4) 软件的开发和运行经常受到计算机系统限制,对计算机系统有着不同程度的依赖。 5) 软件的开发尚未完全摆脱手工开发方式。 6) 软件的开发费用越来越高。 7) 软件的开发是一个复杂的过程。,1.1.3软件特点,1.1 关于软件,21,P.3,1基于软件功能的划分 2基于软件工作方式划分 3基于软件规模的划分 4基于软件失效的影响进行划分 5基于软件服务对象的范围进行划分,1.1.4软件分类,1.1 关于软件,22,提 纲,软件的发展、特点、定义、分类 软件工程概念 软件生存周期与软件开发模型,23,P.6,由于微电子学技术的进步,计算机硬件的性能有了很大的提高,而且质量稳步提高。 然而,计算机软件成本却不断上升,质量也不尽人意,软件开发的生产率也远远不能满足计算机应用的要求。 软件已经成为限制计算机系统进一步发展的关键因素。,1.2 软件工程概念,24,P.6,更为严重的是,计算机系统发展早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发。 甚至有的大型软件根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。 为了研究解决软件危机的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是计算机软件工程学。,1.2 软件工程概念,25,P.6,1软件危机 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。,1.2.1软件危机与软件工程的定义分类,1.2 软件工程概念,26,P.6,1软件危机 软件危机主要有下列表现: 1)产品不符合用户的实际需要。 2) 软件的生产率。 3)软件产品的质量差。 4)对软件开发成本和进度的估计常常不准确。 5)软件的可维护性差。 6)软件文档资料通常既不完整,也不合格。 7)软件的价格昂贵。,1.2.1软件危机与软件工程的定义分类,1.2 软件工程概念,27,P.6,2软件工程定义 软件工程是指导计算机软件开发和维护的一门学科。 采用工程的概念、原理、技术和方法,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发与维护软件。,1.2.1软件危机与软件工程的定义分类,1.2 软件工程概念,28,P.6,2软件工程定义 1968年在前联邦德国召开的国际会议上正式提出并使用了“软件工程”这个术语,运用工程学的基本原理和方法来组织和管理软件生产。 后来还发展了与软件有关的心理学、生理学和经济学等方面的学科。,1.2.1软件危机与软件工程的定义分类,1.2 软件工程概念,29,P.6,2软件工程定义 在这期间,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则。 这100多条软件工程准则可以概括为下述6条基本原则。,1.2.1软件危机与软件工程的定义分类,1.2 软件工程概念,30,P.7,3软件工程6原则 用分阶段的生存周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 应能清楚地审查结果 合理安排软件开发小组的人员,1.2.1软件危机与软件工程的定义分类,1.2 软件工程概念,31,P.8,从内容上划分,软件工程学可分为理论、结构、方法、工具、环境、管理、规范等。 软件工程学研究的基本目标是: 定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。 确定软件成分,记录软件生存周期每一步的软件文件资料,按步显示其轨迹。 可预测结果,在生存周期中,每隔一定时间可以进行复审。,1.2.2软件工程的基本内容与目标,1.2 软件工程概念,32,P.8,软件工程学的最终目的,是以较少的投资获得易维护、易理解、可靠、高效率的软件产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。,1.2.2软件工程的基本内容与目标,1.2 软件工程概念,33,P.8,为了开发出低成本、高质量的软件产品,软件工程学应遵守以下4条基本原则。 分解 抽象和信息隐蔽 一致性 确定性,1.2.3软件工程的原则,1.2 软件工程概念,34,提 纲,软件的发展、特点、定义、分类 软件工程概念 软件生存周期与开发模型,35,P.9,软件工程采用的生存周期方法就是从时间角度对软件的开发与维护这个复杂问题进行分解。将漫长的软件生存时期分为若干阶段,每个阶段都有其相对独立的任务,然后逐步完成各个阶段的任务。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。,1.3.1 软件生存周期,1.3软件生存周期与软件开发模型,36,P.9,软件生存周期一般可分为以下8个阶段: S1:问题定义 S2:可行性研究 S3:需求分析 S4:概要设计 S5:详细设计 S6:编码 S7:测试 S8:运行与维护,1.3.1 软件生存周期,1.3软件生存周期与软件开发模型,了解和分析用户的目标和问题,以及经济、技术和时间等方面的可行性;(1-2) 将用户的需求规范化、形式化,编写成需求说明书及初步的用户手册,提交评审;(3) 将软件需求设计为软件过程描述,即设计人员将确定的各项需求转化成一个相应的体系结构。结构的每一组成部分都是意义明确的模块,每个模块都与某些需求相对应;(4) 对每个模块的具体任务进行具体的描述;(5) 编代码,就是把过程描述编为机器可执行的代码;(6) 测试,发现错误,进行改正;(7) 维护,包括故障的排除以及为适应使用环境的变化和用户对软件提出新的要求所做的修改。(8),37,P.10,软件生存周期还可以分为3个大的阶段: 计划阶段。计划阶段可分为两步:软件计划和需求分析。 开发阶段。开发阶段经过3个步骤,包括设计、编码和测试。 维护阶段。主要包括配置评审,确定维护组织和职责,定义表明系统错误和修改报告的格式等。,1.3.1 软件生存周期,1.3软件生存周期与软件开发模型,38,P.10,为了反映软件生存周期内各种工作应如何组织及软件生存周期各个阶段应如何衔接,需要用软件开发模型给出直观的图示表达。 软件开发模型是软件工程思想的具体化,是实施于过程模型中的软件开发方法和工具,是在软件开发实践中总结出来的软件开发方法和步骤。 总而言之,软件开发模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号