
小组软件过程.ppt
47页小组软件过程小组软件过程董董 威威计算机学院计算机学院602教研室教研室E-mail::wdong@1为什么工程会失败为什么工程会失败如果软件工程失败了,通常是因为协同工如果软件工程失败了,通常是因为协同工作的问题,而不是技术上的问题作的问题,而不是技术上的问题是是人人的问题的问题2常见的问题常见的问题•领导不力领导不力•无法协调或合作无法协调或合作•缺少参与缺少参与•拖延和缺少自信拖延和缺少自信•质量低劣质量低劣•随意增加功能随意增加功能3小组是什么小组是什么•小组规模小组规模–4~~5人人•具有凝聚力的小组具有凝聚力的小组•协同工作基本条件协同工作基本条件–要完成的任务必须清楚明确要完成的任务必须清楚明确–小组必须是明确确定的小组必须是明确确定的–小组必须对它的项目有自始至终的控制小组必须对它的项目有自始至终的控制4建立高效的小组建立高效的小组•小组内聚力小组内聚力•挑战性的目标挑战性的目标•反馈反馈•共同工作框架共同工作框架–必须完成什么计划?必须完成什么计划?–什么时间?什么时间?–按照什么顺序?按照什么顺序?–由谁来完成?由谁来完成?5怎样组建小组怎样组建小组•目标目标–确定和接受一系列共同的目标确定和接受一系列共同的目标•角色角色–明确责任明确责任•计划计划–确定达到目标的战略确定达到目标的战略•交流交流–成员之间的交流成员之间的交流•对外交流对外交流–小组与其他团体的交流小组与其他团体的交流6小组目标小组目标•具有挑战性,却是可实现的具有挑战性,却是可实现的•目标必须是具体的,可评估的目标必须是具体的,可评估的–如如•开发一个优质的产品开发一个优质的产品•进行一项高效率的、管理良好的工程进行一项高效率的、管理良好的工程•按时完成按时完成7小组目标小组目标•开发一个优质的产品开发一个优质的产品–在第一次编译之前发现的错误百分比:在第一次编译之前发现的错误百分比:80%–在系统测试中发现缺陷数目:在系统测试中发现缺陷数目:0–完成的产品包含的需求功能:完成的产品包含的需求功能:100%•进行一项高效率的、管理良好的工程进行一项高效率的、管理良好的工程–产品大小估计的误差:产品大小估计的误差:<20%–开发时间估计的误差:开发时间估计的误差:<20%•按时完成按时完成–提前或推迟开发周期的天数:提前或推迟开发周期的天数:<48小组成员目标小组成员目标•所有小组成员都要有具体可评估的目标所有小组成员都要有具体可评估的目标–成为一个合作的有效率的小组成员成为一个合作的有效率的小组成员•第一目标第一目标–进行始终如一的有纪律的个人工作进行始终如一的有纪律的个人工作–计划和跟踪个人的工作计划和跟踪个人的工作–生产出优质的产品生产出优质的产品9角色目标角色目标•小组长目标小组长目标–组建并维持一个有效的小组组建并维持一个有效的小组–分配任务分配任务–激励小组的所有成员在工程中努力工作激励小组的所有成员在工程中努力工作–解决小组成员提交给你的所有冲突解决小组成员提交给你的所有冲突–让教师全面了解小组的进度让教师全面了解小组的进度–有效地作为小组会议的召集者有效地作为小组会议的召集者–充当开发人员充当开发人员10角色目标角色目标•小组长所需的性格特点小组长所需的性格特点–愿意担负责任愿意担负责任–能作客观的决定能作客观的决定–能督促同学发挥最大的才能能督促同学发挥最大的才能–尊重你所领导的小组成员尊重你所领导的小组成员11角色目标角色目标•项目主管目标项目主管目标–生产一个出色的产品生产一个出色的产品–全面发挥小组成员的能力和才干全面发挥小组成员的能力和才干12角色目标角色目标•项目主管主要任务项目主管主要任务–领导小组制定开发策略领导小组制定开发策略–领导小组给要设计的产品制定最初的大小和领导小组给要设计的产品制定最初的大小和时间估计时间估计–领导软件需求细节的开发领导软件需求细节的开发–领导小组制定出高水平的设计领导小组制定出高水平的设计–领导小组制定出软件设计细节领导小组制定出软件设计细节–领导小组实现并测试产品领导小组实现并测试产品–参加开发参加开发13角色目标角色目标•项目主管所需的性格特点项目主管所需的性格特点–最重要的是:喜欢创建新东西最重要的是:喜欢创建新东西–想成为软件工程师,并想具有领导工程的设想成为软件工程师,并想具有领导工程的设计和开发工作的经历计和开发工作的经历–熟悉最主要的设计方法熟悉最主要的设计方法–能听取并采纳其他人的意见能听取并采纳其他人的意见14角色目标角色目标•计划制定者目标计划制定者目标–为小组和每个小组成员制定一个完整的、精为小组和每个小组成员制定一个完整的、精确的、正确的计划确的、正确的计划–定期(如每周)准确地报告小组情况定期(如每周)准确地报告小组情况15角色目标角色目标•计划制定者的主要任务计划制定者的主要任务–领导小组制定开发周期的任务计划领导小组制定开发周期的任务计划–领导小组制定开发周期的日程表领导小组制定开发周期的日程表–领导小组制定平衡稳定的计划领导小组制定平衡稳定的计划–跟踪小组对照计划进行的情况跟踪小组对照计划进行的情况–参加开发参加开发16角色目标角色目标•产品质量控制目标产品质量控制目标–代码检查代码检查–测试计划测试计划•技术支持目标技术支持目标–开发语言、工具开发语言、工具–测试方法、工具测试方法、工具–软件配置管理、版本管理等软件配置管理、版本管理等17对个人的要求•对工作负责对工作负责–履行责任履行责任–决不放弃决不放弃•努力为工作目标奋斗努力为工作目标奋斗–严格按时间表工作严格按时间表工作–明确的工作目标产生明确的工作目的明确的工作目标产生明确的工作目的–与小组成员合作与小组成员合作18小组协作责任•透明性透明性•聆听聆听•协商:有原则的协商,求同存异协商:有原则的协商,求同存异19参与小组活动•勇于发表自己的看法勇于发表自己的看法•对他人的意见要给予关注对他人的意见要给予关注•参与小组工作计划的制定并努力按照工参与小组工作计划的制定并努力按照工作计划开展工作作计划开展工作20项目启动项目启动•获得个人信息获得个人信息–每周哪些时间可用于项目开发、个人特长等每周哪些时间可用于项目开发、个人特长等信息信息•产品目标产品目标–小组成员共同讨论确定,获得教师认可小组成员共同讨论确定,获得教师认可•角色分配角色分配–不是固定死的,可兼任不是固定死的,可兼任21开发过程开发过程•按什么过程开发目标产品按什么过程开发目标产品–瀑布模型瀑布模型–原型模型原型模型–增量模型增量模型–迭代模型迭代模型–螺旋模型螺旋模型22瀑布模型瀑布模型•特点–分阶段–阶段间有因果关系–评审–允许反馈•适合场所–需求易于完善定义的软件23原型模型原型模型•特点–有效适应用户需求的变化–不知循环多少次,进度难以控制•适合场所–需求动态变化、难以确定的软件系统24增量模型增量模型•特点–并行开发–管理复杂25迭代模型迭代模型•特点–通过逐步迭代,建立软件系统•适合场所–需求没有/难以完整定义的软件26螺旋模型螺旋模型•特点–以风险为导向•适合场所–开发风险较大的软件27注意注意•应该努力选择满足开发小组要求、尽可能少的软件开发过程模型–软件开发模型数目不宜过多–所选择的软件开发模型不宜过于复杂–最好选择那些成员熟悉的、有使用经验的软件开发过程模型28工作量估计工作量估计•估计方法估计方法•基于功能点的估算方法基于功能点的估算方法•工作量分布工作量分布29工作量估计方法工作量估计方法•自顶向下自顶向下–COCOMO模型模型–LOC估计模型估计模型–功能点估计模型功能点估计模型•自底向上自底向上–先获得项目各部分估计的规模,再得到整个先获得项目各部分估计的规模,再得到整个项目的估计的规模项目的估计的规模 30基于功能点的估算方法基于功能点的估算方法(1/3)1.1.将每个功能分类为简单功能、中等复杂功能将每个功能分类为简单功能、中等复杂功能和复杂功能和复杂功能( (表表1 1) )2.2.根据应用中功能因子的加权和求得总的未经根据应用中功能因子的加权和求得总的未经调整的功能点调整的功能点UUCP3.3.计算技术复杂度因子计算技术复杂度因子TCF (表表2),,TCF=0.6 + (0.01 ××TFactor) 4.4.计算出环境因子计算出环境因子EF (表表3),,EF=1.4 + (-0.03 ×× EFactor) 5.5.计算计算UCP,,UCP = UUCP ×× TCF ×× EF31表表1 1::功能复杂度及其因子功能复杂度及其因子 功能类型功能类型说明说明因子因子简单功能简单功能3个或个或3个以下任务个以下任务5中等复杂功能中等复杂功能4~~7个任务个任务10复杂功能复杂功能>7个任务个任务1532表表2 2::技术因素及其权重技术因素及其权重 序号序号因素因素权重权重1分布式系统分布式系统22响应或者吞吐量绩效目标响应或者吞吐量绩效目标13终端用户效率(联机)终端用户效率(联机)14复杂的内部处理复杂的内部处理15代码必须是可重用的代码必须是可重用的16易于安装易于安装0.57易于使用易于使用0.58可移植可移植29易于变更易于变更110并发并发111包括特殊的安全特征包括特殊的安全特征112提供对第三方的直接访问提供对第三方的直接访问113特殊的用户培训设施特殊的用户培训设施133表表3 3::团队的环境因素及其权重团队的环境因素及其权重 序号序号因素因素权重权重1熟悉熟悉Internet1.52应用经验应用经验0.53面向对象经验面向对象经验14先导分析人员能力先导分析人员能力0.55积极性积极性16稳定的需求稳定的需求27兼职工作人员兼职工作人员-18难的编程语言难的编程语言-134基于功能点的估算方法基于功能点的估算方法(2/3)•举例举例–有有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、、3 35基于功能点的估算方法基于功能点的估算方法(3/3)1.UUCP = 5××5 + 9××10 + 12××15 = 295 2.TFactor值为值为40,,TCF为为1.0 3.EFactor为为22,,EF为为0.74 4.UCP = 295 ×× 1.0 ×× 0.74 = 218.3 5.218 ×× 20 = 4360人时人时= 513人天(人天(8.5小时小时/天)天) 36工作量分布工作量分布37项目跟踪项目跟踪•什么是软件项目跟踪什么是软件项目跟踪•软件项目跟踪对象软件项目跟踪对象•软件项目跟踪方式软件项目跟踪方式•软件项目跟踪目标软件项目跟踪目标38什么是软件项目跟踪什么是软件项目跟踪•定义定义–在项目实施过程中,随时掌握项目的实际在项目实施过程中,随时掌握项目的实际开发情况,使得当项目实施与计划相背离、开发情况,使得当项目实施与计划相背离、或者出现问题和风险时,能够采取有效的或者出现问题和风险时,能够采取有效的措施。
措施39什么是软件项目跟踪什么是软件项目跟踪(示意图示意图)40软件项目跟踪对象软件项目跟踪对象(项目风险项目风险)41软件项目跟踪对象软件项目跟踪对象(项目进展项目进展)42软件项目跟踪对象软件项目跟踪对象(开发活动进展开发活动进展)43软件项目跟踪对象软件项目跟踪对象(开发活动问题开发活动问题)44软件项目跟踪方式软件项目跟踪方式•成立项目跟踪小组成立项目跟踪小组–由项目组成员(小项目)或负责人(大项目)组成由项目组成员(小项目)或负责人(大项目)组成•指定项目跟踪负责人指定项目跟踪负责人–负责协调项目进度的跟踪工作负责协调项目进度的跟踪工作•定期召开项目跟踪会议,获取项目实施的详细情定期召开项目跟踪会议,获取项目实施的详细情况和面临的问题况和面临的问题–最好每周一次最好每周一次–了解项目实施情况了解项目实施情况–汇报问题汇报问题45软件项目跟踪目标软件项目跟踪目标•通过跟踪对软件项目的实施情况提供可视性通过跟踪对软件项目的实施情况提供可视性–知道项目的实际执行和实际情况知道项目的实际执行和实际情况–知道项目实施过程中(可能)出现了哪些问题知道项目实施过程中(可能)出现了哪些问题–知道如何采取措施防止问题的出现,或者出现时知道如何采取措施防止问题的出现,或者出现时该采取什么办法减少它给软件项目实施带来的影该采取什么办法减少它给软件项目实施带来的影响和损失响和损失46我们的科研项目•高可信软件工程技术高可信软件工程技术–软件测试与验证(软件测试与验证(921、战机、导弹、卫星、驱逐、战机、导弹、卫星、驱逐舰、联指)舰、联指)–软件可靠性工程软件可靠性工程•互联网信息处理互联网信息处理–自然语言理解和信息过滤自然语言理解和信息过滤–语义语义Web–Web Service•星载星载欢迎感兴趣的同学参与!欢迎感兴趣的同学参与!47。
