1、AuthorJeff GaoVersion1.2Last Updated2022-12-31n通常,大型通常,大型IT项目系统产品都具有如下特征:项目系统产品都具有如下特征:需求是在开发过程中逐步清晰的需求是在开发过程中逐步清晰的系统结构复杂,技术难度高系统结构复杂,技术难度高n所以选择一个合适的产品开发生命周期模型至关重要,常所以选择一个合适的产品开发生命周期模型至关重要,常见的生命周期模型:见的生命周期模型:线性模型线性模型增量模型增量模型螺旋模型螺旋模型并行模型等并行模型等2022-12-3第2页n项目计划的关键步骤是为项目选定合适的生命周期模型,项目计划的关键步骤是为项目选定合适的生命
2、周期模型,在该模型的指导下,确定活动之间的顺序和依赖关系在该模型的指导下,确定活动之间的顺序和依赖关系n生命周期模型的选择基准在于:确保在正确的阶段,做正生命周期模型的选择基准在于:确保在正确的阶段,做正确的事情确的事情n你必须确保项目的特征可以使得在相应的阶段,具备足够你必须确保项目的特征可以使得在相应的阶段,具备足够的条件有效开展相应的活动的条件有效开展相应的活动2022-12-3第3页需求分析设计实现测试Objective?2022-12-3第4页n将用户的原始需求逐步求精的过程。每个阶段都进行了一将用户的原始需求逐步求精的过程。每个阶段都进行了一次变换或求精次变换或求精n每个阶段定义明
3、确,以上个阶段输出为输入,产生下一个每个阶段定义明确,以上个阶段输出为输入,产生下一个阶段所需的输入阶段所需的输入n强调了可追溯性,可控制性强调了可追溯性,可控制性n系统化的方法系统化的方法2022-12-3第5页Project Req.and PlanningReq.AnalysisHigh Level DesignUnit TestIntegration TestSystem TestOperation(Alpha,Beta)Detailed DesignImplementation更严格的线性模型,着重了前期的工作产更严格的线性模型,着重了前期的工作产品的验证品的验证2022-12-3第
4、6页n大部分大部分IT项目都可以采用瀑布项目都可以采用瀑布/线性模型?线性模型?n为什么?为什么?2022-12-3第7页n在项目开始阶段,用户常常难以清楚的给出所有需求。但在项目开始阶段,用户常常难以清楚的给出所有需求。但线性模型却依赖于此,还不能接受许多项目的开始阶段自线性模型却依赖于此,还不能接受许多项目的开始阶段自然存在的不确定性。然存在的不确定性。n产品的运行版本要到项目开发晚期才能得到。由于缺乏有产品的运行版本要到项目开发晚期才能得到。由于缺乏有效的中间产品验证手段,很多致命错误可能很晚才能发现。效的中间产品验证手段,很多致命错误可能很晚才能发现。n对用户提出的修改适应性差,容易造
5、成混乱,对用户提出的修改适应性差,容易造成混乱,2022-12-3第8页n提供了一个软件工程化的模板提供了一个软件工程化的模板n是很多改进模型的基础是很多改进模型的基础2022-12-3第9页n线性模型的特点:一次构造一个完全符合用户需求的产品。线性模型的特点:一次构造一个完全符合用户需求的产品。n迭代式模型基于这样一个事实,任何一个复杂系统都需要迭代式模型基于这样一个事实,任何一个复杂系统都需要经过一段时间的演化:经过一段时间的演化:业务和产品需求随着开发工作的进展常常发生变化业务和产品需求随着开发工作的进展常常发生变化紧迫的市场期限难于完成一个完善的产品紧迫的市场期限难于完成一个完善的产品
6、只要核心能够被很好的理解,产品的细节可以以后丰富和定义只要核心能够被很好的理解,产品的细节可以以后丰富和定义2022-12-3第10页n增量模型融合了线性模型的基本特征,每一个线性序列产增量模型融合了线性模型的基本特征,每一个线性序列产生软件的一个可发布的生软件的一个可发布的“增量增量”n第一个增量往往着重在系统架构和核心功能第一个增量往往着重在系统架构和核心功能n系统架构反映了系统的核心需求系统架构反映了系统的核心需求2022-12-3第11页功能需求功能需求功能需求功能需求功能需求需求分析设计实现功能测试需求分析设计实现功能测试需求分析设计实现功能测试增量发布增量发布增量发布系统测试系统测
7、试系统测试2022-12-3第12页n对需求进行分解,只构造清晰的,完整的,被确认的需求对需求进行分解,只构造清晰的,完整的,被确认的需求n短周期迭代式构造产品,小增量积累短周期迭代式构造产品,小增量积累n尽早验证最终产品,不要过分相信中间产品的验证手段尽早验证最终产品,不要过分相信中间产品的验证手段n建立自动化测试系统,同步积累对产品的验证(回归测试)建立自动化测试系统,同步积累对产品的验证(回归测试)n建立各个工作产品一致的配置管理活动支持建立各个工作产品一致的配置管理活动支持2022-12-3第13页n将项目目标分解成以需求为基本单元将项目目标分解成以需求为基本单元n以需求的实现作为任务
8、驱动和跟踪以需求的实现作为任务驱动和跟踪n需求的不断实现,实现增量式构造产品,每一次的产品创需求的不断实现,实现增量式构造产品,每一次的产品创建和发布作为里程碑建和发布作为里程碑2022-12-3第14页需求实现需求实现 3需求实现需求实现 1需求实现需求实现 2需求实现需求实现 4需求实现需求实现 5集成集成测试测试发布发布1需求实现需求实现 8需求实现需求实现 6需求实现需求实现 7需求实现需求实现 9集成集成测试测试发布发布2集成集成测试测试发布发布3集成集成测试测试发布发布 n需求实现需求实现 10需求实现需求实现 13需求实现需求实现 12需求实现需求实现 14对外发布对外发布上线上
9、线2022-12-3第15页n建立以需求为核心的跟踪系统作为项目运作的核心建立以需求为核心的跟踪系统作为项目运作的核心任何一个任务分配来源都是某一项需求请求任何一个任务分配来源都是某一项需求请求每一项跟踪事件都有一个独立编号每一项跟踪事件都有一个独立编号ID作为标识作为标识按照预定义的过程实现需求直到结束状态按照预定义的过程实现需求直到结束状态中间的某一状态的特殊事件,例如问题解决,子需求完成也可以激中间的某一状态的特殊事件,例如问题解决,子需求完成也可以激发另外一个跟踪事件的发起,两者呈现父子关系发另外一个跟踪事件的发起,两者呈现父子关系2022-12-3第16页n整个项目进入实现阶段后运行
10、就是围绕着变更跟踪系统整个项目进入实现阶段后运行就是围绕着变更跟踪系统New RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementationIntegrationBuildVerifiedAny OneCCB LeaderTechnical MarketingSystem EngineeringDevelopmentProduct BuildSystem Test2022-12-3第17页n新任务开发是始于一个新的需求新任务开发是始于一个新的需求N
11、ew RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementationIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第18页nCCB确认并分配责任组确认并分配责任组New RequirementChangeRequestProblem ReportCCB
12、AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementationIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第19页n负责实施的组制定实施计划负责实施的组制定实施计划New RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDes
13、ignSRSMRSImplementationIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第20页nTM组根据请求编写详细的组根据请求编写详细的Market Requirement DescriptionNew RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImp
14、lementationIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第21页nSE组负责分配需求,并且编写相应的组负责分配需求,并且编写相应的Software Requirement SpecNew RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementa
15、tionIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第22页n开发组根据分配的开发组根据分配的SRS完成设计、实现和开发验证,并且提交等待集完成设计、实现和开发验证,并且提交等待集成成New RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementatio
16、nIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第23页nPB组定期将提交的集成请求集成到产品中并发布组定期将提交的集成请求集成到产品中并发布New RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementationIntegrationBuildVerif
17、iedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第24页nST组对发布的产品进行测试组对发布的产品进行测试New RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementationIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct B
18、uildSystem TestTechnical MarketingSystem Engineering2022-12-3第25页New RequirementChangeRequestProblem ReportCCB AnalysisAssignRejectPlanReq AllocatedDesignSRSMRSImplementationIntegrationBuildVerifiedAny OneCCB LeaderDevelopmentProduct BuildSystem TestTechnical MarketingSystem Engineering2022-12-3第26页
19、n任务的分配,任何一项任务的指派都有明确的出处任务的分配,任何一项任务的指派都有明确的出处新需求,新功能或是新的任务新需求,新功能或是新的任务变更,需求变更变更,需求变更问题,修复出现的缺陷问题,修复出现的缺陷n以流程为中心的任务执行以流程为中心的任务执行任何一个任务执行都必须遵循预定义的流程任何一个任务执行都必须遵循预定义的流程在制定项目的流程时,是以角色为中心,而非职能在制定项目的流程时,是以角色为中心,而非职能清晰的反映出任务执行的状态清晰的反映出任务执行的状态n项目状态一目了然项目状态一目了然2022-12-3第27页n跟踪系统作为任务的发起,其结果都是导致处于配置系统跟踪系统作为任务的发起,其结果都是导致处于配置系统下的某一个产品版本变化,所以可以将两个系统关联下的某一个产品版本变化,所以可以将两个系统关联工作分支的创建和变更事件工作分支的创建和变更事件ID相关联相关联发布分支发布分支工作分支工作分支Build_01_23_34CR_1234562022-12-3第28页