架构讲义-详解.doc

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 软件架构设计思想与体系创建 第一节 软件架构师的角色和应掌握的知识体系 一、软件架构 软件架构(software archiecture)的一种定义是这样的: 架构是一组有关如下要素的重要决策: 软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素和行为元素组合成粒度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。 软件架构可以有多种定义,不管对软件架构如何定义,所有的定义都有一个共同的主题,那就是必须考虑诸如原理、组织、风格、模式、职责、协作、连接、系统的动机和主要子系统等大尺度方面的问题。 软件架构实际上是两个层面的事情,一个是设计构造一个完整的软件系统,这里的架构也称作软件体系结构(Software Archiecture)。另一个层面是构造一个统一的共享的框架或者称架构(Framework),这种架构事实上是系统的一个基于服务的层。 软件架构在整个软件开发过程中,是处在软件体系结构设计阶段(设计),它的必要的输入,是来自需求工程(分析),而它的输出,是实现设计(编程),因此这是一个承上启下过程节点。 在软件开发中,架构既可以是名词,也可以是动词。 作为名词,架构包括上面所定义的内容。 作为动词,架构一部分是调研,一部分是设计,更清晰的,是架构调研和架构设计。 架构调研: 是指识别对系统存在或可能存在重大影响的功能性或非功能性需求(特别是非功能性需求),例如市场趋势、性能、成本、维护和系统演进等。广义上,是对系统的重大设计决策有特别影响的需求进行分析。 架构设计: 是对软件、硬件、网络、运营、政策等软件设计中的需求和要素进行决策。 在统一过程里面,架构调研和架构设计统称为架构分析。 软件架构设计是一个系统工程,它需要系统构架师有很宽的知识面,从需求分析、架构设计到类设计甚至代码实现都需要有透彻的理解,这之间的关系是你中有我我中有你,是不可能截然分开的。 在这个课程中,我会站在相对抽象的角度,对软件系统设计的思想和方法做一些讨论,这些观点,也是不少资深系统架构师经验的集合。必须说明,软件系统设计的方法不是一个僵化的规则,我表达的一些观点你也不一定赞成,这不要紧,关键是在实践中实事求是的摸索规律,从而找出一些符合实际的方法来。 二、软件架构师的角色 尽管对软件架构师的角色有这样或那样的定义,但大体上下面几个职责是必需的。 1、技术负责,解决方案的提供者 2、与项目经理合作,制定计划,决定成员,组织团队 3、保证项目按计划和走向完成 由于设计是由需求驱动的,所以,掌握需求分析的技巧,是一个好的架构师必备的能力。 三、软件架构师最难处理的问题 1、不是做什么,而是不做什么 2、不是从纯技术的角度来考虑整个项目 3、预见客户走向,早期决定技术研发 4、不能使用时髦但不可靠的技术 四、如何成长为一个好的系统架构师 架构师必须关注需求、分析需求,有人认为架构师只是在需求出来以后,把它的实现模型做出来就行了,真要是这样,那做一个架构师未免也太容易了。 事实上,现代迭代开发所有的驱动力都在于需求变更,如果架构师不关注需求,不关注和用户的讨论和沟通,那是很难设计出真正有用的东西来的。 软件架构设计是一个非常严肃、细致、敏感而且困难的工作,必须一点一滴认真做起,扎扎实实的努力,实实在在的积累经验,尤其是在失败中积累经验,这是一个软件架构师成功的必由之路。 为此,我们需要注意下面几点: 1、首先必须是一个好的程序员,技术上要强 2、知识结构:对象的观点,UML,RUP,设计模式 关键不是懂得了原理,而是灵活融合的应用 3、系统的观念:分析能力,把握抽象的能力 4、沟通能力:与客户沟通能力,与项目其它成员的沟通能力 5、知识面要广,把握行业流行趋势,但不要赶时髦 6、灵活机动,不能教条 五、几个观点 1、要承认软件是不完美的 2、要承认需求是不完全的 3、关键是拥抱变化而设计 4、各种性能标准,什么是架构师最关注的呢? 5、架构师最重要的素质:把握重点。 注意:灵活的把握,实事求是的分析, 善意和把握重点的沟通, 有先见性的设计, 这是一个优秀的系统构架师活的灵魂。 第二节 软件分析和设计的方法学问题 由于架构设计的源泉来自于软件分析,不同的分析与设计方法,将会带来完全不同的架构思路。从方法学的角度来讲,目前分析

文档评论(0)

boss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档