软件工程课件-C01-SWE概述-yyao1

合集下载

最新SE第1课-软件工程概述课件ppt

最新SE第1课-软件工程概述课件ppt
OOD:
任务:决定如何将系统划分成子系统, 每个子系统分成更小的子系统
OOP:
任务:将OOD的结果用一种程序设计语言实现
23
1.4 软件工程环境
软件工具:
定义:可以用来帮助开发、测试、分析、维护
其它计算机程序的程序以及文档资料的 集合,它可以实现软件生产过程自动化, 提高软件的生产率、可靠性,降低软件 生产成本。
软件成分复用的三个级别:
代码复用(剪贴、包含和继承) 设计结果复用(设计模型) 分析结果复用(分析模型)
组件技术
7
1.2 软件危机
软件危机的定义
计算机软件的开发和维护过程所遇到的一系列严重问题, 如:开发周期长、成本增加、可靠性降低等。
1979年美国政府项目调查表
8
1.2 软件危机
软件工具是一种自动化系统 用于软件生存周期的某一个阶段或某一个环节
25
1.4 软件工程环境
软件工程环境的定义:
是用以支持需求定义、程序生成,以及软件维护等 整个软件生命周期全部活动的,并把方法、规模和计 算机程序集成在一起的整个体系。 又称为软件开发环境,软件支撑环境,自动开发环境
需求:
集成化的系统 通用的系统 可剪裁又可扩充的系统 实用的、经济合算的系统
结构化的软件过程模型
1 瀑布模型
特点 阶段的顺序性和依赖性 推迟实现的观点 文档驱动的质量保证
存在问题 不适合需求模糊的系统
17
1.3 软件工程
2 快速原型模型
快速原型方法
原型:
是系统的早期版本,是系统的物理模型,只 实现了系统的一些最基本的功能,反映系统的 行为特性,但不一定满足全部需求。
3) 组成:
面向对象分析(Object-Oriented Analysis, OOA) 面向对象设计(Object-Oriented Design, OOD)

《软件工程》PPT课件

《软件工程》PPT课件

问题定义(续)
系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详 尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。 因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要 建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不 管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。 当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对 一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确 性。
快速原型(续)——类型之三
为了保证软件产品的质量,在总体设计和详细设计过程中,用 原型来验证总体结构或某些关键算法。如果设计方案验证完成后就 将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。 如果想把原型作为最终产品的一部分,原型和目标系统可使用同样 的程序设计语言。
快速原形的开发过程
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的 估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还 要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作 的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的 表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个
系统定义与用户 需求分析
原型设计 编码
完善原 型
测试原 型
产品系统的设 计实现
第三课时
喷泉模型 软件重用模型
第一章第三课时
喷泉模型
基于喷泉模型,Hodge等人提出将软件开发过程
划分为概念模型分析、系统设计、对象设计与实现、
测试和系统组装集成等五个阶段,它也体现出分析
和设计之间的重叠 ①概念模型分析:这个阶段主

《软件工程全》课件

《软件工程全》课件
软件质量的标准
软件质量的标准包括ISO 9126、 McCall等,它们从不同角度对软 件质量进行了描述和评价。
单元测试
单元测试的概念
单元测试是对软件中的最小可测试单 元进行检查和验证。在面向对象编程 中,单元测试通常是对类的方法进行 测试。
单元测试的方法
单元测试的方法包括白盒测试和黑盒 测试。白盒测试需要了解内部实现细 节,而黑盒测试只需要关注输入和输 出结果。
软件工程的定义
详细描述
软件工程是一门研究软件开发和维护的学科,它采用工程化的方法和技术,将 系统化的开发过程、先进的开发技术和高效的开发管理结合起来,以高效地开 发高质量的软件产品。
软件工程的历史与发展
总结词:软件工程的历史与发展
详细描述:软件工程的历史可以追溯到20世纪60年代 。最初,软件开发主要依靠程序员的手动编程,随着软 件规模的扩大和复杂性的增加,软件开发过程中的问题 逐渐显现。为了解决这些问题,软件工程的概念和方法 逐渐形成和发展。随着时间的推移,软件工程不断演进 和完善,形成了许多经典的软件开发模型和方法论,如 瀑布模型、螺旋模型、迭代模型等。同时,随着技术的 不断发展,软件工程也在不断引入新的技术和方法,如 敏捷开发、持续集成和持续交付等。
系统测试与验收测试
系统测试的概念
系统测试是对整个系统的功能、性能 和其他方面进行全面的测试,以确保 系统能够满足用户需求。
验收测试的概念
验收测试是用户对系统的最终验收过 程,其目的是确认系统是否符合合同 或需求规格说明中的要求。
PART 06
软件维护与演化
软件维护的定义与分类
定义
软件维护是在软件运行过程中,为了改正错误、满足新的需求、改进性能等目的,对软件进行的修改和调整。

软件工程基础ppt课件

软件工程基础ppt课件

类图
描述类、接口以及它们之间的关系。
时序图
描述对象之间的交互顺序和时间顺序。
状态图
描述对象的状态转换。
活动图
描述工作流或操作流程中的活动和决策点 。
设计模式
单例模式
确保一个类只有一个实例,并提供全局访问点。
工厂模式
创建对象的最佳实践,将对象的创建与使用分离。
观察者模式
定义对象之间的依赖关系,当一个对象改变状态时,其依赖对象自动更新。
06 软件项目Biblioteka 理项目计划与组织项目计划制定
制定详细的项目计划,包括项目目标、 范围、时间表、资源需求和预算。
团队组织
根据项目需求组建团队,明确团队成 员的角色和职责,建立有效的沟通机
制。
任务分解
将项目拆分成若干个可执行的小任务, 明确每个任务的负责人和完成时间。
项目文档管理
制定项目文档编写规范,确保项目过 程中产生的文档及时归档和更新。
确定系统边界
根据需求分析结果,确定系统的功能边界和范围。
需求规格说明
01
编写需求规格说明 书
根据需求分析结果,编写详细的 需求规格说明书,包括功能需求、 性能需求、安全需求等。
02
评审与修改
对编写完成的需求规格说明书进 行评审和修改,确保其准确性和 完整性。
03
发布与跟踪
将需求规格说明书发布给相关人 员,并对其后续变更进行跟踪和 管理。
项目管理工具(如Jira)
项目管理工具是用于协助团队管理和跟踪项目进度的软件,它可以帮助项目经理和团队成员更好地协 作和管理项目。
Jira是流行的项目管理工具之一,它提供了任务管理、缺陷跟踪、需求管理等功能,支持敏捷开发和传 统项目管理方法。

第1章 软件工程概述PPT课件

第1章 软件工程概述PPT课件

1968-至今
工程化的生产
向超高速、大 容量、微型化 以及网络化方 向发展
开发技术有很 大进步,但没 有突破性进展
完整定义
1968年10月,北大西洋公约组织(NATO)的科学家在德国召开的学术 会议上正式提出了软件危机问题。
软件工程 Software Engineering ——第一章 概述 武警警官学院 电子技术系
预期进度拖延几个月甚至几年的现象并不罕见。
软件工程 Software Engineering ——第一章 概述 武警警官学院 电子技术系
软件危机的典型表现
原计划运营时间:1993年10月 实际运营时间: 1995年2月 估计成本:17亿美元 实际成本:49亿美元
图:丹佛国际机场
世界上任何地方的机场都不如丹佛国际机场的先进。 ——弗某特•艾沙克 美国联邦航空局
档资料是在软件开发过程中产生出来的,而且应该是“最 新的”(与代码完全一致)。缺乏文档必然给软件的开发 和维护带来许多严重的困难和问题。
软件工程 Software Engineering ——第一章 概述 武警警官学院 电子技术系
软件危机的典型表现
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
软件工程 Software Engineering ——第一章 概述 武警警官学院 电子技术系
软件危机的典型表现
(7)软件开发生产率提高的速度远远不能满足社会对软件产 品日益增长的需求 软件产品“供不应求”的现象使人类不能充分利用现 代计算机硬件提供的巨大潜力。
软件工程 Software Engineering ——第一章 概述 武警警官学院 电子技术系
软件工程 Software Engineering ——第一章 概述 武警警官学院 电子技术系

第1章软件工程基本概述(1)PPT课件

第1章软件工程基本概述(1)PPT课件
······。
17
3.软件工程
3.1 软件工程
1968年秋季,NATO(北约)的科技委员会召集了 近50名一流的编程人员、计算机科学家和工业界巨头, 讨论和制定摆脱“软件危机”的对策。在那次会议上第 一次提出了软件工程(software engineering)这个概念。
在这40年的发展中,人们针对软件危机的表现和原 因,经过不断的实践和总结,越来越认识到:按照工程 化的原则和方法组织软件开发工作,是摆脱软件危机的 一个主要出路。
比例逐渐上升。
14
2.软件危机
2.3 软件危机原因
软件的规模加大、复杂性提高、性能增强; 软件是逻辑产品, 尚未完全认识其本质和特点; 缺乏有效的、系统的开发、维护大型软件项目的技术手段
和管理方法; 用户对软件需求的描述和软件开发人员对需求的理解往往
存在差异,用户经常要求修改需求,开发人员很难适应; 软件开发的技术人员和管理人员缺乏软件工程化的素质和


软件需求
复 杂
差距
性 软件技术
时间
软件技术的发展落后于需求
成本%
硬件
软件
1950 1970 1985 1995 年份
硬、软件成本比例的变化
6
1.软件概述
1.2 软件的特点
软件没有明显的制造过程。一旦研制开发成功, 就可以大量拷贝同一内容的副本。
软件对硬件和环境有着不同程度的依赖性。这 导致了软件移植的问题。
要求,对工程化的开销认识不足; ······。
15
2.软件危机
2.4 软件危机仍在继续
在项目的初始阶段对系统若明若暗就开始写程序; 认为软件是灵活的容易修改,对软件需求的改变
不以为然; 程序调试成功标志着工作的结束; 程序运行前无法评价程序的质量; 一个软件项目给客户提交的主要是程序,而软件

软件工程实用教程1-概述课件

软件工程实用教程1-概述课件

认识软件开发过程模型
软件过程
通过定义若干框架活动来建立公共过程框架,每 一个任务集合都由软件工程工作任务、项目里程 碑、软件工程产品(交付物)和质量保证点组成, 通过多个任务集合来保证框架活动可被修改,以 适应不同软件项目特征和项目组的需要。
软件过程模型
软件开发(过程)模型是跨越整个生存期的系统 开发、运作和维护所实施的全部过程、活动和任
特征

行数
微型 1
1~4周 500以下
不必有严格的设计和测试文档
小型 1~2
1~6月 1k~2k
通常没有与其他程序的接口
中型 3~5
1~2年 5k~50k
需要有严格的文档50k~100k
超 大 100~1000 4~5年 1M(=1000k) 型
需要按照软件工程方法进行管
软件发展阶段最根本的变化
人们改变了对软件的看法 软件的需求是软件发展的动力 软件工作的范围从考虑程序的编写扩展到设计整
个软件生存期
目前:社会信息化、软件产业化的阶段过渡
软件危机
软件危机是指在计算机软件的开发和维护过程中 所遇到的一系列严重问题。即包含两方面的问题: 如何开发软件、如何维护软件。
可行性研究
定义阶段
需求分析
需求说明书
概要设计 设计如何做的体系结构
设计说明书
详细设计
开发阶段
编码
源程序清单
维护阶段
测试 修改设计 运行维护
测试报告 维护报告
返回计划
评价
原型模型(RAPID PROTOTYPE MODEL)
原型模型(rapid prototype model) 是为了确定需求而提出的实际模型。打破传
软件的特点(1)

第1章 软件工程的基本概念PPT课件

第1章 软件工程的基本概念PPT课件
19
2 软件的发展和软件危机
20
软件的发展的几个阶段
软件发展阶段
国外
国内
➢程序设计阶段 60年代 70年代 ➢系统设计阶段 70年代 80年代 ➢软件工程阶段 80年代 90年代
21
软件的发展
➢第一代 算法技术 ➢第二代 结构化软件技术 ➢第三代 面向对象技术 ➢第四代 分布式面向对象技术 ➢第五代 软件构件技术
3
学习本章课程的目的
➢了解软件概念、特点及分类方法。 ➢了解软件发展及软件危机的起因。 ➢了解软件工程的概念及其要素。 ➢了解软件工程的基本目标和原则。 ➢了解软件工程的近期研究的课题。
4
1 软件的定义、特点和分类
5
软件的定义
程序、软件与软件产品
独唱-->小合唱-->合唱-->万人大合唱
|
|
简单程序 较复杂程序
软件过程是将软件工程
定义了:
过程
的方法和工具综合起来, 进行软件开发。
方法使用的顺序
要求交付的文档资料
22
软件危机
计算机软件的开发和 维护过程所遇到的一 系列严重问题。
23
软件危机的具体体现
➢ 软件开发进度难以预测 ➢ 软件开发成本难以控制 ➢ 用户对产品功能难以满足 ➢ 软件产品质量无法保证 ➢ 软件产品难以维护
24
软件危机及产生原因
➢ 用户需求不明确 ➢ 缺乏正确的理论指导 ➢ 软件开发规模越来越大 ➢ 软件开发复杂度越来越高
软件工程
Software engineering
珠海市软件行业协会专家委员会主任
1
整体 概述
一 请在这里输入您的主要叙述内容

请在这里输入您的主要 叙述内容

软件工程(全套课件)

软件工程(全套课件)
软件工程(全套课件 )
contents
目录
• 软件工程概述 • 软件开发过程模型 • 需求分析与管理 • 系统设计与实现 • 测试与质量保证 • 项目管理与团队协作 • 软件维护与演化
01
软件工程概述
软件工程定义与发展
软件工程的定义
软件工程是一种系统性的、规范化的、可量化的方法来开发和维护软件,它涉及 到软件开发的全过程,包括需求分析、设计、编码、测试和维护等各个阶段。
需求、成本估算等
设立里程碑和关键任务,以便 监控项目进展
定期评估项目状态,与项目干 系人沟通,确保项目按计划进 行
及时调整项目计划,以应对变 更和不可预见的风险
风险管理策略制定
01 识别项目潜在的风险,包括技术风险、市 场风险、资源风险等
02 评估风险的概率和影响程度,确定风险优 先级
03
制定相应的风险应对策略和措施,如风险 规避、减轻、转移和接受等
软件工程知识体系的核心内容
软件工程知识体系的核心内容包括软件开发过程模型、软件开发方法、软件需 求工程、软件设计、软件测试与维护等。这些内容相互关联、相互支持,构成 了完整的软件工程知识体系框架。
02
软件开发过程模型
瀑布模型
瀑布模型是一种线性的软件开发过程模型,它 按照一系列有序的、相互依赖的阶段进行开发 ,每个阶段都有明确的输入和输出。
版本控制与文档管理
01
使用版本控制工具(如Git)管理 项目代码和文档,确保数据的一 致性和可追溯性
02
制定版本控制规范,包括分支管 理、提交信息、合并策略等
பைடு நூலகம்
定期备份项目数据,以防数据丢 失或损坏
03
编写详细的开发文档和用户手册 ,以便团队成员和最终用户了解

第1章 软件工程概述课件

第1章 软件工程概述课件

16
1.2 软件工程的概念
软件工程是指导计算机软件开发和维护的 工程学科,采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的最好的技术 方法结合起来,这就是软件工程。
第1章 软件工程概述
17
软件工程具有的本质特性
软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 • 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 • 在软件工程领域中是由具有一种文化背景的
软件是由计算机程序的发展而形成的一种概念。 程序是按既定算法,用某种计算机语言所规定的指令或 语句编写的一系列指令或语句的集合。 软件是程序再加上程序实现和维护程序时所必须的文档 的总称。
第1章 软件工程概述
8
软件
被普遍接受的软件的定义是:
软件(software)是计算机系统中与硬件(hardware)相 互依存的另一部分,它包括程序(program)、相关数据 (data)及其说明文档(document)。
第1章 软件工程概述
27
1.4 开发模型
瀑布模型 演化模型 螺旋模型 喷泉模型 RUP开发 敏捷过程与极限编程 微软过程
第1章 软件工程概述
28
1.4.1瀑布模型(Waterfall Model)
计划 时期
开发 时期
运行维 护时期
问题定义
(目标与范围说明书)
可行性研究
(可行性论证论告)
需求分析
(需求说明书)
第1章 软件工程概述
31
1.4.1瀑布模型
3.质量保证的观点 为了保证质量,瀑布型软件开发在各个阶段坚持了两

软件工程概述PPT课件

软件工程概述PPT课件
统的软件工程。
2021/5/8
13
第1章 软件工程概述
软件工程的发展的四个重要阶段
1、第一代软件工程 — 传统的软件工程 2、第二代软件工程 — 对象工程 3、第三代软件工程80年—代中过到程90年工代程,面向对象
的方法与技术得到发展,研究的重
4、第四代软件点工转程移到—面向构对件象的工分程析与设计,
演化为一种完整的软件开发方法和 系统的技术体系,称为对象工程。
2021/5/8
14
第1章 软件工程概述
80年代中开始,人们在软件开发
软件工程的的发实展践的过程四中个认重识到要:阶提段高软件生产
率,保证软件质量的关键是“软件过
程”,是软件开发和维护中的管理和
1、第一代软支件持能工力程,逐—步形传成统软件的过软程件工程工。程
软件=程序+数据+文档+服务
2021/5/8
3
第1章 软件工程概述
软件的特点
1.软件是一种逻辑实体,而不是具体的物 理实体。
2.软件的生产于硬件不同。
3.在软件的运行和使用期间,没有硬件那 样的机械磨损,老化问题。

效 磨合

调整
磨损 用坏
失 效 率
实际曲线
2021/5/8
硬件失效曲线
时间
软件失效曲线
8
第1章 软件工程概述
1.2 软件的发展和软件危机
2021/5/8
9
第1章 软件工程概述
软件的发展
软件的发展大体经历了如下三个阶段: ① 程序设计阶段,约为50至60年代 ② 程序系统阶段,约为60至70年代 ③ 软件工程阶段,约为70年代以后
2021/5/8

软件工程课件1

软件工程课件1

软件工程课件11. 软件工程概述软件工程是一门研究如何以系统化的、规范化的、可度量的方法开发和维护软件的学科。

它涵盖了软件开发的整个生命周期,包括需求分析、系统设计、编码、测试、部署和维护等阶段。

在软件工程中,通过严密的过程控制和工程化的方法,可以提高软件的质量、可靠性和可维护性。

此外,软件工程还包括团队协作和项目管理等方面,以确保软件项目按时、按质地完成。

2. 软件工程的重要性软件在现代社会中的重要性不言而喻。

无论是企业、政府还是个人,都离不开各种类型的软件。

而软件的开发和维护过程中,由于需求的复杂性和变化性,以及人为的错误等原因,往往存在一定的风险。

软件工程的目标就是以科学的方法和技术来规避风险,确保软件项目的顺利进行和成功交付。

通过软件工程的实践,可以提高软件的可靠性、可维护性和安全性,减少软件项目的失败风险,提升开发效率和质量。

3. 软件开发生命周期软件开发生命周期(SDLC)是软件工程中的一个关键概念,它指导软件开发过程的不同阶段。

常见的SDLC模型包括瀑布模型、迭代模型、螺旋模型等。

瀑布模型是最传统的SDLC模型,采用线性的开发流程,包括需求分析、设计、编码、测试和部署等阶段。

每个阶段在前一个阶段完成后才开始,具有高度的可控性和可追溯性。

迭代模型采用循环迭代的方式进行开发,每个迭代周期包括需求分析、设计、编码、测试和部署等阶段。

迭代模型更加灵活,能够更好地适应需求的变化。

螺旋模型结合了瀑布模型和迭代模型的优点,通过风险管理的方式指导开发过程,降低项目失败的风险。

4. 软件需求工程软件需求工程是软件工程中的一个关键过程,它确定和记录软件系统的需求。

软件需求工程的目标是确保软件系统满足用户的需求,并通过指定和验证软件需求来降低开发风险。

软件需求工程包括需求获取、需求分析、需求规格和需求验证等阶段。

在需求获取阶段,开发团队与用户进行沟通,通过面谈、问卷调查等方式获取需求信息。

在需求分析阶段,开发团队对需求进行分析和建模,明确系统的功能和性能要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件的种类(总体分四类)
问题
项目型软件公司与产品型软件公司比,哪 种类型的公司更具有盈利能力?为什么? 若按软件的功能进行划分,你知道中国的 软件企业生产的产品所占的比重吗?
软件的发展和软件危机
软件语言包括需求定义语言、软件功能 语言、软件设计语言、程序设计语言等
时 特
期 点
程序设计 程序 汇编及机器语 言 程序编写 程序设计者本 人 个人 小型 个人程序技术 子程序 库 程序
本领域关注生产高质量的软件产品的 概念、方法、技术、流程和标准。本领域 的知识有质量计划和控制、确认和验证活 动、产品和过程属性的测量及软件的依赖 性和可靠性。
3.4 软件配置管理
本领域关注在软件系统的整个生命周 期过程中在每一个离散的点识别其系统配 置、并系统地控制配置的变更、维护配置 的整体性和可回溯性的规则。
软件的正确含义:
1. 运 行 时 , 能 提 供 所 要 求 功 能 和 性 能 的 指 令 (Instruction) 或计算机程序(Program)集 合。 2. 程 序 能 满 意 地 处 理 信 息 的 数 据 结 构 (data structure). 3.描述程序功能需求以及程序如何操作和使用所 要求的文档(Documents).
总结解决途径
组织管理 工程项目管理方法 技术措施 软件开发技术与方法 软件工具
三、软件工程
1968 NATO首次提出 软件工程是用工程,科学和数学的原则与 方法研制、维护计算机软件的有关技术及 管理方法,它由方法、工具和过程三部分 组成。
参考书目
实用软件工程 (第二版)
郑人杰 殷人昆 陶永雷 清华大学出版社(1996)
软件工程 -实践者的研究方法 (英文版 第四版) Roger S. Pressman 机械工业出版社
参考书目
Software Engineering , Theory and Practice Shari Lawrence Pfleeger , Prentice-Hall, Inc.(1998)
软件失效率曲线
软件的特点(续)
软件的开发至今尚未完全摆脱手工艺的开 发方式。 软件是复杂的。 软件成本相当昂贵,但边际成本近乎零。 相当多的软件工作涉及到社会因素。
软件技术的发展落后于需求
计算机系统硬、软件成本比例的变化
软件的分类
按软件的功能进行划分 按软件规模进行划分 按软件工作方式划分 按软件服务对象的范围划分 按使用的频度进行划分 按软件失效的影响进行划分。
4、软件领域
本目录关注计算的知识、概念、理论、原则、方 法、技能和应用。它是软件开发和软件工程规则 的基础。 4.1人工智能 4.2 数据库系统 4.3 人机交互 4.4 数值和符号计算 4.5 计算机仿真 4.6 实时系统
2.1 软件需求工程
本领域关注对软件产品所解决的需求 建立共同的理解。它包括软件系统真正需 要的一系列转换以及将需要的陈述转换为 完整的、无二异性的需求描述、按照规格 说明书的标准文档化。本领域包括需求导 入、分析及规格化的技术。
2.1软件需求工程 2.2 软件设计 2.3 软件编码 2.4 软件测试 2.5 软件运行和维护
3、软件管理
本目录关注计算项目管理、风险管 理、软件质量和配置管理有关的活动。 3.1软件项目管理 3.2 软件风险管理 3.3 软件质量管理 3.4 软件配置管理 3.5 软件过程管理 3.6 软件采购
操作定义(二)
知识目录( KC):是软件工程的子规则,用于描 述软件工程知识领域的重要部分。知识目录是用 于组织、分类和描述软件工程知识体系的高层结 构元素。知识目录由知识领域构成。 知识领域( KA):是描述软件工程知识的知识目 录的进一步细分,按照继承或聚化与知识目录相 关。知识领域由知识单元构成。 知识单元(KU):是描述软件工程知识的基本构 件知识领域的细分,它具有明确的描述。基于本 目的,知识单元是原子级的,也就是说它不可能 在分为更简单的、或更基本的元素。
课程评分方法
平时成绩 30% + 期末考 试 70% = 总评 100% 作业可通过e-mail递交, 不限时,不记分
西安电子科技大学课程
软件工程的内容
工程涉及:工序,规范,质量,工具,人(管理) 工序:确切的工作步骤 规范:描述、表示的标准(图纸),文档规范 质量:质量要求,软件质量保证 工具:开发、编程工具,集成开发环境 人(管理):项目管理:
软件产业的三个阶段
结构化生产时代(美国1975-1995) 以过程为中心的时代(美国1985-2005) 工业化生产时代(美国1995起)
问题
中国正处于什么时代? 你知道世界上代表先进的软件产业的国家 有哪些? 中国与软件相关的产业政策有哪些? CMM、ISO9000、PMI、IPMA、ERP、GIS、 CRM、MIS、Call Center……? 为什么学习软件工程?
2.2 软件设计
本领域关注需求描述如何转换为需求 实现。软件设计由体系结构的设计、抽象 规范的设计、接口设计、构件设计、数据 结构设计和算法设计等活动构成。软件设 计使用一系列表示的技术和表格,每一项 技术和表格提供获取和表示系统不同视图 的能力。
2.3 软件编码
本领域关注在设计文档中标示和描述 的软件构件的构造知识。本领域的知识包 括将设计转换为可实现的语言、程序编码 风格以及程序文档的开发和使用。
3.6 软件采购
本领域关注的知识是通过合同的形式 从本机构外的软件开发者采购客户的软件 系统。本领域包括采购活动的知识如采购、 合同、性能评估及提供软件系统的未来支 持。
二、软件
软件是计算机系统中与硬件相依存的 另一部分,它是包括程序、数据及其相关 文档的完整集合。其中程序是按事先设计 的功能和性能要求执行的指令序列;数据 是使程序能正常操纵信息的数据结构;文 档是与程序开发、维护和使用有关的图文 材料。
西安电子科技大学课程
软件工程
(主讲 姚勇)
2010年8月 西安
西安电子科技大学课程 46学时(30授课+16上机) 2.5学分 yaoyong@ 教材
齐治昌等, 《软件工程》第二版 高教出版社, 2004
参考书目
软件工程导论(第三版)
张海藩
清华大学出版社 (1997)
一、软件工程知识体系
1. SWE-BOK 是作为美国联邦航空管理局改 进其软件采购、开发和维护过程项目中的 一部分结果而形成的。 2. 考虑了多方面的因素 ,特别是系统工程
SWE-BOK的体系结构
软件工程知识体系 划分为 知识目录 组成 知识领域 组成 知识单元
操作定义(一)
知识:用来描述规则的整个内容:信息、术 语、产品、数据、角色、方法、流程、技 术、实践、过程和文献。 知识体系( BOK):软件工程知识的层次描 述,它将知识组织及结构化为三级:知识 目录、知识领域和知识单元。
1、计算基础
本目录关注计算的知识、概念、理论、原则、 方法、技能和应用。它是软件开发和软件 工程规则的基础。 1.1 算法和数据结构 1.2 计算机体系结构 1.3 数学基础 1.4 操作系统 1.5 程序设计语言
2、软件产品工程
本目录关注生产正确的、一致的软件产品的已定义的活动 的集合。软件产品工程包括生产软件产品的技术活动,如 需求工程、设计、编码和测试。这些工程活动涉及软件工 作产品文档化和可回朔维护,以及确保一致性的活动。本 目录包括软件生命周期内阶段转换以及交付给客户高质量 软件产品的知识。
3.5 软件过程管理
本领域关注软件开发过程技术方面的管理。 本领域包括下列软件过程元素方面的知识:人们 用来开发和维护软件和相关产品的活动、方法、 实践和转换。同时也包括确保在一个组织内部过 程按照所期望的在执行;也就是说遵循被定义的 过程以及过程的改进是为了满足组织的目标。本 领域包括的知识有建立基于组织需要基础上的被 使用的同时可作为系统改进基础的过程。
产生软件危机的原因
产生软件危机有二个方面: 一方面与软件本身的特点有关。 一方面与软件开发与维护的方法不正确有关。
客观:软件本身特点 逻辑部件 规模庞大 主观:不正确的开发方法 忽视需求分析 软件开发=程序编写 轻视软件维护
解决软件危机的途径
1.对软件有正确认识 2. 不是个人 ” 技艺 ” , 是科学产物 , 是管理严密的工程项目 3.采用有效的方法和技术 4.工具和软件工程支撑环境 从管理和技术两方面研究如何更好的 开发和维护
软件所指 主要程序设计语 言 软件工作范围 需求者 开发软件的组织 软件规模 决定质量的因素
开发技术和手段
结构化程序设计
维护责任者
程序设计者 价格高 存储容量小 工作可靠性差 完全不受重视
开发小组 降价、速度、容 量及工作可靠性 有明显提高 软件技术的发展 不能满足需要, 出现软件危机
硬件特征
软件特征
软件危机
软件危机真正的含义: 它是指在计算机软件开发和维护过程中所 遇到的一系列严重问题。概括地讲:
1.怎样满足对软件日益增长的需求(即如何开发 软件) 2. 如何维护数量不断膨胀的已有软件
软件危机的具体表现
1. 对软件开发成本和进度的估计常常不准确( 成本估计不足,拖延 工期 ,影响信誉)。 2. 用户对“已完成的”软件系统不满意的现象经常发生(用户需求了 解不清,闭门造车,导致不符合要求)。 3. 软件产品的质量往往靠不住(没有严格执行质保技术)。 4. 软件常常不可维护:不能适应新环境,程序错误不容易纠正。 5. 没有适当的文档资料。 6. 软件成本占总成本的比例逐步上升(1985年软件成本占种成本的 90%); 7. 软件开发速度跟不上计算机应用普及深入的趋势。
2.4 软件测试
本领域关注需求所描述的问题的正确 解决方案被开发。测试是多阶段的过程, 这些过程包括的活动有验证软件产品、从 最基本的元素到完整的集成系统。本领域 包括的活动有单元测试、性能测试、集成 测试、系统测试和可接受性测试。
相关文档
最新文档