随想录(从瀑布、迭代开发到敏捷开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


    软件开发有很多的模式,一般认为有三种模式,分别是瀑布、迭代开发、敏捷开发。瀑布模型是最基本的开发方式,它有严格的处理流程,分别是需求、设计、开发、测试、交付。瀑布模型看上去合理,但是它开发周期长、对变更需求响应慢,很难适应市场需求。因此,在此基础上,软件专家们提出了迭代开发。针对传统开发的缺点,迭代开发通过迭代改进的措施,不断改进流程和质量,最终满足客户的要求。为了达到迭代开发的要求,大家还发明了uml和rup的理念。对于中、大型软件,迭代开发的理念是很合适的。但是对于中小软件,大家普遍认为迭代开发还是慢,它对开发的同学要求高,不仅每次迭代时要求所有的工作流都要参与,还要求同学们熟悉uml等各种工具,增加了学习的负担。为此,软件专家们引入了故事墙、结对编程、测试驱动、每日改进、白板进度表、燃尽图等很多措施,除了保留迭代开发中的必要环节,对剩下来的流程,要么删除、要么缩减,进一步提出了敏捷开发(包括scrum、xp编程、测试驱动开发等等)的概念,这也是软件开发的发展流程。


1、你的建议是什么?

    优先学习好rup、uml,有选择地学习敏捷开发。


2、为什么要学完uml、再学rup?

    rup其实是实现uml的方法论,本身是基于迭代开发模型的。在rup中,横向是初始、细化、构造和交付的时间轴,纵向是核心工作流和支持工作流。在时间轴上会有若干个迭代周期,每个迭代周期需要各工作流一起合作。在此过程中,每个工作流可以按照自己的特点用uml进行设计和绘制。这就是rup的基本理念。


3、rup的图形如何表示?



4、能不能跳过rup,直接学习敏捷开发?

    学习软件开发的整个历史,有助于自己更好地了解软件开发的全过程。


5、个人开发软件需不需要uml、rup?

    建议个人开发软件的时候,也要画uml图,更要学会逻辑提炼和设计模块接口。


6、除了瀑布、迭代和敏捷开发,还要学习什么?

    对于架构师来说,不光要设计出软件,也要了解为什么设计这款软件,如何运维这款软件,很多时候了解需求比实现需求更重要。


7、如何提高代码架构水平?

    实践、实践、再实践,首先从uml+rup开始。


8、三种开发模式解决的是什么问题?

    软件工程的问题。


9、uml图形是不是只能用于一种rup工作流?

    不是,比如流程图既可以用于需求分析、也可以用于详细设计,这取决于是哪一种工作流。

    如果是架构师,那么uml主要用来进行需求分析、业务分析和架构设计。

    如果是软件开发者,那么uml则主要用来进行软件设计本身。

    如果是测试开发的同学,那么uml可以用来进行测试用例的开发、设计,也可以进行测试框架的架构设计。

    所以,uml只是一个工具,架构师、开发者、测试者都可以使用。


10、设计模式什么时候使用?

    一般是uml开发过程中对流程和接口进行抽象的时候使用。与此类似的方法还有分层分块、插件管理、微内核、微服务、mvc等技术。

相关文章
相关标签/搜索