《软考系统架构设计师学习笔记》由会员分享,可在线阅读,更多相关《软考系统架构设计师学习笔记(171页珍藏版)》请在金锄头文库上搜索。
1、系统架构师学习笔记 第 2 页,共 172 页 第一章第一章 架构师架构师 1.1.1系统架构系统架构的概念的概念 现代信息系统“架构”三要素:构件、模式、规划;规划是架构的基石,也是这三个贡 献中最重要的。 架构本质上存在两个层次:概念层,物理层。 1.2.1系统架构师的定义系统架构师的定义 负责 理解、管理 并最终确认和评估 非功能性系统需求,给出开发规范,搭建系统实 现的核心架构,对整个软件架构、关键构建、接口 进行总体设计 并澄清关键技术细节。 主要着眼于系统的“技术实现” ,同时还要考虑系统的“组织协调” 。 要对所属的开发团队有足够的了解, 能够评估该开发团队实现特定的功能需求目标
2、和资 源代价。 1.2.2系统架构师技术素质系统架构师技术素质 对软件工程标准规范有良好的把握。 1.2.3系统架构师管理素质系统架构师管理素质 系统架构师是一个高效工作团队的创建者, 必须尽可能使所有团队成员的想法一致,为 一个项目订制 清晰的、强制性的、有元件的目标 作为整个团队的动力; 必须提供特定的 方法和模型 作为理想的技术解决方案; 必须避免 犹豫,必须具备及时解决技术问题的 紧迫感和自信心。 系统架构师学习笔记 第 3 页,共 172 页 1.2.4系统架构师系统架构师 与与 其他团队角色其他团队角色 的的 协调协调 系统分析师,需求分析,技术实现 系统架构师,系统设计,基于环境
3、和资源的系统技术实现 项目管理师,资源组织,资源实现 由于 职位角度出发产生冲突制约,不可能很好地给出 开发规范,搭建系统实现的 核 心架构,并澄清技术细节,扫清主要难点。 所以 把架构师定位在 项目管理师与系统分析师 之间,为团队规划清晰的目标。 对于大型企业或项目,如果一人承担多个角色,往往容易发生顾此失彼的现象。 1.3系统架构师知识结构系统架构师知识结构 需要从大量互相冲突的系统方法和工具中 区分出 哪些是有效的,那些是无效的。 1.4从开发人员到架构师从开发人员到架构师 总结自己的架构模式,深入行业总结规律。 几天的培训不太可能培养出合格的软件架构师, 厂商的培训和认证, 最终目的是
4、培养自 己的市场,培养一批忠诚的用户或产品代言人,而不是为中国培养软件架构师。 系统架构师学习笔记 第 4 页,共 172 页 第二章第二章 计算机基础计算机基础 计算机网络基础知识 计算机系统 由 硬件和软件组成,软件通常分为 系统软件和应用软件。 系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但不 能随意修改它。 常用的系统软件有 操作系统、语言处理程序、连接程序、诊断程序、数据库 等。 应用软件指 计算机用户利用 软硬件资源 为某一专门的应用目的而开发的软件。 2.1操作系统基础知识操作系统基础知识 操作系统 Operating System,是计算机系统的核心
5、系统软件。 2.1.1操作系统的原理操作系统的原理、类型类型、结构结构 1、操作系统定义 硬件资源包括 中央处理器、存储器、输入输出设备。 软件资源是以 文件形式保存在存储器上的 程序和数据。 操作系统既 有效组织和管理 系统中各种 软硬件资源,合理地组织计算机系统的工作 流程,又控制程序的执行,为用户使用计算机 提供了一个 良好的环境和友好的接口。 2、操作系统分类 按功能不同分:单用户操作系统、批处理操作系统;分时操作系统、实时操作系统;网 络操作系统、分布式操作系统;嵌入式操作系统。 3、操作系统的特征 并发性、共享性、虚拟性、不确定性。 4、操作系统的功能 进程管理、文件管理、存储管理
6、、设备管理、作业管理。 系统架构师学习笔记 第 5 页,共 172 页 2.1.2处理机处理机 与与 进程管理进程管理 1、进程的定义及其分类 进程通常由 程序、数据、进程控制块 PCB 组成。 2、进程的状态转换与控制 就绪、运行、阻塞。 进程控制是通过 进程控制原语实 现的,进程控制原语主要有:创建原语、撤销原语、 挂起原语、激活原语、阻塞原语、唤醒原语。 注:原语不可分割,不允许中断。 3、进程互斥与同步 以及 P/V 操作 同步是使在异步环境下的各进程按一定的 顺序和速度 执行。 互斥 要保证临界资源 一次只能提供一个进程使用,称为 临界资源 CR。 PV 操作是低级通信原语,在执行期
7、间不可分割,P 表示申请一个资源,V 表示释放一个 资源。 P 操作定义:S:=S- 1,若 S=0,则执行 P 操作的进程继续执行,否则若 S0, 则执行 V操作的进程继续执行,否则若 S。 实体类 “内向收敛”特征, 仅提供 读/写 信息的必要操作 作接口,并不涉及业务逻辑处理, 。 控制类,。 边界类的作用范围可以超越单个用例。 2.构造交互图 交互图作为用力的精确实现方案。 事件流中的事件 直接对应交互图中的消息, 事件间的先后关系体现为 交互图中的时序, 对 消息的响应 则构成消息接收者的职责,这种职责被确立为 类的方法。 不应该出现 穿越控制类 生命线 的消息。 为 易于理解,应该
8、用分离的 UML 交互图 分别表示 事件流和每个备选事件流。 原则上,每个类都应该有一个操作来响应交互图中指向其对象的那条消息。 2、设计技术支撑方案 当用户需求发生变化时,技术支撑方案应具有良好的稳定性。 技术支撑方案应该位于层次结构中的较低层次。 一方面取决于 需求,另一方面取决于 对软件技术手段把我和选取。 系统架构师学习笔记 第 49 页,共 172 页 3、设计用户界面 1.熟悉用户 并对 用户分类,以便尽量照顾到所有用户的合理要求,并优先满足某些特权用 户。 2.按用户类别 分析用户的 工作流与习惯,从每类中选取一个用户代表,建立调查表,判断 用户对操作界面的需求和喜好。 3.首先
9、应考虑命令的顺序,一般常用命令居先,与用户工作习惯保持一致;其次,根据外部 服务之间的聚合关系组织相应的命令; 然后充分考虑人类记忆的局限性, 最好组织为一颗两 层多叉树;提供操作的快捷方式。 5.利用快速原型演示,改进界面设计。并评判系统是否 齐全、方便、好用。 4、精化设计模型 对模型进行改进的活动可以分为 精化 和 合并 两种。 一般先从精化开始。设计优秀的粗粒 度组件应该只是完成一项功能,这一点是它与子系统的主要区分。 粗粒度组件的范围过于广泛,难以发挥重用价值, 粗粒度组件拥有持久化的行为,拥有业务 逻辑,需要表示层的支持。 将需求分成几个功能组,基本上就可以得到相应的粗粒度组件了。
10、 过小的范围, 将会造成粗粒度组件不容易使用, 用户需要理解不同的粗粒度组件之间的复杂 关系。 如果可能,在粗粒度组件之间定义单项关联可以有效的减少组件之间的耦合。 尽可能简化组件之间的关系。 我们需要从软件的目标领域中 识别出关键性的实体,或者说领域中的名词。然后决定它们 应该归属于那些粗粒度组件。 两个组件之间存在重复的要素,可以从中抽取共性的部分,形成新的组件。 6.4 系统架构文档化系统架构文档化 6.4.1模型概述模型概述 以精心选择的形式 将若干结构元素进行装配。 软件架构 = 元素,形式,关系/约束 系统架构师学习笔记 第 50 页,共 172 页 逻辑视图(logical vi
11、ew)对象模型。 过程视图(process view)并发和同步特征。 物理视图(physical view)分布式。 开发视图(development view)静态组织结构。 场景。 Rational 4.1 视图模型。 每个视图上均独立地应用 Perry”等。 8.1.6属性属性 元素是 XML 中的名词,属性是它的形容词。 attribute name = “attribute alue“ attribute name = attribute alue 系统架构师学习笔记 第 65 页,共 172 页 起始标记或空标记中 属性只允许有一个实例存在。 非法的: XML 数据中,只有 4
12、个字符 可以作为 空白使用,09 水平指标(HT) ,0D 回车(CR) ,0A 换行(CF) ,20 空格。 8.1.7注释注释 8.1.8CDATA 部分部分 是一种用来包含文本的方法, 对希望在自己的文档中 包含 XML 标记的使用举例 的作者来 说是最有用的。 使用这些部分时 XML 几乎所有的优势都丧失殆尽。 , “.”可以是任何字符串,只要不包含字符串“” 。 8.1.9格式正规的文档格式正规的文档 元素和元素之间唯一的直接关系就是 父子关系; 兄弟关系是通过数据结构推断出来的,既不直接也不可靠,因为元素可能被插入到 某个元 素和它的一个或多个子元素之间。 数据对象 如果满足下列条
13、件 就是各市正规的文档。 1、语法合乎 XML 规范。 2、元素构成一个层次树,只有一个根节点。 3、没有对外部实体的引用,除非提供了 DTD。 任何 XML 解析器 发现 不是个是正规的结构,就报告一个“致命”错误,致命错误不一定 导致解析器终止操作, 但它不再会以正常的方式向应用程序传递字符数据 和/或 XML 结构。 系统架构师学习笔记 第 66 页,共 172 页 8.2XML 命名空间命名空间 8.2.1命名空间命名空间 XML 命名空间 是 解决多个 义性和名字冲突问题的方案。 命名空间是一组具有结构的名称的集合。 8.2.2定义和声明定义和声明 命名空间命名空间 命名空间 推荐标
14、准为我们提供了 xmlns 属性,属性值就是 URI。 命名空间前缀经常被提及为前缀,而名称本身是基本名。 默认的命名空间(没有声明别名的,形式为 xmlns=“.“) ,在声明作用域里 所有没有经命名 空间前缀修饰的 名称 被假定属于默认的命名空间。 8.3DTD 一个 XML 文档是有效的,则它必须满足:文档 和 文档类型 相关联。 8.3.1什么是什么是 DTD DTD 文档类型定义。 主要 用来查看 XML 文档的格式,出现在 XML 文档的序言中,DTD 声明不是必须出现的。 DTD 中 主要定义以下几个方面的内容: 1、元素声明。 2、实体声明。 3、属性的种类。 系统架构师学习笔
15、记 第 67 页,共 172 页 8.3.2为什么引入为什么引入 DTD 提供一种验证的手段,对 XML 来说是一大贡献,确保 XML 文件确实地遵守了 指定的格 式,而这个格式可能是 一个 标准,或者是数据交换双方 所共同定制 的 协议。 实现了 文件格式 的统一化,提高了文件的重用性。 使用 DTD 进行验证,增加了操作时间。 8.3.3DTD 的声明的声明 略。 8.3.4元素的声明元素的声明 略。 8.3.5实体的声明实体的声明 实体(entity)是一些预先定义好的数据。 存储部位,内部实体,外部实体; 组成内容,可分解实体,不可分解实体。 引用方式,一般型实体,参数型实体。 不同类
16、型的实体声明和使用方法略有不同。 略。 8.3.6属性的声明属性的声明 良构 XML 文档中,属性只要满足命名规则就可以了,但是在一个有效的 XML 文档中,属 系统架构师学习笔记 第 68 页,共 172 页 性要经过 DTD 的属性声明。 DTD 声明中,属性的声明语法可以归纳为如下形式: 元素名称指的是 属性所属的元素名称。 8.4XML Schema DTD 尽管进行了很大的简化,但还是一门 风格 和 XML 完全不同的语言,而 schema 文档 是一种特殊的 XML 文档,容易学习和使用。 DTD 的另一个缺点是 数据类型相当有限。DTD 中根本不提供 数值数据 类型。 一个 XML 文档只能使用一个 DTD 文档,schema 则采用了 名域空间的机制,使得一个 XML 文档可以调用多种 schema 文档。 8.4.1逻辑逻辑 XML Schema 的文档结构的文档结构 略。 8.4.2 元素的定义元素的定义 略。 8.5可扩展样式表语言可扩展样式表语言 (eXtensible Stylesheet Language,XSL)是描述 XML 文档