软件工程的定义。
(1)将系统化、规范化、可度量的 方法应用与软件的开发、运行和维护的过程, 即将工程化应用于软件中。(2)对(1)中所述方法
的研究。——IEEE[IEE93]
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。-
阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
-
软件生命周期。
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。- 从时间角度,把整个周期划分为若干个阶段
- 划分的原则:各阶段的任务彼此间尽可能相对独立,同 一个阶段各项任务的性质尽可能相同,从而降低每个阶 段任务的复杂性,简化不同阶段之间的联系,有利于软 件开发过程的组织管理。受软件规模、性质、种类、开 发方法等因素的影响。
- 典型划分GB8567(4个时期7个阶段):
1)软件分析时期:问题定义、可行性研究、需求分析
2)软件设计时期:总体设计、详细设计
3)编码与测试时期:编码、测试
4)运行与维护时期
按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
软件需求,软件设计,软件构造,软件工程工具和方法。-
解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
初始级(Initial):软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
可重复级/受管理级(Repeatable):建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
已定义级(Defined):已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
量化管理级(Managed): 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
优化管理级(Optimizing):过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
-
用自己语言简述 SWEBok 或 CMMI (约200字)。
SWEBok(Software Engineering Body of Knowledge),软件工程知识体系。SWEBOK指南为软件工程学科的范围提供了一致的确认,为支持该学科的本体知识提供了指导。
SWEBOK建立的目标是:- 促进软件工程本体知识达成世界范围的共识
- 澄清软件工程与其他相关学科如计算机科学、项目管理、计算机工程以及计算机数学的关系,并且确定软件工程学科的范围
- 反映软件工程这个学科内容的特征
- 确定软件工程本体知识的各个专题
- 为相应的课程和职业资格认证材料的编写奠定基础
解释 PSP 各项指标及技能要求
- 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
-
按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
需要的技能:软件开发流程、软件工程思想、软件设计能力、编码能力、对标准和工具链的掌握、总结(写作)的能力、团队协作能力等。
如何统计每项数据:在每项工作开始之前记录时间,如果可以的话,借助软件工具来记录和统计。