1. 简单题
软件工程的定义
- 将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。
- 对上面所述方法的研究。——IEEE[IEE93]
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型
- software crisis:六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现软件危机。虽然时至今日人们并没有完全克服软件危机,但软件工程却很大的改善了软件业的情况,让人们看到了希望,也说明我们还要继续努力,更深入地认识软件开发管理的规律、深化软件工程的研究和实践。
- COCOMO模型:构造性成本模型,它是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆 (Boehm) 于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本)。COCOMO模型可以分为三个层次:基本COCOMO,中级COCOMO,详细COCOMO。在COCOMO模型中,工作量调整因子(Effort Adjustment Factor, EAF)代表多个参数的综合效果,这些参数使得项目可以特征化和根据COCOMO数据库中的项目规格化。每个参数可以定为很低,低,正常,高,很高。每个参数都作为乘数,其值通常在0.5到1.5之间,这些参数的乘积作为成本方程中的系数
软件生命周期
计算机软件有一个孕育、诞生、成长、成熟、衰亡的生存过程,即软件的生命周期(也称软件开发生命周期SDLC或软件开发过程)。软件生命周期被划分为若干阶段,每个阶段有明确的任务,从而使规模、结构和管理复杂的软件开发过程得到适当的控制和管理。
软件生命周期包括可行性分析与开发计划、需求分析、设计(概要设计和详细设计)、编码实现、测试、运行与维护等活动,将这些活动以适当的方式分配到不同的阶段去完成。
从时间角度,把整个周期划分为若干个阶段。划分的原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。受软件规模、性质、种类、开发方法等因素的影响。
按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域
已发布的SWEBOK V3版有以下15个KA:软件需求,软件设计,软件构建,软件测试,软件维护,软件配置管理,软件工程管理,软件工程过程,软件工程模型和方法,