250 likes | 500 Views
Planning and Managing the Project. 中国科学技术大学软件学院 孟宁. 2010年09月. Contents. 3.1 Tracking Progress 3.2 Project Personnel 3.3 Effort Estimation 3.4 Risk Management 3.5 The Project Plan 3.6 Process Models and Project Management. Chapter 3 Objectives. Tracking project progress
E N D
Planning and Managing the Project 中国科学技术大学软件学院 孟宁 2010年09月
Contents 3.1 Tracking Progress 3.2 Project Personnel 3.3 Effort Estimation 3.4 Risk Management 3.5 The Project Plan 3.6 Process Models and Project Management
Chapter 3 Objectives • Tracking project progress • Project personnel and organization • Effort and schedule estimation • Risk management • Using process modeling with project planning
3.3 Effort Estimation • Estimating project costs is one of the crucial aspects of project planning and management • Estimating cost has to be done as early as possible during the project life cycle • Type of costs • facilities: hardware, space, furniture, telephone, etc • software tools for designing software • staff (effort): the biggest component of cost
Uncertainty early in the project can affect the accuracy of cost and size estimations 3.3 Effort EstimationEstimation Should be Done Repeatedly
3.3 Effort Estimation Sidebar 3.3 Causes of Inaccurate Estimates • Key causes • Frequent request for change by users • Overlooked tasks • User's lack of understanding of the requirements • Insufficient analysis when developing estimates • Lack of coordination of system development, technical services, operations, data administration, and other functions during development • Lack of an adequate method or guidelines for estimating
3.3 Effort Estimation Sidebar 3.3 Causes of Inaccurate Estimates (continued) • Key influences • Complexity of the proposed application system • Required integration with existing system • Complexity of the program in the system • Size of the system expressed as number of functions or programs • Capabilities of the project team members • Project team's experience with the application, the programming language, and hardware • Capabilities of the project team members • Database management system • Number of project team member • Extent of programming and documentation standards
工作量评估模型 • Expert judgment • 经验模型 • Algorithmic Methods • 效率和影响效率的因素之间的关系 • 研究人员从过去项目中的数据总结得出许多数学等式 • Machine-Learning Methods • 神经网络是通过培训方法培养起来的。训练所用数据来自以往的项目,网络用前向和后向算法学习识别数据中具有的模式。
3.3 Effort Estimation Type of Estimation Methods • Expert judgment • Top-down or bottom-up • Analogy: pessimistic (x), optimistic (y), most likely (z); estimate as (x + 4y + z)/6 • Delphi technique: based on the average of “secret” expert judgments • Algorithmic methods: E = (a + bSc) m(X) • Walston and Felix model: E = 5.25 S 0.91 • Bailey and Basili model: E = 5.5 + 0.73 S1.16 • Machine Learning Techniques
Expert judgment • Analogy类推 • A 系统和B 系统非常相似,那么A 系统的费用就和B 系统的费用非常接近。 • 可以进一步讲,如果A 系统的复杂程度是B 的二倍,则A 系统的费用是B 系统费用的两倍。 • Proportion预测 • 可以通过向专家咨询三个预测:悲观因素x,乐观因素y 和最可能的猜测z • (x悲观+4y乐观+z可能)/6 • 把个人评价正太标准化。
3.3 Effort Estimation Finding the Model for Your Situation • Mean magnitude of relative error (MMRE) • absolute value of mean of [(actual - estimate)/actual] • goal: should be .25 or less • Pred(x/100): percentage of projects for which estimate is within x% of the actual • goal: should be .75 or greater for x = .25 • 75% project estimates are within 25% of actual
3.3 Effort Estimation Finding the Model for Your Situation • 项目经理Jenna发明了一种用于估算项目工作量的新技术,并应用于多个项目上。她的估计和软件的实际工作量如下: • 衡量工作量估计好坏的标准是: 75%的项目的估计值应在实际值的25%范围内;相对误差平均值应当小于25%。结合图表和以上的标准回答下列关于Jenna工作量估计技术的问题。
3.3 Effort Estimation Finding the Model for Your Situation • 10. 求图表中数据的MMRE(精确到0.01) • a. 0.01 • b. 0.05 • c. 0.06 • d. 0.07 • e. 0.10 MMRE is the mean magnitude of relative error. MMRE 是平均相对错误程度。 一般研究人员认为在0.25之内是适当的 MMRE = ((60/8000) + (1000/10000) + (200/7200) + (2000/13000) +(400/9600)) / 5 = 0.07 【3.3节】
3.3 Effort Estimation Finding the Model for Your Situation • 11.求PRED(.25)的值 • a. 0.05 • b. 0.25 • c. 0.33 • d. 0.75 • e. 1.00 PRED(x/100)是估计值在实际值x%内的项目所占比例, 一般研究人员认为大于75%是适当的 所有的估计都在实际值的25%范围内【3.3节】
3.3 Effort Estimation Finding the Model for Your Situation • 12.根据衡量工作量估计好坏的标准和已经取得的数据,这个新技术好不好? (请回答 是 或 否) 根据MMRE < 0.25 和PRED(0.25) > 0.75可以得到. 是
No model appears to have captured the essential charateristics and their relationships for all types of development 3.3 Effort Estimation Evaluating Models
工作量评估模型的缺陷 • 大多以过往经验为基础 • 而即使非常相似的项目,他们的代价也相去甚远。 • 费用不是线型关系 • 两个程序员不可能完全一样的编码速度 • 依赖现行数据影响,创新性的项目就很难评估。 • 因此,开发过程中的努力是必须的。
3.4 Risk ManagementWhat is a Risk? • Risk is an unwanted event that has negative consequences • Distinguish risks from other project events • Risk impact: the loss associated with the event • Risk probability: the likelihood that the event will occur • Quantify the effect of risks • Risk exposure = (risk probability) x (risk impact) • Risk sources: generic and project-specific
Example of risk exposure calculation PU: prob. of unwanted outcome LU: lost assoc with unwanted outcome 3.4 Risk ManagementRisk Management Activities (continued)
3.4 Risk ManagementRisk Management Activities (continued) • Three strategies for risk reduction • Avoiding the risk: change requirements for performance or functionality • Transferring the risk: transfer to other system, or buy insurance • Assuming the risk: accept and control it • Cost of reducing risk • Risk leverage = (risk exposure before reduction – (risk exposure after reduction) / (cost of risk reduction) 风险杠杆=(降低前的风险成本-降低后的风险成本)/降低风险的成本
3.4 Risk ManagementSidebar 3.4 Boehm’s Top Ten Risk Items • Personnel shortfalls • Unrealistic schedules and budgets • Developing the wrong functions • Developing the wrong user interfaces • Gold-plating镀金\华丽的计划 • Continuing stream of requirements changes • Shortfalls in externally-performed tasks • Shortfalls in externally-furnished components • Real-time performance shortfalls • Straining computer science capabilities超出计算机科学的能力
项目的风险管理 夫事未有不生于微而成于著 圣人之虑远故能谨其微而治之 众人之识近故必待其著而后救之 治其微则用力寡而功多 救其著则竭力而不能及也 • 如何成功管理风险 • 建立恰当的机制 • 选择有效的识别方法 • 选择有效评估发生可能性方法 • 选择有效评估风险影响方法 • 建立预防措施 • 开发风险应对措施 • 确定紧迫性 • 确定风险的责任人 • 风险管理的层次 • 事后处理型—亡羊补牢 • 危机管理型—救火 • 风险缓解型—缓解 • 事先预防型—预防 • 消灭根源型—彻底
项目的风险管理—结论 • 强调团队支持 • 给予项目经理相应的权利 • 改进问题的处理和沟通 • 避免使用纯项目式组织结构 • 增加项目检测的频率 • 使用WBS、PERT、CPM等工具和技术 • 为项目团队建立清晰的项目目标 • 选择有经验的项目经理
谢谢大家! • References • 软件工程 - 理论与实践(第四版 影印版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee ,高等教育出版社 • 软件工程 - 理论与实践(第四版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee,杨卫东译,人民邮电出版社 • 软件工程—实践者的研究方法(Software Engineering-A Practitioner’s Approach); (美) Roger S. Pressman 著; 机械工业出版社ISBN:7-111-07282-0 • http://code.google.com/p/advancedsoftwareengineering/