第7章 软件工程思想PPT资料54页
软件工程思想——维护与再生工程
软件工程思想——维护与再生工程The document was prepared on January 2, 2021维护与重策划编程大师曾说:“哪怕程序只有三行长,总有一天你也不得不对它维护。
”很多软件产品不是一次性的买卖。
比如在电信、金融等领域,有些软件系统要用十几年,对软件进行维护是必不可少的。
节将介绍“软件维护的常识”,对维护活动进行分类,并解释为什么维护比较困难。
软件公司的经理们没有哪一个喜欢被维护的费用吓一跳,但软件维护的代价通常是高昂的。
节将说明影响维护代价的一些主要技术因素与非技术因素。
如果希望提高已有软件的质量并且提高商业竞争力,却又无法靠维护来实现,只好对已有软件进行全部或者部分的改造,这种活动叫重策划(Reengineering)。
节将解释什么是重策划,并论述重策划的三种类型:重构(Restructure)、逆向工程(Reverse Engineering)和前向工程(Forward Engineering)。
软件维护的常识对软件而言,“维护”是个不太直观的术语,因为软件产品在重复使用时不会被磨损,并不需要进行像对车辆或电器那样的维护。
软件维护是人们对既丰富多彩又会令人心酸的活动的统称。
其中丰富多彩的活动是指那些反映客观世界变化、能使软件系统更加完善的修改和扩充工作。
令人心酸的活动是指那些永无修止、并且改了旧错却引起新错让人欲哭无泪的工作。
一些学者将软件维护划分为主要的三类:纠错性维护(Corrective maintenance)、适应性维护(Adaptive maintenance)和完善性维护(Perfective maintenance):(1)纠错性维护。
由于前期的测试不可能揭露软件系统中所有替在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。
(2)适应性维护。
由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。
软件工程导论(共65张PPT)可编辑全文
– 学生选课系统 软件
Microsoft Visio; Rational Rose
高级程序语言 作业递交方式:
来信标题注明 :班级 、学号、姓名、章节
第1章 软件工程学概述
1.1 软件危机
软件危机的出现:60年代中期到70年代中期, 许多软件最终成为不可维护的,这就是软件危 机.
不能用象硬件替换部件的方式修复软件的故障 使用增量模型的困难是,在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
出现了“软件作坊”,软件作为一种产品被广泛使用;
使用个体化开发方式;
软件的发展史_2
随着软件数量的增加及软件需求的日趋复杂, 维护难度与来越大,开发成本高,质量低 导致“软件危机”
➢相同点:都将软件开发划分为分析、设计、编码、 测试等阶段 ➢不同点:思想不同,方法不同。另外,传统软件 工程更关注功能模块,面向对象软件工程更关注对 象的抽取和设计
➢ 两类软件工程方法学没有绝对的替代关系
1.3软件生命周期
生命周期方法学
从时间角度对软件开发和维护的复杂问题进行分解,把软件生命 的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务, 然后逐步完成每个阶段的任务。
关注大型程序的构造 中心问题是控制复杂性 软件经常变化 开发效率非常重要 和谐地合作是开发软件的关键 有效地支持它的用户 具有一种文化背景的人替另一种文化背景的人
创造产品
用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组成员应少而精 承认不断改进软件工程实践地必要性
软件工作涉及到很多社会因素。 由于对象概念的引入,表达分析、设计及实现等活动只用对象类和关系,从而可以较容易地实现活动的迭代和无间隙
软件工程思想PPT文档共38页
软件工程思想
1、最灵繁的人也看不见自己的背脊。——非洲 2、最困难的事情就是认识自己。——希腊 3、有勇气承担命运这才是英雄好汉。——黑塞 4、与肝胆人共事,无字句处读书。——周恩来 5、阅读使人充实,会谈使人敏捷,写作使人精确。——培根
6、法律的基础有两个,而且只有两个……公平和实用。—伯克 7、有两种和平的暴力,那就是法律和礼节。——歌德
8、法律就是秩序,有好的法律才有好的秩序。——亚里士多德 9、上帝把法律和公平凑合在一起,可是人类却把它拆开。——查·科尔顿 10、一切法律都是无用的,因为好人用不着它们,而坏人又不会因为它们而变得规矩起来。——德谟耶克斯
软件工程思想—软件工程基本观念
软件工程思想—软件工程基本观念1. 引言软件工程是指应用工程原理、方法和技术来开发和维护软件系统的一门学科。
在软件工程领域中,有一些基本观念是非常关键的,它们帮助我们理解和应用软件工程的思想。
本文将介绍一些软件工程的基本观念。
2. 需求分析软件工程的第一个基本观念是需求分析。
需求分析是确定用户对软件系统的需求和期望的过程。
在需求分析阶段,我们需要深入了解用户的业务需求,理解用户的需求是如何影响软件系统的功能和性能的。
3. 概要设计概要设计是软件工程的另一个基本观念。
在概要设计阶段,我们需要定义系统的整体结构和模块之间的关系。
通过概要设计,我们能够清楚地了解系统的各个部分如何协同工作,从而更好地指导后续的详细设计和编码工作。
4. 详细设计详细设计是软件工程中的一个重要环节。
在详细设计阶段,我们需要根据概要设计确定的结构和模块,详细定义每个模块的功能和接口。
详细设计是为了保证系统的功能和性能能够得到有效实现。
5. 编码和测试编码和测试也是软件工程的基本观念之一。
在编码阶段,程序员根据详细设计的要求,编写出系统的各个模块的代码。
而在测试阶段,我们需要通过各种测试手段,验证系统的功能和性能是否符合需求。
6. 部署与维护部署与维护是软件工程中的一个基本观念。
在部署阶段,我们需要将开发好的软件系统安装到用户的计算机上,并进行必要的配置和调试。
而在维护阶段,我们需要根据用户的反馈和需求,对软件系统进行升级、修复和优化。
7.软件工程的基本观念是软件开发过程中的重要指导原则。
通过深入理解和应用这些基本观念,我们可以更好地进行软件开发工作,确保软件系统的质量和可维护性。
希望本文对读者对软件工程的理解有所帮助。
《软件工程》PPT课件
问题定义(续)
系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详 尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。 因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要 建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不 管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。 当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对 一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确 性。
快速原型(续)——类型之三
为了保证软件产品的质量,在总体设计和详细设计过程中,用 原型来验证总体结构或某些关键算法。如果设计方案验证完成后就 将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。 如果想把原型作为最终产品的一部分,原型和目标系统可使用同样 的程序设计语言。
快速原形的开发过程
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的 估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还 要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作 的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的 表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个
系统定义与用户 需求分析
原型设计 编码
完善原 型
测试原 型
产品系统的设 计实现
第三课时
喷泉模型 软件重用模型
第一章第三课时
喷泉模型
基于喷泉模型,Hodge等人提出将软件开发过程
划分为概念模型分析、系统设计、对象设计与实现、
测试和系统组装集成等五个阶段,它也体现出分析
和设计之间的重叠 ①概念模型分析:这个阶段主
软件工程思想—软件工程基本观念简版
软件工程思想—软件工程基本观念软件工程思想—软件工程基本观念1. 概述软件工程是一门关于开发、维护和管理软件的学科。
它涉及到一系列的活动,包括软件需求分析、设计、编码、测试和维护等。
软件工程的目标是提高软件开发过程的效率和质量,以满足用户的需求。
软件工程基本观念是指在软件工程实践中所遵循的一些核心思想和原则。
本文将介绍几个重要的软件工程基本观念,以帮助读者更好地理解和应用软件工程的思想和方法。
2. 模块化设计软件工程中的模块化设计是将软件系统划分为若干个独立且相对独立的模块,每个模块负责实现特定的功能。
模块化设计的优点包括提高代码的可读性和可维护性,方便团队合作和重用代码。
为了实现模块化设计,可以采用一些常用的设计原则,如单一职责原则、开闭原则和依赖倒置原则等。
通过合理地定义和划分模块,可以降低系统的复杂性,并提高系统的可扩展性和可测试性。
3. 面向对象编程面向对象编程是一种常用的软件开发方法,它将现实世界中的事物抽象为对象,并通过定义对象的属性和方法来描述其行为和特征。
面向对象编程的核心概念包括封装、继承和多态。
面向对象编程可以提高代码的重用性和可维护性,使得系统的结构更加清晰和模块化。
在实际开发中,可以利用面向对象编程的思想来设计和实现软件系统,以提高开发效率和减少错误。
4. 高内聚低耦合高内聚低耦合是软件工程中的一个重要原则。
高内聚指的是模块内部的各个元素之间具有较强的相关性和功能整合性,一个模块应该只负责一种功能,功能越单一,内聚性就越高。
低耦合指的是模块之间的依赖关系较弱,模块之间的影响性和耦合程度越小,系统越容易进行扩展和维护。
通过遵循高内聚低耦合的原则,可以使得系统更加稳定、易于测试和修改。
同时,高内聚低耦合也提高了团队的合作效率,每个成员可以独立开发和测试各自模块,降低了代码的冲突和风险。
5. 需求管理和变更控制软件工程中的需求管理和变更控制是确保软件项目按照用户需求开发和维护的关键活动。
《软件工程导论》课件
定义
软件维护是指在软件运行过程中,为了改 正错误、满足新的需求或改进性能等目的 ,对软件进行的修改和调整。
预防性维护
为了提高软件的可维护性和可靠性而进行 的维护活动。
改正性维护
为了纠正软件中存在的错误而进行的维护 活动。
完善性维护
为了扩充和增强软件功能而进行的维护活 动。
适应性维护
为了使软件适应外部环境的变化而进行的 维护活动。
介绍如何评估软件架构的合理性 、可扩展性和可维护性,以及如 何根据业务需求和系统规模选择 合适的架构。
架构设计原则
强调架构设计时应遵循的几个重 要原则,如模块化、开放-封闭原 则、单一职责原则等。
数据设计
数据模型
介绍常见的数据模型,如关系模型、面向对象模型、键-值存储模型等,以及它们的应 用场景和优缺点。
02
03
界面设计原则
交互设计
强调界面设计时应遵循的几个重 要原则,如用户友好、一致性、 可用性等。
介绍常见的交互方式,如按钮、 菜单、对话框等,以及如何通过 良好的交互设计提高用户体验。
05
CHAPTER
软件测试
单元测试
总结词
单元测试是对软件中的最小可测试单元进行检查和验 证,通常以函数或方法为单位进行测试。
详细描述
单元测试主要关注软件中的细节问题,检查单个函数 或方法的正确性、性能和边界条件等。通过单元测试 ,可以尽早发现代码中的错误和缺陷,提高软件质量 。
集成测试
总结词
集成测试是在单元测试的基础上,将多个模块或组件 组合在一起进行测试,以验证它们之间的集成是否正 常工作。
详细描述
集成测试的主要目的是检查模块之间的接口和通信是否 正常,以及是否存在潜在的缺陷或问题。通过集成测试 ,可以确保软件在组合时能够正常工作,满足设计要求 。
21598_软件工程ppt课件完整版
对软件开发过程进行持续改进,提高开发效 率和软件质量。
2024/1/25
质量改进
根据质量评估结果,制定相应的改进措施, 如优化性能、增强安全性等。
经验教训总结
对项目中遇到的问题和经验教训进行总结, 为后续项目提供参考。
27
06 项目管理与团队协作
2024/1/25
28
项目计划制定与监控
01
安全测试
验证软件产品的安全 性,如防火墙、加密 等安全机制的有效性 。
兼容性测试
测试软件在不同硬件 、操作系统、浏览器 等环境下的兼容性。
自动化测试
使用自动化工具进行 测试,提高测试效率 和准确性。
2024/1/25
24
测试用例设计与执行
01
02
03
04
设计测试用例
根据需求和设计文档,设计覆 盖所有功能和场景的测试用例
问题识别与分类
识别并分类待解决的问题。
问题分析与定位
分析并定位问题的原因。
2024/1/25
36
软件维护类型及流程
2024/1/25
修改与测试
对软件进行修改,并进行测试以确保 修改的正确性。
版本管理与发布
对修改后的软件进行版本管理,并发与方法
增量式演化
逐步增加新功能或修改现有功能。
一致性
保持界面风格、布局和操作流程的一致性,降低 用户的学习成本。
响应性
界面应能够快速响应用户的操作,提供流畅的用 户体验。
2024/1/25
21
编码实现
2024/1/25
编码规范
01
遵循统一的编码规范,包括命名规范、缩进风格、注释规则等
,提高代码的可读性和可维护性。
软件工程学教程PPT课件
04
DevOps实践案例
分享一些成功实施DevOps的案例 ,并分析其成功因素和经验教训
。
THANKS
感谢观看
持续集成与持续交付的实践
自动化构建、自动化测试、自动化部署等。
06
软件工程实践与方法论
软件开发团队组建与管理
团队角色与职责
明确项目经理、开发人员、测试 人员、文档编写人员等角色及其
职责。
团队沟通与协作
建立有效的沟通机制和协作流程, 确保团队成员之间的信息交流畅通。
团队培训与成长
提供必要的培训和发展机会,促进 团队成员的技能提升和职业发展。
编写详细的测试报告,包括测试覆盖 率、缺陷统计、性能分析等,为软件 质量评估提供依据。
05
软件维护与演化
软件维护概述
1 2
软件维护的定义
在软件已经交付使用之后,为了改正错误、改进 性能或其他属性、适应新的环境等而进行的修改 活动。
软件维护的分类
改正性维护、适应性维护、完善性维护和预防性 维护。
3
利用自动化测试工具编写和执行测试用例, 提高测试效率和准确性。
测试用例设计与执行
用例设计
根据需求文档和设计文档设计测试用 例,包括正常场景和异常场景的测试。
用例执行
按照测试用例的步骤执行测试,记录 测试结果并与预期结果进行对比。
缺陷管理
发现缺陷后提交缺陷报告,并跟踪缺 陷的修复过程和结果验证。
测试报告
软件工程学教程ppt课件
• 软件工程学概述 • 软件开发过程与模型 • 需求分析与设计 • 编码与测试 • 软件维护与演化 • 软件工程实践与方法论
01
软件工程学概述
第7章软件工程思想
TDD – 流程
第7章软件工程思想
持续构建和测试
❖ 系统的集成从写代码的第一天就开始,而且持续 集成
❖ 借助于持续集成,绝大多数缺陷在其引入的同一 天就可以被发现
❖ 每日验证,包含了持续的集成验证,可以配合每 日构建和持续集成的工作
❖ 在持续集成的驱动下,也加快了项目的进展 ❖ 良好的开发环境和自动化测试可以保证持续构建
第7章软件工程思想
软件危机
❖ 软件是高科技的智力产品,需要很高的创造性,但 还是不能抹去其工业性
❖ 软件质量问题直接危害到人们的生命财产、会造成 国家经济的严重损失,企业会为此付出很大的代价
❖ 艺术可以定义为“人类以创造美为主要目的的技术 及其产品”
第7章软件工程思想
本章内容
❖4.1 永远不可低估思想的作用 ❖4.2 以人为本 ❖4.3 软件开发不是一门艺术 ❖4.4 向传统工业学习 ❖4.5 软件工程的例外 ❖4.6 软件工厂思想
第7章软件工程思想
软件工程有什么不同?
第7章软件工程思想
4.5 软件工程的例外
❖4.5.1 迭代 ❖4.5.2 敏捷开发思想 ❖4.5.3 持续构建和集成 ❖4.5.4 永远的Beta ❖4.5.5 面向对象是一种思想 ❖4.5.6 软件工程应归为知识管理
第7章软件工程思想
为什么选择迭代?
❖ 市场的压力和竞争策略的需要 ❖ 产品开发的资金、周期和资源是有限的 ❖ 软件的复杂程度不断提高,增加了项目失败的可能
陷的活动 ❖ 在开发的每个阶段实施根本原因分析,
为有效开展缺陷预防活动提供依据
第7章软件工程思想
围绕项目开展工作
❖ 项目管理已经很成熟, 形成比较完整的体系
❖ 不管大大小小的事情, 都可以看作一个项目
软件工程思想
程序经理一般就是程序员队伍中最聪明的 那个家伙。
聪明人一定反应敏捷,善于接受新事物。他能 迅速进入一个新领域,给你一个头头是道的解 释。他提出的问题往往一针见血、击中要害。 他能及时掌握所学知识,并且博闻强记,他能 把本来认为互不相干的领域联系在一起使问题 得到解决。他富有创新精神与合作精神……
好的程序经理具备的条件
管理人员
第零级管理水平的人没有管理职务,就是 普通员工。 第一级管理水平的人是开发小组的组长, 可带领几名程序员工作。 第二级管理水平的人是项目经理。 第三级管理水平的人决定某些产品是否要 开发,以及如何去占领市场。
每个程序员都有明确的技术级别和管理级 别。技术级别与管理级别有一定的联系。 一般地,第一级技术水平的人只能做普通 员工;第二级技术水平的人可以当一名组 长;第三级技术水平的人可以当一名项目 经理;第四级技术水平的人可成为公司产 品的决策者。
作为应用软件领域的经理,克里斯·彼得斯也持同 样的看法。在他任Word项目总经理时就认为: 在 一些大公司内部,各部门经理把具体操作的层次 向下移。你一旦当上开发部门经理,很快就会以 自己身居高位、日理万机为由放弃编程;同样地, 开发小组的组长会以自己重任在肩而不愿编程; 至于程序员也会觉得自己十分繁忙、分身无术而 不再多编写程序。虽然我是270名员工的领导,似 乎不再需要做什么具体的工作了,但我还是为 Word新版本编写了一个特性。
线性模型太理想化,太单纯,已不再适合 现代的软件开发模式,几乎被业界抛弃。 但我们应该认识到,“线性”是人们最容 易掌握并能熟练应用的思想方法。线性是 一种简洁,简洁就是美。 当我们领会了线性的精神,就不要再呆板地 套用线性模型的外表,而应该用活它。
软件开发的基本策略
软件工程三十年的发展,已经积累了相当 多的方法,但这些方法不是严密的理论。 实践人员不应该教条地套用方法,更重要 的是学会“选择合适的方法”和“产生新 方法”。
第7章软件工程全解PPT课件
D.9
11
7.2面向对象技术基础
• 考点:面向对象分析与设计的基本概念,包括对象,类, 消息,继承,多态等
• 一、基本概念 1.对象 2.消息 3.类 4.继承 5.多态 6.动态绑定
12
• 二、面向对象分析与设计基本概念 1.面向对象分析(OOA):建立待开发软件系统的模型 2.面向对象设计(OOD):定义系统构造蓝图,并根据系
• A.这三个对象所存储的数据一定是不同的 • B.这三个对象所存储的数据一定是相同的 • C.这三个对象一定具有相同的操作 • D.这三个对象无法共享数据 • 2.下列关于超类,子类,基类的叙述中,正确的是 A • A.子类是超类的特化 B.基类是超类的特化 • C.基类是子类的特化 D.超类是基类的特化
描述了谁将使用系统以及用户期望以什么方式与系统交 互。 序列图:描述了在一个用例或操作的执行过程中以时间顺 序组织的对象之间的交互活动 通信图:强调收发消息的对象之间的结构组织。
14
• 状态图:展现了一个状态机,由状态、转换、事件和活 动组成,用于建模时间如何改变对象的状态以及引起对 象从一个状态向另一个状态转换的事件。
3
7.1 软件工程和项目管理基础
➢考点:软件工程和软件生存周期的概念,软件开 发 项目管理的基础知识
➢一、软件的生存周期 可行性分析和项目开发计划; 需求分析 软件设计 编码 测试和维护
4
二、软件开发项目管理基础知识
➢ 1.成本估算 (1)自顶向下估算方法 (2)自底向上估算方法 (3)差别估算方法
_7iX7n3C0yKIn5eejUpBn4dVAPMttK8UcWRNKHAQneYpivigBd aVWD_c5d0foeYRW_0RwIWSuZ4aBHMLkQq • 3.加工逻辑(小说明) • 1.结构化语言 • 2.判定表 • 3.判定树
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
持续改进过程
持续改进,正是冰冻非一日之寒,不 能三天打鱼、两天晒网
PDCA IDEAL DMAIC QIP
zhu.kerry@
PDCA
zhu.kerry@
IDEAL
zhu.kerry@
DMAIC
定义 测量 分析 改进 控制
zhu.kerry@gmarry@
缺陷预防
软件的劣质成本占开发的总成本在40%以上 如果第一次就把事情做对了,就消除了劣质成本 相比软件测试/质量检验,更有效的方法是开展预防缺
陷的活动
在开发的每个阶段实施根本原因分析, 为有效开展缺陷预防活动提供依据
确认过程:
Are we building the right product? 是否构造了正确的软件?即是否正 在做用户真正所需要的产品
zhu.kerry@
以架构设计为中心
软件架构设计决定了软件系 统的性能、可靠性、扩充性 和维护性等
良好的架构设计能适应用户 不同的需求、支持用户需求 的改变
zhu.kerry@
软件危机
软件是高科技的智力产品,需要很高的创造性,但 还是不能抹去其工业性
软件质量问题直接危害到人们的生命财产、会造成 国家经济的严重损失,企业会为此付出很大的代价
艺术可以定义为“人类以创造美为主要目的的技术 及其产品”
zhu.kerry@
zhu.kerry@
客户为导向
客户为导向就是以客户为中心,将客户的需求、期望 和关心作为组织管理的活动原则和价值准则,充分体 现了“以客户为关注焦点”的原则
客户为导向是一种文化,也是一种策略和方针。
满足客户的期望 超越客户的期望 一切从客户出发 体现在具体过程中 让客户参与到公司的质量管理中
zhu.kerry@
本章内容
4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想
zhu.kerry@
永远不可低估思想的作用
水流经管道的时候,它的形状是管道的形状;生 命的泉水流经你的时候,它的形状就是你的思想 的形状.思想决定行为,行为决定命运.因此, 要改变命运,就要改变行为;要改变行为,就是 改变思想。
挥每个人的潜力
管理中心从物本管理到人本 管理,经济人社会人
以人为本
管理学的佐证 由智力活动所决定 软件工程是知识工程
知识工程的管理就是一种人性化的 管理和全员参与的管理,组织的价
值需要每个人的价值体现出来
zhu.kerry@
本章内容
4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想
RUP也提倡“以架构设计为 中心”的理念
zhu.kerry@
本章内容
4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想
zhu.kerry@
围绕项目开展工作
项目管理已经很成熟, 形成比较完整的体系
不管大大小小的事情, 都可以看作一个项目
把一个个项目做好了, 就把整个工程做好了
围绕项目开展各项工作
项目
zhu.kerry@
验证和确认缺一不可
验证过程:
Are we building the product right? 是否正确地构造了软件?即是否正 确地做事,验证开发过程是否遵守 已定义好的过程规范。
它要多花费200倍的代价
zhu.kerry@
过程决定结果
质量不是检验出来的,而是构建出来的
有什么流程,就有什么结果 ,流程决定了结果
产品是构建于过程之中 自动化生产线就是一个很好
的例子
“七人分粥”故事
zhu.kerry@
过程活动决定了成本
zhu.kerry@
本章内容
4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想
zhu.kerry@
向传统产业学习什么?
zhu.kerry@
4.4 向传统工业学习
4.4.1 客户为导向 4.4.2 需求分析是基础 4.4.3 过程决定结果 4.4.4 持续改进过程 4.4.5 缺陷预防 4.4.6 围绕项目开展工作 4.4.7 验证和确认缺一不可 4.4.8 以架构设计为中心
zhu.kerry@
质量=客户满意度
zhu.kerry@
需求分析是基础
在传统的制造业,产品的每个新特性都 是经过仔细推敲后才确定下来
以客户为导向,最直接体现在客户需求工作之上 对需求不重视,导致软件开发的返工率很高、成本
高、质量低等一系列问题 在项目的最后阶段修正需求错误比在需求阶段修正
软件工程导论(7)
软件工程思想
zhu.kerry@
思想?
我们太过倾向于遵循 我们自己的乐观主义。 我们太喜欢忽视真理 的声音,而去听从万 灵药贩卖者的诱惑
zhu.kerry@
本章内容
4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想
软件工程思想决定了软件工程的策略和方法
zhu.kerry@
本章内容
4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想
zhu.kerry@
以人为本
尊重软件团队的每一个 人,调动每一个人的工 作激情和创造能力,发