第一章-软件工程PPT课件
合集下载
《软件工程》课件——第1章 软件工程概述

软件的分类
图1.3 软件的分类
软件的分类
另外,从软件工程学的角度来划分软件产品,可以分为基础软件、支 撑软件和应用软件等。
基础软件是指保证计算机运行并支撑应用软件运行的基础环境,包括 操作系统、数据库、中间件。
支撑软件是指支撑各种软件的开发与维护的软件,又称减开发环境( Integrated Development Environment, IDE),主要有环境数据库、各 种接口软件和工具组,包括编程工具、建模工具、版本控制、软件测试等 类型。
软件的特性
图1.1 硬件失效曲线图
软件的特性
图1.2 软件失效曲线
软件的特性
⑥ 应用特性。软件的应用极为广泛,如今它 已渗入国民经济和国防的各个领域,现已成为信 息产业、先进制造业和现代服务业的核心,占据 了无可取代的地位。
软件的特性
(2)软件的生产特性 ① 软件开发特性。由于软件固有的特性,使得软件的开发不仅具
有技术复杂性,还有管理复杂性。技术复杂性体现在:软件提供的功能比 一般硬件产品提供的功能多,而功能的实现具有多样性,需要在各种实现 中做出选择,更有实现算法上的优化带来的不同,而实现上的差异会带来 使用上的差别。管理上的复杂性表现在:第一,软件产品的能见度低,要看 到软件开发进度比看到有形产品的进度困难得多;第二,软件结构的合理性 差,结构不合理使软件管理复杂性随软件规模增大而呈指数增长。
软件的特性
③ 软件维护特性。软件在运行过程中的维护工作比硬件复杂得多。
首先软件投入运行后,总会存在缺陷甚至暴露出潜伏的错误,需要进行“纠 错性维护”。其次,用户可能要求完善软件性能,对软件产品进行修改,进 行“完善性维护”。当支撑软件产品运行的硬件或软件环境改变时,也需要 对软件产品进行修改,进行“适应性维护”。软件的缺陷或错误属于逻辑性 的,因此,不需要更换某种备件,而是修改程序,纠正逻辑缺陷,改正错误 ,提高性能,增加适应性。当软件产品规模庞大、内部的逻辑关系复杂时, 经常会发生为纠正一个错误而产生新错误的情况,因此,软件产品的维护往 往比硬件产品的维护工作量大且复杂。
软件工程导论第一章PPT

2015年5月11日
第1章
概述
第15页
1.2.2 软件工程的研究内容和基本原理
软件工程的研究内容 软件工程的主要研究内容是指软件开发技术和软件开发过程 管理两个方面。
– 在软件开发技术方面主要研究软件开发方法、软件开发过程、软 件开发工具和技术。 – 在软件开发过程管理方面主要研究软件工程经济学和软件管理学。
“软件工程”一词是由北大西洋公约组织(North Atlantic Treaty Organization,NATO)的计算机科学家 在联邦德国召开的国际会议上首次提出来的。产生软件工 程这门学科的时代背景是“软件危机”。软件工程的发展 和应用不仅缓和了软件危机,而且促使一门新兴的工程学 科诞生了。 本章将讲述软件、软件危机及软件工程的相关概念、历史 发展和开发模型。
2015年5月11日
第1章
概述
第10页
1.1.3 软件危机的产生原因及解决途径
产生原因
(1) 软件是计算机系统中的逻辑部件,软件产品往往规模 庞大,结构复杂。 (2) 软件开发的管理困难。 (3) 软件开发费用不断增加,维护费用急剧上升,直接威 胁计算机应用的扩大。 (4) 软件开发技术落后。 (5) 生产方式落后。 (6) 开发工具落后,生产效率提高缓慢。
2015年5月11日 第1章 概述 第6页
1.1.1 软件的定义、特点及分类
二、软件的特点 软件是一种特殊的产品,与传统的工业产品相比,它具有以下 一些独特的特点。 (1)软件是一种逻辑产品,而不是具体的物理实体,具有抽象 性。 (2)软件产品的生产主要是开发研制,没有明显的制造过程。 (3)软件产品在使用过程中,不存在磨损、消耗、老化等问题 (4)软件产品的开发主要是脑力劳动,还未完全摆脱手工开发 方式,大部分产品是“定做的”,生产效率低。
《软件工程与开发技术》课件第1章

第1章 软件工程引论
此外,软件运行过程中如果发现了错误,那么必然是遇到 了在开发时期(分析、设计、编码过程)引入的,在检测过程中 没有能够检查出来的故障。对于此类故障的维护,通常意味着 要修改早期的分析结果、设计结果并调整编码。由于软件产品 的不可视特征,维护过程不像硬件产品维护时只要简单的更换 损坏部件那样容易,这在客观上造成了软件难以维护的结果。 利用足够的文档资料使不可视的产品可视化,有助于提升软件 产品的可理解性和可维护性。
第1章 软件工程引论 (2) 软件的生产与硬件不同。软件是由开发或工程化而形成 的,不是由传统意义上的制造过程生产的。虽然软件开发和硬件 制造之间有一些相似之处,可是两者在本质上是不同的。这两者 都能够通过良好的设计获得高质量的产品,但即使有了良好的设 计和优秀的样品,硬件在批量制造过程中仍然可能引入质量问题, 这种情况对于软件而言几乎不存在。
现代计算机应用系统中,软件的地位日益重要和突出。如何 满足日益增长的软件需求,如何维护应用中的大量已有软件,已 经成为了计算机应用系统进一步发展的瓶颈。1968年,北大西洋 公约组织的计算机科学家们在联邦德国召开的国际会议上讨论了 软件危机问题,同时也是在这个会议上提出了“软件工程”这个 名词,导致了一门新的工程学科的正式诞生。
软件在开发完毕,形成为产品之后,其批量制造过程只是简 单的拷贝/复制;软件的开发和硬件的制造都依赖于人,但参与 者和他们完成的工作之间的关系不同;两者的终极目的都是建造 产品,但方法不同;软件的成本集中在开发过程上,而硬件生产 的成本更多地表现在原材料消耗上。因此,软件项目开发过程不 能完全像硬件制造过程那样来管理。
第1章 软件工程引论
(1) 系统软件:就一般情况来说,系统软件是为其他软件服 务的软件。系统软件与计算机硬件交互频繁,处理大量的确定或 不确定的复杂数据,往往需要具有多用户支持、资源精细调度、 并发操作管理、多种外部设备接口支持等项功能。
软件工程第1章课件

软件工程的目标与原则
软件工程需要解决的问题: 软件成本、软件可靠性、软件维护、软件生产率和 软件复用。
软件工程需要达到的基本目标: 付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发、及时交付使用
软件工程原则
在软件开发过程中必须遵循的软件工程原则有:
把软件生命周期划分成若干个阶段,每个阶段的任 务相对独立,而且比较简单,便于不同人员分工协 作,从而降低了整个软件开发工程的困难程度; 在软件生命周期的每个阶段都采用科学的管理技术 和良好的技术方法,这就使软件开发工程的全过程 以一种有条不紊的方式进行,保证了软件的质量, 特别是提高了软件的可维护性。
1983年IEEE为软件下的定义是:计算机程序、方 法、规则、相关的文档资料以及在计算机上运行程 序时所必需的数据。
必须充分认识到软件开发不是某种个体劳动的神秘 技巧,而应该是一种组织良好、管理严密、各类人 员协同配合、共同完成的工程项目。
应该推广使用在实践中总结出来的开发软件的成功 的技术和方法。
所谓管理就是通过计划、组织和控制等一系列活动, 合理地配置和使用各种资源,以达到既定目标的过 程。
通常把在软件生命周期全过程中使用的一整套技术 方法的集合称为方法学(methodology),也称为范 型(paradigm)。在软件工程领域中,这两个术语的 含义基本相同。
软件工程方法学包含3个要素: 方法、工具和过程 其中,方法是完成软件开发的各项任务的技术方法, 回答“怎样做”的问题;工具是为运用方法而提供 的自动的或半自动的软件工程支撑环境;过程是为 了获得高质量的软件所需要完成的一系列任务的框 架,它规定了完成各项任务的工作步骤。
(1) 把对象(object)作为融合了数据及在数据上的操 作行为的统一的软件构件。
软件工程课件(全)ppt

第1章 1.2软件工程
1.2.1 软件工程的定义和目标
为了克服软件危机,1968年10月在北大西洋公约组织(NATO)召开的计 算机科学会议上,Fritz Bauer首次提出“软件工程”的概念。
按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一 条主要出路。
软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软 件工程的目标是实现软件的优质高产。软件工程的目的是在经费的预算范围内, 按期交付出用户满意的、质量合格的软件产品。
第1章 1.1软件与软件危机
1.1.3 软件危机
2. 软件危机产生的原因
(1)忽视软件开发前期的调研和需求分析工作。 (2)缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。 (3)开发过程缺乏统一的、规范化的方法论指导。 (4)忽视与用户、开发组成员间的及时有效的沟通。 (5)文档资料不规范或不准确。导致开发者失去工作的基础,管理者失去管理的依据。 (6)没有完善的质量保证体系。
第1章 1.1软件与软件危机
1.1.1 软件的定义及其特点
2.软件具有下列特点:
比硬件发展慢
是逻辑产品
软件
生产与硬件不同 不会磨损和老化
成本高、风险高
手工开发为主
依赖硬件
第1章 1.1软件与软件危机
1.1.2 软件的发展及其分类
1.软件技术的发展
程序设计
程序系统
软件工程
第1章 1.1软件与软件危机
第1章 1.1软件与软件危机
1.1.3 软件危机
3. 软件危机解决途径
要解决软件危机问题,需要采取以下措施: (1)使用好的软件开发技术和方法。 (2)使用好的软件开发工具,提高软件生产率。 (3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。 为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。软件工 程正是从技术和管理两方面来研究如何更好地开发和维护计算机软件的。
软件工程完整PPT课件

2021/3/9
10
④局部化。要求在一个物理模块内集中逻辑上相互关联 的计算资源,保证模块间具有松散的耦合关系,模块 内部有较强的内聚性,这有助于控制解的复杂性。
⑤确定性。软件开发过程中所有概念的表达应是确定的、 无歧义且规范的。
⑥一致性。包括程序、数据和文档的整个软件系统的各 模块应使用已知的概念,内外部接口应保持一致,系 统规格说明与系统行为应保持一致。
2021/3/9
14
2. 需求分析方法 常见的需求分析方法有:
①结构化分析方法。 ②面向对象的分析方法。
2021/3/9
15
2.2结构化分析方法
(1)关于结构化分析方法 结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,
建立系统的处理流程,以数据流图和数据字典为主要工具,建 立系统的逻辑模型。 结构化分析的步骤如下:
3. 信息隐蔽 信息隐蔽使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不能访问 的。
2021/3/9
24
4. 模块独立性 每个模块完成一个相对独立的特定子功能,并且 和其他模块之间的接口很简单。
模块的独立程度可以由两个定性标准来衡量,这 两个标准分别称为耦合性和内聚性。藕合衡量不 同模块彼此间互相依赖(连接)的紧密程度;内 聚衡量一个模块内部各个元素彼此间结合的紧密 程度。
⑦完备性。软件系统不丢失任何重要成分,完全实现系 统所需的功能。
⑧可验证性。开发大型软件系统需要对系统自顶向下, 逐层分解。系统分解应遵循容易检查、测评、评审的 原则,以确保系统的正确性。
2021/3/9
11
1.5软件开发工具与软件开发环境
1. 软件开发工具 软件开发工具是指可以用来帮助开发,测试、分 析、维护其他计算机程序及其文档资料,实现软 件生产过程自动化的一类程序。 软件工具主要包括需求分析工具、设计工具、编 码工具、确认工具、维护工具等。
软件工程ppt课件

常州大学信息科学与工程学院 卢 莹
(1)使用先进的开发技术(方法和工具)
l 推广使用成功的技术和方法,并且研究探索更好更有 效的技术和方法。
l开发和使用更好的软件工具(软件工程支撑环境)
(2)对软件开发过程和产品进行严格的管理
l软件开发应该是一种组织良好、管理严密、各类人员 协同配合、共同完成的工程项目
任务的框架,它规定了完成各项任务的工作 步骤
莹
(3)使用最广泛的软件工程方法学:
①传统方法学(生命周期方法、结构化方法): ●从时间角度对软件问题进行分解,将软件开发维护
过程划分成若干阶段。 ②面向对象方法学:
●面向对象方法学的出发点和基本原则: 尽量模拟人类习惯的思维方式,使开发软件的方法与 过程尽可能接近人类认识世界解决问题的方法与过程, 使问题空间与实现空间在结构上尽可能一致。
如何消除软件危机
软件工程概论教程
常州大学信息科学与工程学院 卢 莹
软件工程概论教程
常州大学信息科学与工程学院 卢 莹
(2)软件发展的四个阶段: ①60年代中期以前(程序设计阶段):
●软件开发环境个体化; ●没有系统化的软件开发和管理方法; ●软件即程序、无文档; ●软件规模小、生产率低。
②60年代中期到70年代中期(程序系统阶段):
●“软件作坊”出现,广泛使用产品软件; ●缺乏系统化的软件开发和管理方法; ●软件规模稍大;程序有说明书、无开发文档
软件工程概论教程
常州大学信息科学与工程学院 卢 莹
1.2.1 软件工程的内容 1.2.2 软件工程的基本原理 1.2.3 软件工程包含的领域
软件工程概论教程
常州大学信息科学与工程学院 卢 莹
(1)软件工程定义:
软件工程学概述第1章PPT课件

14
1.3 软件生命周期
一、定义 软件生命周期(software life cycle):表明一个计算机软件从功
能确定、设计,到开发成功投入使用,并在使用中不断地修改、增 补和完善,直至被新的需要所替代而停止该软件的使用的全过程。
15
二、 软件生命周期的基本任务
软件生命周期由软件定义、软件开发和运行维护三个时 期组成,每个时期又可进一步 划分成若干个阶段,每个阶 段 实现不同的任务。
4
学习本课程要求
三、作业内容 5、面向过程:系统需求分析报告、系统数据流程图、系
统详细设计和系统概要设计等四个大内容。 面向对象:系统的用例模型,系统的域模型,系统的 动态模型。
5
学习本课程要求
6、具体作业要求: 1)调研选题5%; 2)需求分析报告15%; 3)可行性报告15%; 4)详细设计与概要设计报告25%; 5)系统实现与测试40%; 四、评分办法 6、作业+考勤+考试 作业50%+考勤10%+考试40%。
18
基本任务具体解释
3.需求分析 这个阶段的任务仍然不是具体地解决客户的问题,
而是准确地回答“目标系统必须做什么”这个问题。 这个阶段的另外一项重要任务,是用正式文档准确地 记录对目标系统的需求,这份文档通常称为规格说明 (specification)。
19
基本任务具体解释
4.概要设计 这个阶段的基本任务是,概括地回答“怎样实现目
以上列举的仅仅是软件危机的一些明显的表现, 与软件开发和维护有关的问题远远不止这些。
9
三、 产生软件危机的原因
产生软件危机的原因很多,除与软件本身固有的特征有关外,还与软 件开发范型、软件设计方法。软件开发支持以及软件开发管理有关。 1、用户对软件需求的描述不精确,有遗漏、二义性、错误,甚至软件开 发过程中不断修改软件功能、界面、支撑环境等要求。 2、软件开发人员急于求成,未能与用户达成一致就着手编写程序。 3、大型软件项目开发需要组织一定的人力共同完成,各类人员的信息 交流不及时、不准确、甚至产生误解,是一个主要原因。 4、重开发,轻维护也是一个重要原因。 5、软件不同于硬件,其开发进展情况较难衡量,质量也较难评价,因此 管理和控制软件开发过程相当困难。
1.3 软件生命周期
一、定义 软件生命周期(software life cycle):表明一个计算机软件从功
能确定、设计,到开发成功投入使用,并在使用中不断地修改、增 补和完善,直至被新的需要所替代而停止该软件的使用的全过程。
15
二、 软件生命周期的基本任务
软件生命周期由软件定义、软件开发和运行维护三个时 期组成,每个时期又可进一步 划分成若干个阶段,每个阶 段 实现不同的任务。
4
学习本课程要求
三、作业内容 5、面向过程:系统需求分析报告、系统数据流程图、系
统详细设计和系统概要设计等四个大内容。 面向对象:系统的用例模型,系统的域模型,系统的 动态模型。
5
学习本课程要求
6、具体作业要求: 1)调研选题5%; 2)需求分析报告15%; 3)可行性报告15%; 4)详细设计与概要设计报告25%; 5)系统实现与测试40%; 四、评分办法 6、作业+考勤+考试 作业50%+考勤10%+考试40%。
18
基本任务具体解释
3.需求分析 这个阶段的任务仍然不是具体地解决客户的问题,
而是准确地回答“目标系统必须做什么”这个问题。 这个阶段的另外一项重要任务,是用正式文档准确地 记录对目标系统的需求,这份文档通常称为规格说明 (specification)。
19
基本任务具体解释
4.概要设计 这个阶段的基本任务是,概括地回答“怎样实现目
以上列举的仅仅是软件危机的一些明显的表现, 与软件开发和维护有关的问题远远不止这些。
9
三、 产生软件危机的原因
产生软件危机的原因很多,除与软件本身固有的特征有关外,还与软 件开发范型、软件设计方法。软件开发支持以及软件开发管理有关。 1、用户对软件需求的描述不精确,有遗漏、二义性、错误,甚至软件开 发过程中不断修改软件功能、界面、支撑环境等要求。 2、软件开发人员急于求成,未能与用户达成一致就着手编写程序。 3、大型软件项目开发需要组织一定的人力共同完成,各类人员的信息 交流不及时、不准确、甚至产生误解,是一个主要原因。 4、重开发,轻维护也是一个重要原因。 5、软件不同于硬件,其开发进展情况较难衡量,质量也较难评价,因此 管理和控制软件开发过程相当困难。