1、简单题
- 软件工程的定义
软件工程:(1)将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)对(1)中所述方法的研究。——IEEE[IEE93]
- 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
软件危机:是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。软件危机的本源是复杂、期望和改变。
COCOMO模型:构造性成本模型(Constructive Cost Model)是由巴里·勃姆(Barry Boehm)提出的一种软件成本估算方法,用于软件项目的计划阶段。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。由于模型是根据“从前的”,“局部的”数据得出的,估算模型不可能完全适用于当前所有的软件项目和全部开发环境。这些模型的计算结果仅供参考。
- 软件生命周期
计算机软件有一个孕育、诞生、成长、成熟、衰亡的生存过程,即软件的生命周期 (也称软件开发生命周期或软件开发过程)。软件生命周期被划分为若干阶段,每个阶段有明确的任务,从而使规模、结构和管理复杂的软件开发过程得到适当的控制和管理。
软件生命周期包括可行性分析与开发计划、需求分析、设计 (概要设计和详细设计)、编码实现、测试、运行与维护等活动,将这些活动以适当的方式分配到不同的阶段去完成。
- 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
本课程关注Software Requirements,Software Design,Software Configuration Management,Software Engineering Management,Software Engineering Process,Software Engineering Models and Methods,Software Quality 等知识领域。
- 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
- Level 1 - Initial
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的- Level 2 - Managed
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。- Level 3 - Defined
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。- Level 4 - Quantitatively Managed
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。- Level 5 - Optimizing
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
- 用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI:Capability Maturity Model Integration,即能力成熟度模型集成,最初旨在软件产业建立一套工程制度,用来评估和改善软件开发公司的过程和能力,改善开发流程的成熟度以及软件质量,从而提升软件开发项目及公司的管理能力,最终达到软件开发功能正确、缩短开发进度、降低开发成本、确保软件质量的目标。后来,所有现存实施的与即将被发展出来的各种能力成熟度模型,都被集成到一个框架中去,即现在的CMMI。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。
2、解释 PSP 各项指标及技能要求:
阅读《现代软件工程》的 PSP: Personal Software Process 章节。 (http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html )按表格 PSP 2.1,了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?(期末考核,每人按开发阶段提交这个表)
对于每一个项目,记录自己在该项目的每一阶段所花费的具体时间。