time 
设为首页】【收藏本站
当前位置: 主页 > 软件工程 > 软件过程 > 在应用程序架构中实践敏捷

在应用程序架构中实践敏捷

时间:2009-12-04 22:56 点击:547次 字体:[ ]




  微软最近在“模式及实践”分类下发布了一篇文档,名为“如何用敏捷架构进行设计”,为如何使用敏捷方式进行架构提供了详细的指导。

  文档推荐用以下列举的条目做为输入,开始设计之路:

  用例和使用场景
  功能需求
  非功能需求(质量相关话题,如性能、安全性、可靠性)
  技术需求
  目标部署环境
  限制

  设计应该产生这些输出产物:

  架构特征明显的用例
  架构热点
  候选架构
  架构刺探

  该文档通过明确建议不要一步完成架构设计,而要采取五步法实现的方式引入敏捷:

  第一步:确认架构目标。清晰的目标可以帮助你致力于自己的架构,还能帮助你致力于解决设计中合适的问题。好的目标帮助你决定什么时候完工,以及什么时候需要开始下一个新的阶段;
  第二步:关键场景。使用关键场景让设计只关注最经常发生的事情,以及在候选架构准备好时对它们进行评估;
  第三步:应用概览。理解你的应用类型、部署架构、架构类型以及技术等,以将设计和应用要服务的真实世界密切联系起来;
  第四步:关键热点。根据质量特征和架构框架确认关键热点。在设计应用时,总有一些地方是经常犯错的。
  第五步:候选方案。创建一个候选架构或者“架构刺探(Architectural Spike”,然后用关键场景、热点和部署限制等对它进行评估。

在应用程序架构中实践敏捷_www.fengfly.com

  第一步:确认架构目标

  根据微软模式与实践部门首席程序经理J.D. Meier所说,这一步的目的是评估“在接下来的几步上要花费多少时间、精力以及全部努力等”。第一步的结果应该是:

  构建原型
  确定关键技术风险
  测试潜在路径
  共享模型和约定

  第二步:关键场景

  根据J.D. Meier的说法,可基于下面这些用例的要素,确定什么是最好的场景:

  对于所部署应用的成功和接受度来说,它们是重要的;
  用例中充分体现了设计,可资用于评估架构。

  第三步:应用概览

  要将真实世界的细节和具体事物引入到设计中,应用概览是必不可少的,我们可以通过以下几步来创建它:

  决定应用类型:首先,要决定你要构建的应用是什么类型。是移动应用,富客户端,富互联网应用,服务,Web应用还是其他组合等?
  理解部署约束:下面,要理解你的目标部署环境,然后决定它会对你的架构产生什么影响。
  确定重要的架构类型:决定在你的设计中要使用哪种架构类型。你会构建一个面向服务的架构,C/S,分层的,消息总线还是其他组合等?
  决定相关的技术:最后,根据你的应用类型和其他约束来确定相关技术选型,并决定在架构中你要利用哪个技术。

  对于以上提到的所有步骤,文档都提供了建议,下面提供了一个在多个架构类型中做选型的例子:

  C/S:对系统进行隔离,这样客户端可以从服务器发出请求;
  基于组件:将应用设计分解成可复用且接口定义良好的组件;
  分层:将系统以分层的形式隔离成功能类似的集合;
  消息总线:定义能被所有连接系统使用的已知格式,从而使得它们不需要了解真实接收端之间的区别;
  面向对象:一种基于将任务分成可复用对象的编程类型,这些对象包含数据以及和对象相关的动作;
  面向服务(SOA):一种使用契约和消息以服务的形式暴露和消费功能的应用。

  第四步:关键热点

  在这一步,我们应该“确定应用架构中的热点,来理解那些经常犯错的地方。关键热点则可以通过质量特征和横切关注点来组织起来。”文档中提到的众多热点包括:可用性、交互性、可维护性、可靠性、安全等。

  第五步:候选方案

  确定好关键热点后,架构的初步草案就已经形成了。然后,要回到第二步来评估候选架构,然后根据第三、第四、第五步产生一个新的候选。这个过程迭代重复,通过每个迭代对自己进行优化。



本文地址 : http://www.fengfly.com/plus/view-159851-1.html
标签: 应用 架构 应用程序 设计 实践 敏捷
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: