一、简单题
1、软件工程的定义
软件工程 (Software Engineering) 是一门研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
2、阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
software crisis,即软件危机,是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。
COCOMO模型,即构造性成本模型,是由巴里·勃姆提出的一种软件成本估算方法。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。
3、软件生命周期。
软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
4、按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
software requirements
software design
software construction
software engineering management
software engineering tools and methods
…
5、解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
1. 初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
2.可管理级
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
3. 已定义级
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
4. 量化管理级
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
5. 优化管理级
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
6、用自己语言简述 SWEBok 或 CMMI (约200字)
SoftWare Engineering Body Of Knowledge, 即软件工程知识体系,是由多个行业成员和团体合作建立的一种国际标准,用于说明软件工程知识体系指南。
软件工程知识体系从2004年建立开始,经过了数次的版本迭代,其体系下知识领域也在不断细化与扩展。
知识体系在软件工程领域内定义了许多知识领域,到目前为止的版本一共定义了15个KAs,包括软件需求、软件设计、软件构件、软件测试、软件维护等软件工程体系下的细分领域。同时知识体系内也有已提及但未定义到的相关领域,包括计算机工程、系统工程、项目管理、数学等专业领域。
二、解释 PSP 各项指标及技能要求:
阅读《现代软件工程》的 PSP: Personal Software Process 章节:
http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
软件工程师需要完成的工作:任务计划;需求分析;根据分析设计文档、代码规范等;根据文档进行程序开发;开发完成后进行复审、测试;总结工作等。
需要统计的数据有:时间花费以及工作量。可将需求设计为日程安排,细化每天的任务量,这样就能够统计出每一项工作所花费的时间。在工作量的计算上,需要将各个阶段分开来统计,以便后续总结优化。