软件工程开发模式和方法论

一、从瀑布到敏捷——漫画解读软件开发模式变迁史

文章地址: https://www.likecs.com/show-205163408.html

答:读完这篇漫画图解和作者的解释后能够明显的感受到瀑布模式和敏捷开发之间的区别,与封闭的瀑布式开发相比敏捷开发显的更加灵活,敏捷方法不是抛开过程、工具和文档,抛开合同和计划,回到混乱而随意的软件编码中。敏捷有一套严密的价值观和原则,并且由此产生具体的方法学实践。

这张图片从上向下,五个房间,分别是瀑布模型(waterfall),敏捷开发(agile),看板(KANBAN),SCRUM 和精益软件开发(lean)。

1、瀑布模型的核心思想:按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。

优点:(1)为项目提供了按阶段划分的检查点;(2)当前一阶段完成后只需要关注后续阶段;(3)可在迭代模型中应用瀑布模型;(4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 

缺点:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到从开发成果,从而增加了开发风险;(3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段;(4)瀑布模型的突出缺点是不适应用户需求的变化。

2、敏捷开发的核心思想:主要是迭代式开发,将整个项目分解为数个迭代周期,快速相应需求进行增量开发。

优点:敏捷确实时项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。敏捷注重市场快速反应能力,也即具体应对能力,客户前期满意度高。

缺点:敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动太大,又给维护带来不少难度,特别项目存在新手比较多时,老员工比较累。需要项目中存在经验较强的人,要不大项目容易遇到瓶颈问题。

二、有人负责,才有质量:写给在集市中迷失的一代

文章地址:https://www.ituring.com.cn/article/9363

答:作者在文章中说:学会计算机编程很容易,就像学会用钉子把两块木板钉到一起一样简单。但问题是——打个不恰当的比方,市场对“钉在一起的两块木板”的需求,除了“自豪的爷爷”的那点天伦之乐以外,真的是太小了。而且,由此再进一步学习钉椅子或做碗橱,都需要天分、实践和训练。我们增长的这99倍恰恰都来自那些既没有实践经验,又没有受过良好训练的人。等这些人有时间学习和接受训练了,聚会已然结束,大多数人失去了工作。可以乐观地假定那些坚持下来的人最有天分,而且经验也最多,即便如此我们还是无路可逃,因为作为IT专业人士,由于缺乏基本功,他们大多数都很滥!以作者的经验来说,估计整个行业(包括IT行业由此新增的就业机会)大概增长了两个数量级,或者更确切地说,达到了原来的百分之一万(100倍)。

彼德定律:所谓彼得定律,就是说在一个根据人的业绩、成就和价值来提拔人的组织中,最终会把一些人提拔到他们并不胜任的位置上。这个定律经常被通俗地说成“把员工提拔到他们不胜任的职位”。软件行业也一样,你会发现自己需要三个不同版本的make程序、一个宏处理器、一个汇编器和其他一些必要的包。而在这个“食物链”末端,则是libtool,它试图掩盖一个事实,即在Unix中没有构建共享库的标准方式。的确没有适用于所有Unix变体的标准方式——比如给ld(1)命令加个标签之类的;而此时彼得定律就适用了:这个工作被交给了libtool。此时此刻,彼得定律确实牛,devel/libtool的源代码达到了414 740行,而其中有一半是测试用例。原则上讲,这倒是值得称赞的,但实际上这却是彼得定律的结果:这些测试煞费苦心地在那里验证一个本来就不该存在的问题的复杂方案是否功能齐备!更让人抓狂的是,其中31 085行代码都保存在一个叫configure的shell脚本里,代码格式之乱,任谁也难看明白。这样做是想让configure脚本执行大约200个自动测试,从而免除用户手工配置libtool之苦。这个想法很滥,早在1980年代刚刚出现时,就招来很多非议。因为源代码是靠configure脚本的伪装才让人感觉它可移植的,而实际上并非真正可移植。可以说它是配置思想的余孽。

Brooks提出了很多有见地的观点,其中一个就是所谓质量,只有在某人对它负责时才有意义,而这个“某人”只能是一个人,不能是几个人——二重奏除外。最近几年,不止一个人像Brooks一样得出相同的结论。有些人企图粉饰太平,假装正经,还有人通过制定技术标准的形式来达到类似立法的目的,希冀着在集市中引入秩序和结构。

三、软件工程方法论对我们经软件开发有多大用处?谈谈你的看法

答:软件工程方法论:面向过程的方法、面向对象的方法、面向元数据的方法和形式化方法,并称为软件工程中的四大方法,它们共同构成了软件工程方法论。其是指在软件开发的过程中必须遵循的普遍行为和规则,包含三要素:方法、工具和过程。我认为软件工程对我们的用处还是很大的,通过学习软件工程方法论,学习系统的、科学的理论框架,吸收前人的经验,可以提高我们软件开发的速度和质量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值