1.简单题
软件工程的定义
软件工程指使用系统化的,规范化的,可度量的方法来指导软件设计,开发,测试,运行,维护流程的工程化应用。
软件危机和 COCOMO 模型
软件危机指落后的,个人化的生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发和维护中出现一系列严重问题的现象。
COCOMO 模型全名“构造性成本模型”(Constuctive Cost Model),是由Barry Bohem提出的一种软件成本估算方法。它使用一种基本的回归分析公式,将项目历史和现状中的某些特征作为参数来计算。
软件生命周期
软件生命周期是指软件的产生直到成熟的全部过程。通过使用软件生命周期模型,即人们为了开发更好的软件而归纳总结的软件生命周期的典型实践参考,可以更好地指导软件开发。
本课程(系统分析与设计)关注的SWEBok KA
包含Software requirement,Software design,Software engineering management,Software engineering models and methods,Software quality,Software engineering professional practice 和 Computing foundations,Mathematical foundations,Engineering foundations.
解释 CMMI 的五个级别
Level1 - Initial(初始级):过程无序,不可预测,控制和反应程度相当低。
Level2 - Managed(可管理级):过程以项目为特征,并且反应程度比较高。
Level3 - Defined(已定义级):过程以组织化为特征,并且积极主动。(项目调整从组织规范中调整他们的过程)
Level4 - Quantitatively Managend(量化管理级):过程可度量化并且可控
Level5 - Optimizing(优化级):集中于过程的改进。
用自己语言简述SWEBok 或 CMMI(约200字)
CMMI 全称 “能力成熟度模型集成”(Capability Maturity Model Integration),是一种过程改进方法。最开始由CMU的软件工程研究所的一组专家开发,面向软件工程,但是近年来被高度一般化。
CMMI一般将成熟度分为五个阶段,从低到高依次为 Initial,Managed,Defined,Quantitatively Managed 和 Optimizing。Initial 描述组织的初级状态,无序,生产不可预测,管理程度低。Managed 描述了使用项目对过程进行管理,提高了管理程度的阶段。Defined 描述了使用组织规范来调整过程的阶段。Quantitatively Managed 描述了可度量化的管理。 Optimizing 则描述了集中于改进的阶段。
组织可以通过使用 CMMI,对自己的产品进行评估,了解自己的产品此时属于 CMMI 的哪个阶段,并寻找到可以做出改进的点,向下一个阶段迈进。
2.解释 PSP 各项指标及技能要求
PSP 2.1 包含 计划,开发,报告三个阶段。计划主要是对任务时间进行评估。开发包含需求分析(学习新技术等),生成设计文档,设计复审,制定代码规范,具体设计,具体编码,代码复审和测试。报告包含测试报告,计算工作量,事后总结并提出修改计划。
技能要求包括对具体技术的掌握和动手能力,对问题领域的知识和经验的积累,通用的软件设计思想和软件工程思想的提高,自我管理的能力,表达和交流的能力,与人合作的能力,把任务按质按量完成的执行力,
统计数据采用记录下每个阶段的开始时间和结束时间,便可以得出每个阶段的时间。开始时间由程序员自己设定,结束时间则根据每个阶段的结束标志的提交时间来定,且一旦设定之后便不允许修改,确保数据的准确性。