软件工程基本概念

第一章  软件工程基本概念
1.1  软件
 什么是软件
 软件的特点
 软件的发展
 软件生存期
 软件工程
 软件工程的目的和要求
1.1  软件
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
程序是按事先设计的功能和性能要求执行的指令序列
数据是使程序能正常操纵信息的数据结构
文档是与程序开发,维护和使用有关的图文材料


1.1  软件
软件的特点
软件是一种逻辑实体,而不是具体的物理实体。因此,它具有抽象性。
软件的生产与硬件不同,没有明显的制造过程。对软件的质量控制,必须立足于软件开发方面。
在软件的运行和使用期间,没有像硬件那样的磨损、老化问题。
软件的开发和运行往往受到计算机系统的限制,对计算机系统有不同程度的依赖性。
1.1  软件
软件的特点
迄今为止,软件的开发尚未完全摆脱手工艺的方式。
软件本身是复杂的。
软件的成本相当昂贵。
相当多的软件工作涉及到社会因素。

1.1  软件
软件的分类
按软件的功能划分:系统软件、支撑软件、应用软件
按软件的规模划分:微型、小型、中型、大型、超大型
按软件的工作方式划分:实时、分时、交互、批处理
按软件服务对象的范围划分:项目软件、产品软件
1.2  软件危机
一、计算机软件发展的三个时期
1. 早期时代(60年代中期之前)程序设计阶段
硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。
2. 第二代(60年代中期-70年代中期)程序系统阶段
出现“软件作坊”、产品软件;“个体化”开发方法。
3. 第三代(70年代中期之后)软件工程阶段
软件开发成为一门新兴的工程学科——软件工程。
计算机软件发展的三个时期及特点
计算机软件发展的三个时期及特点
1.2  软件危机
二、什么是软件危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个问题。
1. 如何开发软件,怎样满足对软件的日益增长的需求。
2. 如何维护数量不断膨胀的已有软件
1.2  软件危机
三、软件危机的主要表现
1. 对软件开发成本和进度的估计不准确
2. 用户不满意
3. 软件质量不高、可靠性差
4. 软件常常不可维护、错误难以改正。
5. 缺乏适当的文档资料
6. 软件成本占系统总成本的比例逐年上升
7. 软件开发速度跟不上计算机发展速度
1.2  软件危机
四、产生软件危机的原因
1. 与软件本身的特点有关
软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。
2. 软件不易于维护
(1)软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。
1.2  软件危机
四、产生软件危机的原因
2. 软件不易于维护
(2)软件不同于一般程序,它的规模大,不易于维护。
3. 在软件开发过程中,或多或少地采用了错误的方法和技术。
4. 对用户需求没有完整准确的认识,就匆忙着手编写程序。
1.2  软件危机
五、解决软件危机的途径
1. 技术措施
使用更好的软件开发方法和开发工具
2. 组织管理措施
软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
1.3  软件工程
一、什么是软件工程
软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程是一门涉及软件计划、需求分析、设计、编码、测试和维护的原理、方法及工具的研究和应用的学科。
1.3  软件工程
二、软件工程的基本原理
1968年,在联邦德国加尔密斯,北大西洋公约组织(NATO),召开的有关计算机软件会议上正式“软件工程”术语。
目前有100多条关于软件工程的准则,其中最出名的是著名软件工程专家B.W.Boehm在1983年提出的7条基本原理。
1.3  软件工程
1. 用分阶段的生命周期计划严格管理
经统计表明,不成功的软件项目中有一半左右是由于计划不周造成的。
Boehm认为,在软件的整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。
1.3  软件工程
2. 坚持进行阶段评审
大部分错误是在编码之前造成的
错误发现与改正得越晚,所需付出的代价越高。
因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误
1.3  软件工程
3. 实行严格的产品控制
在软件开发过程中不要随意改变需求,因为改变某项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科学的产品控制技术。
目前主要实行基准配置管理:基准配置是指经过阶段评审后的软件配置成分,如各个阶段产生的文档或程序代码。
对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。
1.3  软件工程
4. 采用现代程序设计技术
实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。
80年代及之前:结构化分析、设计技术
90年代:面向对象分析、设计技术
1.3  软件工程
5. 结果应能清楚地审查
软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。
根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查
1.3  软件工程
6. 开发小组的人员应该少而精
开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。
开发小组人员数目的增加,使相互交流复杂、费用增加。
1.3  软件工程
7. 承认不断改进软件工程实践的必要性
遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。
积极主动采纳新的软件技术,且不断总结经验。
1.3  软件工程
三、软件工程的目标及框架、原则
⑴ 软件工程的目标可概括为“生产具有正确性、可用性以及开销合宜的产品”;
⑵ 软件工程的活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”;
⑶ 软件工程实施过程中的四条基本原则:
①  选取适宜的开发模型;
②  采用合适的设计方法;
③  提供高质量的工程支持;
④  重视开发过程的管理。

软件工程的框架
作业
1. 计算机发展三个时期及特点
2. 什么是软件危机?为什么会产生软件危机?怎样消除软件危机?
3. 什么是软件工程?基本原则有哪些?
 

你可能感兴趣的:(计算机科学与技术,产品,文档,配置管理,数据结构,审查,程序开发)