1.简单题
·软件工程的定义
①软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 ②在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。
·阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
①software crisis是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词。而1960年代中期开始爆发众所周知的软件危机,为了解决问题,在1968、1969年连续召开两次著名的NATO会议,并同时提出软件工程的概念。 ②对于项目的成功而言,项目人员的素质、人员的组织管理是比使用的工具或采用的技术方法更重要的因素。从而Boehm的COCOMO模型发现团队质量目前是项目成功最大的决定因素,实际上是下一个次重要因素的4倍。现在,软件工程的大多数学术研究集中在工具上。
·软件生命周期
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。
·按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
本课程关注①软件需求(Software Requirements)②软件设计(Software Design)③软件构造(Software Construction)④软件工程工具和方法(Software Engineering Tools and Methods)
·解释 CMMI 的五个级别
①初始级(Initial):软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
②可管理级(Managed):建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
③已定义级(Defined):已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
④量化管理级(Quantitatively Managed):分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
⑤优化管理级(Optimizing):过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
·用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI是能力成熟度模型集成,它的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件,其中它依据的想法是集中尽力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。它的基本思想有三点,一是解决软件项目过程改进难度增大问题,二是实现软件工程的并行与多学科组合,三是实现过程改进的最佳效益。CMMI的价值主要体现在能够保证软件开发的质量与进度,有利于成本控制,有助于提高软件开发者的职业素养,能够解决人员流动所带来的问题以及有利于提升公司和员工绩效管理水平等。
2.解释 PSP 各项指标及技能要求:
一个软件工程师在接到一个任务之后应该怎么做:
| PSP2.1 |
|---|
| 计划 |
| ·估计这个任务需要多少时间 |
| ·分析需求 |
| ·生成设计文档 |
| ·设计复审(合同事审核设计文档) |
| ·代码规范(为目前的开发制定合适的规范) |
| ·具体设计 |
| ·具体编码 |
| ·代码复审 |
| ·测试(包括自我测试,修改代码,提交修改) |
| 记录时间花费 |
| 测试报告 |
| 计算工作量 |
| 事后总结 |
| 提出过程改进计划 |
统计每项数据首先应该确定每个阶段的工作任务和结束的指标,然后再每一阶段开始时记录时间,并且有些阶段可能是并行开始的,要做以明确的区分,当所有任务完成之后,就能将之前记录的结果合起来做统计分析。