软件开发模式知识体系详解

软件工程理论和开发模式知识体系详解。@javaxue

相关文章

软件开发模式相关文章。

  • 传统模式 - 软件开发生命周期与过程模型(瀑布模型,原型模型和螺旋模型等)
    • 软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级等阶段。那么如何将上述软件开发过程方法化呢?这就是过程模型。过程模型(Process Models) 意图解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动(activities)有效地组织了起来。他们之间的线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)关系会产生不同的模型。常见的过程模型包括:瀑布模型、原型模型、增量模型、螺旋模型等。
  • 传统模式 - 结合软件测试的过程模型演化:V模型,W模型,X模型等
    • 对于前文软件开发生命周期的实现,为保障软件质量,将测试工作凸显出来(通过前文介绍的线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)等方式),结合测试又演化出了针对测试的过程模型,主要有V模型,W模型,X模型,H模型等。
  • 敏捷开发 - 敏捷软件开发理论及流程
    • 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
  • 敏捷开发 - 面向工程管理:极限编程(XP)
    • 极限编程(ExtremeProgramming,简称XP)是由KentBeck在1996年提出的,是一种软件工程方法学,是敏捷软件开发中可能是最富有成效的几种方法学之一。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。极限编程透过引入基本价值、原则、实践方法等概念来达到降低变更成本的目的。
  • 敏捷开发 - 面向过程管理:Scrum方式
    • Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum Master角色负责维护过程和任务,Product Owner代表利益所有者,Developer Team包括了所有开发人员。
  • 敏捷开发 - 面向过程管理:Kanban方式
    • 看板本身源于日本丰田公司对精益制造的实践,后延伸到敏捷开发领域;它的核心是JIT(Just In Time): “让正确的物资,在正确的时间,流动到正确的地方,数量是刚刚好的数量。” 本文主要介绍看板的定义,核心实践以及在研发领域的实践等。
  • 敏捷开发 - 开发实践:测试驱动开发(TDD)
    • 测试驱动开发(Test Driven Development, 简称TDD)是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。本主要介绍TDD的基础和实践案例,以及很多团队无法使用TDD方式开发的一些思考。
  • 敏捷开发 - 开发实践:领域驱动开发(DDD)
    • TODO
  • 典型的中小团队开发流程详解
    • 通过典型的中小团队开发流程谈谈我对常见的敏捷开发流程的理解。
  • 精益企业 - 从组织的角度: 集成精益,敏捷,DevOPS等
    • Lean Enterprise (精益企业)是指一个产品系列价值流的不同部门同心协力消除浪费,并且按照顾客要求,来拉动生产。本文主要基于Scaled Agile, Inc. (SAI)公司的SAFe的框架(SAFe for Lean Enterprises)向你介绍精益企业的7个核心,并站在更高的视野层级上看敏捷和devops的位置,可以给你更多的启发。