第1章 软件工程引论.ppt
《第1章 软件工程引论.ppt》由会员分享,可在线阅读,更多相关《第1章 软件工程引论.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 软件工程引论 第1章 软件工程引论 1.1 软件产品的概念与特征软件产品的概念与特征 1.2 软件危机软件危机 1.3 软件工程的产生及其发展软件工程的产生及其发展 第1章 软件工程引论 1.1 软件产品的概念与特征软件产品的概念与特征 1.1.1 1.1.1 软件产品的概念与分类软件产品的概念与分类 就本质而言,软件就是一个信息转换器,它的功能不外是产生、管理、获取、修改、显示或转换信息。它担任着双重角色,首先,它是一种产品,表达了由计算机硬件体现的计算潜能;其次,它又是开发和运行产品的载体,是计算机控制(操作系统)、信息通信(网络)的基础,也是创建和控制其他软件(软件工具和开发环境
2、)的基础。第1章 软件工程引论 对于软件的一种公认的解释是:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。其中,程序是为实现设计的功能和性能要求而编写的指令序列;数据是使指令能够正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。根据用途划分,软件可以大致划分成如下类别:第1章 软件工程引论 (1)系统软件:就一般情况来说,系统软件是为其他软件服务的软件。系统软件与计算机硬件交互频繁,处理大量的确定或不确定的复杂数据,往往需要具有多用户支持、资源精细调度、并发操作管理、多种外部设备接口支持等项功能。(2)实时软件:管理、分析、控制现实世界
3、中所发生的事件的软件称为实时软件。它一般有数据采集、数据分析、输出控制等三方面的功能。实时软件需要保持一个现实任务可以接受的响应时间,即必须保证能够在严格限定的时间范围内对输入做出响应。第1章 软件工程引论 (3)商业管理软件:商业信息处理是最大的软件应用领域,包括常规的数据处理软件和一些交互式的计算处理(如POS软件)软件。它的基本功能是将已有的数据重新构造,变换成一种可以辅助商业操作和管理决策的形式。在这个过程中,几乎都要涉及到对于大型数据库的访问。各类管理信息系统(MIS)、企业资源计划(ERP)、客户关系管理(CRM)等都是典型的商业管理软件。第1章 软件工程引论 (4)工程与科学计算
4、软件:此类软件的特征是要实现特定的“数值分析”算法。例如离散傅立叶变换、有限元分析、演化计算等等。CAD/CAM软件一般也可以归属到这一类型中来。(5)嵌入式软件:驻留在专用智能产品的内存中,用于控制这些产品进行正常工作,完成很有限、很专业的功能的软件。例如各类智能检测仪表、数码相机、移动电话、微波炉等智能产品都必须在嵌入式软件的支持下才能正常工作。第1章 软件工程引论 (6)人工智能软件:利用非数值算法去解决复杂问题的软件。各类专家系统、模式识别软件、人工神经网络软件都属于人工智能软件。(7)个人计算机软件:文字处理系统、电子表格、游戏娱乐软件等等。此外,还可以根据软件的规模(代码行及开发工
5、作量,如表1.1)、软件的工作方式、使用频度、失效后造成的影响等对软件产品进行分类。第1章 软件工程引论 表表1.1 1.1 根据规模进行软件分类根据规模进行软件分类软件规模类别参加人员数开发期限产品规模(源代码行数)微型114周0.5k小型116月12k中型2512年550k大型52023年50100k甚大型100100045年1M极大型20005000510年110M第1章 软件工程引论 1.1.2 1.1.2 软件产品的特征软件产品的特征 在制造硬件时,人的创造性的劳动过程(分析、设计、建造、测试)能够完全转换成物理的形式,但软件是逻辑的而不是物理的产品,因此软件具有和硬件完全不同的特征
6、:(1)软件是一种逻辑实体,具有抽象性。我们可以把软件保存在媒体介质上,但却无法直接看到软件的形态,因而必须通过运行、观察、分析、思考、判断才能够了解软件的功能、性能及其他特性。换句话说,软件产品具有明显的非可视特征。第1章 软件工程引论 (2)软件的生产与硬件不同。软件是由开发或工程化而形成的,不是由传统意义上的制造过程生产的。虽然软件开发和硬件制造之间有一些相似之处,可是两者在本质上是不同的。这两者都能够通过良好的设计获得高质量的产品,但即使有了良好的设计和优秀的样品,硬件在批量制造过程中仍然可能引入质量问题,这种情况对于软件而言几乎不存在。软件在开发完毕,形成为产品之后,其批量制造过程只
7、是简单的拷贝/复制;软件的开发和硬件的制造都依赖于人,但参与者和他们完成的工作之间的关系不同;两者的终极目的都是建造产品,但方法不同;软件的成本集中在开发过程上,而硬件生产的成本更多地表现在原材料消耗上。因此,软件项目开发过程不能完全像硬件制造过程那样来管理。第1章 软件工程引论 (3)软件产品不会“磨损”。和硬件产品类似,软件产品也会出现故障。所不同的是,硬件产品的故障多来自外在条件导致的“磨损”或“老化”,而软件产品如果发生故障,无一例外的是在设计开发过程中留有隐患。因此,硬件的故障可以通过简单的更换部件解决,而软件的故障必须通过全面的软件维护活动才有望克服。同时,不完善的维护活动又可能在
8、软件中注入新的故障,导致软件质量的“退化”。也就是说,软件故障的修复要比硬件故障的修复复杂得多。因此,衡量软件产品质量的一个重要指标就是它的“可维护性”。图1.1是软、硬件产品的失效率曲线。第1章 软件工程引论 图1.1 软件/硬件产品失效率曲线第1章 软件工程引论 1.1.3 1.1.3 软件发展的阶段划分软件发展的阶段划分 自从20世纪40年代第一台计算机问世以来,就有了“程序”的概念,可以认为它是软件的前身。经过了几十年的发展,人们对软件有了更为深刻的认识,在这几十年中,软件开发经历了三个发展阶段:20世纪5060年代属于程序设计阶段;20世纪6070年代为程序系统阶段;20世纪70年代
9、之后进入软件工程阶段。各阶段的特点与区别见表1.2。第1章 软件工程引论 表表1.2 1.2 计算机软件发展的三个阶段及其特点计算机软件发展的三个阶段及其特点 阶 段特 点程序设计程序系统软件工程软件所指程序程序及说明书程序、文档、数据主要程序设计语言汇编及机器语言高级语言软件语言*软件工作范围程序编写设计和测试整个软件生命周期需求者程序设计者本人少数用户市场用户开发软件的组织个人开发小组开发小组及大、中型开发机构软件规模小型中、小型大、中、小型第1章 软件工程引论 阶 段特 点程序设计程序系统软件工程决定质量的因素个人技术小组技术水平技术与管理水平开发技术和手段子程序、程序库结构化程序设计数
10、据库、开发工具、集成开发环境、工程化开发方法、标准和规范、网络及分布式开发、面向对象技术、计算机辅助软件工程维护责任者程序设计者开发小组专职维护人员硬件的特征高价、存储量小、可靠性差降价,速度、容量和可靠性明显提高向超高速、大容量、网络化、微型化方向发展软件的特征完全不受重视软件的技术发展不能满足需求,出现软件危机开发技术有进步,但仍未完全摆脱软件危机表表1.2 1.2 计算机软件发展的三个阶段及其特点计算机软件发展的三个阶段及其特点第1章 软件工程引论 1.2 1.2 软软 件件 危危 机机1.2.1 1.2.1 软件危机及其表现软件危机及其表现 现代计算机应用系统中,软件的地位日益重要和突
11、出。如何满足日益增长的软件需求,如何维护应用中的大量已有软件,已经成为了计算机应用系统进一步发展的瓶颈。1968年,北大西洋公约组织的计算机科学家们在联邦德国召开的国际会议上讨论了软件危机问题,同时也是在这个会议上提出了“软件工程”这个名词,导致了一门新的工程学科的正式诞生。简单地说,所谓软件危机,就是指在软件开发和软件维护过程中所存在的一系列严重问题。具体地说,软件危机具有如下一些表现:第1章 软件工程引论 (1)软件开发没有真正的计划性,对软件开发进度和软件开发成本的估计常常很不准确,计划的制定带有很大的盲目因素,因此工期超出、成本失控的现象经常困扰着软件开发者。(2)对于软件需求信息的获
12、取常常不充分,软件产品往往不能真正地满足用户的实际需求。(3)缺乏良好的软件质量评测手段,从而导致软件产品的质量常常得不到保证。第1章 软件工程引论 (4)对于软件的可理解性、可维护性认识不够;软件的可复用性、可维护性不如人意。有些软件因为过于“个性化”,甚至是难以理解的,更谈不上进行维护。缺乏可复用性引起的大量重复性劳动极大地降低了软件的开发效率。(5)软件开发过程没有实现“规范化”,缺乏必要的文档资料或者文档资料不合格、不准确,难以进行专业维护。第1章 软件工程引论 (6)软件开发的人力成本持续上升,如美国在1995年的软件开发成本已经占到了计算机系统成本的90%(如图1.2所示)。(7)
13、缺乏自动化的软件开发技术,软件开发的生产率依然低下,远远满足不了急剧增长的软件需求(如图1.3所示)。第1章 软件工程引论 图1.2 计算机系统硬件、软件成本比例变化 第1章 软件工程引论 图1.3 软件技术的发展落后于需求 第1章 软件工程引论 软件危机曾经是历史上的阴影,目前软件工程界也仍然在一定程度上受到它的影响。软件工程概念的提出,正是为了克服软件危机。自1968年以来,随着软件工程学的不断发展,软件危机得到了一定程度的遏制,但还远远没有被彻底解决。The Standish Group.Chaos.1995.一文报告了20世纪90年代中期美国商用软件产业的情况:1995年美国公司取消了
14、810亿美元的软件项目;在所考察的软件项目中,在完成前就取消了其中的31%;53%的软件项目进度拖延,通常拖延的时间超过预定工期50%以上;只有9%的大型软件项目能够及时交付且费用不超支(对中型和小型软件公司来说这一数据为16%)。第1章 软件工程引论 1.2.2 1.2.2 产生软件危机的原因产生软件危机的原因 软件危机的存在是不争的事实。产生软件危机的原因可以归纳为主、客观两个方面。从客观上来看,软件不同于硬件,它的生产过程和产品都具有明显的“不可视”特征,这就导致在完成编码并且上机运行之前,对于软件开发过程的进展情况较难衡量,软件产品的质量也较难进行先期评价,因此,对于开发软件的过程进行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 软件工程引论 软件工程 引论
限制150内