敏捷的架构设计

敏捷的架构设计

ID:34169102

大小:71.77 KB

页数:3页

时间:2019-03-04

敏捷的架构设计_第1页
敏捷的架构设计_第2页
敏捷的架构设计_第3页
资源描述:

《敏捷的架构设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、敏捷的架构设计-CodeisDesign欣捷开发对釦生架构设计产生了一定的影响,让人产生敏捷开发屮“轻架构设计”的印象。文章就笔者经验,和大家一起讨论一下敏捷中的架构设计这个话题。首先,笔者认为敏捷开发是一种软件过程方法和工具,敏捷开发本身并不能代表架构设计。这就好比建筑架构设计和建筑工程管理之间的差别-•样,两者是建筑的两个方面。相同的软件行业也是类似的悄况,软件架构设计描述的是事物本身,而敏捷开发描述的是创建这个事物的过程。所以敏捷开发和架构是没有直接替代关系的两个范畴。但敏捷开发后,架构设计(内容和

2、形式上)还是有了一定程度的变化。1.敏捷开发中架构设计的方式这里的架构设计方式,指什么时候进行架构设计,并以什么样的方式进行架构设计,如Iteration中新需求引入时,重构的方式,CodeisDesign的方式等。下图描述了敏捷开发前和后架构方式:架构设计架构设计•••••••••••••••••••瀑布钦件开发过程BlWBHUmUBntSflNRMUtffsE上图屮,敏捷开发后软件架构设计的方式产生了变化:敏捷开发把原先软件过程前期的架构设计,分散到了整个敏捷开发软件过程中。看到敏捷开发中分散化的架构

3、设计,想起公司财务中的”马克威茨资产组合理论“,用马克威茨这个诺贝尔大师的理论來解释敏捷开发中的分散架构形式,却也行得通。“马克威茨资产组合理论•'中说道:可以通过分散投资使收益率不变而方差(风险)减少。通俗--点讲也就是不要把鸡蛋放在一个篮子里。资产组合分散化后,可以做到收益率不变的情况下,风险减少。这里的风险指的是波动,也就是方差。这和软件工程屮的风险冇异Illi同工Z遺,即软件工程中的风险指:需求的波动,数学化后就是需求的方差。然后可以按照统计定理推论出,把架构设计组合化,并分散化,有益于收益率不变

4、的悄况下,减少软件风险。(中间的推导过程省略,有兴趣的朋友参考相应文献)。如果按照资产组合理论,下而这些就是软件架构设计中的组合,把一次性软件过稈前期30%(甚至更多)的架构设计,换成如下的软件架构组合:(1)引入新需求后的架构。每个Iteration中,新需求引入前,都可以进行构思和架构。(2)重构产生架构。先让软件运行,再重构其代码。那么软件的架构随着重构自然而然的在软件过程中产生。(3)开发过程中的设计:以前是设计完后开发,现在是边设计边开发。(4)其他所以敏捷开发不是轻架构设计,而是依然注重架构设

5、计。只不过架构的方式变化了,变得更加有效且风险更小。1.敏捷开发中架构设计的内容传统的架构设计,包括架构和设计两个方而、其中设计可以包含详细设计,如详细的UML图(详细的类图,顺序图等),详细的API设计以及接口描述,存储层数据库表字段设讣等等。出于下面两个方而的考虑,敏捷开发不适合这种架构设计内容:(1)在当今的快速变化的社会中,业务需求和技术也都快速变化着,在软件过程前期花费30%(甚至更多)的时间进行架构设计,要么开发出來的软件不符合市场需求,要么就是一旦需求变动,造成较大的改动成木。如,作者了解的

6、一个电子商务产品,当前所做的功能都是两年前规划设计的,而且如冇新需求发生,需要下个版木才会采纳,导致整个产品脱离市场和客户的需求。(2)架构设计包含两个方面,一是:架构,二是:设计。瓦中设计中的详细设计需要大量的时间,包含详细的流程,API,数据结构等设计。但软件开发阶段的Code编码阶段,同样蕴含了很多详细设计的内容,所以二者Z间存在着RepeatYourself的情况。换句话说,现在敏捷开发提倡Codeisdesign,而以前是Designiscode。但问题是,软件开发人员维护一套Design,外加

7、-•套Code,不堪重负,效率低。所以,现在是CodeisDesign盛行,敏捷盛行。基于这两种原因,敏捷屮将传统的架构设计分成:架构+设计:(1)敏捷开发的架构保留架构部分(2)转移设计到Code编码阶段、重构阶段、UnitTest阶段等。分离后,敏捷开发中的架构就轻装上阵,内容可以包括:(1)软件的架构层次,层次化是软件产品架构中很重要的一部分。(2)产品和技术选型(3)各个组件的结构,以及的关系(4)重要模块,和重耍类的说明。但无需设计全部的类,和类的方法。(5)....而详细设计阶段,则在Code

8、编码和UT单元测试阶段进行。这个阶段重构很重要,重构使你的软件架构和组件结构自然呈现.所以在敏捷开发中架构设计的内容发生了变化:敏捷开发中止于架构,轻详细设计。但详细设计不是消失不见了,而是转移到了开发阶段,也即是:Codeisdesigno这样既能拥抱变化,又规避风险,又Don,tRepeatYourself41.敏捷开发中架构设计的人员散捷开发后,软件过程变化了,架构形式变化了,随Z相应的人员的责任和需耍素质也会变化。这里

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。