1、第一章 软件工程基本概念1.1 软件4什么是软件? 软件一般认为由三部分组成: 程序:在运行时,能提供所希望的功能和性能的指令集。 数据结构:使程序能够正确运行的数据结构 文档:描述程序研制过程、方法及使用的文档1.1 软件4软件的特点 抽象性:逻辑实体,可记录,但看不到 可复制性:与开发成本相比,复制成本很低 无折旧 受硬件制约 未完全摆脱手工工艺 开发费用高1.2 软件危机一、计算机软件发展的三个时期1. 早期时代( 60年代中期之前)程序设计阶段 硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。2. 第二代( 60年代中期 -70年代中期)程序系统阶段 出现 “软件作坊
2、 ”、产品软件; “个体化 ”开发方法。3. 第三代( 70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科 软件工程。计算机软件发展的三个时期及特点计算机软件发展的三个时期及特点1.2 软件危机二、什么是软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个问题。1. 如何开发软件,怎样满足对软件的日益增长的需求。2. 如何维护数量不断膨胀的已有软件1.2 软件危机三、软件危机的主要表现1. 对软件开发成本和进度的估计不准确2. 用户不满意3. 软件质量不高、可靠性差4. 软件常常不可维护、错误难以改正。5. 缺乏适当的文档资料6. 软件成本占系统总成
3、本的比例逐年上升7. 软件开发速度跟不上计算机发展速度1.2 软件危机四、产生软件危机的原因1. 与软件本身的特点有关 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。2. 软件不易于维护( 1)软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。1.2 软件危机四、产生软件危机的原因2. 软件不易于维护( 2)软件不同于一般程序,它的规模大,不易于维护。3. 在软件开发过程中,或多或少地采用了错误的方法和技术。4. 对用户需求没有完整准确的认识,就匆忙着手编写程序。