第1章_软件工程概述课件.ppt
《第1章_软件工程概述课件.ppt》由会员分享,可在线阅读,更多相关《第1章_软件工程概述课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、2023/3/28,1,第1章 软件工程概述,【本章重点】软件的概念和特点、软件工程的框架及基本原则【本章用途】本章论述的有关软件工程的基本概念、原理及相关知识能帮助读者对软件工程的原理和方法有一个概括的、本质的认识。,2023/3/28,2,1.1 软件的概念、特点与分类,许多人把软件这个术语等同于计算机程序,其实这种理解是很狭隘的。软件是程序和所有使程序正确运行所需要的相关文档和配置信息。一个软件系统通常包含大量独立的程序、用于设置这些程序的配置文件、描述系统结构的系统文档和如何使用该系统的用户文档,以及告知用户下载最新产品信息的Web站点。,2023/3/28,3,软件具有如下特点:软件
2、是一种逻辑实体,不是具体的物理实体。软件产品的生产主要是研制。软件具有“复杂性”,其开发和运行常受到计算机系统的限制。软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。软件不存在磨损和老化问题,但存在退化问题。,2023/3/28,4,图1.1给出了硬件的失效率曲线,它是一个U型曲线(即浴盆曲线),说明硬件随着使用时间的增加失效率急剧上升。图1.2所描述的软件失效率曲线,它没有U型曲线的右半翼,表明软件随着使用时间的增加失效率降低,因为软件不存在磨损和老化问题,然而存在退化问题。,图1.1,图1.2,2023/3/28,5,软件产品有以下两类:(1)通用软件产品 这类软件产品由软件开发机构
3、制作,在市场上公开销售,可以独立使用。这类软件产品有:数据库软件、字处理软件、绘图软件以及工程管理工具等。(2)定制软件产品 这类软件产品受特定的客户委托,由软件承包商专门为这类客户开发。这类软件有:电子设备的控制系统、特定的业务处理系统和空中交通管制系统等。这两类产品的一个重要区别在于:在通用软件中,软件描述由开发者自己完成,而定制软件产品的软件描述通常是由客户给出,开发者必须按客户要求进行开发。,2023/3/28,6,软件工程是一类工程。工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。计算机
4、科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划资源、对质量和成本进行管理。早期软件开发的经验是:非正规的软件开发并不奏效。多数软件项目有时甚至要推迟几年才能完成,而且比预计的费用高,不可靠,难以维护,总之,做得很差。软件开发陷入危机,结果是硬件成本在下降而软件成本却呈快速增长之势,因而必须要有新的技术和方法来控制大型软件系统固有的复杂性。,1.2 软件工程概述,2023/3/28,7,70年代初,自“软件工程”这一概念提出以来,主要围绕软件过程以及软件复用,开展了有关软件生产技术和软件生产管理的研究与实践。其主要成果有:提出了应用广泛的面向对
5、象语言以及相关的面向对象方法,大力开展了计算机辅助软件工程的研究与实践。尤其是近几年来,针对软件复用及软件生产,软件构件技术以及软件质量控制技术、质量保证技术得到了广泛的应用。目前各个软件企业都十分重视资质认证,并想通过这些工作进行企业管理和技术的提升。,2023/3/28,8,IEEE【IEE93】给出了软件工程的定义:“把系统的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程应用于软件;并研究以上实现的途径”,2023/3/28,9,软件工程(Software Engineering)的框架可概括为:目标、过程和原则。(1)软件工程目标是生产具有正确性、可用性以及开销合宜的
6、产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。,2023/3/28,10,(2)软件工程过程是生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。,2023/3/28,11,(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。四项基本原则:选取适宜的开发范型。采用合适的设计方法。提供高质量的工程支持。重视开发过程的管理。,2023/3/28,12,1.
7、3 关于软件工程的问题,1.3.1软件工程不同于计算机科学 从本质上讲,计算机科学研究的是构成计算机和软件系统基础的有关理论和方法,而软件工程则研究软件制作中的实际问题。正如电子工程师必须具有一定的物理学知识一样,软件工程人员同样必须具有一定的计算机科学知识。理论上,所有软件工程都应该以计算机科学理论作为坚实的基础,但实际情况并非如此。软件工程人员常常必须要用特定的方法去开发软件。对于实际、复杂的问题,计算机科学的经典理论不可能总是适用的,这时就需要应用软件工程的方法来解决。,2023/3/28,13,1.3.2 软件工程不同于系统工程,系统工程应该是基于计算机的系统工程,研究由软件起主导作用
8、的、有关复杂系统的开发和进化的方方面面,包括硬件开发、系统决策、过程设计、系统实施和软件工程等。系统工程人员要做的是描述这个系统,定义总的体系结构,然后集成各个组件以完成整个系统。他们较少关注系统各组件(硬件、软件等)的工程问题。系统工程的产生比软件工程要早。随着软件在系统中的比重不断增大,软件工程技术正被应用于系统工程过程之中。,2023/3/28,14,1.3.3 软件工程不同于传统工程,软件工程是更广泛的系统工程的一部分。软件是非物质的,经典的数学模型只适用于一部分而不是全部的软件。软件工程不必一味地模仿传统工程,它们是完全不同的。软件设计者必须做好准备去开发能适应环境变化的软件。这是软
9、件应该具备的性质。也是软件工程不同于传统工程的地方。,2023/3/28,15,1.3.4 软件工程不同于信息系统工程,信息系统是应用软件的一个分支。因为它的应用面极其广泛,市场前景巨大,如管理信息系统(MIS)、企业资源计划系统(ERP)、办公自动化系统(OA)、金税(税务)系统、金关(海关)系统、金卫(医疗卫生)系统、保险系统、金融系统、证券系统、港口系统、民航系统、物流系统、公安系统、人口普查系统、电信计费系统、数字化城市系统等。信息系统工程是专门研究信息系统建设的工程,它是软件工程的一个分支,或者说它是软件工程的一部分。信息系统建设除了需要遵守软件工程的普遍原理和方法之外,还要遵守自己
10、的特殊原理和方法,所以在讨论软件工程时也附带讨论一下信息系统工程。信息系统工程是一门新兴的工程学科,目前还不十分成熟,正处在发展之中,很多名词和定义还不规范,需要人们进一步探索。,2023/3/28,16,1.3.5 软件工程不只是程序设计,复杂问题需要软件工程,单靠程序设计无法解决复杂问题。复杂系统必须在编程之前进行设计。像建筑业一样,在建造复杂系统之前必须进行结构设计。必须用抽象和“分治”的方法对系统进行模块化。在程序员编写代码之前,对每个模块都要进行详细说明,并且必须定义与其他模块的接口。在设计一个系统之前,软件工程师必须了解它的需求。这就意味着必须做需求分析,而且必须用某种建模语言说明
11、。最终,软件工程还是一个团队活动,必须对团队进行管理。因此,项目管理(project management)对软件工程是有影响的。总之,软件工程为系统提供一个体系结构的解决方案,包括设计体系结构组件,将组件集成为一个可操作的系统,项目管理等。软件工程是一门精妙的学问,程序设计只是其中一项有用的技能。,2023/3/28,17,1.3.6 软件工程涉及的人员,2023/3/28,18,1.3.7 什么是好的软件,表1.1 优良软件具有的属性,2023/3/28,19,1.3.8 软件工程所面临的主要问题,(1)多样性的挑战(2)交付上的挑战(3)信任的挑战,2023/3/28,20,1.4 软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概述 课件
链接地址:https://www.31ppt.com/p-3953104.html