一、简单题
1.软件工程的定义
- 系统地应用科学技术知识,方法和经验来设计,实施,测试和记录软件
- 一个系统的,规范的,可量化的方法来开发,运行的应用程序,以及维护的软件
- 一个涉及软件生产各个方面的工程学科
- 建立和使用合理的工程原理,以便经济地获得可靠的软件,并在真机上高效运行
2.阅读经典名著“人月神话”等资料,解释software crisis,COCOMO模型
- software crisis即软件危机,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。鉴于软件开发时所遭遇的困境,北大西洋公约组织(NATO)在1968年举办了首次软件工程学术会议并在会中提出“软件工程”来界定软件开发所需相关知识。
- Barry W.Boehm在他的1981年的书“软件工程经济学”中记录了这一领悟的几个关键进展并提出了一种软件成本估算方法,即建设性成本模型COCOMO。这种模型使用一种基本的回归分析公式,讲一个软件程序的开发工作量和源代码行相管理。他的COCOMO模型发现,团队质量时目前项目成功最大的决定因素,即软件成本的关键驱动因素时软件开发团队的能力。
3.软件生命周期
- 软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃的等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
4.按照SWEBok的KA划分,本课程关注哪些KA或知识领域
- 软件需求(software requirement)、软件设计(software design)、软件构筑(software construction)、软件工程工具与方法(software tools & methods)。
5.解释CMMI的五个级别。例如 Level 1 - Initial:无序,自发生产模式
Level 1 - Initial:无序,自发生产模式
Level 2 - Repeatable:建立基本项目管理过程,能重复类似项目成功经验
Level 3 - Defined:标准化,文档化
Level 4 - Managed:分析详细度量数据,有定量的理解和控制
Level 5 - Optimizing:过程的量化反馈和先进的新思想、新技术促使过程不断改进
6.简述CMMI
- CMMI是软件能力成熟度集成模型,它将现存实施的与即将被发展出来的各种能力成熟度模型集成到一个框架中。它致力于帮助企业对软件工程过程进行管理和改进,主要关注点是成本效益、明确重点、过程集中和灵活性四个方面。CMMI共有5个级别和25个过程域,5个级别是对软件能力的评级,数字越高,成熟度越高,代表综合软件能力越高。每个级别都有一定数量的过程域,过程域简单来说就是工程中具体要做好的某个方面,过程域要达到某个级别必须符合该级别所有过程域,且要达到一个级别,需要先达到上一个级别,这就意味着越高级需符合的过程域越多。
二、解释 PSP 各项指标及技能要求
PSP: Personal Software Process
PSP2.1
- Planning 计划
- Estimate 估计任务需要的时长
- Development 开发
- Analysis 分析需求
- Design Spec 生成设计文档
- Design Review 设计复审(和同时审核设计文档)
- Coding Standard 代码规范
- Design 具体设计
- Coding 具体编码
- Code Review 代码复审
- Test 测试
- Record Time Spent 记录时间花费
- Test Report 测试报告
- Size Measurement 计算工作量
- Postmortem 事后总结
- Process Improvement Plan 提出过程改进计划
软件工程师在接到任务后需要进行任务时间估计,需求分析,设计,具体编码,re-write,测试,总结时间,工作量,改进计划这些步骤。
这些需要我们有对全局观,有足够的编码水平。
我打算使用周数来计算统计每项任务花费的时间。