软件开发的8大主流方法介绍
软件开发方法是一种使用早已定义好的技术集及符号表示习惯,来组织软件生产的过程。
软件开发需要严谨工作方法。软件开发的方法有很多,不同的开发方法适用于不同的软件项目,具体使用哪种方法,还需要根据软件情况来确定。
结构化方法
结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
结构化分析
是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。
结构化设计
根据模块独立性准则、软件结构优化准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。
结构化程序设计
使用3种基本控制结构构造程序,任何程序都可以由顺序、选择和重复3种基本控制结构构造。
结构化方法总的指导思想是自顶向下、逐层分解,它的基本原则是功能的分解与抽象。适合于数据处理领域的问题,不适合解决大规模的、特别复杂的项目,且难以适应需求的变化。
Jackson方法
Jackson方法是一种面向数据结构的开发方法。
JSP(JacksonStructure Programming)方法是以数据结构为驱动的,适合于小规模的项目。JSP方法首先描述问题的输入/输出数据结构,分析其对应性,然后推出相应的程序结构,从而给问题的软件过程描述。
JSD方法是JSP方法的扩展,是一个完整的系统开发方法。首先建立现实世界的模型,再确定系统的功能需求,对需求的描述特别强调操作之间的时序性。它是以事件作为驱动的,是一种基于进程的开发方法,所以适用于时序特别较强的系统,包括数据处理系统和一些实时控制系统。
原型方法
原型方法比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。
photo © net面向对象方法
面向对象方法正是以对象作为最基本的元素,它也是分析问题、解决问题的核心。面向对象方法包括面向对象分析、面向对象设计和面向对象实现。
UML是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,现已成为面向对象建模的工业标准。
敏捷方法
极限编程(XP):XP是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。
4大价值观:沟通、简单性、反馈、勇气
5个原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作
12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序) 、重构(重新审视需求和设计,重新明确地描述他们以符合新的和现有的需求)、结对编程、集体代码所有制、继续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40小时、现场客户和编码标准。
水晶法
水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论。
并列争求法
并列争求法使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。
自适应软件开发(ASD)
ASD有6个基本的原则
有一个使命作为指导;
特征被视为客户价值的关键点;
过程中的等待是很重要的,因此“重做”与“做”同样关键
变化不被视为改正,而是被视为对软件开发实际情况的调查。
确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求。
风险也包含其中。
出品丨蓝海汇(ID:lanhaihui2015)
转载请联系授权