软件工程的定义
(1)将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。
(2)对(1)中所述方法的研究。——IEEE[IEE93]
software crisis、COCOMO 模型
软件危机是在计算科学的早期阶段使用的术语,表现了在需要的时间编写有用和高效的计算机程序的困难。 软件危机是由于计算机能力的快速增长以及无法解决的问题的复杂性导致的。 随着软件复杂性的增加,许多软件问题出现,是因为现有的方法不足。
建设性成本模型(COCOMO)是由Barry W. Boehm开发的程序性软件成本估算模型。 模型参数是通过使用历史项目数据拟合回归公式得出的(61个COCOMO 81项目和163个COCOMO II项目)。
软件生命周期
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。旧的解释是周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
- 软件需求分析
- 软件设计
- 软件工程工具和方法
- 软件开发过程
解释 CMMI 的五个级别
- Level 1 - Initial:无序,自发的生产模式。
- Level 2 - Repeatable:有基本的项目管理过程,管理化制度的生产模式。
- Level 3 - Defined:软件管理及工程过程化、标准化,有完善的培训和评价制度的生产模式
- Level 4 - Managed:分析度量数据,控制生产流程,管理预测性能的生产模式
- Level 5 - Optimizing:量化反馈、持续更新、改善流程,集中精力改进过程的生产模式
用自己语言简述 SWEBok 或 CMMI
CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型),是美国国防部的一个设想,1994年由美国国防部与卡内基-梅隆大学下的软件工程研究中心以及美国国防工业协会共同开发和研制的,他们计划把现在所有现存实施的与即将被发展出来的各种能力成熟度模型,集成到一个框架中去,申请此认证的前提条件是该企业具有有效的软件企业认定证书。
其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。
按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?
- 计划:估计任务需要多少时间
- 开发
- 分析需求
- 生成设计文档
- 设计复审 (和同事审核设计文档)
- 代码规范 (为目前的开发制定合适的规范)
- 具体设计
- 具体编码
- 代码复审
- 测试(包括自我测试,修改代码,提交修改)
- 记录时间花费
- 测试报告
- 计算工作量
- 事后总结
- 提出过程改进计划
需要的技能:编写代码、单元测试、效能分析、编写文档
如何统计:统计数据由个人自身统计和他人监督组成,比较科学