软设知识点100条
1、码制的表示
定点整数
原码与反码的0既有+0也有-0,数码的表示个数为2n-1个。补码与移码由人为定义,-0编码定义为最小数值-1,数码的表示个数为2n个,最小表示数值为2^n-1。
定点小数
数码的表示个数与定点整数一致。补码与移码的人为定义,将-0的编码定义为最小数值-1。
2、浮点数的表示
浮点数格式
阶码决定范围,阶码越长,范围越大
尾数决定精度,尾数越长,精度越高
浮点数运算过程
对阶==》尾数计算==》格式化
对阶:小数向大数看齐,尾数右移
3、校验码
校验方式 | 校验码位数 | 校验码位置 | 检错 | 纠错 | 校验方式 |
---|---|---|---|---|---|
奇偶校验 | 1 | 一般拼接在头部 | 可检查奇数位错 | 不可纠错 | 奇校验:最终1的个数是奇数个; 偶校验:最终1的个数是偶数个; |
CRC循环冗余校验 | 生成多项最高次幂决定 | 拼接在信息位尾部 | 可检错 | 不可纠错 | 模二除法求余数,拼接作为校验位 |
海明校验 | 2^r ≥ m+r+1 | 插入在信息位中间 | 可检错 | 可纠错 | 分组奇偶校验 |
CPU(中央处理器)组成
cpu分为运算器与控制器两大部分
运算器
- 算术逻辑单元ALU:执行算术运算与逻辑运算
- 累加寄存器AC:暂存数据,为ALU提供工作区
- 数据缓冲寄存器DR
- 状态条件寄存器PSW
控制器
- 指令计数器PC:存储线下一条要执行指令的地址
- 指令寄存器IR:存储即将要执行的指令
- 指令译码器ID
- 时序部件
5、CISC与RISC
CISC(复杂指令集)的特点:指令数量多,指令频率差别大,变长,多种寻址方式,使用微码(微程序)实现。
RISC(精简指令集)的特点:指令数量少,频率接近,定长,单周期,多寄存器寻址,多通用寄存器,硬布线逻辑控制,适用于流水线。有效支持高级程序语言,优化编译
6、流水线技术
- 流水线建立时间:第1条指令执行时间
- 流水线周期:指令分段后,最长段时间
- 流水线执行时间(默认使用理论公式,无答案时考虑实践公式)
- 理论公式:流水线建立时间 + (指令条数 – 1) * 流水线周期
- 实践公式:指令段数 * 流水线周期 + (指令条数 – 1) * 流水线周期
- 吞吐率 = 指令条数/流水线执行时间
- 最大吞吐率 = 流水线周期的倒数
7、局部性原理
- 时间局部性:指程序中的某条指令一旦执行,不久以后该指令可能再次执行,典型原因时由于程序中存在着大量的循环操作。
- 空间局部性:指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。
8、常见存储器
- 按内容存取
- 相联存储器(如Cache)
- 按地址存取
-
随机存取存储器(如内存)
-
顺序存取存储器(如磁带)
-
直接存取存储器(如磁盘)
- 工作方式
- 随机存取存储器 RAM (如内存DRAM)
- 只读存储器 ROM (如BIOS)
9、Cache(高速缓存)
在计算机的存储系统体系中,Cache是(除寄存器以外)访问速度最快的层次。
解决CPU与主存之间速度容量不匹配问题。
Cache与主存映射三种方式:
冲突率 | 电路复杂度 | |
---|---|---|
直接相连映像 | 高 | 简单 |
全相联映像 | 低 | 复杂 |
组相联映像 | 折中 | 折中 |
10、主存编制计算
内存单元数个数 = 最大地址 + 1 – 最小地址
内存编址内容:
- 按字编址:每个存储单元存放内容为机器字长——由题干定义
- 按字节编制:每个存储单元内容为1字节(8bit)
内存总容量 = 内存单元数 * 编制内容
总容量 = 单位芯片容量 * 总片数
总片数 = 总容量/单位容量
单位芯片容量 = 总容量 / 芯片片数
11、输入输出技术
- 程序控制(查询)方式:分为无条件传送和程序查询方式。方法简单,硬件开销小,但是I/O能力不高,严重影响CPU的利用率。
- 程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。
- DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。
12、中断
中断处理(CPU无需等待也不必查询I/O状态):
- 当I/O系统准备好以后,发出中断请求信 通知CPU
- CPU接到中断请求后,保存正在执行程序的现场(保存现场),打断的程序当前位置即为断点(通过中断向量表 – 保存中断服务程序的入口地址)
- 转入I/O中的服务程序的执行,完成I/O系统的数据交换
- 返回被打断的程序继续执行(恢复现场)
13 、可靠性
串联系统计算:R总 = R1 * R2 * R3 * … * Rn;
并联系统计算:R总 = 1-(1-R1)(1-R2)…(1-Rn);
N模混联系统:先将整个系统划分为多个部分串联R1、R2…等,再计算R1、R2内部的并联可靠性,带入原公式。
可靠性表示:MTTF/(1+MTTF)
14、操作系统位置和功能
- 硬件:完成具体的I/O操作
- 中断处理程序:I/O完成后唤醒设备驱动程序
- 设备驱动程序:设置寄存器,检查设备状态
- 设备无关I/O层:设备名解析、阻塞进程、分配缓冲区
- 用户级I/O层:发出I/O调用
23、分布式透明性
- 分片透明:用户不必关心数据是如何分片的,即如何分片对用户是透明的
- 复制透明:用户不用关心数据库在 络中各个结点的复制情况,被复制的数据的更新由系统自动完成
- 位置透明:用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的
- 局部映像透明性(逻辑透明):用户不必知道局部数据库模式
24、数据库三级模式、两级映像
三级模式:
-
外模式 视 图
-
模 式 基本表
两级映像(外模逻辑,模内物理):
- 外模式 模 式映射,保证数据逻辑独立性,即数据的逻辑结构发生变化后,用户程序也可以不修改。只需要修改外模式和概念模式之间的映像
- 模 式 内模式映射,保证数据物理独立性,即当数据的物理结构发生改变时,应用程序不用改变。只需要修改概念模式和内模式之间的映像
25、数据库设计过程
1、需求分析阶段产物:数据流图、数据字典、需求说明书
2、概念设计阶段产物:E-R模型
3、逻辑设计(详细设计)阶段产物:关系模式
4、物理设计阶段
5、数据库实施阶段
6、数据库运行和维护阶段
设计依据:需求分析、E-R模、转换原则、规范化理论
26、关系模式基本概念
属性
简单属性和复合属性
- 简单属性:原子的、不可再分的
- 复合属性:可以细分为更小的部分(即划分为别的属性)
单值属性和多值属性
- 单值属性:定义的属性对于一个特定的实体都有单独的一个值
- 多值属性:在某些特定情况下,一个属性可能对应一组值
NULL属性:表示无意义或不知道
派生属性:可以从其他属性得来
目或度
关系模式中属性的个数
候选码
又称为候选键,唯一标示元组的属性集合,可以有多个
主码
又称为主键,从候选键中选择一个
主属性与非主属性
组成候选码的属性就是主属性,其他的就是非主属性
外码(外键)
其他关系模式的主键
全码(ALL-Key)
关系模式的所有属性组是这个关系的候选码
27、候选键
选择入度为0(无函数依赖可推导得出的属性入度为0)的属性集合,从该集合尝试推导出全部属性(可通过传递函数依赖等进行传递推导),如果可以,该集合为候选键,否则,该集合依次添加既有入度也有出度(既可被推导得出也可推导出其他属性)的中间结点,直到推导出所有属性为止,最终集合即为候选键。
顺藤摸瓜…
28、E-R图转关系模式转换原则
实体必须单独转换为1个关系模式
联系根据类型不同:
- 1对1联系可以转换为独立的关系模式,也可以归并到任意一端实体中
- 1对多联系可以转换为独立的关系模式,也可以归并到多端实体中
- 多对多联系只能转换为独立的关系模式,不能归并
29、关系代数
笛卡尔积x:结果的属性列数是二者之和,结果的元组行数是二者乘积
投影Π??:对垂直方向的属性列进行筛选 select
选择:对水平方向的元组行进行筛选 where
自然连接:结果的属性列数是二者之和减去重复列数,结果元组是同名属性列取值相等的元组
30、Amstrong公理体系
A1.自反律(Reflexivity):若Y?X?U,则X→Y为F所蕴含
A2.增广律(Augmentation):若X→Y为F所蕴含,且Z?U,则XZ→YZ为F所蕴含
A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F 所蕴含
合并规则:由X→Y,X→Z,由 X→YZ(A2,A3)
伪传递规则:由X→Y,WY→Z,有XW→Z(A2,A3)
分解规则:由X→Y及Z?Y,有X→Z(A1,A3)
31、规范化
1NF:属性值都是不可分的原子值。(基本二维表)
2NF:在1NF基础上,消除了非主属性对候选键的部分函数依赖。(候选键是单属性至少满足2NF)
3NF:在2NF基础上,消除了非主属性对候选键的传递函数依赖。(没有非主属性至少满足3NF)
BCNF:在3NF基础上,消除了主属性对候选键的部分函数依赖和传递函数依赖
32、sql查询
SELECT [ ALL | DISTINCT ] [, ] …
? FROM [, ] …
[WHERE ]
[GROUP BY [ HAVING ] ]
[ORDER BY [ ASC | DESC ] … ]
处理类型 | 处理子类 | 示例 / 语法 |
---|---|---|
结果排序 | 升序或降序 | ORDER BY 字段名 DESC | ASC |
统计 | COUNT( [ ALL | DISTINCT ] ) | |
计算一列值的总和 | SUM( [ ALL |DISTINCT ] ) | |
计算一列值的平均值 | AVG( [ALL | DISTINCT] ) | |
求一列值中的最大值 | MAX([DISTINCT | ALL] ) | |
求一列值中的最小值 | MIN([DISTINCT | ALL] ) | |
对结果分组 | 将查询结果按列值分组 | GROUP BY |
对分组结果筛选 | 对分组结果筛选 | HAVING |
33、事务特性(ACID)
- 原子性A:事务是原子的,要么都做,要么都不做
- 一致性C:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态
- 隔离性I:事务相互隔离,当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的
- 持续性D:一旦事务提交成功,即使数据库崩溃,其对数据库的更新操作也将永久有效
34、封锁协议
- 共享锁(S锁??S、读锁):若事务T对数据对象A添加了S锁,则只允许T读取A,但不能修改A。并且其他事务只能对A加S锁,不能加X锁
- 排他锁(X锁、写锁、独占锁):若事务T对数据对象A添加了X锁,则只允许T读取和修改A,其他事务不能再对A加任何锁
35、OSI七层模型
层次 | 名称 | 主要功能 | 主要设备及协议 |
---|---|---|---|
7 | 应用层 | 实现具体的应用功能 | POP3、FTP、HTTP |
6 | 表示层 | 数据的格式与表达、加密、压缩 | Telnet、SMTP、DHCP |
5 | 会话层 | 建立、管理和终止会话 | TFTP、SNMP、DNS |
4 | 传输层 | 提供端到端的连接 | TCP、UDP |
3 | 络层 | 分组传输和路由选择 | 三层交换机、路由器 ARP、RARP、IP ICMP、IGMP |
2 | 数据链路层 | 传送以帧为单位的信息 | 桥、交换机(多端口 桥)、 卡 PPTP、L2TP、SLIP、PPP |
1 | 物理层 | 二进制传输 | 中继器、集线器(多端口中继器) |
pptp与l2tp的区别
主要区别在于:用途不同、使用要求不同。
一、使用要求不同
1、PPTP的使用要求:互联 络必须为IP 络。
2、L2TP的使用要求:L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),帧中继永久虚拟电路(PVCs)、X.25虚拟电路(VCs)或ATM 络上使用。
二、用途不同
1、PPTP的用途:通过PPTP,远程用户能够通过 Microsoft Windows NT工作站、Windows xp 、 Windows 2000 和windows2003。
2、L2TP的用途:L2TP用来整合多协议拨 服务至现有的因特 服务提供商点。PPP 定义了多协议跨越第二层点对点链接的一个封装机制。
SLIP和PPP的区别
都是用于提供两台主机之间的点对点串行通信,它们之间有什么区别/strong>
- 什么是SLIP协议/li>
-
SLIP代表串行线 际协议,是一种TCP / IP协议、一种简单的互联 链接协议。它允许用户使用计算机来获得上 的调制解调器。
-
SLIP连接有助于PC与本地Internet协议进行通信,并将其转换为Internet主机。它消除了将PC用户连接到互联 连接的中央计算机的需要。因此,SLIP直接向个人计算机提供互联 服务。
- 什么是PPP协议/li>
- PPP代表点对点协议,是指一系列计算机 络协议,它们提供通过点对点链路传输多协议数据的标准方法。
- PPP已经成为互联 标准,有助于通过点对点串行链路封装和传输数据 。数据 非常类似于分组交换 络环境中的数据包,但它不依赖于物理 络,也不包含分组交换节点 和PSN目的端口。
- SLIP和PPP之间的主要区别
-
SLIP代表到串行线路互联 协议;而,PPP代表点对点协议。
-
SLIP是一种过时的协议,尽管它仍然在某些地方使用;而,PPP是用于与SLIP相同目的的新协议,它已经成为互联 标准,提供了一些新功能。
-
IP协议是SLIP支持的唯一协议。而,PPP支持多种协议。
-
PPP提供身份验证,错误检测,纠错,压缩和加密;而SLIP没有这些功能。
-
在SLIP中,IP地址是静态分配的。而,PPP执行动态分配。
-
可以在SLIP中以同步模式传输数据。而,PPP促进了数据传输的同步和异步模式。
PPP比SLIP好在哪里/strong>
1、 络协议的多路复用
- PPP可以适应其他几种 络技术,而不仅仅是限制互联 和TCP / IP。
2、链路配置
- 它使用协商机制在两个PPP对等体之间建立通信参数。
3、错误检测
- 在接收端,它丢弃损坏的数据包。
4、增值通信特性
- 它还支持数据压缩和加密。
5、建立 络地址
- 设置数据 路由所需的 络地址。
6、身份验证
- 在启动通信之前,首先对两个最终用户进行身份验证。
36、TCP/IP协议簇四层模型
HTTPS:是HTTP协议和SSL(安全套接层协议)的结合,默认端口443
PGP:邮件安全协议
SET:电子商务安全协议,涉及电子交易安全
SSH:为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他 络服务提供安全性的协议
45、 络攻击
攻击类型 | 攻击名称 | 描述 |
---|---|---|
被动攻击 | 窃听( 络监听) | 用各种可能的合法或非法的手段窃取系统中的信息资源和敏感信息 |
业务流分析 | 通过对系统进行长期监听,利用统计分析方法对参数进行研究,从而发现有价值的信息和规律 | |
主动攻击 | 重放攻击 | 所截获的某次合法的通信数据拷贝,出于非法的目的而被重新发送 |
??拒绝服务(DOS) | 对信息或其他资源的合法访问被无条件地阻止 |
46、 络防御
- 防火墙技术:防外不防内,对于DMZ非军事区主要放置应用服务器(如邮件服务器、WEB服务器)
- 漏洞扫描:入侵者可以利用系统漏洞侵入系统,系统管理员可以通过漏洞扫描技术,及时了解系统存在的安全问题,并采取相应措施来提高系统的安全性
- 入侵检测IDS:根据攻击者行为和模式库记录的应为进行模式匹配,对攻击行为 警
47、病毒
病毒的特性:计算机病毒的特性包括隐蔽性、传染性、潜伏性、触发性和破坏性
文件型计算机病毒感染可执行文件(包括EXE和COM文件)
引导型计算机病毒影响软盘或硬盘的引导扇区
目录型计算机病毒能够修改硬盘上存储的所有文件的地址
48、常见的软件开发模型
瀑布模型
- 容易理解,管理成本低,每个阶段都有对应的成果产物,各个阶段有明显的界限划分和顺序要求,一旦发生错误,整个项目推到重新开始
- 适用于需求明确的项目,一般表述为需求明确、或二次开发,或者对于数据处理类型的项目
V模型
- 强调测试贯穿项目始终,而不是集中在测试阶段。是一种测试的开发模型
喷泉模型
- 以用户需求为动力,以对象为驱动,适合于面向对象的开发方法
- 特点:迭代、无间隙
原型模型
- 典型的原型开发方法模型。
- 适用于需求不明确的场景,可以帮助用户明确需求
增量模型
- 可以有多个可用版本的发布,核心功能往往最先完成,在此基础上,每轮迭代会有新的增量发布,核心功能可以得到充分测试。
- 强调每一个增量均发布一个可操作的产品
49、螺旋模型与RUP
螺旋模型
- 典型特点:引入了风险分析
- 结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析
- 它是由制定计划、风险分析、实施工程、客户评估这一循环组成的
- 它最初从概念项目开始第一个螺旋
统一过程RUP
- 典型特点:用例驱动、以架构为中心、迭代和增量
- 构思阶段:强调定义和细化用例,并将其作为主要模型
- 细化阶段:重点是创建分析和设计模型,强调类的定义和体系结构的表示。确定系统架构
- 构建阶段:将设计转化为实现,并进行集成和测试
- 移交阶段:将产品发布给用户进行测试评价,交付或再次进行迭代修改产品使之完善
50、敏捷方法
敏捷开发是一种以人为核心、迭代、循环渐进的开发方法,适用于小团队和小项目,具有小步快跑的思想
水晶法强调经常交付,认为每一种不同的项目都需要一套不同的策略、约定和方法论
并列争球法的核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件
自适应软件开发的核心是三个非线性的,重叠的开发阶段:猜测、合作、学习
51、极限编程
极限编程是一种轻量级的开发方法
它提出了四大价值观:沟通、简单、反馈、勇气
五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作
十二个最佳实践:计划游戏、隐喻、小型发布、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准
52、开发方法
1、结构化开发方法:
- 用户至上,严格区分工作阶段,每阶段有任务和结果
- 强调系统开发过程的整体性和全局性,系统开发过程工程化,文档资料标准化
- 自顶向下,逐步求精。
2、原型化开发方法:
- 适用于需求不明确的情况
3、面向对象开发方法:
- 更好的复用性
- 关键在于建立一个全面、合理、统一的模型
- 分析、设计、实现三个阶段界限不明确
53、内聚性
内聚类型 | 描述 |
---|---|
功能内聚 | 完成一个单一功能,各个部分协同工作,缺一不可 |
顺序内聚 | 处理元素相关,而且必须顺序执行 |
通信内聚 | 所有处理元素集中在一个数据结构的区域上 |
过程内聚 | 处理元素相关,而且必须按特定的次序执行 |
瞬时内聚(时间内聚) | 所包含的任务必须在同一时间间隔内执行 |
逻辑内聚 | 完成逻辑上相关的一组任务 |
偶然内聚(巧合内聚) | 完成一组没有关系或松散关系的任务 |
54、耦合性
耦合类型 | 描述 |
---|---|
非直接耦合 | 两个模块之间没有直接关系,他们之间的联系完全是通过主模块的控制和调用来实现的 |
数据耦合 | 一组模块借助参数表传递简单数据 |
标记耦合 | 一组模块通过参数表传递记录信息(数据结构) |
控制耦合 | 模块之间传递的信息中包含用于控制模块内部逻辑的信息 |
外部耦合 | 一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息 |
公共耦合 | 多个模块都访问同一个公共数据环境 |
内容耦合 | 一个模块直接访问另一个模块的内部数据; 一个模块不通过正常入口转到另一个模块的内部; 两个模块有一部分程序代码重叠; 一个模块有多个入口 |
55、测试分类
静态测试
- 桌前检查
- 代码走查
- 代码审查
动态测试
- 黑盒测试
- 等价类划分(确定无效和有效等价类,设计用例尽可能多的覆盖有效类,设计用例只覆盖一个无效类)
- 边界值分析(处理边界情况时最容易出错,选取的测试数据应该恰好等于、稍小于或稍大于边界值)
- 错误推测
- 因果图
- 白盒测试
- 语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、路径覆盖
56、白盒测试
定义 | 特点 | |
---|---|---|
语句覆盖 | 被测试程序中的每条语句至少执行一次 | 对执行逻辑覆盖很低,一般认为是很弱的逻辑覆盖 |
判定覆盖(分支覆盖) | 被测程序每一个判定表达式至少获得一次 “真” 值和 “假” 值(或者程序中每一个判定取“真”分支和取“假”分支至少通过一次) | 判定覆盖比语句覆盖更强一些。 判定可以是1个条件,也可以是多个条件的组合 |
条件覆盖 | 每一个判定语句中每个逻辑条件的各种可能的值至少满足一次 | 条件覆盖和判断覆盖没有包含关系 |
判断/条件覆盖 | 判定中每个条件的所有可能取值(真/假)至少出现一次,并使每个判定本身的判定结果(真/假)也至少出现一次 | 同时满足判定覆盖和条件覆盖 |
条件组合覆盖 | 每个判定中的各种可能值的组合都至少出现一次 | 同时满足判定覆盖、条件覆盖、判定/条件覆盖 |
路径覆盖 | 覆盖被测程序中所有可能的路径 | |
基本路径测试 | 每一条独立路径都执行过(即程序中可执行语句至少执行一次) | 测试用例个数与环路复杂度一致。 判定为关键控制节点,必须出现在基本路径中 |
循环覆盖 | 循环中每个条件都得到验证 | 注意数组参数可循环验证 |
57、特殊的测试阶段及任务
- 验收测试:有效性测试、软件配置审查、验收测试
- 系统测试:恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安装测试
- 集成测试:模块间的接口和通信
- 单元测试:模块接口、局部数据结构、边界条件、独立的路径、错误处理
- 回归测试:修改软件后进行的测试,防止引入新的错误
- 负载测试:对软件负载能力的测试
- 压力测试:对软件超负荷条件下运行情况的测试
58、McCabe复杂度计算
McCabe复杂度计算公式:V(G) = m – n + 2
其中m是有向弧的条数,n是结点数。
对于伪代码可以先转换为程序流程图,对程序流程图可以最终转换为节点图处理
转换时注意将交点的地方标注为新的结点,以最终的结点图带入公式结算其McCabe复杂度
59、维护
- 更正性维护:针对真实存在并已经发生的错误进行的维护行为
- 预防性维护:针对真实存在但还未发生的错误进行的维护
- 适应性维护:
- 指使应用软件适应信息技术变化和管理需求变化而进行的修改。
- 企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求
- 完整性维护:
- 扩充功能和改善性能而进行的修改。
- 对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征
60、质量属性与其依次属性
- 功能性:适合性、准确性、互操作性、安全保密性
- 可靠性:成熟性、容错性、易恢复性
- 易用性:易理解、易学性、易操作性、吸引性
- 效率:时间特性、资源利用性
- 维护性:易分析性、稳定性、易测试性、易改变性
- 可移植性:适应性、易安装性、共存性、易替换性
61、CMMI(能力成熟度模型集成)—— 阶段式
- 初始的:过程不可预测且缺乏控制
- 已管理的:过程为项目服务
- 已定义的:过程为组织服务
- 定量管理的:过程已度量和控制
- 优化的:集中于过程改进
62、CMMI(能力成熟度模型集成)—— 连续式
- CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标
- CL1(已执行的):其共性目标式过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标
- CL2(已管理的):其共性目标是集中于已管理的过程的制度化
- CL3(已定义级的):其共性目标集中于已定义的过程的制度化
- CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化
- CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效
63、Gantt图与PERT图
甘特图能够清晰描述每个任务的开始/结束时间及各个任务之间的并行性,也可以动态地反映项目的开发进展情况,但难以反映多个任务之间存在的逻辑关系
PERT利用项目的 络图和各活动所需时间的估计值(通过加权平均得到)去计算项目总时间,强调任务之间的先后关系,但不能反映任务之间的并行性,以及项目的当前进展情况
64、PERT图
- 关键路径:是图中源点到汇点的最长路径,关键路径的时间称之为项目工期,也表述为项目完成所需的最少时间
- 总时差:在不延误总工期的前提下,该活动的机动时间
- 一般在图中,以最晚结束时间减去最早结束时间求取,或者以最晚开始时间减去最早开始时间求取
65、风险管理
风险的特性:具有不确定性,可能会造成损失
风险的类别:
- 项目风险:涉及到各种形式的预算、进度、人员、资源以及客户相关的问题,并且可能导致项目损失
- 技术风险:涉及到技术相关的可能会导致项目损失的问题
- 会风险:涉及到政策、法规
风险曝光度(RiskExposure) = 错误出现率(风险出现率)X 错误造成损失(风险损失)
66、沟通路径
有主程序员:n各成员小组,一个主程序员,普通程序员只需要与主程序员沟通。沟通路径:n-1
无主程序员:n个成员的项目小组,相互之间都可以沟通。沟通路径:n(n – 1)/2
67、数据流图
数据流常见的3中错误
- 黑洞:加工只有输入没有输出
- 奇迹:加工只有输出没有输入
- 灰洞:加工中输入不足以产生输出
子图与父图保持平衡
- 父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据保持一致
- 如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么他们仍然是平衡的
68、面向对象基本概念
面向对象:对象 + 分类 + 继承 + 通过消息的通信
对象:属性(数据) + 方法(操作) + 对象ID
封装:隐藏对象的属性和实现细节,仅对外公开接口(信息隐藏技术)
类(实体类、控制类、边界类):对象的抽象
接口:一种特殊的类,它只有方法定义没有具体的实现
继承与泛化:复用机制
消息和消息通信:对象之间进行通信的一种构造叫做消息。消息是异步通信的
重置/覆盖/重写(override):在子类中重新定义父类中已经定义的方法
重载:一个类可以有多个同名而参数类型不同的方法
动态绑定:根据接收对象的具体情况将请求的操作与实现的方法进行连接(运行时绑定)
多态:不同对象收到同样的消息产生不同的结果。
69、面向对象设计原则
单一职责原则:设计目的单一的类
开放-封闭原则:对扩展开发,对修改封闭
李氏(Liskov)替换原则:子类可以替换父类
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
接口隔离原则:使用多个专门的接口比使用单一的总接口要好
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
70、UML图分类
- 用例图(???)
- 类图与对象图(???)
- 顺序图
- 活动图
- 状态图
- 通信图
- 构件图
用例图
多重度
1:表示一个集合中的一个对象对应另一个集合中1个对象。
0…:表示一个集合中的一个对象对应另一个集合中的0个或多个对象。(可以不对应)
1…:表示一个集合中的一个对象对应另一个集合中的一个或多个对象。(至少对应一个)
*:表示一个集合中的一个对象对应另一个集合中的多个对象。
关系包含以下几类:
顺序图最大的特点:清楚表现出 处理事务时,时间顺序的情况。
活动图
状态图
描述的是状态的变迁(状态触发的条件)
71、类图关系
依赖关系:一个事物发生变化影响另一个事物
泛化关系:特殊/一般关系
关联关系:描述了一组链,链是对象之间的连接
聚合关系:整体与部分生命周期不同(有你有我,没你也有我)
组合关系:整体与部分生命周期相同(有你有我,没你无我)
实现关系:接口与类之间的关系
72、用例关系
74、创建型设计模式应用场景
设计模式名称 | 简要说明 | 速记关键字 |
---|---|---|
Factory Method 工厂方法模式 |
定义一个创建对象的接口,但由子类决定需要实例化哪一个类 工厂方法使得子类实例化的过程推迟 |
动态生产对象 |
Abstract Factory 抽象工厂模式 |
提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定他们具体的类 | 生产成系列对象 |
Builder 构建器模式 |
将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示 | 复杂对象构造 |
Prototype 原型模式 |
用原型示例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象 | 克隆对象 |
Singleton 单例模式 |
保证一个类只有一个实例,并提供一个访问它的全局访问点 | 单实例 |
75、结构型设计模式应用场景
设计模式名称 | 简要说明 | 速记关键字 |
---|