软件工程概述
软件
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。
软件的特点
1.Logical rather than physical(软件是一种逻辑实体,而非具体的物理实体)
2.Developed or Engineered, not manufactured in the classical sense(在研制、开发活动中被创造出来,但不能按传统的生产含义加以理解)
3.Doesn't wear out(在软件的运行和使用期间,没有磨损、老化问题)
软件的发展
软件的发展可以分为这样三个阶段: 1.程序设计阶段,约为50至60年代 2.程序系统阶段,约为60至70年代 3.软件工程阶段,约为70年代以后
1
时期 程序设计 特点 软件程序 所指 主要程序汇编及机器设计语言 语言 软件工作程序编写 范围 需求程序设计者者 本人 开发软件个人 的组织 软件小型 规模 决定质量个人程序设的因计技术 素 开发技术子程序、程序和手库 段 维护责任程序设计者 者 价格高,存储硬件容量小,工作特征 可靠性差 软件特征 完全不受重视 程序系统 程序及说明书 软件工程 程序、文档及数据 高级语言 软件语言* 包括设计和测试 少数用户 软件生存期 市场用户 开发小组 开发小组及大、中型软件开发机构 中、小型 大、中、小型 小组技术水平 管理水平 数据库,开发工具,开发环境,工程化开发方法,标准和规范,网络和分结构化程序设计 布式开发,面向对象技术,软件过程与过程改进 开发小组 专职维护人员 降价,速度、存向超高速、大容量、微型化及网络化储容量及工作可方向发展 靠性有明显提高 软件技术的发展开发技术有进步,但未获突破性进不能满足需求,展,价格高,未完全摆脱软件危机 出现软件危机 软件危机
*软件需求增长得不到满足; *软件生产成本高,价格昂贵; *软件生产进度无法控制;
*软件需求定义不准确,易偏离用户需求;
2
*软件质量不易保证; *软件可维护性差等等
软件工程
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
Boehm曾为软件工程下了定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
Fritz Bauer: The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.软件工程是建立和使用一系列完善的工程化原则以便经济地获得能够在实际机器上有效运行的可靠软件。
1983年,IEEE(Institute of Electrical & Electronic Engineers,电气和电子工程师学会)做出的定义是“软件工程是开发、运行、维护和修复软件的系统方法。”
它的核心内容是“以工程化的方式组织软件的开发”,其中涉及软件计划、开发和维护各个阶段。
软件工程三个要素:方法、工具和过程。
1)软件工程方法为软件开发提供了“如何做”的技术。
2)软件工具为软件工程方法提供自动的或半自动的软件支撑环境。
3)软件工程过程指将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。
软件工程过程(Software Engineering Process)
软件工程过程是指为了获得软件产品,在软件工具支持下由软件工程师采用软件工程方法完成的一系列软件工程活动。
软件工程的七条原理
著名的软件工程专家B.W.Boehm于1983年在一篇论文中提出了软件工程的七条基本原理。他认为这七条原理是确保软件产品质量和开发效率的原理的最小集合。
1.分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应少而精
7.承认不断改进软件工程实践的必要性
3
软件工程的目标
组织实施软件工程项目是为了获得项目的成功,即达到以下几个主要的目标:
1.出较低的开发成本 2.到预期的软件功能 3.取得较好的软件性能 4.使开发的软件易于移植 5.需要较低的维护费用
6.能按时完成开发工作,及时交付使用
概括地说,基本目标,四个字:优质、高效。即质量高、效率高。
软件工程的原则
软件工程基本目标适用于所有软件工程项目。为达到这些目标,在软件开发过程中必须遵循下列软件工程原则。
1.抽象
2.信息隐蔽 3.模块化 4.局部化 5.确定性 6.一致性 7.完备性 8.验证性 使用一致性、完备性和可验证性的原则可以帮助开发者设计一个正确的系统。 软件生命周期(life cycle)
同其它事物一样,软件也有孕育、诞生、成长、成熟、衰亡的生存过程,称为软件的生命周期。包括六阶段内容:
1.制定计划 2.需求分析 3.系统设计 4.程序编写 5.软件测试 6.运行和维护
软件生命周期经典模型——瀑布模型
软件生命周期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
4
相关推荐: