导图社区 2024新版【系统架构师】 知识点锦集
2024新版教材【系统架构师】知识点汇总 ·13大章节,上百个知识点无死角汇总; ·重点考点高亮标红,有重点,有细节; ·2024版最新教材考纲整理知识点; ·突击5月考试,巩固11月考试基础; ·13页面纸囊括所有常考、易考知识点;
编辑于2024-03-27 21:57:37个人IP塑造从个人定位、打造内容体系、加强渠道建设、强化形象包装、用户运营、持续学习说创新等方面全面塑造,尤其是对于想在B站、小红书、小绿书等平台进行内容创作的个人,提供一种可行的思路。
根据数据资产管理实践白皮书(6.0 版)梳理数据资产管理平台建设指南,充分涵盖了对数据资产的定义,平台建设、管理办法、制度管理、绩效评估等内容,并分阶段介绍了数据资产管理平台各阶段需要完成的工作内容及重点,是一份具体实际指导意义的数据资产平台建设指南
2024新版教材【系统架构师】知识点汇总 ·13大章节,上百个知识点无死角汇总; ·重点考点高亮标红,有重点,有细节; ·2024版最新教材考纲整理知识点; ·突击5月考试,巩固11月考试基础; ·13页面纸囊括所有常考、易考知识点;
社区模板帮助中心,点此进入>>
个人IP塑造从个人定位、打造内容体系、加强渠道建设、强化形象包装、用户运营、持续学习说创新等方面全面塑造,尤其是对于想在B站、小红书、小绿书等平台进行内容创作的个人,提供一种可行的思路。
根据数据资产管理实践白皮书(6.0 版)梳理数据资产管理平台建设指南,充分涵盖了对数据资产的定义,平台建设、管理办法、制度管理、绩效评估等内容,并分阶段介绍了数据资产管理平台各阶段需要完成的工作内容及重点,是一份具体实际指导意义的数据资产平台建设指南
2024新版教材【系统架构师】知识点汇总 ·13大章节,上百个知识点无死角汇总; ·重点考点高亮标红,有重点,有细节; ·2024版最新教材考纲整理知识点; ·突击5月考试,巩固11月考试基础; ·13页面纸囊括所有常考、易考知识点;
2024新版-系统架构师 知识点锦集
1.系统工程与信息系统基础
1.1系统工程(1星)
1.2信息系统生命周期(1星)
1.3系统工程开发方法(2星)
1.4信息系统分类(3星)
1.5政府信息化与电子政务(2星)
1.6企业信息化与电子商务(2星)
1.7数字化转型与智能制造(2星)
2.软件工程
2.1软件过程模型(4星)
2.2基于架构的软件工程(2星)
2.3逆向工程(1星)
2.4净室软件工程(1星)
2.5需求工程(2星)
2.6系统分析与设计(2星)
2.7软件测试(2星)
2.8系统运行与软件维护(1星)
3.项目管理
盈亏平衡分析
进度管理
软件质量管理
软件配置管理
4.软件架构设计
软件架构的概念
软件架构风格
典型架构应用
基于架构的软件开发
ADL
软件架构评估
特定领域软件架构
软件产品线
构件与中间件技术
5.系统可靠性分析与设计
可靠性相关概念
系统可靠性分析
软件可靠性设计
6.信息安全技术基础知识
安全概述
信息安全基础
信息加解密技术
密钥管理技术
访问控制及数字签名技术
信息安全的保障体系
安全模型
信息安全整体架构设计
网络安全体系架构设计
区块连接技术
8.计算机系统基础
计算机系统概述
操作系统概述
文件系统
系统性能
9.嵌入式系统
嵌入式系统概述
嵌入式系统设计
嵌入式硬件
嵌入式操作系统
嵌入式数据库
10.计算机网络
计算机网络概述
网络规划与设计
组网技术
TCP/IP协议簇
11.数据库系统
数据库概述
数据库设计过程
关系代数
规范化理论
数据控制
NoSQL
12.数学与经济管理
运筹方法
数据建模
13.知识产权与标准化
知识产权
标准化
系统工程与信息系统
1.1系统工程️️(️1星)
概念: 组织管理技术、是科学方法、整体出发,系统观念出发,以求整体最优、是一种科学决策方法, 对系统的结构、元素、信息和反馈等进行分析,以达到最优规划、最优设计、最优管理和最优控制的目的.是一种科学决策方法.
系统工程方法
霍尔三维结构: 通过逻辑维、时间维、知识维对组织和管理大型工程建设项目
逻辑维: 要解决什么问题、如何提出问题、分析问题、解决问题
时间维: 通过节点控制,对任务进行时间计划安排,是系统的工作进程,分为7个阶段
研制、生产、安装三个阶段都有为下一阶段提出计划的内容
规划阶段
调研、程序设计,目的:规划与战略
拟定方案
提出具体方案
研制方案
研制方案及生产计划
生产阶段
生产系统零部件及整个系统,提出安装计划
安装阶段
安装完毕,提出运行计划
运行阶段
运行及开展服务
更新阶段
改进原系统,更换新系统
知识维:对业务知识的掌握,需要解决什么行业的什么问题,这个问题的业务是哪些
切克兰德方法论
重点在于比较和探寻
7步骤:认识问题、根底定义、建立概念模型、比较及探寻、选择、设计与实施、评估与反馈
并行工程方法论:
制作过程与支持过程并行
强调:最快速度按质完成开发、各项工作问题协调解决、适应的信息系统工具
综合集成法:
简单系统和巨系统
四原则:整体原则、相互联系、有序性、动态原则
WSR系统方法:
懂物理、明事理、通人理
系统工程生命周期阶段
探索性研究、概念阶段、开发阶段、生产阶段、使用阶段、保障阶段、退役阶段
系统工程生命周期方法
计划驱动方法、渐进迭代式开发、精益开发、敏捷开发
1.2信息系统生命周期(1星)
生命周期阶段
生产阶段
问题定义、可行性研究
开发阶段
需求分析、总体设计、详细设计、编码、测试
运行阶段
维护
消亡阶段
建设原则
高层管理人员介入原则、用户参与开发原则、自顶向下规划原则、工程化原则、其他原则
1.3信息系统开发方法(2星)
原型法
需求阶段(主要解决需求不明确的问题)
结构化法
自顶向下、逐步分解求精、目标清晰、阶段程式、文档规范、方法结构、应变能力差
面向对象方法
自底向上、建立多个对象组装起来向上累计成金字塔
面向服务的方法
粗粒度、松耦合、标准化和构件化、将各个模块独立标准化后,通过组装耦合
形式化方法
数学模型化、净室软件工程
统一过程方法[UP]
敏捷方法
基于架构的开发方法[ABSD]
1.4信息系统的分类(3星)
业务处理系统「TPS」
TPS包含五个活动:数据输入、业务处理、文件和数据库处理、文件和报告产生、查询处理活动
概念: 电子数据处理系统,
管理信息系统「MIS」
关键点: 高度集成化的人机信息系统、金字塔结构、多个层级[钉钉OA]
概念: 引入管理的概念,四大部件:信息源、信息处理器、信息用户和信息管理者
开环系统强调单一性的向前,比如遥控器开电视
闭环系统强调过程中的反馈和调整,如空调控温的调整
决策支持系统「DSS」
关键点:语言系统、知识系统和问题处理系统三部分组成、辅助决策、支持决策. 典型的是医院门诊诊断系统
特征:
(1)数据和模型是DSS的主要来源,依赖于数据
(2)DSS用来支援用户作决策而不是代替用户作决策
(3)DSS主要用于解决半结构化及非结构化问题.
(4)DSS的作用在于提高决策的有效性而不是提高决策的效率.(合适而不是速度)
DSS主要由四部分结构构成:
数据库子系统
是支撑模型库子系统和方法库子系统的基础,由数据库、数据析取模块、数据字典、数据库管理系统和数据查询模块等部分组成。
模型库子系统
模型库子系统由模型库和模型库管理系统两大部分组成
作用:1.直接用于制订决策;2.对决策的制订提出建议;3.用来估计决策实施后可能产生的后果.
推理部分
由知识库、知识库管理系统和推理机组成
常见算法:排序算法、分类算法、最小生成树算法、最短路径算法、计划评审技术、线性规划、整数规划、动态规划、各类统计算法和组合算法
用户接口子系统
人机交互界面,用以接收和检验用户请求,为决策提供服务
按数据类型分类
结构化决策
对某一决策过程的环境及规则,能用确定的模型或语言描述,以适当的算法产生决策方案,并能从多种方案中选取最优
半结构化决策
可建立适当算法产生决策方案,得到最优解
非结构化决策
决策过程复杂,不可能使用确定的模型或语言描述,无最优解
半结构和非结构化决策一般用于企业中、高层决策
专家系统「ES」
知识+推理=专家系统. 人工智能的一个重要分支. 智能计算机程序系统
与DSS最大的区别是具备判断决策能力
专家系统ES由知识库、推理机、解释机构、知识获取机构和用户接口构成,如右图,其中知识库储存了所有要用到的有关信息、数据、规则、案例及关系
办公自动化系统「OAS」
计算机设备、办公设备、数据通信及网络设备、软件系统组成
企业资源计划「ERP」
可以从三个方面理解,ERP是一种管理思想,也是一种软件产品,还是一种管理系统
企业资源可归纳为:资金流、信息流、物流
信息流
需求信息流:客户订单、生产计划、采购合同等
供应信息流:入库单、完工报告单、库存记录、可供销售量、提货发运单等
资金流
物流
将企业内部划分为多个子系统:财务、市场营销、生产制造、质量控制、售后服务、工程技术
典型的ERP功能模块:财会管理、物流管理、生产控制管理、人力资源管理
客户关系管理系统[CRM]
核心:客户价值管理
目的:最大限度增加利润
支柱性功能:市场营销和客户服务
1.7数字化转型与智能制造(2星)
数字化转型
是新一代信息技术真正的实现推动整个[商业模式的变革], 推动产业链的重构,推动改进企业与消费者之间的关系, 以及企业与合作伙伴之间的关系.
数字化包含信息化
企业数字化转型
是业务模式与管理模式的重塑,不仅仅只是效率工具,更是重塑组织能力,推动组织变革,数字化转型的核心价值是连接协同(打破组织边界)和决策优化。
企业数字化转型的五个发展阶段
初始级
数码化:初期需要从手工记录转变为用计算机记录。(信息的数字化,记录,存储)
单元级
数量化:提升业务的运行效率和规范
流程级
数字化: 关键业务流程与设施,软硬件,行为活动集成优化
网络级
数模化: 组成企业级数字化和产业互联网级网络化
生态级
数用化: 生态级数字化和泛在物联网级网络化,推动生态合作伙伴资源、业务、能力等开放共享和协同合作.
智能制造体系
三个纬度
系统层级
设备、单元、车间、企业、协同
生命周期
设备、生产、物流、销售、服务
智能特征
资源要素、互联互通、融合共享、系统集成、新兴业态
1.6企业信息化与电子商务(2星)
信息化的基本概念
概念:企业信息化工程是指将信息技术,自动化技术,现代管理技术与制造技术相结合,改善制造企业的经营、管理、产品开发和生产等各个环节,提高生产效率和企业竞争力。
国家信息化体系的内容6要素
信息技术应用
信息资源
信息网络
信息技术和产业
信息化人才
信息化政策法规和标准规范
对象
政府、企业、个人
目的: 提高企业的竞争力
三类创新
技术创新
加快技术向生产的转化
管理创新
从财务、资金转向人力、资源等转变
制度创新
组织对信息化的需求: 组织信息化的原动力
战略需求
提升组织的竞争能力
运作需求
运作策略需要、人才培养需要、实现信息化目标需要
技术需求
信息技术层面上对系统的完善升级集成
企业信息化方法
业务流程重构法
彻底、根本性的,重新设计流程
核心业务应用法
围绕核心业务推动信息化
信息系统建设方法
建设信息系统作为企业信息化的重点和关键
主题数据库方法
建立面向企业的核心业务的数据库,消除“信息孤岛”
资源管理方法
切入点是为企业资源管理提供强大的能力,如ERP
人力资本投资方法
把企业一部分优秀的员工看作是一种资本,能够取得投资效益
信息系统战略规划方法
企业战略规划:依据企业外部环境和自身条件的状况及其变化来制定和实施战略,并根据实施过程与结果评价和反馈来调整,制定新的战略过程
信息系统战略规划:关注如何通过信息系统来支撑业务流程的运作,进而实现企业的关键业务目标。
第一阶段(BSC))
以数据处理为核心 围绕职能部门需求
关键成功因素法(CSF)
抓住关键矛盾,确定开发的优先级顺序
战略集合转化法(SST)
将企业的使命、愿景、战略综合考虑
企业系统规划法(BSP)
自上而下规划,自下而上实现
UC矩阵
其他方法: 投资回收法、征费法、零线预算法、阶石法等
第二阶段
以企业内部MIS为核心 围绕企业整体需求
战略数据规划法(SDP)
信息工程法(IE)
战略栅格法(SG)
第三阶段
综合考虑企业内外环境 以集成为核心,围绕企业战略需求
价值链分淅法(VCA)
战略一致性模型(SAM)
企业资源计划ERP
物料需求计划(
制造资源计划(MRPII)
企业资源计划(ERP)
客户关系管理CRM
目的: 提高收入
核心思想: 以客户为中心
CEM价值
提高工作效率,节省开支
提高客户满意度
提高客户的忠诚度
供应链管理SCM
理念: 强调联合,打通企业间‘信息孤岛’,严格的数据交换
信息的三流
信息流(主要)
需求信息流
客户订单、生产计划、采购合同等
供应信息流
入库单、完工报告单、库存记录、可供销售量、提货单等
商业智能BI
概念:智能BI关键是从许多不同系统数据中提取出有用的数据并进行清理,以保证数据的正确性,其核心是构建数据仓库。
四个阶段
数据预处理阶段
整合企业原始数据,包括抽取、转换、加载三个过程(简称ETL)
建立数据仓库阶段
处理海量数据的基础
数据分析阶段
采用OLAP和数据挖掘技术
OLAP:进行数据汇总/聚集,还提供切片、切块、下钻、上卷和旋转等数据分析
数据挖掘:通过关联分析、聚类和分类等方法建立模型,预测企业未来发展趋势和预知问题
数据展现阶段
保障系统分析结果的可视化
数据库-数据仓库对比
数据挖掘
利用隐藏的知识做分析与预测
分析方法
关联分析: 挖掘出隐藏在数据间的相互关系
序列模式分析: 侧重点是分析数据间的前后台关系
分类分析: 为每一个记录赋予一个标记再按标记分类
分类分成三类
聚类分析: 分类分析法的逆过程
把相同的放到一起,结果有三类
数据湖
概念: 数据湖是一个存储企业的各种原始数据的大型仓库,其中数据可供存取、处理、分析及传输
数据仓库仅支持数据分析处理, 数据湖既支持数据分析处理, 也支持事务处理.
业务流程重组
BPR业务流程重组
定义
通过对企业战略、增值运营流程以支撑系统、政策、组织和结构的重组与优化,达到工作流程和生产力最优化的目的
BPR遵循三大原则
以流程为中心原则
以团队式管理原则(以人为中心原则)
以客户为导向原则
BPM业务流程管理
使用PDCA循环,持续改进
企业应用集成EAI
通过应用集成,打通原来各自独立的系统,使得各系统之间的信息通畅,消除信息孤岛
应用集成的分类
表示集成(界面集成)
把各应用系统的界面集成起来,形成统一入口
如:hao123网站
表示集成通常应用于3种情况
1.在现有的基于终端的应用系统上配置基于PC的用户界面
2.为用户提供一个看上去统一,但由多个系统组成的应用系统
3.当只有可能在显示界面上实现集成
数据集成
把不同来源、格式、特点性质的数据在逻辑上或物理上有机的集中。数据集成是应用集成和业务过程集成的基础。
如:ETL、数据仓库、联邦数据库等
控制集成(也称应用集成,API集成)
借助远程过程调用或方法调用
如:中间件
业务流程集成(过程集成,B2B)
对所有应用系统和流程的管理和监控,需要预先对信息交换进行定义、授权和管理,以便改进操作、减少成本、提高响应速度。
如:B2B集成、自动化业务流程管理、人工流程管理、企业门户
区别
从消息交互方法上分类
消息集成
数据量小,交互频繁,立即执行,异步
共享数据库
交互频繁,立即,同步
文件传输
数据量大,交互频度小,即时性要求低,月,年纬度
电子商务
四类活动实体:顾客、商户、银行、认证中心
1.5政府信息化与电子政务(2星)
电子政务的分类
政府、企业(事业)单位、公民、公务员
G2G:政府对政府
基础信息采集、处理和利用
如:人口信息
G2B:政府对企业
政府为企业提供的政策环境
如:颁发执照、许可证、合格证、质量认证
G2C:政府对个人
政府对公民提供的服务
如:社区公安、水、火、天灾等,户口、证件、牌照管理
B2G:企业对政府
企业纳税及为政府提供服务
如:参加政府竞/投标,为政府提供商品和服务,向政府提供建议,申诉
C2G:个人对政府
缴纳税费和罚款、公民反馈渠道
征求群众意见、公民报警服务(火警、急救等)、了解民意,个税清缴和补退
软件工程
2.7软件测试(2星)
软件测试的类型
动态测试(主要由计算机运行)
白盒测试
主要用于单元测试阶段
白盒测试主要包括控制流测试(逻辑覆盖测试)、数据流测试、程序变异测试(错误驱动测试)等方面
黑盒测试(软件需求出发)
主要用于集成测试、确认测试和系统测试阶段
测试内容包括:等价类划分、边界值分析(尤其是>=,<=这种)、错误推测、判定表、因果图等,着重于验证软件功能和性能的正确性。包括:功能测试、性能测试、边界测试、余量测试和强度测试等。
灰盒测试
静态测试(人工和计算机辅助分析)
桌面检查
代码审查
代码走查
静态分析
控制流分析
是否存在没有使用的语句/无法达到的语句/调用并不存在的子程序等
数据流分析
引用未定义的变量、对以前未使用的变量再次赋值
接口分析
模块、子程序和函数之间接口的一致性、函数形参与实参的数量、顺序、类型的一致性
表达式分析
括号不配对、数组引用越界、除数为0等情况
软件测试的阶段
V模型的测试阶段
单元测试
对应详细设计阶段,如代码开发阶段
集成测试
对应概要设计阶段,开发前进行的软件开发规划,接口的设计等
集成测试的策略
一次性组装测略(风险高,测不全)
增量式组装策略(测试更全面)
驱动模块
位于被测模块的上一层,自底向上测试需要驱动模块
桩模块
位于被测模块的下一层,自顶向下需要桩模块支持
混合式
往往驱动模块和桩模块同时都有
系统测试
对应需求分析阶段,验证软件配置能否与系统正确连接
包括功能测试、性能测试、健壮性测试、用户界面测试、安全性测试、安装与反安装测试
其中比较重要的是性能测试
负载测试
各种工作负载下系统的性能,强调的是不同性能的不同结果
压力测试(测上限)
系统瓶颈,强调的是在不限定系统下的运行上限情况
强度测试(测下限)
最低情况下运行,强调在限定情况下运行的下限情况
容量测试(并发测试)
最大用户数
可靠性测试
MTTF之类的参数
确认测试
对应需求分析阶段,验证软件与需求的一致性,内部确认、α,β测试、验收测试
回归测试
测试软件变更后,变更部分的正确性和对变更需求的符合性进行测试
2.1软件过程模型(4星)
原型模型
概念:
原型模型以软件产品的样品(原型)为基础,通过用户与开发者双向沟通,不断改进,反复迭代,逐步得到正式交付的软件产品,适用于用户需求模糊或随时间变化的系统。
其他衍生模型
抛弃型原型
“抛弃型原型”仅仅用于充当设计概念的实验对象
演化型原型
“进化型原型”会在逐步的原型设计制作和评估中,逐渐进化成为最终产品
增量模型
一次一次的增加,一种变多的概念
迭代模型(质)
一轮一轮的变好,变好的概念
瀑布模型
概念
瀑布模型属于结构化分析流程,自顶向下,逐级进行分解,以文档化为驱动,适合于需求明确的项目。
特点
1、有严格区分阶段,每个阶段因果关系紧密相连
2、只适合需求明确的项目
优点
1、每个阶段的需求都很清晰,便于评审、跟踪、管理和控制
2、可以提高产品开发的质量
缺点
1、软件需求必须是完整,而往往项目开发过程中需求大多不能做到完整
2、项目开发过程串行化,一旦开始开发,过程不可逆
3、效果呈现时间长,必须开发完成才能展示成果
4、每一个阶段相互影响,上一阶段必须完全后才能执行下一阶段的工作
增量模型
概念
把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件,运用增量模型的软件开发过程是递增式的过程。
比较
相对瀑布模型而言,增量模型不需要一次性地把整个软件产品提交给用户,而是可分批次进行提交,适合于需求不明确的项目。
螺旋模型(原型+瀑布)
特点
以快速原型为基础+瀑布模型的方式形成的一种新的模型,并且引入了风险分析
更多适合大型复杂的系统开发过程
强调第一阶段都会设定目标、风险分析、开发和有效性验证
缺点
风险分析耗时长、增加成本、项目进度相对缓慢等
V模型(瀑布变形)
特点
1、测试贯穿整个开发周期,强调过程中介入测试
2、测试分阶段进行,测试计划提前介入
3、适用于小型项目开发
优点
早期介入,便于发现错误,提高产品的成功率,节省时间
易于管理,每一阶段目标明确
成本效益高,早期介入可以更好的控制项目时间和花费
缺点
与瀑布模型一样都有着最终交付产品的缺点
流程僵化,本质上也是一个阶段一个阶段串行开发
不适合复杂项目的开发
不用原型图,内部文档更新频繁,文档的管理相对复杂
快速应用开发RAD
概念:
RAD是瀑布模型的高速变种,适用比传统生命同期快得多的开发方法,强调极短的开发周期,适用基于构件的开发方法获得快速开发。
过程:
业务建模->数据建模->过程建模->应用生成->测试与交付
适用性:
对模块化要求高,需求分析在极短时间内完成,只能用于管理信息系统的开发,不适合技术风险很高的情况。
构件组装模型
流程:需求分析和定义--设计构件组装--建立构件库--构建应用软件--测试和发布
优点:易扩展、易重用、降低成本、安排任务更灵活
缺点:构件设计要求经验丰富的架构师、设计不好的构件难重用、强调重用可能牺牲其他指标(如性能)、第三方构件质量难控制。
示例:方舱医院、乐高积木
统一过程(UP/RUP)
特点:用户例驱动、以架构为中心、迭代和增量
四个阶段:
初始(构建)阶段
定义最终产品视图和业务模型、确定系统范围
细化阶段
设计及确定系统架构、制定工作计划及资源要求
构造阶段
开发剩余构件和应用程序功能,详细测试
移交阶段
进行贝塔测试,制作产品发布版本。
9个工作流程:
业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境
敏捷开发
概念
以人为核心、迭代、循序渐进的开发方法,以原型开发为基础,迭代式增量开发,适用于小团队和小项目,前期需求不清晰或需求变化较大的项目,具有小步快跑的思想。
开发方法
极限编程XP
沟通:加强面对面沟通
简单:不过度设计
反馈:及时反馈
勇气:接受变更的勇气
水晶方法
提供“机动性”的方法
开放式源码
适用于开发人员地域分布很广的情况,其他方法都强调集中办公
SCRUM
明确定义了可重复的方法过程
特征驱动开发方法(FDD)
定义3要素,人、过程和技术。定义6种关键角色:项目经理、首席架构设计师、开发经理、主程序员、程序员和领域专家,会把编程开发人员分成两类:“首席”程序员和“类”程序员
ASD方法
核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。
敏捷宣言
个体和交互胜过过程和工具;可工作的软件胜过大量的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。
2.2基于架构的软件工程(CBSE)(2星)
概念:Component-Based Software Engineering,CBSE 是基于装配可重复使用软件构件,通过将其集成组装的方式来开发软件系统的方法。 又称基于构件的软件工程,它是软件复用的实现方式之一。 其根本目的仍然是为了提高软件开发的质量和效率。
CBSE不仅仅是简单地应用对象要求代理建立一个代码库,还需要策略且系统地进行全局考虑和规划。它包含系统分析、构造、维护和扩展等各方面。它具体有即插即用,以接口为核心及标准化等特点。
特点:重购买而非自己开发,用现成的
具体的特征
可组装性:所有外部交互必须通过公开定义的接口进行
可部署性:构件总是二进制形式,能作为一个独立实体在平台运行
文档化:用户根据文档来判断构件是否满足要求
独立性:可以在无其他特殊构件的情况下进行组装和部署
标准化:符合某种标准化的构件模型
构件的组装
顺序组装:按照一定的顺序组装
层次组装:调用和被调用的接口必须兼容
叠加组装:多构件组装形成新构件,对外提供新接口
目标
工程学管理目标
降低费用、方便装配、提高复用性、提高可定制性和适应性、提高可维护性
技术目标
降低耦合、提高内聚、控制粒度
2.3逆向工程(1星)
概念:逆向工程是设计的恢复过程(比如对手机的拆解过程,通过拆解得到零部件,还原或创造新产品)
现有系统---->再工程---->新系统
再工程
逆向工程
考虑新需求
正向工程
逆向工程层级
实现级:包括程序的抽象语法树、符号表、过程的设计表示
结构级:包括反映程序各部分之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构
功能级:包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型
领域级:包括反映程序各部分或程序诸实体与应用领域概念之间对应关系的信息,例如实体关系模型
相关概念
重构/重组:重构是指在【同一抽象级别】上【转换系统描述形式】
设计恢复:设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息
逆向工程:逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序的表示过程,逆向工程是设计的恢复过程
正向工程:正向工程是指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量。
再工程/重构工程:再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤。
2.8系统运行与软件维护(1星)
遗留系统策略
技术高水平,低商业价值
集成
技术高水平,高商业价值
改造
技术低水平,高商业价值
继承
技术低水平,低商业价值
淘汰
开发新系统时,需求完全兼容遗留系统的功能模型和数据模型
新旧系统转换策略
直接转换策略
风险高
并行转换策略
人力和费用成本高,加强管理
分段转换策略
周期较长
数据转换与迁移
基本步骤:抽取--转换--装载
工具迁移数据
手工录入数据
新系统生成数据
影响软件可维护性的因素
可理解性
可修改性
可测试性
可靠性
可移植性
软件维护类型
正确性维护[修改Bug]
识别和纠正软件错误/缺陷,测试不可能发现所有错误
适应性维护【应变】
使应用软件适应环境变化(外部环境、数据环境)而进行的修改
完善性维护【新需求】
扩充功能和改善性能而进行的修改
预防性维护【针对未来】
适应未来,增加预防性功能,适应变化而不被淘汰,如把【专用】改为【通用】软件
2.4净室软件工程(1星)
概念
是一种应用数学与统计学理论以经济的方式生产高质量软件的工程技术,力图通过严格的工程化的软件过程达到零缺陷或接近零缺陷。使用盒结构规约进行分析和建模,并将正确性验证作为发现和排除错误的主要机制,采用统计测试来获取验证软件可靠性所需要的信息。
特点
净室即是在一个受控制污染级别的环境完成
使用盒结构规约(或形式化方法)进行分析和设计建模,并且强调将正确性验证作为发现和消除错误的主要机制。而不是以测试来作为主要机制。
使用统计的测试来获取认证被交付软件的可靠性所必须的出错率信息。
技术手段
统计过程控制下的增量式开发:控制迭代
基于函数的规范和设计:盒子结构
定义了三种抽象层次:行为视图(黑盒)-->有限状态机视图(状态盒)-->过程视图(明盒)
正确性验证:净室工程的核心
统计测试和软件认证:使用统计学原理,总体太大时必须采用抽样方法
缺点
太理论化,正确性验证的步骤比较困难且耗时
开发小组不进行传统的模块测试,这不现实
脱胎于传统软件工程,不可避免带有传统软件工程的一些弊端
2.5需求工程(2星)
概念
软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望
需求工程的阶段划分
需求获取
通过客户的业务场景中获取需求
需求分析
包括对需求的
开成需求规格【SRS】
需求确认与验证【形成需求基线】
需求开发
需求管理【变更控制、版本控制、需求跟踪、需求状态跟踪】
尤其注意:需求管理不包括需求分析
注:需求管理是对【需求基线】进行管理
软件需求的分层
业务需求(整体全局)
用户需求(用户视角)
系统需求(计算机化)
功能需求
性能需求
设计约束
从项目管理维度划分
基本需求(明示,常规需求)
期望需求(隐含)
兴奋需求(多余)
软件需求获取
用户面谈
1对1或1对3,有代表性的用户,成本高,且需求相关领域知识支撑
联合需求计划(JRP)
能起来群策群力的效果,对于一些问题最有歧义的时候、对需求最不清晰的领域都是十分有用的一种方法。很多用户对信息系统没有直观的认识,容易产生盲区,此时需要通过情节串联板技术来消除盲区,达成共识。
问卷调查
用户多,成本低,但无法一一访谈
现场观察
针对较为复杂的流程和操作
原型化方法
通过简易系统方式解决早期需求不确定问题
头脑风暴法
一群人围绕新业务,发散思维,产生新观点
需求分析
结构化分析方法(SA)
以数据字典为核心
功能模型
数据流图(DFD)
描绘信息流和数据输入输出的移动过程。是结构化分析的主要功能建模工具
数据模型
E-R图
由实体、关系、属性组成
行为模型
状态转换图(STD)
通过描述系统的状态及引起系统状态转换的事件,表示系统的行为,提供了行为建模的机制。
数据字典
概念
描述在数据模型、功能模型和行为模型中出现的数据对象和控制信息的特征,给出精确定义
通常使用CASE工具来创建和维护数据字典
5部分内容
即:数据项、数据结构、数据流、数据存储、处理过程
UML(统一建模语言)
概念
统一建模语言(工具集),是从面向对象开发过程中发展而来的一系列工具集
构造块
事物
结构事物
最静态的部分,包括类、接口、协议、用例、活动类、构件和节点
行为事物
代表时间和空间上的动作。包括:消息、动作次序、连接
分组事物
是一种将有组织的元素分组的机制,可以把相关的类组合起来,如:包、构件等。两者的不同在于,包是将相关的元素分组并组合起来形成包,只存在于开发阶段,是一种概念上的东西。而构件则是把相关的类组合起来,变成构件。构件是物理上或可替换的系统部分,它实现了一个接口集合。构件可以存在于运行阶段
注释事物
UML模型的解释部分。描述、说明和标注模型的元素
关系
图
规则
范围:给一个名字以特定含义的语境
可见性:怎样使用或看见名字
完整性:事物如何正确、一致地相互联系
执行:运行或模拟动态模型的含义是什么
公共机制
规格说明:事物语义的细节描述,字是模型真正的核心
修饰:通过修饰来表达更多的信息
公共分类:类与对象、接口与实现
扩展机制:允许添加新的规则
UML图
静态图(结构图)
类图
描述一组类、接口、协作和他们之间的关系,给出系统的静态设计视图
对象图
描述一组对象及它们之间的关系,往往从真实案例或原型案例角度建立
构件图
描述一个封装的类和它的接口,端口,用于表示系统的静态设计实现视图
部署图
描述对运行时的处理节点及在其中生存的构件的配置,架构的静态部署视图
制品图
描述系统的物理结构,包括文件、数据库等的物理比特集合
包图
由模型本身分解而成的组织单元,以及他们之间的依赖关系
组合结构图
描述结构化类的内部结构,包括结构化类与系统其余部分的交互点。
动态图(行为图)
用例图
描述系统与外部参与者的交互,这里的参与者不单纯指人,也可以是其他对象,既可以是系统用户,也可以是外部系统和设备等实体。可以是多个参与者
顺序图
强调按时间顺序,专注于系统的动态视图
通信图
强调收发消息的对象或参与者的结构组织
定时图
强调消息跨越不同的对象或参与者的实际时间,而不仅是消息的相对顺序
交互概览图
是活动图和顺序图的混合物
交互图
活动图
将进程或其他计算结构展示为计算内部一步步的控制流和数据流,专注于系统的动态视图
状态图
由状态、转移、事件和活动组成,给出了对象的动态视图。状态转换变迁
UML 4+1 视图
逻辑视图
关注人员:系统分析、设计人员
关注点:类与对象
实现视图
关注人员:程序员
关注点:源代码结构
部署视图
关注人员:系统和网络工程师
关注点:软件到硬件的映射(装软件)
进程视图
关注人员:系统集成人员
关注点:线程、进程、并发
用例视图
关注人员:最终用户
关注点:需求分析模型
需求定义
严格定义法
所有需求都能够被预先定义
开发人员与用户之间能够准确而清晰地交流
采用图形/文字可以充分体现最终系统
原型法
并非所有的需求都能在开发前被准确的说明
项目参加者之间通常都存在交流上的困难
需要实际的、可供用户参与的系统模型
有合适的系统开发环境
反复是完全需要和值得提倡的,需求一旦确定,就应遵从严格的方法
需求确认与验证
需求完成规格说明书以后(SRS)与客户方进行会议确认的过程
需求评审+需求测试
用户签字确认+验收标准清晰
需求跟踪
需求的变更管理过程
1、识别问题,问题分析和变更描述
2、变更分析和成本计算
3、CCB评审后确定是否需要进行变更,并做好变更文档管理
软件系统建模
系统建模方法
结构化建模方法
信息工程建模方法
面向对象建模方法
2.6系统分析与设计(2星)
人机界面设计
黄金三法则
置于用户控制之下
减少用户的记忆负担
保持界面的一致性
结构化设计
主要内容
概要设计[外部设计]
总体结构设计,任务是将功能需求分配给软件模块,确定每个模块的功能和调用关系,形成模块结构图,即系统结构图。
详细设计[内部设计]
将总任务拆分成多个基本、具体的任务,为每个具体任务选择适当的技术手段和处理方法。详细设计又分为:网络设计、代码设计、输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
结构化设计原则
模块独立性原则 (高内聚、低耦合)
保持模块的大小适中
多扇入,少扇出
深度和宽度均不宜过高
高内聚
从高到低依次:功能-->顺序-->通信-->过程-->时间-->逻辑-->偶然
功能内聚(高)
完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚
处理元素相关,而且必须顺序执行
通信内聚
所有处理元素集中在一个数据结构的区域上
过程内聚
处理元素相关,而且必须按特定的次序执行
时间内聚
所包含的任务必须在同一时间间隔内执行
逻辑内聚
完成逻辑上相关的一组任务
偶然内聚
完成一组没有关系或松散关系的任务
低耦合
从低到高依次:非直接-->数据-->标记-->控制-->外部-->公共-->内容
非直接耦合
两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
数据耦合
一组模块借助参数表传递简单数据
标记(特征)耦合
一组模块通过参数表传递记录信息(数据结构)
控制耦合
模块之间传递的信息中包含用于控制模块内部逻辑的信息
外部耦合
一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息
公共耦合
多个模块都访问同一个公共数据环境
内容耦合(高)
一个模块直接访问另一个模块的内部数据,一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠,一个模块有多个入口
模块的四个要素
输入和输出
模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那儿取得输入,进行加工后再把输出返回调用者。
处理功能
指模块把输入转换成输出所做的工作。
内部数据
指仅供该模块本身引用的数据
程序代码
指用来实现模块功能的程序
面向对象设计
基本过程
类的分类
边界类
主要包括接口和界面
如:显示屏、窗体、打印机接口、通信协议、对话框、菜单、购物车、报表、二维码等
控制类
主要包括逻辑处理如应用逻辑、业务逻辑、数据访问逻辑等
如:身份验证器
实体类
主要包括数据
如:学员类、课程类
设计原则
单一职责原则
设计目的单一的类
开放-封闭原则
对扩展开放,对修改封闭
李氏替换原则
子类可以替换父类
依赖倒置原则
要依赖于抽象,而不是具体实现,针对接口编程,不要针对实现编程
接口隔离原则
使用多个专门的接口比使用单一的总接口要好
组合重用原则
要尽量使用组合,而不是继承关系达到重用目的
迪米特原则(最少知识原则)
一个对象应当对其他对象有尽可能少的发生相互作用,这样该类被修改时就会尽可能少的影响其他的实体
面向对象的分析模型
概念
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成
设计模型包括:以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图
项目管理
盈亏平衡分析
正常情况:
销售额=固定成本+可变成本+税费+利润
盈亏平衡情况:
销售额=固定成本+可变成本+税费
盈亏平衡点计算,关键在于找到可变的内容在哪里。一般情况下可变成本为变动内容,但该项与销售额的比例不变。所以可以先找到可变成本比计算盈亏平衡点。
进度管理
进度管理的概念
进度管理:为了确保项目按期完成所需的管理过程
WBS工作分解结构
类似于结构树模型,拆分成不同的模块以得到更准确的任务
拆分要求:
WBS的工作包是可控和可管理的,不能过于复杂
任务分解也不能过细,一般原则WBS的树形结构不超过6层
每个工作包要有一个交付成果
每个任务必须有明确定义的完成标准
WBS必须有利于责任分配
进度管理过程:WBS工作包输入-->活动定义-->活动排序-->活动资源估算-->活动历时估算-->制定进度计划-->进度控制
活动历时估算方法
专家判断法
三点估算法
(1*乐观时间+4*最可能时间+1*悲观时间)/6
功能点估算法
自上而下估算
自下而上估算
关键路径:找出各节点中最长的路径
总时差:即松弛时间,或弹性时间,在不延误总工期的情况下,该活动的机动时间
甘特图Gannt
优点:简单直观、容易制作,便于理解,能清晰地标识出每一项任务的起始时间与结束时间,一般适用比较简单的小型项目,可用于WBS的任何层次、进度控制、资源优化、编制资源和费用计划
缺点:不能系统地表达一个项目所包含的各项工作之间的复杂关系,难以进行定量的计算和分析,以及计划的优化等。
进度控制的步骤:
1、确定是否为关键活动
2、偏差是否大于总时差
3、偏差是否大于自由时差
4、赶工:增加资源
5、快速跟进:活动并行执行
软件质量管理
影响软件质量的3组因素:
产品修改
可理解性、可维修性、灵活性、可测试性
产品运行
正确性、健壮性、效率、完整性、可用性、风险
产品转移
可移植性、可再用性、互运行性
软件质量控制与质量保证
质量保证
一般是每隔一定时间进行的,主要通过系统的质量审计和过程分析来保证项目的质量
独特工具
质量审计和过程分析
质量控制
是实时监控项目的具体结果,以判断它们是否符合相关质量标准,制定有效方案,以消除产生质量问题的原因。
质量保证的主要目标
事前预防
及时捕获问题,防止扩散到下一阶段
作用于过程而非最终产品
贯穿所有活动过程
软件能力成熟度模型集成CMMI
初始级L1:随意且混乱、组织成功依赖于个人能力
已管理级L2:项目级可重复(建立子项目级的控制过程)
已定义级L3:组织级,文档化标准化
定量管理级L4:量化式管理(过程能可预测)
优化级L5:持续优化
软件配置管理
概念
产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合。
配置项
基线配置项(可交付成果)
如需求文档、设计文档、源代码、可执行代码测试用例、运行软件所需数据等。
非基线配置项
各类计划如项目管理计划、进度管理计划、各类报告。
核心
版本控制、变更控制
版本控制
草稿版本
正式版本
修改版本
软件工具(按软件过程活动分)
软件开发工具
需求分析工具、设计工具、编码与排错工具
软件维护工具
版本控制工具(VSS、CVS、SCCS、SVN)、文档分析工具、开发信息库工具、逆向工程工具、再工程工具
软件管理和软件支持工具
项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价与选择
系统可靠性分析与设计
可靠性相关基本概念
可靠性
可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。
可用性
可用性是系统能够正常运行的时间比例
软件可靠性!=硬件可靠性
复杂性
软件复杂性比硬件高,大部分失效来自于软件失效。
物理退化
硬件失效主要是物理退化所致,软件不存在物理退化。
唯一性
软件是唯一的,每个COPY版本都一样,而两个硬件不可能完全一样。
版本更新周期
硬件较慢,软件较快。
系统可靠性分析
可靠性指标
平均无故障时间(MTTF=1/r, r为失效率)
平均故障修复时间(MTTR=1/µ,µ 为修复率)
平均故障间隔时间(MTBF=MTTR+MTTF)
系统可用性(MTTF/(MTTR+MTTF)x 100%)
在实际应用中,一般MTTR很小,所以通常认为MTBF约等于MTTF
可靠性计算
串联系统
R=R1 x R2 x R3…Rn
并联系统
R=1-(1-R1)x(1-R2)…(1-Rn)
N模混联系统
将串联和并联系统计算公式代入即可
软件可靠性设计
影响可靠性的因素
软件的开发方法和开发环境
运行环境
软件规模
软件内部结构
软件的可靠性投入
可靠性设计技术
避错技术
降低复杂度设计
检错技术
出错后报警,人工处理,成本较低
容错技术
冗余机制
结构冗余
信息冗余
时间冗余
冗余设计
N版本程序设计
恢复块设计
防卫式程序设计
N版本程序设计
与通常软件开发过程不同的是,N版本程序设计增加了三个新的阶段:相异成份规范评审、相异性确认、背对背测试
恢复块方法
设计时应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和备份块之间的共性错误降到最低程度。必须保证验证测试程序的正确性。
恢复方法分类
前向恢复
使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况
后向恢复
系统恢复到前一个正确状态,继续执行
防卫式程序设计
对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去
实现策略:错误检测、破坏估计、错误恢复
双机容错
双机热备模式(主系统、备用系统)
双机互备模式(同时提供不同的服务,心不跳则接管)
双机双工模式(同时提供相同的服务,集群的一种)
双机模式是集群的前身
信息安全基础
信息安全基础
信息安全5个基本要素
机密性
机密性是指网络信息不泄露给非授权的用户、实体或程序,能够防止非授权者获取信息
完整性
完整性是指网络信息或系统未经授权不能进行更改的特性。
可用性
可用性是指合法许可的用户能够及时获取网络信息或服务的特性。
可控性
可控性是指可以控制授权范围内的信息流向及行为方式
可审查性
可审查性是指对出现的信息安全问题提供调查的依据和手段
信息安全范围
设备安全、数据安全、内容安全和行为安全
网络安全漏洞
安全隐患常见表现:物理安全性、软件安全漏洞、不兼容使用安全漏洞、选择合适安全的哲理
网络安全威胁
主要表现:非授权访问、信息泄漏或丢失、破坏数据完整性、拒绝服务攻击、利用网络传播病毒
安全措施的目标
访问控制、认证、完整性、审计、保密
信息加解密技术
对称加密
概念:单密钥加密系统又称对称加密系统。加解密使用同一组密钥
特点:加密强度不高,但效率高;密钥分发困难
用途:对消息明文进行加密传送
常见的对称密钥加密算法
DES:替换+移位、56位密钥、64位数据块、速度快、密钥易产生
3DES:两个56位的密钥K1、K2。加密:K1加密>K2解密>K1加密。解密:K1解密>K2加密>K1解密RC-5
IDE:128位密钥、64位数据块、比DES加密性好、对计算机功能要求相对低,PGP
RC-5算法:RSA数据安全公司的很多产品都使用了RC-5
AES算法:高级加密标准,双称Rijndael加密法,是美国政府采用的一种区块加密标准
非对称加密
概念:非对称加密系统又称公钥加密码系统。非对称加密密钥必须成对使用,公钥加密,私钥解密
特点:加密速度慢,但强度高。私钥分发容易。
用途:对密钥加密,做数字签名
常见的非对称加密算法
RSA:2048位密钥、计算量极大、难破解
ECC-椭圆曲线算法
Elgamal:安全性依赖于计算有限域上离散对数这一难题
数字签名技术相关算法:如MD5,SHA系列等
数字信封技术
数字信封是利用接收人的公钥对用来加密明文的对称密钥进行加密,以保证数据信息在传递过程中的安全性
密钥管理技术
数字证书
数字证书内容
证书的版本
证书的序列号
证书的签名算法
证书的发行机构名称
证书的有效期
证书所有人名称
证书所有人的公开密钥
证书发行者对证书的签名
公钥体系
CA认证中心
承担公钥体系中公钥的合法性检验的责任
RA注册审批机构
负责申请者的信息录入、审核以及证书发放等工作
证书受理点
密钥管理中心-KMC
访问控制及数字签名技术
访问控制技术
基本模型
访问控制技术的目标
防止非法用户进入系统
阻止合法用户对系统资源的非法使用
访问控制的三要素
主体记为S
客体记为O
控制策略,记为KS
实现技术
访问控制矩阵(ACM)
访问控制列表
能力表
授权关系表
数字签名技术
信息摘要
摘要用途:确保信息【完整性】,防篡改。如MD5,SHA
特点:数字签名是可信的、不容易被伪造的、不容易抵赖、不可重用、而且是不可改变的。数字签名的验证与解密过程不同,验证过程需要用户的公钥。
数字签名过程:发送方使用自己的私钥对摘要进行加密,接收方使用发送方的公钥解密验证
数字签名可以利用公钥密码体制、对称密码体制或公证系统来实现,最常见的实现方法是建立在公钥密码体制和单向安全散列函数(Hash)算法的组合基础之上
信息安全的保障体系
用户自主保护级
适用于普通内联网用户(普通用户级)
系统审计保护级
适用于通过内联网或国际网进行商务活动,需要保密的非重要单位(企业级)
安全标记保护级
适用于地方各级国家机关、金融机构、邮电通信、能源与水源供给部门、交通运输、大型工商与信息技术企业、重点工程建设等单位(重大企业级)
结构化保护级
适用于中央级国家机关、广播电视部门、重要物资储备单位、社会应急服务部门、尖端科技企业集团、国家重点科研机构和国防建设等部门(中央级)
访问验证保护级
适用于国防关键部门和依法需要对计算机信息系统实施特殊隔离的单位,对国家安全造成特别严重的影响(国家安全级)
安全概述
信息安全面临的威胁
人为蓄意破坏
主动攻击
数据篡改、假冒身份、拒绝服务、重放攻击、散播病毒、主观抵赖
被动攻击
网络监听、非法登陆、信息截取
灾害性攻击
水灾、火灾、地震、雷击、战争
系统故障
硬件故障、软件故障、链路故障、供电故障
人员无意识行为
编程错误、操作错误、无意泄密
被动攻击
收集信息为主,破坏保密性
主动攻击
主动攻击的类别主要有:中断、篡改、伪造
安全模型
基本模型
分类
BLP模型
符合军事安全策略的计算机安全模型
安全规则
简单安全规则
安全级别低的主体不能读级别高的客体【上写】
星属安全规则
安全级别高的主体不能往级别低的客体写【下读】
强星属性安全规则
不允许对另一级别进行读写
自主安全规则
使用访问控制矩阵来定义说明自由存取控制
Biba模型
主要用于防止非授权修改系统信息,以保护系统的信息完整性。该模型能够防止数据从低完整性级别流向高完整性级别。
安全规则
星完整性规则
完整性级别低的主体不能向完整性级别高的客体写数据【上读】
简单完整性规则
完整性级别高的主体不能从完整性级别低的客体读数据【下写】
调用属性规则
完整性级别低的主体不能从完整性级别高的客体调用程序或服务
Chinese Wall模型
中国墙模型的安全策略的基础是客户访问的信息不会与当前他们可支配的信息产生冲突。
安全规则
与主体曾经访问过的信息同属于同一公司数据集合的信息,即墙内信息可以访问
属于一个完全不同的利益冲突组的可以访问
主体能够对客体写的前提是主体未对任何属于其他公司数据集进行过访问
定理
一个主体一旦访问过一个客体,则该主体只能访问位于同一公司数据集的客体或不同利益冲突组客体
在一个利益冲突组中,一个主体最多只能访问一个公司数据集
信息安全整体架构设计
WPDRRC模型
6个环节
预警、保护、检测、响应、恢复和反击
3大要素
人员、策略和技术
各模型防范功能范围
网络安全体系架构设计
开放系统互联安全体系结构
OSI参考模型纬度
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
安全服务纬度
鉴别服务、访问控制、数据完整性、数据保密性、抗抵赖
安全机制纬度
加密、数字签名、访问控制、数据完整性、数据交换、业务流填充、路由控制
安全服务与安全机制的对应关系
认证框架
鉴别的基本目的是防止其他实体占用和独立操作被鉴别实体的身份
鉴别信息的类型包括交换鉴别信息、申请鉴别信息和验证鉴别信息
鉴别方式有
已知的、拥有的、不改变的特性、相信可靠的第三方建立鉴别、环境等
访问控制框架
访问控制决定开发系统环境中允许使用哪些资源,在什么地方适合阻止未授权访问的过程
访问控制过程
机密性框架
机密性服务的目的是确保信息是对被授权者可用
机密性机制
通过禁止访问机制
通过加密机制
完整性框架
目的是阻止威胁或探测威胁,保护可能遭遇到不同方式危害的数据完整性和数据相关属性完整性
完整性机制类型
阻止对媒体访问的机制
用以探测对数据或数据项序列的非授权修改的机制
抗抵赖框架
抗抵赖机制包括生成证据,验证和记录,以及在解决纠纷时随即进行的数据恢复和再次验证
抗抵赖过程
证据生成--〉证据传输、存储及恢复--〉证据验证--〉解决纠纷
区块链技术
概念
区块链不等于比特币。是一种块链式存储、不可篡改、安全可信任的去中心化分布式账本。
特点
去中心化
由于分布式存储和计算的特点,各节点权利和义务是均等的,系统中数据由整个系统中具有维护功能的节点共同维护
开放性
系统开放,交易信息开放,账户信息高度加密
自治性
区块链基于协商一致的规范和协议(如算法)使得整个系统中所有节点能够去信任的环境自由的安全的交换数据,人为干预不起作用
安全性
多节点存放数据,除非修改51%以上的节点数据,同时还有其他安全机制限制,如比特币的每笔交易,都由付款人用私钥签名,证明他本人付款,其他人无法伪造。
匿名性
节点的交换遵循固定算法,数据交换无需信任,交易对手无须通过公开身份的方式让对方产生信任
共识算法(博弈论)/全民记账
三种常见的共识算法
POW工作量证明
比特币采用该种算法
PoS权益证明
DPoS股份授权证明机制
争夺记账权 = 挖矿
计算出来的账单节点哈希值前13个字符为0,则符合规则,得到记账权,有一个节点计算出结果,则广播消息告诉其他节点,其他节点更新数据
软件架构设计
软件架构风格
概念
架构风格定义了用于描述系统的术语表和一组指导构件系统的规则
分类
数据流风格Data Flow
批处理序列
构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互。且每个处理步骤是一个独立程序,逐步执行,数据必须完整,以整体方式传递。
表现形式:类似串联电路图
特点:大量整体数据、无需用户交互、顺序执行
管道-过滤器风格
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流
表现形式:复杂的串联+并联电路图
特点:流式数据、弱用户交互
数据流风格优缺点对比
优点
松耦合【符合高内聚-低耦合】
良好的重用性/可维护性;
可扩展性【标准接口适配】
良好的隐蔽性
支持并行
缺点
交互性较差
复杂性较高
性能较差(每个过滤器都需要解析与合成数据)
应用典型实例
传统编译器、网络报文处理等
调用/返回风格Call/Return
主程序/子程序
单线程控制,把问题拆分成多个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。
特点:面向过程
面向对象
构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的。
特点:面向对象
层次结构
构件组成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层。通过层次结构可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改一层,最多影响其相邻层
特点:层与层之间的方法调用
调用/返回风格优缺点对比
优点
良好的重用性,只要接口不变可用在其它处
可维护性好
可扩展性好,支持递增设计
缺点
并不是每个系统都方便分层
很难找到一个合适的、正确的层次抽象方法;
不同层次之间耦合度高的系统很难实现
特点
各层次的组件形成不同功能级别的虚拟机;多层相互协同工作,而且实现透明
独立构件风格Independent Components
进程通信
构件是独立的过程,连接件是消息传递。构件通常是命名过程,消息传递的方式可以是点对点、异步或同步方式,以及远程过程(方法)调用等
事件驱动系统(隐式调用)
构件不直接调用一个过程,而是触发或广播一个或多个事件。构件中的过程在一个或多个事件中注册,当某个事件被触发时,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中的过程调用
特点:匿名过程、隐式调用
优点:为软件复用提供强大支持,为构件的维护和演化带来了方便
缺点:构件放弃了对系统计算的控制
独立构件风格的优缺点对比
优点
松耦合
良好的重用性/可修改性/可扩展性
缺点
构件放弃了对系统计算的控制
数据交换的问题
关于正确性的推理存在问题
特点
系统由若干子系统构成且成为一个整体
系统有统一的目标
子系统有主从之分
每一子系统有自己的事件收集和处理机制
虚拟机风格VM
解释器
解释器通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。缺点是执行效率比较低
适合领域:适用于需要“自定义规则”的场合
基于规则的系统
基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS中
特点:在解释器的基础上增加了经验规则
适用领域:专家系统
虚拟机风格优缺点对比
优点:可以灵活应对自定义场景
缺点:复杂度较高
以数据为中心 仓库风格
数据库系统
构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立处理单元,处理单元对数据元素进行操作。特点是以数据为中心
黑板系统
黑板系统包括知识源、黑板和控制三部分
知识源:知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;
黑板:黑板是一个全局数据库,包含问题域解空间的全部状态,是知识源相互作用的唯一媒介。知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中(信号处理、问题规划和编译器优化等)
超文本系统
构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相差构件。超文本是一种非线性的网状信息组织方法,它以节点为基本单位,链作为结点之间的联想式关联。超文本系统通常应用在互联网领域。现代继承编译环境一般采用这种架构风格
仓库风格优缺点对比
优点:可更改性和可维护性;可重用的知识源;容错性和健壮性
缺点:测试困难;不能保证有好的解决方案;难以建立好的控制策略;低效;开发困难;缺少并行机制
特点:在以数据为中心的基础上,使用中心数据触发业务逻辑部件
适用场景:除数据库系统外,其他系统的典型实例如:语音识别、模式识别、图像处理、知识推理
闭环控制架构(过程控制)
概念:当软件被用来操作一个物理系统时,软件与硬件之间可以粗略地表示为一个反馈循环,这个反馈循环通过接受一定的输入,确定一系列输出,最终使环境达到一个新的状态,适合于嵌入式系统,涉及连续的动作与状态。
经典应用:空调温控系统,定速巡航系统
C2风格
基本规则:构件和连接都有一个顶部和一个底部
构件顶部要连接到连接件的底部,构件的底部要连接到连接件的顶部,构件之间不允许直连,一个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部
典型架构应用
层次架构
层次架构
两层C/S
胖客户端【业务逻辑】< - >服务器【数据库】
特点:升级维护困难
三层C/S
瘦客户端【仅界面】< - >应用服务器【业务逻辑】< - >服务器【数据库】
特点:业务逻辑变化不再需要更新客户端
三层B/S
零客户端【浏览器】< - >WEB应用服务器【业务逻辑】< - >服务器【数据库】
特点:完全不要客户端、升级维护容易
通用架构
软件构件模式
MVC模式
概念:M(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据;V(视图)是应用程序中处理数据现实的部分。通常视图是依据模型数据创建的;C(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
J2EE体系结构中:视图是JSP;控制是Servlet;模型是Entity Bean、Session Bean
MVP模式
MVP是MVC的变种
优点:模型与视图完全分离,可以修改视图而不影响模型;可以更高效地使用模型,因为交互都发生在一个地方Presenter内部;
MVVM模式
富互联网应用(RIA)
发展:C/S【胖】客户端 -->B/S【零】客户端 --> RIA【富】客户端(临时下载客户端)
如:Ajax、Flex、Bindows、HTML5、小程序
优点:反应速度快、易于传播、交互性强
物联网分层结构
应用层
解决信息处理和人机交互问题 应用服务 智能终端
平台层
操作系统 软件开发 设备管理平台 连接管理平台
网络层
传递信息和处理信息 网络 通信标准/协议
感知层
解决数据获取问题 传感器 芯片 通信模组
大数据分层结构
数据应用层
包括营销支撑、客户洞察、风险管控、运营优化、历史数据查询、指标应用、报表应用、主题分析、专题分析等
数据接口层
包括基础分析、多维分析、数据挖掘、实时分析、自助分析、数据共享等,数据统一服务和开放SQL、FTP、WS、MDX、API等
数据层
数据仓库、分布式数据库、Handoop平台等,向数据接口层提供数据
数据采集层
数据采集(数据探头、流数据处理、爬虫)等,向数据仓库提供采集到的数据
数据源
包括结构化数据:核心系统、信贷系统、网上银行、国际结算、其他系统;半结构化、非结构化数据通过外部互联网数据、第三方数据、内部影像、语音系统等
基于服务的架构(SOA)
概念:服务是一种为了满足某种业务需求的操作、规则等的逻辑组合,包含一系列有序活动的交互,为实现用户目标提供支持。
典型的SOA架构
单个服务的内部结构
SOA层次和特点
服务为最外层,构件为中间层,对象为最内层
服务是标准化程度更高的构件;
服务构件粗粒度,传统构件细粒度居多
服务构件的接口是标准的,主要是WSDL接口,传统构件常以具体API形式出现。
服务构件的实现与语言无关,传统构件绑定某种语言
服务构件可以通过构件容器提供QoS的服务,传统构件完全由程序代码直接控制
关键技术
发现服务
对应协议:UDDI、DISCO
描述服务
对应协议:WSDL、XML Schema
WSDL:WebService接口对应的WSDL文件,该文件通过xml格式说明如何调用,可以看作WebService的接口文档
消息格式层
对应协议:SOAP、REST
REST:表述性状态转移,是一种只使用HTTP和XML进行基于web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。
编码格式层
对应协议:XML(DOS、SAX)
传输协议层
对应协议:HTTP、TCP/IP、SMTP等
ESB:消息中间件、服务总线,它是面向服务架构的一种实现方式
微服务-混合风格
概念
微服务就是很小的服务,所以是面向服务架构的一种
优势
复杂应用解耦
小服务,化整为零,易于小团队开发
独立
独立开发,独立测试,独立部署,独立运行
技术选型灵活
支持异构,如支持使用不同数据库
容错
错误被隔离在单个服务中,通过重试、平稳退化等机制实现应用层容错。
松耦合,易扩展
可根据需求独立扩展
面临的挑战
更复杂
分布式环境下的数据一致性
测试的复杂性
服务间依赖测试
运维的复杂性
微服务与SOA特点对比
整体性
微服务能拆分就拆分;SOA是整体的,服务能放一起就放一起
业务划分
微服务是纵向业务拆分;SOA是水平分多层
颗粒度
微服务细粒度;SOA粗粒度
可描述性
微服务两句话能解释明白;SOA几百字只能介绍目录,需要复杂描述才能解释清楚
类比行
微服务类似一家小公司;SOA相当于一家大公司里面划分的业务单元
组件构成
微服务组件小;SOA存在较复杂的构建
业务逻辑
微服务业务逻辑存在于每一个服务中;SOA业务逻辑横跨多个业务领域
通信方式
微服务使用轻量级的通讯方式,如HTTP;SOA则是由企业服务总线(ESB)充当了服务之间的通信角色
微服务与SOA架构对比
量级对比
微服务是团队级别自底向上开展实施;SOA则是企业级别,自顶向下开展实施
系统拆分
微服务是一个系统被拆分多个服务,细粒度;SOA的服务由多个子系统组成,粗粒度
集中程度
微服务无集中式总线,松散的服务架构;SOA企业服务总线,集中式服务架构
集成方式
微服务集成方式简单(HTTP/REST/JSON);SOA集成方式复杂(ESB/WS/SOAP)
部署方式
微服务能独立部署;SOA单块架构系统,相互依赖,部署复杂
微服务架构模式方案
聚合器微服务
客户端-->API网关-->聚合器
微服务A
微服务B
微服务C
链式微服务
客户端-->API网关-->微服务A<-->微服务B<-->微服务C
数据共享微服务
数据库<
微服务A(向数据库读/写)
微服务B(向数据库读/写)
微服务C(向数据库读/写)
异步消息传递微服务
微服务A-->消息队列(kafka/ActiveMQ/RabbitMQ/RocketMQ)-->微服务B
微服务设计约束
微服务个体约束
每个微服务都是独立的,修改一个微服务不能影响另一个微服务
微服务与微服务之间的横向关系
通过第三方服务注册中心来满足服务的可发现性
微服务与数据层之间的纵向约束
数据是微服务的“私产”,访问时需要通过微服务
全局视角下的微服务分布约束
高效运维整个系统
️云原生架构
云计算基本概念
云计算是集合了大量计算设备和资源,对用户屏蔽底层差异的分布式处理架构,其用户与提供实际服务的计算资源是相分离的.
优点:超大规模、虚拟化、高可靠性、高可伸缩性、按需服务、成本低【前期投入低、综合使用成本也低】
分类
按服务类型
SaaS【软件服务】
基于多租户技术实现,直接提供应用程序
PaaS【平台即服务】
虚拟中间件服务器、运行环境和操作系统
IaaS【基础设施即服务】
包括服务器、存储和网络等服务
按部署分类
公有云:面向互联网用户需求,通过开放网络提供云计算服务
私有云:面向企业内部提供云计算服务
混合云:兼顾以上两种情况的云计算服务
云计算架构
云原生
是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系
管理层
提供对所有层次云计算服务的管理功能
用户访问层
方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口
应用层
提供软件服务,如:财务管理,客户关系管理,商业智能
平台层
为用户提供对资源层服务的封装,使用户可以构建自己的应用
资源层
提供虚拟化的资源,从而隐藏物理资源的复杂性。如:服务器,存储
云原生架构设计原则
服务化原则:使用微服务
弹性原则:可根据业务变化自动化伸缩
可观测原则:通过日志、链路跟踪和度量
韧性原则:面对异常的抵御能力
所有过程自动化原则:自动化交付工具
零信任原则:默认不信任网络内部和外部的任何人/设备/系统
架构持续演进原则:业务高速迭代情况下的架构与业务平衡
云原生架构模式
服务化架构模式:典型代表【微服务】,服务拆分使维护压力大增
Mesh化架构模式:把中间件框架(RPC、缓存、异步消息)从业务进程中分离,由Mesh进程完成。
Serverless模式:非常适合于事件驱动的数据计算任务
存储计算分离模式:各类暂态数据用云服务保存
分布式事务模式:解决微服务模式中多数据源事务问题
可观测架构:包括Logging、Tracing、Metrics三个方面
事件驱动架构:本质上是一种应用/组件间的集成架构模式
云原生架构反模式
庞大的单体应用
需要多人开发的业务模块,考虑通过服务化进行拆分,并让组织与架构匹配
单体应用“硬拆”为微服务
小规模软件的服务拆分、数据依赖、性能降低
缺乏自动化能力的微服务
手动维护大量微服务是不现实的
边缘计算
概念
边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。
本质:计算处理职能的本地化
ADL
概念
ADL是这样一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念架构。如:Aesop、MetaH、C2、Rapide、SADL、Unicon等
三个元素
构件:计算或数据存储单元
连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则
架构配置:描述体系结构的构件与连接件的连接图。
主要的架构描述语言
Aesop
支持体系结构风格的应用
MetaH
为设计者提供了关于实时电子控制软件系统的设计指导
C2
支持基于消息传递风格的用户界面系统的描述
Rapide
支持体系结构设计的模拟并提供了分析模拟结果的工具
SADL
提供了关于体系结构加细的形式化基础
Unicon
支持异构的构件和连接类型并提供了关于体系结构的高层编译器
Wright
支持体系结构构件之间交互的说明和分析
基于架构的软件开发
基于架构的软件设计(ABSD)
ABSD方法是架构驱动,即强调由业务【商业】、质量和功能需求的组合驱动架构设计。ABSD有三个基础。第一,功能的分解;第二,通过选择架构风格来实现质量和业务需求;第三,软件模块的使用
开发过程
架构需求--架构设计--架构文档化--架构复审--架构实现--架构演化
架构文档化过程的主要输出结果是架构规格说明和测试架构需求的质量设计说明书
文档的完整性和质量是软件架构成功的关键因素
文档三大注意事项
文档要从使用者的角度进行编写
必须分发给所有与系统有关的开发人员,且为最新的
架构复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误
架构需求过程
需求获取--生成类图--对类进行分组--把类打包成构件--需求评审
架构设计过程
提出架构模型--映射构件--分析构件相互作用--产生架构--设计评审
架构实现过程
复审后的文档化的架构-->分析与设计-->构件实现-->构件组装-->系统测试-->架构演化(除前后部分,中间为构件库)
架构演化过程
需求变化归类--架构演化计划--构件变动--更新构件的相互作用--构件组装与测试--技术评审--演化后的架构
特定领域软件架构(DSSA)
基本活动
概念
特定领域软件架构以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,支持一个特定领域中多个应用的生成。
活动过程
领域分析(建立领域模型)—领域设计(获得DSSA)—领域实现(开发和组织可复用信息)【逐步求精过程】
DSSA类型
垂直域
相同领域,深入
水平域
不同领域,平移
参与人员
领域专家
领域专家的主要任务包括提供关于领域中系统的需求规约和实现知识,复审领域模型、DSSA等领域工程产品
领域分析人员
控制整个领域分析过程,进行知识获取,验证领域模型的准确性和一致性
领域设计人员
根据领域模型和现有系统开发出DSSA,并对其进行验证,建立领域模型和DSSA之间的关系
领域实现人员
开发可重用构件,提取可重用构件,对构件进行验证
领域分析机制
建立过程
第一步、定义领域范围
第二步、定义领域特定的元素
第三步、定义领域特定的设计和实现需求学术
第四步、定义领域模型和架构
第五步、生产、收集可复用的产品单元【整个过程循环,形成并发的、递归的、反复的、螺旋形的结构】
三层次模型
软件架构评估
相关概念
风险点
非风险点
敏感点
场景
刺激源
刺激
环境
制品
响应
响应速度
为什么要进行架构评估
架构是整个软件的主体结构
如果出错,将导致整个软件开发失败
如果过程中需要大量修整,会造成极大的风险
重点关注:软件质量属性
性能
概念:是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如:同时支持1000并发、响应时间小于1s、显示分辨率达到4K
性能战术
资源需求
如:提高计算效率、减少计算开销、管理事件率、控制采样率
资源管理
如:引入并发、维持多个副本、增加可用资源
资源仲裁
如:资源调度策略、先进/先出、固定优先级、动态优先级、静态调试
可用性
概念:系统能够正常运行的事件比例。经常两次故障之间的时间长度或在出现故障时系统能够恢复的正常的速度来表示。如:主服务器故障,1分钟内切换到备用服务器、系统故障,1小时内修复、系统支持7X24小时工作
可用性战术
错误检测
命令/响应、ping/echo、心跳、异常
错误恢复
表决、冗余、备件
错误预防
进程监视器、事务、从服务器删除
安全性
概念:指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可以分为机密性【信息不泄漏给未授权的用户】、完整性【防止信息被篡改】、不可否认性【不可抵御】及可控性【对信息的传播及内容具体控制的能力】等特性。如:可抵御SQL注入攻击、对计算机的操作都有完整的记录、用户信息数据库授权必须保证99.9%可用。
安全性战术
抵抗攻击
如:身份验证、用户授权、数据加密、数据完整性、限制暴露、限制访问
检测攻击
如:入侵检测
从攻击中恢复
识别:审计追踪、恢复:冗余【与可用性重叠】
可修改性
概念:能够快速地以较高的性能价格对比系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
延伸属性
结构重组
可移植性
可扩展性
可维护性
可修改性战术
局部化修改
维持语义一致性、预期期望的变更、泛化模块、限制可能的选择、抽象通用服务
防止连锁反应
隐藏信息、维持现有的接口、限制通信路径、使用仲裁者
推迟绑定时间
运行时注册、配置文件、多态、组件更换、遵守已定义的协议
易用性
易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类
可测试性
软件可测试性是指通过测试揭示软件缺陷的容易程度
其他属性
可靠性
容错
健壮性
功能性
可变性
互操作性
软件评估方法
相关概念
风险点
架构设计中潜在的、存在问题的架构决策所带来的隐患
非风险点
XXX要求是可以实现【或接受】的
敏感点
一个或多个构件的特性,它能影响系统的某个质量属性
权衡点
影响多个质量属性的特性,是多个质量属性的敏感点
场景
刺激源
生成该刺激的实体
刺激
刺激到达系统时需要考虑的条件
制品
某个制品被激励
环境
该刺激在某些条件内发生
响应
该响应是在激励到达后所采取的行动
响应度量
响应发生时,能够以某种方式对其进行度量
评估方式
基于场景的评估方法
软件架构分析法(SAAM)
架构权衡分析法(ATAM)
第一阶段:场景和需求收集
第二阶段:架构视图和场景实现
第三阶段:属性模型构件分析
第四阶段:折中
软件产品线
概念
产品线是多个知识领域的综合体,软件产品线会包括特定领域架构DSSA
特点
核心资源、产品集合、过程驱动、特定领域、技术支持、以架构为中心
过程模型
双生命周期模型
建立方式
将现有产品演化为产品线
用软件产品线替代现有产品集
全新软件产品线的演化
全新软件产品线的开发
组织结构类型
设立独立的核心资源小组
不设立独立的核心资源小组
动态的组织结构
成功实施产品线主要取决因素
对该领域具备长期和深厚的经验
一个用于构建产品的好的核心资源库
好的产品线架构
好的管理(软件资源、人员组织、过程)支持
构件与中间件技术
构件
概念
软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意地组装。如:COBRA、J2EE【EJB】、DNA2000
构件、对象、模块的对比
构件的复用
软件复用【重用】是多次不同的软件开发过程中重复使用相同或相似【软件元素】的过程。软件元素包括:需求分析文档、设计过程、设计文档、程序代码、测试用例、领域知识。
检索与提取构件
基于关键字的检索
刻面检索法
超文本检索法
理解与评价构件
修改构件
组装构件
基于功能的组装技术
基于数据的组装技术
面向对象的组装技术
在构件组装阶段失配问题
由构件引起的失配
由连接子引起的失配
中间件
概念
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。中间件是一类构件,中间件是一类系统软件。
采用中间件技术的优点
面向需求
设计与实现隔离
隔离复杂的系统资源
软件复用
提供对应用构件的管理
分类
通信处理(消息)中间件
可靠、高效、实时跨平台通信
事务处理(交易)中间件
事务分发,负载均衡
数据存取管理中间件
为虚拟缓冲取、格式转换、解压等带来方便
Web服务器中间件
有负载均衡、缓存、安全性等功能
安全中间件
如:加密,认证等
跨平台和架构的中间件
解决跨平台问题,如:CORBA
专用平台中间件
为特定应用领域设计领域参考模式,建立相应架构
网络中间件
功能包括网管、接入、网络测试、虚拟社区和虚拟缓冲等
软件架构的概念
概念
架构设计就是需求分配,即将满足需求的职责分配到组件上。软件架构 = 软件体系结构
架构的本质:软件架构为软件系统提供一个结构、行为和属性的高级抽象。软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束。
架构的作用:软件架构是项目干系人进行交流的手段
架构发展史
无架构阶段
汇编语言阶段
萌芽阶段
程序结构设计
初级阶段
统一建模语言
高级阶段
4+1 UML视图
4+1 视图 4种视图+1场景
逻辑视图
关注最终用户的功能需求
进程视图
关注系统集成人员在性能可扩充性、吞吐量方面的实现
物理视图
关注系统工程人员设计的系统拓扑、安装、通信等方面的实现
开发视图
关注编程人员进行软件编写管理
场景
UML下的4+1视图
逻辑视图
由系统分析、设计人员参与,关注:类与对象
进程视图
由系统集成人员参与,关注:线程、进程、并发
部署视图
由系统和网络工程师参与,关注:软件到硬件的映射
实现视图
由程序员参与,关注:物理代码文件和组件
用例视图
由最终用户参与,关注:需求分析模型
嵌入式系统
嵌入式系统设计
交叉开发环境
与传统的软件开发方法差异
嵌入式软件开发是在宿主机上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机存储器上运行
嵌入式软件开发时更强调软硬件协同工作的效率和稳定性
嵌入式软件对实时性要求高
嵌入式软件对安全性和可靠性的要求较高
嵌入式软件开发是充分考虑代码规模
在安全攸关的系统中的嵌入式软件,其开发还应满足某些领域对设计和代码的审定
模块化设计是将一个较大的程序按功能划分成若干程序模块,每个模块实现特定的程序功能
低功耗设计
软硬件协同设计
编译优化,采用低功耗优化的编译技术
减少系统的持续运行时间,可从算法角度优化
用“中断”代替“查询”
进行电源的有效管理
嵌入式硬件
嵌入式系统发展历程
第一阶段:单片微型计算机(SCM)阶段,即单片机时代
第二阶段:微控制器(MCU)阶段
第三阶段:片上系统(SoC)
第四阶段:以Internet为基础的嵌入式系统
第五阶段:在智能化、云技术推动下的嵌入式系统
嵌入式微处理器分类
通常嵌入式处理器的选择还要根据使用场景不同选择不同类型的处理器,从处理器分类看,大致可分为MPU、MCU、DSP、GPU、SoC
微处理器MPU:微处理器一般以某一种微处理内核为核心,每一种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置和封装。MPU采用增强型微处理器。MPU在工作温度、电磁兼容性及可靠性方面较普通微处理器更强,但功能与标准微处理器一致。
微控制器MCU:又称单片微型计算机或单片机。将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上。形成芯片级计算机。为不同的应用场合做不同的组合控制。与MPU相比,MCU的最大优点在于单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。
信号处理器DSP:以数字信号来处理大量信息的器件。其运行速度可以达到每秒数以千万条复杂指令程序。以强大数据处理能力和高运行速度著称。DSP采用哈佛结构,使其适合于执行DSP算法,编译效率高,指令执行速度也高。
图形处理器GPU:是一种可执行渲染3D图形等图像的半导体芯片,可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器。
片上系统SoC:称为系统级芯片,是一个产品,是专用目标的集成电路。其中包含完整的系统并有嵌入软件的全部内容。追求产品系统最大包容的集成器件。既是一个产品。也是一种技术,成功实现了软硬件的无缝结合。
AI芯片
概念
从广义上讲只要能够运行人工智能算法的芯片都叫作AI芯片。但是通常意义上的AI芯片指的是针对人工智能算法做了特殊加速设计的芯片,现阶段,这些人工智能算法以深度学习算法为主,也可以包括其他机器学习算法。
分类
GPU
FPGA(现场可编程门阵列)
ASIC(专用集成电路)
类脑芯片
关键特征
新型计算机范式:AI计算既不脱离传统计算,也具有新的计算特质
训练和推理:AI系统通常涉及训练和推断过程
大数据处理能力:满足高效能机器学习的数据处理要求
数据精度:降低精度的设计
可重构的能力:针对特定领域而不针对特定应用的设计,可以通过重新配置,适应新的AI算法、架构和任务
开发工具:AI芯片需要软件工具链的支持
嵌入式微处理器体系结构
概述
嵌入式微处理器主要用于处理相关任务,不同处理器对应的处理器芯片有所不同,主要分为民用、工业、军用。
冯诺依曼结构
又称普林斯顿结构,是一种将程序指令存储器和数据存储合并在一起的存储器结构
特点:指令与存储器合并在一起,都通过相同的数据总线传输
典型应用:如I3、I5、I7都是该结构
哈佛结构
是一种并行结构,它主要特点是将程序和数据存储在不同的存储空间中,独立访问,独立编址
特点:多总线结构,程序指令与数据存储分开,可并行读取,有较高的数据吞吐率。哈哈佛框架不追求适应多种环境,不强调兼容性。
一般用于嵌入式系统处理器,如GPU、DSP
分类
民用级工作温度范围:0-70°C
工业级工作温度范围:-40-85°C
军用级工作温度范围:-55-150°C
硬件抽象层
系统结构抽象层
该层抽象了CPU核的特征,包括中断的传递、异常处理、上下文切换和CPU的启动等
处理器变种抽象层
该层抽象了CPU变种的特征,例如,cache、内存管理部件、浮点处理器和片上部件(存储器、中断控制器)等
平台抽象层
该层抽象了不同平台的特征,如片外器件定时器和I/O寄存器等
总线
概念
总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路【总线通常是半双工】
特点
挂接在总线上的多个部件只能分时(需要排队)向总线发送数据,但可以同时从总线接收数据
通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息
分类
功能划分:数据总线、地址总线、控制总线
传输方式:并行总线串行总线。串行总线:长距离,传输波特率可调整,正确性依赖于校验码,数据传输方式可使用多种。常见:USB、IEEE等;并行总线:用多条数据线进行传输,短距离传输。常见:PCI、ISA等
嵌入式操作系统
定义及特点
定义
嵌入式操作系统EOS负责嵌入式系统的全部软硬件资源分配、任务调度、控制、协调并行活动、等工作
按敏感度分类
嵌入式非实时系统
嵌入式实时系统
特点
其他特点:微型化、代码质量高、专业化、可裁剪可配置。核心特点是实时性强
系统内核小
由于嵌入式系统一般是应用于小型电子装置的,系统资源有限,所以内核较传统操作系统小
专用性强
嵌入式系统的个性化很强,软硬件系统的结合非常紧密,一般要针对硬件进行系统移植。
系统精简
一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,起到控制系统成本,利于实现系统安全
高实时性
高实时性是基本要求,要求固态存储,以提高速度,软件代码要求高质量和高可靠性
多任务性
需要开发工具和环境
优先级调度算法
系统分配相对固定的优先顺序
嵌入式实时操作系统调度算法
抢占式优先调度算法
根据任务的紧急程度(紧急的数值越高越优先,并没有数值范围)确定优先级,大多数RTOS算法都是抢占方式
最早截止期调度算法(EDF算法)
根据时间头端确定优先级,时限最近,分配最高优先级
最晚截止期调度算法
根据截止时间末端分配优先级,时限越近,优先级越高
最低松弛度优先(LLF)算法
根据任务松弛度(时间范围的概念,比如10-20,20的优先),来确定任务优先级,越紧急,任务优先级越高
单调速率调度算法RMS
静态优先级调度算法,经典的周期性调度算法,任务周期越短,优先级越高,反之越低。
操作系统内核架构
概念:内核是操作系统的核心,管理系统各种资源。作为软硬件桥梁,是运行在硬件上最基础的软件实体。从架构上可分为宏内核和微内核
宏内核和微内核对比
实质
单体内核将图形、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和同一地址空间;微内核则只实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外。
优点
单体内核减少进程间通信和状态切换的系统开销,获得较高的运行效率;微内核系统结构相当清晰,有利于协作开发。内核精炼,便于裁剪和移植(灵活性、可扩展性)。系统的可靠性、稳定性和安全性较高。可用于分布式系统
缺点
单体内核内核庞大,占用资源较多且不易剪裁,系统的稳定性和安全性不好;微内核用户状态和内核状态需要频繁切换,从而导致系统效率不如单体内核,性能偏低。
鸿蒙操作系统
概念
鸿蒙系统整体采用分层的层次化设计,从下向上依次为:内核层、系统服务层、框架层和应用层
技术特性
分布式架构首次用于终端OS,实现跨终端无缝协同体验
确定时延引擎和高性能IPC技术实现系统天生流畅
基于微内核架构重塑终端设备可信安全
通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
混成系统
一般由离散分离组件和连续组件并行或串行组成,组件之间的行为由计算机模型进行控制
嵌入式系统评价指标
嵌入式系统评价可以从多方面来分析:体系结构、API的丰富程度、网络支持、可靠性等
实时性是RTOS评价的最重要的指标之一,实时性的优劣是用户选择操作系统的一个重要参考
影响系统实时性的因素有:常用系统平均调用时间、任务切换时间、线程切换时间、信号量混洗时间、中断响应时间。任务执行时间不能反映实时性
嵌入式数据库
与传统数据库比较
比较传统数据库具有:嵌入式、实时性、移动性、伸缩性等特点
嵌入式数据库分类
基于内存方式MMDB
实时系统和数据库系统的有机结合
主特征:以其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道
基于文件方式FDB
数据按照一定的方式存储在磁盘中,通过相应的驱动程序甚至直接对数据文件进行读写
安全性很低,但可以满足嵌入式系统在空间、时间等方面的特殊要求
基于网络方式NDB
基于手机4G/5G的移动通信基础上的数据库系统,在逻辑上可以把嵌入式设备看作远程服务器的一个客户端。
无需解析SQL语句,支持更多的SQL操作,客户端小、无须支持可剪裁性;有利于代码重用。
嵌入式网络数据库
实际上是把远程数据库映射在本地数据库,方便嵌入式设备访问
由三部分构成:客户端、通信协议、远程服务器
嵌入式系统概述
基本概念
嵌入式系统是以应用为中心,以计算机技术为基础,并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求
从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中。
一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成
嵌入式系统初始化过程:片级初始化-->板级初始化-->系统初始化
系统部件
包括:嵌入式微处理器MPU、存储器RAM/ROM、内外总线逻辑、定时/计数器、看门狗电路、I/O接口、外部设备、其他部件
数据库系统
1.数据库概述
数据库模式
三级模式
外模式对应视图,模式对应数据库表,内模式对应物理文件。
两层映像
外模式-模式映像,模式-内模式映像,两层映像可以保证数据库中的数据具有较高的逻辑独立性和物理独立性
物理独立性
即数据库的内模式发生改变时,应用程序不需要改变
逻辑独立性
即逻辑结构发生改变时,用户程序不需要改变。
聚簇索引会影响内模式
分布式数据库
体系结构
分布式数据库特点
数据独立性
集中与自洽共享结合的控制结构
适当增加数据冗余度
全局一致性、可串行性和可恢复性
分布式透明性
分片透明性
垂直分片:按字段分片。员工基本信息分布在A服务器,员工地址信息分布在B服务器
水平分片:按记录分片,如前100分在A服务器,100-200分布在B服务器
混合分片
位置透明性
复制透明
局部数据模型透明性
2PC事务提交的两个阶段
表决阶段
执行阶段
分库分区分表
对比
分区与分表都是针对数据表,都使用了分布式存储,都提升了查询效率,都降低了数据库频繁的读写操作压力
不同点在于,分区逻辑上还是一张表,而分表逻辑上已经是多张表
常见的分区方式
范围分区(range)
按数据范围,如将用户按编号分到多个区
散列分区(Hash)
通过Key进行Hash运算,在取余运算后分到对应的多个区
列表分区(List)
根据某个具体值进行分区,如按地域分区
分区的优点
相对于单个文件系统或硬盘,分区可以存储更多的数据
数据管理比较方便,比如清理或废除某一年的数据可以直接删除对应年份数据
精准定位分区查询数据,不需要全表扫描,大大提高数据的检索效率
可以跨多个分区磁盘查询,来提高查询的吞吐量
在涉及聚合函数查询时,可以很容易进行数据的合并
分布式数据库管理系统-组成
LDBMS、GDBMS、全局数据字典、通信管理(CM)
分布式数据库管理系统-结构
全局控制集中的DDBMS、全局控制分散的DDBMS、全局控制部分分散的DDBMS
索引和视图
数据库索引
提升查询效率,降低增加、修改、删除效率;采用B树,B+树等
关系的3种类型
基本关系:实际存在的表,实际存储数据的逻辑表示。
查询表:查询结果对应的表
视图表:由基表和其他视图表导出的表,本身不是一个实体表,而是记录的是查询语句。可以动态生成结果,修改原始表后视图表依然可以实现同步更新
视图的概念
视图并不在数据 库中实际存在,而是一种虚拟表
视图的优点
视图能简化用户的操作
视图机制可以使用户以不同的方式查询同一数据
视图对数据库重构提供了一定程度的逻辑独立性
视图可以对机密的数据提供安全保护
物化视图
将视图的内容物理存储起来,其数据随原始表变化,同步更新
数据库设计过程
概念结构设计过程
设计过程
E-R图集成的方法
多个局部E-R图一次集成,逐步集成,用累加的方式一次集成两个局部E-R
集成产生的冲突及解决办法
属性冲突:包括属性域冲突和属性取值冲突
命名冲突:包括同名异义和异名同义
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同
逻辑结构设计
任务
E-R图向关系模式的转换
实体向关系模式的转换
联系向关系模式的转换
关系模式的规范化
确定完整性约束
实体完整性约束
参照完整性约束
用户自定义完整性约束
触发器
用户视图的确定
根据数据流图确定处理过程使用的视图
根据用户类别确定不同用户使用的视图
应用程序设计
相关概念
目或度:关系模式中属性的个数
候选码:唯一识元组,且无冗余
主码:候选键任选一个
主属性与非主属性:组成候选码的属性就是主属性,其他就是非主属性
外码:又称外键,其他关系的主键
全码:关系模式的所有属性组是这个关系的候选码
简单属性与复合属性、派生属性、多值属性
数据库性能优化
集中式数据库性能优化
硬件系统:包括CPU、内存、I/O、网络等方面
系统软件:参数,如进程优先级,CPU使用权,内存使用等
数据库设计
分区、分表、分库等
物化视图
建立索引:常查询-建索引,常修改-避免索引
SQL优化:以不相干子查询替代相干子查询
应用软件
分布式数据库优化
通信代价
关系代数
并集:结果为二者元组之和去除重复行
交集:结果为二者重复行
差集:前者去除二者重复行
笛卡尔集:所有列保留,所有行全映射
投影:对属性列的选择列出
选择:对元组行的选择列出
自然连接:结果列数为二者属性列数之和减去重复列,行数为二者同名属性列其值相同的结果元组。笛卡尔积、选择、投影的组合表示可以与自然连接等价
规范化理论
非规范化存在的问题
非规范化存在的问题包括:数据冗余、更新异常、插入异常、删除异常
相关概念
函数依赖
部分函数依赖
传递函数依赖
Amstrong公理
自反律
增广律
传递律
合并规则
伪传递规则
分解规则
候选键
主属性与非主属性
组成候选码的属性就是主属性,其他就是非主属性
范式
逐层提高
1NF
属性值都是不可分的原子值
2NF
消除非主属性对候选键的部分依赖
3NF
消除非主属性对候选键的传递依赖
BCNF
消除主属性对候选键的部分和传递依赖
规范化过程-模式分解
保持函数依赖分解
无损分解
指将一个关系模式分解成若干个关系模式后,通过自然连接和投影等运算仍能还原到原来的关系模式
反规范化
反规范化手段
增加派生性冗余列
增加冗余列
重新组表
分割表
反规范化的优缺点
优点
连接操作少,检索快,统计快,需要查的表减少,检索容易
缺点
数据冗余,需要更大的存储空间
插入、更换、删除操作开销更大
数据不一致,可能出现添加、删除、修改异常
更新和插入代码更难写
数据控制
数据控制的功能
安全性、完整性、并发控制、故障恢复
安全性
措施包括用户标识和鉴定、存取控制、密码存储和传输、视图的保护、审计等
事务的特性
原子性
整个事务的操作,要么全部完成,要么全部不完成
一致性
一个事务可以封装状态改变
隔离性
多个事务处理时相互隔离操作,但同一时间仅有一个请求用于同一数据
持久性
事务完成后数据将持久写入数据库中
并发产生的问题
“脏”读数据
幻读数据
不可重复读
封锁技术
写锁
读锁
封锁协议
一级封锁协议
二级封锁协议
三级封锁协议
两段乐协议
子主题
故障恢复
冷备份
也称表态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份下来
热备份
也称动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
完全备份
备份所有数据
差量备份
备份上一次备份之后变化的数据
增量备份
备份上一次备份之后变化的数据
子主题
日志文件
事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,将将记录结果保存在独立的文件中。
数据库故障与修复
NoSQL
概念
不仅仅只是SQL,泛指非关系型数据库
与关系数据库对比
分类
键值(Key-Value)
应用于内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等,优点是查找速度快,但是数据无结构,通常只被当作字符串或者二进制数据,如Redis,Orcale BDB等都属于这一类
列存储数据库
分布式的文件系统,以列簇式存储,将同一列数据存在一起,优点是查找快,可扩展性强,更容易进行分布式扩展,但功能局限,如HBase,Riak等
文档型数据库
Web应用与键值型类型,Value是结构化的,不同的是数据库能够了解Value的内容,优点是在对数据结构要求不明显时可以使用,查找性能不高,而且缺乏统一的查询语法,如MongDB,CouchDB等
图形数据库(Graph)
社交网络,推荐系统等。专注于构建关系图谱,作为一种图结构,优点是利用图形结构相关算法。比如最短路径寻址,N度关系查找等,但很多时候需要对整个图做计算才能得出结果,并不太好做分布式或集群设计。如Neo4J,infoGrid等
计算机网络
计算机网络概述
网络延迟=处理延迟+排队延迟+发送延迟+传播延迟(主要是队列延迟和磁盘读写延迟)
网络分类
5G技术
主要特征
服务化架构:5G核心网络中引入了SBA服务化架构,实现网络功能的灵活定制和按需组合
网络切片:通过网络切片技术在单个独立的物理网络上切分出多个逻辑网络,从而避免为一个服务建设一个专用的物理网络,极大地降低了建网和运维成本
网络规划与设计
对通信线路的设计目标主要有两个:一个是备用路径,一个是负载分担。
备用路径
备用路径设计时考虑,备用路径的带宽、切换时间、非对称、自动切换、测试等
负载分担
实现方法,利用两个或多个网络接口和路径来同时传递流量,设计时考虑以下三点:
网络中存在备用路径、备用链路时,可以考虑加入负载分担设计
对于主路径、备用路径都相同的情况,可以实施负载分担的特例--负载均衡
对于主路径、备用路径不相同的情况,可以采用策略路由机制,让一部分应用的流量分摊到备用路径上
组网技术
交换技术
数据在网络中转发通常离不开交换机。交换机的功能包括:集线功能、中继功能、桥接功能、隔离冲突域功能等
交换机原因:基于MAC地址识别
交换机功能
转换路径学习
根据收到数据中的源MAC地址建立该地址同交换端口的映射写入MAC地址表中
数据转发
数据泛洪
链路地址更新
TCP/IP协议簇
常见协议及功能
常见协议主要功能
POP3:110端口,邮件收取
SMTP:25端口,邮件发送
FTP:20数据端口/21控制端口,文件传输协议
HTTP:80端口,超文本传输协议,见面传输
DHCP:67端口,IP地址自动分配
SNMP:161端口,简单网络管理协议
DNS:53端口,域名解析协议,记录域名与IP的映射关系
TCP:可靠的传输层协议,TCP协议可以依据端口号将报文将会给上层的某一进程,可以对应层进程进行寻址
UDP:不可靠的传输层协议
ICMP:因特网控制协议,PING命令来自该协议
IGMP:组播协议
ARP:地址解析协议,IP地址转换为MAC地址
RARP:反向地址解析协议,MAC地址转换IP地址
DHCP
动态主机配置协议
客户机/服务器模型
租约默认为8天
当租约过半时,客户机需要向DHCP服务申请续租
当租约超过87.5%时,如果仍然没有和当初提供IP的DHCP服务器联系上,则开始联系其他的DHCP服务
分配方式:固定分配【管理员分配】、动态分配【有效期限的IP地址】和自动分配【无限长的IP地址】
无效地址:如WIN 的169.254.X.X和Linux 0.0.0.0
DNS用法
递归查询:服务器必须回答目标IP与域名的映射关系
迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其他DNS服务器的地址
Linux系统中,DNS配置文件为resolv.conf,nameserver定义DNS服务器的IP地址,domain定义本地域名,search定义域名的搜索列表,sortlist对返回的域名进行排序
数学与经济管理
运筹方法
线性规划
线性规划的数据模型通常由目标函数、线性约束条件、变量非负条件组成
特点
线性规划的可行解域是由一组线性约束条件形成的,从几何意义来说,就是由一些线性解面围割形成的区域,不一定是封闭的多边形或多面体
如果存在两个最优解,则连接这两点的线段内所有的点都是最优解,而线段两端延长线上可能会超出可行解区
增加一个约束条件时,要么缩小可行解域,要么可行解域不变
如果最优解在可行解域边界某个非顶点处达到,则随着等值域向某个方向移动,目标函数的值会增加或减少或没有变化,从而仍会在可行解域的某个顶点处达到最优解。若最优解存在且唯一,则可以从可行解区顶点处比较目标函数值来求解
动态规划
关键路径法
数据建模
概念
数据建模是一种数据的思考方法,是运用数学的说语言和方法,通过抽象和简化,建立能近似刻画并解决实际问题的模型的一种强有力的数学手段
建模过程
模型准备
了解问题的实际背景,用数据语言来描述问题
模型假设
根据实际对象的特征和建模的目的,对问题进行必要的简化,并用精确的语言提出一些恰当的假设
模型建立
在假设的基础上,建立相应的数学结构
模型分析
利用获取到的数据资料,对模型的所有参数做出计算
模型验证
将模型分析结果与实际情形进行比较,以此来验证模型的准确性、合理性和适用性
模型应用
应用方式因问题的性质和建模的目的而异
数学建模方法和思路
直接分析法:认识原理,直接构造出模型
类比法:根据类似问题模型构造新模型
数据分析法:大量数据统计分析之后建模
构想法:对将来可能发生的情况给出设想从而建模
模型分析
模型的合理性分析:最佳、适中、满意等。利用实际案例数据对模型进行检验,可以请专家来分析模型是否合理,或利用计算机来模型实际问题,再在计算机上检验该数学模型
模型的误差分析:模型误差、观测误差、截断误差、舍入误差、过失误差、绝对误差、相对误差等
参数的灵敏性分析:变量数据是否敏感,在最优方案不变的条件下这些变量允许变化的范围
计算机系统基础
计算机系统概述
计算机系统组成
包括软件+硬件,软件包括系统软件+应用软件
主机+外设,主机包括CPU、运算器、控制器、主存储器等;外设包括输入设备、输出设备、辅助存储器
存储系统
CPU(寄存器)----Cache(按内容存取)----内存(DRAM)----外存(硬盘、光盘、U盘等)
操作系统概述
操作系统概述
软件分层
分为应用程序层、语言处理程序层、操作系统层、计算机硬件层
操作系统作用
管理系统的软硬件、数据资源;控制程序运行;是人机之间的接口;应用软件与硬件之间的接口
特殊的操作系统
批处理操作系统
单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成
多道批:一次多个作业入内存,特点是多道、宏观上并行微观上串行
分时操作系统
采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统,特点是多路性、独立性、交互性和及时性
实时操作系统
实时控制系统和实时信息系统
网络操作系统
方便有效共享网络资源,提供服务软件和有关协议的集合。主要网络操作系统有:Unix、Linux和Windows Server
分布式操作系统
任意两台计算机可以通过通信交换,是网络操作系统的更高级形式,具体有透明性、可靠性和高性能等特性
微机操作系统
Windows:微软开发的图形用户界面、多任务、多线程操作系统
Linux:免费使用和自由传播的类Unix操作系统,多用户、多任务、多线程和多CPU的操作系统
嵌入式操作系统
运行在智能芯片环境中,特点是微型化、可定制、实时性、可靠性、易移植
进程管理(4星)
进行的状态
进程的三模态
进程与线程的概念
进程的同步与互斥
相关概念:互斥、同步、临界资源、临界区、信号量
前趋图
前趋活动和后继活动:前趋活动完成后通知后继活动,后继活动开始前检查前趋活动是否完成
前趋图的表示:1个箭头表示1个前驱关系。A有箭头指向D,则记录为(A,D)。没有前趋进程的结点是起始进程,没有后继进程的结点是终结进程
并发图中某活动有后继就有V操作释放资源并通知后继活动,有前趋就有P操作检查资源是否足够
死锁及银行家算法
死锁:一个进程在等待一件不可能发生的事,则进程就进入死锁
银行家算法:分配资源的限制
存储管理(2星)
页式存储
将程序与内存均划分为同样大小的块,以页为单位将程序调入内存
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销,可能产生抖动现象
段式存储
按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
段页式存储
段式与页式的综合体。先分段,再分页面
优点:空间浪费小,存储共享容易,存储保护容易,能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度下降
磁盘管理
存取时间=寻道时间+等待时间
读取磁盘数据的时间应包括找磁道的时间、找扇区的时间、传输时间
磁盘移臂调试算法:先来先服务FCFS、最短寻道时间优先SSTF、扫描算法SCAN、循环扫描SCSAN
文件系统(2星)
文件概述
文件包括文件体和文件说明
文件类型
性质和用途:系统文件、库文件和用户文件
保存期限:临时文件、档案文件和永久文件
保护方式:只读文件、读写文件、可执行文件和不保护文件
UNIX系统:普通文件、目录文件和设备文件
索引文件
位示图
对于位示图,0表示空闲,1表示占用
假设机器长16位,则每个字可以表示16个磁盘块的占用情况
制定序号为N或第N+1个磁盘,占用情况需要用M=(N+1)/16(向上取整)个字表示,字的序号为M-1
系统性能(1星)
性能指标
硬件指标
计算机
时钟频率(主频)、运算速度与精度、数据处理速率PDR、吞吐率、兼容性等
路由器
设备吞吐量、端口吞吐量、丢包率、时延、时延抖动等
交换机
交互机类型、配置、最大ATM端口数、支持协议和标准等
网络
吞吐量、设备级性能指标、网络级性能指标
软件指标
操作系统
系统的吞吐率、系统响应时间、系统资源利用率
数据库
最大并发事务处理能力、负载均衡能力、最大连接数、索引数量、数据库大小、表的大小等
WEB服务器
最大并发连接数、响应延迟、吞吐量
系统性能设计
对于数据库系统,性能调整主要包括CPU/内存使用状况、优化数据库设计、优化数据库管理以及进程/线程状态、硬盘剩余空间、日志文件大小等
对于应用系统,性能调整主要包括应用系统的可用性、响应时间、并发用户数以及特定应用的系统资源占用等
性能评估
评估方法
测试精度排名
真实的程序>核心程序>小型基准程序>合成基准程序
Web服务器性能评测
基准性能测试、压力测试和可靠性测试
系统监视
一是通过系统本身提供的命令,二是通过系统记录文件查阅系统在特定时间内的运行状态,三是集成命令、文件记录和歌神化技术的监控工具
知识产权与标准化
知识产权
保护对象和范围(3星)
著作权法
保护著作权,文学、绘画、摄影等作品
不需要申请,作品完成即开始保护
绘画或摄影作品原件出售(赠予)著作权还归原作者,原件拥有者有所有权、展览权
软件著作权法、计算机软件保护条例
软件著作权软件作品
不需要申请,作品完成即开始保护
登记制度便于举证
专利法
专利权
需要申请,核准之日起商标受保护
商标法
商标权
需要申请,核准之日起商标受保护
反不正当竞争法
商业秘密权
商业秘密包括技术与经营两个方面
必须有保密措施才能认定商业秘密
保护期限(2星)
公民作品
署名权、修改权、保护作品完整权
无限制
发表权、使用权和获得报酬权
作者众生及其死后的50年
单位作品
发表权、使用权和获得报酬权
50年
公民软件产品
署名权、修改权
无限制
发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权
作者终生及其死后50年
单位软件产品
发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权
50年
注册商标
有效期10年,注册人死亡或倒闭1年后未转移注销
10年
发明专利权
保护期为20年
实用新型和外观设计专利权
保护期为10年
商业秘密
不确定
知识产权人确定(3星)
职务作品
作品
软件
专利
非职务作品
作品软件
商标
专利
侵权判断(4星)
适用场景
中国公民、法人或其他组织的作品,不论是否发表,都享有著作权
开发软件所用的思想、处理过程、操作方法或者教学概念不受保护
著作权法不适用于法律、法规,国家机关的决议、决定、命令和其他具有立法、行政、司法性质的文件,及其官方正式译文
常见侵权与合理引用区分
不侵权
个人学习、研究或者欣赏;适当引用;公开演讲内容;用于教学或科学研究;复制馆藏作品;免费表演他人作品;室外公共场所艺术品临摹、绘画、摄影、录像;将汉语作品译成少数民族语言作品或盲文出版
侵权
未经许可,发表他人作品;未经合作作者许可,将与他人合作创作的作品当作自己单独创作的作品发表;未参加创作,在他人作品署名;歪曲、篡改他人作品;剽窃他人作品;使用他人作品,未付报酬;未经出版者许可,使用其出版的图书、期刊的版式设计
标准化(1星)
标准的分类
国际标准:ISO、IEC等国际标准化组织
国家标准:GB-中国、ANSI-美国、BS-英国、JIS-日本
区域标准:又称为地区标准,如PASC-太平洋地区标准会议、CEN-欧洲标准委员会、ASAC-亚洲标准咨询委员会、ARSO-非洲地区标准化组织
行业标准:GJB-中国军用标准、MIT-S--美国军用标准、IEEE--美国电气电子工程师协会
地方标准:国家的地方一级行政机构制订的标准
企业标准
项目规范
标准代号的识别
国际、国外标准代号:标准代号+专业类号+顺序号+年代号
我国国家标准代号:强制性标准代号为GB、推荐性标准代号为GB/T、指导性标准代号为GB/Z、实物标准代号GSB
行业标准代号:由DB加上省级行政区代码的前两位
企业标准代号:由Q加上企业代号组成