当前位置:文档之家› 软件工程第一章

软件工程第一章

• 1、瀑布模型
1.3.2、 1.3.2、软件开发模型
• 2、螺旋模型
• 1988 年B.Boehem 提出了螺旋模型,它加入了风 险分析,通常用来指导大型软件项目的开发。软件 风险分析的目标是在造成危害之前及时对风险进行 识别、分析,采取对策,进而消除或减少风险的损 害。
1.3.2、 1.3.2、软件开发模型
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 4、软件的发展:
1.1.2、 1.1.2、软件危机
• 软件危机指的是软件开发和维护过程中遇 到的一系列严重问题。 • 软件危机包含下述两方面的问题:如何开 发软件,怎样满足对软件的日益增长的需 求;如何维护数量不断膨胀的已有软件。
1.3.2、 1.3.2、软件开发模型
• 1、瀑布模型
• 瀑布模型即生存周期模型,由B.M.Boehm 提出, 是软件工程的基础模型。其核心思想是按工序将问 题化简,将功能的实现与设计分开,便于分工协作。 其最为突出的缺点是该模型缺乏灵活性,特别是无 法解决软件需求不明确或不准确的问题。
1.3.2、 1.3.2、软件开发模型
1.1、软件 1.1、软件
• 这一节包括两大方面的内容:
• 1.1.1、软件的定义、特点、种类和软件的 发展 • 1.1.2、软件危机
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 1、软件的定义: • ----1983 年IEEE 为计算机软件下的定义是: 计算机程序、方法、规则和相关的文档资 料以及在计算机上运行时所必需的数据。 • ----目前对计算机软件通俗的理解为:包括 程序、数据及其相关文档资料的完整集合, 即软件=程序+数据+文档资料。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (5)、复杂性的提高 • 随着软件需求的增长,软件所处理的对象 类型由单纯的数值型发展到字符、图形、 声音等,软件处理问题的规模也日趋庞大。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (6)、成本昂贵 • 软件的研制工作需要投入大量的、复杂的、 高强度的脑力劳动,它的成本自20世纪80 年代以来,已大大超过硬件成本。
第一章
软件工程概述
软件工程概述
• 教学提示: 教学提示:
• 本章介绍软件和软件工程的基本概念。主 要包括什么是软件、软件工程的概念、软 件生存周期以及软件开发的相关内容。
软件工程概述
• 教学目标: 教学目标:
• 了解软件及软件工程的相关概念,掌握软 件生存周期及软件开发模型,了解软件的 开发工具与开发环境。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (7)、“软件复用”任重道远 • 软件设计中几乎没有软件构件。虽然关于 “软件复用”已有大量论著,但这种概念 的成功实现还有很长的路要走。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (8)、社会因素众多 • 许多社会因素,如机构、体制、管理方式 等,包括人的观念及心理,都直接影响到 软件工作的成败。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展
• 3、软件的种类: (3)、按工作方式分类: ----实时处理软件:对外界变化的反应及处理有严格 的时间限定 ----分时软件: 系统将处理机时间轮流分配给各联机 用户 ----交互式软件: 可实现人机交互 ----批处理软件:具有很强的处理能力
1.2.2、 1.2.2、软件工程的目标和原则
• 2、软件工程的开发原则: (1)、模块化 (2)、抽象和信息隐藏 (3)、模块的高内聚和低耦合 (4)、确定性 (5)、一致性 (6)、完备性
1.3、软件生存周期与软件开发模型
• 这一节包括两大方面的内容:
• 1.3.1、软件生存周期 • 1.3.2、软件开发模型
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (1)、软件具有抽象性 这个特点使它与计算机硬件或其他工程对 象有着明显的差别。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (2)、生产过程的不可见性 • 软件的生产与硬件不同,它没有明显的制 造过程。软件是由开发或工程化而形成的, 而不是由传统意义上的制造产生的。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 4、软件的发展: (1)、程序设计阶段: • 计算机发展的早期阶段(20 世纪50 年代初 期至60 年代中期) 。软件生产个体化,程 序规模小,对软件的开发没有任何管理方 法,软件应用范围很有限
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 4、软件的发展: (2)、程序系统阶段: • 计算机系统发展的第二阶段(20 世纪60 年 代中期到70 年代末期) 。引入了人机交互 的概念,使硬件和软件的配合达到了一个 新的层次,软件产品的使用和“软件作坊” 出现,软件应用范围较宽广,“软件危机” 出现
1.3.1、 1.3.1、软件生存周期
• 传统的软件生存周期(Software Life Cycle) 是指软件产品从形成概念(构思)开始,经过 定义、开发、使用和维护,直到最后被废 弃(不能再使用)为止的全过程。按照传统的 软件生存周期方法学,可以把软件生存周 期划分为软件定义、软件开发、软件运行 与维护3 个阶段。
1.2.1、 1.2.1、软件工程的定义
• 两个典型定义: ----1968 年第一届NATO 会议给出 --2.2、软件工程的目标和原则
• 1、软件工程项目的基本目标: (1)、付出较低的开发成本,在用户规定时 限内,获得功能、性能方面满足用户需求 的软件 (2)、开发的软件移植性较好 (3)、易于维护且维护费用较低 (4)、软件系统的可靠性高
1.3.1、 1.3.1、软件生存周期
• 2、软件开发阶段: (1)、概要设计 (2)、详细设计 (3)、编码 (4)、调试 ----我们通常把编码和测试称为系统的实现。
1.3.1、 1.3.1、软件生存周期
• 3、软件运行和维护阶段: (1)、软件运行就是把软件产品移交给用户 使用。软件投入运行后的主要任务是使软 件持久满足用户的要求。 (2)、软件维护是对软件产品进行修改或对 软件需求变化作出响应的过程,也就是尽 可能地延长软件的寿命。
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展
• 3、软件的种类: (4)、按服务对象范围分类: ----项目软件:受某个特定客户(或少数客户)的委托, 由软件开发机构在合同的约束下开发 ----产品软件:面向市场需求,由软件开发机构开发 出来后直接提供给市场 (5)、按使用频度分类 (6)、按可靠性要求分类
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (3)、退化性
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 2、软件的特点: (4)、对硬件和环境的依赖性 • 为了适应运行环境的变化,计算机软件需 要不断维护,并且维护成本通常比开发成 本高许多。
1.3.1、 1.3.1、软件生存周期
• 1、软件定义阶段: (1)、问题定义:的软件的目标系统是“什么”, 系统的定位以及范围等 (2)、可行性研究:确定问题是否有解,解决办法 是否可行 (3)、需求分析:确定软件系统的功能需求、性能 需求和运行环境的约束,写出软件需求规格说明 书、软件系统测试大纲、用户手册概要
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 4、软件的发展: (3)、软件工程阶段: • 计算机系统发展的第三阶段,始于20 世纪 70 年代中期并跨越了近十年。软件开始产 品化、系列化、工程化、标准化,打破了 软件生产的个体化特征,有了可以遵循的 软件工程化的设计原则、方法和标准
1.2、软件工程的概念 1.2、软件工程的概念
• 这一节包括两大方面的内容:
• 1.2.1、软件工程的定义 • 1.2.2、软件工程的目标和原则
1.2.1、 1.2.1、软件工程的定义
• 概括地说,软件工程是指导计算机软件开 发和维护的一门工程学科。采用工程的概 念、原理、技术和方法来开发与维护软件, 把经过时间考验而证明正确的管理技术和 当前能够得到的最好的技术方法结合起来, 以经济地开发出高质量的软件并有效地维 护它,这就是软件工程。
• 3、软件的种类: (1)、按功能分类: -------系统软件:是计算机运行的必不可少的组 成部分 ----支撑软件:是协调用户开发软件的工具 性软件 ----应用软件:在特定领域内开发,为特定目的服务 的软件
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展
• 3、软件的种类: (2)、按规模分类: ----微型软件:一个人在几天之内可以完成,程序语 句不超过500行 ----小型软件:一个人在半年之内可以完成,程序语 句不超过2000行 ----中型软件:5个人在两年之内可以完成,程序语 句5000-50000行
1.3.1、 1.3.1、软件生存周期
按照前面的软件生存周期的划分方法,软 件生存周期可分为以下8个阶段:问题定义、 可行性研究、需求分析、概要设计、详细 设计、编码、测试运行和维护。
当软件已没有维护的价值时,宣告退役, 软件生存周期也随之宣告结束。
1.3.2、 1.3.2、软件开发模型
• 软件开发模型是软件工程思想的具体化, 是实施于过程模型中的软件开发方法和工 具,是在软件开发实践中总结出来的软件 开发方法和步骤,是跨越整个软件生存周 期的系统开发、运作、维护所实施的全部 工作和任务的结构框架。
相关主题