软件项目管理复习提纲
COCOMO模型分为基本、中级模型和详细模型
8、COCOMO适合的软件项目
(1)组织型(Organic):相对较小,简单项目,工作人员理解好,经验丰富,硬件相关性小。如多数应用软件,编译程序,老操作系统
(2)嵌入型(Embadded):项目紧密联系硬件、软件、操作。对接口,数据结构,算法要求较高,规模任意。如航天指挥系统
第五章 软件估算
1、软件项目估算是以准确的调查资料和项目可用资源信息为依据,对估算对象的规模、工作量、进度和成本和缺陷进行预测。是对非零可能性的未来的预测。它是项目计划的依据。
2、估算收敛图P88
3、项目的演变(两种策略)P89
大多数软件项目在开始时,期望的功能与可用的资源之间不匹配,但随着项目的进展,功能或资源(或两者)必定要互相匹配
(1)初始级:软件过程是未加定义的随意过程,项目的执行时随意甚至是混乱的。(随意过程)
(2)可重复级:第二级的焦点集中在软件管理过程上。一个可管理的过程是一个可重复的过程,可重复的过程才能逐渐改进和成熟。(管理过程可重复)
(3)已定义级:该级别要求制定企业范围的工程化标准,并将这些标准集成到企业软件开发标准过程中去。(有企业的工程化标准,不能随意修剪)
(2)CVS,免费,并发版本管理,是对RCS的扩展
(3)VSS,支持版本、变更管理和并行开发
(4)Harvest
(5)ClearCase(Together)
(6)Hansky Firefly
第8章软件质量管理
1、软件质量定义
ISO9001的定义:客户要求的一种产品或服务所具备的所有特性。
ANSI/IEEE定义:软件产品满足规定的和隐含的需求的有关特征或特性集合。
②源代码追踪:缺陷追踪是记录和追踪有关缺陷从发现到解决过程的工作。源代码追踪是利用开发工具的调试器,一行行追踪代码的执行情况。这项工作主要是由程序员来做。
③技术检查:技术检查是由技术专家或开发人员来检查别人完成的工作。
④测试⑤Pareto分析⑥6希格玛方法
第9章软件质量
1、 软件度量的根本目的是为了项目管理的需要,利用度量来改进软件过程。
(2)企业环境风险
(3)软件项目风险
5、风险管理过程分为两大类:风险分析、风险控制
6、风险识别的步骤(了解)
(1)收集资料
(2)估计项目风险形势
(3)识别风险
第12章人力资源管理与团队建设
1、人力资源管理关键要素
(1)合理的薪酬,最重要、最易使用的激励方法
(8)培训组Training Group
CMM中的工作组中的角色及职责
(1)系统分析员
开发域专家
职责:对当前系统建模并产生关于将来系统的信息。
(2)体系结构员
一个综合性角色,系统设计的主要角色,系统集成的主要角色
职责:在需求分析阶段:从系统的角度统一用例和对象模型,解决分析过程中的分歧。体系结构员是交叉功能体系结构小组的领导者。
矩阵结构(有独立的SQA部门) 、
柔性结构(两者结合)
4、软件质量控制定义:
监控软件开发过程与结果,确保软件可以满足在设计中明白交代出来的要求和没明确指出的需求。也就是在软件开发过程的若干关键点上进行软件项目跟踪和监控。
5、质量控制方法(前3个)
①缺陷追踪:IBM是最早发现质量和软件进度关系的公司。他们发现具有最少缺陷的产品也就是具有最短开发时间的产品。
TDEV(度量单位为月)表示开发进度,他由工作量决定。
10、基本COCOMO公式
11、例:一个规模为10KDSI的商用微机远程通信嵌入软件,使用中间COCOMO模型进行软件 成本估算。则:
程序名义工作量
MM=2.8*(10)1.20=44.38(MM)
程序实际工作量
MM=44.38* f1 * f2 * f3……* f15=44.38*1.17=51.5(MM)
2、需要注意的两个问题:
1)度量结果是定量描述,不是定性描述
2)与估算是提前预测不同,度量是对实时或事后状态的收集与分析,用于对历史进行评估。
第10章风险管理
1、风险(词典定义):可能失去东西或受到伤害。
软件开发的滑铁卢》罗伯特.格拉斯:
遇到危险、遭受伤害、经受损失,或者是招致伤害或损失。
( 两层含义:一种风险是不可抗力,一种是失误、来自己招致的)(5)对象设计者
职责:定义并具体化由他们实现的类的接口规格说明或子系统。
(6)程序员
职责:将对象模型转化为源代码。这包括实现每个对象的属性和方法,集成所有的对象使之成为一个单独的系统。修改错误,进行现场调试等。
(7)测试工程师
职责:发现系统错误并记录。
(8)实施人员
职责:现场环境测试,系统安装,客户培训,问题跟踪,客户协调等。
2、 风险管理是软件项目管理的第二大关键问题。
3、软件项目风险:软件开发过程中及软件产品本身可能造成的伤害或损失。它是介于确定性和不确定性之间的状态。
包含两个特征:1)不确定性;2)损失。
分为三类:1)已知风险,如技术创新;2)可预测风险,如人员调整;3)不可预测风险
4、引起风险的因素
(1)商业环境风险
2、软件配置管理的功能
(1)配置项识别(确认),是前提和基础
(2)版本控制,基本功能
(3)变更控制
(4)配置状态统计
(5)配置审核
(6)构造管理,综合不同版本配置项构建不同版本产品
(7)过程管理
3、实施SCM的主要活动(软件配置管理SCM)
(1)制定SCM计划
(2)软件配置标识与维护管理
(3)软件配置控制与变更管理
第3章软件项目立项
1、立项的目标:说服组织的决策者同意启动一个项目或继续进行项目的下一个阶段。立项阶段的最终交付项是立项报告。立项报告是一份描述项目可行性的正式文档,是立项评审和决策的依据。
2、立项分为定制软件和通用软件立项之别。产品立项比定制立项复杂的多
3、从商业竞争的角度考虑软件产品可分为:
(1)高技术产品,进入门槛和附加值高
(3)体系结构联络员
体系结构小组的成员,子系统小组的代表
职责:为其所在小组传递信息、处理接口变化。在系统设计阶段,集中负责子系统服务;在编码阶段,负责API的一致性。
(4)核心设计者
职责:在启动对象设计前开发出编程指导原则和约定。对许多约定来说,实际约定不如所有设计人员和开发人员承诺使用约定更重要。核心设计者还负责保持SDD和RAD的一致性。
(4)版本管理
(5)软件配置状态发布
(6)配置审计
(7)软件构件与发布管理
4、基线:指已经过正式评审和认可的标准,作为以后进一步开发的基础,并且只有通过正式的更改控制规程才能进行更改的规程说明或产品。基线是由管理人员或顾客正式检查并同意的配置项版本。
5、配置管理工具P139
(1)RCS,免费,不支持分支管理
(2)短线产品,技术含量不高,但需要快速占领市场
(3)行业业务系统,对行业精通,行业市场运作能力
(4)规模产品,SAP,oracle等
4、对产品的内涵进行战略管理才是产品定义、产品立项、产品计划的核心。产品的五个层次是:
(1)完成客户的核心需求
(2)实现辅助核心需求,形成 一般产品
(3)期望产品,在一般产品基础上,满足客户更高期望
(4)系统工程组System Engineering Group
(5)软件测试组Software Test Group
(6)软件质量保证组Software Quality Assurance Group
(7)软件配置管理组Software Configuration Management Group
2、软件质量的要素
(1)软件的运行特征(最基本的):正确性,可靠性,有效性,完整性,可用性
(2)软件修正的能力:可维护性,灵活性,可测试性
(3)软件转移特征(对新环境的适应程度):可移植性,可重用性,可互操作性
3、SQA(软件质量保证)组织结构有三类及各自的区别(P156) :
职能结构(没有独立的SQA部门)、
①目标性
②独特性-每一个项目都是唯一的
③临时性–明确的开始和结束
④制约性
⑤不确定性
⑥特定委托人-项目结果的需求者
⑦结果的不可逆转性-不管结果如何,项目结束,结果确定
3、以下哪些是项目呢?②③⑤⑦⑧⑨
①上课②野餐活动③集体婚礼④社区保安⑤开发微软的操作系统⑥每天的卫生保洁⑦神舟飞船计划⑧建造大楼⑨解决某个研究课题、开发软件
开发所用的时间TDEV=2.5*(51.5)0.32=8.9(月)
如果分析员与程序员的工资都按每月6000美元计算,则该项目的开发人员的工资总额为51.5*6000=309000(美元)
第7章软件配置管理
1、软件配置管理包括标识在给定时间点上软件的配置,系统地控制对配置的更改,并维护在整个软件生命周期中配置的完整性和可跟踪性。
(4)已管理级:所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的最终产品)需要有明确地度量指标。(过程有度量方式)
(5)优化级:该级别的目标是达到一个持续改善的境界。所谓持续改善是指可以根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。(根据反馈改善过程)
第2章组织平台
(9)文档编辑者
职责:负责文档的低层次综合。如文档的整体格式与索引。技术文档编写者负责整理ODD的最终版本,确保文档从结构和内容的角度都是一致的。他们还检查是否遵循指导原则和规范。文档编辑者还负责编辑、修改产品功能说明书、使用手册等。
(10)项目经理
职责:组织协调相关人员进行需求分析、设计、编码、测试与修改、系统实施、客户协调等。负责计划、人员管理,负责跟踪、监控项目执行情况,组织项目会议,修改项目计划等,根据项目计划、质量计划组织、审核项目质量,确保按计划完成目标。