系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理
本章目录:
本章重难点:
● 了解软件工程的发展和软件危机
● 掌握软件工程的概念、内容和原理
● 熟悉软件生存周期及阶段任务
● 掌握常用的软件开发模型
● 掌握软件开发准备及Visio2017应用实验
1.1 软件工程的发展
1.1.1 软件危机概述
软件危机(Software crisis)是指20世纪60年代计算机软件在研发、运行、维护和管理过程中,出现的一系列严重问题的现象。
软件危机直接导致软件工程的产生。
=
出现软件危机最主要的两个因素就是 开发成本难控制和开发计划难落实
1.1.2 软件工程的发展过程
软件技术的发展 经历了程序设计阶段、程序系统阶段、软件工程阶段和创新完善软件工程4个阶段
软件工程发展 经历4个重要阶段:
1.传统软件工程 传统软件工程是指软件工程产生的初期,也称为第一代软件工程。
2.对象工程 对象工程也称为第二代软件工程。20世纪80年代中到90年代,以Smalltalk为代表的面向对象的程序设计语言相继推出,使面向对象的方法与技术得到快速发展。
3.过程工程 过程工程也称为第三代软件工程。随着网络等高新技术的出现及信息技术的广泛应用,软件规模和复杂度不断增大,开发时间相应持续增长,开发人员的增加,致使软件工程开发和管理的难度不断增强。
4.构件工程 构件工程也称为第四代软件工程.90年代起,基于构件(Component)的开发方法取得重要进展,软件系统的开发可利用已有的可复用构件组装完成,而无需从头开始构建,可提高效率和质量、降低成本。
计算机辅助软件工程简称CASE(Computer Aided Software ngineering)将工具和代码生成器进行集成,为很多软件系统提供了可靠的解决方案;
1.2 软件及软件工程概述
1.2.1 软件的概念特点和分类
软件=程序 + 数据 + 文档 + 服务
数据则是使程序正常处理信息的数据结构及信息表示;文档(Document)是与程序开发、维护和使用有关的技术资料。服务主要指对各种软件用户的服务,包括提供软件产品使用说明书、推销服务及售后技术支持等
软件分为系统软件、支撑软件(开发环境)和应用软件等。其中应用软件常称为信息系统主要是指具体的应用系统。
软件的主要特点
(1) 智能性。软件是人类智能劳动的产物、代替和延伸。
(2) 抽象性。软件属于逻辑实体,无形性和智能性致使软件难以认识和理解。
(3) 人工方式。软件的开发、维护及设置管理等方面目前尚未完全脱离手工方式。
(4) 复杂性和系统性。逻辑处理和数据结构及构成等相对复杂
(5) 泛域性。软件应用很广泛,在信息化中可服务于各种领域、行业和层面。
(6) 复制性。软件成本相对比较昂贵,软件是人类创造性的可复制的特殊产品。
(7) 非损及更新性。软件不存在物理性磨损和老化问题,但可以退化需要更新升级。
软件的分类
(1) 按照软件功能划分-系统软件、支撑软件、应用软件
(2) 按照软件规模划分 (微型、小型、中型、大型、超大型5种)
(3)按照软件工作方式划分-实时处理软件、分时软件、交互式软件、批处理软件
(4)按照软件服务对象的范围划分-项目软件、产品软件。
(5)按照软件运行的终端设备划分。分为服务器软件、计算机软件、手机软件、机器人软件和其他嵌入设备(电子化设备)软件。
1.2.2 软件工程的概念、特点和目标
软件工程(Software Engineering)是软件开发、运行、维护和引退的系统方法。
软件工程 = 工程原理 + 技术方法 + 管理技术
软件工程学科的主要特点是实践性和发展性,其问题来源并应用于