架构师学习笔记6–开发方法

软件开发方法目的在于提高软件质量,降低成本。

一、软件生命周期
软件生存周期,分为8个阶段:
1、可行性研究与计划
2、需求分析
3、概要设计
4、详细设计
5、实现
6、集成测试
7、确认测试
8、使用和维护

二、软件开发模型
大规模软件开发时代,有了各种各样的模式化开发方法,称为开发模型:
(一)瀑布模型
开发如同瀑布,从一个阶段流向下一个阶段。其思想认为软件开发是一个阶段化的精确过程,每一个步骤都划分得很明确,阶段之间有明显的界线。

经典的瀑布模型除了需求分析,每一个阶段,都可以有一个反馈指回上一阶段,作为修正机制。但缺陷总是无处不在,瀑布模型有了一个变体:瀑布V模型,即编码前的阶段,都与后面一个测试阶段对应:

这里写图片描述

从时间看,历经起始、细化、构建和交付四个大阶段,然后每个大阶段会有一些小阶段;每个阶段都有相应的工作内容(纵轴),不过侧重点、所占比重不一样。

架构设计师在UP活动中除了设计系统架构,还要与需求人员、项目管理人员密切合作,细化软件架构,保持整个架构的概念完整性。UP是一个以架构为中心的开发模型。

(七)敏捷方法
敏捷方法的核心是尽早交付,经常交付。
1、极限编程(XP)
敏捷方法中最成熟。
特点:
1)尽快反馈(有东西可看
2)尽快制定总体计划
3)自动测试
4)提倡口头交流

一些关键词:

不过度设计(简单设计)
持续集成
结对编程
测试驱动
集体代码所有制
现场客户
重构

2、特征驱动开发(FDD)
迭代开发,每一步都强调质量。
1)角色定义
FDD认为软件三个要素是:人、过程和技术。最重要的是人。FDD定义了6种人员角色:

项目经理
首席架构设计师
开发经理
主程序员
程序员
领域专家

2)核心过程

这里写图片描述
关键词:产品代办事项 每日站会 用户故事 计划会议 迭代

4、水晶方法
适合6人以下小团队。
特征:团队融洽,紧密合作
经常交付
渗透式交流:团队成员在一个室内一起工作,有人提出问题或发起讨论,其他人可关注可不关注,气氛轻松自由。
反思改进
与专家沟通无阻
自动化测试

5、其他敏捷方法
开源,远程办公

(八)、软件重用
软件重用也算一种开发方法
1、软件重用形式
1)源代码重用
2)架构重用
3)应用框架重用
4)业务建模重用
5)文档及过程重用
6)软构件重用
构件,组件
7)软件服务的重用
SOA

(九)、基于架构的软件设计
基于架构的软件设计(Architecture-Based Software Design,ABSD)是一种架构驱动方法。

所谓架构驱动,是指架构先行,需求获取和分析还没有完成(甚至远远没有完成),就开始了软件设计。当然这不意味着需求获取和分析活动就可以终止,而是应该与设计活动并行。特别是在不可能预先决定所有需求时,例如产品线系统或长期运行的系统,快速开始设计是至关重要的。

ABSD有3个基础:
功能分解
选择架构风格来实现质量和业务需求
使用软件模板

1、ABSD方法与生命周期

这里写图片描述

(十)形式化方法
采用严格的数学方法和形式化规约语言(不同于我们平时所用的自然语言)来精确定义软件系统,包括描述和验证两部分。
特点是描述精确,需求没有模糊和二义性,产生的软件可靠性高。
不明觉厉。

来源:左直拳

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月11日
下一篇 2018年1月11日

相关推荐