一.软件开发的本质
1、70%的项目是失败的(2005年的数据):质量差,超期,超预算,需求变更
2、软件本身是创造性开发行为的产品
软件工程本质问题体现在软件本身固有的困难
3、软件开发不可变的事实是(无能为力解决,只能承认接受):
- 1、complexity复杂性
- 2、conformity一致性:软件与平台,系统一致
- 3、Changeability(需求)可变性
- 4、invisibility(代码)不可见性
4、可变的意外困难,不会增加软件开发的复杂性
- 1、社会问题
- 2、提高软件的可适应性=可理解+可维护+可扩展
5、软件开发的意外事件与三个因素相关(可由人为干涉解决)
- Stakeholder利益相关者:客户,开发者两组,
- Process过程
- Modeling模型
-
ERP企业资源策划
-
构件是软件的一个可执行单元
1、Software process过程:在软件开发和维护过程中定义的活动和组织程序
-
1、迭代iterative(迭代完发布新版本)增量increamental(一次迭代的功能增加或减少)模型
- 1、需要提前做好计划和控制,和预定义的设计框架保持一致
- 1、螺旋模型:包含了RUP,MDA,敏捷开发模型
- 2、RUP(retional统一过程):支持环境;RUP平台提供文本,概念,开发思路
- 3、MDA(模型驱动的体系结构)基于可执行规格说明
- 4、敏捷开发过程
- 5、面向方面的软件开发
- 1、需要提前做好计划和控制,和预定义的设计框架保持一致
-
2、能力与成熟度模型(Capability Maturity Model ,CMM)用于过程评估和改进 的流行方法。
- 第一级:初始级initial走到哪算到哪,没有特定的规则,大部分都在第一级
- 第二级:可重复级repeatable,靠经验每一次用相同的方法,东软
- 第三级:定义级defined,已经定义好了规则,不到整个软件企业总量的10%
- 第四级:管理级managed,对整个每一步的过程增加了监控,亚马逊
- 第五级:优化级optimizing,对整个过程或标准优化的策略,基本是军方企业
·ISO 9000质量标准系列——工业生产的通行标准;应用于质量管理和过程
- 1、如果过程是正确的,那么结果一定是正确的,即关注产品质量问题
- 2、强调必须完成什么,没强调必须怎么执行
·IT基础架构库(ITIL)
- 1、高效的利用people,processes,products,partners
- 2、致力于方案交付和管理的操作方便
- 3、持续的服务改进方案(continuous service improvement programme,CSIP),用来实现解决 方案管理的ITIL方法。该方案以实现高水平业务目标的决心为起点,接着检查是否达到 里程碑,并通过巩固已达到的改进和持续任务循环而保持发展的势头。
优质业务改进取决于软件质量因素
·COBIT框架(控制目标信息和相关技术),了解
- 1、偏向于产品标准
- 2、侧重组织需要做什么,而非如何去做
- 3、将相关的IT工作组织到4个领域
- 1、规划与组织
- 2、获取与实现
- 3、交付与支持
- 4、监控
</