软件开发方法 ✌ #
常见的软件开发方法有4种:结构化法、面向对象方法、面向服务方法、原型法。
软件开发方法(方法论)比软件开发模型大一号,一个开发方法下面可以挂载多个开发模型。
整体图示如下图:
1 结构化法 ✅✅✅✅ #
用户至上;
严格区分工作阶段,每个阶段有任务和结果;
强调系统开发过程的整体性和全局性;
系统开发过程工程化,文档资料标准化;
自顶向下,逐步分解(求精,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决)。相对于自底向上方法,自顶向下方法可以更快地得到系统的演示原型。
2 面向对象方法 ✅✅✅✅ #
拥有更好的复用性,更符合人们的思维习惯;
自底向上(根据系统功能要求,从具体的器件、逻辑部件或者相似系统开始,通过对其进行相互连接、修改和扩大,构成所要求的系统);
分析、设计、实现三个阶段,界限不明确。
3 面向服务方法 ✅✅✅✅ #
基于服务的架构SOA方法有三个主要的抽象级别:操作(级别低,如数据库的读写操作)、服务(级别中,代表操作的逻辑分组,粒度太小增加通信开销,粒度太大影响服务对需求变化的敏捷性)、业务流程(级别高,为实现特定业务目标而执行的一组长期的动作,通常包含多个服务的调用);
在软件架构风格中会详细说明“基于服务的架构SOA”
4 原型法 ✅✅✅ #
适用于需求不明确的开发;一般主要用于需求分析阶段,对用户需求做出快速相应;可以和另外3中开发方法打配合。
按结果分:包括抛弃型原型和进化型原型。按功能分分为:水平原型(界面)和垂直原型(算法)。
5 其他重要的软件开发方法 ✅✅✅ #
形式化方法:所有东西均可证明/验证,而不是代码测试;形式化方法是一种具有坚实数学基础的方法,从而允许对系统和开发过程做严格处理和论证,适用于那些系统安全级别要求极高的软件的开发。形式化方法的主要优越性在于它能够数学地表述和研究应用问题及软件实现。但是它要求开发人员具备良好的数学基础。用形式化语言书写的大型应用问题的软件规格说明往往过于细节化,并且难于为用户和软件设计人员所理解。由于这些缺陷,形式化方法在目前的软件开发实践中并未得到普遍应用。
统一过程方法UP:在软件开发模型->统一过程模型UP/RUP;
敏捷开发方法:在软件开发模型->敏捷开发模型;
基于架构的开发方法ABSD:在软件架构设计->基于架构的软件开发。