《软件工程软件策划.pptx》由会员分享,可在线阅读,更多相关《软件工程软件策划.pptx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、5.1软件策划概论 软件策划和软件项目策划是一个意思,既是为软件开发者和管理者制定合理的工作计划,又是为软件项目跟踪和监控提供考核依据。软件策划,或者说软件计划,英文单词都是指PlanningPlanning。但是,策划包含有出谋划策和做计划两个意思,计划只是策划的一个主要结果。软件策划属于软件管理和软件决策的范畴,是项目经理以上人员的职责范围,是软件企业管理的重大事件之一。第1页/共33页软件策划的输入/输出1)1)合同合同/立项建议书立项建议书2)2)用户需求报告用户需求报告 策划过程1)软件开发计划书2)质量保证计划3)配置管理计划4)里程碑及评审计划第2页/共33页软件策划的目的 软件
2、策划的目的,是为软件开发和软件管理制定合理的工作计划。由于项目的管理者,是按照计划确定的内容和进度对项目进行管理的,所以计划的合理性将直接关系到项目管理的成败。软件策划的理论基础 软件策划的基础,是软件生命周期模型的选取。软件组织和项目经理,要根据项目的特点,在瀑布模型、增量模型、迭代模型、原型模型中选取一种,并经过适当的裁剪后,列入项目计划,作为软件项目策划的理论依据之一。第3页/共33页软件策划的步骤步骤步骤步骤名称步骤名称步骤内容步骤内容1 1估计软件工作估计软件工作产品的规模产品的规模及所需的资及所需的资源源软件工作产品,包括需求规格说明书,概要软件工作产品,包括需求规格说明书,概要设
3、计说明书,详细设计说明书,源代码,设计说明书,详细设计说明书,源代码,测试计划和测试报告,质量保证计划,软测试计划和测试报告,质量保证计划,软件配置管理计划,里程碑及评审点计划件配置管理计划,里程碑及评审点计划2 2制定时间表制定时间表包括开发进度时间表和管理进度时间表:软包括开发进度时间表和管理进度时间表:软件开发计划、质量保证计划、软件配置管件开发计划、质量保证计划、软件配置管理计划、测试计划、评审计划理计划、测试计划、评审计划3 3鉴别和评估风鉴别和评估风险险政策风险,资源风险,市场突变风险,技术政策风险,资源风险,市场突变风险,技术风险和技能风险等风险和技能风险等4 4与相关组或人与相
4、关组或人协商策划中协商策划中的有关约定的有关约定策划的结果要实事求是,要得到各有关方面策划的结果要实事求是,要得到各有关方面的同意和认可的同意和认可第4页/共33页软件策划的目标 (1)(1)对项目策划和跟踪用的三个软件估计已建立文档。这三个估计是:工作产品规模估计 工作量及成本估计 计算机资源估计;(2)(2)软件项目活动和约定,是有计划的并巳建立文档。这里的活动,包括开发活动和管理活动。这里的约定,是指对项目的各种标准、规范、规程的约束;注:标准是对产品的约束规范是对行的约束规程是对操作的约束 第5页/共33页软件策划的目标 (3)(3)受影响的组和个人,同意他们对软件项目的约定。受影响的
5、组和个人有:软件工程组(项目组)软件估计组 系统测试组 质量保证组 配置管理组 合同管理组 文档支持组第6页/共33页软件策划的时机 对软件项目进行策划的时机,中国人习惯的作法与国际通用的作法不大一致。美国人要先做需求分析,后做软件策划,因为需求不清楚,项目的功能点个数、性能点个数、接口个数、界面个数、实体个数、文档页数都心中无数,策划人员是无法估计工作量、进度、经费和其他资源的,完成项目策划是不现实的。与美国人相反,中国人习惯在用户需求报告之前策划,不习惯在用户需求报告之后策划。不管怎么样,调查研究是十月怀胎,软件策划是一朝分娩,心中无数是不能作软件策划的。因此,我们要逐渐与向国际接轨。第7
6、页/共33页5.2软件策划方法 直到目前为止,软件策划的方法仍然是采用经验数据加结构化方法,这些方法有三个要点:(1)(1)粒度由粗到细的分解:自顶向下、逐步细化、逐项逐条逐日安排计划。(2)(2)粒度由细到粗的综合:自底向上、逐步归纳、逐日逐周逐月安排计划。(3)(3)同类项目经验数据类比法、同行专家协商策划法。软件策划是以用户确认的需求为基础,以软件组织内部的软件标准为依据,把组织内部类似项目的成功经验作为策划时的参考。第8页/共33页策划阶段主要进行的活动 1.1.定义软件过程。就是根据选定的生命周期模型,规定每一开发阶段的工作步骤及文档标准。2.2.进行软件估计。就是指对软件项目进行量
7、化估计,并记录估计结果的过程。3.3.进行风险分析。就是对政策风险、技术风险、技能风险、资源风险等进行逐个分析与分解。4.4.进行项目跟踪与监督。就是对策划阶段输出的软件开发计划,进行动态跟踪与实时监督,一旦发现偏差,必须立即纠正。5.5.完成软件开发计划书 。6.6.使参与软件开发计划制定的组或个人意见统一。第9页/共33页1定义软件过程 开发计划是对项目定义软件过程的规模、工作量、成本、进度、质量、人员配置和其他资源的具体描述。由于软件项目能共享过程数据,所以在制定计划时,能吸取软件组织中积累的经验教训。为此,要建立较完善的“软件测量数据库”和“文档库”,这一工作称作过程财富积累,一般在C
8、MMI2CMMI2级就要开始考虑,在CMMI3CMMI3级就必须做到。第10页/共33页2进行软件估计 项目组要对项目的规模、工作量、成本、进度、关键计算机资源等方面进行量化估计,然后使用估计数据进行软件策划。在以后的项目执行过程中,若发现估计数据严重偏离实际数据,则要重新进行软件估计。这些收集的实际项目数据与估计数据,要及时地录入到“软件测量数据库”之中,日积月累,就建立了强大的软件过程数据库,为日后的软件策划和CMMCMM升级准备了雄厚的财富。软件估计的内容和方法包括如下三个方面:第11页/共33页(1)对软件工作产品的规模进行量化估计 软件工作产品规模和工作量的估计方法序号序号规模估计方
9、法规模估计方法工作量估计方法工作量估计方法工作量估计方法说明工作量估计方法说明1 1功能点个数功能点个数N N个功能点个功能点/人月人月一个人的月工作量,能完成的功能一个人的月工作量,能完成的功能点个数点个数2 2性能点个数性能点个数N N个性能点个性能点/人月人月一个人的月工作量,能完成的性能一个人的月工作量,能完成的性能点个数点个数3 3代码行数代码行数N N行代码行代码/人月人月一个人的月工作量,能完成的代码一个人的月工作量,能完成的代码行数行数4 4实体个数实体个数N N个实体个实体/人月人月一个人的月工作量,能完成的实体一个人的月工作量,能完成的实体个数个数5 5需求个数(需求个数(
10、Use Use CaseCase个数)个数)N N个需求数个需求数/人月人月一个人的月工作量,能完成的一个人的月工作量,能完成的Use Use casecase个数个数6 6文档页数文档页数N N页文档页文档/人月人月一个人的月工作量,能完成的文档一个人的月工作量,能完成的文档页数页数第12页/共33页对代码行的估计方法 LOC LOC 指所有的可执行的源代码行数。1 LOC1 LOC 的价值和人月代码行数,体现软件组织的生产力。可以根据历史项目的审计,来核算组织的单行代码价值。例如,统计发现某公司每一万行 C C 语言源代码形成的源文件为 250 K 250 K。某项目的源文件大小为 3.7
11、5 3.75 M M,则可估计该项目源代码大约为 15 15 万行,该项目累计投入工作量为 240 240 人月,每人月费用为 10000 10000 元(包括人均工资,福利,办公费用公滩等),1 LOC 1 LOC 的价值为:(2401000024010000)/150000/150000 16 16 元/1 LOC/1 LOC 项目的人月均代码行数为:150000/240=625 LOC/150000/240=625 LOC/人月。目前,ITIT企业软件项目规模估计方法有以下四种:第13页/共33页方法1 1:希腊古都法(Delphi法)在没有历史数据的情况下,希腊古都法是流行的专家评估法
12、。它要求有多种软件相关经验的人参与,互相说服对方。其步骤是:1 1、协调人向各专家提供项目需求规格和估计表格;2 2、协调人召集小组会,专家讨论与规模相关的因素;3 3、专家匿名填写迭代估计表格;4 4、协调人整理出一个估计,以迭代表形式返回专家;5 5、协调人召集小组会,讨论较大的估计差异;6 6、专家复查估计,在迭代表上提交另一个匿名估计;7 7、重复 4-6 4-6,直到最低估计和最高估计一致为止。第14页/共33页方法2 2:类比法 在有历史数据的情况下,类比法适合评估一些与历史项目在应用领域、环境、复杂度方面相似的估计项目,通过估计项目与历史项目的比较,得到规模估计。其步骤是:1 1
13、、整理出历史项目功能点列表和实现每个功能点的代码行;2 2、标识出估计项目的功能点列表与历史项目功能点列表的差异;3 3、按照历史项目每个功能点的代码行,确定估计项目每个功能点的代码行;4 4、通过步骤1 1和3 3 的循环,得出所有功能点的估计;5 5、产生总的规模估计。第15页/共33页方法2 2:类比法(续)注:用类比法中,往往还要解决可重用代码的估算问题。估算出新项目可重用的代码中,需重新设计的百分比、需重新编码的百分比、需重新测试的百分比。根据这三个百分比,可用下面的公式计算等价新代码行:等价新代码行=(=(重新设计%+%+重新编码%+%+重新测试%)/3%)/3已有的旧代码行 比如
14、有1000010000行旧代码,假定30%30%要重新设计,50%50%要重新编码,70%70%要重新测试,那么其等价的新代码行为:(30%+50%+70%)/310000=5000(30%+50%+70%)/310000=5000(新代码行)意即:重用这 10000 10000 代码相当于新编写 5000 5000 代码行的工作量。第16页/共33页方法3 3:功能点估计法 功能点(实体数、构件数、屏幕数、报表数、文档数)估计方法。通过研究需求来确定各种输入、输出、计算和数据库需求的数量和特性。通常的步骤是:1 1、计算输入、输出、查询、主控文件和接口需求的数目;2 2、将这些数据进行加权乘
15、,得到总的功能点数;3 3、估计每个功能点的规模,得出总的规模估计;4 4、估计者根据对复杂度的判断,总数可以用+25%+25%、0 0、或-25%-25%调整。注:对一个软件产品的开发,功能点对项目早期的规模估计很有帮助。然而,在了解产品越多后,功能点可以转换为软件规模测量更常用的 LOC LOC。第17页/共33页代码行法和功能点法的比较LOC代码行法和FP功能点法,它们之间的区别和关系如下:FP功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高,假如这个时候使用LOC代码行估算法,则误差会比较大。使用FP功能点估算法无需懂得软件使用何种开发技术。LOC代
16、码行估算法与软件开发技术密切相关。FP功能点法是从用户为角度进行估算,LOC代码行估算法则是从开发者角度进行估算的。通过一些行业标准或企业自身度量的分析,FP功能点估算法是可以转换为LOC代码行的。第18页/共33页方法4 4:无礼估计法 无礼估计法对各个项目活动的完成工作量(规模),按三种不同情况估计:一个期望规模估计 一个最低可能估计 一个最高可能估计 用这三个估计用来得到一个产品期望规模和标准偏差,称为无礼统计估计法。无礼的估计法可得到代码行的期望值E E和标准偏差SDSD。第19页/共33页(2)对软件工作产品成本的费用进行量化估计软件工作产品成本估计的方法序序 号号估估 计计 方方
17、法法估计单位估计单位方方 法法 说说 明明1直接的劳务费直接的劳务费人民币元人民币元开发人员的工资和福利开发人员的工资和福利2管理费管理费 人民币元人民币元技术管理和行政管理人员的技术管理和行政管理人员的工资和福利工资和福利3差旅费差旅费人民币元人民币元售前、售中、售后的人员差售前、售中、售后的人员差旅费旅费4计算机使用费计算机使用费人民币元人民币元网络设备的折旧费和房租水网络设备的折旧费和房租水电费电费5其他招待费和其他招待费和公关费公关费人民币元人民币元控制在总费用的控制在总费用的15%以内以内第20页/共33页(3)对关键计算机资源进行量化估计关键计算机资源估计的方法序号序号估估 计计
18、方方 法法方方 法法 说说 明明1软件工作产品的规软件工作产品的规模模对存储能力(磁盘容量和内存大小)的对存储能力(磁盘容量和内存大小)的要求要求2运行处理的负载运行处理的负载对处理器速度的要求对处理器速度的要求3通信量通信量对网络通道和带宽的要求对网络通道和带宽的要求第21页/共33页3.风险分析所谓风险分析,是指对项目及团队的政策风险、技术风险、技能风险、资源风险等因素,进行逐个分析与分解,制定用于跟踪和监控风险的风险管理计划。风险分析活动,是通过对项目的各个方面可能存在的风险进行识别和分析,逐步降低与化解风险,确定避免或减轻风险的策略及措施,以达到回避风险,保证项目顺利进行的目的。第22
19、页/共33页五种风险风险分析序号序号风险名称风险名称风险内容风险内容1 1政策风险政策风险ITIT企业外部和内部两个方面的政策及政策的企业外部和内部两个方面的政策及政策的变化,将会给项目带来什么风险变化,将会给项目带来什么风险2 2技术风险技术风险新技术的成熟程度及难度系数,将会给项目新技术的成熟程度及难度系数,将会给项目带来什么风险带来什么风险3 3技能风险技能风险项目组成员学习、领会、掌握、运用新技术项目组成员学习、领会、掌握、运用新技术的能力,将会给项目带来什么风险的能力,将会给项目带来什么风险4 4资源风险资源风险保证项目正常进行所需的各种资源的供应程保证项目正常进行所需的各种资源的供
20、应程度,将会给项目带来什么风险度,将会给项目带来什么风险5 5其他风险其他风险目前意想不到的风险,即不可预测的风险,目前意想不到的风险,即不可预测的风险,如天灾人祸如天灾人祸第23页/共33页4软件项目跟踪与监督所谓软件项目跟踪与监督,就是对软件开发计划进行动态跟踪与实时监督,一旦发现偏差,必须立即纠正。因为:项目跟踪与监督的基础,是开发计划。在跟踪过程中,定期地或事件驱动式的对开发计划进行修订。在美国,项目实践中通常指定一名项目软件经理(ProjectSoftwareManager),由项目软件经理负责,依据开发计划对项目实施跟踪与监督。第24页/共33页5软件开发计划书的内容(1)软件项目
21、的目的、范围、目标和对象。(2)软件生存周期的选择与裁剪。(3)确定软件开发和维护的规范、方法和标准。例如,开发策略、配置管理、质量保证、设计方法、问题跟踪和解决、软件测量等。(4)软件工作产品的确定。(5)对工作产品规模的估计。(6)对工作量和成本的估计。(7)关键计算机资源的估计和使用情况。(8)项目的进度、里程碑和评审计划。(9)风险的识别和评估。(10)项目工程设施和工具的计划。第25页/共33页6参与软件开发计划制定的组或个人组或个人名组或个人名组或个人名称说明组或个人名称说明1软件工程组软件工程组 软件工程组国内叫软件工程组国内叫项目组项目组2系统工程组系统工程组 系统工程组是负责
22、下列工作的个人的集合:规定系统需求;系统工程组是负责下列工作的个人的集合:规定系统需求;将系统需求分配给硬件、软件和其他成分;规定硬件、软件和将系统需求分配给硬件、软件和其他成分;规定硬件、软件和其他成分之间的界面;以及监控这些成分的设计和开发,以保其他成分之间的界面;以及监控这些成分的设计和开发,以保证它们符合其规格说明。系统工程组就是证它们符合其规格说明。系统工程组就是总体设计组总体设计组3软件质量保软件质量保证组证组 软件质量保证组是一些计划和实施项目的质量保证活动的个软件质量保证组是一些计划和实施项目的质量保证活动的个人的集合,工作的目的是保证遵守软件过程的步骤和标准。即人的集合,工作
23、的目的是保证遵守软件过程的步骤和标准。即SQASQA组组4高级管理者高级管理者 高级管理者在高的层次上履行管理职责高级管理者在高的层次上履行管理职责5项目经理项目经理 项目经理履行的职责是对整个项目的总体业务负责;项目经项目经理履行的职责是对整个项目的总体业务负责;项目经理是指导、控制、管理和调整项目完成构造软件或硬件系统工理是指导、控制、管理和调整项目完成构造软件或硬件系统工作的个人,项目经理是最终向顾客负责的个人作的个人,项目经理是最终向顾客负责的个人第26页/共33页7软件开发计划的编制工具软件开发计划采用自然语言描述,可以在描述中加入图表。编制工具可以采用Microsoft公司的Wor
24、d和Project,一般采用Word书写文件的主体部分,采用Project形成的文件作为它的附件。第27页/共33页5.3软件策划文档软件策划文档就是软件开发计划书,它一般还包括质量保证计划、软件配置管理计划、测试计划、里程碑及评审点计划。由于测试、质量保证和配置管理都比较复杂,所以将它们放在后续章节中单独论述。软件开发计划是软件项目策划过程的最终工作产品,所以放在这里详细介绍。软件开发计划书编写参考指南(P110)第28页/共33页5.4策划管理方法与文档1软件策划管理方法在CMM框架中,软件策划管理的方法,是面向CMM2的关键过程域SPTO(SoftwareProjectTrackinga
25、ndOversight)方法。其目的是建立对实际进展的可视性监控,使管理者能在计划发生明显偏离时采取有效措施。软件策划完成之后,必须要对策划输出文档进行评审。只有评审获得通过,才能结束策划阶段的工作。第29页/共33页1软件策划管理方法项目经理按计划跟踪项目进度、软件工作产品规模、工作量和成本、关键计算机资源、软件工程技术活动和软件风险,并以此编制项目进展报告。项目经理定期或事件驱动组织软件工程组进行内部评审,以便对照开发计划跟踪,并将评审结果告知软件相关组。当软件开发计划发生20%的偏离时,必须修改软件开发计划,并将修改的结果通知有关的组和个人。计划跟踪与监控时,必须注意软件工程中的“20/
26、80原理”,即“二八定律”。第30页/共33页2软件策划管理文档1)1)软软件件开开发发计计划划书书2)2)项项目目组组的的实实际际工工作进度作进度状态状态 软件策划管理过程1)1)项目周报2)2)项目月报 3)3)里程碑报告4)4)重大事件报告5)5)软件开发计划评审报告6)6)项目计划变更申请表7)7)计划更改与批准记录第31页/共33页5.5本章小结 如果说,软件立项就是软件组织的重大决策,那么,软件策划就是贯彻执行重大决策的具体行动。立项或签订合同是软件项目的源头,策划是指导软件项目开发和管理的依据。为了使软件策划有坚实的基础,使软件开发计划不致于过多偏离项目工程进度、质量、资源的实际(小于20%)20%),最常用的办法是:(1)(1)策划的时机,迭择在用户需求报告之后,而在需求规格说明书之前;(2)(2)软件估计既是重点又是难点,估计时要查阅“软件测量数据库”,参照同类可比项目的历史经验;(3)(3)由同行专家,对软件开发计划书进行评审。第32页/共33页感谢您的观看!第33页/共33页