软件工程--人月神话PPT
- 格式:ppt
- 大小:3.13 MB
- 文档页数:35
“人月神话”和CMMI(上篇)前面文章聊过IBM的一些人一些事,这个IT行业的百年老店,大方向来说对计算机的发展其作用如树根,基石。
小领域譬如软件工程其作用如先知,先行。
两位大神级的人物:Frederick Brooks和Watts Humphrey均由IBM出品。
前面已立文介绍过两位,印象不深的可以选择回放。
以今天的视角来看,两位大师的成果也有局限也有不足,但其在软件工程发展史的地位无人能撼。
今天我要写的是,把两位大师的成果做个串烧,从十个方面对“人月神话”和CMMI做个比较,促进我们理解CMMI实践追求的目的,能够回答“为什么”的问题,而正确读懂模型的价值是有效使用它改进软件工程的基础。
在做比较之前,我有个基本假设:开发团队是一个技术强悍的团队。
这也是两位大师结论的前提。
打破软件“人月神话”的Brooks软件质量和CMMI之父Humphrey人月神话结论一:开发系统软件产品的难度比开发个人使用,独立开发的软件困难得多。
产品的通用性,系统的协同性让我们顾此失彼,导致开发的产品不是用户真正需要的!Brooks明确指出,系统软件产品的开发成本是开发具备同样功能的独立软件构件的9倍!CMMI应对策略一:CMMI给出了成功开发系统软件产品的重要要素:如需要梳理清楚需求的应用场景,开发的约束条件;管理好模块间的接口;建立统一架构支持功能开发;通过评审让相关角色对需求、架构要求、规范要求、缺陷、等达成一致的理解;通过部件级,系统级,使用环境的充分测试确保系统产品的可靠及适用性;在整个开发过程中,管理好不确定的风险,管理好团队之间的协调沟通,管理好共享资源;同时在开发过程中,维护必要的需求可追溯性,并为系统产品提供必要完备的文档,使程序变得易用,易修改,易扩展。
很多人都认为CMMI仅代表重量过程,这是因为它是为最复杂场景制定的。
殊不知其可裁剪性及其它灵活性使之也可以指导建立、完善为简单场景服务的轻量过程。
人月神话结论二:缺乏合理的时间进度是造成项目滞后的最主要原因。
基于人月神话理论的软件开发生命周期分析第一章:引言随着信息技术的不断发展和普及,软件已经成为人们生活中不可或缺的一部分。
然而,软件开发的过程和周期往往被人们所忽视,乃至于对软件开发周期的规划和安排深信不疑的开发者也常常会因为开发过程中的不确定性而手忙脚乱。
因此,在软件开发周期的管理和掌控上,越来越多的软件开发企业和项目管理人员开始关注人月神话理论。
该理论指出,软件开发的成功与否取决于软件开发周期的合理规划和管理,而这需要开发人员和各个部门的密切协作和高效沟通。
本文将从人月神话理论的角度出发,对软件开发生命周期进行分析,旨在帮助开发者和项目管理人员掌握软件开发的合理规划和管理方法。
第二章:软件开发生命周期1. 定义软件开发生命周期是指从软件项目的启动到最终交付使用并维护的整个过程,通常包括软件需求分析、软件设计、编码、测试、发布和维护等多个阶段。
2. 各阶段的任务和特点(1)软件需求分析在软件开发的早期阶段,开发团队需要与项目的客户或业务方进行沟通,了解项目的需求和要求,并对其进行详尽的分析和梳理。
同时,还需要确定软件开发项目的目标、范围和时间等关键要素,为后续的开发工作提供指导和约束。
(2)软件设计在软件需求分析的基础上,开发团队需要对软件的整体架构、功能模块、数据库结构等进行详细设计。
同时,还需要确定软件的开发框架、开发工具和开发语言等,以及确定软件的开发流程和开发规范等。
(3)软件编码在软件设计完成后,开发团队可以开始根据设计文档进行软件编码工作。
这个过程需要开发人员采用所选定的开发工具和语言进行编码实现,并且注意到相应的编码规范。
在此过程中,开发人员也需要对软件进行相应的单元测试和代码质量评估。
(4)软件测试当软件编码完成后,开发团队需要进行软件的整体测试。
软件测试的目的是发现潜伏在软件中的错误或者缺陷,以便及时修复。
软件测试主要分为单元测试、集成测试和系统测试等多个层级,以确保软件的各项功能和性能都能达到预期目标。