`

5分钟教你了解最流行的软件开发方法

阅读更多

瀑布模型-Waterfall


瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。瀑布模型最适合于那种在项目早期就能够确定需求的软件项目。

如上图所示,在瀑布模型中,发现问题的时间越晚,风险就越大。解决问题的代价也就越高。


螺旋式模型Spiral

螺旋模型采用一种周期性的方法来进行系统开发。这会导致开发出很多的中间版本。使用这种方法,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。 因此每个阶段都包含分析,设计,实现,和测试部分,如下图所示:



统一软件开发过程-Unified Software Development Process (USDP or just UP)

统一软件开发过程是一个流行的递增式软件开发方法。最有名的就是Rational推出的RUP。

UP开发的重要特征包括:

  • 迭代式开发。在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程以可以执行版本结束,可以鼓舞开发人员。
  • 用例驱动。 开发软件系统的目的是要为该软件系统的用户服务。因此,要创建一个成功的软件系统,我们必须明白其潜在用户需要什么 。 然而,用例并不仅仅是定义一个系统的需求的一个工具。它们还驱动系统的设计、实现和测试。也就是说,它们驱动整个开发过程。基于用例模型,软件开发人员创建一系列的设计和实现模型来实现各种用例。开发人员审查每个后续模型,以确保它们符合用例模型。测试人员将测试软件系统的实现,以确保实现模型中的组件正确实现了用例。这样,用例不仅启动了开发过程,而且与开发过程结合在一起。“用例驱动”意指开发过程将遵循一个流程:它将按照一系列由用例驱动的工作流程来进行。首先是定义用例,然后是设计用例,最后, 用例是测试人员构建测试案例的来源。 
  • 基于架构的体系结构。基于构件的体系架构创造了容易扩展的系统,并提升了软件的重用性和可读性。在UP方法中,一直坚持架构是整个软件系统的最核心部分。



 如上图所示,UP把整个软件开发分为四个阶段:构思阶段,细化阶段,构建阶段,移交阶段。

 


极限编程-eXtreme Programming (XP)

是敏捷软件开发中最富有成效的几种方法学之一。XP更强调可适应性而不是可预测性。XP的支持者认为软件需求的不断变化是很自然的现象,是软件项目开发中不可避免的、也是应该欣然接受的现象;他们相信,和传统的在项目起始阶段定义好所有需求再费尽心思的控制变化的方法相比,有能力在项目周期的任何阶段去适应变化,将是更加现实更加有效的方法。
XP为管理人员和开发人员开出了一剂指导日常实践的良方;这个实践意味着接受并鼓励某些特别的有价值的方法。支持者相信,这些在传统的软件工程中看来是“极端的”实践,将会使开发过程比传统方法更加好的响应用户需求,因此更加敏捷,更好的构建出高质量软件。

极限编程的核心特征包括:

  • 成对编程。如果代码审核好的话,那么就经常性的审核代码。
  • 测试。持续性的测试你的代码。
  • 重构。把重构做为每个开发者的日常工作。
  • 简洁化。尽量使用简洁的方式来设计系统。

 

  • 大小: 35.3 KB
  • 大小: 35.5 KB
  • 大小: 46.5 KB
  • 大小: 64 KB
0
0
分享到:
评论

相关推荐

    2021年零基础学Delphi 11开发极简教程.docx

    Pascal 是 Delphi 的 Object Pascal 语言演变而来的,长期以来一直是大学和教育中非常流行的编程语言,用于教授软件开发的基本概念。了解编程的基础知识是编程的关键部分。但是存在一个完整的术语和技术生态系统。...

    c语言初学者教程之开始学习c

    C 编程语言是学生和在职专业人士成为优秀软件工程师的必备语言,尤其是在软件开发领域工作时。 我将列出学习 C 编程的一些主要优势: 1、易于学习 2、结构化语言 3、生成高效的程序 4、可以处理低级活动 5、可以在...

    PHP教程 初级教程

    你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,...

    软件测试必看 入门级的教程

    三 浅谈软件开发中的注意事项 16 3.1 项目设计 16 3.2 设计变化和需求变化 16 3.3 代码编写 17 3.3.1 源程序文件结构 17 3.3.2 界面设计风格的一致性 17 3.3.3 编辑风格 17 3.3.4 命名规范 18 3.4 BUG...

    JSP网络程序设计与案例开发教程PPT

    JSP是目前流行的网络程序开发技术,熟练掌握该技术是计算机软件应用及相关专业学生的必备技能之一。本书以实际开发需求为主导,以目前主流的MyEclipse+Tomcat为开发平台,以网络购物系统的设计与实现为主线,辅以多...

    Android项目开发实战_益智类游戏-Wo!Water!_编程案例解析实例详解课程教程.pdf

    随着安卓平台上软件的日渐丰富,流行的游戏种类也在变化,而更加贴近现实、同时更富有趣味性的益智解谜类游戏逐渐风靡起来,越来越受广大玩家的青睐。本章将开发一款基于 Android 平台的益智类流体游戏—《Wo!Water!...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,...

    MyEclipse.6.Java.开发中文教程(1-10章).pdf 有详细的目录(书签)

    本书适用于希望了解如何使用 MyEclipse 6 进行 Java EE 开发的 Java 初学者。如果有 一定 Java 语言基础或者 Eclipse 使用经验,对阅读本书有很大帮助。 衷心希望本书能对部分程序员有所帮助! 本书是讲解 ...

    图文自由转OCR软件

    2、其它软件,尽管自称能识别多种图像格式、多种字体,但使用时你会发现,它们能识别的范围非常有限:基本只对扫描仪扫出的图像有效,图像里的文字必须很工整、必须很清晰、字体和背景的对比度必须足够高才能进行...

    用案例学Java Web整合开发 源码

    《用案例学JavaWeb整合开发:Java+Eclipse+Struts2+Ajax》的目标就是带领你逐个了解、熟悉、使用这些Java系列的产品,从一个零基础的Java菜鸟成为一个合格的Java程序员。Java作为当前最炙手可热的网络编程语言,已经...

    Wireshark图解教程(简介、抓包、过滤器 百度空间_应用平台

    Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。可破解...

    图文自由转OCR软件_卷2

    2、其它软件,尽管自称能识别多种图像格式、多种字体,但使用时你会发现,它们能识别的范围非常有限:基本只对扫描仪扫出的图像有效,图像里的文字必须很工整、必须很清晰、字体和背景的对比度必须足够高才能进行...

    编程狂人第九期(2014-1-20)

    目录 业界新闻 Java 8最终发布日期敲定,即使有bug也要发布 Rust 0.9发布,改进了线程模型 ...软件开发中团队首领的好坏之分 学编程就像选家具:去宜家还是从种树开始? 龙泉寺:如何用互联网思维管理一家寺庙?

    mysql lunix的安装

    这个是MySQL5.5再contos6下的安装方法 MySQL 是目前最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 也是目前最好的 RDBMS 应用软件之一。随着淘宝去IOE(去除IBM小型机、Oracle数据库及EMC存储设备)化的推进,...

    Jsp宝典 PDF

    在教程的最后部分,以综合实例来深入讲解JSP的应用以及JSP软件开发流程。  JSP宝典全书共分三大部分,第一部分首先介绍了JSP的概念和特征,让读者对JSP先有个初步的了解。第二部分详细对自定义标签开发、标准标签...

    JSP宝典(PDF)

    在教程的最后部分,以综合实例来深入讲解JSP的应用以及JSP软件开发流程。  JSP宝典全书共分三大部分,第一部分首先介绍了JSP的概念和特征,让读者对JSP先有个初步的了解。第二部分详细对自定义标签开发、标准标签...

    Struts2、Spring和Hibernate应用实例.

    这三种流行框架的整合应用,可以发挥它们各自的优势,使软件开发更加的快速与便捷。 struts2发布已经很久了,但关于如何使用它的教程及实例并不多。特别是与Spring及Hibernate等流行框架的集成,并不多见。现在就...

    Linux操作系统基础教程

    发环境(并不一定是最友好的,但一定是最强大的),我建议你一定要好好的熟悉一下 Linux。 三.如何得到Linux? 据我所知,大多数的 Linux 发行版本(Linux distribution)和核心(Kernel)都是可以 从网上下载...

    Java版设计模式(详细全面讲解,各种案例)

    我们使用最流行的,久经考验的开源Java技术。 在深入学习该材料之前,您应该熟悉各种软件设计原则。 所有设计应尽可能简单。您应该从KISS,YAGNI开始,并做可能可行的最简单的事情。仅在实际可扩展性需要它们时才...

Global site tag (gtag.js) - Google Analytics