导图社区 软考-系统架构师-考点知识点
软考-系统架构师-考点知识点思维导图
编辑于2018-10-27 13:23:42系统架构师
计算机组成原理
流水线技术
周期:最耗时阶段的所花时间
执行总耗时=第 1 条指令的执行时间+(n-1) * 流水线周期
吞吐率
加速比
论文
摘要300-400字
正文2000-3000字
数据库
关系代数
σ选择,选择哪些行
π投影,选择哪些列
u并,相当于union
-差
R÷S除
X笛卡儿积 ,两个表列数相加
θ连接
条件连接
⋈自然连接
F+ = F依赖集 + 推导出来的依赖关系
范式
第一范式(1NF):每个字段不可再分
第二范式(2NF):若关系模式R是1NF,且所有的非主属性都完全依赖于主属性
第三范式(3NF): 如果关系模式R是2NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF
(4)BC范式(BCNF):若关系模式R是1NF,主属性对不含它的码完全函数依赖;没有属性完全函数依赖于一组非主属性
事务隔离级别
一级封锁协议(防止修改丢失)
二级封锁协议(防止修改丢失、读脏数据)
三级封锁协议(防止丢失修改、读脏数据、保证可重复读)
两段封锁协议(可能发生死锁)
数据仓库
和数据库的区别是覆盖所有时间的数据,数据库只是某一时刻的数据。组成:数据源、数据的存储于管理、OLAP服务器、前端工具
数据挖掘
和数据分析不同,是偏向发现一些不为人知、比较意外的规律。常用挖掘技术:关联分析、序列分析、分类、预测、聚类分析和时间序列分析
大数据
PB量级以上,大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)
嵌入式系统
嵌入式处理器种类
嵌入式微处理器(MPU)
微控制器(MCU)
又称单片机
数字信号处理器(DSP)
片上系统(SOC)
包含芯片和软件
嵌入式网络:现场总线网、家庭信息网、无线数据通信网、嵌入式Internet
特征
微型化
代码质量高
专业化
实时性强
可裁剪、可配置
常见嵌入式操作系统
VxWorks
Palm
Windows CE
Linux
计算机网络
网络模型
OSI:物理层(比特流)、链路层(帧)、网络层(数据包、IP)、传输层(端口)、会话层(三次握手)、表示层(数据格式、编码、压缩)、应用层
TCP/IP模型:网络接口层、网络互联层、传输层、应用层
网络协议
应用层协议
FTP:TCP之上,21端口传输控制信号,20端口传输文件内容 TFTP:简单文本传输协议,建立在UDP之上,超时重传,不提供授权认证 HTTP:TCP之上 SMTP:简单邮件传输协议,TCP之上,建模在FTP之上 DHCP:UDP之上 Telnet:TCP之上 SNMP:简单网络管理协议 MIME(Multipurpose Internet Mail Extensions)中文名为:多用途互联网邮件扩展类型
传输层协议
TCP、UDP
网络层协议
IP:无连接、不可靠 ARP:IP地址向MAC的转换 RARP:MAC向IP地址的转换 ICMP:发送错误时报告 IGMP:组播(多播)协议,用户视频会议、视频点播,一次性发送到多个IP IPv6:128位,8段,每段16位,压缩地址表示法:每段前缀0可以省略,连续为0的段可以用::双冒号表示,但是只能有一个双冒号
接入Internet方式:PSTN(电话线,速度低于64Kbps)、ISDN(电话线基础上构建,144Kbps)、ADSL(基于电话线,主要方式)、FTTx+LAN(光纤)、HFC(同轴+光纤,上行10Mbps)
网络互联设备
互联设备 工作层次 主要功能 中继器 物理层 强化信号,增加传输距离 网桥 数据链路层 实现物理层和数据链路层协议的转换 路由器 网络层 实现网络层及以下各层协议转换 网关 高层(4-7) 提供最底层到传输层及以上各层协议转换 集线器 物理层 多端口中继器 二层交换机 数据链路层 多端口网桥 三层交换机 网络层 带路由功能的二层交换机 四层交换机 高层(4-7) 带协议转换的交换机
交换技术:电路交换、报文交换、分组交换 网络工程:网络规划、网络设计、网络实施三个阶段 网络分层设计:核心层、汇聚层、接入层
网络存储技术
直接附加存储DAS:一个服务器+一个硬盘 网络附加存储NAS:专门的文件服务器,去掉了通用服务器的计算功能,仅仅提供文件系统功能。NFS和CIFS两类 存储区域网络SAN:通过专用交换机将磁盘阵列与服务器连接起来的高速专用子网。FC SAN(昂贵复杂)、IP SAN(廉价简单)
磁盘阵列raid
路由器管理距离
是一个从0-255的整数值,0是最可信赖的
系统性能评价
性能指标:时钟频率(主频)、高速缓存、运算速度、运算精度、内存容量、内存存储周期、响应时间(0.1、1、10)
MIPS:每秒执行百万指令
理论浮点峰值 = CPU 主频*CPU 每个时钟周期执行浮点运算的次数*系统中 CPU 数
响应时间
吞吐量
性能调整是一项循环进行的工作,包括收集、分析、配置和测试4个反复的步骤
负载均衡
http Location
DNS服务器
反向代理
普通代理方式是代理内部网络用户访问Internet上服务器的连接请求,反向代理方式是指以代理服务器来接受Internet上的连接请求
NAT
扩展负载均衡技术
信息系统
规划目标和范围
目标
一是从组织的战略出发,而不是从系统的需求出发
二是从业务的变革出发,而不是从技术的变革出发
范围
信息战略规划、信息资源规划、信息系统工程建设规划和企业资源计划( ERP)
规划方法
企业系统规划方法(Business System Planning,BSP)
战略数据规划方法和信息工程方法是在BSP方法的基础上发展起来的
BSP的主要目标是提供一个信息系统规划,用以支持企业短期的和长期的信息需要
实行BSP研究的前提是,在企业内有改善计算机信息系统的要求,并且有为建设这一系统而建立总的战略的需要。因而,BSP的基本概念与组织的信息系统的长期目标有关。
BSP方法的真正价值在于创造一种环境和提出初步的行动计划,使企业能根据这个计划对将来的系统和优先次序的改变做出积极响应,不至于造成设计的重大失误
BSP的经验说明除非得到了最高领导者和某些最高管理部门参与研究的承诺,否则不要贸然开始BSP的硏究
战略数据规划方法
就是指遵循数据库的规则,挖掘信息以及信息间的规律,经过科学的规划和设计,建立面向实际业务的数据库系统结构,以保证数据的准确性、一致性和安全性,增进信息共享,方便实际应用的过程
信息工程
信息化
企业资源“三流”:信息流,资金流,物流
四流是商流
企业门户
企业网站
功能简单,注重信息的单向传送,忽视用户与企业间、用户相互之间的信息互动
企业信息门户
不仅仅局限于建立一个企业网站,提供一些企业和产品/服务的信息,更重要的是要求企业能实现多业务系统的集成,能对客户的各种要求做出快速响应,并且能对整个供应链进行统一管理。企业员工、合作伙伴、客户、供应商都可以通过EIP非常方便地获取自己所需的信息。
企业知识门户
EKP的使用对象是企业员工,它的建立和使用可以大大提高企业范围内的知识共享,并由此提高企业员工的工作效率
企业应用门户
是企业信息系统的集成界面
企业应用集成(Enterprise Application Integration,EAI)
面向信息的集成技术
主要数据处理技术有数据复制、数据聚合和接口集成等。其中,接口集成仍然是一种主流技术
面向过程的集成技术
强调处理不同应用系统之间的交互逻辑,与核心业务逻辑相分离。在结构上,面向过程的集成方法在面向接口的集成方案之上,在该结构的底层,应用服务器、消息中间件提供了支持数据传输和跨过程协调的基础服务
面向服务的集成技术
基于SOA(Service Oriented Architecture,面向服务架构)和Web Service(Web服务)技术的应用集成是业务集成技术上的一次重要的变化,被认为是新一代的应用集成技术
政府信息化与电子政务
G2G(Government To Government,政府对政府)
G2E(Government To Employee,政府对公务员)
G2B(Government To Business,政府对企业)
G2C(Government To Citizen,政府对公民)
企业信息化与电子商务
参与电子商务的实体有四类
顾客(个人消费者或集团购买)
商户(包括销售商、制造商和储运商)
银行(包括发卡行和收单行)
认证中心
三种模式
B2B(Business To Business,企业对企业)
B2C(Business To Customer,企业对个人)
C2C(Customer To Customer,个人对个人)
信息化需求包含3个层次
战略需求
运作需求
技术需求
操作系统
设备管理
程序控制方式
中断方式
直接存储方式(DMA)
通道方式
虚设备和Spooling技术
软件架构设计(看)
架构视图
对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构
开放架构
可移植性
应用能在不同型号、机型的系统上运行
可互操作性
节点之间可以相互操作和资源共享
可裁剪性
低档机的应用可运行于高档机,高档机的应用经过裁剪可以运行在低档机上
易获得性
软件可以多方面获取
架构风格(看)
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm)。一个架构定义了一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而约束指出系统是如何将这些构件和连接件组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统
层次消息总线(Hierarchy Message Bus,HMB)
消息是构件之间通讯的唯一方式
该风格可以较好地刻画分布式并发系统,以及基于CORBA、DCOM和EJB规范的系统
调用/返回风格
主程序/子程序
所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据
面向对象风格
层次结构
层次系统组织成一个层次结构,每一层为上层服务,并作为下层的客户,内部的层只对相邻的层可见
独立构件风格
进程通信
事件系统
基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件
虚拟机风格
解释器
基于规则的系统
数据流风格
批处理序列
Windows dos
管道/过滤器
每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道
Unix/shell
传统编译器
C2(Component-Connector)
(1)系统中的构件和连接件都有一个顶部和一个底部。 (2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的。 (3)一个连接件可以和任意数目的其它构件和连接件连接。 (4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
客户/服务器(C/S)风格
两层
开发成本较高
客户端程序设计复杂
软件移植困难
软件维护和升级困难
客户端程序可以直接访问数据库服务器
三层
可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。这种结构被称为瘦客户机(thin client)
三层C/S架构是将应用功能分成表示层、功能层和数据层三个部分
B/S架构
浏览器/服务器(Browser/Server,B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器
B/S架构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能
在数据查询等响应速度上,要远远地低于C/S架构
B/S架构的数据提交一般以页面为单位,数据的动态交互性不强,不利于OLTP应用
B/S架构传播范围广及容易传播的特性
富互联网应用
为了弥补B/S架构存在的一些不足,提高用户体验,RIA(Rich Internet Application,富互联网应用)应运而生
Flash/Flex
Bindows。Bindow 是用Javascript和DHTML(Dynamic HTML,动态HTML)开发的Web窗体框架
Java
开发人员可以利用Java编写Applet代码,而且能够提供几乎所有编程语言所具备的完整灵活性。不过,在实际应用中,Applet的下载和执行性能较差,在不同操作系统上的执行也很不连贯
AJAX
Avalon
正交软件架构
结构清晰,易于理解
易修改,可维护性强
可移植性强,重用粒度大
仓库风格
在仓库(repository)风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行。控制原则的选取产生两个主要的子类。若输入流中某类时间触发进程执行的选择,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统
数据库系统
超文本系统
黑板系统
黑板系统的传统应用是信号处理领域,主要由三部分组成: (1)知识源。知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。 (2)黑板数据结构。黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。 (3)控制。控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。
语音识别、机器学习
架构评估
架构评估可以只针对一个架构,也可以针对一组架构。在架构评估过程中,评估人员所关注的是系统的质量属性
质量属性
功能性
完成系统期望功能的能力
性能
系统的响应能力,某个事件响应时间,或某段时间处理的事件个数
可用性
系统正常运行的时间比例
可修改性
能进行较高的性价比修改系统的能力
可维护性(maintainability)
可扩展性(extendibility)
结构重组(reassemble)
可移植性(portability)
可测试性
软件发现故障,在一定的时间和成本前提下,隔离并修复故障的功能
安全性
在对合法用户提供服务的同时,阻止对非法的用户提供服务
易用性
使用系统完成指定任务的难易程度
可靠性
可靠度
系统在规定的条件下、规定的时间内不发生失效的概率
失效率
运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率
架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患
关键的架构决策
敏感点
是指为了实现某种特定的质量属性,一个或多个构件所具有的特性
权衡点
是影响多个质量属性的特性,是多个质量属性的敏感点
3类主要的评估方式
基于调查问卷或检查表的方式
尽管基于调查问卷与检查表的评估方式相对比较主观,但由于系统相关的人员的经验和知识是评估软件架构的重要信息来源,因而它仍然是进行软件架构评估的重要途径之一。
CMU/SEI(carnegie mellon university/Software Engineering Institute,卡耐基梅隆大学的软件工程研究所)的软件风险评估过程采用了这一方式
基于场景的评估方式
基于场景的方式分析软件架构对场景的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度
主要应用在架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)和软件架构分析方法(Software Architecture Analysis Method,SAAM)中
ATAM可大致分为两个阶段。第一个阶段以架构为中心,重点是获取架构信息并进行分析;第二个阶段以项目干系人为中心,重点是获取项目干系人的观点,验证第一个阶段的结果。
与ATAM方法相比,SAAM比较简单,这种方法易学易用,进行培训和准备的工作量都比较少
基于度量的评估方式
度量是指为软件产品的某一属性所赋予的数值,如代码行数、方法调用层数、构件个数等。传统的度量研究主要针对代码,但近年来也出现了一些针对高层设计的度量,软件架构度量即是其中之一。
设计模式
设计模式是架构师的必须掌握的
创建型
抽象工厂(Abstract Factory)
一个工厂类,提供多个创建某一接口实现类的方法,新增工厂方法要修改原工厂类
工厂方法模式(Factory Method)
一个工厂接口,不同的工厂实现类创建不同的业务实现类,新增工厂方法只用新建一个工厂实现类
生成器模式(Builder)
又称建造者模式。用于创建一个复杂对象,需要设计众多参数,一个Builder内部类接收。如StringBuilder
原型模式(Prototype)
也就是对象克隆,clone、序列化深复制
单例模式(Singleton)
结构型
适配器模式(Adapter)
将一个接口转换为用户希望的另一个接口,不改变实现
接口适配器模式
适配器类空实现方法,实例化适配器时候才实现需要的方法
类适配器模式
继承原业务代码,实现新接口,让新接口具备原业务代码功能
对象适配器模式
适配器持有原业务代码对象,实例化时传入
桥接模式(Bridge)
使接口和实现分离开来,是他们可以独立变化,如DriverManager
组合模式(Composite)
组合成树形结构的层次结构,使得对整体和单个对象的操作变得一致 ,如:二叉树
装饰模式(Decorator)
动态的给实例添加其他功能,通过持有对象实例,继承原业务类+实现业务类实现的接口,重写业务方法,如IO类
外观模式(Facade)
又称门面模式。定义一个高层接口,为子系统的一组接口提供一致的外观,从而简化子系统的是使用
享元模式(Flyweight)
创建对象消耗很大,多个客户端可以共享一个对象。如连接池
代理模式(Proxy)
代理模式中,代理类对被代理的对象有控制权,决定其执行或者不执行。而装饰模式中,装饰类对代理对象没有控制权,只能为其增加一层装饰,以加强被装饰对象的功能,仅此而已
行为型
父类和子类
策略模式(Strategy)
定义一些列可以相互替换的算法,让算法独立于使用它们的用户,如算法
模板模式(Template Method)
定义一个算法框架,而将一些步骤延迟到子类实现,使得子类在不改变算法结构的基础上重新定义一些特定步骤
两个类之间
观察者模式(Observer)
在一对多关系中,当一个对象发生变化,依赖他的所有对象将得到通知实现从而自动更新
迭代器模式(Iterator)
提供一种方法顺序访问一个聚合对象中的各个元素,而不暴掠其内部表示
命令模式(Command)
命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能
责任链(Chain Of Responsibility)
使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止
类的状态
备忘录模式(Memento)
又称快照模式。备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态
状态模式(State)
允许一个对象在其内部状态改变的时候改变其行为。
通过中间类
解释器模式(Interpreter)
给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子
访问者模式(Visitor)
目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。
中介者模式(Mediator)
用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
SOA面向服务架构
UDDI(Universal Description,Discovery&Integration),UDDI用于Web服务注册和服务查找
WSDL(Web Service Description Language),WSDL用于描述Web服务的接口和操作功能
SOAP(Simple Object Access Protocol),SOAP为建立Web服务和服务请求之间的通信提供支持
BPEL(Business Process Execution Language For Web Services)面向Web 服务的业务流程执行语言,可将多个 Web 服务组合到一个新的复合服务
特定领域软件架构DSSA
四种角色:领城专家、领城分析师、领域设计人员和领域实现人员
基本活动包括
领域分析
主要目标是获得领域模型
领域设计
目标是获得DSSA
领域实现
目标是依据领域模型和DSSA开发和组织可重用信息
垂直域和水平域
DSSA和架构风格是互为补充的两种技术
以问题域为出发点的DSSA和以解决域为出发点的软件架构风格
架构设计与演化
实验原型阶段
软件开发组织需要构建一系列原型,与实际的最终用户一起进行讨论和评审
演化开发阶段
重点放在最终产品的开发上
基于架构的软件开发
基于软件架构的设计:它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。
架构需求、设计、文档化、复审、实现、演化等6个子过程
系统安全
数据安全
对称密钥加密算法:DES( Data Encryption Standard,数据加密标准)、 IDEA( International Data Encryption Algorithm,国际数据加密算法)、 Skipjack、 3DES、 GDES、 New DES、 Lucifer、 FEAL N、 LOKI 91、 RC4、 RC5 等 不对称密钥加密算法:RSA、背包密码、 McEliece、 Diffe Hellman、 Rabin、Ong Fiat Shamir、零知识证明的算法、椭圆曲线、 EIGamal 等。 散列函数:MD5(128位)、SHA(160位)、HMac(160位) 数字签名算法:RSA +MD5、 Fiat-Shamir、Guillon-Oucsquerrter、 DSA( Digital SignatureAlgorithm,数字签名算法)、椭圆曲线等 2004 年 8 月 28 日,十届全国人大常委会第十一次会议表决通过了电子签名法。这部法律规定,可靠的电子签名与手写签名或者盖章具有同等的法律效力,并于 2005 年 4 月 1日起施行 数字信封:对称密钥和数据一起发给接收方,使用对称加密要加密内容信息,使用非对称加密来加密对称密钥 数字证书内容:唯一标识证书所有者的名称、唯一标识证书签发者的名称、证书所有者的公开密钥、证书签发者的数字签名、证书的有效期及证书的序列号等;解决密钥是否合法的问题;X.509 数字证书
网络安全
防护技术
防火墙
可用来实现内部网(信任网)与外部不可信任网络(如因特网)之间或内部网的不同网络安全区域的隔离与访问控制,保证网络系统及网络服务的可用性。但无法对外部刻意攻击、内部攻击、口令失密及病毒采取有效防护
入侵检测
可以有效地防止所有已知的、来自内外部的攻击入侵,但对数据安全性等方面没有任何帮助
病毒防护
主要适用于检测、标识、清除系统中的病毒程序,对其它方面没有太多的保护措施
安全扫描
主要适用于发现安全隐患,而不能够采取防护措施
日志审计系统
可以在事后、事中发现安全问题,并可以完成取证工作,但无法在事前发生安全性攻击
PKI
认证
完整性
不可抵赖性
机密性
非技术阻力
法律法规不健全
执行力也不足
使用者水平参差不齐
我国互联网起步较晚
使用者心理接手程度
在被动攻击(passive attack)中,攻击者的目的只是获取信息,这就意味着攻击者不会篡改信息或危害系统。系统可以不中断其正常运行。常见的被动攻击包括:窃听和流量分析。 主动攻击(active attack)可能改变信息或危害系统。威胁信息完整性和有效性的攻击就是主动攻击。主动攻击通常易于探测但却难于防范,因为攻击者可以通过多种方法发起攻击。常见的主动攻击包括:篡改、伪装、重放、拒绝服务攻击
安全协议
IPSec(IP Security):该协议把密码技术应用在网络层,以向信息的发送方和接收方提供源地址验证、数据传输的完整性、存取控制、保密性等安全服务;在 IPv6 中, IPSec 协议是一个必备的组成部分,被强制实施;在 IPv4 中,它是一个可选的扩展协议 SSL:SSL 协议建立在传输层即 TCP 之上、应用层之下;常常用于增强 Web 服务的安全性 PGP协议:PGP( Pretty Good Privacy)是美国人 PhilZimmermann 于 1995 年提出的一套电子邮件加密方案。它可以用来对邮件加密以防止非授权者阅读,还能对邮件加上数字签名而使收信人可以确认邮件确实是由发送方发出的 身份认证技术:口令认证、公钥签名认证、持卡认证(比如IC卡)、生物特征认证(指纹、脸像、视网膜、掌纹)、动态口令认证(口令硬件)、PPP认证、RADIUS协议 访问控制技术:DAC、MAC、RBAC VPN技术 入侵检测系统(IDS) 安全网关(UTM)
法律法规
软件著作权中规定:开发软件所用的思想、处理过程、操作方法或者数学概念不受保护
著作权法规定:美术作品的著作权不随原作品所有权的转变而发生变化。所以M公司购买N画家的美术作品,著作权不归M公司,而归N画家。M公司将美术作品注册为商标,是侵犯了N画家著作权的
申请商标不代表拥有专利权,专利权必须单独申请
应用数学
图论
有向无环图(Directed Acycline Graph, DAG);AOV节点表示活动;AOE带权有向无环图,节点表示事件,边表示活动
最小生成树
普里姆(Prim)算法
“加点法”,每次迭代选择代价最小的边对应的点,加入到最小生成树中
克鲁斯卡尔(Kruskal)算法
“加边法”,初始最小生成树边数为0,每迭代一次就选择一条满足条件的最小代价边,加入到最小生成树的边集合里
最短路径
迪杰斯特拉(Dijkstra)算法
加点法,不断把最短路径点加入已知路径规划中,直到到达终点
关键路径
从开始结点到结束结点的最长路径为关健路径(临界路径)
求出每个节点的最早和最迟发生时间,当最早和最迟发生时间一样的节点为关键路径
运筹学
线性规划
图解法虽然直观,但当变量数多于三个以上时,它就无能为力了,这时需要使用单纯形法。
对策论
决策论
综合知识
软件架构设计30%-35%
软件工程15%-25%
案例分析
架构质量属性(必考)
设计模式
UML(重点)
架构风格(重点)
J2EE架构
应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序
三种Bean
MVC模式
系统开发
软件生命周期:可行性研究与计划、需求分析、概要设计、详细设计、实现、集成测试、确认测试、使用和维护
软件测试
从测试阶段上分,软件测试通常可分为单元测试(白盒测试)、集成测试和系统测试(黑盒测试)
集成测试计划一般在概要设计阶段完成
软件确认测试包括:内部测试、Alpha、Beta 和验收测试
软件开发方法(看)
软件方法学
自顶向下开发方法强调开发过程是由问题到解答、由总体到局部、由一般到具体
自底向上开发方法从系统实现的最基础部分着手,由简单到复杂,逐层向上构造,直至得到所需的软件
软件自动化方法是尽可能借助计算机系统实现软件开发的方法
净室方法
三种盒类型
黑盒
状态盒
清晰盒
净室方法是一种严格的软件工程方法,它是一种强调正确性的数学验证和软件可靠性的认证的软件过程模型,其目标和结果是非常低的出错率,这是使用非形式化方法难于或不可能达到的。
结构化方法
基本思想是“自顶向下,逐步求精”
结构是指系统内各个组成要素之间的相互联系、相互作用的框架
软件生存周期各个不同的阶段
结构化分析(Structured Analysis,SA)
结构化设计(Structured Design,SD)
结构化程序设计(Structured Programing,SP)
原型法
用于解决前期需求不清晰的情况
软件再工程
旨在对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。它是一个工程过程,能够将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式
逆向工程
就是分析已有的程序,寻求比源代码更高级的抽象表现形式,逆向工程是一个设计恢复的过程,其工具可以从已有的程序中抽取数据结构、体系结构和程序设计信息
软件重构
代码重构
数据重构
面向对象开发(看)
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成
UML
类图/对象图
构件图
构件图是类图的变体。构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
用例图
交互图
交互图强调的是对象到对象的控制流
顺序图
也叫:时序图-序列图。序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图
通信图
也称协作图。时序图按照时间顺序布图,而协作图按照空间结构布图
定时图
定时图来自于电子工程领域,在需要明确定时约束一些事件时可以使用它们
状态图
用来描述类的对象所有可能的状态以及时间发生时状态的转移条件
活动图
是状态图的变体。本质是一种流程图,活动图则强调的是从活动到活动的控制流。可以是带泳道的活动图
部署图
制品图属于部署图
强调了物理设备以及之间的连接关系
包图
系统参与者包括:人或组织、设备、外部系统
用例之间的关系包括
包含
<<include>>
扩展
<<extend>>,自上而下
泛化
自下而上
类之间的关系6种:它们之间的耦合度依次增加。
依赖
局域变量、方法的形参,或者对静态方法的调用
关联
类的属性
聚合
聚合是关联关系的一种特例,他体现的是整体与部分,整体与部分之间是可分离
组合
组合也是关联关系的一种特例,这种关系比聚合更强,整体与部分是不可分的
继承(实现)
泛化
泛化和继承其实是一个逆过程。泛化就是有子类抽象出一个父类,而继承就是由父类具体化一个子类
主要包括OMT(Object Model Technology,对象建模技术)方法、Coad/Yourdon方法、OOSE(Object-Oriented Software Engineering,面向对象的软件工程)及Booch方法等,而OMT、OOSE及Booch最后可统一成为UML(United Model Language,统一建模语言)
面向构件(看)
面向构件的编程所需要的基本支持:多态性(可替代性);模块封装性(高层次信息的隐藏);后期的绑定和装载(部署独立性);安全性(类型和模块安全性)
软件开发模型
经典模型
瀑布模型
结构化方法中最常用的开发模型
瀑布模型适用于需求明确或很少变更的项目
分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段
演化模型
原型模型
增量模型
原型实现不同的是,增量模型强调每一个增量均发布一个可操作产品
螺旋模型
喷泉模型
构建组装模型
统一过程UP
敏捷开发
极限编程XP、特征驱动开发FDD(首席程序员和“类”程序员)、Scrum、水晶方法Crystal、自适应软件开发ASD
开发管理(看)
需求变更流程
1、题分析和变更描述
2、变更分析和成本计算
3、变更实现
软件过程模型
(1) 软件描述
(2) 软件开发
(3) 软件有效性验证
(4) 软件进化
70%的失败项目由于管理不善导致,而非技术原因 项目管理:范围管理、时间管理、费用管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、整体管理 软件开发管理:软件范围管理、软件进度管理、软件成本管理、软件配置管理、软件质量管理、软件风险管理、开发人员管理 项目时间管理:活动定义、活动排序、活动历时估算、进度计划编制、进度控制 配置管理工具:Rational ClearCase、Merant PVCS、Microsoft VSS, CVS 需求文档:需要客户签字,有变更的话也要记录并签字,小的需求亦如此 质量标准:较常用的是 ANSI/IEEE,STOL730—1984, 983—1986 标准 项目经理:领导能力、沟通技巧、人际交往能力、抗压能力、培养员工能力、时间管理能力 使用最多的软件过程改进模型: CMM、 CMMI、 ISO9000 和 ITIL
软件系统的文档可以分为用户文档和系统文档两类。用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文档描述系统设计、实现和测试等各方面的内容。
CMM即软件开发能力成熟度模型,是用来指导软件过程改进的
需求的变更遵循以下流程
(1)问题分析和变更描述
(2)变更分析和成本计算。
(3)变更实现
软件开发工具:需求分析工具、设计工具、编码与排错工具。 软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。 软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。