简单题
软件工程的定义
软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件;以上内容的研究
阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
software crisis:软件危机指的是在软件开发中遇到的一系列严重问题,这些问题可能会导致软件产品的寿命缩短,甚至夭折。随着软件规模的不断增大以及计算机性能的持续增加,许多的软件项目都因缺乏一个具体有效的管理手段而面临着以上的问题。
COCOMO 模型:它是一种精确、易于使用的,基于模型的成本估算方法。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本。
软件生命周期
软件分析时期、软件设计时期、编码与测试时期、运行与维护时期
按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
软件需求、软件设计、软件构造、软件工程过程、软件工程工具和方法
解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
- 无序的、混乱的
- 有了基本的项目和必要的过程纪律,可以重复成功经验
- 将过程文档化、标准化,整个过程可见
- 对整个过程和质量有详细的度量数据,对过程有定量的理解和控制
- 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进
用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI,软件成熟度模型,在软件开发的不断发展过程中,人们逐渐意识到软件开发的过程和管理上的规范对一个软件产品最终的成败起到一个至关重要的作用。因此,为了改善软件生产过程,人们采用能力模型来指导组织的过程改进,使之过程能力稳定地进行改善。它的本质是软件管理工程的一个部分,它为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。从而能够从总体上改进组织的质量和效率。
解释 PSP 各项指标及技能要求:
阅读《现代软件工程》的 PSP: Personal Software Process 章节。按表格 PSP 2.1,了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
在接到一个任务之后,需要:
计划
估计这个任务需要多少时间
计划的数据,将以文档的方式展现,因此在进行数据统计时,只需要将具体文档的页数和花费时间等进行统计即可
开发
分析需求、生成设计文档、设计复审 (和同事审核设计文档)、代码规范 (为目前的开发制定合适的规范)、具体设计、具体编码、代码复审、测试(包括自我测试,修改代码,提交修改)
开发阶段的主要产出是代码,因此需要考虑代码量,以及修改的次数,解决的代码问题数目,在编码上耗费的时间以及完成的模块数和模块大小等因素来进行数据的统计;涉及到文档的内容,可以考虑用文档的质量和数量进行评估和统计
记录时间花费
- 测试报告
- 计算工作量
- 事后总结
- 提出过程改进计划