开放环境下软件维护成本估算问题研究实践分享

  • 格式:pdf
  • 大小:1.43 MB
  • 文档页数:37

下载文档原格式

  / 37
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 连续排优
– Kanban, DevOps
• 演化定义开发
– Incremental Commitment Spiral, Rational Unified Process
• Continuous reprioritization • 全并发: Open Source
•5
演化的开发人员
• 系统分析与开发 • 领域经验 • 开发语言和工具 • 过程的成熟能力 • 开发团队的能力和人员流失 • 对Apps, Widgets, Social Media, Data Analytics,
– 我们会发现修改几行代码的成本千差万别; – 传统的基于需求跟踪矩阵手工建立和跟踪制品关系的方式,
已经无法满足软件维护时精细的数据分析、问题定位和决策 支持!
– 重用驱动
• Adjusted for %Design,Code,Test Modified, Understandability
– 产品线
• % Development for Reuse; % Development with Reuse
软件维护的成本估算
• 挑战 1;如何去估算缺陷定位时的工作量?
A Case Study • 我们应该做什么
软件演化的成本
案例:Site Defense BMD Software
• 概要信息
– 5 builds, 7 years, $100M; operational and support
software
20000
– Build 1 productivity over 300 LOC/person month18000
– 专家估算法
• Planning Poker, Wideband Delphi, Bottom-Up
– 分类比较法
• 基于历史的类似项目 • Agile COCOMO II, Case-Based Reasoning, IDPD
– 参数模型
• COCOMO/COSTAR, Knowledge Plan, SEER, SLIM, True-S
16000
– Build 5 productivity under 150 LOC/PM
14000
• Including Build 1-4 breakage, integratioCnu,mreuwlaotrikve 12000 • 318% change in requirements across all bKuSildLsOC 10000 • IDPD factor = 20% productivity decrease per build 8000
• 基于产品线的开发
– Reused, Modified, Generated SLOC or FP
• 非开发采用(Non-Developmental Items -NDI)
– Cloud Services – Commercial Off-the-Shelf (COTS), Open Source – Costing: Assessment, Tailoring, Glue Code, New-Release
• 成本效益(Cost-Effectiveness)
– Development and Maintenance Cost, Schedule; Reusability
10/19/2016
•4
演化的软件过程
• 顺序模型
– Waterfall, V-Model
• 迭代增量模型
– Most agile methods: XP, Scrum, Crystal , SAFE – Pre-Planned Product Improvement (P3I)
开放环境下软件维护成本估算 问题研究实践分享
软件持续演化
• 软件无处不在,持续演化,并且永远的Beta版
1939’s Science Fiction World of 2000
Actual World of 2000
图片来源:Barry Boehm
演化的软件质量属性
• 可信性
– Reliability, Availability, Safety, Security
Multimedia, Virtual Reality的熟习程度
10/19/2016
•6
演化的产品部件和开发方法
• 开发、重用、自动生成
– Source Lines of Code (SLOC), Function Points (FP) – Reused: Equivalent SLOC – Generated: Model Directives
6000
4000
0% productivity decline 10% productivity decline 15% productivity decline 20% productivity decline
• Assumes finally reach 8M SLOC, Build 1
2000 0
production of 2M SLOC @ 100 SLOC/PM
12345678
– 20000 PM/ 24 mo. = 833 developers
Build
– Constant staff size for all builds
案例来源:Barry Boehm
•10
典型的成本估算方法
• 传统的估算都是以代码规模为前提,譬如
Adaptation
10/19/2016
wenku.baidu.com
•7
软件在演化中生长完善
• 随需而变,按需服务 —7*24 小时不间断运行 • 敏捷开发,快速演化—所见即所得 • 交互体验,提升质量—对质量问题的容忍度下降
所有质量都是有成本的
8
Agenda
• 软件持续演化 • 软件演化维护的成本 • 开源软件维护成本估算—— A SLR • 开放环境下软件缺陷修复的时间分析 -
• 可变性
– Adaptability, Maintainability, Modifiability, Repairability
• 运行质量
– Response Time, Throughput, Accuracy, Usability, Scalability, Interoperability