`
心动音符
  • 浏览: 337049 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

迭代、进化和敏捷

阅读更多
简介:迭代开发是OOA/D成为最佳实践的核心,也是本书所介绍的OOA/D的核心,敏捷实践是有效地应用UML关键。UP是相对流行的、示范性的方法。相对于顺序或者“瀑布”生命周期,迭代和进化式开发对部分系统及早地引入了编程和测试,并重复这一循环。这种方法通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规则说明。在迭代开发中,我们依赖于短时快速的开发步骤、反馈和改写来不断明确需求和设计。相比之下,瀑布模型提倡在编程之前就预先完成需求和设计步骤。一直以来,成功/失败的研究表明,瀑布模型和软件项目高失败率具有极大的关系,对他的推广源于信念和风闻,而不是具有统计意义的证据。研究证实,迭代方法与较高的成功率、生产率和低缺陷率具有关系。

一什么是UP?其他方法能否对其进行补充

软件开发过程<注意是名词>描述了构造、部署以及维护软件的方式。UP也叫做统一过程-已经成为一种流行的构造面向对象系统的迭代软件开发过程。并且rational统一过程RUP是对统一过程的详细精华,并且已经被广泛采纳。(所以统一过程是软件开发过程一个侧面,不管是正确的还是错误的,但是是事实上的标准)

     因为统一过程对于采用OOA/D的项目来说是相对流行的迭代过程,并且在介绍OOA/D这一主题时,必须使用过程所以本书的结构也沿用了UP的形式。同时UP是通用并且是公认的最佳实践或许不是最好的,因此对于我们学习来说也是非常的有帮助的。

     UP是十分的灵活和开放的,并且鼓励引进其他迭代方法中的有用的实践,UP把普遍认可的最佳实践结合起来,成为联系紧密并具有良好文档的过程描述。

     概括而言,本章介绍UP源于三个理由1、UP是迭代过程2、UP实践提供了如何实施OOA/D3、UP具有灵活性,可以应用于轻量级和敏捷方法,这些方法包括其他敏捷方法。

    本书采用UP作为探讨和进化式需求分析及OOA/D的示范过程,因此对于该主题的介绍必须在某一过程的语境中进行。但是本书的核心思想例如如何使用对象思考和设计、应用UML、使用设计模式、敏捷建模、进化式需求分析、编写用例等等是独立于任何特定过程的,并适用于众多现代的迭代、进化和敏捷方法。

注:敏捷是什么,敏捷是更为背后的一层思想,说俗一点就是敏捷思想是要求迭代和进化式开发,我们学习包括做人做事是不是都是在理清表象和具象,都是在理清本质的东西和肤浅的东西,都在理解谁是指导思想,谁又是谁下的指导思想。我们要理解更为本质的东西是什么,本质的表面又是什么,又是老子的大道,真是无处不在啊

  @什么是迭代和进化式开发,如何做到

  @什么是敏捷方法以及观点

敏捷开发--方法通常应用时间定量的迭代和进化式开发、使用自适应计划、提倡增量交付并包含其他提倡敏捷性的价值和实践。

由于特定的实践多种多样,因此不能精确的定义敏捷方法。所以说敏捷方法是一个概括更为本质的说法,然而,具备进化式精华的计划需求和设计的短时间定量迭代是这些方法所共有的基本实践

敏捷饿原则是1、优先级最高的是,通过早期和持续交付有价值的软件来满足客户

2、欢迎变更需求,及时在开发的后期提出。

3.。。。。

末了,敏捷到底是个什么东西?一个概念,一个原则是一群关注迭代和敏捷方法的人为寻求共识会聚一趟,创建了敏捷这一词汇,敏捷代表他们的思想和共识以及他们的抽象的概念。末了,敏捷是什么?那么我反问你?面向对象是什么?面向对象我们无法准确的解释,但是至少我可有很多方式和途径以及原则模式来达到面向对象,至于为什么叫做面向对象,天知道吧,人定的吧,所以敏捷是什么?天知道吧。

   @什么是UP的科目

科目是在一个主题领域中的一组活动<及相关制品>,制品是什么?是对于所有工作产品的统称,如代码、web图形,数据库科目等等。

注:科目是不是我们理解和构造我们软件的各个侧面呢?

具体的科目有:业务建模、需求、设计、实现、测试、部署、配置和变更管理、项目管理、环境,或许你还可以得出其他的科目,但是上面这些科目是让人容易理解的方式自然而然的呈现出来的,科目就是不同的侧面的活动。绝对不要吧科目和阶段等同起来,两者是不同的概念,阶段更注重于时间上的概念,科目更注重于不同的侧面不同的活动,每个阶段有不同的科目侧重活动,所以我们明白科目和阶段的联系和区别。

我们在本书中关注以下比较重要的三个科目:业务建模、需求、设计

@关于项目和科目,什么是案例研究的重点呢?

案例研究强调初始和细化阶段。其重点是业务建模、需求和设计科目中的一些制品,这些制品包括了需求分析、OOA/D、模式和UML等。

@既然UP中有这么多的科目以及各自科目下产生的相关的制品,那么如何来定制过程和UP开发案例呢?

类比,UP中描述的一组可能的制品可以看做药房里的一组药剂。就像不会有人不加选择的随便吃药,而是要对症下药一样,对于UP项目,开发团队应该选择一组能够解决其特定问题和需要的制品。一般来说,要关注一组具有较高的实践价值的制品。

@定义:什么是开发案例

为项目选择和UP制品可以编写为简短文档,这称为开发案例,开发案例也只一种制品。
分享到:
评论

相关推荐

    UML和模式应用(1)

    本资料共分为三大部分,涵盖了从基本的面向对象理论到迭代进化和敏捷开发方法,以及实际案例研究的深度解析。 **第一部分:绪论** 在这一部分,我们首先会接触到面向对象分析和设计的基础。面向对象(Object-...

    迭代进化式开发引入软件工程课程教学.pdf

    在介绍迭代进化式开发如何引入软件工程课程教学之前,首先需要明确一些核心概念,包括迭代进化式开发(RUP)、统一建模语言(UML)等,并探讨这些概念在软件工程教育中的作用和重要性。 迭代进化式开发(Rational ...

    敏捷软件开发精要.pdf

    迭代过程开始于Inception阶段,团队会规划产品形态、用户体验和技术架构,接着是迭代式开发,通过连续的迭代计划、构建、测试和回顾来实现产品的不断进化和交付。 敏捷方法中还包含精益需求管理,它旨在减少浪费,...

    UML和模式应用(Applying UML and Patterns)

    第2章 迭代、进化和敏捷 2.1什么是uP?其他方法能否对其 进行补充 2.2什么是迭代和进化式开发 2.3什么是瀑布生命周期 2.4如何进行迭代和进化式分析和 设计 2.5什么是风险驱动和客户驱动的 迭代计划 2.6什么是敏捷方法...

    敏捷武士:看敏捷高手交付卓越软件

    在敏捷开发中,技术和工具的更新迭代速度非常快,因此敏捷武士需要不断地学习和适应新技术和工具,以保持团队的竞争力和敏捷性。 敏捷开发的实施离不开工具的支持,例如敏捷管理工具可以帮助团队更好地进行项目规划...

    敏捷开发分享篇.ppt

    敏捷开发是一种以人为核心、需求进化为导向的软件开发方法论,它强调迭代和循序渐进的开发过程,以应对快速变化的需求。相较于传统的瀑布模型,敏捷开发减少了对详尽文档的依赖,更加注重团队成员之间的面对面交流和...

    敏捷软件开发:原则、模式与实践

    在当今快速变化的商业环境中,软件开发方法论必须不断进化以适应需求的快速迭代和不确定性。敏捷软件开发就是这种演变的产物,它强调灵活性、协作和客户满意度。《敏捷软件开发:原则、模式与实践(C#版)》这本书由...

    数据库设计中的敏捷方法

    在数据库设计中应用敏捷方法是为了适应快速变化的需求和业务环境,确保数据库能够随着应用程序的演进而进化。敏捷方法强调灵活性和迭代开发,而非传统的、基于详尽前期规划的瀑布模型。这种转变对于应对不确定性和...

    敏捷软件交付项目管理

    架构管理涉及到架构的进化和设计的进化,包括组件化架构设计和设计驱动的实现。质量管理在敏捷开发中同样重要,需要并行测试、测试管理、独立测试和性能测试来确保软件质量。 Scrum是敏捷开发过程中的一种实践框架...

    敏捷开发相关内容的ppt

    - **快速试错和拥抱变化**:敏捷开发的核心在于能够快速响应市场和技术的变化,通过快速迭代的方式实现产品的不断进化。 - **DevOps的指导框架**:DevOps强调开发与运维团队之间的紧密协作,旨在加快软件的交付速度...

    UML和模式应用(原书第3版).pdf

    第2章 迭代、进化和敏捷 2.1 什么是UP?其他方法能否对其进行补充 2.2 什么是迭代和进化式开发 2.3 什么是瀑布生命周期 2.4 如何进行迭代和进化式分析和设计 2.5 什么是风险驱动和客户驱动的迭代计划 2.6 ...

    敏捷开发之旅.pdf

    敏捷开发是一组以用户需求进化为核心、采用迭代和循序渐进方法的软件开发实践。它将大项目分解为多个小的、可管理的部分,并且每个子项目的成果都会经过测试,确保软件在开发过程中始终处于可用状态。敏捷不是一个...

    进化式需求

    具体而言,ERA工具会执行大量不同版本的系统模型,并根据场景和环境变量的不同组合进行迭代优化,最终收敛到一个最优解。 #### ERA工具的工作原理 ERA工具的核心思想是利用进化算法来探索各种可能的解决方案,并...

    高级软件开发过程——Rational统一过程、敏捷过程与微软过程-第一章.doc

    常见的敏捷框架有Scrum、Kanban和极限编程(XP),这些框架提供了灵活的迭代方法,允许团队在开发过程中快速调整方向以满足不断变化的需求。 3. 微软过程 微软过程是微软提出的一套指导软件开发的流程,它结合了...

    一个项目团队的敏捷之旅

    这个旅程不仅揭示了敏捷方法论的实际应用,也展示了团队面对挑战时的成长与进化。 #### 背景挑战 项目初期,团队面临诸多挑战。需求调研虽已完成,但开发工作滞后,且资源紧张,加之系统模块的复杂性(包括第三方...

    敏捷软件开发之Scrum实践

    其中,Scrum作为敏捷开发中最流行的方法之一,其核心思想是通过迭代和增量的方式来实现快速响应变化的目标。本文将深入探讨Scrum的基本概念、核心原则以及如何在实际项目中应用Scrum框架来提升团队效率和产品质量。 ...

    敏捷大会讲义

    而敏捷数据库开发则强调通过持续的迭代和进化来应对不确定性,确保数据库能够与应用开发同步演进。 #### 让数据库成为环境的一部分 在敏捷环境中,数据库不应被视为一个孤立的组件,而应该是整个开发过程中的一个...

Global site tag (gtag.js) - Google Analytics