软件工程案例分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
27
软件开发面临的挑战
处理最终日期(deadlines)(85%) 处理资源约束(83%) 与任务小组有效的沟通(80%) 从小组成员处得到承诺(74%) 建立可测量的milestone(90%) 处理变化(60%) 得到团队公认的项目计划(57%) 从管理层得到承诺(45%) 处理冲突(42%)管理销售商和子项目承包商
部分优化
– 例如:可能很高效,但是难于修改
社会技术系统
– 软件项目属于此类
.
26
软件项目中的人员
wenku.baidu.com
项目影响者(stakeholders)
– 项目小组内部:
– 项目小组外部,但是在同一组织内:
– 项目小组和组织外部:如客户
不同的项目影响者有不同的目标,因而项 目领导者需要能够协调这些目标。Boehm 和Ross提出软件项目管理的“W理论”, 该理论关注于所有各方都能从项目种获益 因而对项目的成功都有兴趣。(W代表 Everyone a Winner)
• “这是一个死亡行军项目,我希望自己不要参与进去”
.
8
软件危机
更准确的说法:慢性痛苦(chronic affliction) Suggested by Prof. Daniel Tiechrow, University of Michigan
尽管忍受痛苦,但是软件依然在我们这个 世界起着越来越重要的作用,但是如果能 够医治痛苦,那么软件业将发展得更加健 康。
–一致性
软件项目管理
– 为了使软件项目能够按照预定的成本、进度、质量顺 利完成,而对成本、人员、进度、质量、风险等进行 分析和管理的活动。
.
23
软件项目的活动
需求分析
描述
设计
编码
校验
安装
维护
支持
.
24
软件项目分类
按软件类别
– 信息系统:与组织接口 – 嵌入式系统:接口是机器 – 操作系统是一个信息系统还是嵌入式系统?
3000多个工程师,几百个小团队。
Exchange2000和 Windows2000开发人员结构
项目经理
Exchange2000 25人
Windows2000 约250人
开发人员
140人
约1700人
测试人员
350人
.
约3200人
13
“软件工程案例分析”课程与其 它软件专业课的区别
(1) 立足于系统的整体。
软件开发过程的标准化
.
17
软件工程技术的两个明显特点
• 强调规范化
• 强调文档化
.
18
新世纪软件产业的趋势
• 网络化趋势:计算机与通信的融合趋势
万维网智能网络
•服务化趋势:“打包式”软件 “服务式”
软件
• 全球化趋势
.
19
中国软件产业发展主要问题
产业规模小、集中度低 产业竞争力弱,缺乏核心技术 市场秩序较为混乱,盗版严重
– 1999 年 10 月,耗资 1.25 亿美元的 NASA 的 火星气象卫星失踪(公英制转换)
.
6
软件危机
一些数据:
– 大约70%的软件开发项目超出了估算的时间, 大型项目平均超出计划交付时间20%到50%, 90%以上的软件项目开发费用超出预算,并且 项目越大,超出项目计划的程度越高
– 美国政府审计局:只有不到2%的合同定购软 件在发布时具有可用性——98%以上的项目都 失败了
软件工程案例分析
陈天洲 浙江大学计算机学院
.
1
软件特征(1)
最根本的:软件是一种逻辑元素而不是物理元素
软件是开发出的,而不是用传统的方法制造出来 的
软件不会被用坏
失败概率
一般产品的浴盆曲线
时间
.
2
软件特征(2)
失败 概率
软件失败概率 实际曲线
软件失败概 率理想曲线
时间
.
3
软件特征(3)
工业界已经走向了标准化装配时代,然而 绝大多数软件还是定制出来的。
.
20
制约软件产业发展的因素
软件开发规范与标准 知识产权环境 知识结构 公司体制
.
21
项目与项目管理
项目是什么
– 没有例行的任务
– 需要计划
– 特定的目标需要满足或者特定的产品需要生成
– 项目有一个预定义的时间范围
– 工作不仅仅是为自己,也是为他人
– 工作中有些特性
– 工作分为若干阶段
.
7
软件危机
一种看法
– “两难境地(Crunch Mode)”:处于两难境地的项 目面临无法达到最初目标的威胁(费用、进度表、功 能性等),而项目团队努力想跨越困境。
• “我们正处于两难境地,在半夜之前是不会回家”
– “死亡行军(Death March)”:用来描述其进度表 几乎不可能完成的项目。
.
9
软件危机的主要特征
软件开发周期大大超过规定日期; 软件开发成本严重超标; 软件质量难于保证
.
10
软件成功的标准
用户在用 用户可很容易做完要做的事
失败的根本原因: 开发人员写出的东西达不到 用户要求(人的问题.技术问题)
.
11
软件技术面临的问题
• 规模 • 复杂性 • 生产率
.
12
例:•Windows95有1000万行代码 •Windows2000有5000万行代码,
– 科学计算函数库(60年代) – 重用数据结构 – 重用组件
.
4
成本结构发生了巨大的变化
一次性的制造成本 介质成本的可忽略性-逻辑产品 不可回逆的投入 维护成本的增加 服务是质量要素中的重点
.
5
软件危机
“软件危机” 是1958年在NATO会议上作 为一个正式的议题被提出来
软件项目不成功的例子比比即是:
有些项目是为了生成某一产品,而某些项 目的进行是为了达到某些目标。许多软件 项目分为两个阶段,第一阶段是目标驱动, 第二阶段再生成真正的软件产品。
.
25
从系统的角度看软件项目
一个项目关注于生成一个系统和/或将一个旧系统 转换为一个新系统
系统,子系统和环境 开放和封闭系统
– 项目失败的一个原因是技术人员不能够开放系统和立 即接受外界的变化。
– 项目完成需要资源
– 项目是大型的或者复杂的
项目管理是什么
– 项目管理是在项目活动中应用知识,技能,工具和技术
来满足项目需求的过程,它通过初始化,计划,执行,
控制和结束等活动来完成。.
22
软件项目与软件项目管理
软件项目的特征
– 不可见 – 复杂性(以每一单位货币来看) – 灵活性:软件去适应人或组织而不是相反
(2) 系统分析、系统设计、 测试及维护的方法实践。
(3) 构筑一个软件系统,实践 软件开发全过程。
.
14
系统分析员的地位
用户
分析员
程序员
.
15
“一个好的工业,应有一套 良好的标准来配套”
软件工业化生产过程应具备的特点
–明确的工作步骤 –详细具体的规范化文档 –明确的质量评价标准
.
16
软件产品的标准化