《软件工程与项目管理》第1章软件工程概述(精)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.2 软件工程
1.2.1 软件工程的定义
• 软件工程是导软件开发和维护的一门工程学科。 它采用工程的概念、原理、技术和方法,把经 过时间检验而证明是正确的管理技术和当前能 够得到的最好的技术方法结合起来,用于开发 和维护软件。 • 软件工程是一门综合性的交叉学科,它涉及哲 学、计算机科学、工程科学、管理科学、数学 及应用领域知识。
2.软件的分类 1)按软件功能 • 系统软件 • 支撑软件 • 应用软件
1.2.2 软件工程的内容和目标
软件工程的三个要素 • 软件工程方法 • 软件工具 • 软件工程的过程
软件工程的目标 • 付出较低的开发成本 • 达到要求的软件功能 • 取得较好的软件性能 • 开发的软件易于移植 • 需要较低的维护费用 • 能按时完成开发工作,及时交付使用
时 期 特 点 软件的含义 主要程序设计语言 软件使用者 软件规模 开发软件需要的人力 软件开发涉及的工作
程序设计 程序 汇编语言、机器语言 程序员本人 小型 个人 编码
程序系统 程序及规格说明书 高级语言 少数用户 中型 开发小组 设计、编码、测试
软件工程 程序、文档、数据 高级语言、各种开 发工具 市场用户 大型 开发小组及大中型软 件开发机构 软件生命周期的各个 阶段
美国宇航局的软件系统一览表 年 份
1963
软 件
水星计划系统
指 令 条 数
200万条 400万条 1000万条 4000万条
1967
1973 1979
双子星座计划系统
阿波罗计划系统 哥伦比亚航天飞机系统
图1-1 计算机系统中软硬件成本所占比例的变化
1.1.2 软件生产的发展
• 程序设计时期(约为20世纪50~60年代) • 程序系统时期(约为20世纪60~70年代) • 软件工程时期(20世纪70年代以后)
2.软件的分类 1)按软件功能 • 系统软件 • 支撑软件 • 应用软件
1.2.4 软件工程的基本原则
• • • • • • •
用分阶段的Baidu Nhomakorabea存周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性
软件工程与项目管理
学时:40学时
第1章 软件工程概述
• 掌握:软件危机、软件工程、软件生命周期、 软件开发方法、软件开发模型、软件工具及支 撑环境的相关概念。
1.1 软件危机
1.1.1 软件
1.软件的定义 软件是计算机系统中与硬件相互依存的一部 分,它是包括程序、数据及相关文档的完整集 合。其中, • 程序是指按事先设计的功能和性能要求执行的 指令序列; • 数据是指使程序能正常操纵信息的数据结构; • 文档是指与程序开发、维护和使用有关的图文 资料。
2.软件的分类 1)按软件功能 • 系统软件 • 支撑软件 • 应用软件
2)按软件规模 • 微型软件 • 小型软件 • 中型软件 • 大型软件 • 甚大型软件 • 极大型软件
3. 软件的特点 • • • • • 软件是一种逻辑实体,而不是物理实体。 软件的生产过程是开发,而不是制造。 软件不存在磨损、老化现象。 软件的开发和运行常常受到计算机系统的限制。 软件是复杂的。
1.1.4 软件危机的提出
• 1968年,北大西洋公约组织的计算机科学家在联邦德国召 开国际会议,第一次讨论了“软件危机”问题。 • “软件危机”是指在计算机软件的开发和维护过程中所遇 到的一系列严重问题,这类问题不仅仅是“不能正常运行 的软件”才具有的,实际上几乎所有软件都不同程度地存 在这类问题。 • 概括来说,软件危机包含两方面的问题:一是如何开发软 件,以满足不断增长、日趋复杂的需求;二是如何维护规 模不断膨胀的软件产品。 • 这次会议同时提出了解决“软件危机”的途径,即采用工 程化的思想来管理软件开发的过程,并正式提出“软件工 程”一词,从此一门新兴的工程学科—软件工程—应运而 生。
1.3 软件生命周期
1.3.1 软件生命周期的定义
• • • • • • •
可行性分析 需求分析 概要设计 详细设计 编码 测试 维护
• 可行性分析 在项目进入具体开发之前,首先需要进行的步骤是可 行性分析。这一步骤必须回答的问题是“将要开发的 软件系统是做什么的?在经济上、技术上和操作上是 否可行?”,具体来说,需要考虑的问题有:该软件 项目的性质是什么、它是数据处理问题还是实时控制 问题、它是科学计算问题还是人工智能问题等,以及 该问题是否有行得通的解决办法,若有解决问题的办 法,则需要多少费用、多少资源(包括硬件、软件和 人员)、多少时间。
1.1.3 软件开发面临的主要问题
• • • • • • •
西方计算机科学家在20世纪60—70年代总结了软件开发 和维护过程中遇到的一系列严重问题,表现为以下几方面: 对软件开发成本和进度的估计常常不准确,开发成本超出 预算,实际进度相比预定计划一再拖延。 用户对“已完成”系统不满意的现象时有发生。 软件质量常常不可靠,“缺陷”和“补丁”不断。 软件的可维护程度非常低。 软件通常没有相应的文档资料。 软件成本不断提高。 软件开发生产率的提高赶不上硬件的发展和人们需求的增 长。
(2)从软件项目管理来讲,其作用体现在:在规定的时 间内按照规定的成本实现符合预期的质量目标(软件 的功能、性能和接口达到需求说明书的要求)的软件。 (3)从软件企业本身来讲,其作用体现在:持续地规范 软件开发过程和软件管理过程,不断地优化软件组织 的个人素质和集体素质,从而逐渐增强软件企业的市 场竞争实力。 (4)从软件企业发展进程来讲,其作用体现在:克服软 件危机,控制软件开发进度,节约开发成本,提高软 件质量。
1.2.3 软件工程的作用
(1)从软件企业的专业人才来讲,其作用体现在以下几个方面: • 高层管理人员利用软件工程的理论和方法来管理整个公司。 • 中层项目经理和软件工程师:利用软件工程的理论和方法,来管 理项目组的软件开发。 • 软件蓝领工人利用软件工程的理论和方法来实现软件的开发。 • 软件营销人员利用软件工程的理论和方法与客户进行沟通,以赢 得客户的信任。 • 软件实施和维护人员:利用软件工程的理论和方法,来实现软件 的功能、性能与接口的实施和维护。 • 软件售前人员利用软件工程的理论和方法,来提高投标成功的把 握。
相关文档
最新文档