- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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、架构师最重要的素质:把握重点。
注意:灵活的把握,实事求是的分析,
善意和把握重点的沟通,
有先见性的设计,
这是一个优秀的系统构架师活的灵魂。
第二节 软件分析和设计的方法学问题
由于架构设计的源泉来自于软件分析,不同的分析与设计方法,将会带来完全不同的架构思路。从方法学的角度来讲,目前分析
您可能关注的文档
- 跨高速公路连续梁安全防护方案详解.doc
- 跨沟海线连续梁安全方案详解.doc
- 跨国道特大桥下部结构实施性施工组织设计详解.doc
- 跨国公司如何选拔和培养职业经理人(高建华)详解.doc
- 跨路施工专项安全施工方案详解.doc
- 跨铁路公路营业线施工安全应急预案详解.doc
- 跨线桥施工方案(总体)详解.doc
- 跨线现浇梁施工安全专项方案详解.doc
- 跨渝宜高速公路连续梁施工方案详解.doc
- 块地项目可行性分析报告详解.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)