系统架构师笔记(一)

原创 2013年11月07日 13:53:57
今年的系统架构师考试马上就要开始了,在此进行了一次核心要点总结,与大家一起分享。
一、质量属性:
1、性能:系统的响应能力,即要经过多长时间才能对某个事件作出响应或者在某段时间内系统所能处理事件的个数。架构设计策略:增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)
2、可用性:系统能够正常运行的时间比例。架构设计策略:Ping/Echo、心跳、异常和信息主动冗余等。
3、可靠性:软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能性的能力。架构设计策略:运行时注册,主动冗余   可靠性的计算、检错技术和容错技术
4、健壮性:处理环境中,系统能够承受压力或变更的能力。
5、安全性:系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。架构设计策略:抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
6、可修改性:能快速的以较高的性能价格比对系统进行变更。架构设计策略:软件模块泛化、限制模块之间通信、使用中介、信息隐藏、延迟绑定等。
7、可变性:体系结构经扩充或变更成为新体系结构的能力。
8、易用性:用户使用一个软件产品完成指定任务的难易程度。
9、可测试性:软件发现故障并隔离、定位其故障的能力特性,以及在一定时间或成本前提下,进行测试设计、测试执行的能力。架构设计策略:记录-回放
10、功能性:系统所能完成所期望工作的能力。
11、互操作性:系统与外界或系统与系统之间的相互作用的能力。
二、“4+1”视图
对逻辑架构进行描述,最早由 Philippe Kruchten 提出,他在1995年的《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文,引起了业界的极大关注,并最终被 RUP 采纳,现在已经成为架构设计的结构标准。
逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
开发视图(Development View),描述了在开发环境中软件的静态组织结构。
架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例 (use cases)或场景(scenarios)来说明,从而形成了第五个视图。
三、经典软件体系结构风格
1、虚拟机风格:java虚拟机
2、事件驱动风格:图形用户界面
3、管道-过滤器风格:数据内容的逐步分解与分阶段处理。适合服务器服务端处理软件的要求。
4、隐式调用风格:回调机制,集成调试器,根据外部事件进行响应的场景。
5、解释器风格:强调用户定义系统中对象的关系和行为这一特性,需要在软件架构层面提供一种运行时的系统行为定义与改变的能力。
6、过程控制风格:实时获取外界信息,与用户自定义信息进行比较并作出动作。
7、黑板风格:正确结果不止一个,求解过程比较复杂,需要通过专家只是和反馈逐步得到正确的结果。比如人工智能等。
8、数据共享风格:关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理,针对程序的各种形态建立数据库,通过中心数据库进行转换与处理。
四、架构模式、惯用法、设计模式
1、架构模式:设计软件中的高层决策,反映了开发软件系统过程中所做的基本设计决策;
2、设计模式:主要关注软件系统的设计,与具体的实现语言无关;
3、惯用法:实现时通过某种特定的程序设计语言来描述构建于构建之间的关系,例如C++语言中的引用-计数
五、设计模式
1、装饰模式:能够动态的对一个对象进行功能上的扩展,也可以对其子类进行功能上的扩展。
2、观察者模式:对于某个具体固定结构的活动节点需要多种处理能力,且处理能力可扩展,也就说要求在不改变原来类结构(活动节点)的基础上增加新功能。
3、工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类
4、责任链模式:很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在这个链上传递,直到链上的某个对象决定处理此请求。
5、中介者模式:用一个中介者对象封装一系列的对象交互。
6、代理模式:提高系统效率,避免同时创建对象。
7、命令模式:将请求、动作封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。
8、组合模式:(整体-部分模式)通过多个对象形成属性结构以表示整体-部分的结构层次。对单个对象(叶子对象)和组合对象(容器对象)的使用具有一致性。
六、权衡点和敏感点
敏感点是一个或多个构件(或之间的关系)的特性

    权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

    其实绝大多数考虑都是基于权衡点来考虑的,在某个权衡点上考虑时,某些构件对于某一点比较敏感。可见敏感点是从构件角度来考虑,权衡点是从构件交互的角度来考虑。

架构师常见面试题

架构师常见面试题
  • high2011
  • high2011
  • 2015年09月15日 17:47
  • 8035

架构师面试总结

摘要 本文原创,转载请注明地址:http://kymjs.com/code/2016/03/08/01 “基础 Android 知识掌握的不错,学习能力也不错。但是基础知识部分比较薄弱,有些概念和...
  • luco2008
  • luco2008
  • 2016年03月12日 11:28
  • 204

面试笔记。

《程序员面试宝典》-学习笔记。 也许你现在还用不到它,先看看吧,指不定什么时候就用上了呢!这不是杞人忧天,而是未雨绸缪! 一般有3种,网络工程师,测试工程师,软件开发人员。 外企对设计...
  • qq_18973645
  • qq_18973645
  • 2017年03月11日 22:30
  • 249

后台架构师图谱

今天在技术大海中游啊游游啊游,哇啊哈哈 ^_^发现了一份非常有用的超级技术图谱诶! 强烈推荐啊!!本文原作者是易宝支付技术经理/架构师李艳鹏,这是鹏哥多年来积累和收集的技术知识技能图谱,有的是鹏哥原创...
  • fishmai
  • fishmai
  • 2017年10月24日 19:00
  • 295

牛人的面试经历

本帖最后由 scutcs 于 2011-11-6 23:06 编辑 应届生上泡了两年,一直都是下资料,下笔试题,面试题。一直都在感谢那些默默付出的人。写这个帖子花了我两个夜晚的时间,不是为了炫耀...
  • oThomasyang
  • oThomasyang
  • 2014年09月10日 09:34
  • 875

高级系统架构师培训笔记

高级系统架构师培训笔记!
  • fengbingchun
  • fengbingchun
  • 2014年09月14日 16:55
  • 20194

系统架构师考试总结

系统架构师考试总结 2011年11月12日,在这个百年一遇的大单身节的第二天,我怀着无比紧张的心情走进了系统架构师的考场。 虽然暂时还不知道我的成绩,无所谓啦,虽然答的一般,但是这段经历对我来说真...
  • qingkongxiaoyang
  • qingkongxiaoyang
  • 2011年11月25日 16:02
  • 4384

一次面试之后的认识_分布式

前不久,一个人偷偷去外边面试了. 为什么去面试,自己也没有搞清楚原由,可能只是想出去逛逛,还是碰运气,这个我也没有搞清楚. 但是在这个面试中,却有很大的收获.对于面试的过程,我不想写什么,只所以写...
  • zhurhyme
  • zhurhyme
  • 2011年11月01日 22:45
  • 5164

ETL架构师面试题(中文)

本部分的题目来自Kimball的ETL Toolkit著作,原著未直接给出答案。这里的中文题目和答案是我参考其原著按自己的理解整理而来的,仅供参考。对于其中不确切的地方,欢迎大家一起沟通。有兴趣的朋友...
  • fishmai
  • fishmai
  • 2016年09月01日 12:52
  • 1782

软考系统架构设计师学习笔记

第一章     1.1.1 系统架构师的概念   现代信息系统“架构”三要素:构件、模式、规划;规划是架构的基石,也是这三个贡献中最重要的。 架构本质上存在两个层次:概念层,物...
  • harhy
  • harhy
  • 2015年04月02日 09:03
  • 7683
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:系统架构师笔记(一)
举报原因:
原因补充:

(最多只允许输入30个字)