一、概论
1. 软件工程的三要素。
过程、方法、工具
2. 软件过程的定义。
软件过程是用于软件开发及维护的一系列活动﹑方法及实践。
3. 常见的软件过程分类。常见的软件过程。
二、软件质量管理
1. 软件质量的定义。
软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
2. ISO/IEC 9126的结构、六个一级质量特性、一级特性对应的二级特性(理解)。
功能性:在指定条件下使用时,软件产品提供满足明确和隐含需求功能的能力;
可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力(在规定的条件下,在规定的时间内,软件不引起系统失效的概率)
易用性:在指定条件下使用时,软件产品被理解,学习及其吸引思考的能力。
效率(有效性):在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力;
可维护性:软件产品可被修改的能力,修改可能包括修正﹑改进或者适应环境﹑需求和功能规约的变化;
可移植性:软件产品从一种环境迁移到另一种环境的能力·
3. 朱兰质量管理三部曲。
质量计划(Quality Plan):确定项目应达到的质量标准,以及如何满足质量标准的计划安排和方法·
质量保证:确保项目达到有关标准,而开展的有计划﹑有组织的工作活动。
质量控制:是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
三、软件项目管理
1. 基本概念:项目;项目管理;项目管理的五大过程组;项目管理的十大知识领域。
项目:项目是为完成某一独特的产品﹑服务或成果所做的一次性努力。
项目管理:就是在项目活动中运用相关知识,技能,工具和技术满足项目的要求
五大过程组:启动,计划,执行,控制,收尾。
十大知识领域:项目(集成,范围,时间,成本,质量,人力资源,沟通,风险,采购,利益相关者)管理
2. 可行性分析:净现值的优点。
净利润/回收期/投资回报率在一定程度上忽视了成本和现金流的时限/收益的大小/现金的时限利息和利率。净现值NPV(利用了贴现率,第t年的值/(1+r)t)。
净现值是指特定方案未来现金流入量的现值和未来现金流出量的现值之间的差额。
优点:考虑了资金时间价值,增强了投资经济性的评价;考虑了全过程的净现金流量,体现了流动性与收益性的统一;考虑了投资风险,风险大则采用高折现率,风险小则采用低折现率。
3. 识别软件项目的活动:WBS。
任务分解结构(WBS):是面向可交付成果的对项目任务的分组,它组织并定义了整个项目范围。它是一个分级的树型结构,是对项目由粗到细的分解过程。
叶子节点(功能-子功能):只有最底层的叶子节点构成了项目的活动集合。
中间结点(功能)
4. 软件工作量估计方法:常见的软件工作量估计方法,记住名称,并理解每个方法。
专家判断,类比估计,自底向上,自顶向下。Albrecht功能点Mark ||功能点COSMIC全功能点COCOMO 11:参数化的生产率模型
对应用领域或开发环境有丰富知识的人,对执行一项任务所需的工作量做出估计 特别是,对变更一个软件的已有部分所需的工作量进行估计时,最可能使用这个方法 专家评判往往是使用已标识的来自过去类似项目的非正式的类比法和由底向上估计法相结合的方法
5. 软件项目的进度安排:甘特图、关键路径法、关键链法、PERT技术。(关键路径法必须全面理解掌握,只需要掌握活动节点,活动箭头不需掌握;后两种方法了解,能够了解计算步骤)
甘特图的缺点:无法描述任务的逻辑关系
关键路径--只有等项目中耗时最多最长的活动完成之后,项目才能结束。这条路径就是关键路径,组成关键路径的活动就是关键活动。
关键链(不考计算题,考定义步骤)与关键路径相比,它既考虑项目活动的紧前关系,又考虑资源冲突,构建网络图,得到最长路径——关键链;关键链决定了项目工期。
步骤:
1紧前关系,得到的最长路径---关键路径 2考虑紧前关系和资源冲突,得到关键链(关键链决定了项目工期) 3加入项目缓冲和汇入缓冲;项目缓冲:放在关键链后面;汇入缓冲:放在非关键链与关键链的交汇处 4砍掉所有项目的一半计算缓冲大小
PERT的步骤:
1.估计每个活动的最有可能时间,乐观时间,悲观时间,计算活动的期望周期与标准偏差。
2.正向遍历得到期望达到事件的日期
3满足目标的可能性
6. 软件项目的资源管理:资源定义,资源分配直方图。
资源定义----资源是执行项目所需要的任何项和人。
资源分配直方图通过延迟某些活动的开始日期,来平衡化资源直方图
7. 软件项目的风险管理:风险的定义,风险管理的框架,风险处理的方法。
风险的定义---一个不确定的事件或者情况,若其一旦发生,会对项目的目标,例如,范围、进度、成本和质量,产生积极或消极的影响。
风险管理的框架---风险识别,风险分析与优先级排序,风险策划,风险监督
风险优先级,风险影响 = (可能的危害)×(发生概率)
风险处理的方法---接受风险,规避风险,降低风险,转移风险
风险的分类--4大类:参与者,技术,结构,任务
8. 软件项目的监督和控制:挣值分析。
计划价值(已计划工作的预测成本)---Planned value --- PV-----200*5
挣值(已执行工作的预测成本)---Earned value ---EV-----200*3.5
实际成本(已执行工作的实际成本)--- Actual Cost ---AC----1000
进度偏差(已完成的工作值与计划的工作值的差)---Schedule Variance-- SV ---EV-PV---700-1000
成本偏差(已完成工作的预算成本和实际成本的偏差)---Cost Variance --CV --EV-AC---700-1000
进度性能指标(Schedule Performance Index, SPI): SPI = EV / PV---大于1及比预期好
成本性能指标(Cost Performance Index, CPI): CPI = EV / AC----大于1及比预期好
完成时间的估计值(按照当前进度项目的完成时间估计)---TEAC = SAC / SPI (Schedule At Completion, SAC, 项目的计划周期)--------10/0.7
项目的成本预算(按照当前的进度,项目的总支出的估计)--- EAC = BAC / CPI (Budget At Completion, BAC, 计划的项目预算)-----2000/0.7
9. 软件项目的配置管理:配置管理的任务,配置项。
配置管理的任务---标志变更,控制变更,确保变更正确实现,向受变更影响的组织和个人报告变更
配置项---软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集。例如,程序,文档等
常见的软件配置管理软件---GitHub,Bitbucket,CVS,Subversion(SVN),Google code