软件开发模式“四国鼎立”

msdn2100 2008-09-29 06:59:58
CMMI、RUP、MSF和敏捷是当今企业中最流行的四种开发模式,分别由SEI、IBM、Microsoft和ThoughtWorks在90年代发布。正所谓大千世界没有十全十美的事物,所以也没有哪一种模式能适合所有的组织,关键在于自己需要不断实践和积累,对已定义的模式进行裁剪、补充和完善,才能建立最适合自己组织的开发模式。两年前我非常推崇CMMI和IPD,经过一年的敏捷实践后才发现自己更喜欢敏捷开发,下面结合自己的理论知识和实践经验谈谈这几种开发模式。

CMMI即能力成熟度集成模型,以系统的框架来指导组织进行过程改进,提高了企业的质量管理素质。近几年来,很多企业都纷纷通过了CMMI 3或4级评估,使整个软件行业朝着规范化发展,但同时也暴露出一些问题,如缺少有丰富实施经验的咨询团队、服务质量不高、盲目追求证书等。记得曾经的一个小型项目采用CMMI,由于客户需求不明确又经常改变,再加上和客户沟通太少,最后导致项目延期,可以说重视文档轻视沟通是CMMI让我印象最深的缺点。外包企业大多实施CMMI,否则就会失去很多商机。

RUP即统一软件过程,强调用例驱动,以架构为中心,划分多个模块并配对相应的用例模型,一般会在Rose、CC、CQ等集成工具的辅助下进行迭代和增量开发。基于RUP的项目有4个阶段:起始、细化、构造、交付,每个阶段都会有一次或多次的迭代。RUP属于重量级而且过于理论化,从本质上说还是在强调设计和规范,仅针对一次迭代来说与传统的瀑布模式类似,不太适合小型项目。现在很多大中型企业针对不同类型的项目把RUP进行适当的裁减后也取得了很好的效果,这确实是一种灵活适应的方法。

MSF即微软解决方案框架,强调瀑布螺旋式的迭代开发,对过程的每一个阶段有相应的定义,同时也定义了6个角色:产品管理、程序管理、开发、测试、用户体验、发布管理,通过这6个角色,项目可以迅速完善地实施。MSF的核心是沟通、信任、敏捷、重视商业价值,其方法以“边规划、边设计”为基础。MSF好比引擎,它是一种准则,以工业化模式制定出具体的解决方案,大大提高了软件开发效率,在微软的合作伙伴中运用比较广泛,现在在国内也越来越得到企业的认可。

敏捷即一种以人为核心,迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。相比防守型的CMMI,敏捷是攻击型的,其3个特点是社会工程、轻量级、技术实践,换句话说就是以人为本、拥抱变化、持续改进。现在最流行的两种敏捷方法是Scrum和XP。实施Scrum相对简单一点,不像XP必须有深入地技术实践,Scrum的实践围绕一个迭代和增量的过程骨架展开,由3个角色、3种会议、3项工件组成。XP把软件开发变成自我管理的挑战,追求沟通、简单、反馈、勇气、尊重,其重要过程有测试驱动开发、持续集成、重构、现场客户、简单设计等。XP把软件开发过程重新定义为聆听、测试、编码、设计的迭代循环过程,确立了测试、编码、重构的软件开发管理思路。敏捷是个很不错的方法,相信在不久的将来会逐渐得到国内企业的广泛认可。

一个成功的项目应该在进度、成本、质量这三者之间有一个比较好的平衡,这三个方面都要做得比较好。针对目前国内的企业状况,将CMMI、RUP和敏捷三者进行有效融合、相互补充,即CMMI的体系+RUP的过程+敏捷的实践,这也是软件开发方法的平衡之道。


欢迎大家交流!


...全文
1776 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
byname4321 2010-05-10
  • 打赏
  • 举报
回复
学习,,
收藏
码农哈里 2008-10-09
  • 打赏
  • 举报
回复
同意,我们在实践中也是根据具体项目制定合适的开发模型。

但是不同意搂主这句:‘仅针对一次迭代来说与传统的瀑布模式类似’。虽然迭代是一个袖珍项目,但是迭代不是小瀑布。迭代内也是递增的方式逐步集成的。可将一个迭代划分为几个小里程碑来管理。这样即使有几个迭代目标没有实现,那么迭代内还是有一个了稳定的增量。
msdn2100 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sp1234 的回复:]
说“Scrum是等待”可能有点不够准确,准确地说是强调了太多“分解”,因而其实是给那些习惯了官僚方法的人用的。

另外,敏捷并不解决设计的根本问题,它只是一种工程组织方式,但是丝毫不能取代优秀的设计思想,顶多是可以让激发那些原本有着优秀思想的人的应激反应。因此,如果你的团队的架构师是只会挑设计文档的格式毛病而不会设计中的创意原则的过分学术化人才,他绝对撑不了多久就要建议老板请人来搞设计。
[/Quote]

说的很有道理!相比XP,Scrum简单一些且易于控制,正是由于它的“分解”,使得企业和开发人员更容易上手。
CMMI、RUP、MSF就好比“降龙十八掌”,敏捷就好比“散打”,无论是哪种都必须要有扎实的武功底子,所以一个项目也必须要有好的架构,再选择合适的开发模式。


ICONX,我没用过,呵呵。
binjuny 2008-10-04
  • 打赏
  • 举报
回复
东西多了就不好了
不是过程太繁琐就是文档太呆板,最后还得整天去更新文档啊,一个字“乱”


不知道有没有试用过ICONX这种方法?
  • 打赏
  • 举报
回复
说“Scrum是等待”可能有点不够准确,准确地说是强调了太多“分解”,因而其实是给那些习惯了官僚方法的人用的。

另外,敏捷并不解决设计的根本问题,它只是一种工程组织方式,但是丝毫不能取代优秀的设计思想,顶多是可以让激发那些原本有着优秀思想的人的应激反应。因此,如果你的团队的架构师是只会挑设计文档的格式毛病而不会设计中的创意原则的过分学术化人才,他绝对撑不了多久就要建议老板请人来搞设计。
  • 打赏
  • 举报
回复
[Quote=引用楼主 msdn2100 的帖子:]
相比防守型的CMMI,敏捷是攻击型的[/Quote]

我喜欢这句。

我讨厌Scrum,觉得太鱼目混珠。我倾向于XP。当然,我自己写各种平台下的测试引擎,以及项目追踪系统,而不是期望别人的或者等待。我想Scrum是等待,而XP是进攻。
YOLO医学影像组织结构目标检测数据集 目标类别:['0', '1', '2', '3', 'object'] 中文类别:['其他', '其他', '其他', '其他', '物体'] 训练集:13984 张 验证集:1894 张 测试集:0 张 总计:15878 张 该数据集提供了data.yaml文件,内容如下: train: ../train/images val: ../valid/images test: ../test/images nc: 5 names: ['0', '1', '2', '3', 'object'] 该数据集聚焦于医学影像领域,专为组织结构识别与分析设计,具有高度专业性和临床应用价值。其核心检测目标为人体或生物组织的微观结构特征,适用于病理学研究、影像辅助诊断及医学图像自动化分析场景。数据采集覆盖多种组织形态,为相关算法模型训练提供高质量视觉样本。 数据集包含训练集13984张、验证集1894张、测试集0张,总计15878张图像。训练集规模充足,可支撑模型充分学习各类组织结构特征;验证集比例合理,确保模型在未见数据上的泛化能力评估可靠;测试集虽为空,但不影响模型开发与验证流程的完整性,整体分布符合工业级目标检测数据集的标准配置。 所有图像均经过专业标注,标注边界清晰、覆盖完整,针对不同组织形态提供了精确的区域标记。标注过程遵循医学影像分析规范,确保每个目标实例的语义一致性与空间准确性,为后续模型训练提供了高保真度的监督信号,有效保障了模型性能的稳定提升。 该数据集可广泛应用于医疗影像分析系统开发、病理切片自动识别、手术导航辅助系统训练等实际医疗场景。其高质量标注与多样化的组织结构样本,有助于推动人工智能技术在精准医疗、智能诊断和医学教育领域的落地应用,为提升临床效率与诊断准确性提供坚实的数据基础。
内容概要:本文系统性地介绍了2026年8月提出的新型优化算法——心率优化算法,并结合Matlab代码实现,深入探讨其在电力系统、智能优化、路径规划、信号处理等多个前沿科研领域的应用。文档涵盖了大量基于Matlab/Simulink的仿真案例,包括虚拟电厂中电动汽车V2G充放电优化、深度强化学习(如DDPG、QLearning)在能源调度与机器人控制中的应用、多无人机协同三维路径规划、微电网多时间尺度调度、逆变器阻抗建模与稳定性分析等关键技术课题。同时,文档强调科研中“借力”与“创新”并重的理念,倡导系统性思维与扎实实践相结合,配套提供了丰富的学习资源,包括网盘中的完整代码、模型与文献资料,助力读者高效复现研究成果。; 适合人群:具备一定Matlab/Simulink编程基础,从事电力系统、自动化控制、人工智能、路径规划、信号处理及相关交叉学科研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为科研工作者提供可复现的算法代码与高保真仿真模型,加速论文复现与课题攻关;②支持智能优化算法、强化学习、电力电子控制等新技术的开发与性能验证;③辅助撰写高水平学术论文、完成学位论文或开展实际工程项目研发。; 阅读建议:建议读者按照文档目录结构系统性浏览,优先聚焦与自身研究方向契合的案例,结合网盘提供的完整资源进行代码调试与仿真验证,注重理论推导与编程实践的深度融合,以全面提升科研效率与技术创新能力。

1,268

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧