【系统分析作业】第一周
1. 简答题
1.1软件工程定义
- 软件工程:(1)将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)对(1)中所述方法的研究。——IEEE[IEE93]
- 软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
1.2解释software crisis、COCOMO模型
- software cresis: 60年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂型和高成本,是大型软件的生产出现了很大的困难,即出现软件危机。
- COCOMO模型,全程Constructive Cost Model,从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本。一般用一下基本量来估算(1)DSI( 源指令条数 ) ,定义为代码行数,包括除注释行以外的全部代码。若一行有两个语句,则算做一条指令。 (2)MM( 度量单位为人月 ) 表示开发工作量。 (3)TDEV( 度量单位为月 ) 表示开发进度,由工作量决定。 (4)COCOMO 模型重点考虑 15 种影响软件工作量的因素,并通过定义乘法因子,从而准确、合理地估算软件的工作量。
1.3软件生命周期
- 软件生命周期是指软件的产生直到成熟的全部过程。
- 软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考。
1.4关注点
按照SWEBOK,本课程关注以下KA:
- 软件构型管理
- 软件工程管理
- 软件工程工具和方法
1.5CMMI软件成熟度模型
- Level 1 - Initial:无序,自发生产模式
- Level 2 - Managed:有管理,为项目而推进,经常交流。
- Level 3 - Defined:有定义的,工作推进有组织,积极主动交流。
- Level 4 - Quantitatively Managed:量化管理,测量和控住项目进度
- Level 5 - Optimized:优化,关注进度提升
1.6自己的话描述SWEBok
SWEBok(Software Engineer Body of Knowledge), 软件工程的核心知识,是对软件工程知识的区分和界定,包括以下KA(知识域):
- 软件需求(Software requirements)
- 软件设计(Software design)
- 软件建构(Software construction)
- 软件测试(Software test)
- 软件维护与更新(Software maintenance)
- 软件构型管理(Software Configuration Management, SCM)
- 软件工程管理(Software Engineering Management)
- 软件开发过程(Software Development Process)
- 软件工程工具与方法(Software Engineering Tools and methods)
- 软件质量(Software Quality)
2.解释 PSP 各项指标及技能要求
软件工程师接到任务后应该这样做:
- 计划
- 估计:估计这个任务需要的时间
- 开发
- 分析需求
- 生成设计文档
- 设计复审(和同事审核设计文档)
- 代码规范(为当前开发制定合适规范)
- 具体设计
- 具体编码
- 代码复审
- 测试(包括自测、修改代码、提交修改)
- 记录用时
- 测试报告
- 计算工作量
- 事后总结
- 提出过程改造计划