架构设计


架构设计

文章插图
架构设计【架构设计】架构设计是人们对一个结构内的元素及元素间关係的一种主观映射的产物 。架构设计是一系列相关的抽象模式,用于指导大型软体系统各个方面的设计 。
基本介绍中文名:架构设计
来源:人对结构内元素间关係映射产物
性质:抽象模式
用途:指导大型软体系统各个方面的设计
软体架构师的职责架构师是软体行业中一种新兴职业,工作职责是在一个软体项目开发过程中,将客户的需求转换为规範的开发计画及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计画 。架构设计是软体设计过程的早期阶段,它把需求分析和设计流程连线在一起 。架构师的主要任务不是从事具体的软体程式的编写,而是从事更高层次的开发构架工作 。他必须对开发技术非常了解,并且需要有良好的组织管理能力 。可以这样说,一个架构师工作的好坏决定了整个软体开发项目的成败 。软体架构师之路所谓架构师通俗的说就是设计师、画图员、结构设计者,这些定义範畴主要用在建筑学上很容易理解 。小时候到河中玩耍,经常干的事就是造桥,步骤如下:1、在沙滩上画图;2、选择形状好看、大小适合的石头;3、搭建拱桥 。其中我们挑出来画图的那位光PP小孩就是传说中的“架构师”了 。在软体工程中,架构师的作用在于三方面:1、行业套用架构,行业架构师往往是行业专家,了解行业套用需求,其架构行为主要是将需求进行合理分析布局到套用模型中去,偏向于套用功能布局;2、套用系统技术体系架构,技术架构师往往是技术高手中的高手,掌握各类技术体系结构、掌握套用设计模式,其架构行为考虑软体系统的高效性、复用性、安全性、可维护性、灵活性、跨平台性等;3、规範架构师是通过多年磨砺或常年苦思顿悟后把某一类架构抽象成一套架构规範,当然也有专门研究规範而培养的规範架构师 。他们的产物往往也分为套用规範和技术规範两类 。与建筑学类似,如果软体系统没有一个好的架构是不可能成为成功的软体系统的 。没有图纸的建筑地、没有设计的造桥工程都是不可以想像的混乱世界 。建筑工程如是,软体工程中亦然!由于国内合格、胜任的软体架构师极为少见,直接导致了我国民族软体产业水平的落后 。在未来以信息产业为主导的社会,信息产业水平的低下将直接影响国家核心竞争力 。究其原因,无非企业急功近利、个人缺乏引导造成 。企业的急功近利是有无法克服的原因的,那就是社会发展总体水平 。“生存是第一位的,赚钱是第一位的”,多年来许多客户抱怨国内的软体公司无法信任、系统项目累做累败、公司越换越差,但因国外不可能给中国做套用系统项目还不得不找国内软体公司做 。由于人月费用低、公司开发成本高,软体企业对于套用只能草草了事,拿钱走人(很多公司拿不到后期尾款) 。这样的环境下,企业几乎无法投入更多资源培养自己的架构师,加上眼花缭乱的跳槽风气企业更是不愿投入……
架构设计

文章插图
那幺要成为架构师的途径似乎只有现在较为流行的软体学院和个人自我培养了 。关于软体学院我接触过不少,其宗旨绝大部分都是造就(or打造)企业需要的软体架构师(or程式设计师or人才) 。教师来源与企业、学员来源与企业、人才输送到企业是他们办学的手段 。儘管各个如雨后春笋般出现的软体学院口号差不多,但恐怕大多只是为了圈钱卖学位了事...架构师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的 。参考软体企业架构师需求、结合目前架构师所需知识,总结架构师自我培养过程大致如下仅供参考:1、架构师胚胎(程式设计师)学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协定)——学习搭建套用系统所必须的原材料 。2、架构师萌芽(高级程式设计师)学习分散式系统、组建等内容,可以在大学或第一年工作时间接触,包括分散式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网路计算机、高性能并发处理等内容)3、架构师幼苗(设计师)应该在掌握上述基础之上,结合实际项目经验,透彻领会套用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE架构、UDDI、软体设计模式等 。在此期间,最好能够了解软体工程在实际项目中的套用以及小组开发、团队管理 。4、软体架构师的正式成型在于机遇、个人努力和天赋,软体架构师其实是一种职位,但一个程式设计师在充分掌握软架构师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行套用的合理架构、如何不断的抽象和归纳自己的架构模式、如何深入行业成为能够胜任分析、架构为一体的精英人才这可不是每个人都能够遇上的馅饼……然而学海无涯,精力有限,个人如何能够很快将这些所谓的架构师知识掌握?这是秘密,每个人都有自己的独门家传秘笈就不敢一一暴露了 。不过有一点就是广泛学习的基础之上一定要根据个人兴趣、从事领域确定一条自己的主线来努力 。如果说架构师是在模型图纸上工作的,那幺模型元素必须是实实在在的,正如我们不可能期望抽象派画家来设计高楼大厦,没有实际意义的模型元素,是不可能构筑出软体系统的 。迄今为止,绝大部分软体架构师是依赖软体程式设计师来实现他们的架构意图的,这二者直接的鸿沟是显而易见的 。设计模式的出现是为缩短二者之间的鸿沟所做的努力,目的是让架构师和程式设计师之间有更多的共同语言和规範 。儘管设计模式让软体开发效率和质量有一定程度的提升,但是它始终面临一个很明显的局限,那就是人的因素 。人虽然在创造性方面有绝对优势,但是在精确性、持久性、效率、质量上是无法比拟机器的 。所以我们希望在软体系统构建过程中,人和机器发挥各自的长处,也就是说,让人来扮演架构师的角色,而让机器来扮演程式施工者的角色 。软体架构师的重要测试架构师不仅仅会影响到公司内的测试部门,还会影响开发、市场部门,好的测试架构师,可以从保证质量的角度,对产品的研发、销售各个方面施加深远而正确的影响,也吸收来自各个部门的建议,最终提高整体软体质量 。大家可能很吃惊,测试架构师怎幺能影响到市场部门?我们可能有这样的经验,项目经理要去拿着不完善的产品去演示,测试人员更清楚产品的新特性及需要进一步改进的地方,把这些信息告诉项目经理,避免在客户现场演示时献丑,还能知道如何充分展示产品的优越性 。我们的测试架构师当然也可以在更高的层次上给出市场行销的建议 。软体质量保证是一个贯穿需求分析、设计架构、软体测试等整个软体工程的过程,测试架构师需要熟悉需求分析方面的知识,在需求分析师整理用户需求的时候,才能和需求分析师结对工作共同保障整理的需求满足用户要求 。测试架构师需要掌握软体架构设计方面的知识,在软体架构师构建软体框架的时候,才能和软体架构师结对工作共同保障架构没有致命的缺陷 。测试架构师在测试技术、测试方法学上雄厚的知识,让他们具有需求分析师、架构设计师所不具备的视角,测试架构师和需求分析师、架构设计师的结对协同工作可以更加有效的获取完备的需求,更科学的进行软体架构 。