软件工程思想

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

管理中心从物本管理到人本 管理,经济人社会人 以人为本
管理学的佐证 由智力活动所决定 软件工程是知识工程
知识工程的管理就是一种人性化的 管理和全员参与的管理,组织的价
值需要每个人的价值体现出来
http://blog.csdn.net/Kerryzhu
本章内容
4.1 永远不可低估思想的作用
wk.baidu.com
http://blog.csdn.net/Kerryzhu
知识管理体系
个体知识组织化 隐性知识显性化 零散知识系统化
http://blog.csdn.net/Kerryzhu
本章内容
4.1 永远不可低估思想的作用
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
中间件
中间件(middleware)可以看作是面向构件的开发思 想的一个实例,或者说是软件复用思想的延伸 中间件可以为不同领域内的应用提供系统结构上的支 持和标准的服务组件等 中间件已成为许多标准化工作的主要部分
永远不可低估思想的作用
水流经管道的时候,它的形状是管道的形状;生 命的泉水流经你的时候,它的形状就是你的思想 的形状.思想决定行为,行为决定命运.因此, 要改变命运,就要改变行为;要改变行为,就是 改变思想。
软件工程思想决定了软件工程的策略和方法
http://blog.csdn.net/Kerryzhu
PDCA
IDEAL
http://blog.csdn.net/Kerryzhu
DMAIC
定义 测量 分析 改进 控制
http://blog.csdn.net/Kerryzhu
QIP
http://blog.csdn.net/Kerryzhu
缺陷预防
软件的劣质成本占开发的总成本在40%以上 如果第一次就把事情做对了,就消除了劣质成本 相比软件测试/质量检验,更有效的方法是开展预防缺 陷的活动 在开发的每个阶段实施根本原因分析, 为有效开展缺陷预防活动提供依据
客户为导向是一种文化,也是一种策略和方针。
满足客户的期望 超越客户的期望 一切从客户出发 体现在具体过程中 让客户参与到公司的质量管理中
质量=客户满意度
需求分析是基础
在传统的制造业,产品的每个新特性都 是经过仔细推敲后才确定下来
以客户为导向,最直接体现在客户需求工作之上 对需求不重视,导致软件开发的返工率很高、成本 高、质量低等一系列问题
http://blog.csdn.net/Kerryzhu
软件复用
软件复用就是设法使用已有的软件组成元素来构成新 的系统,以减少软件开发所需的费用和时间,提高 软件的可维护性和可靠性
基于软件函数库的软件复用 生成方式,即对模式的复用 组装方式
http://blog.csdn.net/Kerryzhu
从第一天开始持续构建
http://blog.csdn.net/Kerryzhu
永远的Beta
“永远的Beta”正在成为互联网软件开发的主流思 想之一,创造一个更为灵活、发展更为迅速的软 件工程环境
简单、朴素的Web 2.0思想 “追求卓越、永无止境”的境界 对持续构建的发展 充分挖掘大众的智慧和体验
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
4.6 软件工厂思想
http://blog.csdn.net/Kerryzhu
软件危机
软件是高科技的智力产品,需要很高的创造性,但 还是不能抹去其工业性 软件质量问题直接危害到人们的生命财产、会造成 国家经济的严重损失,企业会为此付出很大的代价 艺术可以定义为“人类以创造美为主要目的的技术 及其产品”
围绕项目开展工作
项目管理已经很成熟, 形成比较完整的体系 不管大大小小的事情, 都可以看作一个项目 把一个个项目做好了, 就把整个工程做好了 围绕项目开展各项工作
项目
http://blog.csdn.net/Kerryzhu
验证和确认缺一不可
验证过程:
Are we building the product right? 是否正确地构造了软件?即是否正 确地做事,验证开发过程是否遵守 已定义好的过程规范。
“七人分粥”故事
http://blog.csdn.net/Kerryzhu
过程活动决定了成本
http://blog.csdn.net/Kerryzhu
持续改进过程
持续改进,正是冰冻非一日之寒,不 能三天打鱼、两天晒网
PDCA IDEAL DMAIC QIP
http://blog.csdn.net/Kerryzhu
格言
“沟通、简化、反馈、激励”
Kent Beck
XP
Lifecycle
-生命周期
TDD - Test-Driven Development测试驱动开发
开始 代码重构 重新执行测试 直到“Pass” 写代码 为新功能 写测试脚本 编译
修正编译错误
执行测试 查看结果(失败)
TDD – 流程
http://blog.csdn.net/Kerryzhu
面向对象是一种思想
封装、继承性和多态性 从具体到抽象,再从抽象到具体 需求定义更彻底 改善软件的稳定性和可维护性
http://blog.csdn.net/Kerryzhu
面向对象的编程语言
http://blog.csdn.net/Kerryzhu
4.5 软件工程的例外
4.5.1 迭代 4.5.2 敏捷开发思想 4.5.3 持续构建和集成 4.5.4 永远的Beta 4.5.5 面向对象是一种思想 4.5.6 软件工程应归为知识管理
http://blog.csdn.net/Kerryzhu
为什么选择迭代?
市场的压力和竞争策略的需要 产品开发的资金、周期和资源是有限的 软件的复杂程度不断提高,增加了项目失败的可能 性,将一个产品进行分阶段处理,可以尽早发现产 品的市场问题或方向错误,降低风险。 对于越来越复杂、庞大的系统,多数情况下不容易 一次性整体实现,而是通过分解逐步实现。 软件比较容易修改或扩充,在技术上可以保证软件 迭代的可行性。
一个惊人的数字 如果在项目执行的最后再来修正错误,那么可能 比在项目的需求阶段就修正错误,多付出多少的 代价?
一个惊人的数字 在项目的最后阶段修正需求错误比在需求阶段修 正它要多花费200倍的代价
http://blog.csdn.net/Kerryzhu
过程决定结果
质量不是检验出来的,而是构建出来的 有什么流程,就有什么结果 ,流程决定了结果 产品是构建于过程之中 自动化生产线就是一个很好 的例子
本章内容
4.1 永远不可低估思想的作用
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
4.6 软件工厂思想
http://blog.csdn.net/Kerryzhu
以人为本
尊重软件团队的每一个 人,调动每一个人的工 作激情和创造能力,发 挥每个人的潜力
4.4.4 持续改进过程
4.4.5 缺陷预防 4.4.6 围绕项目开展工作 4.4.7 验证和确认缺一不可 4.4.8 以架构设计为中心
http://blog.csdn.net/Kerryzhu
客户为导向
客户为导向就是以客户为中心,将客户的需求、期望 和关心作为组织管理的活动原则和价值准则,充分体 现了“以客户为关注焦点”的原则
模块化思想
“化繁为简”朴素思想的一种表现 将复杂的系统分解为相对简单的模块,对单一模块容易 各个击破 新产品(系统) = 通用模块(不变的部分) + 专用模 块(变动的部分) 模块能标准化和通用化
面向构件思想
面向构件是一种前沿的软件设计思想,将成熟的工业 化生产中标准构件、组装、自动化生产线等概念引入 到软件开发过程中,并吸收了软件开发的结构化方法 和面向对象方法中的一些优点而形成的 面向构件的思想体现在需求和设计的层次上 构件是可独立配置的单元 构件的实现是严格封装的 构件可以在适当的环境中被复合使用 面向构件思想还强调程序在动态运行时构件的 自动装载 ,和“软件工厂”的概念已非常接近
http://blog.csdn.net/Kerryzhu
迭代
增量开发
迭代
迭代开发流程
螺旋模型
RUP模型
XP-eXtreme Programming极限编程
最简单的可能就是最有效的 极限编程适合
小团队 (2-10 programmers) “高风险” 快速变化或不稳定的需求 强调可测试性
软件工程导论(4) 软件工程思想
http://blog.csdn.net/Kerryzhu
思想?
我们太过倾向于遵循 我们自己的乐观主义。 我们太喜欢忽视真理 的声音,而去听从万 灵药贩卖者的诱惑
http://blog.csdn.net/Kerryzhu
本章内容
4.1 永远不可低估思想的作用
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
4.6 软件工厂思想
http://blog.csdn.net/Kerryzhu
软件工厂存在吗?
4.6 软件工厂思想
4.6.1 4.6.2 4.6.3 4.6.4 4.6.5
模块化思想 面向构件思想 软件复用 中间件 自动化无处不在
http://blog.csdn.net/Kerryzhu
http://blog.csdn.net/Kerryzhu
本章内容
4.1 永远不可低估思想的作用
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
4.6 软件工厂思想
向传统产业学习什么?
4.4 向传统工业学习
4.4.1 客户为导向 4.4.2 需求分析是基础 4.4.3 过程决定结果
http://blog.csdn.net/Kerryzhu
本章内容
4.1 永远不可低估思想的作用
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
4.6 软件工厂思想
软件工程有什么不同?
http://blog.csdn.net/Kerryzhu
4.6 软件工厂思想
http://blog.csdn.net/Kerryzhu
本章内容
4.1 永远不可低估思想的作用
4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外
4.6 软件工厂思想
http://blog.csdn.net/Kerryzhu
确认过程:
Are we building the right product? 是否构造了正确的软件?即是否正 在做用户真正所需要的产品
http://blog.csdn.net/Kerryzhu
以架构设计为中心
软件架构设计决定了软件系 统的性能、可靠性、扩充性 和维护性等 良好的架构设计能适应用户 不同的需求、支持用户需求 的改变 RUP也提倡“以架构设计为 中心”的理念
软件工程知识管理
软件工程是一种智力活动,应归为知识工作和 管理,是因为其符合知识工作的特点
需要同化和集成的概念 工作是和人打交道 能产生无形的智力产品
http://blog.csdn.net/Kerryzhu
知识管理的原则
工作人员了解自己的工作,或者说比其他人员(如 管理人员)更理解自己的工作 对于开发人员不能完全靠工作成果的量化来完成绩 效考核,不能实施计件工资等,所以必须让知识工 作人员管理自己,这样才能真正发挥他们的潜力 需要不断激励他们,不断指导和帮助他们,培养他 们的领导力
http://blog.csdn.net/Kerryzhu
持续构建和测试
系统的集成从写代码的第一天就开始,而且持续 集成 借助于持续集成,绝大多数缺陷在其引入的同一 天就可以被发现 每日验证,包含了持续的集成验证,可以配合每 日构建和持续集成的工作 在持续集成的驱动下,也加快了项目的进展 良好的开发环境和自动化测试可以保证持续构建 和测试的实现
相关文档
最新文档