太原理工大学软件工程-第一章软件工程概述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件生产采用“生产作坊方式“,在该阶段的后期,出现了“软件危机”。为 了克服软件危机,在著名的NATO软件可靠性会议上提出了软件工程这一名词。
2. 第二代软件工程(20世纪80年代中期到90年代)
在80年代中期开始,面向对象的程序设计语言相继推出,面向对象的方法和技术得 到发展,到了90年代,研究的重点从程序设计语言逐渐转移到面向对象的分析和设 计,演化为一种完整的软件开发方法和系统技术体系,面向对象的方法成为软件开 发的主流,所以这一阶段又称为对象工程。
Leabharlann Baidu
1.2.2软件危机产生的原因
在软件开发和维护的过程中存在这么多严重问题,一方面及软件本身的特点有 关,另一方面也和软件开发与维护的方法不正确有关。
• 客观原因: (软件本身的特点) -- 软件是一种逻辑实体,而不是具体的物理实体,具有高度的抽象性; -- 软件是一个逻辑上复杂而规模上庞大的系统,涉及技术、管理等多方面的问 题; -- 软件的生产方式及硬件明显不同,软件开发没有明显的制造过程 。 -- 软件的运行和维护阶段,没有传统意义上的机械磨损、老化问题。 -- 软件与硬件有关,对软件有可移植性的要求。 -- 软件工作涉及许多社会因素。
Fritz Bauer在NATO会议上给出的定义:
“软件工程是为了经济地获得可靠的和能在实际机器上高效运 行的软件,而建立和使用的完善的工程原理(方法)。这个定 义指出了软件工程的目标是经济地开发出高质量的软件,强调 软件工程是一门工程学科,它必须建立和使用的完善的工程原 理。 IEEE【IEE93】给出了一个更加综合的定义:
软件工程导论
2009年7月
第一章软件工程学概述
1.1软件概述 1.2软件危机 1.3软件工程 1.4软件生命周期 1.5软件过程
1.1软件概述
1.1.1软件及其特点 软件是程序、数据和相关文档的完整集合。
软件定义由以下三部分组成: 1.程序是按照设计文档的功能和性能要求所编写的指令 序列,是执行部分; 2.数据是使程序能够正确运行的数据结构和所需的信息; 3.文档是为了程序开发而形成的图文资料,是不可执行 部分。
• 主观原因: (人的问题、技术问题) -软件复杂且规模庞大。 -对软件的开发和维护关系有许多错误认识和做法 •没有准确、全面把握用户需求,忽视软件需求分析的重要性。 •轻视软件维护。 ·不重视阶段审查和复审。
-对大型软件项目缺乏有力的组织和管理。 -开发工具落后,以致软件的生产效率和质量不高。 -软件开发技术落后,
1.2.3解决软件危机的途径
• 将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的 工程项目。 • 研究和推广成功的软件开发技术和方法。 • 开发和使用好的软件工具。 •建立严格的文档资料,重视软件开发过程的阶段评审。
1.3软件工程
1.3.1软件工程的定义 人们曾从不同的角度,给软件工程下过许多定义,其中典型的 两个为:
软件危机包括下述两个方面: 1.如何开发软件,以满足社会对软件日益增长的需要。 2.如何更有效地维护数量不断增长的已有软件。
软件危机的表现
• 开发成本难以控制,进度不可预计; • 产品不符合用户的实际需要 ; • 软件产品的质量不保证,可靠性差.用户难以满意; • 软件的可维护性差 ; • 软件开发生产率很低,软件产品供不应求 ; • 软件缺少合格的文档资料 ; • 软件产品成本十分昂贵。
软件的特点:
1.软件具有抽象特征。软件是一中逻辑实体,而不是 具体的物理实体,“不可见”。
2.软件开发没有明显的制造过程,软件产品的生产 主要是研制。
3.软件无备件特征。软件不像硬件存在磨损和老化 问题,但存在退化问题。
4.软件对计算机系统有不同程度的依赖性
5.软件成本昂贵,其开发方式目前尚未完全摆脱手 工生产方式。
3.软件工程时代: 70年代至今
20世纪60-70年代是计算机系统发展的第三阶段.为了克 服软件危机,1968年北大西洋公约组织的专家们在联邦 德国召开国际会议,在这次会上正式提出并使用了“软 件工程”这个名词。这阶段主要采用“工程化的生产方 式”。
软件过程提出至今,它的发展已经经历了4个阶段:
1.第一代软件工程(20世纪60年代到70年代)
4.第四代软件工程
90年代起,基于构件的开发方法取得了重要的进展,软件系统的开发可通过使用 现存的可复用构件组装完成,而无需从头构造,从而达到提高效率和质量、降低 成本的目的,称为构件工程。
1.2软件危机
1.2.1软件危机及其表现
软件危机的定义:软件危机是指在计算机软件的 开发和维护过程中所遇到的一系列严重问题及矛 盾。
·软件工程关注于大型程序的构造。
“将系统化的、规范的、可度量的方法应用于软件的开发、 运行和维护的过程,即将工程化应用于软件中。”这个定义 强调了工程化方法和如何实现这些方法在软件工程中的重要 地位。
软件工程是指导计算机软件开发和维护的一门工程学科。 采用工程的概念、原理、技术和方法来开发及维护软件。把 经过时间考验而证明正确的管理技术和当前最好的技术方法 结合起来,目的是生产出能按期交付的、在预算范围内的、 满足用户需求的、质量合格的软件产品。 软件工程具有下述本质特性:
1.1.2软件 的发展
自从第一台计算机诞生以来,就开始了软件的生产,到目前为 止,软件发展经历了三个阶段:
1.程序设计时代:20世纪50-60年代,采用“个体生产方 式”,人们认为软件就是程序,没有相关的文档资料。
2.程序系统时代 :20世纪60-70年代是计算机系统发展 的第二阶段,出现了“软件作坊”,软件质量低下, 可靠性差,可维护性差,却价格昂贵,供不应求。在 该阶段的后期,于是出现了“软件危机”。
3.第三代软件工程
随着规模的不断增大,开发人员的增多,开发时间相应持续增长,加上软件是知 识密集型的逻辑思维产品,这些都增加了软件工程的管理难度,人们在软件开发的 实践中认识到:提高软件生产率、保证软件质量的关键是“软件过程“的控制和管 理,提出了对软件项目管理的计划、组织、成本估算、质量保证、软件配置等技术 和策略,逐步形成了软件过程工程。
相关文档
最新文档