@(SSAD)
是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
software crisis:软件危机指的是在所需要的事件内编写有用和高效的计算机程序的困难性。由于计算机的计算能力快速增长,需要解决的问题更加复杂。随着软件复杂性的增加,因为现在的解决方法不足,许多软件问题出现。概括起来,主要原因是计算机计算能力的提高超过了程序员有效利用这些能力的能力。
COCOMO模型:这是一种常见的软件规模估算方法,全称为constructive cost model,即构造性成本模型。从本质上说,这是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本。
软件生命周期。
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
简单可以理解为:软件从生到死经历的各个阶段。
软件生命周期具有7个阶段:
1. 问题的定义及规划
2. 需求分析
3. 软件设计
4. 程序编码
5. 软件测试
6. 系统转换
7. 运行维护
关于软件生命周期的详细介绍:
http://blog.csdn.net/xieyihua1994/article/details/52836855
SWEBOK指南将软件工程知识体系划分为10个知识域(Knowledge Area,KA),分为两类过程。一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;另一类是支持和组织过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。下面为10个知识域与其知识域相对应的子知识域:
1.软件需求:软件需求基础、软件过程、需求获取、需求分析、需求规格说明、需求确认、时间考虑。
2.软件设计:软件设计基础、软件设计关键问题、软件结构与体系结构、软件设计质量的分析与评价、软件设计记法、软件设计的策略与方法。
3.软件构造:软件构造基础、管理构造、实际考虑。
4.软件测试:软件测试基础、测试级别、测试技术、与测试相关的度量、测试过程。
5.软件维护:软件维护基础、软件维护关键问题、维护过程、维护技术。
6.软件配置管理:软件配置过程管理、软件配置标识、软件配置控制、软件配置状态报告、软件配置审计、软件发行管理和交付。
7.软件工程管理:项目启动和范围定义、软件项目计划、软件项目实施、评审与评价、项目收尾、软件工程度量。
8.软件工程过程:过程定义、过程实施与变更、过程评估、过程和产品度量。
9.软件工程工具和方法:软件工具(软件需求工具、软件设计工具、软件构造工具、软件测试工具、软件维护工工具、软件配置管理工具、软件质量工具和其他工具问题)
软件工程方法(启发式方法、形式化方法、原型方法)
10.软件质量:软件质量基础、软件质量过程、时间考虑。
表格PSP 2.1:
表格清楚地列出了当接到一个任务之后需要做什么。我觉得需要的技能有:
1. 完成任务相关的专业技能和知识,例如编程语言、架构等等。
2. 计划自己时间的能力。
3. 记录和规划自己所做的所有东西的能力。
4. 与人沟通、与人合作的能力。
统计每项数据:根据自己的规划,在每隔一段时间内,总结报告,总结相关数据,要做到周期性、计划性的统计。关于具体的统计,需要结合难度、非重复代码量、时间等进行统计,不要只根据一个指标进行统计。