简单题
- 软件工程的定义。
- 软件工程是(1)将系统化、规范化、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。
- (2)对(1)中所述方法的研究。
- 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
- 软件危机(software crisis)是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
- 软件危机究其原因,衔接到硬件的整体复杂度与软件开发流程。危机表现在几个方面:
1)项目运行超出预算
2)项目运行超出时间
3)软件质量低落
4)软件通常不匹配需求
5)项目无法管理,且代码难以维护 - 构造性成本模型即COCOMO模型,是由巴里·勃姆(Barry Boehm)提出的一种软件成本估算方法。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。
- 软件生命周期。
- 软件生命周期是指软件的产生直到成熟的全部过程。
- 典型划分GB8567(4个时期7个阶段):
- 1)软件分析时期:问题定义、可行性研究、需求分析。
- 2)软件设计时期:总体设计、详细设计。
- 3)编码与测试时期:编码、测试。
- 4)运行与维护时期
- 典型划分GB8567(4个时期7个阶段):
- 软件生命周期是指软件的产生直到成熟的全部过程。
- 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
- Software requirements
- Software design
- Software construction
- Software testing
- Software maintenance
- Software configuration management
- Software engineering management
- Software engineering process
- Software engineering models and methods
- Software quality
- 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
- 初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。 - 可管理级
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。 - 已定义级
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。 - 量化管理级
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。 - 优化管理级
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
- 初始级
- 用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型)。其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。解释PSP各项指标及技能要求
按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?
- 计划
- 估计这个任务需要多少时间
- 开发
- 分析需求
- 生成设计文档
- 设计复审 (和同事审核设计文档)
- 代码规范 (为目前的开发制定合适的规范)
- 具体设计
- 具体编码
- 代码复审
- 测试(自我测试,修改代码,提交修改)
- 记录时间花费
- 测试报告
- 计算工作量
- 事后总结
提出过程改进计划
需要的技能
- 熟悉整个软件的开发流程,对软件复杂度等有一定的估计从而推算出任务所需时间。
- 分析能力,能够明确需求
- 编写文档能力
- 代码规范知识
- 编程能力
- 团队协作能力
统计每项数据的方法
- 项目大小
- 通过代码量进行统计
- 项目时间
- 实际统计项目所花时间*项目人数
- 项目质量
- 统计bug数
- 是否按时交付
- 统计每个阶段是否按时交付
- 计划