系统架构设计:应用软件Software系统架构设计的 7种武器

  对于软件Software架构这概念有太多版本目前在业界由大师级人物或组织提出对这概念阐述就超过十种以上我个人比较赞同RUP(Rational Unied Process)中对软件Software架构定义即软件Software架构包含了有关以下问题重要决策:

  软件Software系统组织;

  选择组成系统结构元素和它们的间接口以及当这些元素相互协作时所体现行为;

  如何组合这些元素使它们逐渐合成为更大子系统;

  用于指导这个系统组织架构风格:这些元素以及它们接口协作和组合

  本文我们并不是要探讨软件Software架构定义只是想基于上面这种定义来谈谈在软件Software系统架构设计过程中我们会常常用到些“武器”

  ●长生剑:UML(UML2)

  UML(Unied Modeling Language)这建模语言已经成了软件Software设计人员必备工具几年前就曾有过“苦干年的后不通UML者无法染指软件Software开发”言论虽然从目前来看UML应用还并未达到如此程度但使用UML最大好处在我看来就是减少了沟通成本让我们把些想法能够很清晰直观表达出来在设计过程中使用得较多是用例图类图组件图部署图和时序图当下各种设计和建模工具对UML都有良好支持UML本身也是门不断发展语言现在UML2已经成为主流UML本身也极为简单对于初学者来说可能有些概念比较难懂可以结合实际来理解这样会事半功倍但我认为也不会太高深熟练使用就达到了应有境界

  剑谱:

  UML官方网站WebSite http://www.uml.org/

  UML基础、案例和应用(第3版)此书作为UML入门较为适合书中也以详实案例来教会我们如何使用UML

  ●孔雀翎:Office

  架构设计成果就是两项重要产出物是框架代码 2是架构设计文档在架构设计文档中除了包括些UML图的外还有些UML无法表示图表采用Office来制作和撰写这份文档再合适不过最常用就是WordExcel和Visio

  掌握这门“武器”不难可利用这门武器把各类文档写好就难了除了专业能力良好文字表达能力也是十分重要个成熟架构设计师在我看来应该也能写得手好文章最基本要求就是能够准确表达你想要表达意思

  秘籍:

  Word排版艺术在大陆十分有名台湾IT作家候捷作品(的所以这样说是我曾经跟我们公司在台北同事聊起过此人几乎没人知道此人)此书度借着他名气卖得很火他出书很多在这方面也有很多优秀经验值得借鉴

  ●碧玉刀:IDE(IBM RSA或Borland Together)

  通常我们所说IDE(Integration Development Environment)是指集成开发环境在这里我借用这个词是集成设计环境随着软件Software业发展和进步支持整套开发流程全系列软件Software越来越多越来越好这其中以IBM Rational Software Delivery Platform最为突出RSA(Rational Software Architect)就是其中作为建模工具对领域模型设计UML及SOA(Service-Oriented Architecture)等都有较好支持同时可以和RMC(Rational Method Composer)结合充分发挥MDA(Model Driven Architecture)思想把RUP流程发挥到极至

  不过发现RSA也有不好用和不听话时候最新RSA V7.0里面反向工程就不是很好用反向过来后很多关系消失了

  Together作为老牌儿建模工具也有着先进思想和设计其核心包括 4个方面:只维护单模型库(Live Source技术);符合最小元模型;扰乱改变模型;支持持续质量测量同时对正反向工程也有良好支援也正是其有自己思想和独特Borland公司也才会将其并入旗下

  刀譜:

  IBM RSA的教学指导Eclipse平台都有这东东大家自己去发掘吧通俗易懂

  IBM RSA相关Redbook(http://www.redbooks.ibm.com/)大名鼎鼎红宝书相信入行不久就定会知道(其实在大学时候就人有看什么GRE红宝书TOEFL红宝书估计红宝书词来源于此)

  Getting Started Guide for Borland Together 2006 for Eclipse官方教你如何玩转Together权威信不用质疑英文版但看起来并不难懂

  ●多情环:架构设计类经典书籍

  架构设计类好书不多但也不是没有我也没有认真读过几本但觉得有那么两本还值得推荐:Pattern Of Enterprise Application ArchitectureMartin Flower经典的作几乎是架构设计人员必读的书详细论述了企业应用各layers上模式和设计思想;Large-Scale Software Architecture告诉你什么样人才是架构师然后以构件为粒度深入探讨架构方方面面同时用UML呈现也是份UML在架构设计中应用最佳实战;J2EE Core Pattern设计Java平台应用系统经典参考书对GOF(Gong Of Four)设计模式在Java中应用和扩展进行了深入讨论看看你设计中可以运用其中哪些核心模式

  秘籍:

  有套适合自己学习知识思路方法对于IT行业人来说要看书籍和资料远远超过其他行业面对如此繁杂知识要有自己思路方法学会去整理要做到看必有收获否则不如去温习古龙或是金老爷子小说我常常喜欢用Mind Manager等软件Software把读书笔记和心得体会记录下来也常常回过头来看看这些笔记以前喜欢手抄信奉什么好记心不如乱笔头但后来发现有些落后不能和时俱进方式肯定会被淘汰人自然也会被踢出局

  ●霸王枪:Internet/Intranet

  当今时代离开网络这条枪对于IT从业人员来说寸步难行大多公司目前都还没有自己完善Intranet公司知识库资料和Internet资源相比可谓是小巫见大巫但千万不要忽视了公司通过SEPG(Software Engineering Process Group)或相似职能部门积累起来知识这些东西往往关注于行业领域或适合于你所在公司实际状况从这个方面考虑其力量超越Internet是很好模板常常我们会遇到自己不能解决问题这个时候就需要去网上百度下;在架构设计文档中我总喜欢弄个术语表而对于有些术语解释你会发现百度原来也是本好辞典

  枪谱:

  百度谷歌

  利用搜索引擎可以快速获得自己需要资料大幅提高效率也不至于让你淹死在浩如烟海信息海洋中

  的所以将百度写在前面个人习惯常常在搜索时候会优先考虑用百度在百度搜不到情况下才去谷歌百度出来大都是中文资料对于母语是中文人来说会提高我们阅读速度和理解效率命中率较高较好分词技术值得推荐谷歌当然不错相信不用多说

  ●离别钩:评审

  邀请你公司架构设计同行资深技术专家公司领导或行业中其他专家还有你PM(Project Manager)充分利用团队(Team)力量对于你所做架构设计初稿进行评审在评审前先把重点部分特别是你想跟大家起讨论更好解决方式部分整理成简单演示文稿(PPT)发给大家同时把详细资料也发给大家请大家在有空时候提前了解在评审会议时要先向和会人员介绍下项目背景需求千万不要忘了非功能性需求(包括性能安全可扩展性等方面)然后再从重点议题开始和大家起讨论这样可提高效率



  秘籍:

  虚心听取各方面意见评审时大家会提出各种各样问题有时候可能会提出各种让你很生气问题这个时候定要克制住自己情绪虚心听取他们提出建议对各种问题进行解释让他们真正明白你意思同时也从他们那里获取有用建议

  ●拳头:激情

  这也是和人最密切相关样武器拳头是你身体密不可分部分激情也是你思想密不可分部分要想把架构设计做好有做好件事激情是必不可少你要对新知识新技术充满好奇心要有创新精神在前人基础上结合自己所学去进行些小创新其实人类进步也就是靠这样次次小创新以最大程度确保架构稳定性和可扩展性同时也尽可能提高开发效率

  秘籍:

  确定自己发展方向就是做个技术专家如果你对自己职业规划有些想法不妨可以考虑下这个方向国外很多大师级人物因技术牛而成就了卓越事业国内目前也有向这个方向发展趋势

  我认为做个技术专家和向管理方向发展并不冲突技术专家也可以是管理行家软件Software行业很多人都是“技术优则管理”否则你在管理者位置上却不懂得基本技术在各方面都会遇到绊脚石也没有人真正服你

  正如古龙所说“武器是死人却是活“武器”是否能令你觉得神奇刺激主要还得看使用它是什么人虽然架构设计不是人人都可以做但我相信这几种武器通过大家自己努力定可以掌握



Tags:  系统架构 系统架构设计

延伸阅读

最新评论

发表评论