软件工程总结笔记——软件工程概论(一)

文章目录

    • 第一章 软件工程概论
      • 1.1 软件综述
        • 1.1.1 软件的发展
        • 1.1.2 软件的定义
        • 1.1.3 软件的特性
        • 1.1.4 软件的分类
      • 1.2 软件危机
        • 1.2.1 软件危机产生的原因
        • 1.2.2 软件危机的主要表现形式
        • 1.2.3 解决软件危机的途径
      • 1.3软件工程
        • 1.3.1 软件工程概念
        • 1.3.2 软件工程基本原理
        • 1.3.3 软件工程研究的内容
        • 1.3.4 软件工程方法学
      • 1.4 软件生命周期
      • 1.5 软件开发模型
        • 1.5.1 瀑布模型
        • 1.5.2 快速原型模型
        • 1.5.3 增量模型
        • 1.5.4 螺旋模型
        • 1.5.5 基于构件的开发模型
        • 1.5.6 智能模型

第一章 软件工程概论

1.1 软件综述

1.1.1 软件的发展

程序设计阶段 ——>“程序+文档”的软件阶段——>软件工程阶段——>第四代技术阶段

1.1.2 软件的定义

软件 = 程序 + 数据 + 系列文档

1.1.3 软件的特性

① 软件是信息产品
② 软件的生产过程与硬件不同
③ 软件的成本构成和传统工业产品不同
④ 软件没有磨损、老化的问题,只有过时与失效
⑤ 软件开发和运行常常受到不同计算机软件和硬件平台的限制
⑥ 软件具有可裁剪、可扩展、便于分解和组合以及插入、删除的特性
⑦ 软件具有强烈的个人色彩,体现了开发者的个人风格,软件工作牵涉到很多社会因素
⑧ 软件开发是一个复杂的过程

1.1.4 软件的分类

(1)按软件功能进行分类

① 系统软件 (与计算机硬件紧密联系)
② 支撑软件 (开发软件的软件)
③ 应用软件 (提供服务的软件)

(2)按软件所处的层次进行分类

① 平台软件 (提供应用软件运行的平台)
② 中间软件 (中间软件和计算机安全软件)
③ 应用软件

(3)按软件规模分类

类别 开发人数/人 研发周期 程序规模(源程序行数)
微型 1 1~4 周 0.5 k
小型 1 1~6 个月 1~2 k
中型 2~5 1~2 年 5~50 k
大型 5~20 2~3 年 50~100 k
较大型 100~1000 4~5 年 1 M(1024 K)
巨大型 2000~5000 5~10 年 1~10 M

(4)按软件工作方式分类

① 实时处理软件
② 分时软件
③ 交互式软件
④ 批处理软件

(5)按软件市场和标准化程度分类

① 标准化软件
② 班定制软件
③ 服务软件

(6)按运行在计算机网络中的位置

① 客户端软件
② 服务断软件


1.2 软件危机

指在计算机软件开发和维护时所遇到的一系列问题。

主要包含两方面问题:

一,如何开发软件以满足社会对软件日益增长的需求。
二,如何维护数量不断增长的已有软件。

1.2.1 软件危机产生的原因

① 软件是计算机系统逻辑部件,开发过程的进展情况难以衡量,质量难以评价。
② 软件开发周期长,很可能出现难以预料的问题。
③ 软件规模越来越大,结构越来越复杂,给软件的开发和维护带来客观的困难。
④ 软件开发技术落后,生产方式和开发工具落后,生产率提高缓慢。
⑤ 软件开发人员忽视软件需求分析的重要性,轻视软件维护,

1.2.2 软件危机的主要表现形式

① 软件发展速度跟不上硬件的发展和用户的需求
② 对软件开发成本和进度的估计常常不准确,造成用户不满意。
③ 软件产品质量差,可靠性不能保证。
④ 软件产品可维护性差。
⑤ 软件没有合适的文档资料

1.2.3 解决软件危机的途径

① 充分吸取和借鉴前人累积的行之有效的原理、概念、技术和方法,吸取开发经验和教训。
②使用别人成功的开发技术和方法,探索和研究更好的软件开发技术。
③ 使用好的软件开发工具及软件工程环境。
④ 良好的组织、严密的管理


1.3软件工程

1.3.1 软件工程概念

是指导软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它,这就是软件工程。

1.3.2 软件工程基本原理

七条基本原理:
(1)用分阶段的生命周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采纳现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应少而精
(7)承认不断改进软件工程实践的必要性

1.3.3 软件工程研究的内容

(1)研究内容的综合性
(2)方法的实用性
(3)内容变化的动态性

1.3.4 软件工程方法学

分为:传统方法学面向对象方法学


1.4 软件生命周期

(1)问题定义
(2)可行性研究
(3)软件分析
(4)软件设计
(5)软件实现
(6)软件运行与测试
(7)软件废弃


1.5 软件开发模型

1.5.1 瀑布模型

自顶向下,从抽象到具体

(1)计划时期
① 问题定义
② 可行性研究
(2)开发时期
① 需求分析
② 概要设计
③ 详细设计
④ 软件实现,即编码
⑤软件测试
(3)运行维护时期
软件工程总结笔记——软件工程概论(一)_第1张图片
特点:是软件工程中首次将软件的开发过程,以工程化的思想划分为前后有序逻辑相关的阶段,具有顺序性依赖性推迟实现质量保证的特点。

1.5.2 快速原型模型

瀑布模型的改进

基本思想:

从用户需求出发,快速建立一个原型,使用户通过这个原型初步表达出自己的要求,并通过反复修改、完善,逐步靠近用户的全部需求。
软件工程总结笔记——软件工程概论(一)_第2张图片

1.5.3 增量模型

软件工程总结笔记——软件工程概论(一)_第3张图片

1.5.4 螺旋模型

① 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件
② 风险分析:分析评估所选方案,考虑如何识别和消除风险
③ 实施工程:实施软件开发和验证
④ 客户评估:评价开发工作,提出修正建议,制定下一步计划
软件工程总结笔记——软件工程概论(一)_第4张图片

1.5.5 基于构件的开发模型

软件工程总结笔记——软件工程概论(一)_第5张图片

1.5.6 智能模型

你可能感兴趣的:(软件工程)