1、架构体现在组件中的一个系统的基本组织、彼此的关系和环境的关系及指导它的设计和发展的原则
2、系统是组织起来完成某一特定功能或一组功能的组件集
3、环境或者上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的环境和设置
4、任务是由一个或多个利益相关者通过系统达到一些目标的一个用途或操作
1、解决相对复杂的需求分析问题
2、解决非功能属性在系统占据重要位置的设计问题
3、解决生命周期长、扩展性需求高的系统整体结构问题
4、解决系统基于组件需要的集成问题
5、解决业务流程再造难的问题
1、分层架构(Layered Architecture):最常见的软件架构、事实上的标准架构,最常见分层:表现层(Presentation Layer)、业务层(Business Layer)、持久层(Persistence Layer)、数据库(Database Layer)
2、事件驱动架构:通过事件进行通信的软件架构,分成4个部分:事件队列,分发器、事件通道、事件处理器
3、微核架构:又称为插件架构,指软件的内核相对较小,主要功能和业务逻辑都通过插件实现
4、微服务架构:是服务导向架构,每个服务是一个独立的部署单元,这些单元都是分布式的,互相解耦,通过远程通行协议联系,分成三种模式:RESTful API模式、RESTful 应用模式、集中消息模式
5、云架构:主要解决扩展性和并发的问题,最容易扩展的架构,分成两部分:处理单元、虚拟中间件
根据建模侧重点不同,可以讲软件架构模型分成:结构模型、框架模型、动态模型、过程模型
1、掌握业务领域的知识
2、掌握技术知识
3、掌握设计技能
4、具备编程技能
5、具备沟通能力
6、具备决策能力
7、知道组织策略
8、应是谈判专家
1、战略规划能力
2、业务流程建模能力
3、信息数据架构能力
4、技术架构设计和实现能力
5、应用系统架构的解决和实现能力
6、基础IT知识及基础设施、资源调配的能力
7、信息安全技术支持与管理保障能力
8、IT审计、治理与基本需求的分析和获取能力
9、面向软件系统可靠性与系统生命周期的质量保障服务能力
10、对新技术与新概念的理解、掌握和分析能力
1、作为一名技术领导者
2、作为开发人员
3、作为系统综合者
4、具备企业级思维
5、具备战略技术专家的权衡思维与战术思维
6、具备良好的沟通能力
1、处理器:CISC(复杂指令集)、RISC(精简指令集)
2、存储器:按照与处理器的物理距离:片上缓存、片外缓存、主存、外存
3、总线:按照总线在计算机中的位置划分:内总线、系统总线、外部总线,也有并行总线、串行总线
4、接口:指同一计算机不同功能层之间的通信规则
5、外部设备:也称为外围设备,常见的包括:所有的输入输出设备、部分存储设备
通常分为:系统软件和应用软件
操作系统的特征:并发性、共享性、虚拟性、不确定性
操作系统的分类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、微型计算机操作系统、嵌入式操作系统
数据库的分类:按照存储体系分,关系型数据库、键值数据库、列存储数据库、文档数据库、搜索引擎数据库
大型数据库管理系统的特点
1、基于网络环境的数据库管理系统。可以用于C/S结构的数据库应用系统,也可以用于B/S结构的数据库应用系统
2、支持大规模的应用。
3、提供的自动锁功能使得并发用户可以安全而高效的访问数据
4、可以保证系统的高度安全性
5、提供方便而灵活的数据备份和恢复方法及设备镜像功能,还可以利用操作系统提供容错功能,确保设计良好的应用中的数据在发生意外的情况下可以最大限度地被恢复
6、提供多种维护数据完整性的手段
7、提供了方便易用的分布式处理功能
文件的类型:
1、按文件的性质和用途分类:系统文件、库文件、和用户文件
2、按信息保存期限分类:临时文件、档案文件和永久文件
3、按文件的保护方式分类:只读文件、读/写文件、可执行文件和不保护文件
4、UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)
常用的文件类型:FAT、VFAT、NTFS、Ext2、HPFS
文件的逻辑结构:
1、有结构的记录式文件,由一个以上的记录构成的文件
2、无结构的流式文件,由一串顺序字符流构成的文件
文件的物理结构:
1、连续结构,也叫顺序结构
2、链接结构
3、索引结构
4、多个物理块的索引表
常用的协议:LAN、WAN、无线网协议和移动网协议,互联网使用TCP/IP协议簇
中间件分类:
1、通信处理(消息)中间件
2、事务处理(交易)中间件
3、数据存取管理中间件
4、Web服务器中间件
5、安全中间件
6、跨平台和架构的中间件
7、专用平台中间件
构件又称为组件,是一个自包容、可复用的程序集。
1、软件构件的组装模型
2、商用构件标准规范:CORBA、J2EE、DNA 2000
1、通用软件
2、专用软件
嵌入式系统的组成:嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件、应用软件组成
嵌入式系统的特点:专用性强、技术融合、软硬一体软件为主、比通用计算机资源少、程序代码固化在非易失存储器中、需专门开发工具和环境、体积小价格低工艺先进等、对安全性和可靠性的要求高
嵌入式系统分类:实时系统、安全悠关系统
嵌入式系统的最大特点:系统的运行和开发在不同环境中进行
从现代嵌入式系统分:硬件层、抽象层、操作系统层、中间件层、应用层
嵌入式软件的主要特点:可裁剪性、可配置性、强实时性、安全性、可靠性、高确定性
计算机网络的功能:数据通信、资源共享、管理集中化、实现分布式处理、负荷均衡
网络有关指标:
1、性能指标(速率、带宽、吞吐量、时延、往返时间、利用率)
2、非性能指标(费用、质量、标准化、可靠性、可扩展性、可升级性、易管理性、可维护性)
信道容量:信道的最大传输速率
C = B ∗ log 2 ( 1 + S N ) C=B*\log_2(1+\dfrac{S}{N}) C=B∗log2(1+NS)
C 代表信道容量,单位是b/s
B代表信号带宽,单位是Hz
S代表信号平均功率,单位是W
N代表噪声平均功率,单位是W
S/N代表信噪比,单位是dB(分贝)
提升信道容量可以使用比较大的带宽,降低信噪比;也可以使用比较小的带宽,升高信噪比
发信机进行的信号处理包括信源编码、信道编码、交织、脉冲成形和调制
收信机进行的信号处理包括解调、采样判决、去交织、信道翻译码、信源译码
1、信源编码:将模拟信号进行模数转换,再进行压缩编码(去除冗余信息),最后形成数字信号
2、信道编码:信道编码通过增加冗余信息以便在接收端进行检错和纠错,解决信道、噪声和干扰导致的误码问题,一般只能纠正零星的错误,对于连续的误码无能为力
3、交织:为了解决连续误码的问题
4、脉冲成形:为了减小带宽需求,将发送数据转换成合适的波形
5、调制:将信息承载到满足信号要求的高频载波信号的过程
复用技术:指在一条信道上同时传输多路数据的技术
多址技术:指在一条线上同时传输多个用户数据的技术
5G通信:
1、基于OFDM优化的波形和多址接入
2、实现可扩展的OFDM间隔参数配置
3、OFDM加窗提高多路传输效率
4、灵活框架设计
5、大规模MIMO
6、毫米波
7、频谱共享
8、先进的信道编码设计
网络按照网络的覆盖区域和通信介质等特征来分:局域网(LAN)、无线局域网(WLAN)、城域网(MAN)、广域网(WAN)和移动通信网
局域网:
1、网络拓扑(星状结构、树状结构、总线结构、环形结构、网状结构)
2、以太网技术(以太网帧结构、最小帧长、最大传输距离、流量控制)
无线局域网:
1、WLAN标准(802.11n新标准,可达200Mb/s以上)
2、WLAN拓扑结构(点对点型、HUB型、完全分布型)
广域网:
1、广域网相关技术(同步光网络、数字数据网、帧中继、异步传输技术)
2、广域网特点(主要提供面向数据通信的服务、覆盖范围广、通信距离远、没有固定的拓扑结构、由电信部门或公司组件,有偿提供)
3、广域网分类(公共传输网络、专用传输网络、无线传输网络)
城域网:通常分为,核心层、汇聚层、接入层
网络设备:集线器、中继器、网桥、交换机、路由器、防火墙等
OSI网络体系结构(从下往上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
交换机功能:
1、集线功能,提供大量可供线缆连接的端口达到部署星状拓扑网络的目的
2、中继功能,在转发帧时重新产生不失真的电信号
3、桥接功能,在内置的端口上使用相同的转发和过滤逻辑
4、隔离冲突域功能,将部署好的局域网分为多个冲突域,而每个冲突域都有自己独立的带宽,以提高交换机整体带宽利用效率
路由协议:内部网关协议(IGP)和外部网关协议(EGP)
网络工程:网络建设工程可分为网络规划、网络设计、网络实施三个环节
计算机语言主要由一套指令组成,而这种指令一般包括表达式、流程控制和集合三大部分内容。
表达式包含变量、常量、字面量和运算符。
流程控制包括分支、循环、函数和异常。
集合包含字符串、数组、散列表等数据结构
计算机语言的分类
1、机器语言(一种二进制代码,一条指令包含:操作码、操作数的地址、操作结果的存储地址、下条指令的地址)
2、汇编语言(有3种语句:指令语句、伪指令语句、宏指令语句)
3、高级语言(C、C++、Java)
4、建模语言(UML-UML提供了13种图:类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图、组合结构图、包图、交互概览图、计时图),(5种视图:用例视图、逻辑视图、进程视图、实现视图、部署视图)
5、形式化语言
软件生命周期:可行性分析、需求分析、体系结构设计、详细设计、编码和测试发布
媒体可分为:
1、感觉媒体:如视、听觉、触觉等
2、表示媒体:如图像、声音、视频等
3、表现媒体:如键盘、鼠标、扫描仪、显示器等
4、传输媒体:如电缆、光缆等
多媒体的重要特征:
1、多维化
2、集成性
3、交互性
4、实时性
多媒体系统的组成:
1、多媒体硬件:计算机主要配置和外部设备以及各种外部设备的控制接口
2、多媒体软件:多媒体驱动软件、多媒体操作系统、多媒体数据处理软件、多媒体创作工具软件和多媒体应用软件等
系统工程师运用系统方法,对系统进行规划、研究、设计、制造、试验和适用的组织管理技术
系统工程方法的特点:整体性、综合性、协调性、科学性、实践性
系统工程流程的7个一般生命周期阶段:
1、探索性研究阶段
2、概念阶段
3、开发阶段
4、生产阶段(目的是生产系统并进行检验和验证)
5、使用阶段(目的是运行系统以满足用户需求)
6、保障阶段(目的是提供持续的系统能力)
7、退役阶段(目的是存储、归档或退出系统)
性能指标:
1、计算机的性能指标:时钟频率(主频)、运算速度、运算精度、内存的存储容量、存储器的存取周期、数据处理速率(PDR)、吞吐率、各种响应时间、各种利用率、RASIS特性(可靠性、可用性、可维护性、完整性、安全性)、平均故障响应时间、兼容性、可扩充性和性能价格比
2、路由器的性能指标
3、交换机的性能指标
4、网络的性能指标
5、操作系统的性能指标
6、数据库管理系统的性能指标
7、Web服务器的性能指标
性能指标计算:方法由定义法、公式法、程序检测法、仪器检测法
信息系统的5个基本功能:输入、存储、处理、输出和控制
信息系统的发展:
诺兰模型:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段、成熟阶段
信息系统的分类:
传统的信息系统分为:业务(数据)处理系统、管理信息系统(MIS)、决策支持系统(DSS)、专家系统(ES)、办公自动化系统(OAS)等5类
信息系统的生命周期:
1、产生阶段
2、开发阶段(总体规划、系统分析、系统设计、系统实施、系统验收阶段)
3、运行阶段
4、消亡阶段
信息系统建设原则:
1、高层管理人员介入原则
2、用户参与开发原则
3、自顶向下规划原则
4、工程化原则(创新性原则、整体性原则、发展性原则、经济性原则)
信息系统开发方法:
业务处理系统(TPS)的功能:
对企业管理中日常事务所发生的数据进行输入、处理和输出
TPS的数据处理周期由以下5个阶段构成:数据输入、数据处理、数据库的维护、文件报表的生成和查询处理
管理信息系统(MIS):
在TPS基础上引进大量管理方法对企业整体信息进行处理,并利用信息进行预测、控制、计划、辅助企业全面管理的信息系统
管理信息系统由四大部件组成:信息源、信息处理器、信息用户、信息管理者
决策支持系统(DSS)
功能:
1、用来整理和提供本系统与决策问题有关的各种数据
2、能及时收集和提供有关各项活动的反馈信息,包括系统内核与系统相关的信息
3、要尽可能地收集、存储和及时提供与决策有关的外部信息
4、对各种与决策有关的模型具有存储和管理的能力
5、提供对常用的数学方法、统计方法和运筹方法的存储和管理
6、能兑各种数据、模型、方法进行有效管理,为用户提供查找、变更、增加、擅长的等操作功能
7、运用所提供的模型和方法对数据进行加工,并得出有效支持决策的信息
8、具有人-机对话接口和图形加工、输出功能
9、应支持分布式使用方法,提供有效的传输功能,以保证分散在不同地点的用户能共享系统所提供的模型、方法和可共享的数据
特点:
1、面向决策者,系统在开发中遵循的需求和操作是设计系统的依据和原则
2、支持对半结构化问题的决策
3、辅助决策者,支持决策者
4、体现决策过程的动态性
5、提倡交互式处理
组成:
1、数据的重组和确认
2、数据字典的建立
3、数据挖掘和智能体
4、模型建立
专家系统(ES)
特点:
1、超越时间限制
2、操作成本低廉
3、易于传递与赋值
4、处理手段一致
5、善于克服难题
6、适用特定领域
组成:
1、知识库
2、综合数据库
3、推理机
4、知识获取
5、解释程序
6、人机接口
办公自动化系统(OAS)
功能:
1、事务处理
2、信息管理
3、辅助决策
组成:
1、计算设备
2、办公设备
3、数据通信及网络设备
4、软件系统
企业资源规划(ERP)
基本模块:
1、生产预测
2、销售管理(计划)
3、经营计划(生产计划大纲)
4、主生产计划
5、物料需求计划
6、能力需求计划
7、车间作业计划
8、采购与库存管理
9、质量与设备管理
10、财务管理
11、ERP有关扩展应用模块
企业信息化方法:
1、业务流程重构方法
2、核心业务应用方法
3、信息系统建设方法
4、主题数据库方法
5、资源管理方法
6、人力资源投资方法
一、信息安全5要素:机密性、完整性、可用性、可控性、可审查性
二、信息安全范围包括:设备安全、数据安全、内容安全、行为安全
三、信息存储安全:信息使用的安全(如用户的标识与验证、用户存取权限限制、安全问题跟踪等)、系统安全监控、计算机病毒防治、数据的加密和防治非法的攻击等
1、信息使用的安全
2、系统安全监控
3、计算机病毒防治
四、网络安全
1、网络安全漏洞(物理安全性、软件安全漏洞、不兼容使用安全漏洞、选择合适的安全哲理)
2、网络安全威胁(非授权访问、信息泄露或丢失、破坏数据完整性、拒绝服务攻击)
3、安全措施的目标(访问控制、认证、完整性、审计、保密)
框架通常由技术体系、组织机构、管理体系共同构建
1、技术体系涉及:基础安全设备、计算机网络安全、操作系统安全、数据库安全、终端设备安全等
2、组织机构体系:由机构、岗位和人事机构三个模块构成一个体系
3、管理体系:是信息系统安全的灵魂,由法律管理、制度管理和培训管理组成
对称密钥加密算法:加密密钥和解密密钥是相同的,DES、IDEA、AES
非对称密钥加密算法:加密密钥和解密密钥不相同,RSA
公钥加密,私钥解密,可实现保密通信;私钥加密,公钥解密可实现数字签名
公钥加密体制的密钥管理:公开发布、公用目录、公钥证书
访问控制的基本模型:主体、客体、控制策略
访问控制的实现技术:访问控制矩阵、访问控制表、能力表、授权关系表
数字签名:
A向B发送签名消息P:
1、B可以验证消息P确实来源于A
2、A以后不能否认发送过P
3、B不能编造或改变消息P
一、密钥生成需要考虑的因素:增大密钥空间、选择强钥、密钥的随机性
二、拒绝服务攻击与防御
1、传统拒绝服务攻击的分类:
消耗资源、破坏或更改配置信息、物理破坏或改变网络部件、利用服务程序中的处理错误使服务失效
2、分布式拒绝服务攻击DDoS
被DDoS攻击后的现象:
3、拒绝服务攻击的防御方法
4、欺骗攻击与防御
5、端口扫描
三、系统漏洞扫描
1、基于网络的漏洞扫描
2、基于主机的漏洞扫描(优点:扫描的漏洞数量多、集中化管理、网络流量负载小)
一、计算机信息系统安全保护等级
1、用户自主保护等级
2、系统审计保护级
3、安全标记保护级
4、结构化保护级
5、访问验证保护级
二、安全风险管理
在风险评估实施前,应考虑内容:
1、确定风险评估的范围
2、确定风险评估的目标
3、建立适当的组织结构
4、建立系统性的风险评估方法
5、获得最高管理者对风险评估策划的批准
风险计算过程如下:
1、对信息资产进行识别,并对资产赋值
2、对威胁进行分析,并对威胁发生的可能性赋值
3、识别信息资产的脆弱性,并对弱点的严重程度赋值
4、根据威胁和脆弱性计算安全事件发生的可能性
5、结合信息资产的重要性和发生安全事件的可能性,计算信息资产的风险值
一、软件过程模型
1、瀑布模型
特点:前一个阶段工作的输出结果,是后一个阶段工作的输入
缺点:
原型模型后续,按照原型的作用不同,分抛弃型原型和演化型原型
3、螺旋模型
是在快速原型的基础上扩展而成,这种模型把整个软件开发流程分成多个阶段,每个阶段都有4个部分组成,适用于大型软件开发
二、敏捷模型
1、敏捷方法
特点:适应性和预设性(使用反馈机制对不可预测的过程进行控制)、面向人而非面向过程(提倡面对面交流)
核心思想:适应性非预测型、以人为本,非以过程为本、迭代增量的开发过程
主要的敏捷方法:
三、统一过程模型(RUP)
RUP是一种重量级过程,一个二维的软件开发模型,有9个核心工作流:
RUP划分软件开发生命周期,每个循环生成产品的一个新版本,每个循环由4个连续的阶段,每个阶段完成确定的任务,4个阶段:
RUP核心概念:
RUP的特点:以体系结构为中心、迭代和增量的软件开发过程
四、软件能力成熟度模型
5个成熟度等级:
软件需求3个层次:
需求工程是指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述待开发系统及其特征和相关约束。需求工程覆盖了体系结构设计之前的各项开发活动,主要包括分析客户要求、对未来系统的各项功能性及非功能性需求进行规格说明,目标是:确定客户需求,定义设想中系统的所有外部特征。
需求活动的阶段:需求获取、需求分析、形成需求规格(需求文档化)、需求确认与验证、需求管理。
需求管理活动在形成需求文档初稿时就开始。
强调内容如下:
1、控制对需求基线的变动
2、保持项目计划与需求一致
3、控制单个需求和需求文档的版本情况
4、管理需求和联系链,或管理单个需求和其他项目可交付产品之间的依赖关系
5、跟踪基线中的需求状态
一、需求获取
需求获取参考步骤:
1、开发高层的业务模型
2、定义项目范围和高层需求
3、识别用户角色和用户代表
4、确定目标系统的业务工作流
5、需求整理与总结(功能需求、性能需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求等)
需求获取方法:
1、用户面谈
2、需求专题讨论会(优点:协助建立一支高效的团队,围绕项目成功的目标、所有的风险承担人都畅所欲言、促进风险承担人和开发团队之间达成共识、揭露和解决那些妨碍项目成功的行政问题、能够很快地产生初步的系统定义、可以有效地解决不同涉众之间的需求冲突)
3、问卷调查
4、现场观察
5、原型化方法
6、头脑风暴法
二、需求变更
需求变更管理过程:
1、问题分析和变更描述
2、变更分析和成本计算
3、变更实现
常见的需求变更策略:
1、所有需求变更必须遵循变更控制过程
2、对于获得批准的变更,不应该做设计和实现工作
3、变更应该由项目变更控制委员会决定实现哪些变更
4、项目风险承担者应该能够了解变更的内容
5、绝不能充项目配置库中删除或者修改变更请求的原始文档
6、每一个集成的需求变更必须能跟踪到一个经核准的变更请求,以保持水平可追踪性
变更控制委员会做出决策的过程及操作步骤:
1、制定决策
2、交流情况
3、重新协商约定
三、需求追踪
需求跟踪提供了由需求到产品实现整个过程范围的明确查阅能力,目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。
需求跟踪的两个方式:
1、正向跟踪(产品需求规格说明书)
2、逆向跟踪
一、结构化方法
结构化分析:给我一组帮助系统分析人员产生功能规约的原理与技术
步骤:
1、分析业务情况,做出反映当前物理模型的数据流图(DFD)
2、推导出等价的逻辑模型DFD
3、设计新的逻辑系统,生成数据字典和基元描述
4、建立人机接口,提出可供选择的目标系统物理模型的DFD
5、确定各种方案的成本和风险等级,据此对各种方案进行分析
6、选择一种方案
7、建立完整的需求规约
结构化设计:面向数据流的设计方法
结构化编程:采用自顶向下、逐步求精的设计方法,各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口和一个出口
数据库设计:内容包括,需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护
二、面向对象方法
以用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程,主要包括需求分析、系统分析、系统设计和系统实现
面向对象分析方法(OOA)
面向对象分析:
OOA原则:抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析
基本步骤:确定对象和类、确定结构、确定主题、确定属性、确定方法
面向对象设计(OOD):
OOD中,类可以分为:实体类、控制类、边界类
面向对象编程(OOP):
基本特点:封装、继承、多态
数据持久化和数据库:
一般会引入持久层,专注于实现数据持久化,将数据使用者和数据实体相关联,实现了数据处理层内部的业务逻辑和数据逻辑的解耦
一、测试方法
以测试过程中程序执行状态为依据可分为静态测试(ST)和动态测试(DT)
以具体实现算法细节和系统内部结构的相关情况为根据可分为黑盒测试、白盒测试和灰盒测试
从程序执行的方式来分类,人工测试和自动化测试
二、测试阶段
1、单元测试
2、集成测试
3、系统测试(功能测试、性能测试、验收测试、压力测试等)
净室工程,通过第一次正确地书写代码增量,并在测试前验证它们的正确性,来避免对成本很高的错误消除过程的依赖
理论基础:函数理论和抽样理论
技术手段:统计过程控制下的增量式开发、基于函数的规范与设计、正确性验证、统计测试和软件认证
CBSE是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径
用于CBSE的构件具备的特征:可组装性、可部署性、文档化、独立性、标准化
CBSE过程的主要活动:
1、系统需求概览
2、识别候选构件
3、根据发现的构件修改需求
4、体系结构设计
5、构件定制与适配
6、组装构件,创建系统
构件组装:顺序组装、层次组装、叠加组装
一、软件进度管理
工作分解结构(WBS)
WBS的要求:
1、WBS的工作包是可控和可管理的,不能过于复杂
2、任务分解也不能过细,一般原则WBS的树形结构不超过6层
3、每个工作包要有一个交付成果
4、每个任务必须明确定义的完成标准
5、WBS必须有利于责任分配
任务活动图
工作分解后,得到一组活动任务,对每个活动进行定义,并确定活动之间关系,也就是活动执行的前后顺序,根据活动顺序就可以得到对应的任务活动图。
二、软件配置管理
核心内容是版本控制和变更控制
三、软件质量管理
从管理角度,将影响软件质量的因素分为:产品运行、产品修改、产品转移
四、软件风险管理
主要目标是预防风险,在软件项目风险管理中,要辨识风险,评估出现的概念和产生的影响,建立一个规划来管理风险
数据库的基础结构是数据模型,数据模型的三要素是数据结构、数据操作和数据的约束条件
数据库三级模式:视图层、逻辑层、物理层
从数据库管理系统的角度分:外模式、概念模式、内模式
一、关系数据库的基本术语
关系模式主属性上加实下划线,表示主码属性;关系模式属性上加虚下划线,表示外码属性
二、关系运算
1NF:关系模式R的每个属性值都是不可分的原子值
2NF:消除非主属性对码(候选键)的部分依赖
3NF:消除非主属性对码的传递依赖
BCNF:消除主属性对码的传递依赖
4NF:属性间不允许有非平凡且非函数依赖的多值依赖
如果考虑函数依赖,关系模式最高规范是BCNF,如果考虑多值依赖,最高规范是4NF
一、数据库设计步骤
1、用户需求分析,使用一定的辅助工具对应用对象的功能、性能、限制等进行科学分析
2、概念结构设计,是对信息的分析和定义,如视图模型化、视图分析和汇总,理想工具是E-R图
3、逻辑结构设计,将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,是物理结构设计的基础,包括模式初始设计、子模式设计、应用程序设计、模式评价以及模式求精
4、物理结构设计,是逻辑模型在计算机中的具体实现
5、数据库实施阶段
6、数据库运行和维护阶段
二、数据需求分析
需求分析阶段的任务:综合各个用户的应用需求,对现实世界要处理的对象(组织、部门和企业等)进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,收集支持系统目标的基础数据及处理方法
三、概念结构设计
E-R图对需求分析阶段得到的数据进行分类、聚集和概括,确定实体、属性和联系,设计工作步骤包括:选择局部应用、逐一设计分E-R图、E-R图合并
四、逻辑结构设计
概念结构设计的基础上进行数据模型设计,比如层次模型、网状模型和关系模型。该阶段主要工作包括确定数据模型、将E-R图转换为指定的数据模型、确定完整性约束和确定用户视图
E-R图的联系:一对一,一对多,多对多(必须新增联系)
五、物理设计
主要工作步骤:确定数据分布、存储结构和访问方式
六、数据库实施
在计算机上建立实际的数据库结构,数据加载,进行试运行和评价的过程
七、数据库运行维护
主要内容包括对数据库性能的监测和改善、故障恢复、数据库的重组和重构
库函数级别访问接口:数据库提供的最底层的高级程序语言访问数据接口,如OCI
嵌入SQL访问接口:嵌入式SQL是一种将SQL语句直接写入某些高级程序语言
通用数据接口标准:ODBC(开放数据库连接)解决异构数据库间数据共享
ORM访问接口:对象关系映射(ORM)用于实现面向对象编程语言里不同类型系统数据之间的转换,ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象与关系数据库相互映射,解决数据库与程序之间的异构性
NoSQL数据库分类:
NoSQL 特点:易扩展、大数据量,高性能、灵活的数据模型、高可用
一、软件架构设计与生命周期
二、软件架构的重要性
基于体系结构的软件设计(ABSD)方法,是由体系结构驱动的,即由构成体系结构的商业、质量和功能需求的组合驱动的。有3个基础:功能的分解、通过选择体系结构风格来实现质量和商业需求、软件模板的使用。
ABSD 是一个自顶向下,递归细化的方法。
一、开发模型
ABSD模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现和演化6个子过程。
三、体系结构文档化
文档是在系统演化的每一个阶段,系统设计与开发人员的通信媒介,是为验证体系结构设计和提炼或修改这些设计(必要时)所执行预先分析的基础。
体系结构文档化过程的主要输出结果:体系结构规格说明、测试体系结构需求的质量设计说明书
四、体系结构复审
复审的目的是标识潜在的风险,及早发现体系结构设计中的缺陷和错误
五大架构风格 | 子风格 |
---|---|
数据流风格 | 批处理、管道-过滤器 |
调用/返回风格 | 主程序/子程序、面向对象、层次结构 |
独立构件风格 | 进程通信、事件驱动系统(隐式调用) |
虚拟机风格 | 解释器、规则系统 |
仓库风格 | 数据库系统、黑板系统、超文本系统 |
优点 | 缺点 | 实例 |
---|---|---|
1、松耦合【高内聚-低耦合】 2、良好的重用性、可维护性 3、可扩展性【标准接口适配】 4、良好的隐蔽性 5、支持并行 |
1、交互性较差 2、复杂性较高 3、性能较差(每个过滤器都需要解析和合成数据) |
传统编译器 网络报文处理 |
独立构件风格包括:进程通信和事件系统风格
优点 | 缺点 | 特点 |
---|---|---|
1、松耦合 2、良好的重用性、可修改性和可扩展性 |
1、构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应。即使知道了事件注册哪些构件,也不能保证这些过程被调用的顺序 2、数据交换的问题 3、过程的语义必须依赖被触发事件的上下文约束 |
系统由若干子系统构成且成为一个整体;系统由统一的目标;子系统有主从之分;每一个子系统有自己的事件收集和处理机制 |
软件架构复用包括机会复用和系统复用。
可复用的资产包括:需求、架构设计、元素、建模与分析、测试、项目规划、过程方法和工具、人员、样品系统、缺陷消除
一、软件架构复用的基本过程
包括3个阶段:构造/获取可复用的软件资产,其次管理这些资产,最后针对特定的需求,从这些资产中选择可复用的部分,以开发满足需求的应用系统
DSSA的必备特征如下:
从功能覆盖的范围角度:
一、DSSA基本活动
二、参与DSSA的人员
领域专家、领域分析人员、领域设计人员、领域实现人员
二、DSSA建立过程
建立过程分为5个阶段:
软件系统质量属性是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。
从管理角度,可将影响软件质量的主要因素划分为:功能性、可靠性、易用性、效率、维护性和可移植性
功能性:适合性、准确性、互操作性、依从性、安全性
可靠性:容错性、易恢复性、成熟性
易用性:易学性、易理解性、易操作性
效率:资源特性、时间特性
维护性:可测试性、可修改性、稳定性、易分析性
可移植性:适用性、易安装性、一致性、可替换性
可以将软件系统的质量属性分为开发期质量属性和运行期质量属性。
开发期关注的质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性
运行期关注的质量属性:性能、安全性、可伸缩性、和操作性、可靠性、可用性、鲁棒性
一、面向架构评估的质量属性
架构评估过程中,评估人员说关注的是系统的质量属性,包括:
二、质量属性场景
质量属性场景主要关注:可用性、可修改性、性能、可测试性、易用性、安全性
系统架构评估的方法通常分为3类:基于调查问卷或检查表的方式、基于场景的方式、基于度量的方式
一、系统架构评估方法
SAAM(软件架构分析方法)方法:包括5个步骤,场景开发、架构描述、单个场景评估、场景交互和总体评估
ATAM(架构权衡分析法)方法:采用效率树对质量属性进行分类和优先级排序,其关注的质量属性:性能、安全性、可修改性和可用性
CBAM方法:在ATAM结束时开始,使用了ATAM评估的结果
其他评估方法:SAEM方法、SAABNet方法、SACMM方法、SASAM方法、ALRRA方法、AHP方法
二、ATAM 方法架构评估实践
其工作分为4个基本阶段:演示、调查和分析、测试和报告ATAM
软件可靠性是软件产品在规定的条件下和规定的时间区间内完成规定功能的能力
失效严重程度是对用户具有相同影响的失效集合
可靠性测试是对软件产品的可靠性进行调查、分析和评价的一种手段,其目的可以归纳为:
软件可靠性模型是为预计或估算软件的可靠性所建立的可靠性框图和数学模型,建立可靠性模型是为了将复杂系统的可靠性逐级分解为简单系统的可靠性,以便于定量预计、分配、估算和评价复杂系统的可靠性。
从技术角度看,影响软件可靠性的主要因素如下:
软件可靠性建模方法
一般由以下几部分组成:模型假设、性能度量、参数估计方法、数据要求
好的软件可靠性模型具有的特性:基于可靠的假设、简单、计算一些有用的量、给出为了失效行为的好的映射、可广泛应用
软件可靠性分类:种子法模型、失效率类模型、曲线拟合类模型、可靠性增长模型、程序结构分析模型、输入域分类模型、执行路径分析方法模型、非齐次泊松过程模型、马尔可夫过程模型、贝叶斯分析模型
软件可靠性管理
软件可靠性管理的内容包括软件工程各个阶段的可靠性活动的目标、计划、进度、任何和修正措施等
保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。
软件可靠性设计技术主要有:容错技术、检错设计、降低复杂度设计等技术
软件可靠性设计要遵循的原则:
容错设计技术
主要有恢复块设计、N版本程序设计、冗余设计
检错技术
检错技术实现代价低于容错技术和冗余技术,缺点是不能自动解决故障,出现故障后如果不进行人工干预,将导致软件系统不能正常运行
降低复杂度设计
软件复杂性分为模块复杂性和结构复杂性
系统配置技术
主要有双机热备技术、服务器集群技术
软件可靠性评价是指选用或建立合适的可靠性数学模型,运用统计技术和其他手段,对软件可靠性测试和系统运行期间收集的软件失效数据进行处理,并评估和预测软件可靠性的过程,该过程包含:选择可靠性模型、收集可靠性数据、可靠性评估和预测
架构演化的重要性:
软件架构的演化可以更好地保证软件演化的一致性和正确性,明显降低软件演化成本,使得软件系统演化更加便捷,有3方面原因:
对象演化、消息演化、复合片段演化、约束演化
3种典型的分类方法:
软件架构演化时期:设计时演化、运行前演化、有限制运行时演化、运行时演化
演化成本控制原则、进度可控原则、风险可控原则、主体维持原则、系统总体结构优化原则、平滑演化原则、目标一致原则、模块独立演化原则、影响可控原则、复杂性可控原则、有利于重构原则、有利于重用原则、设计原则遵从性原则、适应新技术原则、环境适应性原则、标准依从性原则、质量向好原则、适应新需求原则
根据演化过程是否已知可将评估过程分为:演化过程已知的评估、演化过程未知的评估
第一阶段:单体架构
第二阶段:垂直架构(应用、数据分离)
第三阶段:缓存改善网站性能
第四阶段:使用服务集群改善网站并发处理能力
第五阶段:数据库读写分离
第六阶段:使用反向代理和CDN加速网站响应
第七阶段:使用分布式文件系统和分布式数据库系统
第八阶段:使用NoSQL和搜索引擎
第九阶段:业务拆分
第十阶段:分布式服务
软件架构维护与演化密不可分,维护需要对软件架构的演化过程进行追踪和控制,以保障软件架构的演化过程能够满足需求,软件架构维护过程设计架构知识管理、架构修改管理、架构版本管理等
关键技术有:自然语言处理(NLP)、计算机视觉、知识图谱、人机交互(HCI)、虚拟现实或增强现实、机器学习
机器人分类:操作机器人、程序机器人、示教再现机器人、智能机器人、综合机器人
按照行业应用分:工业机器人、服务机器人、特殊领域机器人
边缘计算的业务本质:云计算在数据中心之外汇聚节点的延伸和演进,包括云边缘、边缘云、云化网关
边缘计算的特点:
边云协同:
云端擅长全局性、非实时、长周期的大数据处理与分析,能够在长周期维护、业务决策支撑等领域发挥优势
边缘计算更适用局部性、实时、短周期数据的处理与分析,能更好地支撑本地业务的实时智能化决策与执行
边云协同的能力与内涵涉及Laas、PaaS、SaaS各层面的全面协同,主要包括六种协同:资源协同、数据协同、智能协同、应用管理协同、业务管理协同、服务协同
数字孪生关键技术:建模、仿真、基于数据融合的数字线程
自上而下具有 软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)
在灵活性方面,依次增强,SaaS -> PaaS -> IaaS
方便性方面,依次增强,IaaS -> PaaS -> SaaS
云计算部署模式:公有云,社区云,私有云、混合云
信息系统架构的定义:
信息系统架构分类
信息系统常用4种架构模型
企业信息系统的总体框架
信息系统架构(ISA),具有多维度、分层次、高度集成化的模型
信息系统体系结构总体框架由:战略系统、业务系统、应用系统、信息基础设施
TOGAF是一种开放式企业架构框架标准,基于一个迭代的过程模型,支持最佳实践和一套可重用的现有架构资产,它可以让设计、评估、并建立组织的正确架构。
该框架通过以下四个目标帮助企业组织和解决所有关键业务需求:
TOGAF 包括六个组件:
框架核心思想:模块化架构、内容框架、扩展指南、架构风格
信息化特征:
易用性、健壮性、(平台化、灵活性、拓展性)、安全性、(门户化、整合性)、移动性
信息系统的生命周期:系统规划、系统分析、系统设计、系统实施、系统运行和维护
信息化工厂总体规划方法论:主要是关键成功因素法、战略目标集转化法、企业系统规划法、其他还有企业信息分析与集成技术、产出/方法分析、投资回收法、征费法、零线预算法、阶石法
软件体系结构贯穿于软件研发的整个生命周期内,具有重要的影响,从以下三方面来进行考察:
分层架构大部分会分成表现层(展示层)、中间层(业务层)、数据访问层(持久层)和数据层
表现层设计模式:MVC模式、MVP模式、MVVM模式
业务逻辑组件分为接口和实现类两个部分
数据访问模式:在线访问、DataAccess Object、Data Transfer Object(DTO)、离线数据模式、对象/关系映射
物联网层次分为:
底层用来感知数据的感知层,利用传感器、二维码、RFID等设备获取物体的信息
第二层是数据传输处理的网络层,即通过各种传感网络与互联网的融合,将对象当前的信息实时准确地传递出去
第三层是与行业需求结合的应用层,即通过智能计算、云计算等将对象进行智能化控制
从技术角度,云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点
云原生代码通常包括:业务代码、三方软件、处理非功能特性的代码
云原生架构原则
服务化原则、弹性原则、可观测原则、韧性原则、所有过程自动化原则、零信任原则、架构持续演进原则
主要架构模式
SOA 与微服务的区别:
从服务为中心的视角看,企业集成架构可划分为:业务逻辑服务、控制服务、连接服务、业务创新和优化服务、开发服务、IT服务管理
文档标准化、通信协议标准、应用程序统一登记与集成、服务质量
SOA 设计模式:服务注册表模式、ESB模式
参加的微服务设计模式:聚合器微服务设计模式、代理微服务设计模式、链式微服务设计模式、分支微服务设计模式、数据共享微服务设计模式、异步消息传递微服务设计模式等
微服务架构带来的主要问题:
双核心架构:
双核心通常指核心交换设备通常采用三层及以上交换机
各VLAN之间访问通过两台核心交换设备来完成,仅核心交换设备具备路由功能,接入设备仅提供二层转发功能
环型架构:
环形局域网由多台核心交换设备连接成双RPR动态弹性分组环,构建网络的核心。
RPR具备自愈保护功能,具备MAC层50ms自愈时间能力,RPR利用空间重用技术,使得环上的带宽有效利用。
RPR组件大规模局域网,多环之间只能通过业务接口互通,不能实现网络直接互通
层次局域网架构:
层次局域网(多层局域网)由核心层交换设备、汇聚层交换设备和接入层交换设备,以及用户设备等组成。
广域网网络架构
单核心广域网:通常由一台核心路由设备和各局域网组成
双核心广域网:通常由两台核心路由设备和各局域网组成
环形广域网:通常采用三台以上核心路由器设备构成路由环路,用以连接各局域网
半冗余广域网:由多台核心路由设备连接各局域网而形成
对等子域广域网:通过将广域网的路由设备划分成两个独立的子域,每个子域路由设备采用半冗余方式互连
层次子域广域网:将大型广域网路由设备划分成多个较为独立的子域,每个子域内路由设备采用半冗余方式互连,每个子域之间存在层次关系,高层次子域连接多个低层次子域
存储网络架构
常见NAS协议:公共Internet文件服务/服务器消息块,CIFS/SMB,网络文件系统(NFS)
常见SAN协议:光纤通道协议(FCP),Internet 小型计算机系统接口(iSCSI),以太网光纤通道(FCoE),基于光纤通道的非易失性内存标准(FC-NVMe)
NAS和SAN异同点:
都可以用于集中管理存储,并供多主机(服务器)共享存储,NAS通常基于以太网,SAN基于以太网或光纤通道,NAS注重易用性,易管理性、可扩展性和更低的总拥有成本(TCO),而SAN则注重高性能和低延迟
IPv4 和 IPv6网络共存过渡技术:双协议栈、隧道技术(ISATAP隧道、6to4隧道、4over6隧道、6over4隧道)、地址翻译机制
实施网络安全控制的相关技术:防火墙布设、VPN技术、访问控制技术、网络安全隔离、网络安全协议、网络安全审计
信息系统安全设计重点考虑:系统安全保障体系,信息安全体系架构
系统安全保障体系:
数据库完整性设计原则:
软件脆弱性包括的4个方面:
典型分类法:ISOS分类法、PA分类法、Landwehr分类法、Aslam分类法、Bishop分类法、IBM分类法
ISOS分类法:面向信息系统的安全和隐私方面分类,目的是帮助信息系统管理人员理解安全问题,并提高系统安全性提供相应信息
PA分类法:主要研究操作系统中与安全包含相关的缺陷
Landwehr分类法:基于缺陷的起因,引入的时间和分布的位置三个维度的分类,对于每个维度,可以更细致地多层次分类和描述
Aslam分类法:针对Unix操作系统中的安全保障,从软件生命周期的角度将其分为编码故障和突然故障两大类
Bishop分类法:针对信息安全领域的一种分类方法,描述一种针对Unix和网络相关脆弱性的分类方法
IBM分类法:以Landwehr分类法为分类框架的基础,以新出现的安全缺陷对其进行扩充和改造以适应现今脆弱性的变化
大数据处理系统面临挑战
大数据处理系统架构特征
Lambda架构用于同时处理离线和实时数据,可容错,可扩展的分布式系统,具备强鲁棒性和低延迟和持续更新。
Lambda架构分为三层:批处理层、加速层、服务层
批处理层核心功能:存储数据集和生成Batch View
主数据集中数据必须具备以下三个属性:数据是原始的、数据是不可变的、数据永远是真实的
Lambda架构优缺点:
优点:容错性好,查询灵活度高,易伸缩、易扩展
缺点:全场景覆盖带来的编码开销,针对具体场景重新离线训练一遍益处不大,重新部署和迁移成本很高
Kappa不同于Lambda同时计算和批计算并合并视图,其只会通过流计算一条的数据链路计算并产生视图。
Kappa架构原理:在Lambda上进行优化,删除Batch Layer架构,将数据通道以消息队列进行替代,依旧以流处理为主,数据在数据湖层面进行了存储,当需要进行离线分析或者再次计算时,将数据湖的数据再次经过消息队列重播一次即可。
从使用场景看,Kappa架构与Lambda架构的两点主要区别:
Lambda架构和Kappa架构对比
对比内容 | Lambda架构 | Kappa架构 |
---|---|---|
复杂度与开发、维护成本 | 需要维护两套系统(引擎),复杂度高、开发、维护成本高 | 只需要维护一套系统(引擎),复杂度低、开发、维护成本低 |
计算开销 | 需要一直运行批处理和实时计算,计算开销大 | 必要时进行全量计算,计算开销相对较小 |
实时性 | 满足实时性 | 满足实时性 |
历史数据处理能力 | 批式全量处理,吞吐量大,历史数据处理能力强 | 流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱 |