软件工程(1)(1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

那只猴子能用C编程,非常快,代码紧凑高效,所以值那么多钱。$5000哦,那是一只C++猴;它会面向对象的编程,会用VisualC++,还懂得一点Java,是非常有用的$10000$50000我们也不知道它究竟能做什么,不过它是做项目管理出身的Unit4软件项目管理70年代中期70%的项目是由于管理不善引起的,而并不是因为技术实力不够管理是影响软件研发项目全局的因素,而技术因素只影响局部。90年代中期美国软件工程实施现状的调查:10%的项目能够在预定的费用和进度下交付。成为软件项目开发中最重要的核心问题之一。软件项目管理什么是软件项目管理?软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理的对象是软件工程项目,他所涉及的范围覆盖了整个软件工程过程。MeilerPage-Jones:我拜访了很多商业公司,我也观察了很多数据处理的管理者,我常常恐惧地看到这些管理者徒劳地与恶梦般的项目斗争着,在根本不可能的最后期限下苦苦挣扎,或是在交付了使其用户极为不满的系统之后,又继续花费大量的时间去维护该系统。QBT管理的范围有效的项目管理集中于三个P上:People项目参与者项目负责人软件项目组协调和通讯Problem软件范围问题分解Process合并问题和过程过程分解软件项目管理软件项目计划风险管理项目成本预算1.软件项目计划软件项目计划SoftwareProjectPlanning对估算的观察ObservationsonEstimating项目计划目标ProjectPlanningObjectives软件范围SoftwareScope资源Resources软件项目估算SoftwareProjectEstimation分解技术Decomposition经验估算模型EmpiricalEstimationModels自行开发或购买的决策TheMake/BuyDecision软件项目计划—ObservationsonEstimatingAleadingexecutivewasonceasked:“Whatsinglecharacteristicwasmostimportantwhenselectingaprojectmanager?”Hisresponse:“Apersonwiththeabilitytoknowwhatwillgowrongbeforeitactuallydoes…”Andthecouragetoestimatewhenthefutureiscloudy.”软件项目计划—ObservationsonEstimating估算需要:经验experience了解以前有用的信息accesstogoodhistoricalinformation当仅存定性数据时进行定量测量的勇气thecouragetocommittoquantitativepredictionswhenqualitativeinformationisallthatexists.软件项目计划—ObservationsonEstimatingKeypointsProjectcomplexity,projectsize,andthedegreeofstructuraluncertaintyallaffectthereliabilityofestimate.亚里斯多德:记住:应该满足于事物的本性所能容许的精确度,当只能近似于真理时,不要去寻求绝对的准确……软件项目计划—ProjectPlanningObjectives提供一个框架,使得管理者能够对资源、成本及进度进行合理的估算。一个限定的时间框架内“最好的情况”及“最坏的情况”通过一个信息发现的过程实现的软件项目计划—ProjectPlanningObjectivesAdvice:Themoreyouknow,thebetteryouestimate.Therefore,updateyourestimatesastheprojectprogresses.软件项目计划—SoftwareScopeKeypoint:Aconsiderationofsoftwarescopemustincludeonevaluationofallexternalinterfaces.软件项目计划—SoftwareScope软件项目计划的第一个活动是软件范围的确定。软件范围描述了功能、性能、约束条件、接口及可靠性。软件项目计划—SoftwareScope范围是通过回答下列问题来定义的:背景:待建造的软件如何适应于大型的系统、产品或商业的背景,在该背景下要加什么约束?信息目标:软件要产生什么样的客户可见的数据对象输出,需要什么样的数据对象输入?功能和性能:软件执行什么样的功能使得输入数据才能变换成为输出数据?需要满足什么特殊的性能特征吗?软件项目计划—SoftwareScopeAdvice:Technicalfeasibilityisimportant,butbusinessneedisevenmoreimportant.Itdoesnogoodtobuildahightechsystemorproductthatnoonereallywants.软件项目计划—ResourcesKeyPoint:Tobereusedeffectively,softwarecomponentsmustbecataloged,standardized,andvalidated.软件项目计划—Resources硬件/软件工具可复用构件人员提供支持开发工作的基础极大地降低开发成本,时间主要资源软件项目计划—Resources人力资源描述组织的职位及专业技能等可复用软件资源可直接使用的构件具有完全经验的构件具有部分经验的构件新构件环境资源硬件及软件软件项目计划—Resources资源说明四特征资源描述可用性说明需要该资源的时间被使用的持续时间软件项目计划—Resources软件成本及工作量估算永远不会是一门精确的科学。可以从神秘的技巧向一系列系统化的步骤转化软件项目计划—SoftwareProjectEstimation几种可考虑的选择将估算拖延到项目的最后基于已经完成的类似项目使用简单的分解技术使用经验模型软件项目计划—SoftwareProjectEstimationAdviceWhencollectingproductivitymetricsforprojects,besuretoestablishataxonomyofprojecttypes.Thiswillenableyoutocomputedomainspecificaverages,makingestimationmoreaccurate.软件项目计划—Decomposition分解问题,将项目分解成若干主要功能及相关的软件工程活动,通过逐步求精的方式进行成本及工作量的估算.问题分解“分而治之”过程分解回答“如何完成公共过程框架?”软件项目计划—EmpiricalEstimationModelsKeyPointAnestimationmodelreflectsthepopulationofprojectsfromwhichithasbeenderived.Therefore,themodelisdomainsensitive.软件项目计划—EmpiricalEstimationModels估算模型的结构E=A+B*(ev)^CA、B、C是由经验导出的常数,E是以人月为单位的工作量ev是估算变量软件项目计划—EmpiricalEstimationModels面向LOC的估算模型E=5.2*(KLOC)^0.91Walston-Felix模型E=5.5+0.73*(KLOC)^1.16Bailey-Basili模型E=3.2*(KLOC)^1.05Boehm模型E=5.288*(KLOC)^1.047Doty模型面向FP的估算模型E=-13.39+0.0545FPAlbrecht和GaffneyE=60.62*7.728*10^(-8)*FP^3KemererE=585.7+5.12FPMaston、Barnett和Mellichamp软件项目计划—EmpiricalEstimationModelsCOCOMO模型(ConstructiveCostMOdel)软件估算模型的层次体系模型1:基本COCOMO模型,将软件开发工作量及成本作为程序规模的函数进行计算,程序规模已估算的代码来表示。模型2:中级COCOMO模型,将软件开发工作量及成本作为程序规模及一组“成本驱动因子”的函数来进行计算,其中“成本驱动因子”包括对产品、硬件、人员、及项目属性的主管评估。模型3:高级COCOMO模型,包含了中级莫茨能够的所有特性,并结合了成本驱动因子对软件工程过程中每一步骤的影响评估。软件项目计划—EmpiricalEstimationModels软件方程式是一个多变量模型,他假设在软件开发项目的整个生命周期中的一个特定的工作量分布。E=[LOC*B^0.333/P]^3*(1/t^4)软件项目计划—EmpiricalEstimationModelsAdvice:Noneofthesemodelsshouldbeusedwithoutcarefulcalibrationtoyourenvironment.软件项目计划—TheMake/BuyDecision自行开发/购选择购买可直接使用的软件购买“具有完全经验”或“具有部分经验”的软件构件,修改,集成外包软件项目计划—TheMake/BuyDecision低成本的软件昂贵的软件产品建立性能及性能规约,可测量性估算内部开发的成本及交付日期选择三到四个候选软件选择能够有助于建造所需软件的可复用构件建立比较矩阵,对关键功能进行比较/测试根据以前产品的质量、开发商的支持、产品的方向、以及其名声评估候选软件包后构件联系该软件的其他用户并询问其意见软件项目计划—TheMake/BuyDecision自行开发/购买时间成本软件项目计划—TheMake/BuyDecision系统X复用简单(0.30)困难(0.70)大改动(0.6)复杂(0.8)大改动(0.7)有改动(0.4)$380,000$450,000$275,000$310,000$490,000$210,000$400,000$350,000$500,000}}}}$429,000$382,000$267,000$410,000决策树软件项目计划—TheMake/BuyDecisionAdviceTherearetimeswhenoff-the-shelfsoftwareprovidesa“perfect”solutionexceptforafewspecialfeaturesthatyoucan’tlivewithout.Inmanycases,it’sworthlivingwithoutthespecialfeatures!软件项目计划SoftwareProjectPlanning对估算的观察ObservationsonEstimating项目计划目标ProjectPlanningObjectives软件范围SoftwareScope资源Resources软件项目估算SoftwareProjectEstimation分解技术Decomposition经验估算模型EmpiricalEstimationModels自行开发或购买的决策TheMake/BuyDecision最常见的进度计划风险功能无限蔓延需求镀金或开发人员镀金质量不定计划过于乐观设计欠佳银弹综合症研发导向的开发人员薄弱签约商失败研发人员与客户的摩擦2.风险管理W

1 / 114
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功