1、简单题
软件工程的定义:
(1)将系统化、规范化、可度量的 方法应用与软件的开发、运行和维护的过程, 即将工程化应用于软件中。(2)对(1)中所述方法 的研究。——IEEE[IEE93]Software crisis:
软件危机(英语:Software Crisis)是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。软件危机的本源是复杂、期望和改变。这个术语用来描述正急遽增加之电脑的力量带来的冲击和可能要处理的问题的复杂性。从本质上来说,它谈到了写出正确、可理解、可验证的计算机程序的困难。COCOMO:
软件生命周期 从时间角度,把整个周期划分为若干个阶段 l 划分的原则:各阶段的任务彼此间尽可能相对独立,同 一个阶段各项任务的性质尽可能相同,从而降低每个阶 段任务的复杂性,简化不同阶段之间的联系,有利于软 件开发过程的组织管理。受软件规模、性质、种类、开 发方法等因素的影响。 l 典型划分GB8567(4个时期7个阶段): 1)软件分析时期:问题定义、可行性研究、需求分析 2)软件设计时期:总体设计、详细设计 3)编码与测试时期:编码、测试 4)运行与维护时期按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
a. 软件需求 Software Requirements
b. 软件设计 Software Design
c. 软件构造 Software Construction
d. 软件工程工具和方法 Software Engineering Tools and Methods解释 CMMI 的五个级别。
1. 初始级 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
2. 已管理级 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
3. 已定义级 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
4. 量化管理级 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
5. 优化管理级 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。
二、解释 PSP 各项指标及技能要求
1、阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
2、按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
(1)、 待做事项:
计划
估计这个任务需要多少时间
开发
分析需求 生成设计文档 设计复审 (和同事审核设计文档) 代码规范 (为目前的开发制定合适的规范) 具体设计 具体编码 代码复审 测试(包括自我测试,修改代码,提交修改)
记录时间花费
测试报告
计算工作量
事后总结
提出过程改进计划
(2)、统计
在进行各个阶段时记录开始时间与结束时间,然后计算各个占比。