1. 简答题
- 软件工程的定义:将系统化的、规范的、可度量的方法应用于软件的开发,运行和维护的过程中,即将工程化应用于软件中。以及对以上定义中各种方法的研究。
- 解释software crisis,COCOMO模型。
1) software crisis:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括来说,软件危机包含两方面问题:如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。
2) COCOMO模型:构造性成本模型,是一种精确的、易于使用的,基于模型的成本估算方法。本质上是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本)。
- 软件生命周期:软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。通常,把软件从开始研制(形成概念)到最终软件被废弃不用这整个阶段称为软件的生存期。
- 按照SWEBok的KA划分,本课程关注哪些KA或知识领域?
我认为本课程主要关注的过程:软件需求,软件设计,软件构造,软件工程管理,软件工程过程,软件工程工具和方法,软件质量。
- 解释CMMI的五个级别。例如Level 1 - Initial:无序,自发生产模式。
Level 1 - 初始级:软件过程是无序的,混乱的,对过程几乎没有定义,管理者是反应式的。
Level 2 - 可管理级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
Level 3 - 已定义级:已经将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
Level 4 - 量化管理级:分析详细度量数据,对软件过程和产品都有定量的理解和控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测功能。
Level 5 - 优化管理级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
- 用自己语言简述SWEBok或CMMI(约200字)。
SWEBok,也就是软件工程知识体系指南,是由IEEE计算机学会的委员会主持的一个项目,目的是为了使得软件工程向职业化状态演化。其中,SWEBok包括软件需求、软件设计、软件构筑、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法以及软件质量等九个方面的知识领域,并设计计算机科学、数学、项目管理、计算机工程、系统工程、管理与管理科学等七个辅助领域。
总体来说,SWEBok将多个学科交叉、内容复杂的软件工程整个过程所涉及的思考与实践内容进行了归类,并总结出各个领域的任务与职能——即知识领域,同时提出了相关的辅助软件工程研究与发展(或者说是软件工程过程可能会利用到)的学科——所谓的辅助领域。
2. 解释PSP各项指标及技能要求
- 阅读《现代软件工程》PSP:Personal Software Process 章节。
- 按表格 PSP 2.1,了解一个软件工程师在接到一个任务后要做什么,需要哪些技能,解释你打算如何统计每项数据?
下表为 PSP 2.1,即表示了一个软件工程师在接到任务后应该做的。
个人认为比较科学的方法是,从接到任务开始,就建立一个相关文档,及时保存工作计划与每一次工作的进度,并不断结合前面的工作进行总结,并且因情况制宜,适当地调整任务的计划。最后,在全部任务的内容完成后,再次总结分析这份文档。