第一部分,架构设计基础。由系统架构设计师概述、计算机与网络基础知识、信息系统基础知识、系统开发基础知识四部分构成。
目录
系统架构设计师概述
系统架构的概念和历史
系统架构设计师的定义
系统架构师具备的能力
计算机与网络基础知识
操作系统基础
操作系统介绍
进程概述
进程的三态模型、五态模型、七态模型
信号量和PV操作
线程
死锁发生的必要条件
数据库系统基础
基本概念
数据库的三级划分
数据模型
概念数据模型 E-R图
事务管理
数据库的设计
数据仓库
计算机网络基础
OSI/ISO && TCP/IP
网络分类、组网
网络安全
多媒体技术
系统性能
性能指标
性能计算
性能设计
性能评估
信息系统基础知识
信息的概念
信息的传输模型
信息的质量属性
信息的特征
信息化的含义
信息化体系六要素
“两化”融合
信息系统工程总规划
信息系统开发方法
信息化典型应用
系统开发基础知识
软件开发方法
软件开发生命周期
软件开发模型
RUP
视图模型关注点
需求管理
原则
需求变更
需求跟踪
需求变更的代价和风险。
开发管理
项目的范围、时间、成本
配置管理、文档管理
软件开发的质量与风险
设计方法
结构化分析与设计
软件的重用
逆向工程和重构工程
逆向工程信息恢复级别
逆向工程信息恢复方法
系统架构设计师概述
系统架构的概念和历史
- 现代系统架构三要素:构件、模式、规划
- 现代系统架构的两层:概念层,包含了科学方法、艺术文学、建设风格等;物理层,就是架构工作后产生的物理结构及其相互作用的结果。
- 软件系统架构是关于软件系统的结构、行为、属性的高级抽象。
- 信息系统架构框架的六个部分(由IBM首先引入):语义、概念、逻辑、物理、组件、功能模型。
软件架构已经逐渐成为了软件工程领域的一个独立学科分支,研究主要包括软件架构描述语言、软件架构的描述与表示、软件架构的分析与验证、基于架构的软件维护、软件架构的可靠性等等。
系统架构设计师的定义
系统架构师是系统或产品线的设计负责人,是一个负责理解、管理并最终确认和评估非功能性系统需求(比如软件的可维护性、性能、复用性、可靠性、有效性等),给出开发规范,搭建系统实现的核心框架,对整个软件架构、关键构件、接口进行总体设计并澄清关键技术细节的高级技术人员。
系统架构师不是产品经理的角色,也不是项目经理的角色。产品经理深扎于领域,发现行业内痛点问题并提出需求,系统架构师来提供实现的技术支持,类似于产品经理写剧本,架构师来组织人拍摄;项目经理关注的是项目本身的进度、质量、协调,管理好人、财等,而推动项目发展的是架构师。
系统架构师具备的能力
- 战略规划
- 业务流程建模
- 信息数据架构
- 技术架构选择与实现
- 应用系统架构的选择与实现
- 基础 IT 知识以及基础设施、资源调配
- 信息安全技术支持与管理保障
- IT 审计、治理与基本需求分析。
- 面向软件系统可迁居性与系统生命周期的质量保障
系统架构设计师的知识维度应是多层次、多方面的。
计算机与网络基础知识
操作系统基础
操作系统介绍
操作系统是计算机系统的核心操作软件,负责管理和控制计算机系统中的硬件和软件资源,合理的组织计算机工作流程和有效的利用资源,在计算机与用户之间起接口作用。
操作系统的特性:并发性、共享性、虚拟性、不确定性
操作系统的功能:进程管理、文件管理、存储管理、设备管理、作业管理
有一些典型的操作系统,批处理操作系统,通过把用户提交的作业分类,将一批作业编成一个作业执行序列;分时操作系统,每个用户都感到似乎拥有一台独立的系统,系统将时间分成很短的时间片,按时间片轮流处理各个用户的请求,没完成的请求会暂时中断,等到下一轮时间片再继续执行;实时操作系统,专用的,不强调资源利用率,更在乎及时性、可靠性和完整性;网络操作系统,按照网络架构的各个协议标准进行开发,包括网络管理、通信、资源共享、系统安全和多种网络应用服务等;分布式操作系统,是一个逻辑上紧密耦合的系统,目前还没有真正的实现网络操作系统。
进程概述
进程是程序的一次执行,是一个动态的概念。进程是系统资源分配、调度和管理的最小单位。一个进程对应一个程序,而一个程序可以同时对应多个进程。
进程控制块(PCB)是进程存在的唯一标志,包含着调度信息和执行信息。
进程的三态模型、五态模型、七态模型
三态模型是假设所有程序都在内存中,就划分为了
- 运行态:进程占有处理器正在运行。
- 就绪态:进程具备运行条件,等待系统分配处理器以便运行。
- 阻塞态:指进程不具备运行条件,正在等待某个事件的完成。
五态模型更加实际,因为真实情况下进程不可能全部存于内存中,有时需要把进程挂起,使之暂时不参与进程调度,起到平滑系统操作负荷的目的。
- 运行态:进程占有处理器正在运行。
- 活跃就绪态:在内存中,进程具备运行条件,等待系统分配处理器以便运行。
- 活跃阻塞态:在内存中,进程不具备运行条件,正在等待某个事件的完成。
- 静止就绪态:不在内存中,进程具备运行条件,等待系统分配处理器以便运行。
- 静止阻塞态:不在内存中,进程不具备运行条件,正在等待某个事件的完成。
七态模型则是又增加了两个状态(有时也会将这两种状态和三态一起叫做五态)
- 新建态:进程刚被创建时的状态,尚未进入就绪队列。
- 终止态:进程完成任务到达正常结束点,进入终止态的进程以后不再执行,操作系统将删除该进程。
信号量和PV操作
信号量:一个整形 S 和一个队列组成
P操作:S = S - 1,S < 0,表示当前没有资源。
V操作:S = S + 1,S <= 0,表示阻塞队列中有等待资源的进程,唤醒执行第一个。
线程
线程是进程的活动成分,是处理器分配资源的最小单位。同一进程的线程共享地址空间,所以线程切换比进程切换快。
死锁发生的必要条件
- 互斥,一个资源每次只能被一个进程使用;
- 请求保持,进程已经获取的资源,因为请求其他资源阻塞,对已获得的资源保持不放;
- 不可剥夺,系统不能强行收回该资源,只能由进程使用完后自己释放;
- 环路,若干个进程形成环路,每个都占用对方要申请的下一个资源。
上述四个条件打破任意一个,死锁都不会发生。
数据库系统基础
基本概念
数据库:是指长期存储在计算机内的、有组织的、可共享的数据集合。
数据库系统:由数据库、硬件、软件和人员组成,管理的对象是数据。
数据库管理系统:是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。
数据库的三级划分
将数据库分为外模式、概念模式、内模式。
-
外模式,亦称子模式或者用户模式(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
-
概念模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。
-
内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
数据模型
数据库结构的基础是数据模型,是用来描述数据的一组概念和定义。
数据模型的三要素:数据结构、数据操作、数据的约束条件
概念数据模型 E-R图
- 实体,客观存在并可相互区别的事务成为实体。实体可以时具体的人、事、物,也可以是抽象的概念或联系。
- 属性,实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如商品的名称、品牌、价格都是属性。
- 实体之间的关系,反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)
数据的规范化(NF)
-
第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)
-
第二范式(2NF):满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。(主属性即主键;完全依赖是针对于联合主键的情况,非主键列不能只依赖于主键的一部分)
-
第三范式(3NF):满足第二范式;且不存在传递依赖,即非主属性不能与非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能间接依赖主属性。(A -> B, B ->C, A -> C)
事务管理
事务的四个特性:
- 原子性是指事务是一个不可分割的工作单位,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作。
- 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态。
- 隔离性是指一个事务的执行不能有其他事务的干扰,事务的内部操作和使用数据对其他的并发事务是隔离的,互不干扰。
- 持久性是指一个事务一旦提交,对数据库中数据的改变就是永久性的。此时即使数据库发生故障,修改的数据也不会丢失。
数据库的设计
设计特点:从数据结构设计开始,静态结构设计和动态行为设计分离。
设计方法:直观设计法、规范设计法、计算机辅助设计、自动化设计法。
设计步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计、运行维护。
数据仓库
面向主题的、集成的、非易失的、时变的。
OLAP(联机分析处理)是数据仓库的核心部分。
计算机网络基础
OSI/ISO && TCP/IP
OSI是Open System Interconnect的缩写,意为开放式系统互联。其各个层次的划分遵循下列原则:
(1)同一层中的各网络节点都有相同的层次结构,具有同样的功能。
(2)同一节点内相邻层之间通过接口进行通信。
(3)七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
(4)不同节点的同等层按照协议实现对等层之间的通信。
网络分类、组网
- 根据地理范围可分为:局域网、城域网、广域网。
- 根据链路传输控制技术可分为:以太网、令牌网、FDDI网、ATM网、帧中继网、ISDN网。
- 根据网络拓补结构可分为:总线型、星型、树型、环型、网状。
- 网络中的数据交换可分为:电路交换、分组交换、ATM交换、全光交换、标记交换。
- 网络接入技术分为:光纤接入、同轴电缆接入、铜线接入、无线接入。
网络安全
常见的网络信息安全基本属性主要有机密性、完整性、可用性、抗抵赖性和可控性等,此外还有真实性、时效性、合规性、隐私性等。
网络系统、操作系统等存在安全漏洞,是黑客等入侵者的攻击屡屡得手的重要原因。入侵者通常都是通过一些程序来探测网络系统中存在的安全漏洞,然后通过所发现的安全漏洞,采取相应的技术进行攻击。因此,网络系统中需配备弱点或漏洞扫描系统,用以检测网络中是否存在安全漏洞。以便网络安全管理员根据漏洞检测报告,指定合适的漏洞管理方法。
多媒体技术
多媒体:数字、文字、声音、图形、图像、和动画等各种媒体的有机组合,并与先进的计算机、通信和广播电视技术相结合。
多媒体技术特征:多样性、集成性、交互性、实时性。
系统性能
系统性能包含:性能指标、性能计算、性能设计、性能评估。
性能指标
1、时间特性,主要指的是软件产品的事物响应时间(用户发出请求到收到应答的这段时间)
2、资源利用率,包括:cpu、内存、网络、硬盘、虚拟内存(如Java虚拟机)
3、服务器可靠性,指服务器能在相对高负载情况下持续的运行
4、可配置优化性,指服务器配置优化、业务逻辑优化、代码优化等
性能计算
性能计算的主要方法:定义法、公式法、程序检测法、仪器检测法
性能设计
阿姆达尔定律(是指计算机系统中对某一部分采用某种更快的执行方式所获得的系统性能改变程度)主要用于系统性能改进的计算。
性能评估
对一个系统进行各项检测,并形成直观的文档。
信息系统基础知识
信息就是信息,它既不是物质,也不是能量。
——维纳
信息是能够用来消除不确定性的东西。
———香农
信息的概念
香农用概率来定量描述了信息的公式:
H(x) 是 X 的信息熵,,可以作为信息的度量,称为信息量,单位是比特(bit)
信息的传输模型
信息的质量属性
经完可及经验安
精确性 | 对事物状态描述的精准程度 |
完整性 | 对事物状态描述的全面程度 |
可靠性 | 信息来源合法,传输过程可信 |
及时性 | 信息的获得及时 |
经济性 | 信息获取、传输成本经济 |
可验证性 | 信息的主要质量属性可以证实或证伪 |
安全性 | 信息可以被非授权访问的可能性,可能性越低,安全性越高 |
信息的特征
客观性、普遍性、无限性、动态性、依附性、变换性、传递性、层次性、系统性
信息化的含义
产企业国社
产品信息化 | 如集成了车载系统的小汽车 |
企业信息化 | 如CRM、ERP |
产业信息化 | 如交通运输、制造业等传统产业广泛使用信息技术来完成工艺、产品的信息化,实现资源优化和重组,实现产业升级 |
国民经济信息化 | 指在经济大系统内实现统一的信息大流动,使生产、流通、分配、消费等经济的4个环节通过信息进一步联成一个整体。 |
社会生活信息化 | 指包括商务、教育、日常生活等在内的整个社会体系,采用先进的信息技术拓展我们的活动时空,提升生活品质,如智慧城市。 |
信息化的主题是全体成员,包括政府、企业、事业、团体、个人。
空域是政治、经济、文化、军事、社会生活的一切领域。
时域是一个长期的过程。
信息化体系六要素
- 信息资源是核心
- 信息技术应用是龙头
- 信息网络是基础
- 信息技术和产业是国家信息化建设基础
- 信息化人才是关键
- 信息化政策法规和标准规范是保障
“两化”融合
- 信息化和工业化发展战略的融合;
- 信息资源与材料、能源等工业资源融合;
- 虚拟经济与工业实体经济融合;
- 信息技术与工业技术、IT设备与工业装备融合。
信息系统工程总规划
信息系统:是一种以处理信息为目的的专门的系统。信息系统的组成包括:硬件、软件、数据库、网络、存储设备、感知设备、外设、人员以及把数据处理成信息的规程。
信息系统集成:采用现代管理理论作为计划、设计、控制的方法论,将硬件、软件、数据库、网络等部件按照规划的结构和秩序,有机的整合到一个有清晰边界的信息系统中,以达到既定系统的目标,这个过程称为信息系统集成。
信息系统生命周期:立项(系统规划)、开发(系统分析、系统设计、系统实施、系统验收)、运维、消亡。
信息系统开发方法
结构化方法、原型化方法、面向对象方法、面向服务的方法
信息化典型应用
- 电子政务
- 电子商务
- 企业信息化
- 企业资源计划
- 客户关系管理
- 供应链管理
- 企业门户
系统开发基础知识
软件开发方法
软件开发生命周期
需求规格说明书:系统名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则。
概要设计 定义功能模块及功能橫块之间的关系,详细设计研究模块内部,包括算法与数据结构、数据分布、数据组织、模块间信息接口和用户界面等设计。
测试分为单元测试、集成测试、确认测试和系统测试。
软件开发模型
- 瀑布模型 严格按照软件生命周期的各阶段顺序执行,有利于人员的组织管理,但明显存
在使用缺陷:用户并不能清晰定义及描述其需求、初始版本的呈现周期较长。 - 原型模型 原理即提前通过可视化的方式呈现需求,因此原型获取有三种途径:
1)利用模拟软件系统的人机界面和人机交互方式。
2)真正开发一个原型。
3)寻求一个或几个类似的软件。 - 螺旋模型 在快速原型的基础上扩展的,支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,通常将软件开发切割为多个周期,每个周期由 4个阶段成:
1)目标设定。
2)风险分析。
3)开发和有效性验证。
4)评审。 - 基于四代技术的模型,只侧重于支持软件的设计和实现阶段,并不支持全过程,其主要特征有:
1)非过程化语言:可通过生成器代替编程语言。
2)与数据库密切相关。
核心价值观:沟通、简单、反馈、勇气
12条过程实践原则:简单设计、测试驱动、代码重构、结对编程、持续集成、现场客户、发行版本小型化、系统隐喻、代码集体所有制、规划策略、规范代码、40 小时工作机制。
RUP
RUP 的9个核心工作流:业务建模、需求、分析与设计、实现、测试、部署、配置与管
理、项目管理和环境。RUP 的4 个阶段:初始、细化、构造和移交
RUP 的特点:
1) 用例驱动。
2) 以体系结构为中心。
3)迭代与增量。
视图模型关注点
逻辑视图 | 描述系统功能,最终用户关注 |
实现视图 | 描述系统配置、装配,程序员关注 |
迸程视图 | 描述系统性能、吞吐,集成人员关注 |
部署视图 | 描述系统安装、拓扑结构,系统工程师关注 |
用例视图 | 描述人机互动的系统行为,分析人员和测试人员关注 |
需求管理
原则
CMM模型第2级关键过程域增加需求管理的内容,其目标是:
(1) 为软件需求建立基线。
(2)软件计划、产品和活动与软件需求保持一致。版本控制信息应包括变更内容、日期、变更人员及变更原因。
需求属性包括:创建时间、版本号、创建人、批准人、状态、原因和依据、涉及子系统、涉及产品版本号、验收/接受的标准、优先级、稳定性。
需求变更
为严格控制软件项目,需要确保:
- 评估己提出的变更。
- 适当的人选评估和决策变更。
- 变更应及时通知所有人
- 需求变更需要遵循一定程序。
需求变更管理的目的是将变更产生的负面影响降到最低,过程包括:
- 问题分析和变更描述。
- 变更分析和成本计算。
- 变更实现。
需求变更应遵循的原则
- 必须遵循变更控制程序。
- 变更未经批准不得实施。
- 变更应有变更控制委员会进行评估和决策。
- 项目干系人有权获悉变更信息。
- 变更库中的原始文档不得更改或删除。
- 变更的实施均应可追湖到己批准的变更请求。
变更控制委员会的总则/章程应包括变更控制委员会的目的、投权范围、成员构成、决策流程及操作步骤。
需求跟踪
-
客户需求向前追湖到软件需求(需求变更更新至需求规格说明书中)。
-
从软件需求回湖相应的客户需求(确认每个需求的源头)。
-
从软件需求向前追湖到下一级工作产品(逐步确保最终产品满足需求)。
-
从产品部件回溯到软件需求(验证部件来源)。
需求变更的代价和风险。
- 变更只能在项目时间、预算、资源等的限制允许范围内进行协商。
- 进行影响分析的能力依赖于跟踪能力、数据的质量和完整性。
开发管理
项目的范围、时间、成本
范围定义的输入包括:项目章程(初始的范围说明书)、项目范围管理计划、组织过程资产(过程性成果)、批准的变更申请。
时间管理的过程包括:活动定义(WBS)、活动排序、活动资源估算、活动历时估算、制定进度计划以及进度控制。
成本管理活动包括:成本估算、成本预算(基线)、成本控制。
配置管理、文档管理
产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合,构成集合的元素称为配置项。
配置项的分类:
- 产品的工作成果,包括产品本身的文档。
- 管理等过程中产生的文档。
配置项的属性:
- 名称、标识符、文件状态、版本、作者和日期等。
文档分类:
- 用户文档:包括功能描述、安装文档、使用手册、参考手册、操作员指南。
- 系统文档:与系统实现有关的文档。
软件开发的质量与风险
- 质量和等级的关系:质量是需求/要求的满足程度,等级是产品或服务的类别。
- 风险的必要条件:与损失或收益相关、存在偶然性或不确定性、需要抉择。
设计方法
结构化分析与设计
基本控制结构:顺序、分支、循环
面向对象分析设计:
- 分析模型构成:顶层架构图、用例与用例图、领域概念模型;
- 设计模型:软件体系结构图、用例实现图、类图、状态图、活动图;
- 分析 -> 设计:UML、设计技术支撑实施、设计用户界面。
软件的重用
需求分析文档、设计过程、设计文档、程序代码、测试用例、领域知识的重用/复用。
名称 | 对象 | 举例 |
横向重用 | 不同应用领域中的软件元素 | 标准函数库 |
纵向重用 | 共性应用领域中的软部件 | —— |
软件重用可以提高生产率、降低开发成本、缩短开发周期、改善软件质量、提高灵活性和标准化程度。
逆向工程和重构工程
通过分析己有的程序,寻求比源代码更高级的抽象表现形式(比如文档)的活动就是逆向工程,是在不同抽象层级中进行的湖源行为;
重构工程则是在同一抽象层级中转换系统描述的活动。逆向工程得出的设计称为设计恢复,设计恢复不一定能够抽象还原到原设计;
对逆向工程所形成的系统进行修改或重构,生成的新版本称为重构工程。
逆向工程信息恢复级别
级别 | 内容 | 抽象级别 | 逆向工程恢复难度 | 工具支持可能性 | 人工参与程度 |
---|---|---|---|---|---|
实现级 | 语法树、符号 | 递增 | 递增 | 递减 | 递增 |
结构级 | 程序间关系,如视图 | ||||
功能级 | 功能与程序段之间的关系 | ||||
领域级 | 实体与应用域之间的关系 |
逆向工程信息恢复方法
名称 | 适用级别 | 具体方法 |
---|---|---|
用户指导下的搜索与变换法 | 实现级、结构级 | 通过查询语句及输出进行恢复 |
变换式方式 | 除领域级 | 自动分析法及基于特定库的用户指导变换法 |
基于领域知识的恢复法 | 功能级、领域级 | 一般用规则库表示,不确定性最大 |
铅板恢复法 | 实现级、结构级 | 识别公共构件 |
----------------------------------------------------------
原创不易,有帮助的话留个赞再走吧
系列文章专栏:高软-系统架构设计师
转载标明出处