`

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
分享到:
评论

相关推荐

    2019新版软件设计师教程(第五版)(完整版&最新版)

    3. **设计模式与框架**:深入探讨常见的设计模式,如工厂模式、单例模式、观察者模式等,以及流行的软件开发框架,如Spring、Hibernate、AngularJS等的应用。 4. **算法与数据结构**:回顾基础的算法知识,如排序、...

    RoboMaster开发板C型嵌入式软件教程文档.pdf

    了解 CubeMX 和 Keil 软件是学习 RoboMaster 开发板 C 型嵌入式软件教程的必要条件。 RoboMaster 机器人功能简介 RoboMaster 机器人是一款功能强大且易于使用的机器人开发平台,旨在提供一款功能强大且易于使用的...

    软件开发基础3

    在“软件开发基础3”这一主题中,我们将深入探讨软件开发过程中的关键概念和技术,这包括但不限于编程语言、软件工程原理、项目管理以及版本控制。在这个阶段的学习中,你将获得构建复杂系统所需的基础知识。 1. **...

    linux开发基础教程

    Git是当今最流行的分布式版本控制系统,学习使用Git管理代码版本、协同开发,是每个开发者的必备技能。教程会讲解Git的基本操作,如克隆、提交、分支、合并等。 十、Linux开发环境搭建 最后,教程将介绍如何在Linux...

    软件开发 学习资料

    【软件开发 学习资料】 本资源集合涵盖了丰富的软件开发学习材料,主要针对Java编程语言,同时也包含了其他如ASP.NET、Oracle、JavaScript等技术领域的实战教程。这些视频教程旨在帮助初学者和有经验的开发者提升...

    响应式Web开发项目教程(HTML5+CSS3+Bootstrap)源码.7z

    Bootstrap是目前最流行的前端开发框架之一,它基于HTML5和CSS3,旨在简化响应式网站设计和开发。Bootstrap的核心特性包括预设的网格系统、可重用的组件(如导航条、按钮、下拉菜单和模态框)以及一系列自定义的...

    高级软件工程师教程资料

    本教程资料集合了高级软件工程师在职业发展过程中所需掌握的关键知识点,旨在帮助读者全面了解并提升软件开发的各个环节。从开发手册到用户手册,这套资源涵盖了软件生命周期的各个方面,旨在为有志于成为顶尖软件...

    Qt5 离线安装教程详细介绍

    Qt5 是一个流行的开源跨平台应用程序开发框架,它支持多种操作系统,包括Windows、Linux和macOS等。Qt5提供了一整套工具、库和API,用于构建用户界面和应用程序,适用于桌面、移动以及嵌入式设备。尽管最新的版本是...

    《3G手机软件开发》 课程设计 Android平台 doc

    完成《3G手机软件开发》课程的数独游戏设计,不仅锻炼了学生的编程技能,也让他们了解了Android应用的完整开发流程,从需求分析到测试上线,对软件工程有了更深入的理解。这样的实践项目对于提升学生的综合能力具有...

    Cache面向对象开发教程.pdf

    在国内,Caché也开始被越来越多的软件开发商采纳,用于开发高性能的应用系统。 **学习资源** 为了帮助用户和开发者更好地理解和使用Caché,InterSystems公司提供了详尽的培训和技术支持,包括中文版的用户手册,...

    无涯教程(LearnFk)-Flutter教程离线版.pdf

    Flutter是由谷歌开发的一款开源移动应用软件开发工具包,它主要用于开发Android、iOS、Windows、Mac、Linux和Google Fuchsia平台的应用程序。Flutter允许开发者仅用一套代码库就能构建出既美观又高性能的移动、Web和...

    软件工程实践教程2010.rar

    3. **开发技术**:这部分会涉及软件开发的各种方法和技术,如结构化编程、面向对象编程、敏捷开发、DevOps等。可能还会介绍流行的编程语言,如Java、C++、Python,并讨论如何在实际项目中应用这些技术。 4. **项目...

    Java Web开发实践教程 课件

    3. **MVC(Model-View-Controller)架构模式**: MVC是一种常见的软件设计模式,常用于Web开发。Model代表业务逻辑和数据,View负责展示数据,Controller处理用户交互。Spring MVC是Java中实现MVC的流行框架,提供了...

    中级-软件-《软件评测师教程》目录.doc

    ### 软件评测师教程知识点解析 ...- 本部分对常用的软件测试工具进行了简要介绍,包括工具的功能、特点以及适用场景,旨在帮助读者了解市面上流行的测试工具,并能根据实际需求选择合适的工具进行测试工作。

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_7_数据验证 共56页.pptx

    在进行Java软件开发时,Struts2作为一款流行的Web应用程序框架,其丰富的功能和灵活的配置方式深受开发者喜爱。本教程旨在帮助初学者和有一定经验的开发者深入了解Struts2框架下的数据验证机制及其应用场景。 #### ...

    星宿UI小程序所需软件教程.zip

    隐私保护是任何软件开发都必须关注的重点,尤其是对于拥有庞大用户群体的微信小程序。该文档可能介绍了小程序开发者应遵循的隐私保护法规和最佳实践。 对于软件开发来说,合适的开发工具是提高效率的关键。文件中的...

    Visual Basic 6.0数据库开发学习教程

    Visual Basic 6.0是微软公司推出的一种面向对象的编程语言,它以其直观的界面和强大的功能在软件开发领域占据了重要位置。而在数据库开发中,VB 6.0更是因其与Access、SQL Server等数据库的良好集成而备受青睐。 本...

    在Mac OS X系统编程、软件开发入门教程.docx

    在Mac OS X系统编程和软件开发入门,首先需要了解的是,Mac OS X的核心是基于Unix,准确地说是FreeBSD和Mach的结合,这使得它成为一个优秀的开发平台,支持多种编程语言,如C、C++、Java、Perl、Python、Ruby以及...

    软件测试技术入门教程

    软件测试是软件开发过程中不可或缺的一部分,它确保了产品的质量和可靠性。本教程将带你逐步走进这个领域,了解软件测试的重要性、基本概念以及常见的测试方法。 一、软件测试简介 软件测试是为了发现软件中的错误...

    Linux安装开发软件

    在Linux操作系统中,安装开发软件是开发者日常工作中不可或缺的一部分。本教程将详述如何在Linux环境下安装Java开发工具包(JDK)、Tomcat应用服务器以及MySQL数据库,这三者是许多Web应用程序开发的基础。 首先,...

Global site tag (gtag.js) - Google Analytics