1. 软件工程概述

合集下载

第1章软件工程概述

第1章软件工程概述

第1章软件工程概述软件工程的研究领域包括软件的开发方法、软件周期以及软件工程的实践等。

软件危机与软件工程的起源1. 计算机系统的发展历程20 世纪 60 年代中期以前,是计算机系统发展的早期:软件为每个具体应用而专门编写的。

软件实质为规模较小的程序,编写容易,没有系统化的方法,对软件开发工作更没有进行任何管理。

编写者和使用者为同一个(或同一组)人。

软件设计只是一个模糊的过程,除了程序清单之外,没有其他文档资料。

20 世纪 60 年代中期到 70 年代中期,是计算机发展的第二代:硬件发展:多道程序、多用户系统引入了人机交互的新概念,使硬件和软件的配合上了一个新层次。

实时系统能够从多个信息源收集、分析和转换数据,使得进程控制能以毫秒而不是分钟来进行。

在线存储技术的进步导致了第一代数据库管理系统的出现。

软件发展:软件个体化特性。

软件数量极具膨胀。

在程序运行时发生的错误必须设法改正。

用户有了新的需求时必须相应的修改程序。

硬件或操作系统更新时,通常需要修改程序以适应新的环境。

软件维护工作,以令人吃惊的比例耗费资源,许多程序的个体化特性使得它们最终成为不可维护的。

2. 软件定义:软件是由一个完整的配置组成:程序:能够完成预定功能和性能的可执行的指令序列。

数据:是使程序能够适当地处理信息的数据结构。

文档:是开发、使用和维护程序所需要的图文资料。

1983 年 IEEE 对软件的定义:计算机程序、方法、规则、相关的文档资料、运行程序时所必须的数据。

特点:1) 软件是一种逻辑实体,而不是具体的物理实体。

2) 软件的生产与硬件不同。

在软件开发过程中没有明显的制造过程。

3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。

4) 软件成本相当高。

3. 软件危机介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护,数量不断膨胀的已有软件。

第一章 软件工程概述

第一章 软件工程概述

软件危机
• 在软件发展的第二阶段,随着计算机硬件技术 的进步,计算机的容量、速度和可靠性有了明 显的提高,生产硬件的成本降低了。计算机价 格的下跌为它的广泛应用创造了极好的条件。 在这一形式下,要求软件能与之相适应。然而 软件技术的进步一直未能满足形式发展提出的 要求。在软件开发中遇到的问题找不到解决的 办法,致使问题积累起来,形成日益尖锐的矛 盾。软件开发时期所面临的这种状态就是所谓 的软件危机。
软件生存周期 从前面的介绍中可以知道,一个软件从 定义到开发、使用和维护,直到最终被废 弃,要经历一个漫长的时期,通常把软件 经历的这个漫长的时期称为生存周期。软 件生存周期就是从提出软件产品开始,直 到该软件产品被淘汰的全过程。
软件生存期
问题定义 可行性研究 需求分析 设计 编码 测试 运行与维护
软件工程的原则 为了开发出低成本高质量的软件产品, 软件工程学应遵守以下基本原则: 1.分解 2.独立性 3.一致性 4.确定性
软件生存周期与软件开发模型 软件工程采用的生存周期方法就是从时 间角度对软件的开发与维护这个复杂问题 进行分解,将软件生存漫长的时期分为若 干阶段,每个阶段都有其相对独立的任务, 然后逐步完成各个阶段的任务。
1.3 软件工程过程和软件生存期
软件工程的定义 软件工程是指导计算机软件开发和维护 的工程学科。采用工程的概念、原理、技 术和方法来开发与维护软件,把经过时间 考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,这就是软 件工程。
1.3 软件工程过程和软件生存期
• 软件工程过程是为获得软件产品而完成的一 系列软件工程活动。软件工程过程通常包含 四种基本的过程活动: (1)软件规格说明:规定软件的功能及其运 行的限制; (2)软件开发:产生满足规格说明的软件; (3)软件确认:确认软件能够完成客户提出 的要求; (4)软件演进:为满足客户的变更要求,软 件必须在使用的过程中演进。

第一讲 软件工程概述(软件危机)

第一讲 软件工程概述(软件危机)

第一讲软件工程概述(软件危机)软件危机在计算机科学发展的早期,软件开发的过程中出现了一系列严重的问题,被称为软件危机。

软件危机主要表现在以下几个方面:1. 项目延期和超预算软件开发项目常常会因为技术、人员或者需求变更等原因导致延期和超预算。

这让开发者和客户都感到沮丧,并对软件开发过程的可行性和有效性产生质疑。

2. 软件质量低下由于软件开发的复杂性,很容易出现缺陷和错误。

软件质量低下会导致系统不稳定、易于崩溃、功能不完备等问题。

3. 缺乏可维护性和可重用性由于缺乏系统化的工程方法和设计规范,很多软件很难进行维护和重用。

这不仅增加了开发者的工作量,也浪费了大量的时间和资源。

4. 项目管理困难软件开发涉及多个工作环节和不同的团队成员,项目管理的难度非常大。

缺乏有效的管理方法和工具,往往导致项目进度难以掌控,人员协调困难等问题。

软件工程的出现为了解决软件危机所带来的问题,软件工程这一概念应运而生。

软件工程旨在通过系统化的方法和工程化的思维来开发和维护软件。

1. 系统化的方法软件工程提供了一套系统化的方法,包括需求分析、系统设计、编码、测试等环节,以确保软件开发过程的可控和可靠性。

2. 工程化的思维软件工程借鉴了工程学科的思维方式,将软件开发过程看作是一个工程项目,强调规划、设计、组织和管理等方面。

3. 软件开发生命周期软件工程将软件开发过程划分为不同的阶段,形成了软件开发生命周期的概念,包括需求分析、设计、编码、测试、发布等阶段。

每个阶段都有不同的任务和目标,确保软件开发的高质量和高效率。

4. 软件工程的原则和方法软件工程提出了一系列原则和方法,如模块化、结构化、面向对象、迭代开发、敏捷开发等,用来指导和规范软件开发过程。

软件工程是解决软件危机的一种有效途径。

通过系统化的方法和工程化的思维,可以提高软件开发的质量和效率,降低项目风险和成本。

软件工程对于现代社会的发展具有重要的意义,对于软件开发者和项目管理者来说,也是必不可少的知识和技能。

软件工程概述

软件工程概述
软件工程是为了经济地获得可靠的和能在实际机器上高效运 行的软件而建立和使用的好的工程原则。(强调软件工程的 目标) IEEE: 软件工程是(1)将系统化的、规范的、可度量的方法应用 于软件的开发、运行和维护的过程,即将工程化应用于软件 中;(2)(1)中所述方法的研究。 计算机科学技术百科全书: 所谓软件工程就是指导计算机软件开发和维护的工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把 经过时间考验而证明正确的19管理(guǎnlǐ)技术和当前能够得
三、软件(ruǎn jiàn)危机
8、解决危机的管理途径 问题出在哪里? 20世纪(shìjì)80年代末,美国工业界开始认识到管理的重要
性 美国的一项研究表明,70%的项目由于管理不善导致难以控
制进步、成本和质量; 进一步的研究发现:管理是影响软件项目成功开发的全局性
因素,而技术只影响局部 如果软件开发组织不能对软件项目进行有效管理,就不能充
认识到了文档的标准以及开发者之间、开发者与用户之间 的交流方式的重要性。 方法:侧重与对软件开发过程中分析、设计的方法的研究。这 方面的重要成果就是在70年代风靡一时的结构化开发方法, 即PO(面向过程的开发或结构化方法)以及结构化的分析、 设计和相应的测试方法。 20
第二十页,共25页。
六、软件工程的发展
软件工程(ruǎn jiàn ɡōnɡ chénɡ)概述
2021/11/11
第一页,共25页。
一、本课程 (kèchéng)学习目的
❖ 消除错误地认识 ❖ 学习(xuéxí)软件工程基本理论 ❖ 学习(xuéxí)主流的软件开发方法 ❖ 熟悉软件开发过程 ❖ 掌握软件开发全过程中的各重要阶段的任务及相关描
2、现代软件工程 方法:

第1章 软件工程概述

第1章 软件工程概述

因而软件成本相当昂贵;
(6)相当多的软件开发涉及到社会因素。
2017/10/26 第4页 软件工程
3、软件的分类:
(1)按功能分类 a、系统软件:支持计算机系统各个部件、相关的软件
和数据协调、高效地工作的软件。如:OS、DBMS、
DRIVER、COMMUNICATION-SYSTEM。 b、支撑软件:协助用户开发软件的工具性软件,文本 编辑软件。如:PSL/PSA(问题描述语言、问题描述分析 器)、图形软件包、预编译程序、静态分析程序。
是批处理还是人机交互,信息存储是采用文件系统还是数据库?),方案的级
别有:低、中、高等级,每种方案都用系统流程图或其它工具加以描述。推荐 一种方案。最后确定一种方案。 (4)完成的任务:可能的解法(每种解法的系统流程图和成本效益分析),推 荐的系统结构(层次图或结构图)。 总体设计结束的标志是提交总体设计说明书、数据库或数据结构说明书和 集成测试计划等文件。
软件工程
2017/10/26
第1页
软件工程
第一章 软件工程概述
软件 软件危机 软件工程
2017/10/26
第2页
软件工程
1.1 软
1、什么叫软件?

(1)广义软件:相对于有形物理实体,把技术条件、管理法
规以及人员素质等无形因素称为软件。 (2)计算机软件:是与计算机硬件相对应的计算机组成部分, 包括程序、数据及其相关文档的完整集合。 Boehm:“软件是程序以及开发、使用和维护程序所需的所有
2017/10/26
第6页
软件工程
(4)按功能软件服务对象分类 a、项目软件:受特定客户委托由一个或多个软件 开发机构在合同的约束下开发出来的软件。 b、产品软件:提供给市场的商品。

软件工程第一章软件工程概述

软件工程第一章软件工程概述

第1章
1.1软件与软件危机
1.1.3 软件危机
1. 软件危机的主要表现
(1)软件不能满足用户的需求。 (2)软件开发成本严重超标,开发周期大大超过规定日期。 (3)软件质量难于保证,可靠性差。 (4)软件难于维护。 (5)软件开发速度跟不上计算机发展速度。
第1章
1.1软件与软件危机
1.1.3 软件危机
第1章
1.2软件工程
1.2.3 软件工程的研究内容
第1章
1.3软件生存周期
第1章
1.4软件开发模型
1.4.1 瀑布模型
第1章
1.4软件开发模型
1.4.1 瀑布模型
瀑布模型的主要优点: (1)原理简单、容易掌握。 (2)各阶段间都有验证和确认环节,以便进行质量管理。 (3)主要用于支持结构化方法。 瀑布模型的主要缺点: (1)缺乏灵活性,不能适应用户需求的变化。 (2)缺乏演化性,返回上一级的开发需要付出十分高昂的代价。 (3)是线性的软件开发模型,回溯性很差。
第1章
1.1软件与软件危机
1.1.1 软件的定义及其特点
2.软件具有下列特点: ① 软件是一种逻辑产品,它具有抽象性和无形性。 ② 软件的生产与硬件不同。 ③ 软件在运行和使用中,不会磨损和老化,但它存在退化问题。 ④ 软件的开发和运行对计算机系统有一定的依赖性。 ⑤ 软件开发至今仍未完全摆脱手工开发方式,大多数软件是“定做”的。 ⑥ 软件开发成本高、风险高。 ⑦ 相对于计算机硬件技术的发展,计算机软件技术的发展十分缓慢。
第1章
1.2软件工程
1.2.1 软件工程的定义和目标
为了克服软件危机,1968年10月在北大西洋公约组织(NATO)召开的计算机科学会议上,Fritz Bauer首次提出“软件工程”的概念, 试图将工程化方法应用于软件开发。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档