软件开发方法主要有结构化方法、原型化方法、面向对象开发方法、敏捷方法。

1、结构化方法

结构化方法由结构化分析、结构化设计、结构化程序设计组成,它是一种面向数据流的开发方法。

  • 结构化分析:依据分解与抽象的原则,按照系统中数据处理的流程,采用数据流图来建立系统的功能模型,从而来完成需求分析阶段的任务。

  • 结构化设计:根据模块独立性原则、软件结构优化准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,从而实现系统的概要设计。

  • 结构化程序设计:根据结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从而实现详细设计。

  • 指导思想:自顶向下、逐层分解。

  • 原则:功能的分解与抽象。

  • 适用领域:数据处理领域,不适合大规模、复杂的项目,并且难以适应需求的变化。

2、原型化方法

  • 流程:确定需求→开发原始模型→征求用户对初始原型的改进意见→根据改进意见调整原型

  • 适用领域:适合客户需求不清晰、业务理论不太确定、需求经常变更的情况。也适合系统规模不是很大很复杂的项目。

3、面向对象开发方法 

面向对象开发方法基本出发点是尽可能按照人们认知世界的方法和思维来分析解决问题,

组成:面向对象分析、面向对象设计、面向对象实现。

常见的开发方法:Booch方法、Coad方法、OMT方法。

UML统一建模语言是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,目前已成为面向对象建模的工业标准。

4、敏捷方法 

目标:尽可能早地、持续地对有价值的软件的交付使客户满意。通过在软件开发过程中加入灵活性,敏捷方法可以使用户在开发周期的后期增加或改变需求。

敏捷过程的典型方法

1、极限编程 XP

极限编程XP是一种轻量级、高效、低风险、柔性、可预测、科学的软件开发方式。

  • 核心价值观:沟通、简单、反馈、勇气、谦逊。

  • XP原则:快速反馈、简单性假设、逐步修改、提倡修改、优质工作。

  • XP最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结队编程、集体代码所有制、持续集成、每周工作40小时、现场客户编码标准。

2、水晶法 Crystal

水晶法认为每个不同的项目都有一套不同的策略、约定和方法论。

3、并列争求发 Scrum

采用迭代方法,其中把每30天一次迭代称为一个冲刺,并按需求的优先级别来实现产品。

4、自适应软件开发 ASD

基本原则:

  • 有一个使命作为指导

  • 特征被视为客户价值的关键点

  • 过程中的等待是很重要的

  • 变化不被视为改正,而是被视为对软件开发实际情况的调整

  • 确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求

  • 风险考虑

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

项目管理基础:软件开发的方法介绍相关推荐

  1. 简单介绍app软件开发的方法

    找软件开发公司,除了要了解其app开发报价,相应的软件开发知识也需要了解,比如app开发方法就分为好几种.下面汇动信息为你分析app开发方式的差异,企业在选择软件开发公司时需要掌握相关的软件开发知识. ...

  2. 鲲鹏基础软件开发赛道openLooKeng赛题火热报名中,数十万大奖等您来收割

    随着云计算.物联网.移动计算.智慧城市.人工智能等领域的发展,各类应用对大数据处理的需求也发生着变化.以实时分析.离线分析.交互式分析等为代表的计算引擎逐渐为各大企业行业发展所看重.作为鲲鹏产业生态的 ...

  3. 项目管理进阶--软件开发项目中的团队组成

    #项目管理进阶–软件开发项目中的团队组成 ##项目经理 项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往.总而言之,就是尽量使项目团队一直集中于正确的目标.项目经理还要建立一套工作方法,以 ...

  4. 敏捷软件开发——敏捷方法、极限编程、Scrum

    快速的软件开发过程就是为迅速制造可用软件而设计的.软件的开发和部署不是一次完成的,而是以一系列增量的形式完成的,每一个增量包括新的系统功能.尽管有很多快速软件开发的方法,它们都有一些基本的特性: 描述 ...

  5. 出了本练内功的书:《完美软件开发:方法与逻辑》

    首先说下什么叫"完美软件开发",想象一下,完美的圆在现实中是不存在的,现实中的圆只能是对完美的圆的回归,但完美的圆描述了圆的构成规则,完美软件开发意义与此相同,它试图描述软件开发的 ...

  6. 软件技术基础_软件技术(游戏软件开发)专业介绍

    软件技术(游戏软件开发)专业 核心课程 C++程序设计.Java程序设计.C#程序设计.Cocos2d-x游戏开发.Unity3D游戏开发.Android游戏开发.IOS游戏开发.游戏框架设计.游戏服 ...

  7. 【中级软考】什么是“敏捷过程的开发方法(敏捷方法agile)“(极限编程XP、特征驱动开发FDD、并列争球法Scrum、水晶法Crystal、开放源码法、自适应软件开发 ASD方法)

    文章目录 敏捷方法 1 极限编程 XP 1.四大价值观 2.十二个最佳实践 2 特征驱动开发 FDD 1.FDD 角色定义 2.核心过程 3.最佳实践 3 并列争球法 Scrum 1.Scrum 的五 ...

  8. 移动开发的软件开发生命周期介绍(二)

    Stabilization--稳定期 Stabilization is the process of working out the bugs in your app. Not just from a ...

  9. 软件开发(方法、模型)

    目录 1. 软件开发方法 2. 软件开发模型 参考 1. 软件开发方法 软件开发方法是指软件开发过程中所遵循的办法和步骤. 1) 从性质上,分为形式化方法和非形式化方法. 形式化方法在的数学基数上,采 ...

最新文章

  1. kafka数据 落盘_Kafka架构原理?也就这么回事!
  2. manjaro笔记本显卡驱动_从入门到高端!AMD Radeon RX 500系列移动显卡全解析
  3. 酷客多基金在济南大学成立“酷客多奖助学金“
  4. 深度学习:tensorflow Layers的实现,numpy实现深度学习(二)
  5. linux下 LVM的应用
  6. 伯颜的诗和“金佛”趣事
  7. 微服务的通信协议:Restful,RPC(Dubbo、Motan、gRPC)
  8. [JBoss] JNDI与JBossNS
  9. 腾讯惹谁了?为什么用QQ邮箱投简历不受人待见
  10. 男孩子不上学了学计算机要学历吗,十三岁男孩不上学,能学什么手艺?
  11. Python-docx python处理Word文档之加下划线
  12. 易班显示不能连接到服务器检查网络,网络思政教育 “易班网”不一般
  13. JS代码转换d.ts语法
  14. Prism4学习笔记(六):UI Composition
  15. 2013年第四届java A组蓝桥杯省赛真题
  16. ns3中PointToPointDumbbellHelper类的引入方法(哑铃型网络模拟)
  17. CLSID {10020200-E260-11CF-AE68-00AA004A34D5} failed due to the following error: 80040154. 错误的解决办法
  18. 达梦数据库配置SSL认证加密
  19. 验证邮箱是否合法php,PHP 验证邮箱是否合法,正确
  20. CAN总线(Controller Area Network bus)协议(一)

热门文章

  1. 邮件联系人,如何恕不部分字母就能显示邮件联系人
  2. ie6 div height bug css注意点(转)
  3. 《Sibelius 脚本程序设计》连载(十四) - 2.1 注释、语句、语句块
  4. 庖丁解牛-----Live555源码彻底解密(根据MediaServer讲解Rtsp的建立过程)
  5. NO.2_python_scrapy_反爬虫(随机请求头IP代理)取消链接去重
  6. Pytorch基础(九)——损失函数
  7. java 读取split_Java报错系列——split
  8. RC电路输出波形的时域与频域分析
  9. win7 + vs2015+ matlab2016a + python3.5安装matcaffe cpu版本
  10. Vue学习笔记(八) 组件进阶