1第三章小组项目过程2为什么工程会失败如果软件工程失败了,通常是因为协同工作的问题,而不是技术上的问题。是人的问题3常见的问题领导不力无法协调或合作缺少参与拖延和缺少自信质量低劣随意增加功能TSP过程4ThePSPprocessStructure6小组团队小组规模4~5人(正式小组2~8个人)具有凝聚力的小组(一个群组是否有效,是由明确的目标、有效的工作环境、有能力的教练和积极的领导这4方面因素的综合作用所确定的)协同工作基本条件要完成的任务必须清楚明确小组必须是明确确定的小组必须对它的项目有自始至终的控制7建立高效的小组小组内聚力挑战性的目标反馈共同工作框架必须完成什么计划?什么时间?按照什么顺序?由谁来完成?8怎样组建小组目标确定和接受一系列共同的目标角色小组长、项目经理、计划经理、质量/生产经理、技术支持经理、组员)明确责任计划确定达到目标的战略交流成员之间的交流对外交流小组与其他团体的交流9小组目标具有挑战性,却是可实现的目标必须是具体的,可评估的,如开发一个优质的产品进行一项高效率的、管理良好的工程按时完成10小组目标开发一个优质的产品在第一次编译之前发现的错误百分比:80%在系统测试中发现缺陷数目:0完成的产品包含的需求功能:100%进行一项高效率的、管理良好的工程产品大小估计的误差:20%开发时间估计的误差:20%按时完成提前或推迟开发周期的天数:411小组成员目标所有小组成员都要有具体可评估的目标成为一个合作的有效率的小组成员第一目标进行始终如一的有纪律的个人工作计划和跟踪个人的工作生产出优质的产品12角色目标小组长目标组建并维持一个有效的小组分配任务激励小组的所有成员在工程中努力工作解决小组成员提交给你的所有冲突让教师全面了解小组的进度有效地作为小组会议的召集者充当开发人员13角色目标小组长所需的性格特点愿意担负责任能作客观的决定能督促同学发挥最大的才能尊重你所领导的小组成员14角色目标项目主管目标生产一个出色的产品全面发挥小组成员的能力和才干15角色目标项目主管主要任务领导小组制定开发策略领导小组给要设计的产品制定最初的大小和时间估计领导软件需求细节的开发领导小组制定出高水平的设计领导小组制定出软件设计细节领导小组实现并测试产品参加开发16角色目标项目主管所需的性格特点最重要的是:喜欢创建新东西想成为软件工程师,并想具有领导工程的设计和开发工作的经历熟悉最主要的设计方法能听取并采纳其他人的意见17角色目标计划制定者目标为小组和每个小组成员制定一个完整的、精确的、正确的计划定期(如每周)准确地报告小组情况18角色目标计划制定者的主要任务领导小组制定开发周期的任务计划领导小组制定开发周期的日程表领导小组制定平衡稳定的计划跟踪小组对照计划进行的情况参加开发19角色目标产品质量控制目标代码检查测试计划技术支持目标开发语言、工具测试方法、工具软件配置管理、版本管理等20对组员的要求对工作负责履行责任决不放弃努力为工作目标奋斗严格按时间表工作明确的工作目标产生明确的工作目的与小组成员合作21小组协作责任透明性聆听协商:有原则的协商,求同存异22参与小组活动勇于发表自己的看法对他人的意见要给予关注参与小组工作计划的制定并努力按照工作计划开展工作小组成员职责表23目标/职责小组长项目经理计划经理质量/生产经理技术支持经理创建和维护一个有效的小组X在小组成员中解决冲突X跟踪和报告小组进度X召开会议X与上级经理接触X维持项目手册X帮助小组分配任务X领导所有的开发工作X领导小组的计划和进度跟踪X小组成员职责表24目标/职责小组长项目经理计划经理质量/生产经理技术支持经理领导质量计划和跟踪X提供小组开发过程的支持X作为检查员X维护小组标准和术语X处理会议记录X向小组发出质量问题的警告X获取必须的工具和技术支持X进行配置管理X领导修改控制板X小组成员职责表25目标/职责小组长项目经理计划经理质量/生产经理技术支持经理作为小组复用性的提倡者X管理问题和风险跟踪X维护系统术语表X开发产品XXXXX制定个人计划XXXXX跟踪个人工作XXXXX生产优质的产品XXXXX遵照纪律性的个人准则XXXXX26项目启动获得个人信息每周哪些时间可用于项目开发、个人特长等信息产品目标小组成员共同讨论确定,获得教师认可角色分配不是固定死的,可兼任27开发过程按什么过程开发目标产品瀑布模型原型模型螺旋模型增量模型其他模型28注意应该努力选择满足开发小组要求、尽可能少的软件开发过程模型软件开发模型数目不宜过多所选择的软件开发模型不宜过于复杂最好选择那些成员熟悉的、有使用经验的软件开发过程模型29工作量估计估计方法基于功能点的估算方法工作量分布30工作量估计方法自顶向下COCOMO模型LOC估计模型功能点估计模型自底向上先获得项目各部分估计的规模,再得到整个项目的估计的规模31基于功能点的估算方法1.将每个功能分类为简单功能、中等复杂功能和复杂功能(表1)2.根据应用中功能因子的加权和求得总的未经调整的功能点UUCP3.计算技术复杂度因子TCF(表2),TCF=0.6+(0.01×TFactor)4.计算出环境因子EF(表3),EF=1.4+(-0.03×EFactor)5.计算UCP,UCP=UUCP×TCF×EF32表1:功能复杂度及其因子功能类型说明因子简单功能3个或3个以下任务5中等复杂功能4~7个任务10复杂功能7个任务1533表2:技术因素及其权重序号因素权重1分布式系统22响应或者吞吐量绩效目标13终端用户效率(联机)14复杂的内部处理15代码必须是可重用的16易于安装0.57易于使用0.58可移植29易于变更110并发111包括特殊的安全特征112提供对第三方的直接访问113特殊的用户培训设施134表3:团队的环境因素及其权重序号因素权重1熟悉Internet1.52应用经验0.53面向对象经验14先导分析人员能力0.55积极性16稳定的需求27兼职工作人员-18难的编程语言-135基于功能点的估算方法举例有5个简单功能、9个中等复杂功能、12个复杂功能分配技术复杂性因子值(按表2的顺序):4、3、5、3、4、5、5、0、4、1、2、0、5设定环境因素因子值(按表3的顺序):3、1、3、4、5、5、0、336基于功能点的估算方法1.UUCP=5×5+9×10+12×15=2952.TFactor值为40,TCF为1.03.EFactor为22,EF为0.744.UCP=295×1.0×0.74=218.35.218×20=4360人时=513人天(8.5小时/天)37项目跟踪什么是软件项目跟踪软件项目跟踪对象软件项目跟踪方式软件项目跟踪目标38什么是软件项目跟踪定义在项目实施过程中,随时掌握项目的实际开发情况,使得当项目实施与计划相背离、或者出现问题和风险时,能够采取有效的措施。39什么是软件项目跟踪(示意图)40软件项目跟踪对象(项目风险)XX项目风险清单时间:2010/08/21提交人:张三风险负责人开始时间结束时间风险标识部分产品需求尚未得到客户的验证李四2010/08/102010/08/201所需的软件构件和工具没有按期购买李四2010/08/102010/08/152软件测试所需设备比要求时间晚了1个月王五2010/08/152010/08/183项目开销超出计划10%,且每周按5%增长王五2010/08/182010/08/21441软件项目跟踪对象(项目进展)42软件项目跟踪对象(开发活动进展)43软件项目跟踪对象(开发活动问题)44软件项目跟踪方式成立项目跟踪小组由项目组成员(小项目)或负责人(大项目)组成指定项目跟踪负责人负责协调项目进度的跟踪工作定期召开项目跟踪会议,获取项目实施的详细情况和面临的问题最好每周一次了解项目实施情况汇报问题45软件项目跟踪目标通过跟踪对软件项目的实施情况提供可视性知道项目的实际执行和实际情况知道项目实施过程中(可能)出现了哪些问题知道如何采取措施防止问题的出现,或者出现时该采取什么办法减少它给软件项目实施带来的影响和损失基于Project的项目管理46基于Project的项目管理4709:1947摘要任务:由子任务组成并对这些子任务进行汇总的任务里程碑:实心菱形箭头表示依赖关系子任务48大作业的跟踪作业:每周报告跟踪情况风险进展活动问题展望49选择题当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的(A)问题,即通信问题。通信需花费时间和代价,会引起软件错误(B),(C)软件生产率。如果一个软件开发小组有n个人,每两人之间都需要通信,则共有(D)条通信路径。假设一个人单独开发软件,生产率是5000行/人年,且在每条通信路径上耗费的工作量是250行/人年。若4个人组成一个小组共同开发这个软件,则小组中每个人的软件生产率为(E)。若小组有6名成员,则小组中每个成员的软件生产率为(F)。因此,有人提出,软件开发小组的规模不能太大,人数不能太多,一般在(G)人左右为宜。供选择的答案:A.①分配②管理③接口④协作B,C.①降低②增加③不变D.①n(n+1)/2②n(n-1)/2③n(n-1)(n-2)/6④n2/2E,F.①4875②4375③4625④5735G.①8-15②1-2③2-5④2-850项目文档