(1)分布式数据库:
分片透明 | 对数据的操作在全局关系上进行,如何分布如何存储等细节不必关心(最高层次) |
复制透明 | 不用关心数据库在网络中各个节点的复制情况 |
位置透明 | 不用知道所操作的数据放在何处 |
逻辑透明(局部映像透明) | 不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换由系统完成 |
记忆:吩咐未落,全局->局部;
(2)数据库系统的安全控制机制:
用户标识与鉴别 | 用户id、密码验证; |
访问控制 | 用户授权; |
视图机制 | 创建虚拟表; |
数据加密 | 数据加密成密文; |
审计 | 对行为的控制和分析; |
备份/恢复 | 防治数据灾难; |
记忆:用赎身方式控制被毁数据库的安全
数据库的完整性是指数据的正确性和相容性;
完整性约束是属于完整性约束机制,不属于安全性控制机制。
(3)完整性约束
实体完整性 | 基本关系的主属性不能取空值 |
参照完整性 | 实体间引用的完整性:外码的值必须取空值或者在被引用的表中存在的相对应的主码值 |
用户定义完整性 | 具体应用所涉及的数据必须满足语义要求 |
记忆:时空用于餐饮
(4) 数据库三级结构
用户级 | 外模式、子模式、用户模式 | 用户视图 | 描述各个记录的组成、相互关系、数据项的特征、数据的安全、完整性约束条件(与应用相关) | 视图 |
概念级 |
概念模式、模式、逻辑模式(唯一、关键) | DBA视图 | 描述数据库中数据的逻辑结构和特征 | 基本表 |
物理级 | 内模式(唯一) | 内部视图 | 描述数据物理结构和存储方式 | 存储文件 |
(5)范式
1NF | 无重复属性(无重复列) |
2NF | 属性完全依赖于主键(无重复行) |
3NF | 属性不依赖其他非主属性(无传递) |
4NF | 实体的码分别和每个多值属性独立构成一个关系模式 |
(6)语句:
[with check option] :强制针对视图执行的所有数据修改语句都必须符合在select子句中设置的条件,可以确保提交修改后,仍可通过视图看到语句。
[with grant option] :授权时出现,获得权限的用户还可以将该权限赋给其他用户。
[grant<权限> on<对象类型>to<用户>]
(7)数据库设计
用户需求分析 | 形成需求说明文档、数据字典、数据流图, 作为概念结构设计的依据 |
概念结构 | |
逻辑结构 | |
物理结构 |
(8)多值属性和复合属性的区别
多值属性 | 类似一个人有多个电话号码 |
复合属性 | 家庭地址是由省、市、区县、街道组成 |
(1)OSI模型和相关协议:
应用层(应用层、表示层、会话层) | FTP\Telnet\POP3\SMTP\HTTP | SNMP |
传输层 | TCP | UDP |
网络层 | ICMP\IP | IP |
数据链路层 | ARP/RARP | |
物理层 |
记忆:有应勇少年(应用SNmp),传图片(TcP/UdP),左网络IP,右熟练阿婆(数据链路ArP/rArP)
tcp/ip的公共服务端口号:1~1023
ppp中的安全认证协议是CHAP;
LDAP是轻量目录访问协议;
常见协议 | Telnet--远程登录,远程管理 RAS--远程访问 FTP--文件传输 MPLS--多协议标记交换 SNMP--简单网络管理协议(C/S)(报文:SNMP报头、协议数据单元PDU) UDP--用户数据报协议(顺应网络传输速度、小通信量) TCP--传输控制协议(传输数据量少、可靠性高的应用,3次握手,按次无错传递) ICMP--互联网控制消息协议 |
与电子邮件相关协议 | SMTP--简单Mail传输(发送邮件协议) POP3-接收邮件协议 IMAP4--邮件获取协议 MIME--多媒体邮件扩展 PGP--基于RSA公钥加密体系的邮件加密(安全) |
记忆:
SMTP->Simple Mail Transfer Protocol
POP3->Post Office Protocol
IMAP4->Internet Mail Access Protocol
MIME->Multipurpose Internet Mail Extensions
PGP->Pretty Good Privacy
(2)IPv4和IPv6过渡期间的技术
双协议栈 | 主机同时运行4和6,同时支持4和6 |
隧道技术 | 在4上连接6的站点 |
NAT-PT翻译 | 转换4和6 |
(3)测试网络连通情况
Ping | 本机与外部指定主机的连接 |
tracert | 跟踪路由,查看IP数据包所走路径的连通情况,查出路径上哪段路由出现连通故障 |
netstat | 本机各端口的连接 |
arp | 查看和修改本地主机上的arp表项; 查看arp缓存及解决ip地址解释故障; |
ipconfig | renew:更新所有适配器DHCP配置; flushdns:刷新并重设DNS缓存; |
ping本地循环地址127.0.0.1不通 | 本地机tcp/ip不正常工作 |
ping本机ip不通 | 网络适配器故障 |
ping同网段中某机ip不通 | 网络线路故障 |
(4)物理设备
网桥 | 数据链路层 | 早期的2端口二层网络设备,用来连接不同网段 2端口分别由一条独立的交换信道,不是共享一条背板总线; 可隔离冲突域; |
集线器 | 物理层和数据链路层MAC子层 | 对接收到的信号进行再生整性放大,扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上 |
路由器 | 网络层 | 连接各局域网、广域网 会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号 可以分割广播风暴,提高带宽利用率 |
交换机 | 数据链路层 | 为任意两个网络节点提供独享的电信号通路 能划分数据链路层广播(冲突域) 不能划分网络层广播(广播域) |
(5)路由
直连网络ID | 用于直接连接的网络,interface可为空 |
远程网络ID | 用于不直接连接的网络,可通过其他路由器到达这种网络,interface是本地路由器的ip地址 |
主机路由 | 到达特定主机的路由,子网掩码:255.255.255.255 |
默认路由 | 无法找到确定路由时使用的路由,目标网络和网络掩码都是0.0.0.0 |
持久路由 | 利用route add-p命令添加的表项,每次初始化时,这种路由都会加入windows的注册表中,同时加入路由表 |
(1)语言处理程序
编译程序 | 高级语言源程序->目标程序(汇编形式或机器代码形式) |
汇编程序 | 汇编语言编写程序->机器语言程序 |
解释程序 | 直接执行高级语言源程序或先翻译成某种中间代码再执行,不形成与源程序功能等价的目标程序 |
反编译 | 编译的逆过程,不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序 |
记忆:接种无木,汇集,变高木(没有木的地方一根根接种起来,再慢慢汇集堆叠起来,就会变成高高的木头)
编译:静态语义错误、语法错误
运行:动态语义错误
java虚拟机:解释器
编译与解释的区别是:是否生成目标程序文件
(2)编译程序过程 (源程序-->目标代码)
符号表管理 | 词法分析:识别出单词 | 出错处理 |
语法分析:检查单词文法(表达式、语句、程序) | ||
语义分析:检查单词语义(类型分析、检查) | ||
中间代码生成:机器代码 | ||
代码优化:提高运行效率 | ||
目标代码生成 |
中间代码:有利于进行与机器无关的优化处理、编译前后端分水岭、提高编译程序可移植性。
(3)语句语法语义
语句 | 描述程序中的运算步骤、控制结构、数据传输 |
语法 | 给出语句、声明和其他语言结构的书写规则 |
语义 | 不同语法结构的含义 |
(4)面向对象--UML中的关系和对应的图
记忆:组黑聚白四角箭(猪黑巨白四脚尖),泛继实实虚三角头(饭鸡屎是需三角头),关实依需箭(管事亦须贱)
泛化=实现>组合>聚合>关联>依赖
继承 | 父类子类之间共享数据的方法 类之间共享属性与行为的机制 |
多态 | 不同对象在收到同一消息可产生不同的结果 |
绑定 | 把过程调用和相应调用所需要执行的代码加以结合的过程 静态绑定:编译时进行 动态绑定:运行时进行 |
泛化 | 两类事务之间的一般/特殊关系 |
依赖 | 语义关系,一个类发生变化会影响到另一个类的语义 |
扩展 | 即扩展用例只有在基本用例满足某种条件的时候才会执行。 |
(5)对象A要改变对象B的状态,通过B的修改操作符进行;
读取B的状态信息,通过B的选择操作符,可获取B对象的属性值;
创建B对象的类的一个新的对象,不需要对B进行任何操作。
操作符:就是类似运算符这种,能对属性等进行操作的。
对象=标识+属性+方法;
(6)类、派生、对象
public类 | 程序中所有函数都可访问; 对象可访问; |
protect类 | 该类及该类的子类成员函数可访问; 对象不可访问; |
private类 | 该类成员函数可访问; 对象不可访问; |
public公有派生 | 基类中的public、protect成员,访问属性不变; 基类中的private成员,不可直接访问; |
protect保护派生 | 基类中的public、protect成员,以protect身份出现在派生类中; 基类中的private成员,不可直接访问; |
private私有派生 | 基类中的public、protect成员,以private身份出现在派生类中; 基类中的private成员,不可直接访问; |
(7)分层体系结构
表示层 | 用户界面部分 用户与应用程序的交互 |
控制层 | 接收用户请求 选择适当的逻辑层构建处理并接收处理结果 选择适当的界面展示给用户 |
模型层 | 访问数据层的数据对象 根据要求进行查询或更新数据,实现业务逻辑功能 J2EE的EJB |
数据层 | 数据的存储 |
J2EE:EJB、Java Servlets API、JSP和XML技术
类型 | 特点 | 算法 |
对称加密算法 |
1、加密密钥解密密钥相同; 2、私钥加密; 3、密钥分发困难; 4、算法效率高,适合对大数据进行加密,速度快; |
DES:连接安全 3DES RC-5:连接安全 IDEA AES:采用可变长的密钥体制 记忆:DEAERC |
非对称加密算法 | 1、加密密钥解密密钥不同; 2、公开密钥加密算法(公钥加密); 3、密钥成对出现(公钥对外公开,私钥只有持有者持有); 4、算法相对效率低; |
RSA:身份认证、数字签名 ECC:椭圆曲线 DSA:身份认证 记忆:SACC |
MD5:消息摘要算法 SHA:消息摘要算法、密钥长度长、安全性高、安全散列算法 |
记忆:如此对称的阿尔山(RC,DEs/iDEs,AES),非猜测是爱(eCC,rSA/dSA),收到消息杀名单上的人(SHA,MD5)
磁盘调度算法 | 1、先来先服务调度 2、最短查找时间优先调度 3、电梯算法调度 |
页面调度算法 | 1、最优算法 2、随机算法 3、先进先出算法 4、最近最少使用算法 |
作业调度算法 | 1、先来先服务 2、短作业优先 3、响应比高者优先 4、优先级调度 |
(1)易用性测试:安装测试、功能易用性测试、界面测试、辅助系统测试(没有文档测试!!!!)
界面测试 | 整体界面测试 | 规范性、一致性、合理性 |
界面元素测试 | 窗口、菜单、图标、鼠标、文字 |
记忆:公安姐夫义勇,整洁和衣柜,元素床单图书纹
(2)集成测试
驱动模块 | 相当于所测模块的主程序 | 接收测试数据,把这些数据传送给所测模块,最后再输出实测结果 |
桩模块 | 代替所测模块调用的子模块 | 可以做少量的数据操作,不需要把子模块的所有功能都带进来,但也不允许什么事情也不做 |
记忆:驱逐庄子(驱动-主程序,桩-子模块)
(3)广义的软件测试概念
验证 | 保证软件正确实现特定功能的一系列活动和过程; 目的是在软件软件生命周期中的每一阶段的成果满足上一阶段的所设定的目标; |
确认 | 保证软件满足用户需求的一系列活动和过程; 目的是证实在一个给定的外部环境中软件的逻辑正确性,在软件开发完成后保证软件与用户需求相符合; |
测试 | 不关心过程的活动,而是对过程的产物以及开发出的软件进行剖析 |
记忆:验证特定功能满足阶段目标,确认用户需求,测试产物
(4)测试工具分类
配置/过程管理工具 | TestDirector:测试管理工具 AllChange:变更管理和配置管理集成一体 IRqA:需求管理工具 DOORS:需求管理工具 CM Sysergy:基于任务的配置管理 ChangeSynergy:变更需求跟踪和报告系统 McCabe TrueChange:软件配置管理工具 T-Plan:测试过程管理工具 |
功能测试工具 | WinRunner SilkTest QTP |
性能测试工具 | LoadRunner SilkPerformer Benchamark factory:高扩展性强化测试、容量规划和性能优化工具 JProbe:J2EE性能测试和诊断工具 |
白盒、嵌入式测试工具 | TAU LOGISCOPE:嵌入式软件测试工具集 McCabe IQ:静态分析/软件质量度量工具集 PRQA C/C++:代码规划静态检测工具 C Verifier:C语言验证器 ASG-SmartTest Cantata++:单元/集成测试工具 UniTester:汇编语言单元测试工具 |
网络测试 | SmartBits |
(5)白盒动静分类
静态 | 代码检查:桌面检查、代码审查、走查 静态结构分析 静态质量度量 |
动态 | 逻辑覆盖 路径覆盖 |
(6)判定条件覆盖:每一种输入输出至少出现一次,每一个条件必须产生所有可能的输出结果至少一次(真/假),每个判断中的每个条件必须能够独立影响一个判断的输出(T、F,F、T);
记住英文缩写(MCDC)
(7)《测试案例说明》内容:输入说明、环境要求、特殊要求;按理特还书
(8)性能的指标
系统能够承受的负载 | 并发请求数 |
衡量业务执行效率的指标 | 交易执行吞吐量:系统服务器每秒能够处理通过的交易数 |
交易执行响应时间:系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采集的时间戳之间的时间间隔,是衡量特定类型应用事务性能的重要指标,表明用户执行一项操作大致需要多长时间 | |
每秒点击率 |
客户端交易处理性能指标 | 并发用户数指标 | 并发用户数 |
交易处理指标 | 事物响应时间 | |
每秒事物数 | ||
交易通过率 | ||
交易请求指标 | 每秒点击次数(点击率) | |
吞吐量 | ||
连接数(SSL) | ||
HTTP响应数 | ||
每秒下载页面数 | ||
每秒重试次数 | ||
WEB页面组件指标 | ||
服务器操作系统资源占用监控指标 | CPU | 占用率 |
磁盘管理 | ||
内存 | 占用量 | |
交换器SWAP | ||
进程 | 每秒切换数 | |
安全控制 | ||
文件系统 |
(9)基本安全防护系技术
防火墙 | 1、是否支持交换和路由两种工作模式; 2、是否支持对HTTP、FTP、SMTP等服务类型访问控制; 3、是否考虑数据库的冗余设计; 4、是否支持对日志的统计分析功能,同时,日志是否可以存储在本地或网络数据库上; 5、对防火墙本身和受保护网段的非法攻击系统,是否提供多种告警方式和多种级别的告警。 记忆:功夫容易,日高墙 |
1、对数据包(源IP地址、目的IP地址、目的端口、IP协议号)过滤;(用在内部主机和外部主机之间) 2、审计和报警机制; 3、Proxy(代理); 4、流量控制(带宽管理); 5、统计分析; 6、流量计费; |
入侵检测 | 1、系统检测到入侵后,能否自行切断服务器,记录入侵过程,邮件报警等动作; 2、是否支持攻击特征信息的集中式发布和攻击取证信息的分布式上载; 3、能否提供多种方式对监视引擎和检测特征定期更新; 4、内置的网络能否使用状况监控和网络监听工具; 记忆:入侵动作,特技区分,渐渐更新,空停工具 |
|
漏洞扫描 | 能否定期或不定期地使用安全分析软件,对内容系统进行安全扫描,及时发现系统的安全漏洞、报警,并提出补救建议 记忆:分析扫描漏洞报警建议 (分骚露宝肩) |
|
病毒防治 | 1、能否提供多种平台的病毒防治; 2、能否提供对服务器的病毒防治; 3、能否提供对电子邮件附件的病毒防治; 4、能否提供对病毒特征信息和检测引擎的定期在线更新服务; 5、防病毒范围是否广泛,是否包括UNIX、Windows、Linux等操作系统。 记忆: 病毒防治萍浮浮,在线更新特征引擎,范围广泛操作系统 (三病房,更特引,范围广) |
|
安全审计 | 1、能否进行系统数据收集、统一存储、集中进行安全审计; 2、是否支持基于PKI的应用审计; 3、是否支持基于XML的审计数据采集协议; 4、是否提供灵活的自定义审计规则; 记忆:数据收存集中,PKI应用,XML审数采,自定义规则 (数守村级,便宜,查蔬菜,自贵) |
|
web信息防篡改系统 | 1、是否支持多种操作系统; 2、是否具有集成发布与监控功能,使系统能够区分合法更新和非法篡改; 3、是否可以实时发布和备份; 4、是否具备自动监控、自动恢复、自动报警的能力; 5、是否提供日志管理、扫描策略管理和更新管理; 记忆:多操,几间分更改,时发呗,自动见汇报,日扫更。 |
1漏4软5防毒网
主动攻击 | 重放、IP地址欺骗、拒绝服务 |
被动攻击 | 流量分析 |
(10)测试模型
前置测试模型 | 1、测试和开发紧密结合 2、每一个交付内容需测试 3、设计阶段测试计划和测试设计 4、验收测试和技术测试相互独立 |
(11)文档测试
开发文档 | 需求说明、可行性研究报告、项目开发计划
软件需求说明书 数据库设计说明书 概要设计说明书 详细设计说明书 可行性研究报告 |
用户文档 | 维护修改建议
用户手册 安装和设置指导 联机帮助 指南、向导 样例、示例、模板 授权/注册登记表 最终用户许可协议 |
管理文档 | 项目开发计划 测试计划 测试报告 开发进度月报 开发总结报告 |
(12)《测试程序说明》:日志、设置、启动、程序
(1)极限编程:有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标(类似于极限登山运动,用什么方式或者走哪条路径都随你,只要登到山顶即可);
极限编程(XP)的十二个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户、编码标准;
(2)系统可维护性评价:可理解性、可测试性、可修改性;
记忆:维护修理车
(3)可维护性
改正性维护 | 指在使用过程中发现了隐蔽错误后,为了诊断和改正这些隐蔽错误而修改软件的活动 |
适应性维护 | 为了适用变化了的环境而修改软件的活动(包括外部环境和数据环境) |
完善性维护 | 为了扩充或完善原有软件的功能或性能而修改软件的活动(不增加新功能,只改进老功能) |
预防性维护 | 为了提高软件的可维护性和可靠性、为未来进一步该改进打下基础而修改软件的活动 |
(4) 需求分析说明书、概要设计说明书的评测内容
需求分析说明书 | 系统定义的目标是否与用户的要求一致; 软件的行为和它必须出来的信息、必须完成的功能是否一致; 设计的约束条件或限制条件是否符合实际; 是否考虑过软件需求的其他方案; …… |
概要设计说明书 | 可追溯性:分析该软件的系统构成、子系统构成,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求; 接口 可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护; 风险 实用性 质量 技术清晰度 各种选择方案 限制 其他具体问题:对于文档、可测试性、设计过程等进行评估; |
(5)评价过程文档
评价需求 | 描述评价的目标,特别是描述了产品的质量需求; |
评价规格说明 | 确定对软件及其部件实行的所有分析和测量,标识要分析和测量的软件部件,按照评价需求验证产生的规格说明 |
评价计划 | 描述评价规格,说明需要实施的操作规程; 描述评价所需用到的方法和工具; |
评价记录 | 评价执行计划是详细记载的动作组成,记录由评价者保留;
|
评价报告 | 执行测量和分析的结果,以及能被重复和重新评价的必要信息; 评价报告首先作为评审草案来发布,其最终版本将交给请求者; |
记忆:需目标质量,评规说分析测量验证,划规程方法工具,录执行计划,报结果。
软件评价过程特性:可重复性、可再现性、公正性、客观性(记忆:苹果,攻克虫灾)
通用评价过程:确定评价需求、规定评价、设计评价、执行评价。
(6)设计模式
结构型 | 装饰器(Decorator) 组合(Composite) 桥接 适配器 外观 享元 代理 |
创建型 | 构建器(Builder) 单例 抽象工厂 建造者 工厂 原型 |
行为型 | 观察者 中介者 访问者 职责链 解释器(Interpreter) 策略 命令 迭代器 备忘录 状态 模板方法 |
记忆:结构(组装桥是外乡代理的),创建(建工厂单元),行为(观众防者的职责是解释策略,并命令爹装备模板)
工厂 | 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 |
抽象工厂 | 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 |
单例 | 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 |
建造者 | 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 |
原型 | 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 |
适配器 Adapter |
将一个类的接口转换成客户希望的另外一个接口。使原本由于接口不兼容而不能一起工作的那些类可以一起工作 |
桥接 Bridge |
将抽象部分与实现部分分离,使它们都可以独立的变化。 |
过滤器 | 我们将创建一个人对象,标准接口和实现了该接口的实体类,来过滤人对象的列表。CriteriaPatternDemo,我们的演示类使用标准对象,基于各种标准和它们的结合来过滤人对象的列表。 |
组合 |
将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 |
装饰 Decorator |
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活 |
外观 | 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 |
享元 | 运用共享技术有效地支持大量细粒度的对象。 |
代理 Proxy Pattern |
为其他对象提供一种代理以控制对这个对象的访问。 |
责任链 | 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 |
命令 | 将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。 |
解释器 | 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 |
迭代器 | 提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 |
中介者 |
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 |
备忘录 | 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 |
观察者 | 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 |
状态 | 允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。 |
空对象 | 我们将创建一个定义操作(在这里,是客户的名称)的 AbstractCustomer 抽象类,和扩展了 AbstractCustomer 类的实体类。工厂类 CustomerFactory 基于客户传递的名字来返回 RealCustomer 或 NullCustomer 对象。 |
策略 | 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 |
模板 | 将步骤过程抽象,具体操作步骤的差异留给具体的子类去实现 |
访问者 | 主要将数据结构与数据操作分离。 |
(7)各种图
软件分析图(详细设计):用于表示模块的执行过程 | 程序流程图(程序框图) N-S图(盒图) PAD图(问题分析图) PDL(伪代码) |
概念结构(概要设计) | 结构图 层次图 HIPO图 E-R图:数据建模 |
UML | 结构图:类图:类与类之间的关系描述系统,静态视图; 组合结构图 构件图:软件中的组件及其相互之间的关系; 部署图:物理部署、实施,使用者(开发、测试、集成人员); 对象图:对象间的关系; 包图 行为图:活动图:系统中哪些地方存在功能,功能和系统中其他组件的功能如何共同满足用例建模的商务需求; 交互图(顺序图:以顺序的步骤与系统的对象交互; 、通信图、交互概览图、时序图)、 用例图:描述系统与外部系统及用户间的交互。包含多个模型元素(系统、参与者、用例),并显示了元素间的各种关系(泛化、关联、依赖); 状态图:捕获对象、子系统和系统的生命周期; |
数据流图 | 功能建模 | 以图形方式描绘数据在系统中流动和处理的过程(需求分析阶段) |
实体-联系图 (E-R) |
数据建模 | 表示实体类型、属性和联系的方法,描述显现实世界的概念模型 |
状态-迁移图(SDT) | 行为建模 | 描述系统或对象的状态,以及导致系统或对象的状态改变的事件 |
(8)数据流图
结构化分析方法的输出:数据流图、数据字典、加工逻辑;
数据字典:数据的信息的集合 | 1、数据项条目:某个数据单项的定义 2、数据流条目:某个数据流的定义 3、文件条目:某个文件的定义 4、加工条目:每个不能分解的基本加工说明 |
加工常用方法 | 1、结构化语言:内层(接近自然语言)、外层(顺序、选择、重复) 2、判定树、判定表:加工 一组动作依赖于多个逻辑条件的取值 3、决策树:多分支判断 |
过程设计:对数据结构和算法的设计
!!!算法设计:依据来自加工规格说明
(9)CMM分级
初始级 | 软件过程无序、混乱 |
可重复级 | 建立基本的项目管理过程,用于对成本、进度和功能特性进行跟踪和控制 |
定义级 | 用于管理和工程的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程 |
管理级 | 软件过程和产品质量有详细的度量标准 |
优化级 | 使用定量信息来不断地进行改进和管理的软件过程 |
记忆:除虫顶管有用
TMM分级
初始级 |
阶段定义级 |
集成级 |
管理级和度量级 |
优化、缺陷预防和质量控制级 |
(10)MVC(模型-视图-控制器)模式:是一种业务逻辑、数据、界面显示分离的方法组织代码
模型 | 负责数据和逻辑业务 |
视图 | 代表用户交互界面 |
控制器 | 负责模型和视图的交互 |
记忆:模型熟络,使用空连接
优点:可重复性、可维护性、降低耦合;
(11)风险分析
风险识别 | 要识别潜在的预算、进度、个体、资源、用户和需求等方面的问题以及对整个项目的影响,并建立风险条目检查表,列出所有可能的风险事项 记忆:识别潜在问题、影响,建立检查表 |
风险预测 | 建立一个表示风险可能性大小的参考标准,描述风险条目的结果,估计风险对项目的影响 记忆:参考标准,描述结果,估计影响 |
风险评估 | 对已存在的或已规划的安全管理措施进行鉴定 |
风险控制 | 方式:风险降低、风险管理计划、风险化解 控制风险:降低、谜面、转嫁、接受
|
记忆:风始于凭空
(12)可靠性管理
需求分析阶段 | 确定可靠性目标; 分析可能影响的可靠性因素; 确定可靠性的验收标准; 制定可靠性管理框架; 制定可靠性文档编写规范; 制定可靠性活动初步计划; 制定可靠性数据收集规范; 记忆:目标、因素、标准、框架、收集编写规范、初步计划 初步计划,目标银矿手边贵 |
概要设计阶段 | 确定可靠性度量; 制定详细的可靠性验收方案; 可靠性设计; 收集可靠性数据; 调整可靠性活动计划; 明确后续阶段的可靠性活动的详细计划; 编制可靠性文档; 记忆:度量、验收方案、设计、收集、调整计划、详细计划、编写文档; 详细计划,毒蛇眼手边跳 |
详细设计阶段 | 可靠性设计; 可靠性预测; 收集可靠性数据; 调整可靠性活动计划; 明确后续阶段的可靠性活动的详细计划; 编制可靠性文档; |
编码阶段 | 可靠性测试; 排错; 收集可靠性数据; 调整可靠性活动计划; 明确后续阶段的可靠性活动的详细计划; 编制可靠性文档; |
测试阶段 | 可靠性测试; 可靠性建模; 可靠性评价; 收集可靠性活动计划; 收集可靠性数据; 调整可靠性活动计划; 明确后续阶段的可靠性活动的详细计划; 编制可靠性文档; |
实施阶段 | 可靠性测试; 排错; 收集可靠性数据; 调整可靠性模型; 可靠性评价; 编制可靠性文档; |
(13)敏捷开发方法:应对快速变化的需求,更强调程序员团队与业务专家之间的紧密协作、面对面沟通、频繁交付新的软件版本、紧凑而自我组织的团队、能够很好地适应需求变化的代码编写和团队组织方法,更注重软件开发中人的作用。
关键词:需求快速变化、人的作用(紧密协作、面对面沟通、团队)、频繁交付版本
(14)质量特性(之前口诀都记很牢了,过了一个国庆又忘了)
外部质量和内部质量 | |
功能性 | 适合性 准确性 互操作性 保密安全性 功能依从性 |
可靠性 | 成熟性 容错性 易恢复性 可靠依从性 |
易用性 | 易理解性 易学性 易操作性 吸引性 易用依从性 |
效率 | 时间特性 资源利用 效率依从性 |
维护性 | 易分析性 易改变性 稳定性 易测试性 维护依从性 |
可移植性 | 适应性 易安装性 共存性 易替换下 可移植依从性 |
使用质量 | 有效性 生产率 安全性 满意度 |
记忆:公失准打虎豹,可成龙伤易恢复,用穴里香草吸引,微风改温度测试,疑是安装共用梯,狮子有效率,每个都依从。
有效生产是安全的,使用起来很满意。
(15)开发模型
螺旋模型 | 瀑布+演化; 加入风险分析; 周期:制定计划、实施工程、风险分析、用户评估 记忆:龙卷风,螺旋形的,像一个演化后的瀑布,充满了风险 |
增量模型 | 渐增式,利于获取需求; 快速开发第一交互产品; 多次交互、开发; 新的增量不得破坏已开发产品; |
瀑布模型 | 需求清晰定义 记忆:飞流直下,从开始到结束中间不更改 |
快速原型模型 | 动态定义需求,快速 |
演化模型 | 渐进式原型 |
喷泉模型 | 面向对象 迭代、无间隙 记忆:喷泉是给观众看的,会一次一次喷出来 |
(16)开发接口类标准:SQL标准、ODBC标准、JDBC标准
(1)CPU组成
控制器 | 程序计数器PC(存储待执行指令地址) |
指令寄存器IR 1、位数与指令字长有关; 2、对用户来说是完全透明的。 |
|
指令译码器ID | |
时序部件 | |
程序状态字寄存器PSW | |
中断机构 | |
运算器 | 算数逻辑单元ALU |
累加寄存器AC | |
数据缓冲寄存器 | |
状态条件寄存器 |
记忆:控制只记忆,狮子计数中
CPU内部的寄存器速度最快;
字长 | 一次能处理多少二进制 字长越长,运算精度越高 |
数据总线 | 宽度和字长相等 影响系统的运算速度 |
地址总线 | 宽度和内存容量相等 |
取指令 | 将pc中的内容送到地址寄存器ar |
(2)RISC与CISC对比
RISC | CISC | |
指令 | 数量少 | 数量多 |
使用频率接近 | 使用频率差别大 | |
定长格式 | 变长格式 | |
寻址方式 | 支持方式少 | 支持方式多 |
实现方式 | 增加通用寄存器、硬布线以逻辑控制为主、采用流水线 | 微程序控制技术 |
寄存器 | 多 | 少 |
记忆:今日少订几朵花(RIsc,指令少/寻址方式少,指令定长,通用寄存器多)
(3)Windows操作系统支持FAT、FAT32、NTFS文件系统
文件级安全管理:通过系统管理员或文件主对文件属性的设置,来控制用户对文件的访问。
文件属性的设置:只执行、隐含、索引、修改、只读、读/写、共享、系统。
(4)影响运算速度的因素:
CPU主频 | 计算机的时钟频率 |
CPU字长 | 进行运算和数据处理的最基本、最有效的信息位长度 |
指令系统合理性 |
(5)外设访问方式,数据传送方式:
中断 | 1、当I/O接口准备好接收数据或准备好向CPU传送数据时,发送中断信号通知CPU; 2、对中断信号确认后,CPU保存正在执行的程序的现场,转而执行提前设置好的I/O中断服务程序;
CPU无需主动查询外设的状态,可并行地工作,提高CPU利用率 |
程序查询 | CPU通过执行程序查询外设的状态,判断外设是否准备好接收数据或准备好向CPU输入数据 |
直接内存存取 | 通过硬件控制实现主存与I/O设备间的直接数据传送,数据的传送过程由DMA控制器进行控制,不需要CPU干预。 |
信道 |
(6)计算机三大核心部件:中央处理器、内部存储器、输入/输出设备。
(1)内聚和耦合
偶然内聚 | 模块内各成分之间毫无关系 |
逻辑内聚 | 逻辑相关的功能放在同一模块中,通过参数决定用哪个功能。如:一个模块读取不同类型外设的输入。 记忆:逻辑惨绝 |
时间内聚 | 模块完成的功能必须在同一时间内执行。如:系统初始化 |
过程内聚 | 模块内部的处理成分是相关的,以特定的次序执行。记忆:把大象装入冰箱的过程 不易于重用 |
通信内聚 | 模块的所有成分都操作同一数据集(数据结构、报表)或生成同一数据集。(!!!同一报表上的操作) 记忆:通信草升级 |
顺序内聚 | 一个模块的各个成分和同一个功能密切相关,且一个成分的输出作为另一个成分的输入。 记忆:顺序入座处 |
功能内聚 | 所有成分对于完成单一的功能都是必须的。 |
记忆:欧罗驶过通顺宫去聚会。
非直接耦合 | 两个模块之间没有直接关系,他们的联系完全是通过主模块的控制和调用来实现的。 记忆:非主流空调 |
数据耦合 | 两个模块彼此间通过数据参数交换信息。 记忆:数据惨叫 |
标记耦合 | 一组模块通过参数表传递记录信息,这个记录时偶一个数据结构的子结构,而不是简单变量。 记忆:标表 |
控制耦合 | 两个模块彼此间传递的信息中有控制信息。 记忆:空心 |
外部耦合 | 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。 记忆:外全变 |
公共耦合 | 两个模块之间通过一个公共的数据区域传递信息。 记忆:拱墅区 |
内容耦合 | 一个模块需要涉及到另一个模块拿到内部信息。 记忆:内内 |
记忆:飞鼠标空外公内吃藕
(2)排序算法
快速排序 | 通过一轮排序将序列分成独立的两部分,一部分比另一部分关键字小,继续对一部分进行同样分割,最后达到整体有序 记忆:快速分割 |
插入排序 | 1、从第一个元素开始,该元素被认为已排序; 2、去下一个元素,在已排序的元素序列中从后向前扫描; 3、若该元素大于新元素,将该元素移到下一位置; 4、重复3,知道找到小于或等于新元素的位置; 5、将新元素插入到下一位置中; 6、重复2-5; |
记忆:稳插鸡毛贵(稳定:直接插入、基数排序、冒泡排序、归并排序)
log鬼快对(时间复杂度是log的:归并排序、快速排序、堆排序)
猫较差,选平方(时间复杂度是n的平方:冒泡、交换、插入、选择)
序列基本有序,采用插入排序;
一层while循环,时间复杂度O(n)
(3)二叉树
完全二叉树 | n-1层是满二叉树,n层至少1个节点 |
满二叉树 | n层节点全满 |
(4)基本圈复杂度EV(g)=1,模块是结构化的(顺序、循环、选择)