软件过程与管理知识回顾
一、概论
1. 软件工程的三要素。
方法、工具、过程
2. 软件过程的定义。
软件过程是用于软件开发及维护的一系列活动﹑方法及实践。
3. 常见的软件过程分类。常见的软件过程。
二、软件质量管理
1. 软件质量的定义。
软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
2. ISO/IEC 9126的结构、六个一级质量特性、一级特性对应的二级特性(理解)。
3. 朱兰质量管理三部曲。
三、软件项目管理
1. 基本概念:项目;项目管理;项目管理的五大过程组;项目管理的十大知识领域。
项目:是为完成某一独特的产品﹑服务或成果所做的一次性努力。
项目管理(PM):就是在项目活动中运用相关知识,技能,工具和技术满足项目的
要求
五大过程组:启动、计划、执行、控制、收尾。
十大知识领域:集成管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、利益相关者管理。
各用一句话概括项目管理知识体系十大知识领域:
1、集成管理:其作用犹如项链中的那根线;
2、范围管理:做且只做该做的事;
3、时间管理:让一切按既定的进度进行;
4、成本管理:算准钱和花好钱;
5、质量管理:目的是满足需求;
6、人力资源管理:让团队成员高效率地和你一起干;
7、沟通管理:在合适的时间让合适的人通过合适的方式把合适的信息传达给合适的人;
8、风险管理:“无事找事”,从而让项目“无险事”;
9、采购管理:当好甲方;
10、利益相关者管理:和项目利益相关者搞好关系并令其满意。
2. 可行性分析:净现值的优点。
考虑了资金时间价值,增强了投资经济性的评价;
考虑了全过程的净现金流量,体现了流动性与收益性的统一;
考虑了投资风险,风险大则采用高折现率,风险小则采用低折现率;
考虑了项目在整个寿命周期内收回投资后的经济效益状况,是更为全面、科学的级数经济评价方法。
3. 识别软件项目的活动:WBS。
---任务分解结构(WBS):是面向可交付成果的对项目任务的分组,它组织并定义了整个项目范围。它是一个分级的树型结构,是对项目由粗到细的分解过程。
4. 软件工作量估计方法:常见的软件工作量估计方法,记住名称,并理解每个方法。IFPUG功能点方法中信息系统的五大类功能?
方法:专家判断,类比估计,自底向上,自顶向下。
类比估计:根据实例特征,评价相似程度,利用相似的项目数据得到最终估算值。
需要有经验的领域,不能在早期规模不确定的时候使用,难以适应约束条件技术,人员等重大变化。
功能:外部输入 外部输出 外部查询 内部逻辑文件 外部接口文件
5. 软件项目的进度安排:甘特图、关键路径法、关键链法、PERT技术。(关键路径法必须全面理解掌握,只需要掌握活动节点,活动箭头不需掌握;后两种方法了解,能够了解计算步骤)
(1) http://www.doc88.com/p-5763050345476.html
(2) https://wenku.baidu.com/view/6368fe9e51e79b8968022620.html
(3) http://www.cnitpm.com/pm/5933.html
关键路径--只有等项目中耗时最多最长的活动完成之后,项目才能结束。这条路径就是关键路径,组成关键路径的活动就是关键活动。
关键链(不考计算题,考定义步骤)与关键路径相比,它既考虑项目活动的紧前关系,又考虑资源冲突,构建网络图,得到最长路径——关键链;关键链决定了项目工期。
关键链法的步骤:
1紧前关系,得到的最长路径---关键路径
2考虑紧前关系和资源冲突,得到关键链(关键链决定了项目工期)
3加入项目缓冲和汇入缓冲;项目缓冲:放在关键链后面;汇入缓冲:放在非关键链与关键链的交汇处
4砍掉所有项目的一半计算缓冲大小
PERT技术(不考计算题,考定义步骤):全称:工程评估评审技术。类似于关键路径法。考虑到了进度管理中的风险,将不确定性引入了进度管理中。对活动周期进行三次估计,不再是CPM关键路径中的确定值。
PERT的步骤:
- 估计每个活动的最有可能时间m,乐观时间a,悲观时间b,计算活动的期望周期与标准偏差。
期望周期:t=(a+4m+b)/6 标准偏差:s=(b-a)/6
2.正向遍历得到期望达到事件的日期
3满足目标的可能性
6. 软件项目的资源管理:资源定义,资源分配直方图。
资源:资源是执行项目所需要的任何项和人。
资源分配直方图通过延迟某些活动的开始日期,来平衡化资源直方图。
7. 软件项目的风险管理:风险的定义,风险管理的框架,风险处理的方法。
风险:一个不确定的事件或者情况,若其一旦发生,会对项目的目标,例如,范围、进度、成本和质量,产生积极或消极的影响。
管理框架:
8. 软件项目的监督和控制:挣值分析。
(1) https://wenku.baidu.com/view/7bcf90280066f5335a81211b.html
(2) https://blog.csdn.net/pmpljp/article/details/19299077
9. 软件项目的配置管理:配置管理的任务,配置项。
配置管理的任务---标志变更,控制变更,确保变更正确实现,向受变更影响的组织和个人报告变更
配置项---软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集。例如,程序,文档等
常见的软件配置管理软件---GitHub,Bitbucket,CVS,Subversion(SVN),Google code
四、经典的软件过程管理
1. CMM/CMMI
(1) CMM:出发点,体系结构,关键过程域,关键实践活动。
CMM---能力成熟度模型
CMM出发点---改善现有软件开发过程,也可用于其他过程。
CMM体系结构
CMM由5个成熟度级别组成:
关键过程域(Key Process Area):一系列相互关联的操作活动,标识了达到某个成熟度级别时所必须满足的条件。
每一个KPA进一步被分为称为公共特征的5个部分:执行约定、执行能力、执行活动、测量和分析、验证实施
这些公共特征包括了关键实践(KP),即每一个KPA包括5类KP
(2) CMMI与CMM的区别和联系,CMMI的两种表示方法。
CMMI和CMM区别在于:
I是intergration,集成的意思。CMM适用于软件的组织成熟度测评。CMMI适用于多种组织成熟度测评。CMMI相对CMM更完整,更适用于大环境。
---CMMI的两种表示方法:连续式,阶段式。
- PSP:结构,两种日志,评审比测试有效的原因,四个设计模板。
日志---时间日志和缺陷日志
评审比测试有效的原因--在评审时发现的错误比测试是发现的多;成本低。缺陷发现的越早,修复的花费越低;且避免缺陷比发现和修复缺陷更有效。------------------------------------
四个设计模板---a操作规格模板,b功能规格模板,c状态规格模板,d逻辑规格模板
LST逻辑规格模板(无):
SST状态规格模板(UML:时序图):
FST功能规格模板(UML:类图):
OST操作场景模板(UML:用例图)。
3. 软件过程模型:瀑布、原型、增量、螺旋、形式化、组件的优缺点。
- MSF:六个角色;过程模型中的五个阶段。
MSF即微软的解决方案。团队是微软作战最小的基本单元。
项目场景中的6个角色:产品管理,程序管理,开发,测试,发布管理,用户体验。-------产程开测发用
5个阶段:构思阶段,计划阶段,开发阶段,稳定阶段,部署阶段。
- RUP:九个软件过程,四个阶段,六大经验。
(Rational Unified Process),统一软件开发过程,面对对象的软件工程的过程框架。
9个过程域:6个是核心3个是辅助:
6个核心过程流:商业建模,需求,分析和设计,实现,测试,部署。
3个辅助过程流:配置和变更管理,项目管理,环境。
4个阶段:初始,细化,构造,交付。
四个阶段分别对应的里程碑:生命期目标、生命期构架、初始运作功能、产品发布
五、敏捷软件开发
1. 敏捷宣言。
“注重个人及互动胜于过程和工具”
“注重可用的软件胜于详尽的文档”
“注重客户协作胜于合同谈判”
“注重响应变化胜于恪守计划”
2. 常见的敏捷软件过程,SCRUM和极限编程。
极限编程XP
是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流。这可以帮助团队最大化地发挥他们的价值。------现场客户,计划游戏,系统隐喻,简单设计,代码集体所有,结对编程,测试驱动,小型发布,重构,持续集成,每周4小时工作制。
并行争球法(Scrum):增量的迭代的开发过程
整个 开发周期包含若干个小的迭代周期,每个小的的迭代周期称为一个Sprint(2-4周)
说明:以上只是课程内容的大致介绍。