硬盘容量
非格式化容量=面数X(磁道数/面)X内圆周长X最大位密度
格式化容量=面数X(磁道数/面)X(扇区数/道)X(字节数/扇区)
注意:有时候题目给出的是直径,算磁道数的时候需要/2再/(磁道密度/mm)
按地址访问的存储器:随机存储器,顺序存储器和直接存储器
按内容访问的存储器:相联存储器
反编译通常不能把可执行文件还原成高级语言代码,通常只能还原成功能上等价的汇编代码.
常用的寻址方式有:
立即寻址:操作数就包含在指令中
直接寻址:操作数存放在内存单元中,指令直接给出内存单元的地址
寄存器寻址:操作数存放在寄存器中,指令中给出寄存器名
寄存器间接寻址:操作数存放在内存单元中,指令给出存放内存单元地址的寄存器名
间接寻址:指令给出存放操作数地址的地址
相对寻址:指令地址码给出一个地址偏移量(可正可负),操作数地址等于本条指令的地址加上偏移量
变址寻址:操作数地址等于变址寄存器内容加上偏移量
RUP每个阶段产生的制品
初启阶段:构想文档 有关用例模型的调查 初始的业务用例 早期的风险评估 可以显示阶段和迭代的项目计划
精化阶段:补充需求分析 软件架构描述 可执行的架构原型
构建阶段:准备交到最终用户手中的产品(软件产品,用户手册和版本描述)
移交阶段:产品发布版本
按照传统软件工程的软件过程,区别如下:
1.需求分析--产生 软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)
2.概要设计--产生 软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。
3.详细设计--产生 软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。
基线是项目储存库中每个工件版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。建立一个初始基线后,以后每次对其进行的变更都将记录为一个差值,直到建成下一个基线。
里程碑处定期建立基线:
生命周期目标里程碑(先启阶段)
生命周期构架里程碑(精化阶段)
初始操作性能里程碑(构建阶段)
产品发布里程碑(产品化阶段)、
CMM等级
第一级 初始级(最低级) 软件工程管理制度缺乏,过程缺乏定义、混乱无序。成功依靠的是个人的才能和经验,经常由于缺乏管理和计划导致时间、费用超支。管理方式属于反应式,主要用来应付危机。过程不可预测,难以重复。
第二级 可重复级 基于类似项目中的经验,建立了基本的项目管理制度,采取了一定的措施控制费用和时间。管理人员可及时发现问题,采取措施。一定程度上可重复类似项目的软件开发。需求管理,项目计划,项目跟踪和监控,软件子合同管理,软件配置管理,软件质量保障
第三级 已定义级 已将软件过程文档化、标准化,可按需要改进开发过程,采用评审方法保证软件质量。可借助CASE工具提高质量和效率。组织过程定义,组织过程焦点,培训大纲,软件集成管理,软件产品工程,组织协调,专家审评
第四级 已管理级 针对制定质量、效率目标,并收集、测量相应指标。利用统计工具分析并采取改进措施。对软件过程和产品质量有定量的理解和控制。定量的软件过程管理和产品质量管理
第五级 优化级(最高级) 基于统计质量和过程控制工具,持续改进软件过程。质量和效率稳步改进。 缺陷预防,过程变更管理和技术变更管理
软件过程改进的框架:过程改进基础设施,过程改进线路图,软件过程评估方法和软件过程改进计划
每一次改进需要经历4个步骤:评估,计划,改进和监控
软件系统的可维护评价指标包括:可理解性,可测试性,可修改性,可靠性,可移植性,可使用性和效率
软件过程模型(主要)
线性顺序:瀑布模型,传统生存周期,需求明确
原型实现 从需求收集开始
快 速(增量模型) 强调极短的开发周期
详细:
http://baike.baidu.com/link?url=gcfunkzPS17gWxDgs_LrwS_iAoZwbgqYPMG7OHs0QfMgCGblyEcndtYp6a4PykFtjJn5YkiyHm48YZ296qy_RGYEFtnAlPiOJ4Wmkif7kMEmFVUX7BdvwUp97QYNU_bReYK_dF6awGbZrM51LWW-ea
windows IIS 身份认证(从高到低)
集成windows身份认证:以kerberos票证的形式通过网络向用户发送验证信息
摘要式身份认证:将用户凭据作为MD5哈希或消息摘要在网络中进行传输
.NET Passport身份验证:对IIS的请求必须在查询字符串或Cookie中包含有效的.NET Passport凭据,提供了单一登陆安全性,为用户提供对Internet上各种服务的访问权限
基本身份验证:用户凭据以明文形式在网络中发送
音乐合成技术主要有FM调频音乐合成和Wave Table 波形表音乐合成两种方式
ISO/IEC9126软件质量模型
质量特性 | 功能性 | 可靠性 | 易用性 | 效率 | 维护性 | 可移植性 |
质量子特性 | 适合性 | 成熟性 | 易理解性 | 时间特性 | 易分析性 | 适应性 |
准确性 | 容错性 | 易学性 | 资源利用性 | 易改变性 | 易安装性 | |
互操作性 | 易恢复性 | 易操作性 |
| 稳定性 | 共存性 | |
保密安全性 |
| 吸引性 |
| 易测试性 | 易替换性 | |
功能性的依从性 | 可靠性的依从性 | 易用性的依从性 | 效率依从性 | 维护性的依从性 | 可移植性的依从性 |
设计模式P562
抽象工厂:提供一个创建一系列相关或相互依赖的对象的借口,而无需指定它们具体的类
生成器:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
工厂方法:定义一个创建对象的接口,让子类决定实例化哪一个类
原型:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
单例:保证一个类仅有一个实例,并提供一个访问它的全局访问点
适配器:将一个类的接口转换成客户希望的另外一个接口
桥接:将抽象部分和其实现部分分离,使他们都可以独立的变化
组合:将对象组合成树形结构以表示”整体-部分”的结构层次
装饰:动态地给一个对象添加一些额外的职责
外观:为子系统的一组接口提供一个一致的界面(一个高层接口)
享元:运用共享技术有效的支持大量细粒度的对象
代理:为其他对象提供一种代理以控制对这个对象的访问
责任链:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.
命令:将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作.
解释器:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器用该表示来解释语言中的句子
迭代器:提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示
中介者:用一个中介对象来封装一系列的对象交互.
备忘录:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态.这样以后就可以恢复到原先保存的状态.
观察者:定义对象间的一种一对多的依赖状态,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
状态:允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类
策略:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换.此模式使得算法可以独立与使用它们的客户而变化
模板方法:定义一个操作中的算法骨架而将一些步骤延迟到子类中.使得子类可以不改变算法的结构即可重新定义该算法的某些特定步骤
访问者:表示一个作用于某对象结构中的各元素的操作.它不允许在不改变各元素的类的前提下定义作用于这些元素的新操作
关系数据库规范化
1NF:关系模式的每个分量都是不可再分的数据项
2NF:每一个非主属性完全依赖于码(消除了部分依赖)
3NF:在2NF基础上消除了非主属性的传递函数依赖
BCNF:排除了任何属性对候选键的传递依赖和部分依赖
4NF:消除了非函数依赖的多值依赖(存疑)
5NF: 如果关系模式R中的每一个连接依赖均由R的候选码所隐含,(任意投影后自然连接恢复原样)
文法
0型文法,短语文法,图灵机:左有非终结符
1型文法,上下文有关文法,线性有界自动机:除直接到终结符外,左短右长
2型文法,上下文无关文法,下推自动机:左都是一个非终结符
3型文法,正规文法,有限状态自动机:左一非终结符,右一非终结符加一终结符(顺序可换)
不确定的有限自动机:在同一个状态下输入一个相同的符号会进入的下一个状态不一定相同
2路归并是指将两个有序序列合并为一个有序序列,从两个序列中各取一个进行比较,输出较小者,然后从取出其的序列中再取一个,继续比较.优点是占用内存空间少,适合用于外排.对于无序序列反复2路归并,属于分治思想.
HTML中<tr>用于标记行,<col>用于标记列,<td>用于标记单元格,<HR>表示分隔线,align属性用于定义对齐方式
包过滤防火墙依据源IP,源端口,目标IP,目标端口
极限编程中有四个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)、此外还扩展了第五个价值观:谦逊(Modesty)。
敏捷开发方法XP特性包含在12个最佳实践中:
1计划游戏:快速制定计划,随着细节的不断变化而完善
2小型发布:系统的设计要能够尽可能早的交付
3隐喻:找到合适的比喻传达信息
4简单设计:只处理当前的需求使设计保持简单
5测试先行:先写测试代码再编写程序
6重构:重新审视需求和设计,重新明确的描述它们,以符合新的和现有的需求
7结对编程
8集体代码所有制
9持续集成:可以按日甚至按小时为客户提供可运行的版本
10每周工作40小时
11现场客户
12编码标准
排序算法比较
排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性
冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定
简单选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定
直接插入排序 O(n^2) O(n) O(n^2) O(1) 稳定
希尔排序 O(nlogn)-O(n^2) O(n) O(n^2) O(1) 不稳定
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定
快速排序 O(nlogn) O(nlogn) O(n^2) O(logn)-O(n^2)不稳定
7大比较排序算法总结: http://www.cnblogs.com/eniac12/p/5329396.html
递归式时间复杂度总结: http://blog.csdn.net/xiaoxian8023/article/details/8134260
MPEG-1 VCD音,视频信息压缩编码方案
MPEG-2 DVD,广播电视音,视频信息压缩编码方案
MPEG-4 视像电话等窄带图像编码
MPEG-7 多媒体内容描述接口标准
MPEG-21多媒体应用框架标准
PERT图不能描述各任务之间的并行情况,Gantt图不能描述各任务之间的依赖关系
逻辑 与 运算优先级高于逻辑或 运算
软件配置管理是一组管理整个软件生存期各阶段中变更的活动,主要包括变更标识,变更控制和版本控制
软件设计时需要遵循抽象,模块化,信息隐蔽和模块独立的原则。耦合性和内聚性是模块独立性的两个定性标准,在划分软件系统模块时,尽量做到高内聚低耦合,提高软件的独立性
七种耦合(独立性从强到若,耦合性从低到高):非直接耦合(Nondirect Coupling) 数据耦合(DataCoupling) 印记耦合(Stamp Coupling) 控制耦合(Control Coupling) 外部耦合(ExternalCoupling) 公共耦合(Common Coupling) 内容耦合(Content Coupling)
6种内聚(独立性越高,内聚性越强)偶然内聚,逻辑内聚,时间内聚,通信内聚,顺序内聚,功能内聚
面向对象的开发方法有Booch方法,Coad方法,OMT方法
面向数据结构的开发方法有Jackson方法
面向对象分析包含5个活动:认定对象,组织对象,描述对象间的相互作用,定义对象的操作,定义对象的内部信息
开闭原则是指一个软件实体应当对扩展开放,对修改关闭,即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.
里氏代换原则是指一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且对于使用基类和使用子类的情况,软件系统的行为一致
依赖倒转原则是指要依赖于抽象而不依赖于实现,或者说要依赖接口编程,不要针对实现编程
依赖<关联<聚合<组合
WML是XML的子集
装填因子α表示了哈希表的装满程度,α越大发生冲突的可能性就越大
逆波兰式也叫后缀表达式
UML图中,用例之间有3种关系:
包含(include):多个用例中有相同的数据流,将其抽取出来作为新的数据流
*概括(generalize):子用例继承父用例,可以增加新的行为和重置
扩展(extend):在声明的扩展点上加入新的动作构成新的用例