软考

<!doctype html>

软考

数据库技术

 

1.在人工管理阶段,数据无法共享,冗余度大,不独立,完全依赖程序:在文件系统阶段,数据共享性差;在数据库系统阶段,共享性好,独立性高。在数据库管理技术的发展中,数据独立性最高的是数据库系统


2.概念模型用于信息世界的建模,是将现实世界的客观对象抽象为某种信息结构。这种结构不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型。实际上是现实世界到机器世界的一个中间层次。数据库的概念模型独立于具体的机器和DBMS


3.数据库的基本特点是数据非结构化、数据独立性、数据冗余小,易扩充、统一管理和控制 数据库采用复杂的数据模型表示数据结构;数据共享性高、冗余度小、易扩充:有较高的数据独立性;数据库系统为用户提供方便的用户接口;系统提供数据库的恢复、并发控制、数据完整性和数据安全性4个方面的数据控制功能。


4.数据库系统中,存储在计算机内有结构的数据集合称为数据库


5.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为数据操纵功能数据库管理系统共有数据定义功能(即用户可以通过DDL方便她对数据库中的数据对象进行定义);数据操纵功能(即用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等操作):数据库的运行管理(即数据库在建立、运用和维护时,由DBMS统一管理、统一控制,以保证数据的安全性、完整性):数据库的建立和维护功能(包括数据库初始数据的输入、转换功能、数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等)。


6.数据库管理系统是在操作系统支持下的系统软件


7.层次模型不能直接表示m:n关系


8.数据库设计通常分为6个阶段:

1、需求分析:分析用户的需求,包括数据、功能和性能需求;

2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图;

3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;

4、数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;

5、数据库的实施:包括编程、测试和试运行;

6、数据库运行与维护:系统的运行与数据库的日常维护。


9.[数据库系统]DBS(Data Base System,简称DBS)是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。


10 数据库具有概念模式、外模式和内模式三级结构及外模式/模式映像、模式/内模式映像二层映像。概念模式是对数据库中全部数据的整体逻辑结构的描述,它由若干个概念记录类型组成。外模式又称子模式或用户模式,是用户与数据库的接口,是用户用到的那部分数据的描述,它由若干个外部记录类型组成。内模式是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组成方式,以及数据控制方面的细节。外模式/模式映像存在于外部级和概念级之间,用于定义外模式和概念模式间的对立性,一般在外模式中描述。模式/内模式映像存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性,一般在内模式中描述

11.概念模型是现实世界的第一层抽象,这一类最著名的模型是实体-联系模型


12.属性是表示一个实体所具有的某一个特征,一个实体可以由若干个属性来刻画,因此属性可以作为区分不同实体的依据。


13.在关系数据库中,用来表示实体之间联系的是二维表


14 .

  • 数据定义语言:负责数据的模式定义与数据的物理存取构建;

  • 数据操纵语言:负责数据的操纵,如查询与增、删、改等;

  • 数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。


     

15.用树形结构来表示各类实体以及实体之间的联系的数据模型称为层次数据模型


16.在数据库的三级模式结构中,内模式的个数只有一个·


17.( 数据库)是按照一定的数据模型组织的、长期存储在计算机内,可为多个用户共享的数据的集合。( 数据库)是按照一定的数据模型组织的、长期存储在计算机内,可为多个用户共享的数据的集合。


18.单个用户使用的数据视图的描述称为外模式


19.不是数据库管理系统设计DBA数据库管理员的职责


20.在网状模型中一个结点可以有多个双亲,节点之间可以有多种联系····


21.在数据库设计中,在概念设计阶段可用E-R方法,其设计出的图称为实体联系图


 
 
 
 
 
 
 
 
1
SELECT [ALL|DISTINCT] <目标表达式> [, <目标表达式>]…]FROM <表名> [,<表名>]…[WHERE <条件表达式>]SELECT后跟随的是结果属性列,
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
  1. 原子性(Atomicity):事务是原子的,要么做,要么都不做。2. 一致性(Consistency):事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。3. 隔离性隔离性(lsolation):事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事物都是不可见的。4. 持久性(Durability):一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。题干描述的是持久性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
E-R模型向关系模型转换时,两个以上实体之间多对多的联系应该转换为一个独立的关系模式,且该关系模式的关键字由这些实体的关键字组成。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
不同的数据模型具有不同的数据结构形式。目前最常用的数据结构模型有层次模型 (hierarchical model)、网状模型(network model)、关系模型(relational Model)和面向对象数据模型(object oriented model)。其中层次模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代非常流行,在数据库系统产品中占据了主导地位。到了20世纪80年代,逐渐被关系模型的数据库系统取代,但某些地方,由于历史的原因,目前层次和网状数据库系统仍在使用。 关系模型是目前最常用的数据模型之一。关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用二维表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。关系模型是由若干个关系模式组成的集合。一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念。关系是一个实例,也是一张表,对应于程序设计语言中变量的概念。给定变量的值随时间可能发生变化;类似地,当关系被更新时,关系实例的内容也随时间发生了变化。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
需求分析阶段的任务是:对现实世界要处理的对象(组织、部门、企业等)进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,确定系统边界、收集支持系统目标的基础数据及其处理方法。 逻辑设计阶段的任务之一是对关系模式进一步的规范化处理。因为生成的初始关系模式并不能完全符合要求,会有数据冗余、更新异常存在,这就需要根据规范化理论对关系模式进行分解,以消除冗余和更新异常。不过有时根据处理要求,可能还需要增加部分冗余以满足处理要求。逻辑设计阶段的任务就需要作部分关系模式的处理,分解、合并或增加冗余属性,提高存储效率和处理效率。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
因为结构冲突是指同一实体在不同的E-R图中有不同的属性,同一对象在某一E-R图中被抽象为实体而在另一E-R图中又被抽象为属性,需要统一。 因为属性冲突是指同一属性可能会存在于不同的E-R图,由于设计人员不同或是出发点不同,对属性的类型、取值范围、数据单位等可能会不一致,这些属性对应的数据将来只能以一种形式在计算机中存储,这就需要在设计阶段进行统一。 因为命名冲突是指相同意义的属性在不同的E-R图上有着不同的命名,或是名称相同的属性在不同的E-R图中代表着不同的意义,这些也要进行统一。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
授权语句的格式如下: GRANT〈权限> [,<权限>]...[ON<对象类型><对象名>] TO <用户>[,<用户][WITH GRANT OPTION]; 若在授权语句中指定了 “WITH GRANT OPTION”子句,那么,获得了权限的用户还可以将该权限赋给其他用户。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据库管理系统利用日志文件来进行事务故障恢复和系统故障恢复。在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入数据文件;一旦发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。 用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
物理独立性是指的内模式发生变化,只需要调整模式与内模式之间的映像,而不用修改应用程序。逻辑独立性是指的模式发生变化,只需要调整外模式与模式之间的映像,而不用修改应用程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据库管理系统的安全措施有3个方面: ①权限机制:通过权限机制,限定用户对数据的操作权限,把数据的操作限定在具有指定权限的用户范围内,以保证数据的安全。在标准SQL中定义了授权语句GRANT来实现权限管理。 ②视图机制:通过建立用户视图,用户或应用程序只能通过视图来操作数据,保证了视图之外的数据的安全性。 ③数据加密:对数据库中的数据进行加密,可以防止数据在存储和传输过程中失密。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在多用户共享的系统中,许多用户可能同时对同一数据进行操作,可能带来数据不一致问题。为了解决这类问题,数据库系统必须控制事务的并发执行,保证数据库处于一致的状态,在并发控制中引入两种锁:排他锁(Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)。 排他锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。 共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁 来读取,只要数据A上有S锁,任何事务都只能再对其加S锁(读取)而不能加X锁 (修改)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在数据库系统中,如果对数据库的一张表创建聚簇索引,意味着重新确定表中数据的物理顺序,即需要改变的是数据库的内模式。聚簇索引对于那些经常要搜索范围值的列特别有效。使用聚簇索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提高此类查询的性能。同样,如果对从表中检索的数据进行排序时经常要用到某一列,则可以将该表在该列上聚簇(物理排序),避免每次查询该列时都进行排序,从而节省成本。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
三层模式。对于题干给出的视图、存储文件、基本表分别对应:视图-外模式,存储文件-内模式,基本表-模式。 因为对一个给定的关系模式进行分解,使得分解后的模式是否与原来的模式等价有如下三种情况: ①分解具有无损连接性; ②分解要保持函数依赖; ③分解既要无损连接性,又要保持函数依赖。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
投影运算n是向关系的垂直方向进行运算,其含义为在关系R中选择出若干属性列 组成新的关系,记作: πAi,Ai2,…,Aii(R) = {t[Ai1,Ai2…,Ain]| t∈R]。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据库管理系统利用日志文件来进行事务故障恢复和系统故障恢复。在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入数据文件;一旦发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在数据库设计中,将E-R图转换为关系模式是逻辑设计的主要内容。转换中将实体转换为关系模式,对实体中的派生属性不予考虑,组合属性只取各组合分量,若包含多值属性,通常一个实体对应一个关系模式。对实体中的多值属性,取实体的码和多值属性构成新增的关系模式,且该新增关系模式中,实体的码多值决定多值属性,属于平凡的多值依赖,关系属于4NF。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据库设计中规范化是在逻辑设计阶段进行的一项工作,该工作负责把关系模式进行规范,以减少冗余,以及一定程度上消除修改异常,插入异常及删除异常。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在多用户共享的系统中,许多用户可能同时对同一数据进行操作,可能带来数据不一致问题。为了解决这类问题,数据库系统必须控制事务的并发执行,保证数据库处于一致的状态,在并发控制中引入两种锁:排他锁(Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)。 排他锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。 共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁 来读取,只要数据A上有S锁,任何事务都只能再对其加S锁(读取)而不能加X锁 (修改)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
设U 是关系模式R 的属性集,F 是R 上成立的只涉及U 中属性的函数依赖集。函数依赖的推理规则有以下三条:   自反律:若属性集Y 包含于属性集X,属性集X 包含于U,则X→Y 在R 上成立。(此处X→Y是平凡函数依赖)   增广律:若X→Y 在R 上成立,且属性集Z 包含于属性集U,则XZ→YZ 在R 上成立。   传递律:若X→Y 和 Y→Z在R 上成立,则X →Z 在R 上成立。根据上面三条推理规则,又可推出下面三条推理规则:合并规则:若X→Y,X→Z,则X→YZ为F所蕴含;伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含;分解规则:若X→Y,Z⊆Y,则X→Z为F所蕴含。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
分片透明:是指用户不必关系数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关系,其应用程序的编写与集中式数据库相同。 复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。 位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的 局部映像透明性(逻辑透明)是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关系局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。 本题提到不需要了解具体如何分块存储,如果描述为不需要了解物理存储或存储位置,则为位置透明,而涉及到如果分块存储,应该为分片透明。对于分布式数据库,分片是一种大局性的划分,而物理上的存储位置则更为底层,所以对于如何分块存储,强调更多的是分片而不是物理位置。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
为了保证数据库中数据的安全可靠和正确有效,数据库管理系统(DBMS)提供数据库恢复、并发控制、数据完整性保护与数据安全性保护等功能。数据库在运行过程中由于软硬件故障可能造成数据被破坏,数据库恢复就是在尽可能短的时间内把数据库恢复到故障发生前的状态。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于这类题首先要求解出其候选键,候选键即能唯一确定一个元组的属性或属性组,对于这类题,主要通过函数依赖集来求解,从候选键出发,通过函数依赖集中的依赖关系,能推出关系模式中所以属性即可。因此可知本题的候选键是EM,候选键中的属性是主属性,而其他属性是非主属性。1NF要求关系模式中的属性都是原子属性,即不可再分的属性,显然本题符合。2NF要求消除非主属性对候选键的部分依赖,而E→N就是一个部分依赖,因此不符合2NF。达不到2NF,因此就不可能达到3NF或BCNF。因为关系模式达不到2NF,因此肯定存在冗余,修改操作的不一致性、插入和删除异常。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
概念模式设计阶段是根据对用户信息需要的分析设计E-R图,对于属性的分析,派生属性是指可以由其他属性经过运算得到的属性,因而派生属性产生冗余,通常不存储, 如员工实体Emp的年龄;多值属性是指一个实体在该属性上会同时取多个属性值,这些值也都必须存储,如员工实体Emp的联系方式。数据约束也是描述用户信息的,根据参照完整性约束的定义,Emp实体中的部门号属性应为外码,应该用Foreign Key进行外键约束。 标准SQL对数据库对象(基本表、索引和视图等)的创建、修改和删除定义了一组操作分别为CREATE、ALTER和DROP;对基本表和视图中数据的插入、删除和修改定义了操作分别为INSERT、DELETE和UPDATE,这两组操作不能混淆。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在数据库系统中,当视图创建完毕后,数据字典中存放的是视图定义。视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对应表的査询基础上的。和真实的表一样,视图也包括几个被定义的数据列和多个数据行,但从本质上讲,这些数据列和数据行来源于其所引用的表。因此,视图不是真实存在的基础表,而是一个虚拟表, 视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的基本表中。       
 
 

査询条件Where与Having的区別:Where是针对单条记录的判断条件,而Having是针对分组之后的判断条件。同时,由于考虑到项目号可能重复,所以要加Distinct去掉重复的项目。


CREATE [ ALGORITHM={UNDEFINED | MERGE | TEMPTABLE} ]

VIEW view_name AS

SELECT column_name(s) FROM table_name

[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

ALGORITHM :可选参数, 视图算法

UNDEFINED: mysql自动选择算法

MERGE:使用的视图语句与视图定义合并起来

TEMPTABLE: 结果存入临时表,然后用临时表执行语句。

view_name : 视图名称

column_name(s): 指查询的字段,也就是视图的名称

WITH CHECK OPTION:表示视图在更新时保证在视图的权限范围内

CASCADED :默认值 更新视图时要满足所有相关视图和表的条件,才进行更新

LOCAL:表示更新视图时满足该视图本身定义的条件即可更新。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
关系代数表达式查询优化的原则如下: ①提早执行选取运算。对于有选择运算的表达式,应优化成尽可能先执行选择运算的等价表达式,以得到较小的中间结果,减少运算量和从外存读块的次数。 ②合并乘积与其后的选择运算为连接运算。在表达式中,当乘积运算后面是选择运算时,应该合并为连接运算,使选择与乘积一道完成,以避免做完乘积后,需再扫描一个大的乘积关系进行选择运算。 ③将投影运算与其后的其他运算同时进行,以避免重复扫描关系。 ④将投影运算和其前后的二目运算结合起来,使得没有必要为去掉某些字段再扫描一遍关系。 ⑤在执行连接前对关系适当地预处理,就能快速地找到要连接的元组。方法有两种:索引连接法、排序合并连接法。 ⑥存储公共子表达式。对于有公共子表达式的结果应存于外存(中间结果),这样,当从外存读出它的时间比计算的时间少时,就可节约操作时间。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
OLAP工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
共享锁(S锁):又称读锁,若事务T对数据对象A加上S锁,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。 排他锁(X锁):又称写锁。若事务T对数据对象A加上X锁,其他事务不能再对A加任何锁,直到T释放A上的锁。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
根据主属性的定义,"包含在任何一个候选码中的属性叫做主属性(Prime attribute),否则叫做非主属性(Nonprime attribute)"。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在多对多联系转换为关系模式时,应该将两个实体分别转换为一个关系模式,并将其联系也转换为一个独立的关系模式,该关系模式的属性包括联系本身的属性以及两实体的主键。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
为了保证数据库中数据的安全可靠和正确有效,数据库管理系统(DBMS)提供数据库恢复、并发控制、数据完整性保护与数据安全性保护等功能。数据库在运行过程中由于软硬件故障可能造成数据被破坏,数据库恢复就是在尽可能短的时间内,把数据库恢复到故障发生前的状态。具体的实现方法有多种,如:定期将数据库作备份;在进行事务处理时,对数据更新(插入、删除、修改)的全部有关内容写入日志文件;当系统正常运行时,按一定的时间间隔,设立检查点文件,把内存缓冲区内容还未写入到磁盘中去的有关状态记录到检查点文件中;当发生故障时,根据现场数据内容、日志文件的故障前映像和检査点文件来恢复系统的状态。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
JDBC是Java技术中访问数据库的方式,也是目前用Java技术实现的基于Web的应用的数据库访问方式。COM是一种组件技术,CGI是一种网络应用技术,而XML是一种数据格式定义,它们均不是访问数据库的方式。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
DDBS的基本特点: 1.物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。 2.逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。 3.场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。 4.场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
哈希表和二叉排序树都可以在查找过程中动态创建,属于动态查找表。顺序查找方法按照设定的次序依次与查找表中元素的关键字进行比较,在顺序存储结构和链表结构上都可以实现该查找过程。二分查找需要对中间元素进行快速定位,在链表结构上无法实现。       
 
 

 

计算机组成与结构

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
海明码是一种多重(复式)奇偶检错编码。它将信息用逻辑形式编码,以便能够检和纠错。用在海明码中的全部传输码字是由原来的信息和附加的奇偶校验位组成的。每一个这种奇偶位被编在传输码字的特定位置上。推导并使用长度为n位的码字的海明码,所需步骤如下:(1)确定最小的校验位数k,将它们记成D1、D2、…、Dk,每个校验位符合不同的奇偶测试规定。(2)原有信息和k个校验位一起编成长为n+k位的新码字。选择k校验位(0或1)需满足必要的奇偶条件。(3)对所接收的信息作所需的k个奇偶检查。(4)如果所有的奇偶检查结果均正确,则认为信息无错误。如果发现有一个或多个错了,则错误的位由这些检查的结果来唯一地确定。求海明码时的一项基本考虑是确定所需最少的校验位数k。考虑长度为n位的信息,且附加了k个校验位,则所发送的总长度为n+k。在接收器中要进行k个奇偶检查,每个检查结果或是真或是假。这个奇偶检查的结果可以表示成一个k位的二进字,它可以确定最多2k种不同状态。这些状态中必有一个其所有奇偶测试都是真的,它便是判定信息确的条件。于是剩下的(2k-1)种状态,可以用来判定误码的位置。于是导出以下关系: 2k-1≥n+k       
 
 

CPU是计算机的控制中心,主要由运算器、控制器、寄存器组和内部总线等部件组成。控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:从内存中取出一条指令,并指出下一条指令在内存中的位置;对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入输出设备之间数据的流动。 程序计数器(PC)是专用寄存器,具有寄存信息和计数两种功能,又称为指令计数器,在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的初始内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,因此修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出 的直接转移的地址得到。


指令寄存器(IR)用来保存当前正在执行的指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器(ID)就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。 地址寄存器(AR)用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。 为了保证程序指令能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。指令寄存器是CPU中的关键寄存器,其内容为正在执行的指令,显然其位数取决于指令字长。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机中主机与外设间进行数据传输的输入输出控制方法有程序控制方式、中断方式、DMA等。 在程序控制方式下,由CPU执行程序控制数据的输入输出过程。 在中断方式下,外设准备好输入数据或接收数据时向CPU发出中断请求信号,若CPU决定响应该请求,则暂停正在执行的任务,转而执行中断服务程序进行数据的输入输出处理,之后再回去执行原来被中断的任务。 在DMA方式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU的负担,可以大大节省系统资源。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序计数器是用于存放下一条指令所在单元的地址的地方。在程序执行前,必须将程序的起始地址,即程序的一条指令所在的内存单元地址送入程序计数器,当执行指令时,CPU将自动修改程序计数器的内容,即每执行一条指令程序计数器增加一个量,使其指向下一个待指向的指令。程序的转移等操作也是通过该寄存器来实现的。因此CPU中跟踪指令地址的是程序计数器(PC)。指令寄存器一般用来保存当前正在执行的一条指令。数据寄存器主要是用来保存操作数和运算结果等信息的,其目的是为了节省读取操作数所需占用总线和访问存储器的时间。地址寄存器一般用来保存当前CPU所访问的内存单元的地址,以方便对内存的读写操作。       
 
 

地址寄存器一般用来保存当前CPU所访问的内存单元的地址,以方便对内存的读写操作。累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器ALU是CPU的执行单元,主要负责运算工作。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
从Cache-主存层次实现的目标看,一方面既要使CPU的访存速度接近于访Cache的速度,另一方面为用户程序提供的运行空间应保持为主存容量大小的存储空间。在采用Cache-主存层次的系统中,Cache对用户程序而言是透明的,也就是说,用户程序可以不需要知道Cache的存在。因此,CPU每次访存时,依然和未使用Cache的情况一样,给出的是一个主存地址。但在Cache-主存结构中,CPU首先访问的是Cache,并不是主存。为此,需要一种机制将CPU的访主存地址转换成访Cache地址,==这个处理过程对速度要求非常高,因此其是完全由硬件来完成的。==Cache的工作是建立在程序与数据访问的局部性原理上。经过对大量程序执行情况的结果分析:在一段较短的时间间隔内程序集中在某一较小的内存地址空间执行,这就是程序执行的局部性原理。同样,对数据的访问也存在局部性现象。 为了提高系统处理速度才将主存部分存储空间中的内容复制到工作速度更快的Cache中,同样为了提高速度的原因,Cache系统都是由硬件实现的。计算机系统中的CPU内部对通用寄存器的存取操作是速度最快的,其次是Cache,内存的存取速度再次,选项中访问速度最慢的就是作为外存的硬盘。它们共同组成分级存储体系来解决存储容量、成本和速度之间的矛盾。计算机中不同容量、不同速度、不同访问形式、不同用途的各种存储器形成的是一种层次结构的存储系统。所有的存储器设备按照一定的层次逻辑关系通过软硬件连接起来,并进行有效的管理,就形成了存储体系。不同层次上的存储器发挥着不同的作用。一般计算机系统中主要有两种存储体系:Cache存储体系由Cache和主存储器构成,主要目的是提高存储器速度,对系统程序员以上均透明;虚拟存储体系由主存储器和在线磁盘存储器等辅存构成,主要目的是扩大存储器容量,对应用程序员透明。                            
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机中的CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。其中,控制器的作用是控制整个计算机的各个部件有条不紊地工作,它的基本功能就是从内存取指令和执行指令。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在具有层次结构存储器的计算机中,虚拟存储器是为用户提供一个比主存储器大得多的可随机访问的地址空间的技术。虚拟存储技术使辅助存储器和主存储器密切配合, 对用户来说,好像计算机具有一个容量比实际主存大得多的主存可供使用,因此称为虚拟存储器。虚拟存储器的地址称为虚地址或逻辑地址。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在运算器中,累加寄存器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器,能进行加、减、读出、移位、循环移位和求补等操作,是运算器的主要部分。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 广义地讲,任何连接两个以上电子元器件的导线都可以称为总线。通常可分为4类: ①芯片内总线。用于在集成电路芯片内部各部分的连接。 ②元件级总线。用于一块电路板内各元器件的连接。 ③内总线,又称系统总线。用于构成计算机各组成部分(CPU、内存和接口等)的连接。 ④外总线,又称通信总线。用计算机与外设或计算机与计算机的连接或通信。 连接处理机的处理器、存储器及其他部件的总线属于内总线,按总线上所传送的内容分为数据总线、地址总线和控制总线。总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路,通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息。                 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
补码本身是带符号位的,补码表示的数字中0是唯一的,不像原码有+0和-0之分,也就意味着n位进制编码可以表示2n个不同的数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间(即主存与外设之间)直接成块传送。   DMA控制器在需要的时候代替CPU作为总线主设备,在不受CPU干预的情况下,控制I/O设备与系统主存之间的直接数据传输。DMA操作占用的资源是系统总线,而CPU并非在整个指令执行期间即指令周期内都会使用总线,故DMA请求的检测点设置在每个机器周期也即总线周期结束时执行,这样使得总线利用率最高。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
VLIW:(Very Long Instruction Word,超长指令字)一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。CPU执行指令的过程中,根据时序部件发出的时钟信号按部就班进行操作。在取指令阶段读取到的是指令,在分析指令和执行指令时,需要操作数时再去读操作数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CPU中常设置多个寄存器,其中,程序计数器的作用是保存待读取指令在内存中的地址,累加器是算逻运算单元中用来暂存源操作数和计算结果的寄存器,指令寄存器暂存从内存读取的指令,地址寄存器暂存要访问的内存单元的地址。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CPU的控制器负责依次访问程序指令,进行指令译码,并协调其他设备,通常由程序计数器、指令寄存器、指令译码器、状态/条件寄存器、时序发生器、微操作信号发生器组成。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在CPU内外的高速缓存是用来解决CPU与内存之间速度、容量不匹配的问题,与外存无关,可以提高CPU访问主存数据或指令的效率。Cache不属于主存,与主存容量无关。Cache容量相对于其他存储层次,量级较小,不能扩大存储系统的存量。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CISC (Complex Instruction Set Computer,复杂指令集计算机)的基本思想是:进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。 
 
 

RISC (Reduced Instruction Set Computer,精简指令集计算机)的基本思想是:通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。在20世纪70年代末开始兴起,导致机器的指令系统进一步精炼而简单。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机工作时就是取指令和执行指令。一条指令往往可以完成一串运算的动作,但却需要多个时钟周期来执行。随着需求的不断增加,设计的指令集越来越多,为支持这些新增的指令,计算机的体系结构会越来越复杂,发展成CISC指令结构的计算机。而在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序中常用的只占20%,显然这种结构是不太合理的。 RISC和CISC在架构上的不同主要有: ①在指令集的设计上,RISC指令格式和长度通常是固定的(如ARM是32位的指令)、且寻址方式少而简单、大多数指令在一个周期内就可以执行完;CISC构架下的指令长度通常是可变的、指令类型也很多、一条指令通常要若干周期才可以执行完。由于指令集多少与复杂度上的差异,使RISC的处理器可以利用简单的硬件电路设计出指令解码功能,这样易于流水线的实现。相对的CISC则需要通过只读存储器里的微码来进行解码,CISC因为指令功能与指令参数变化较大,执行流水线作业时有较多的限制。 ②RISC架构中只有载入和存储指令可以访问存储器,数据处理指令只对寄存器的内容进行操作。为了加速程序的运算,RISC会设定多组的寄存器,并且指定特殊用途的寄存器。CISC构架则允许数据处理指令对存储器进行操作,对寄存器的要求相对不高。     
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
釆用8位补码表示整型数据时,可表示的数据范围为-128〜127,因此进行127+1运算会产生溢出。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
寻址方式是指寻找操作数或操作数地址的方式。指令系统中采用不同寻址方式的目的是为了在效率和方便性上找一个平衡。立即寻址和寄存器寻址在效率上是最快的, 但是寄存器数目少,不可能将操作数都存入其中等待使用,立即寻址的使用场合也非常有限,这样就需要将数据保存在内存中,然后使用直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址及变址寻址等寻址方式将内存中的数据移入寄存器中。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。在直接寻址中,指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址。间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号Ri,这个指定的寄存器中存放着操作数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
每个地址编号为一个存储单元(容量为1个字节),地址区间OOOOAOOOH〜OOOOBFFFH 共有1FFF+1个地址编号(即213),1K=1024,因此该地址区间的存储单元数也就是8K。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机系统运行时,各个部件之间要进行数据交换,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性;二是提高代码的校验能力,包括查错和纠错。常用的三种校验码:奇偶校验码(Parity Codes)、海明码(Hamming Code)和循环冗余校验(Cyclic Redundancy Check,CRC)码。 循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。CRC的代码格式为:       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一个编码系统中任意两个合法编码(码字)之间不同的二进数位数称为这两个码字的码距,而整个编码系统中任意两个码字的最小距离就是该编码系统的码距。为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是3。 海明码是一种可以纠正一位差错的编码,是利用奇偶性来检错和纠错的校验方法。海明码的基本意思是给传输的数据增加r个校验位,从而增加两个合法消息(合法码字)的不同位的个数(海明距离)。假设要传输的信息有m位,则经海明编码的码字就有n=m+r位。 循环冗余校验码(CRC)编码方法是在k位信息码后再拼接r位的校验码,形成长度为n位的编码,其特点是检错能力极强且开销小,易于用编码器及检测电路实现。 在数据通信与网络中,通常k相当大,由一千甚至数千数据位构成一帧,而后采用CRC码产生r位的校验位。它只能检测出错误,而不能纠正错误。一般取r=16,标准的16 位生成多项式有CRC-16=x16 + x15 + x2 +1 和 CRC-CCITT= x16 + x12 + x5 +1。一般情况下,r位生成多项式产生的CRC码可检测出所有的双错、奇数位错和突发长度小于等于r的突发错。用于纠错目的的循环码的译码算法比较复杂。采用模二除法运算的只有循环冗余检验CRC
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序, 转去执行有关服务程序,处理完后自动返回原程序,这个过程称为中断。 中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到这种技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(或称为中断向量)汇集为中断向量表。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
机器字长为n,最高位为符号位,则剩余的n-1位用来表示数值,其最大值是这n-1位都为1,也就是2n-1-1。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机系统中,高速缓存一般用SRAM,内存一般用DRAM,外存一般采用磁存储器。SRAM的集成度低、速度快、成本高。DRAM的集成度高,但是需要动态刷新。磁存储器速度慢、容量大、价格便宜。因此,不同的存储设备组成分级存储体系,来解决速度、存储容量和成本之间的矛盾。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
全相联地址映射:主存的任意一块可以映象到Cache中的任意一块。直接相联映射:主存中一块只能映象到Cache的一个特定的块中。组相联的映射:各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放。即从主存的组到Cache的组之间采用直接映象方式,在两个对应的组内部采用全相联映象方式。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CPU首先从程序计数器(PC)获得需要执行的指令地址,从内存(或高速缓存)读取到的指令则暂存在指令寄存器(IR),然后进行分析和执行。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对阶时,小数向大数看齐;对阶是通过较小数的尾数右移实现的。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
BIOS(Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。       
 
 

计算机系统的存储器按所处的位置可分为内存和外存。按构成存储器的材料可分为磁存储器、半导体存储器和光存储器。按存储器的工作方式可分为读写存储器和只读存储器。按访问方式可分为按地址访问的存储器和按内容访问的存储器。按寻址方式可分为随机存储器、顺序存储器和直接存储器。 相联存储器是一种按内容访问的存储器。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
为了提高运算的精度,需要充分地利用尾数的有效数位,通常采取浮点数规格化形式,即规定尾数的最高数位必须是一个有效值,即1/2<|F|<1。在尾数用补码表示时,规格化浮点数应满足尾数最高数位与符号位不同,即当1/2≤∣F∣<1时,应有0.1xx...x形式;当-1≤M<-1/2 时,应有1.0xx...x 形式。 需要注意的是,当M=-1/2时,对于原码来说是规格化数,而对于补码来说不是规格化数。 两个浮点数进行相加运算时,首先需要对阶(使它们的阶码一致),然后再进行尾数的相加处理。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些, 因为让打印机等待是完全可以的。对于软中断,它不受中断允许标志位(IF位)的影响, 所以属于非屏蔽中断范畴。       
 
 

地址总线的宽度就是处理机寻址范围,若地址总线为n位,则可寻址空间为2的n次方字节。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
总线是连接计算机有关部件的一组信号线,是计算机中用来传送信息代码的公共通道。釆用总线结构主要有以下优点:简化系统结构,便于系统设计制造;大大减少了连线数目,便于布线,减小体积,提髙系统的可靠性;便于接口设计,所有与总线连接的设备均釆用类似的接口;便于系统的扩充、更新与灵活配置,易于实现系统的模块化; 便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;便于故障诊断和维修,同时也降低了成本。       
 
 

Cache是高速缓存,位于处理器与主存之间,一般又分为多级。处理器给出需要访问的内存地址后,首先访问Cache,若不命中,再访问主存。Cache与主存之间的地址映射由硬件自动完成,以保证高的处理速度。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
相联存储器是一种按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字。 相联存储器可用在高速缓冲存储器中,在虚拟存储器中用来作段表、页表或快表存储器,还用在数据库和知识库中。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
各种数据在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用0、1表示,小数点则隐含表示而不占位置。机器数对应的实际数值称为数的真值。 为了便于运算,带符号的机器数可采用原码、反码、补码和移码等不同的编码方法。 所谓定点数,就是表示数据时小数点的位置固定不变。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。 当机器字长为n时,定点数的补码和移码可表示2^n个数,而其原码和反码只能表示2^n-1个数(0表示占用了两个编码),因此,定点数所能表示的数值范围比较小, 运算中很容易因结果超出范围而溢出。 数的浮点表示的一般形式为:N=2E×F,其中E称为阶码,F为尾数。阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:
 
 

很明显,一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数。 浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
当系统中有多个中断请求时,中断系统按优先级进行排队。若在处理低级中断过程中又有高级中断申请中断,则高级中断可以打断低级中断处理,转去处理高级中断,等处理完高级中断后再返回去处理原来的低级中断,称为中断嵌套。实现中断嵌套用后进先出的栈来保护断点和现场最有效。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
当表示数据时并规定了位数后,其能表示的数值范围就确定了,在两个数进行相加运算的结果超出了该范围后,就发生了溢出。在二进制情况下,溢出时符号位将变反,即两个正数相加,结果的符号位是负数,或者两个负数相加,结果的符号位是正数。采用两个符号位时,溢出发生后两个符号位就不一致了,这两位进行异或的结果一定为1。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Cache工作时,需要拷贝主存信息到Cache中,就需要建变主存地址和Cache地址的映射关系。Cache的地址映射方法主要有三种,即全相联映像、直接映像和组相联映像。其中全相联方式意味着主存的任意一块可以映像到Cache中的任意一块,其特点是块冲突概率低,Cache空间利用率高,但是相联目录表容量大导致成本高、查表速度慢; 直接映像方式是指主存的每一块只能映像到Cache的一个特定的块中,整个Cache地址与主存地址的低位部分完全相同,其特点是硬件简单,不需要相联存储器,访问速度快 (无须地址变换),但是Cache块冲突概率高导致Cache空间利用率很低;组相联方式是对上述两种方式的折中处理,对Cache分组,实现组间直接映射,组内全相联,从而获得较低的块冲突概率、较高的块利用率,同时得到较快的速度和较低的成本。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在计算机中使用了类似于十进制科学计数法的方法来表示二进制实数,因其表示不同的数时小数点位置的浮动不固定而取名浮点数表示法。浮点数编码由两部分组成:阶码(即指数,为带符号定点整数,常用移码表示,也有用补码的)和尾数(是定点纯小数,常用补码表示,或原码表示)。因此可以知道,浮点数的精度由尾数的位数决定,表示范围的大小则主要由阶码的位数决定。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
浮点格式表示一个二进制数N的形式为N=2eXF,其中E称为阶码,F叫做尾数。在浮点表示法中,阶码通常为含符号的纯整数,尾数为含符号的纯小数。 指数为纯整数,阶符1位、阶码6位在补码表示方式下可表示的最大数为63(26-1),最小数为-64(-26)。尾数用补码表示时最小数为-1、最大数为1-2-8,因此该浮点表示的最小数为-263,最大数为(1-2-8)×263。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
中断方式、程序查询方式和无条件传逵方式都是通过CPU执行程序指令来传送数据的,DMA方式下是由DMA控制器直接控制数据的传送过程,CPU需要让出对总线的控制权,并不需要CPU执行程序指令来传送数据。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。中断源在需要得到CPU服务时,请求CPU暂停现行工作转向为中断源服务,服务完成后,再让CPU回到原工作状态继续完成被打断的工作。中断的发生起始于中断源发出中断请求,中断处理过程中,中断系统需要解决一系列问题,包括中断响应的条件和时机,断点信息的保护与恢复,中断服务程序入口、中断处理等。中断响应时间,是指从发出中断请求到开始进入中断服务程序所需的时间。中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序的局限性表现在时间局部性和空间局部性: 1.时间局部性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行; 2.空间局部性是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CPU接收到中断请求,会将自己正在执行的程序A的状态进行保存,即保存现场,然后转去处理提交中断申请的程序B,完成程序B之后,再回到程序A中断的断点接着完成程序A。保存现场的目的是为了能正确返回到被中断的程序A继续执行。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
使用补码表示数据时,可以将符号位和其他位统一处理,减法也可按加法来处理,从而简化运算部件的设计。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
指令中的寻址方式就是如何对指令中的地址字段进行解释,以获得操作数的方法或 获得程序转移地址的方法。常用的寻址方式有: 
 
 
  • 立即寻址。操作数就包含在指令中。
  • 直接寻址。操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址。
  • 寄存器寻址。操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
  • 寄存器间接寻址。操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
  • 间接寻址。指令中给出操作数地址的地址。
  • 相对寻址。指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条 指令的地址加上该偏移量。
  • 变址寻址。操作数地址等于变址寄存器的内容加偏移量。

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机系统中主机与外设间的输入输出控制方式有多种,在DMA方式下,输入输出设备与内存储器直接相连,数据传送由DMA控制器而不是主机CPU控制。CPU除了传送开始和终了时进行必要的处理外,不参与数据传送的过程。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
设机器字长为n(即采用n个二进制位表示数据),最高位是符号位,0表示正号,1表示负号。原码表示方式下,除符号位外,n-1位表示数值的绝对值。因此,n为8时,[+0]原=0 0000000,[-0]原=1 0000000。正数的反码与原码相同,负数的反码则是其绝对值按位求反。n为8时,数值0的反码表示有两种形式:[+0]反=0 0000000,[-0]反=11111111。正数的补码与其原码和反码相同,负数的补码则等于其反码的末尾加1。在补码表示中,0有唯一的编码:[+0]补=0 0000000,[-0]补=00000000。移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。机器字长为n时,在偏移量为2n-1的情况下,只要将补码的符号位取反便可获得相应的移码表示。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序被加载到内存后开始运行,当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器DR中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。 程序计数器(PC)具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移地址得到。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
指令寄存器(IR)用于暂存从内存取出的、正在运行的指令,这是由系统使用的寄存器,程序员不能访问。 存储器数据寄存器(MDR)和存储器地址寄存器(MAR)用于对内存单元访问时的数据和地址暂存,也是由系统使用的,程序员不能访问。 程序计数器(PC)用于存储指令的地址,CPU根据该寄存器的内容从内存读取待执行的指令,程序员可以访问该寄存器。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
浮点数在计算机中用以近似表示任意某个实数,一个浮点数a可如下表示:a=M*bE 其中,尾数部分M的位数越多,数的精度越高,指数部分E的位数越多,能表示的数值越大。因此在总长度固定的情况下,增加E的位数、减少M的位数可以扩大可表示的数的范围同时降低精度。       
 
 

状态字寄存器(PSW)用于保存指令执行完成后产生的条件码,例如运算是否有溢出,结果为正还是为负,是否有进位等。此外,PSW还保存中断和系统工作状态等信息。


通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。 在汇编语言程序中,程序员可以直接访问通用寄存器以存取数据,可以访问状态字寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址,但是不能访问指令寄存器。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于奇偶校验,是由若干位有效信息,再加上一个二进制位(校验位)组成校验码,其中奇校验“1”的个数为奇数,而偶校验“1”的个数为偶数,以此完整校验,如果其中传输过程中有偶数个数发生错误(即1变成0或0变成1),则“1”的个数,其奇偶就不会发生改变,也就无法发现错误了,只有奇数个数据位发生错误,才能发现错误。同时,奇偶校验只能查错不能纠错。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Cache是一个高速小容量的临时存储器,可以用髙速的静态存储器(SRAM)芯片实现,可以集成到CPU芯片内部,或者设置在CPU与内存之间,用于存储CPU最经常访问的指令或者操作数据。Cache的出现是基于两种因素:首先是由于CPU的速度和性能提高很快而主存速度较低且价格高,其次是程序执行的局部性特点。因此,才将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。很显然,要尽可能发挥CPU的高速度,就必须用硬件实现其全部功能。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CPU中指令译码器的功能是对现行指令进行分析,确定指令类型和指令所要完成的操作以及寻址方式,并将相应的控制命令发往相关部件。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
系统总线又称内总线或板级总线,在微机系统中用来连接各功能部件而构成一个完整的微机系统。系统总线包含有三种不同功能的总线,即数据总线DB (Data Bus)、地址总线AB (Address Bus)和控制总线CB (Control Bus)。 ISA (Industrial Standard Architecture)总线标准是IBM公司1984年为推出PC/AT机而建立的系统总线标准,所以也叫AT总线。它是对XT总线的扩展,以适应8/16位数据总线要求。 EISA总线是1988年由Compaq等9家公司联合推出的总线标准。它在ISA总线的基础上使用双层插座,在原来ISA总线的98条信号线上又增加了98条信号线,也就是在两条ISA信号线之间添加一条EISA信号线。在实用中,EISA总线完全兼容ISA总线信号。 PCI (Peripheral Component Interconnect)总线是当前最流行的总线之一,它是由Intel公司推出的一种局部总线。它定义了32位数据总线,且可扩展为64位。PCI总线主板插槽的体积比原ISA总线插槽还小,支持突发读写操作,最大传输速率可达132MB/S,可同时支持多组外围设备。PCI局部总线不能兼容现有的ISA、EISA、MCA (Micro Channel Architecture)总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线。 SCSI (Small Computer System Interface)是一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Flynn主要根据指令流和数据流来分类,分为四类: ①单指令流单数据流机器(SISD) SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行,并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器。 ②单指令流多数据流机器(SIMD) SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理以及多媒体信息处理等领域非常有效。 Intel处理器实现的MMXTM、SSE (Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说人们现在用的单核计算机基本上都属于SIMD机器。 ③多指令流单数据流机器(MISD) MISD是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法。因此MISD只是作为理论模型出现,没有投入实际应用。 ④多指令流多数据流机器(MIMD) M1MD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。例如,intel和AMD的双核处理器就属于MIMD的范畴。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对指令流水线性能的度量主要有吞吐率,加速比和效率等指标。吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量,最大吞吐率则是流水线在达到稳定状态后所得到的吞吐率,它取决于流水线中最慢一段所需的时间,所以该段成为流水线的瓶颈。流水线的加速比定义为等功能的非流水线执行时间与流水线执行时间之比,加速比与吞吐率成正比,如果流水线断流,实际吞吐率将会明显下降,则加速比也会明显下降。 流水线的效率是指流水线的设备利用率,从时空图上看效率就是n个任务所占的时空区与m个段总的时空区之比。因此要使加速比和效率最大化应该流水线各级采用相同的运行时间。另外,流水线釆用异步控制并不会给流水线性能带来改善,反而会增加控制电路的复杂性。   
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机技术发展使得机器性能提高,随着高级语言的发展,程序员需要更强大的命令,指令集往往结合应用需要不断扩展,推动了指令集越来越复杂,形成了CISC,即Complex Instruction Set Computer,就是使用复杂指令集系统的计算机。与其对应的是RISC,即Reduced Instruction Set Computer,精简指令集系统的计算机。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在单总线结构中,CPU与主存之间、CPU与I/O设备之间、I/O设备与主存之间、各种设备之间都通过系统总线交换信息。单总线结构的优点是控制简单方便,扩充方便。但由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构的主要缺点。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
高速缓存(Cache)是随着CPU与主存之间的性能差距不断增大而引入的,其速度比主存快得多,所存储的内容是CPU近期可能会需要的信息,是主存内容的副本,因此CPU需要访问数据和读取指令时要一访问Cache,若命中则直接访问,若不命中再去访问主存。 评价Cache性能的关键指标是Cache的命中率,影响命中率的因素有其容量、替换算法、其组织方式等。Cache的命中率随容量的增大而提高,其关系如下图所示。
 
 

Cache的设置不以扩大主存容量为目的,事实上也并没有扩大主存的容量。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
I/O设备管理软件一般分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。至于一些具体分层时细节上的处理,是依赖于系统的,没有严格的划分,只要有利于设备独立这一目标,可以为了提高效率而设计不同的层次结构。I/O软件的所有层次及每一层的主要功能如下图所示。
 
 

图中的箭头给出了I/O部分的控制流。当用户通过键盘或鼠标进入某应用系统时,通常最先获得键盘或鼠标输入信息的程序是中断处理程序。


 

程序语言


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
函数调用时基本的参数传递方式有传值与传地址两种,在传值方式下是将实参的值传递给形参,因此实参可以是表达式(或常量),也可以是变量(或数组元素),这种信息传递是单方向的,形参不能再将值传回给实参。在传地址方式下,需要将实参的地址传递给形参,因此,实参必须是变量(数组名或数组元素),不能是表达式(或常量)。 这种方式下,被调用函数中对表达式参数的修改实际上就是对实际参数的修改,因此客观上可以实现数据的双向传递。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据具有类型,便于编译程序在基础机器中完成对值的布局,同时还可用于检查表达式中对运算的应用是否正确。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
变量是计算机内存单元的抽象,在程序中表示数据,具有名称、类型、值、地址、作用域、存储类别等属性,其值在运行过程中由指令进行修改。常量也用于在程序中表示数据,但常量在程序运行过程中不能修改,常量也具有类型,如整型常量、浮点型常量、字符串常量等,也称为字面量或文字。变量是内存单元的抽象,用于在程序中表示数据。当变量存储的是内存单元地址时,称为指针变量,或者说指针变量指向了另一个变量。指针量可以定义在函数或复合语句内,也可以定义在所有的函数之外,即可以是全局变量,也可以是局部变量。需要区分指针变量与指针所指向的变量,无论指针变量指向何种变量,其存储空间大小都是一样的。当指针变量指向数组中的一个元素时,对指针变量进行算术运算可以使其指向同一个数组中的其他元素。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在编写C/C++源程序时,为所定义的变量赋初始值是良好的编程习惯,而赋初值不是强制的要求,因此编译程序不检查变量是否赋初值。如果表达式中引用的变量从定义到使用始终没有赋值,则该变量中的值表现为一个随机数,这样对表达式的求值结果就是不确定的了。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,通常以文本(如 ASCII)保存,只在被调用时进行解释或编译。Python是一种脚本语言。 C/C++是编译型程序设计语言,常用于进行系统级软件的开发。 Java、Python和JavaScript都是解释型程序设计语言,其中Python和JavaScript是脚本语言。维基百科上将脚本语言定义为“为了缩短传统的编写一编译一链接一运行过程而创建的计算机编程语言。通常具有简单、易学、易用的特色,目的是希望开发者以简单的方式快速完成某些复杂程序的编写工作。” 脚本语言一般运行在解释器或虚拟机中,便于移植,开发效率较高。脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。脚本语言常用于描述格式化和链接,编程效率不如编译型语言。 动态语言是指程序在运行时可以改变其结构,例如新的函数可以被引进、己有的函数可以被删除等在结构上的变化等。动态语言的类型检查是在运行时进行的,其优点是方便阅读,不需要写非常多的与类型相关的代码;缺点是不方便调试,命名不规范时会读不懂、不利于理解等。 脚本语言代表一套与系统程序设计语言不同的协定。它们牺牲执行速度和与系统程序设计语言相关的类型长度而提供更高的编程创作能力和软件重用。脚本语言更适合在联系复杂的应用程序中进行胶着(粘合)。为了简化连接组件的工作,脚本语言被设计为无类型的,脚本语言一般是面向字符的,因为字符为许多不同的事物提供了一致的描述。 事实上,脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是否是面向对象的语言。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
编译和解释方式是翻译高级程序设计语言的两种基本方式。 解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序, 然后在计算机上运行目标程序。这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释器。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
进行函数调用时,常需要在调用环境中的数据传递给被调用函数,作为输入参数由被调用函数处理,基本的调用方式为值调用(或传值调用)和引用调用。其中,值调用方式下是将实参的值单向地传递给被调用函数的形参,引用调用方式下通过将实参的地址传递给形参,在被调用函数中通过指针实现对实参变量数据的间接访问和修改,从而达到将修改后的值“传回来”的效果。调用函数和被调用函数之间交换信息的方法主要有两种:一种是由被调用函数把返回值返回给主调函数,另一种是通过参数传递信息。函数调用时实参与形参间交换信息的基本方法有传值调用和引用调用两种。 若实现函数调用时实参向形参传递相应类型的值,则称为是传值调用。这种方式下形参不能向实参传递信息。实参可以是变量,也可以是常量和表达式。 引用调用的实质是将实参变量的地址传递给形参,因此,形参是指针类型,而实参必须具有左值。变量具有左值,常量没有左值。被调用函数对形参的访问和修改实际上就是针对相应实际参数所作的访问和改变,从而实现形参和实参间双向传递数据的效果。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序设计语言的基本成分包括数据、运算、控制和传输等。 程序设计语言的控制成分包括顺序、选择和循环3种结构。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
记号流,词法分析的输出是记号流,也就是语法分析的输入。字符流,在Java中,根据处理的数据单位不同,分为字节流和字符流。字符流是由字符组成的,例如 FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter 等。与本题无关。源程序,词法分析的任务是把源程序的字符串转换成单词符号序列。分析树,如果没有语法错误,语法分析后就能正确的构造出其语法树。括号不匹配是典型的语法错误,会在语法分析阶段检测出来。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
编译程序是一种将高级语言程序翻译成目标程序的系统软件,它对源程序的翻译过程分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,以及符号表管理和出错处理。 源程序可以被看成是一个字符串。词法分析是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个的“单词”符号。语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”、“程序”等。语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为因应人工智能而设计的语言,是第一个声明式系内函数式程序设计语言,有别于命令式系内过程式的C、Fortran和面向对象的Java、C#等结构化程序设计语言。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
词法分析阶段依据语言的词法规则,对源程序进行逐个字符地扫描,从中识别出一个个“单词”符号,主要是针对词汇的检查。 语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。语法规则就是各类语法单位的构成规则,主要是针对结构的检查。 语义分析阶段分析各语法结构的含义,检查源程序是否包含语义错误,主要针对句子含义的检查。 本题描述的是语法分析。 词法分析是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个的“单词”符号。语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”和“程序”等。语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。目标代码生成是编译器工作的最后一个阶段。这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,这个阶段的工作与具体的机器密切相关。 源程序不可避免地会有一些错误,这些错误大致可分为语法错误和语义错误。语法错误是指语言结构上的使用错误,是指编译时所发现的程序错误,如单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等有关语言结构上的错误。            
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
“中间代码”是一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式。可以将不同的高级程序语言翻译成同一种中间代码。由于与具体机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,使用中间代码可提高编译程序的可移植性,常见的有逆波兰记号、四元式、三元式、四元式,后缀式和树。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对C源程序进行编译时,需建立符号表,其作用是记录源程序中各个符号(变量等) 的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作。符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。       
 
 

有限自动机可识别一个字符串的含义是,从有限自动机的初态出发,存在一条到达终态的路径,其上的标记可构成该字符串。若从初态到终态不存在能构成指定字符串的路径,则称该字符串不能被该自动机识别。自动机识别字符串的过程是:从初态出发,根据字符串的当前字符实现状态转移。如果存在从初态到终态的状态转移路径与字符串中的各个字符相匹配,那么就说该自动机可以识别该字符串。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一种程序设计语言规定其程序中的数据必须具有类型,好处如下:(1)有利于在翻译程序的过程中为数据合理分配存储单元,因为程序设计语言为不同的数据类型规定了其所占的存储空间,如果数据类型确定,其所占的存储空间也是确定的。(2)有利于对参与表达式计算的数据对象进行检查,因为知道数据的数据类型,我们就可以根据类型来判断该数据是否可以参与某表达式计算,如自加、自减的操作数不允许是浮点数,这只要根据数据的类型就能判断某操作数,是否能进行自加、自减运算。(3)有利于规定数据对象的取值范围及能够进行的运算,根据数据类型,我们可以数据的存储空间,也同时能知道数据的表示范围,如C语言中的整型数据,它占两个字节(16位),能表示的数据范围就是-2^16^至2^16^-1。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
编译过程中为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区,其中栈区和堆区也称为动态数据区。全局变量的存储空间在静态数据区。       
 
 

借助栈可以方便地对后缀式进行求值。方法为:先创建一个初始为空的栈,用来存放运算数。对后缀表达式求值时,从左至右扫描表达式,若遇到运算数,就将其入栈,若遇到运算符,就从栈顶弹出需要的运算数并进行运算,然后将结果压入栈顶,如此重复,直到表达式结束。若表达式无错误,则最后的运算结果就存放在找顶并且是栈中唯一的元素。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序,称之为编译程序。       
 
 

符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。符号表的作用是记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地査找、插入、修改和删除等操作。 符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。 编译过程中,在确认源程序的语法和语义之后,就可对其进行翻译,同时改变源程序的内部表示。对于声明语句,需要记录所遇到的符号的信息,因此应进行符号表的填查工作。对于可执行语句,需要翻译成中间代码或目标代码。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
运行时结合是动态绑定,编译时结合是静态绑定。动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。静态绑定是指在程序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程称之为静态绑定。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
语法错误是指由于编程中输入不符合语法规则而产生的,例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。通常,编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式列举出来,又称为编译错误。语法错误的调试,则可以由集成开发环境提供的调试功能来实现,在程序进行编译时,编译器会对程序中的语法错误进行诊断。
 
 

非确定有限状态自动机与确定有限状态自动机的最大区别是它们的转移函数不同。确定有限状态自动机对每一个可能的输入只有一个状态的转移。非确定有限状态自动机对每一个可能的输入可以有多个状态转移,接受到输入时从这多个状态转移中非确定地选择一个


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
将高级语言程序翻译为机器语言程序的过程中,需要依次进行词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段,其中,中间代码生成和代码优化可以省略。程序中的错误分为语法错误和语义错误,语法分析阶段不能发现语义错误。 语义分析阶段主要处理语法正确的语言结构的含义信息,可以与目标机器的体系结构无关。目标代码生成阶段的工作与目标机器的体系结构是密切相关的。     
 
 

被有限自动机所识别是指从初态开始到终态结束,所输入的字符串能够按顺序地执行下去,若到某个状态不能往下走得到下一个字符,则认为不能识别。从有限自动机的初态到终态的路径上的标记形成其可识别的字符串。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 计算机只能理解和执行由0、1序列构成的机器语言,因此高级程序语言需要翻译,担负这一任务的程序称为“语言处理程序”。由于应用的不同,语言之间的翻译也是多种多样的。语言处理程序主要分为汇编程序、编译程序和解释程序三种基本类型。 解释程序也称为解释器,它可以直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。汇编程序的功能是将汇编语言所编写的源程序翻译成机器指令程序。 链接程序将各目标程序连接形成为可执行程序。       
 
 

在程序运行过程中,将整型变量与浮点型变量相加时涉及整形数据转换为浮点型数据的操作。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
冗余是指对于实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。通常冗余技术分为4类:1.结构冗余,按其工作方法可以分为静态、动态和混合冗余;2.信息冗余,指的是为了检测或纠正信息在运算或传输中的错误另外加的一部分信息;3.时间冗余,是指以重复执行指令或程序来消除瞬时错误带来的影响;4. 冗余附件技术,是指为实现上述冗余技术所需的资源和技术。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序设计语言的基本成分包括数据、运算、控制和传输等涉及程序语言的一般概念,程序设计语言的基本成分包括数据、运算、控制和传输等。 高级程序设计语言不依赖于具体的机器硬件考查高级语言和低级语言的概念。对于程序设计语言高级语言和低级语言是指其相对于运行程序的机器的抽象程度。低级语言在形式上更接近机器指令,汇编语 言就是与机器指令一一对应的。高级语言对底层操作进行了抽象和封装,其一条语句对应多条机器指令,使编写程序的过程更符合人类的思维习惯,并且极大简化了人力劳动。 高级语言不依赖于具体的机器硬件。 程序中局部变量的值在运行时不能改变考查局部变量的概念,凡是在函数内部定义的变量都是局部变量(也称作内部变量),包括在函数内部复合语句中定义的变量和函数形参表中说明的形式参数。局部变量只能在函数内部使用,其作用域是从定义位置起至函数体或复合语句体结束为止。 局部变量的值通常在其生存期内是变化的。 程序中常量的值在运行时不能改变考查常量的概念,程序中常量的值在运行时是不能改变的。       
 
 

 
 
 
x
 
 
 
 
1
解释程序也称为解释器,它可以直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。 分阶段编译器的工作过程如下图所示。其中,中间代码生成和代码优化不是必须的。     
2
3
编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语言或机器语言)。编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成、符号表管理和出错处理等部分。  目标代码生成是编译器工作的最后一个阶段。这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,这个阶段的工作与具体的机器密切相关。因此在目标代码生成阶段分配寄存器。       
 
 

 


L = {anbn|n>=l}中的字符串特点是a的个数与b的个数相同,且所有的a都在b之前,该集合不是正规集,不能用正规式表示。 正规集可用正规式描述,用有限自动机识别。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
用某种高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。汇编语言源程序需要用一个汇编程序将其翻译成目标程序后才能执行。高级语言源程序则需要对应的解释程序或编译程序对其进行翻译,然后在机器上运行。 解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行;而编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程; 而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中, 运行程序的控制权在解释程序,。简单来说,在解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序已经开始运行,说明编译时无错误,因此不是语法错误和词法错误,编译时发现的语义错误称为静态的语义错误。运行时陷入死循环属于动态语义错误。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
语法分析方法分为两类:自上而下(自顶向下)分析法和自下而上(自底向上)分析法,递归下降分析法和预测分析法属于自上而下分析法,移进-归约分析法属于自下而上(自底向上)分析法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
编译过程一般分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,以及出错处理和符号表管理。其中,语法分析是在词法分析的基础上分析短语(表达式)、句子(语句)的结构是否正确。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。在词法分析阶段,其任务是从左到右逐个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符组合在一起才表示某一含义。 语法分析:根据语法规则将单词符号分解成各类语法单位,并分析源程序是否存在语法上的错误。包括:语言结构出错、if…end if不匹配,缺少分号、括号不匹配、表达式缺少操作数等。 语义分析:进行类型分析和检查,主要检测源程序是否存在静态语义错误。包括:运算符和运算类型不符合,如取余时用浮点数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
链表中的结点空间需要程序员根据需要申请和释放,因此,数据空间应采用堆存储分配策略。      
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
HTML (Hypertext Marked Language,超文本标记语言),用于互联网的信息表示。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,Windows等)。HTML文档是纯文本文档,可以使用记事本、写字板等编辑工具来编写HTML文件,其文件(文档)的扩展名是.html或.htm,它们需要通过WWW浏览器进行解释并显示出效果。 XML (Extensible Markup Language,可扩展的标记语言)1.0 标准于1998年2月10日发布,被认为是继HTML和Java编程语言之后的又一个里程碑式的Internet技术。XML 丰富了HTML的描述功能,可以描述非常复杂的Web页面,如复杂的数字表达式、化学方程式等。XML的特点是结构化、自描述、可扩展和浏览器自适应等。 用于WAP的标记语言就是WML (Wireless Markup Language ),其语法跟XML 一样,是XML的子集。 PHP (Hypertext Preprocessor)是一种在服务器端执行的、嵌入HTML文档的脚本语言,其语言风格类似于C语言,被网站编程人员广泛运用。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
可视化程序设计是以“所见即所得”的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序与结果的调整同步。 与传统的编程方式相比,“可视化程序设计”仅通过直观的操作方式即可完成界面的设计工作。 可视化程序设计语言的特点主要表现在两个方面:一是基于面向对象的思想,引入了控件的概念和事件驱动;二是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作。 可视化程序设计最大的优点是设计人员可以不用编写或只需编写很少的程序代码,就能完成应用程序的设计,这样就能极大地提高设计人员的工作效率。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
语言中具有独立含义的最小语法单位是符号(单词),如标识符、无符号常数与界限符等。词法分析的任务是把构成源程序的字符串转换成单词符号序列。 有限自动机是一种识别装置的抽象概念,它能准确地识别正规集。有限自动机分为两类:确定的有限自动机(DFA)和不确定的有限自动机(NFA)。       
 
 

 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一个文法的语言是该文法能产生的句子的集合。一个文法产生的句子是从文法开始符号出发推导出的所有终结符号串。       
 
 

符兮表的作用是记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地査找、插入、修改和删除等操作。 符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。 编译过程中,在确认源程序的语法和语义之后,就可对其进行翻译,同时改变源程序的内部表示。对于声明语句,需要记录所遇到的符号的信息,因此应进行符号表的填查工作。对于可执行语句,需要翻译成中间代码或目标代码。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
弱/强类型指的是语言类型系统的类型检査的严格程度,动态类型和静态类型则指变量与类型的绑定方法。 静态类型指编译器在编译源程序期间执行类型检查,动态类型指编译器(虚拟机)在程序运行时执行类型检查。简单地说,在声明了一个变量之后,不能改变其类型的语言,是静态语言;能够随时改变其类型的语言,是动态语言。 弱类型相对于强类型来说类型检查更不严格,比如说允许变量类型的隐式转换,允许强制类型转换等等。       
 
 

程序语言的大多数语法现象可用乔姆斯基的上下文无关文法描述。 形式语言理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本上都是上下文无关文法,因此应用十分广泛。上下文无关文法拥有足够强的表达力来表示大多数程序设计语言的语法。另一方面,上下文无关文法又足够简单,使得我们可以构造有效的分析算法来检验一个给定字串是否是由某个上下文无关文法产生的。 乔姆斯基(Chomsky)把文法分成四种类型,即0型、1型、2型和3型。0型文法也称为短语文法,其能力相当于图灵机,任何0型语言都是递归可枚举的;反之,递归可枚举集也必定是一个0型语言。1型文法也称为上下文有关文法,这种文法意味着对非终结符的替换必须考虑上下文。2型文法就是上下文无关文法,非终结符的替换无需考虑上下文。3型文法等价于正规式,因此也被称为正规文法或线性文法。通用程序设计语言的大多数语法可由上下文无关文法表示。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对高级语言源程序进行编译(或解释)方式的翻译过程中,语法分析的任务是根据语言的语法规则,分析单词串是否构成短语和句子,即表达式、语句和程序等基本语言结构,同时检查和处理程序中的语法错误。程序设计语言的绝大多数语法规则可以采用上下文无关文法进行描述。语法分析方法有多种,根据产生语法树的方向,可分为自底向上和自顶向下两类。递归下降分析法和预测分析法是常用的自顶向下分析法。算符优先分析法和LR分析法属于自底向上的语法分析方法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一个上下文无关语法定义一个语言,其主要思想是从文法的开始符号出发,反复连续使用产生式,对非终结符进行替换和展开。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
KMP模式匹配算法通俗点说就是一种在一个字符串中定位另一个串的高效算法。其实我们在做这个题目时,也可以不需要知道KMP模式匹配算法,可以根据题目给出的定义式来求解。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在HTML语言中,可以通过使用<mailto>标签定义一个指向电子邮件地址的超级链接,通过该链接可以在Internet中发送电子邮件。      
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
<!-- -->是HTML注释的表示方式,在这里定义CSS样式无效。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
XML文件的第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其他元素或者注释。所有的XML文档必须有一个根元素。XML文档中的第一个元素就是根元素。所有XML文档都必须包含一个单独的标记来定义,所有其他元素都必须成对地在根元素中嵌套。XML文档有且只能有一个根元素。所有的元素都可以有子元素,子元素必须正确地嵌套在父元素中。在XML中规定,所有标识必须成对出现,有一个开始标识,就必须有一个结束标识,否则将被视为错误。       
 
 

 

 

 

操作系统


硬盘容量分为非格式化容量和格式化容量两种,计算公式如下:

非格式化容量=面数×(磁道数/面)×内圆周长×最大位密度

格式化容量=面数×(磁道数/面)×(扇区数/道)×(字节数/扇区)


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
常用的I/O接口编址方法有两种:一是与内存单元统一编址,二是单独编址。 与内存单元统一编址方式下,是将I/O接口中有关的寄存器或存储部件看作存储器单元,与主存中的存储单元统一编址。这样,内存地址和接口地址统一在一个公共的地址空间里,对I/O接口的访问就如同对主存单元的访问一样,可以用访问内存单元的指令访问I/O接口。 I/O接口单独编址是指通过设置单独的I/O地址空间,为接口中的有关寄存器或存储部件分配地址码,需要设置专门的I/o指令进行访问。这种编址方式的优点是不占用主存的地址空间,访问主存的指令和访问接口的指令不同,在程序中容易使用和辨认。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
磁盘格式化是指把一张空白的盘划分成一个个小区域并编号,以供计算机储存和读取数据。格式化是一种纯物理操作,是在磁盘的所有数据区上写零的操作过程,同时对硬盘介质做一致性检测,并且标记出不可读和坏的扇区。由于大部分硬盘在出厂时已经格式化过,所以只有在硬盘介质产生错误时才需要进行格式化。 磁盘分区就是将磁盘划分成一块块的存储区域。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。主分区是能够安装操作系统、能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。 磁盘里的文件都是按存储时间先后来排列的,理论上文件之间都是紧凑排列而没有空隙的。但是,用户常常会对文件进行修改,而且新增加的内容并不是直接加到原文件的位置的,而是放在磁盘存储空间的最末尾,系统会在这两段之间加上联系标识。当有多个文件被修改后,磁盘里就会有很多不连续的文件。一旦文件被删除,所占用的不连 续空间就会空着,并不会被自动填满,而且,新保存的文件也不会放在这些地方,这些 空着的磁盘空间,就被称作“磁盘碎片”。因此,硬盘的每个分区里都会有碎片。碎片太多,其他的不连续文件相应也多,系统在执行文件操作时就会因反复寻找联系标识,工作效率大大降低,直接的反映就是感觉慢。 磁盘清理将删除计算机上所有不需要的文件(这些文件由用户或系统进行确认)。 磁盘碎片整理,就是通过系统软件或者专业的磁盘碎片整理软件对电脑磁盘在长期使用过程中产生的碎片和凌乱文件重新整理,释放出更多的磁盘空间,可提高电脑的整体性能和运行速度。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序查询和中断方式都需要CPU来执行程序指令进行数据的输入和输出,DMA方式则不同,这是一种不经过CPU而直接从内存存取数据的数据交换模式。 程序查询方式是由CPU主动查询外设的状态,在外设准备好时传输数据。 中断方式是在外设准备好时给CPU发中断信号,之后再进行数据传输。在外设未发中断信号之前,CPU可以执行其他任务。 在DMA模式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU即可。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
由于信号量S是一个互斥信号量,表示半成品箱当前有无生产者使用,所以初值为1。 信号量S1表示半成品箱容量,故其初值为n。当生产者甲不断地将其工序上加工的半成品放入半成品箱时,应该先测试半成品箱是否有空位,故生产者甲使用P(S1)。信号量S2表示半成品箱有无半成品,初值为0。当生产者乙从半成品箱取出继续加工前应先测试半成品箱有无半成品,故生产者乙使用P(S2)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
因为Windows XP操作系统支持FAT、FAT32或NTFS文件系统,所以利用“磁盘管理”程序可以对磁盘进行初始化、创建卷,并可以选择使用FAT、FAT32或NTFS文件系统格式化卷。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
财务软件、汽车防盗程序、办公管理软件和气象预报软件都属于应用软件, 计算机系统由硬件和软件两部分组成。通常把未配置软件的计算机称为裸机,直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率。操作系统(Operating System)的目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口而为裸机配置的一种系统软件。由图1可以看出,操作系统是裸机上的窠一层软件,是对硬件系统功能的首次扩充。它在计算机系统中占据重要而特殊的地位,所有其他软件,如编辑程序、汇编程序、编译程序和数据库管理系统等系统软件,以及大量的应用软件都是建立在操作系统基础上的,并得到它的支持和取得它的服务。从用户角度看,当计算机配置了操作系统后,用户不再直接使用计算机系统硬件,而是利用操作系统所提供的命令和服务去操纵计算机,操作系统已成为现代计算机系统中必不可少的最重要的系统软件,因此把操作系统看作是用户与计算机之间的接口。因此,操作系统紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)。因此把操作系统看作是用户与计算机之间的接口。          ![](C:\Users\liulingling\Desktop\note\ios.png)
 
 

 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
因为Send原语是发送原语,如果系统采用信箱通信方式,那么当进程调用Send原语被设置成“等信箱”状态时,意味着指定的信箱存满了信件,无可用空间。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在分时系统中是将把CPU的时间分成很短的时间片轮流地分配给各个终端用户,当系统中的用户数为n、时间片为q时,那么系统对每个用户的响应时间等于n*q。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
操作系统有两个重要作用:①通过资管管理提高计算机系统的效率,操作系统是计算机系统的资源管理者,它含有对系统软/硬件资源实施管理的一组程序。②改善人机界面,向用户提供友好的工作环境。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速响应。因此,实时操作系统与分时操作系统的第一点区别是交互性强弱不同,分时系统交互型强,实时系统交互性弱但可靠性要求高;第二点区别是对响应时间的敏感牲强,对随机发生的外部事件必须在被控制对象规定的时间做出及时响应并对其进行处理;第三点区别是系统的设计目标不同,分时系统是设计成一个多用方的通用系统,交互能力强;而实时系统大都是专用系统。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
磁盘调度管理中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
文件级安全管理,是通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。通常可设置以下几种属性:
 
 
  • 只执行:只允许用户执行该文件,主要针对.exe和.com文件。
  • 隐含:指示该文件为隐含属性文件。
  • 索引:指示该文件是索引文件。  
  • 修改:指示该文件自上次备份后是否还被修改。
  • 只读:只允许用户读该文件。  
  • 读/写:允许用户对文件进行读和写。  
  • 共享:指示该文件是可读共享的文件。  •
  • 系统:指示该文件是系统文件。  
  • 用户对文件的访问,将由用户访问权、目录访问权限及文件属性三者的权限所确定。 或者说是有效权限和文件属性的交集。例如对于只读文件,尽管用户的有效权限是读/ 写,但都不能对只读文件进行修改、更名和删除。对于一个非共享文件,将禁止在同一时间内由多个用户对它们进行访问。通过上述四级文件保护措施,可有效地保护文件。 因此将“C:\Windows\myprogram.exe”文件设置成只读和隐藏属性,以便控制用户对该文件的访问,这一级安全管理称之为文件级安全管理。

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
假设并发进程数:m 每个进程都需要资源数:a 则不发生死锁的最少数目计算公式为: (a-1)*m+1 。在有限的资源下,要保证系统不发生死锁,则可以按这种逻辑来分析。首先给每个进程分配所需资源数减1个资源,然后系统还有1个资源,则不可能发生死锁。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 文件的全文件名应包括盘符及从根目录开始的路径名,所以从题图可以看出文件fl.java 的全文件名为D:\Program\Java-prog\fl.java。 文件的相对路径是当前工作目录下的路径名,所以从题图可以看出文件fl.java的相对路径名为Java-prog\。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在同一进程中的各个线程都可以共享该进程所拥有的资源,如访问进程地址空间中的每一个虚地址;访问进程拥有已打开文件、定时器、信号量机构等,但是不能共享进程中某线程的栈指针。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
段号数量210=1024,段内最大页数210=1024,页大小212=4096字节。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
当用户双击一个文件名时,Windows系统通过建立的文件关联来决定使用什么程序打开该文件。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
常用的进程控制块的组织方式有链接方式和索引方式:采用链接方式是把具有同一状态的PCB,用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。对其中的就绪队列常按进程优先级的高低排列,把优先级高的进程的PCB排在队列前面。此外,也可根据阻塞原因的不同而把处于阻塞状态的进程的PCB排成等待I/O操作完成的认列和等待分配内存的队列等。 采用索引方式是系统根据所有进程的状态建立若干索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
先来先服务是谁先请求先满足谁的请求,而最短寻找时间优先是根据当前磁臂到要请求访问磁道的距离,谁短满足谁的请求,故先来先服务和最短寻找时间优先算法可能会随时改变移动臂的运动方向。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
文件管理系统是在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。 每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用,如下图所示。 由于系统中字长为32位,所以每个字可以表示32个物理块的使用情况。又因为文件存储器上的物理块依次编号为:0、1、2、位示图表示物理块的情况如下。
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,缓冲区中的数据传送到用户工作区的时间为M,而系统处理(计算)的时间为C。
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
常用的进程控制块的组织方式有链接方式和索引方式:采用链接方式是把具有同一状态的PCB,用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。对其中的就绪队列常按进程优先级的高低排列,把优先级高的进程的PCB排在队列前面。此外,也可根据阻塞原因的不同而把处于阻塞状态的进程的PCB排成等待I/O操作完成的认列和等待分配内存的队列等。 采用索引方式是系统根据所有进程的状态建立若干索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
双缓冲工作方式基本方法是在设备输入时,先将数据输入到缓冲区1,装满后便转向缓冲区2。此时系统可以从缓冲区1中提取数据传送到用户区,最后由系统对数据进行处理。![](C:\Users\liulingling\Desktop\note\doubleworkarea.png)
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
影响文件系统可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。例如读取某磁盘块,修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致性状态。如果这些未被写回的磁盘块是索引节点块、目录块或空闲块,特别是系统目录文件,那么对系统的影响相对较大,且后果也是不堪设想的。通常解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在分页存储管理时,将内存划分为大小相等的页面,每一页物理内存叫页帧,以页为单位对内存进行编号,该编号可作为页数组的索引,又称为页帧号。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
路径名是指操作系统查找文件所经过的目录名以及目录名之间的分隔符构成的。通常,操作系统中全文件名是指路径名+文件名。 按查找文件的起点不同可以将路径分为:绝对路径和相对路径。从根目录开始的路径称为绝对路径;从用户当前工作目录开始的路径称为相对路径,相对路径是随着当前工作目录的变化而改变的。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
嵌入式系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。 片级初始化完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。 板级初始化完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。 系统初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
具体层次从上往下分别为用户级I/O层、设备无关I/O层、设备驱动程序、中断处理程序、硬件。 硬件:完成具体的I/O操作。 中断处理程序:I/O完成后唤醒设备驱动程序。 设备驱动程序:设置寄存器,检查设备状态。 设备无关I/O层:设备名解析、阻塞进程、分配缓冲区。 用户级I/O层:发出I/O调用。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UNIX系统采用直接、一级、二级和三级间接索引技术访问文件,其索引结点有13 个地址项(i_addr[0]〜i_addr[12])。其中i_addr[0]〜i_addr[9]采用直接索引技术访问文件,i_addr[10]采用一级间接索引技术访问文件,i_addr[11]釆用二级间接索引技术访问文 件,i_addr[12]釆用三级间接索引技术访问文件。
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在同一进程中的各个线程都可以共享该进程所拥有的资源,如访问进程地址空间中的每一个虚地址;访问进程所拥有的已打开文件、定时器、信号量机构等,但是不能共享进程中某线程的栈指针。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
嵌入式操作系统的特点: 1.微型化,从性能和成本角度考虑,希望占用的资源和系统代码量少; 2.可定制,从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需求; 3.实时性,嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高; 4.可靠性,系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施; 5.易移植性,为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在Linux操作系统中,只有一个根目录,根目录使用“/”来表示。根目录是一个非常重要的目录,其他的文件目录均由根目录衍生而来。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在 Linux 中,要更改一个文件的权限设置可使用chmod命令。       
 
 

 

软件工程基础知识

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件可靠性指的是一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。根据定义,软件可靠性与软件的潜在错误的数量、位置有关,与软件产品的使用方式有关,而软件产品的开发方式不决定软件产品的可靠性。 软件可靠性指的是一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。软件可用性使之在给定的时间点上,一个软件系统能够按照规格说明正确运行的概率。软件可维护性是在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。         
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
可靠性、可用性和可维护性是软件的质量属性,软件工程中,用0-1之间的数来度量。 可靠性是指一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。可以用MTTF/(1+MTTF)来度量,其中MTTF为平均无故障时间。 可用性是在给定的时间点上,一个系统能够按照规格说明正确运作的概率。可以用MTBF/(1+MTBF)来度量,其中MTBF为平均失效间隔时间。 可维护性是在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。可以用1/(1+MTTR)来度量,其中MTTR为平均修复时间。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件开发小组的沟通路径受到小组组织形式和规模的影响。若任意小组成员之间均可能有沟通路径,则可用完全连通图来对开发小组的沟通路径建模,最多的沟通路径为完全连通图的边数,即n个成员的开发小组的沟通路径是n(n-1)/2。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
   敏捷方法中,重构是一种重新组织技术,重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求,可以简化构件的设计而无需改变其功能或行为。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
基于构件的软件开发,主要强调在构建软件系统时复用已有的软件“构件”,在检索到可以使用的构件后,需要针对新系统的需求对构件进行合格性检验、适应性修改,然后集成到新系统中。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型,适合于软件需求很明确的软件项目。V模型是瀑布模型的一种演变模型,将测试和分析与设计关联进行,加强分析与设计的验证。原型模型是一种演化模型,通过快速构建可运行的原型系统,然后根据运行过程中获取的用户反馈进行改进。演化模型特别适用于对软件需求缺乏准确认识的情况。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
需求分析确定软件要完成的功能及非功能性要求;概要设计将需求转化为软件的模块划分,确定模块之间的调用关系;详细设计将模块进行细化,得到详细的数据结构和算法;编码根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
起始阶段专注于项目的初创活动。精化阶段理解了最初的领域范围之后,进行需求分析和架构演进。构建阶段关注系统的构建,产生实现模型。移交阶段关注于软件提交方面的工作,产生软件增量。产生阶段运行软件并监控软件的持续使用,提供运行环境的支持,提交并评估缺陷报告和变更请求。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件工程是一种层次化的技术,从底向上分别为质量、过程、方法和工具。任何工程方法必须以有组织的质量承诺为基础。软件工程的基础是过程,过程是将技术结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发,过程定义了一组关键过程区域,构成了软件项目管理控制的基础;方法提供了建造软件在技术上需要“如何做”,它覆盖了一系列的任务。方法也依赖于一些基本原则,这些原则控制了每一个技术区域 而且包含建模活动和其他描述技术;工具对过程和方法提供了自动或半自动的支持,如:计算机辅助软件工程(CASE)。软件工程的基本要素包括方法、工具和过程。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
需求不清晰且规模不太大时采用原型化方法最合适,而数据处理领域的不太复杂的软件,适于用结构化方法进行开发。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
RUP应用了角色、活动、制品和工作流4种重要的模型元素,其中角色表述“谁做”,制品表述“做什么”,活动表述“怎么做”,工作流表述“什么时候做”。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件项目计划的一个重要内容是安排进度,常用的方法有Gantt图和PERT图。Gantt 图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系。PERT图是一种网络模型,描述一个项目的各任务之间的关系。可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径,但是不能清晰地描述各个任务之间的并行关系。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件设计的任务是基于需求分析的结果建立各种设计模型,给出问题的解决方案。从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段和详细设计阶段。结构化设计方法中,概要设计阶段进行软件体系结构的设计、数据设计和接口设计;详细设计阶段进行数据结构和算法的设计。面向对象设计方法中,概要设计阶段进行体系结构设计、初步的类设计/数据设计、结构设计;详细设计阶段进行构件设计。 结构化设计和面向对象设计是两种不同的设计方法,结构化设计根据系统的数据流图进行设计,模块体现为函数、过程及子程序;面向对象设计基于面向对象的基本概念进行,模块体现为类、对象和构件等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术;水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论;并列争球法(Scrum)使用迭代的方法,其中把每30天一次的迭代成为一个冲刺,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品,并通过简短的日常情况会议进行协调。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在对软件开发资源进行规划时,为了确定构建软件系统所需的人数,需要考虑软件系统的规模、系统的技术复杂性、项目计划和开发人员的技术背景等方面,而与系统是否有市场前景无关。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件项目计划的一个重要内容是安排进度,常用的方法有Gantt图和PERT图。Gantt 图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系。PERT图是一种网络模型,描述一个项目的各任务之间的关系。可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径,但是不能清晰地描述各个任务之间的并行关系。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 风险是一种具有负面后果的、人们不希望发生的事件。从不同的角度可以对风险进行不同的分类。通常认为风险具有以下特点: 风险是可能发生的事件,其发生的可能性用风险概率来描述;风险是会给项目带来损失的事件;可能对风险进行干预,以期减少损失。针对每一种风险,应弄清可能减少造成损失或避免损失的程度。对风险加以控制,采取一些有效的措施来降低风险或是消除风险。如从风险涉及的范围,风险可以分为项目风险、技术风险和商业风险等。技术风险涉及设计方案、实现、接口、验证以及维护等方面的问题。此外,包括需求规格说明的不确定性、技术的不确定性、技术的陈旧以及采用不成熟的前沿技术等可能会带来技术风险。技术风险威胁着开发产品的质量和交付产品的时间。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为:基本模型(Basic Model):是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量。中级模型(Intermediate Model):则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。详细模型(Detailed Model):包括中级COCOMO型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
活动图是描述一个项目中各个工作任务相互依赖关系的一种模型,项目的很多重要特性可以通过分析活动图得到,如估算项目完成时间,计算关键路径和关键活动等。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
敏捷开发方法XP是一种轻量级、高效、低风险、柔性、可预测的、科学的软件开发方法,其特性包含在12个最佳实践中。 1.计划游戏:快速制定计划、随着细节的不断变化而完善; 2.小型发布:系统的设计要能够尽可能早地交付; 3.隐喻:找到合适的比喻传达信息; 4.简单设计:只处理当前的需求使设计保持简单; 5.测试先行:先写测试代码再编写程序; 6.重构:重新审视需求和设计,重新明确地描述它们,以符合新的和现有的需求; 7.结队编程; 8.集体代码所有制; 9.持续集成:可以按日甚至按小时为客户提供可运行的版本; 10.每周工作40个小时; 11.现场客户; 12.编码标准。极限编程是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。 • 4大价值观: 沟通、简单性、反馈和勇气。 • 5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
项目估算是项目计划和管理的一个至关重要的方面。成本超出某个限度可能导致客户取消项目,而过低的成本估算可能会迫使开发小组投入大量的时间却没有相应的经济回报。目前常用的项目估算方法有专家判断方法,该方法受到专家经验和主观性等方面的影响;算法方法,根据某个计算模型来估算项目开发成本,如启发式方法COCOMO 模型,但这些模型中的参数难以确定;机器学习方法,如根据过去的项目开发数据,建立分类模型,预测新项目的开发成本,但这类方法难以定义训练数据的特征以及定义数据对象之间的相似性。即使结合多种方法,上述问题仍然存在,因此并不能得到精确地估算结果。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
甘特图(Gantt图)是进行项目进度管理的一个重要工具,它对项目进度进行描述,显示在什么地方活动是并行进行的,并用颜色或图标来指明完成的程度。使用该图,项目经理可以清晰的了解每个任务的开始和截止时间,哪些任务可以并行进行,哪些在关键路径上,但是不能很清晰的看出各任务之间的依赖关系。Gantt图是一种简单的水平条形图,以日历为基准描述项目任务。水平轴表示日历时间线,如日、周和月等,每个条形表示一个任务,任务名称垂直的列在左边的列中,图中水平条的起点和终点对应水平轴上的时间,分别表示该任务的开始时间和结束时间,水平条的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。 Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但它不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
大规模项目最不适于采用无主程序员组的开发人员组织形式,因为大项目需要主程序员来整合各模块程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件需求是软件系统必须完成的事以及必须具备的品质。软件需求包括功能需求、非功能需求和设计约束三个方面的内容。功能需求是所开发的软件必须具备什么样的功能:非功能需求是指产品必须具备的属性或品质,如可靠性、性能、响应时间和扩展性等等;设计约束通常对解决方案的一些约束说明。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件风险一般包括不确定性和损失两个特性,其中不确定性是指风险可能发生,也可能不发生:损失是当风险确实发生时,会引起的不希望的后果和损失。救火和危机管理是对不适合但经常采用的软件风险管理策略。已知风险和未知风险是对软件风险进行分类的一种方式。员工和预算是在识别项目风险时需要识别的因素。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
风险预测从风险发生的可能性大小以及风险发生所产生的后果是否严重两个方面评估风险。风险分析实际上是4个不同的活动:风险识别、风险预测、风险评估和风险控制。 风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。风险预测又称为风险估算,它从两个方面评估一个风险:风险发生的可能性或概率;以及如果风险发生时所产生的后果。风险评估根据风险及其发生的概率和产生的影响预测是否影响 参考水平值。风险控制的目的是辅助项目组建立处理风险的策略,有效的策略应考虑风险避免、风险监控、风险管理及意外事件计划。风险避免即放弃或不进行可能带来损失的活动或工作。例如,为了避免洪水风险,可以把工厂建在地势较高、排水方便的地方,这是一种主动的风险控制方法。风险监控是指在决策主体的运行过程中,对风险的发展与变化情况进行全程监督,并根据需要进行应对策略的调整。风险管理是指在一个肯定有风险的环境里把风险减至最低的管理过程。对于风险我们可以转移,可以规避,但不能消除。 对不同的风险采取不同的风险管理策略。如对关键职员在项目未完成时就跳槽的风险,可以通过培养后备人员、让项目组人员了解开发信息、评审开发工作等来降低风险。通过临时招聘新职员,即使新职员具有相关的能力,由于对项目的开发进展、团队组成等多种情况不了解,并不能很好地降低风险。                            
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
风险是一种具有负面后果的、人们不希望发生的事件。项目经理必须进行风险管理, 以了解和控制项目中的风险。 风险可能会发生,因此具有一定的概率;风险产生的后果严重程度不一样,因此需要区分。在对风险进行优先级排序时,需要根据风险概率和后果来进行排序。在确定了风险之后,根据实际情况,可以通过改变系统的性能或功能需求来避免某些风险。在项目开发过程中,不可能去除所有风险,但是可以通过采取行动来降低或者减轻风险。而且风险需要定期地评估和管理。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
定义风险参照水准是风险评估的一类技术,对于大多数软件项目来说成本、速度和性能是三种典型的风险参照水准。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
项目经理需要尽早预测项目中的风险,这样就可以制订有效的风险管理计划以减少风险的影响,所以,早期的风险识别是非常重要的,一般来说,影响软件项目的风险主要有三种类别:项目风险涉及到各种形式的预算、进度、人员、资源以及和客户相关的问题;技术风险涉及到潜在的设计、实现、对接、测试即维护问题;业务风险组括建立一个无人想要的优秀产品的风险、失去预算或人员承诺的风险等:商业风险包括如市场风险、策略风险、管理风险和预算风险等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
风险是一种具有负面后果的、人们不希望发生的事件。风险管理是软件项目管理的一项重要任务。在进行风险管理时,根据风险的优先级来确定风险控制策略,而优先级是根据风险暴露来确定的。风险暴露是一种量化风险影响的指标,等于风险影响乘以风险概率,风险影响是当风险发生时造成的损失。风险概率是风险发生的可能性。风险控制是风险管理的一个重要活动。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
人员管理是软件项目管理的一个重要部分,在组织开发团队时,应该考虑开发人员的工作能力、知识背景、工作风格、兴趣爱好等多方面的因素。每个成员的工作任务分配清楚,不应该参与所有阶段的工作。当项目进度滞后于项目计划时,增加开发人员不一定可以加快开发进度。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化分析模型包括数据流图、实体联系图、状态迁移图和数据字典,因此这些模型是需求分析阶段的输出。而确定软件体系结构是在软件设计阶段进行的。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
存在多种软件项目管理的成本估算方法。其中专家估算方法主要依赖于专家的背景和经验,具有较大的主观性。Wolverton模型基于一个成本矩阵,定义不同的软件类型(如控制、输入/输出等)和难易(容易和困难)的成本,基于此计算软件开发的成本。COCOMO模型将规模视为成本的主要因素,考虑多个成本驱动因子。在后来的版本COCOMO II中,还考虑了软件开发的不同阶段,包含三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件需求包括功能需求和非功能需求。功能需求是根据要求的活动来描述需要的行为。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一般认为软件风险包含两个特性:不确定性和损失,不确定性即指风险可能发生也可能不发生。评估风险的影响,如果风险真的发生,有3个因素可能会影响风险所产生的后果,即风险的本质、范围和时间。如果风险可以预测,可以避免其发生,有些风险可以预测但无法避免。风险控制的目的是辅助项目组建立处理风险的策略。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
COCOMOII模型也需要使用规模估算信息,在模型层次结构中有3种不同规模估算选择,即:对象点、功能点和代码行。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
I/O软件隐藏了I/O操作实现的细节。I/O软件向用户提供的是逻辑接口。I/O软件将硬件与较高层次的软件隔离开来,而最高层软件向应用提供一个友好的、清晰且统一的接口,方便用户使用。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Product Backlog 产品待办事项清单;Refactoring 重构,不属于scrum的步骤;Sprint Backlog,Sprint待办事项清单;Sprint,冲刺迭代。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CMM(Capability Maturity Model)是能力成熟度模型的缩写,CMM是国际公认的对软件公司进行成熟度等级认证的重要标准。CMM共分五级。在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。每一较低级别是达到较高级别的基础。其中五级是最高级,即优化级,达到该级的软件公司过程可自发地不断改进,防止同类问题二次出现;四级称为已管理级,达到该级的软件公司已实现过程的定量化;三级为已定义级,即过程实现标准化;二级为可重复级,达到该级的软件公司过程已制度化,有纪律,可重复;一级为初始级,过程无序,进度、预算、功能和质量等方面不可预测。在CMM的不同等级有不同的核心。在可重复级,建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。在已定义级,所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。在已管理级,收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。在优化级,过程的量化反馈和先进的新思想、新技术促使过程不断改进。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件成熟度模型CMM是对软件组织进化阶段的描述,该模型在解决软件过程存在问题方面取得了很大的成功,因此在软件界产生了巨大影响,促使软件界重视并认真对待过程改进工作。过程能力成熟度模型基于这样的理念:改进过程将改进产品,尤其是软件产品。软件组织为提高自身的过程能力,把不够成熟的过程提升到较成熟的过程涉及4个方面,这4个方面构成了软件过程改进的框架,即过程改进基础设施、过程改进线路图、软件过程评估方法和软件过程改进计划。在进行评估后需要把发现的问题转化为软件过程改进计划。而过程改进通常不可能是一次性的,需要反复进行。每一次改进要经历4个步骤:评估、计划、改进和监控。  
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件开发过程极大地影响所生成的产品质量,因此改进过程将改进软件产品的质量。这也是进行过程改进的前提和理念。软件质量依赖于软件开发过程的质量,其中,人的因素是主导的,开发技术、过程质量、成本时间和进度也是影响因素。另外,要使得过程改进有效,需要制定过程改进的目标,还需要对开发人员进行培训。CMMI是SEI 将已有的几个CMM模型结合在一起,使之构成“集成模型”,即成熟度模型,该模型支持阶段性过程改进和连续性过程改进。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
易用性的自特性包括易理解性、易学性、易操作性,易分析性属于可维护性的子特性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
建立基本的项目管理和实践来跟踪项目费用、进度和功能特性为可重复级的核心;使用标准开发过程(或方法论)构建(或集成)系统为已定义级的核心;管理层寻求更主动地应对系统的开发问题为已管理级的核心;连续地监督和改进标准化的系统开发过程为优先级的核心。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件变更控制是变更管理的重要内容,要有效进行变更控制,需要借助配置数据库和基线的概念。配置数据库一般包括开发库、受控库和产品库。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件过程是软件生命周期中的一系列相关活动,即用于开发和维护软件及相关产品的一系列活动。软件过程模型可以帮助开发团队理解开发过程,形成对开发中的活动、资源和约束的共同理解,可以根据具体情况对一个过程进行裁剪等。瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。该模型适用于项目开始时需求已确定的情况。V模型是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
喷泉模型是典型的面向对象生命周期模型,是一种以用户需求为动力,以对象作为驱动的模型。该模型克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。“喷泉” 一词本身体现了迭代和无间隙特性。迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统;无间隙是指在开发活动之间不存在明显的边界。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
增量模型是一种非整体开发的模型,该模型具有较大的灵活性,适合于软件需求不明确的一种模型。使用该模型开发产品,一般是尽快构造出可运行的产品,然后在该产品的基础上再增加需要的新的构建,使产品更趋于完善。增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
瀑布模型是一种经典的开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。瀑布模型的突出缺点是不适应用户需求的变化。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UP (统一过程)模型是一种以用例和风险为驱动、以架构为中心、迭代并且增量的开发过程,由UML方法和工具支持。UP过程定义了五个阶段,起始阶段、精化阶段、构建阶段、移交阶段和产生阶段。开发过程中有多次迭代,每次迭代都包含计划、分析、 设计、构造、集成和测试,以及内部和外部发布。每个迭代有五个核心工作流,捕获系统应该做什么的需求工作流、精化和结构化需求的分析工作流、在系统结构内实现需求的设计工作流、构造软件的实现工作流和验证是否如期望那样工作的测试工作流。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
瀑布模型将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。这种方法是一种理想的开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。 原型模型从初始的原型逐步演化成最终软件产品,特别适用于对软件需求缺乏准确认识的情况。 增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试,可以在增量开发过程中逐步理解需求。 螺旋将瀑布模型与快速原型模型结合起来,并且加入两种模型均忽略了的风险分析,适用于复杂的大型软件。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
原型方法适用于用户需求不清、需求经常变化的情况,可以帮助导出系统需求并验证需求的有效性; 2.探索型原型的目的是弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性,可以用来探索特殊的软件解决方案; 3.原型法能够迅速地开发出一个让用户看得见的系统框架,可以用来支持用户界面设计。 原型法不能用来指导代码优化。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
测试过程基本上与开发过程平行进行,在需求分析阶段,就需要对验收测试、系统测试设计相关测试,撰写相关测试设计文档。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
初启阶段结束时产生一个构想文档、一个有关用例模型的调查、一个初始的业务用例、一个早期的风险评估和一个可以显示阶段和迭代的项目计划等制品;精化阶段结束时产生一个补充需求分析、一个软件架构描述和一个可执行的架构原型等制品;构建阶段结束时的成果是一个准备交到最终用户手中的产品,包括具有最初运作能力的在适当的平台上集成的软件产品、用户手册和对当前版本的描述;移交阶段结束时产生移交给用户产品发布版本。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一阶段。瀑布模型的优点是:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。该模型比较适合于需求明确,对交付时间有严格要求的开发。原型模型基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。它适用于需求不明确的开发环境。螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。螺旋模型包含了四个方面的活动:制订计划、风险分析、实施工程、客户评估。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋模型比较适合大规模的开发,它对风险控制有很高的要求。综上所述,要满足题目描述的要求,应该采用瀑布模型开发最适宜。面向对象开发模型。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
敏捷开发的总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。敏捷过程的典型方法很多,每一种方法基于一套原则,这些原则实现了敏捷方法所宣称的理念,即敏捷宣言。其中,极限编程XP是一种轻量级的软件开发方式,由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论。并列争球法Scrum使用迭代的方法,并按需求的优先级来实现产品。自适应软件开发 ASD有6个基本原则。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件复杂性度量是软件度量的一个重要分支。对于软件复杂性度量的主要参数有:
 
 
  • 规模,即总共的指令数,或源程序行数。
  • 难度,通常由程序中出现的操作数的数目所决定的量来表示。
  • 结构,通常用与程序结构有关的度量来表示。
  • 智能度,即算法的难易程度。 软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。McCabe度量法是一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称为环路度量,它认为程序的复杂性很大程度上取决于控制的复杂性。单一的顺序程序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图,也就是说,把程序流程图中每个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同点的有向弧,这样得到的有向图就叫做程序图。程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作以及分支和循环的具体条件。

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
增量式开发的主要优点包括:1.由于能够在较短的时间内向用户提交一些有用的工作产品,因此能够解决用户的一些急用功能。2.由于每次只提交用户部分功能,用户有较充分的时间学习和适应新的产品。3.对系统的可维护性是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。主要缺点包括:1.由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2.在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。3.如果增量包之间存在相交的情况且未很好处理,则必须       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在20世纪90年代后期,一些开发人员抵制产格化软件开发过程,试图强调灵活性在快速有效的软件生产中的作用,提出了敏捷宣言,即个人和交互胜过过程和工具;可 以运行的软件胜过面面俱到的文档;与客户合作胜过合同谈判;对变化的反应胜过遵循计划。基于这些基本思想,有很多敏捷过程的典型方法,其中: 极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术.。 水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。 并列争球法(Scram)使用迭代的方法,其中把每30天一次的迭代称为个冲刺, 并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。 自适应软件开发(ASD)有六个基本的原则: ①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标; ②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征; ③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中; ④变化不视为是一种更正,而是对软件开发实际情况的调整; ⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求; ⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
敏捷开发方法是一个强调灵活性和快速开发的一种开发方法,有多种具体的方法,其中极限编程是敏捷方法中最普遍的—种方法。极限编程包含12个实践操作。其中,集体所有权表示任何开发人员可以对系统任何部分进行改变,结对编程实际上存在一个非正式的代码审查过程,可以获得更高的代码质量。据统计,结对编程的编码速度与传统的单人编程相当。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。 CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。 CL2(已管理的):其共性目标是集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制、和评审。 CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。 CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的质量目标作为管理准则。 CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
初启阶段结束时产生一个构想文档、一个有关用例模型的调查、一个初始的业务用例、一个早期的风险评估和一个可以显示阶段和迭代的项目计划等制品;精化阶段结束时产生一个补充需求分析、一个软件架构描述和一个可执行的架构原型等制品;构建阶段结束时的成果是一个准备交到最终用户手中的产品,包括具有最初运作能力的在适当的平台上集成的软件产品、用户手册和对当前版本的描述;移交阶段结束时产生移交给用户产品发布版本。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ISO/IEC 9126软件质量模型中可靠性质量特性是指在规定的一段时间内和规定的条件下,软件维护其性能水平有关的能力。包括的子特性有成熟性、容错性和易恢复性。其中易恢复性是与在故障发生后,重新建立其性能水平并恢复直接受影响数据的能力,以及与为达到此目的所需的时间和工作有关的软件属性。软件故障发生后,要在90秒内恢复其性能和受影响的数据,达到这一目的有关的属性即为易恢复性子特性。ISO/IEC9126软件质量模型由三个层次组成:第一层是质量特性,第二层是质量子特性,第三层是度量指标。可靠性是一个重要的质量特性,其子特性包括成熟性、容错性和易恢复性。  易使用性是指与为使用所需的努力和由一组规定或隐含的用户对这样使用所做的个别评价有关的一组属性。其子特性包括易理解性、易学性、易操作性。软件质量模型定义了六个软件质量特性,即功能性、可靠性、易使用性、效率、可维护性和可移植性。对每个质量特性定义其子特性。其中可移植性包括子特性:适应性、易安装性、一致性和易替换性。                        
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
功能性是指与功能及其指定的性质有关的一组软件质量;可靠性是指衡量在规定的一段时间内和规定条件下维护性能水平的一组软件质量;可维护性是指与软件维护的难易程度相关的一组软件属性;易使用性是指与使用难易程度及规定或隐含用户对使用方式所做的评价相关的属性。综上所述,可以知道将每个用户的数据和其他用户的数据隔离开,是考虑了软件的功能性质量特性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模块结构评审时,主要包括以下方面的评审:1.控制流结构:规定了处理模块与处理模块之间的流程关系。检查处理模块之间的控制转移关系与控制转移形式(调用方式)。2.数据流结构:规定了数据模块是如何被处理模块进行加工的流程关系。检查处理模块与数据模块之间的对应关系;处理模块与数据模块之间的存取关系,如建立、删除、查询、修改等。3.模块结构与功能结构之间的对应关系:包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系;每个模块的定义(包括功能、输入与输出数据)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
容错技术是对某些无法避开的差错,使其影响减至最小的技术。通常冗余技术分为四类,结构冗余、信息冗余、时间冗余和冗余附加技术。其中冗余附加技术是指为实现其他类型冗余技术所需要的资源和技术,包括程序指令、数据、存放和调动它们的空间和通道等。在屏蔽硬件错误的容错技术中,冗余附加技术包括:关键程序和数据的冗余存储及调用:检测、表决、切换、重构、纠错和复算的实现。在屏蔽软件错误的容错技术中,冗余附加技术包括:冗余备份程序的存储及调用;实现错误检测和错误恢复的程序;实现容错软件所需的固化程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件配置管理SCM用于整个软件工程过程,其主要目标是标识变更、控制变更、确保变更正确的实现,报告变更。其主要内容包括版本管理、配置支持、变更支持、过程支持、团队支持、变化报告和审计支持等。软件配置管理是一组管理整个软件生存期各阶段中变更的活动,主要包括变更标识、变更控制和版本控制。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
三层C/S体系结构由逻辑上相互分离的表示层、业务层和数据层构成。其中表示层向客户提供数据,业务层实施业务相数据规则,数据层定义数据访问标准。该体系结构具有许多优点,如逻辑上相对独立,不同层可以用不同的平台、软件和开发语言,而系统的安装、修改和维护在各层都可能进行。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
配置管理是软件开发过程的重要内容,贯穿软件开发的整个过程。其内容包括:软件配置标识、变更管理、版本控制、系统建立、配置审核和配置状态报告。       
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
为了使用户满意,软件应该满足两个必要条件:设计的规格说明书符合用户的要求,这称为设计质量;程序按照设计规格说明所规定的情况正确执行,这称为程序质量。 设计质量评审的对象是在需求分析阶段产生的软件需求规格说明、数据需求规格说明、在软件概要设计阶段产生的软件概要设计说明书等。主要从以下方面进行评审:软件的规格说明是否合乎用户的要求;可靠性;保密措施实现情况等;操作特性实施情况等;性能实现情况;可修改性、可扩充性、可互换性和可移植性;可测试性;可复用性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
McCall软件质量模型从软件产品的运行、修正和转移三个方面确定了11个质量特性,其中运行方面包含了正确性、可靠性、效率、完整性、使用性这些质量特性。修正方面包含了维护性、测试性、灵活性这3个质量特性。转移方面包含了维护性移植性、复用性、共运行性这3个质量特性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
通常从以下几个方面进行评审: ①评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等。 ②评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替手段或恢复手段。 ③评审保密措施实现情况,即是否对系统使用资格进行检查;是否对特定数据、特定功能的使用资格进行检查;在检查出有违反使用资格的情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等。 ④评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等。 ⑤评审性能实现情况,即是否达到所规定性能的目标值。 ⑥评审软件是否具有可修改性,可扩充性、可互换性和可移植性。 ⑦评审软件是否具有可测试性。 ⑧评审软件是否具有复用性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
系统开发人员与项目管理人员在项目期内进行沟通的文档主要有系统开发计划、系统开发月报以及系统开发总结报告等项目管理文件。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
用于系统开发人员与项目管理人员在项目期内进行沟通的文档主要有系统开发计划,包括工作任务分解表、PERT图、甘特图和预算分配表等。总体规划和开发合同用于与系统分析人员在系统规划和系统分析阶段的沟通。测试计划用于系统测试人员与系统开发人员之间的沟通。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
程序的三种基本控制结构是顺序结构、选择结构和重复结构。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
文档是指某种数据媒体和其中所记录的数据。在软件开发过程中,有大量的信息要记录和使用,因此文档具有重要的作用,如可以提高软件开发过程的能见度、提髙开发效率、作为开发人员在一定阶段的工作成果和结束标志、记录开发过程中的有关信息、提高对软件运行维护和培训的有关信息、便于用户了解软件功能和性能等各项指标。 髙质量的文档应该体现在几个方面:针对性,文档编制应考虑读者。按不同的类型、不同层次的读者,决定怎样适应他们的需要;精确性,文档的行文应该十分确切,不能出现多义性的描述。同一项目几个文档的内容应该是协调一致,没有矛盾的;清晰性, 文档编写应力求简明,如有可能,配以适当的图表,以增强其清晰性;完整性,任何文 档都应当是完整的、独立的,应该自成体系;灵活性,各个不同软件项目,其规模和复 杂程度有着许多实际差别,不能一律看待;可追溯性,由于各开发阶段编制的文档与各个阶段完成的工作有密切的关系,前后两个阶段生成的文档,随着开发工作的逐步延伸, 具有一定的继承关系,在一个项目各开发阶段之间提供的文档必定存在着可追溯的关系。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
文档是系统建设过程的“痕迹”,是系统维护人员的指南,是开发人员与用户交流的工具。文档不仅仅描述和规定软件的适用范围及相关的操作命令。软件包括程序和文档,因此没有文档的软件不能称之为软件产品。软件文档的编制在软件开发中是相当重要的,高质量的文档对于发挥软件产品的效益有着重要的意义。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件文档不仅仅描述和规定了软件的使用范围及相关的操作命令,还包括硬件采购和网络设计中形成的文档。文档是软件产品的重要组成部分。软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量,对发挥软件产品的效益具有重要的意义。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件由程序、数据和相关文档构成,因此文档是软件不可或缺的重要组成部分。软件开发各个阶段都需要撰写相关文档,如开发计划、需求分析文档、设计文档等,这些文档是开发人员之间以及和其他人员之间进行沟通的重要依据,高质量的文档对于提高软件开发质量具有重要的意义。尽管在开发过程中编写文档需要占用开发时间,但是相对于没有文档而言,编写文档使得开发人员对各个阶段的工作都进行周密思考,全盘权衡,从而减少返工。并且可以在开发早期发现错误和不一致性,便于及时加以纠正,因此可以提高软件开发效率。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件评审的内容包括设计质量评审、程序质量评审和与运行环境接口的评审。评审的主要目标是为了发现软件中的错误。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一般来讲,概要设计的内容可以包含系统构架、模块划分、系统接口、数据设计4个主要方面的内容,不包括模块内算法设计。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
可维护性是所有软件都应具有的基本特点,必须在开发阶段保证软件具有可维护的特点,在系统分析阶段的复审过程中,应该指出软件的可移植性问题以及可能影响软件维护的系统界面;在系统设计阶段的复审期间,应该从容易修改、模块化和功能独立的目的出发,评价软件的结构和过程;在系统实施阶段的复审期间,代码复审应该强调编码风格和内部说明文档这两个影响可维护性的因素。可测试性是可维护性的一个评价指标。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件系统文档是系统建设过程的“痕迹”,是系统维护人员的指南,是开发人员与用户交流的工具。软件系统文档不仅包括应用软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档;不仅包括有一定格式要求的规范文档,还包括系统建设过程中的各种来往文件、会议纪要、会计单据等资料形成的不规范文档。软件系统文档可以提高软件开发的可见度,提高软件开发效率,且便于用户理解软件的功能、性能等各项指标。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在对软件系统进行评价时,需要从信息系统的组成部分、评价对象和经济学角度出发进行综合考虑,以建立起一套指标体系理论架构。 从信息系统的组成部分出发,信息系统是一个由人机共同组成的系统,所以可以按照运行效果和用户需求(人)、系统质量和技术条件(机)这两条线索构造指标。 从信息系统评价对象出发,对于用户方来说,他们所关心的是用户需求和运行质量; 对开发方而言,他们所关心的是系统质量和技术水平。系统外部环境则主要通过社会效益指标来反映。 从经济学角度出发,分别按系统成本、系统效益和财务指标等3条线索建立指标。       
 
 

逆向工程从源代码得到软件系统的规格说明和设计信息,属于软件维护阶段行为,因此逆向工程工具属于软件维护工具。逆向工程产品设计可以认为是一个从产品到设计的过程。简单地说,逆向工程产品设计就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。使用该过程进行开发时,一般会先采用逆向工程先从代码分析出设计,再从设计分析出需求,此时加入新的需求,然后走正向工程的路线,形成新的系统。从这个过程可以看出,逆向工程是在需求分析阶段进行的。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
可维护性质量特性是指与软件维护的难易程度相关的一组软件属性,它包含了易分析性、稳定性、易测试性和易改变性4个子特性。其中:易分析性是描述诊断缺陷或失效原因、判定待修改程度的难易程度的特性。稳定性是描述修改造成难以预料的后果的风险程度,风险程度越低,稳定性越好。易测试性是描述测试已修改软件的难易程度的特性。易改变性是描述修改、排错或适应环境变化的难易程度在软件开发的各个阶段都需要考虑提高软件产品的可维护性,而不仅仅是在软件维护阶段。良好的软件开发文档可以有效地提高软件的可维护性。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
循环单链表中最后一个结点的指针域不再是结束标志,而是指向整个链表的第一个结点,从而使链表形成一个环。       
 
 

 

 

系统开发与运行

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
外部实体一般为组织机构、人员、第三方系统。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据流图摆脱系统的物理内容,在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。数据流图主要由实体、数据存储、处理过程和数据流四部分组成。在顶层数据流图中,将系统描述成一个处理过程,而其它的是与该处理过程相关的输入输出流,因此顶层数据流图描述了系统的输入与输出。 数据流图是结构化分析方法的重要模型,用于描述系统的功能、输入、输出和数据存储等。在绘制数据流图中,每条数据流的起点或者终点必须是加工,即至少有一端是加工。在分层数据流图中,必须要保持父图与子图平衡。每个加工必须既有输入数据流又有输出数据流。必须要保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。                    
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对基本加工的说明有三种描述方式:结构化语言、判断表(决策表)、判断树(决策树)。基本加工逻辑描述的基本原则为:1.对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。2.基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。3.加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。4.加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化设计方法是一种面向数据流的设计方法,与结构化分析方法衔接。在需求分析阶段,结构化分析方法产生了数据流图,而在设计阶段,结构化设计方法将数据流映射为软件系统的模块结构。数据流图中从系统的输入数据流到系统的输出数据流的一连串变换形成了一条信息流。其中的信息流一般情况下包括变换流型和事物流型不同类型的数据流到程序模块的映射方法不同。一个软件系统往往不仅仅有一种数据流类型。 它是软件工程中最早出现的开发方法,特别适合于数据处理领域的问题,但是不适合解决大规模的、特别复杂的项目,而且难以适应需求的变化。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化设计主要包括: ①体系结构设计:定义软件的主要结构元素及其关系。 ②数据设计:基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构。 ③接口设计:描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。 ④过程设计:确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化分析的输出是结构化设计的输入,设计活动依据分析结果进行。接口设计是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系,而这些关系的依据主要是分析阶段的数据流图。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据流图中有四个要素:①外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;②数据流表示数据沿箭头方向的流动;③加工是对数据对象的处理或变换;④数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。根据上述定义和题干说明,患者是外部实体。实体联系图也是一个常用的数据模型,用于描述数据对象及数据对象之间的关系。实体联系图有三个要素:①实体是目标系统所需要的复合信息的表示,也称为数据对象; ②属性定义数据对象的特征;③联系是不同数据对象之间的关系。在该系统中患者是一个数据对象,即实体,具有多种属性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据流图是结构化分析的工具,结构化方法就是采用自顶向下逐层分解的思想进行分析建模的。随着分解层次的增加,抽象的级别也越来越低,即越来越接近问题的解。数据流图建模应遵循:自顶向下、从抽象到具体的原则。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于软件设计过程中,需要遵循高内聚、低耦合,模块大小适中。模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合是模块之间的相对独立性的度量,模块之间的连接越紧密, 联系越多,耦合性就越高,而其模块独立性就越弱。一般来说,模块之间的耦合有7种类型,根据耦合性从低到高为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合;如果一组模块通过数据结构本身传递,则称这种耦合为标记耦合;若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合;若一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口,上述几个情形之一发生则说明两个模块之间就发生了内容耦合。            
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件设计必须依据软件的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息,其关系为:根据加工规格说明和控制规格说明进行过程设计;根据数据字典和实体关系图进行数据设计;根据数据流图进行接口设计;根据数据流图进行体系结构设计。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 模块间的耦合和模块的内聚是度量模块独立性的两个准则。内聚是模块功能强度的度量,即模块内部各个元素彼此结合的紧密程度。一个模块内部各个元素之间的紧密程度越高,则其内聚性越高,模块独立性越好。模块内聚类型主要有以下几类: ①偶然内聚:指一个模块内的各个处理元素之间没有任何联系。 ②逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 ③时间内聚:把需要同时执行的动作组合在一起形成的模块。 ④通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。 ⑤顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行, 前一个功能元素的输出就是下一个功能元素的输入。 ⑥功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
通常,可以按照在软件系统中的功能将模块分为四种类型。①传入模块:取得数据或输入数据,经过某些处理,再将其传送给其他模块.②传出模块:输出数据,在输出 之前可能进行某些处理,数据可能被输出到系统的外部,或者会输出到其他模块进行进一步处理。③变换模块:从上级调用模块得到数据,进行特定的处理,转换成其他形式,在将加工结果返回给调用模块。④协调模块一般不对数据进行加工,主要是通过调用、协调和管理其他模块来完成特定的功能。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。内聚是指模块内部各元素之间联系的紧密程度,内聚度越高,则模块的独立性越好。内聚性一般有以下几种: ①巧合内聚,指一个模块内的各处理元素之间没有任何联系。 ②逻辑内聚,指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 ③时间内聚,把需要同时执行的动作组合在一起形成的模块。 ④通信内聚,指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。 ⑤顺序内聚,指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。 ⑥功能内聚是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化分析的输出是结构化设计的输入,设计活动依据分析结果进行。接口设计是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系,而这些关系的依据主要是分析阶段的数据流图。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。其条目有数据流、数据项、数据存储、基本加工等。数据流图中的基本图形元素包括数据流、加工、数据存储和外部实体。其中,数据流、加工和数据存储用于构建软件系统内部的数据处理模型,而外部实体表示存在于系统之外的对象,用来帮助用户理解系统数据的来源和去向。外部实体包括:人/物、外部系统、组织机构等。            
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
系统结构图(SC)又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,即反映了系统的总体结构。SC包括模块、模块之间的调用关系、模块之间的通信和辅助控制符号等4个部分。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。信息内聚:指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或产生相同的输出数据。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的执行路径和过程进行测试,检查是否满足设计的需要。白盒测试常用的技术涉及不同覆盖标准,在测试时需根据指定的覆盖标准确定测试数据。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据流图是结构化分析的一个重要模型,描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模。 数据流图中有四个要素:外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;数据流表示数据沿箭头方向的流动;加工是对数据对象的处理或变换;数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
回归测试是在软件发生变更之后进行的测试,以发现在变更时可能引起的其他错误。回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模块的作用范围定义为受该模块内一个判定影响的模块集合,模块的控制范围为模块本身以及所有直接或间接从属于该模块的模块集合。其作用范围应该在控制范围之内。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
MVC是分层架构风格的一种,采用关注点分离的方针,将可视化界面呈现(View)、UI处理逻辑(Controller)和业务逻辑(Model)三者分离出来,并且利用合理的交互方针将它们之间的依赖降至最低。解耦之后,有利于代码重用、提高系统的可维护性,也可提高系统的开发效率,但是由于分层之后,调用也需要分层调用,所以不能提高系统的运行效率。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的结果则展现了系统对数据的加工和转换。面向数据流建模是目前仍然被广泛使用的方法之一,而DFD则是面向数据流建模中的重要工具,DFD将系统建模成输入一处理一输出的模型,即流入软件的数据对象,经由处理的转换,最后以结果数据对象的形式流出软件。在实际使用DFD进行数据流建模时,需要注意以下原则: ①加工处理和数据流的正确使用,如一个加工必须既有输入又有输出;数据流只能和加工相关,即从加工流向加工、数据源流向加工或加工流向数据源。 ②每个数据流和数据存储都要在数据字典中有定义,数据字典将包括各层数据流图中数据元素的定义。 ③数据流图中最底层的加工处理必须有加工处理说明。 ④父图和子图必须平衡,即父图中某加工的输入输出(数据流)和分解这个加工的子图的输入输出数据流必须完全一致,这种一致性不一定要求数据流的名称和个数一 一对应,但它们在数据字典中的定义必须一致,数据流或数据项既不能多也不能少。 ⑤加工处理说明和数据流图中加工处理涉及的元素保持一致。例如,在加丄处理说明中,输入数据流必须说明其如何使用,输出数据流说明如何产生或选取,数据存储说明如何选取、使用或修改。 ⑥一幅图中的图元个数控制在7+2以内。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合程度越低,内聚程度越高,则模块的独立性越好。存在多种模块之间的耦合类型,从低到高依次为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。其中, 公共耦合是指一组模块都访问同一公共数据环境; 控制耦合是指一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能; 标记耦合是一组模块通过参数表传递记录信息; 数据耦合是一个模块访问另一个模块时,彼此之间通过数据参数(不是控制参数,公共数据结构或外部变量),来交换输入输出信息。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
系统设计为系统制定蓝图,软件设计模型关注新系统总体结构、代码设计、处理过程、数据结构和界面模型等。对项目范围的关注在软件设计之前。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。耦合性和内聚性是模块独立性的两个定性标准,在划分软件系统模块时,尽量做到高内聚、低耦合,提高模块的独立性。耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
分支覆盖是一种白盒测试方法,是指设计若干测试用例,使得所有判断框的Y和N分支至少走一次。采用分支覆盖法进行测试使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,或者程序中的每一个取“真”分支和取“假”分支至少都通过一次。需要设计的测试用例需要确保每一个取“真”分支和取“假”分支至少都通过一次,即统计最多分支数。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在软件开发完成交付用户使用后,就进入软件运行/维护阶段。软件维护活动根据其内容可以分为4种类型: ①正确性维护。为了识别和纠正软件错误,改正软件性能上的缺陷,排除实施的误使用,应进行的诊断和改正错误的过程。 ②适应性维护。由于信息技术飞速发展,软件运行的外部环境或数据环境可能发生变化,为了使软件适应这种变化而修改软件的过程。 ③完善性维护。在软件使用过程中,用户往往会对软件提出新的功能与性能要求, 为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性而进行的维护活动。 ④预防性维护。为了提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础而进行的维护工作。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在设计软件的模块结构时,有一些启发式原则可以改进设计。如完善模块功能、消除重复功能、模块的作用范围应在其控制范围之内、尽可能减少高扇出结构,随着深度增大扇入、避免或减少使用病态连接等等。模块规模大小应适中。模块单一的功能可以提高其内聚性,但同时考虑与其他模块的耦合程度,因此不是模块功能越单纯越好。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件测试的基本目标是为了发现软件中的错误,但软件测试分为几个不同的阶段,每个阶段的侧重点是有所不同的。单元测试主要是发现程序代码中的问题,针对详细设计和软件实现阶段的工作进行的;集成测试验证系统模块是否能够根据系统和程序设计规格说明的描述进行工作,即模块以及模块之间的接口的测试:而系统测试则是验证系统是否确实执行需求规格说明中描述的功能和非功能要求,因此测试目标在需求分析阶段就已经定义。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合程度越低,内聚程度越高,则模块的独立性越好。 存在多种模块内聚类型,从高到低依次为功能、通信、顺序、过程、时间、逻辑和偶然内聚。 一个模块内的几个操作是相关的,而且必须以特定的次序执行,则该模块的内聚类型为过程内聚。 模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行, 则该模块的内聚类型为时间内聚。 若一个模块的各个部分只是通过代码的逻辑结构相关联,则该模块的内聚类型为逻辑内聚。 把访问或操作在同一数据结构的操作放在一个模块中,则该模块的内聚类型为通信内聚。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
子系统结构设计中,重点关注如何划分模块,子系统之间以及模块之间的数据和调用关系,模块结构质量等这些粗粒度的问题;而对每个模块内部进行设计时,才需要考虑采用的数据结构以及处理的算法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
仓库风格是一种软件体系结构,其中包含一个数据仓库和若干个其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。数据库系统、超文本系统和黑板系统都属于仓库风格。 该体系结构的优点包括: ①对可更改性和可维护性的支持; ②可复用的知识源; ③支持容错性和健壮性。 缺点包括: ①测试困难; ②不能保证有好的解决方案; ③难以建立好的控制策略; ④低效; ⑤昂贵的开发工作; ⑥缺少对并行机制的支持。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在软件设计中,人们总结了一些启发式原则,根据这些原则进行设计,可以设计出较高质量的软件系统。其中,模块的扇入扇出适中,模块大小适中以及完善模块功能都可以改进设计质量。而将相似功能的模块合并可能会降低模块内聚和提高模块之间的耦合,因此并不能改进设计质量。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
辅助软件维护过程中的活动的软件称为“软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:1. 版本控制工具;2. 文档分析工具;3. 开发信息库工具;. 4. 逆向工程工具;5. 再工程工具;6. 配置管理支持工具。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模块化设计要求高内聚、低耦合。 在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则: 1.模块的大小要适中。系统分解时需要考虑模块的规模,过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一;过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性。一般来说,一个模块的大小使其实现代码在1~2页纸之内,或者其实现代码行数在50~200行之间,这种规模的模块易于实现和维护。 2.模块的扇入和扇出要合理。一个模块的扇出是指该模块直接调用的下级模块的个数;扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块;扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。一个模块的扇入是指直接调用该模块的上级模块的个数;扇入大表示模块的复用程度高。设计良好的软件结构通常顶层扇出比较大,中间扇出较少,底层模块则有大扇入。一般来说,系统的平均扇入和扇出系数为3或4,不应该超过7,否则会增大出错的概率。 3.深度和宽度适当。深度表示软件结构中模块的层数,如果层数过多,则应考虑是否有些模块设计过于简单,看能否适当合并。宽度是软件结构中同一个层次上的模块总数的最大值,一般说来,宽度越大系统越复杂,对宽度影响最大的因素是模块的扇出。在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。 模块的扇入指模块直接上级模块的个数。模块的直属下级模块个数即为模块的扇出。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。本题描述的是标记耦合。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件维护是软件生命周期最长的一段,相对于软件开发任务而言,软件维护工作要更加复杂。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件的可维护性是指维护人员理解、改正、改动和改进这个软件的难易程度,是软件开发阶段各个时期的关键目标。软件系统的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。系统的可维护性的评价指标包括:可理解性、可测试性、可修改性。可理解性:指别人能理解系统的结构、界面、功能和内部过程的难易程度。模块化、详细设计文档、结构化设计和良好的高级程序设计语言等,都有助于提高可理解性。可测试性:诊断和测试的容易程度取决于易理解的程度。可修改性:诊断和测试的容易程度与系统设计所制定的设计原则有直接关系。模块的耦合、内聚、作用范围与控制范围的关系等,都对可修改性有影响。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件维护的类型一般有四类:正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误;适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改;完善性维护是为扩充功能和改善性能而进行的修改;预防性维护是为了改进应用软件的可靠性和可维护性,为了适应未来变化的软硬件环境的变化,主动增加预防性的新的功能,以适应将来各类变化。 修改现有应用软件中的某个排序算法,提供其运行效率属于完善性维护。       
 
 

管道过滤的优点①软件构件具有良好的隐蔽性和高内聚、低耦合的特点; ②允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成; ③支持软件复用; ④系统维护和增强系统性能简单; ⑤允许对一些如吞吐量、死锁等属性的分析; ⑥支持并行执行。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。 标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址; 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合: 1. 一个模块直接访问另一个模块的内部数据; 2. 一个模块不通过正常入口转到另一模块内部; 3. 两个模块有一部分程序代码重叠(只可能出现在汇编语言中); 4. 一个模块有多个入口。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
人机交互“黄金三原则”包括:置于用户控制之下、减少用户的记忆负担、保持界面的一致性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件维护的内容一般包括准确性维护、适应性维护、完善性维护和预防性维护。正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。完善性维护主要是指对己有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。预防性维护是指为了适应未来的软硬件环境的变化,主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在软件开发完成交付用户使用后,就进入软件运行/维护阶段。软件维护活动根据其内容可以分为4种类型:改正性维护,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应进行的诊断和改正错误的过程;适应性维护,由于信息技术飞速发展,软件运行的外部环境或数据环境可能会发生变化,为了使软件适应这种变 化,而修改软件的过程;完善性维护,在软件使用过程中,用户往往会对软件提出新的功能与性能要求,为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性而进行的维护活动;预防性维护是为了提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础而进行的维护工作。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
折半查找是在一组有序的数(假设为递增顺序)中査找一个数的算法,其思想是:将待查找的数与数组中间位置mid的数进行比较,若相等,则查找成功;若大于中间位置的数,则在后半部分进行查找;若小于中间位置的数,则在前半部分进行查找。直到查找成功,返回所查找的数的位置,或者失败,返回-1。设计一个查找成功的测试用例,可以覆盖除了return-1之外的所有语句和路径;设计一个査找失败的测试用例,可以覆盖除了return mid之外的所有语句和路径。因此,最少需要2个测试用例才可以覆盖所有的路径。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。在白盒测试中,语句覆盖是指选择足够的测试用例,使被测程序中每条语句至少执行一次。它对程序执行逻辑的覆盖很低,因此一般认为是很弱的逻辑覆盖。判定覆盖是指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”植和“假”值。条件覆盖是指设计足够的测试用例,使得每一个判定语句中每个逻辑条件的各种可能的值至少满足一次。路径覆盖是指覆盖被测程序中所有可能的路径。在这些覆盖技术中,从弱到强依次为语句覆盖、判定覆盖、条件覆盖和路径覆盖。
 
 

顶向下集成优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。2. 自底向上集成优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件测试按阶段划分为单元测试、集成测试和系统测试。在单元测试基础上,将所有模块按照设计要求组装为系统,此时进行的测试称为集成测试。 集成测试有多种策略: 自底向上:从系统层次中最底层的构件开始测试,逐步向上。需要设计驱动模块来辅助测试。 自顶向下:与自底向上相反,从最顶层的构件开始,逐步向下。需要设计桩模块来辅助测试。 三明治:结合自底向上和自顶向下两种测试策略。 一次性:对所有构件一次性测试,然后集成。 根据题干,该实例采用了三明治测试策略。 该测量的优势是结合了自底向上和自顶向下的优点,如较早地验证了主要的控制构件和底层模块,并行测试程度较高等。但缺点是需要写较多的驱动模块和桩模块。单元测试侧重于模块中的内部处理逻辑和数据结构,所有模块都通过了测试之后,把模块集成起来仍可能会出现穿越模块的数据丢失、模块之间的相互影响等问题,因此,需要模块按系统设计说明书的要求组合起来进行测试,即集成测试
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一个高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。软件测试不能说明软件中不存在错误,不能用穷举法来进行测试。 经验表明,测试中存在集群规律,即未发现的错误数量与已发现的错误数量成正比,已发现的错误数量越多,则该模块未被发现的错误也就越多。 软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。 “白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误”选项的描述是正确的,白盒测试中语句覆盖是覆盖度最弱的,所以路径覆盖往往能比语句覆盖发现更多的错误。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件测试方法分为静态测试和动态测试。静态测试是被测试程序不在机器上运行而采用人工检测和计算机辅助静态分析手段对程序进行检测。动态测试是通过运行程序发现错误。对软件产品进行动态测试时可以采用黑盒测试和白盒测试法。黑盒测试法在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。常用的黑盒测试技术包括等价类划分、边界值分析、错误猜测和因果图的报告。对于无法获得源代码的第三方组件,可采用黑盒对组件进行测试。基本路径覆盖、分支覆盖和环路覆盖需要根据程序的内部结构和逻辑进行测试。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件测试是软件开发过程中一个独立而且非常重要的阶段,它是为了发现错误而执行程序的过程。因此一个成功的测试应该能发现至今未发现的错误。而且需要特别指出的是软件测试不能表明软件中不存在错误,它只能说明软件中存在错误。另外,由于问题的复杂性、软件本身的复杂性和抽象性、软件开发各个阶段工作的多样性、参加开发各种人员之间的配合关系等因素,使得开发的每个环节都可能产生错误,因此软件测试应该贯穿到软件开发的各个阶段中,且需要尽早地和不断地进行。经验表明,测试中存在一种集群现象,即在被测程序段中,若发现的错误数目越多,则残存的错误数目也较多。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
等价类划分是一类黑盒测试技术,将程序的输入域划分为若干等价类,然后从每个等价类中选取一个代表性数据作为测试用例。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计和实施的最后复查。根据测试的概念和目的,在进行信息系统测试时应遵循以下基本原则: ①应尽早并不断地进行测试。测试不是在应用系统开发完之后才进行的。由于原始问题的复杂性、开发各阶段的多样性以及参加人员之间的协调等因素,使得在开发各个阶段都有可能出现错误。因此,测试应贯穿在开发的各个阶段,尽早纠正错误,消除隐患。 ②测试工作应该避免由原开发软件的人或小组承担,一方面,开发人员往往不愿否认自己的工作,总认为自己开发的软件没有错误;另一方面,开发人员的错误很难由本人测试出来,很容易根据自己编程的思路来制定测试思路,具有局限性。测试工作应由专门人员来进行,会更客观,更有效。 ③设计测试方案的时候,不仅要确定输入数据,而且要根据系统功能确定预期输出结果。将实际输出结果与预期结果相比较就能发现测试对象是否正确。 ④在设计测试用例时,不仅要设计有效合理的输入条件,也要包含不合理、失效的输入条件。测试的时候,人们往往习惯按照合理的、正常的情况进行测试,而忽略了对异常、不合理、意想不到的情况进行测试,而这些可能就是隐患。 ⑤在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事。多余的工作会带来副作用,影响程序的效率,有时会带来潜在的危害或错误。 ⑥严格按照测试计划来进行,避免测试的随意性。测试计划应包括测试内容、进度安排、人员安排、测试环境、测试工具和测试资料等。严格地按照测试计划可以保证进度,使各方面都得以协调进行。 ⑦妥善保存测试计划、测试用例,作为软件文档的组成部分,为维护提供方便。 ⑧测试用例都是精心设计出来的,可以为重新测试或追加测试提供方便。当纠正错误、系统功能扩充后,都需要重新开始测试,而这些工作重复性很高,可以利用以前的测试用例,或在其基础上修改,然后进行测试。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
测试用例编写一般原则:1.设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;2.设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。在设计测试用例时应考虑输入数据和预期输出结果、在设计测试用例时,应该包括合理的输入条件、在设计测试用例时,应该包括不合理的输入条件选项都与测试用例的基本概念相关,每个测试用例应该包含输入数据和预期输出结果。在设计测试用例时,要包含合理的输入和不合理的输入。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
功能测试检查软件是否能实现需求中指定的那些功能。性能测试是测试软件的安全性、精确性、速度和可靠性。回归测试用于识别在改正当前故障的同时可能会引入新的故障。验收测试是客户对系统进行测试以验证软件系统是否符合他们对需求的理解。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。单元测试侧重于模块中的内部处理逻辑和数据结构。单元测试主要检查模块的以下5个特征:模块接口、局部数据结构、重要的执行路径、出错处理和边界条件。 ①模块接口。模块的接口保证了测试模块的数据流可以正确地流入、流出。在测试中应检査以下要点: •测试模块的输入参数和形式参数在个数、属性、单位上是否一致。 •调用其他模块时所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致。 •调用标准函数时所用的参数在属性、数目和顺序上是否正确。 •全局变量在各模块中的定义和用法是否一致。 •输入是否仅改变了形式参数。 •开/关的语句是否正确。 •规定的I/O格式是否与输入输出语句一致。 •在使用文件之前是否已经打开文件或是用文件之后是否己经关闭文件。 ②局部数据结构。在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素: •变量的说明是否合适。 •是否使用了尚未赋值或尚未初始化的变量。 •变量的初始值或默认值是否正确。 •变量名是否有错(例如:拼写错误)。 ③重要的执行路径。在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试例子来发现是否有计算、比较或控制流等方面的错误。 •计算方面的错误:算术运算的优先次序不正确或理解错误;精度不够;运算对象的类型彼此不相容;算法错误;表达式的符号表示不正确等。 •比较和控制流的错误:本应相等的量由于精度造成不相等;不同类型进行比较; 逻辑运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一 次)、死循环;不恰当地修改循环变量;当遇到分支循环时,出口错误等。 ④出错处理。好的设计应该能预测到出错的条件并且有对出错处理的路径。虽然计算机可以显示出错信息的内容,但仍需要程序员对出错进行处理,保证其逻辑的正确性,以便于用户维护。 ⑤边界条件。边界条件的测试是单元测试的最后工作,也是非常重要的工作。软件容易在边界出现错误。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在单元测试开始时,应该对通过所有被测模块的数据流进行测试。①输入参数是否与形式参数是否一致。②调用模块的实参与被调用模块形参是否一致。③全局变量在各模块中的定义和用法是否一致④外部输入、输出等等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
所谓演绎推理,就是从一般性的前提出发,通过推导即“演绎”,得出具体陈述或个别结论的过程。归纳法以一系列经验事物或知识素材为依据,寻找出其服从的基本规律或共同规律,并假设同类事物中的其他事物也服从这些规律,从而将这些规律作为预测同类事物的其他事物的基本原理的一种认知方法。   
 
 

 

网络与多媒体基础知识

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
防火墙最基本的功能就是控制在计算机网络中,不同信任程度区域间传送的数据流。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口,隐蔽内部细节。所有的访问都经过防火墙,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。 包过滤防火墙对数据包的过滤依据包括源IP地址、源端口号、目标IP地址和目标端口号。防火墙是一种放置在网络边界上,用于保护内部网络安全的网络设备。它通过对流经数据流进行分析和检查,可实现对数据包的过滤、保存用户访问网络的记录和服务器代理功能。防火墙不具备检査病毒的功能。包过滤技术是一种基于网络层、传输层的安全技术,优点是简单实用,实现成本较低同时,包过滤操作对于应用层来说是透明的,它不要求客户与服务器程序做任何修改。但包过滤技术无法识别基于应用层的恶意入侵,如恶意的Java小程序以及电子邮件中附带的病毒。代理服务技术基于应用层,需要检查数据包的内容,能够对基于高层协议的攻击进行拦截,安全性较包过滤技术要好。缺点是处理速度比较慢,不适用于高速网之间的应用。另外,代理使用一个客户程序与特定的中间节点连接,然后中间节点与代理服务器进行实际连接。因此,使用这类防火墙时外部网络与内部网络之间不存在直接连接,即使防火墙发生了问题,外部网络也无法与被保护的网络连接。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
漏洞扫描系统是一种自动检测目标主机安全弱点的程序,漏洞扫描系统的原理是根据系统漏洞库对系统可能存在的漏洞进行一一验证。黑客利用漏洞扫描系统可以发现目标主机的安全漏洞从而有针对性的对系统发起攻击;系统管理员利用漏洞扫描系统可以查找系统中存在的漏洞并进行修补从而提高系统的可靠性。漏洞扫描系统不能用于发现网络入侵者,用于检测网络入侵者的系统称为入侵检测系统。漏洞扫描技术是检测远程或本地系统安全脆弱性的一种安全技术。通过与目标主机TCP/IP端口建立连接并请求某些服务(如TELNET、FTP等),记录目标主机的应答, 搜集目标主机相关信息(如匿名用户是否可以登录等),从而发现目标主机某些内在的安全弱点。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
网络攻击的主要手段包括口令入侵、放置特洛伊木马程序、拒绝服务(DoS)攻击、端口扫描、网络监听、欺骗攻击和电子邮件攻击等。 口令入侵是指使用某些合法用户的账号和口令登录到目的主机,然后再实施攻击活动。 特洛伊木马(Trojans)程序常被伪装成工具程序或游戏,一旦用户打开了带有特洛伊木马程序的邮件附件或从网上直接下载,或执行了这些程序之后,当用户连接到互联网上时,这个程序就会向黑客通知用户的IP地址及被预先设定的端口。 拒绝服务(DoS)攻击目的是使计算机或网络无法提供正常的服务。最常见的拒绝服务攻击有网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。连通性攻击是指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。 端口扫描就是利用Socket编程与目标主机的某些端口建立TCP连接、进行传输协议的验证等,从而侦知目标主机的扫描端口是否处于激活状态、主机提供了哪些服务、提供的服务中是否含有某些缺陷等。 网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息。使用网络监听工具可轻而易举地截取包括口令和账号在内的信息资料。 欺骗攻击是攻击者创造一个易于误解的上下文环境,以诱使受攻击者进入并且做出缺乏安全考虑的决策。IP欺骗是欺骗攻击的一种,IP欺骗实现的过程是:使得被信任的主机丧失工作能力,同时采样目标主机发出的TCP序列号,猜测出它的数据序列号。然后,伪装成被信任的主机,同时建立起与目标主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的命令放置一个系统后门,以进行非授权操作。拒绝服务攻击即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。           
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数字证书是由权威机构 CA证书授权(CertificateAuthority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来 证明自己的身份和识别对方的身份。 数字证书包含版本、序列号、签名算法标识符、签发人姓名、有效期、主体名、主体公钥信息等并附有CA的签名,用户A获取用户B的数字证书后通过验证CA的签名 来确认数字证书的有效性。验证CA的签名时使用的是CA的公钥。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数字签名(Digital Signature)技术是不对称加密算法的典型应用:数据源发送方使用自己的私钥对数据校验和(或)其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名“,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名主要的功能是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
TLS是安全传输层协议的简称,用于在两个通信应用程序之间提供保密性和数据完整性。SSL是安全套接层协议的简称,它也是一种为网络通信提供安全和数据完整性的协议,它与TLS非常接近,它们都是在传输层对网络连接进行加密。PGP是一个基于RSA公匙加密体系的邮件加密软件,用它可以对邮件保密以防止非授权者阅读。HTTPS即安全版的HTTP (超文本传输协议)的,它是在HTTP下加入SSL层,HTTPS的安全基础就是SSL。IPSec是网络层的安全协议,它通过使用加密的安全服务来确保在网络上进行保密而安全的通讯。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
报文摘要是用来保证数据完整性的。传输的数据一旦被修改,摘要就不同了。只要对比两次摘要就可确定数据是否被修改过。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
特洛伊木马是附着在应用程序中或者单独存在的一些恶意程序,它可以利用网络远程控制网络另一端的安装有服务端程序的主机,实现对被植入了木马程序的计算机的控制,或者窃取被植入了木马程序的计算机上的机密资料。 拒绝服务攻击通过网络的内外部用户来发动攻击。内部用户可以通过长时间占用系统的内存、CPU处理时间使其他用户不能及时得到这些资源,而引起拒绝服务攻击;外部黑客也可以通过占用网络连接使其他用户得不到网络服务。SYN Flooding攻击以多个随机的源主机地址向目的路由器发送SYN包,在收到目的路由器的SYN ACK后并不回应,于是目的路由器就为这些源主机建立大量的连接队列,由于没有收到ACK—直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务,甚至导致路由器崩溃。服务器要等待超时才能断开己分配的资源,所以SYN Flooding攻击是一种DoS攻击。 端口欺骗攻击是采用端口扫描找到系统漏洞从而实施攻击。 IP欺骗攻击是产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身份。 特洛伊木马是一种通过网络传播的病毒,分为客户端和服务器端两部分,服务器端位于被感染的计算机,特洛伊木马服务器端运行后会试學建立网络连接,所以计算机感染特洛伊木马后的典型现象是有未知程序试图建立网络连接。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
木马(Trojan),是指通过特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是控制端,另一个是被控制端。植入对方电脑的是服务端,而黑客正是利用客户端进入运行了服务端的电脑。运行了木马程序的服务端以后;会产生一个有着容易迷惑用户的名称的进程,暗中打开端口,向指定地点发送数据(如网络游戏的密码,即时通信软件密码和用户上网密码等),黑客甚至可以利用这些打开的端口进入电脑系统。Sniffer,中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。Sniffer不是木马程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
DMZ是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
终端设备与远程站点之间建立安全连接的协议是SSH。SSH为Secure Shell的缩写, 是由IETF制定的建立在应用层和传输层基础上的安全协议。SSH是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX上的程序,后来又迅速扩展到其他操作平台。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
网络攻击有主动攻击和被动攻击两类。其中主动攻击是指通过一系列的方法,主动向被攻击对象实施破坏的一种攻击方式,例如重放攻击、IP地址欺骗、拒绝服务攻击等均属于攻击者主动向攻击对象发起破坏性攻击的方式。流量分析攻击是通过持续检测现有网络中的流量变化或者变化趋势,而得到相应信息的一种被动攻击方式。 重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。Kerberos系统采用的是时间戳方案来防止重放攻击,这种方案中,发送的数据包是带时间戳的,服务器可以根据时间戳来判断是否为重放包,以此防止重放攻击。 网络攻击分为主动攻击和被动攻击两种。主动攻击包含攻击者访问他所需信息的故意行为。比如通过远程登录到特定机器的邮件端口以找出企业的邮件服务器的信息;伪造无效IP地址去连接服务器,使接受到错误IP地址的系统浪费时间去连接那个非法地址。攻击者是在主动地做一些不利于你或你的公司系统的事情。主动攻击包括拒绝服务攻击(DoS)、分布式拒绝服务(DDoS)、信息篡改、资源使用、欺骗、伪装、重放等攻击方法。 主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察到。被动攻击包括嗅探、信息收集等攻击方法。             
 
 

 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
RSA基于大数定律,通常用于对消息摘要进行签名;IDEA和RC4适宜于进行数据传输加密;MD5为摘要算法。MD5是一种摘要算法,经过一系列处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
流水线处理机在执行指令时,把执行过程分为若干个流水级,若各流水级需要的时间不同,则流水线必须选择各级中时间较大者为流水级的处理时间。   理想情况下,当流水线充满时,每一个流水级时间流水线输出一个结果。   流水线的吞吐率是指单位时间流水线处理机输出的结果的数目,因此流水线的吞吐率为一个流水级时间的倒数,即最长流水级时间的倒数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
非对称加密又称为公开密钥加密,而共享密钥加密指对称加密。常见的对称加密算法有:DES,三重DES、RC-5、IDEA、AES。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
应用级网关可以工作在OSI七层模型的任一层上,能够检查进出的数据包,通过网关复制传递数据,防止在受信任服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层上的协议,能够做复杂一些的访问控制,起到防火墙的作用,成为应用级网关。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
MIME它是一个互联网标准,扩展了电子邮件标准,使其能够支持,与安全无关。与安全电子邮件相关的是S/MIME安全多用途互联网邮件扩展协议。SSL和HTTPS涉及到邮件传输过程的安全,PGP(全称:Pretty Good Privacy,优良保密协议),是一套用于信息加密、验证的应用程序,可用于加密电子邮件内容。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机病毒的分类方法有许多种,按照最通用的区分方式,即根据其感染的途径以及采用的技术区分,计算机病毒可分为文件型计算机病毒、引导型计算机病毒、宏病毒和目录型计算机病毒。 文件型计算机病毒感染可执行文件(包括EXE和COM文件)。 引导型计算机病毒影响软盘或硬盘的引导扇区。 目录型计算机病毒能够修改硬盘上存储的所有文件的地址。 宏病毒感染的对象是使用某些程序创建的文本文档、数据库、电子表格等文件,从文件名可以看出Macro.Melissa是一种宏病毒。病毒文件名称一般分为三部分,第一部分表示病毒的类型,如Worm表示蠕虫病毒,Trojan表示特洛伊木马,Backdoor表示后门病毒,Macro表示宏病毒等。 宏病毒感染的对象是使用某些程序创建的文本文档、数据库、电子表格等文件。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
典型网络病毒主要有宏病毒、特洛伊木马、蠕虫病毒、脚本语言病毒等。 宏病毒的传播方式通常如下:字处理程序Word在打开一个带宏病毒的文档或模板时,激活了病毒宏,病毒宏将自身复制至Word的通用(Normal)模板中,以后在打开或关闭文件时病毒宏就会把病毒复制到该文件中。 特洛伊木马是一种秘密潜伏且能够通过远程网络进行控制的恶意程序。控制者可以控制被秘密植入木马的计算机的一切动作和资源,是恶意攻击者窃取信息的工具。 蠕虫病毒的传播过程一般表现为:蠕虫程序驻于一台或多台机器中,它会扫描其他机器是否有感染同种计算机蠕虫,如果没有,就会通过其内建的传播手段进行感染,以达到使计算机瘫痪的目的。       
 
 

用户组默认权限由高到低的顺序是administrators—power users —users—everyone


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
基于公钥的数字签名系统如下图所示:A为了向B发送消息P,A用自己的私钥对P签名后再用B的公钥对签名后的数据加密,B收到消息后先用B的私钥解密后在用A的公钥认证A的签名以及消息的真伪。数字签名用于通信的A.、B双方,使得A向B发送签名的消息P,提供以下服务: ①B可以验证消息P确实是来源于A; ②A不能否认发送过消息P; ③B不能编造或改变消息P。 数字签名首先需要生成消息摘要,使用非对称加密算法以及私钥对摘要进行加密。接收方使用发送放的公钥对消息摘要进行验证。  数字证书是由权威机构 CA证书授权(Certificate Authority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在因特网交往中用它来证明自 己的身份和识别对方的身份。 数字证书包含版本、序列号、签名算法标识符、签发人姓名、有效期、主体名和主体公钥信息等并附有CA的签名,用户获取网站的数字证书后通过验证CA的签名来确 认数字证书的有效性,从而验证网站的真伪。 在用户与网站进行安全通信时,用户发送数据时使用网站的公钥(从数字证书中获得)加密,收到数据时使用网站的公钥验证网站的数字签名,网站利用自身的私钥对发送的消息签名和对收到的消息解密。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。             
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
通过防火墙我们可以将网络划分为三个区域:安全级别最高的LAN Area (内网), 安全级别中等的DMZ区域和安全级别最低的Internet区域(外网)。三个区域因担负不同的任务而拥有不同的访问策略。通常的规则如下: ①内网可以访问外网:内网的用户需要自由地访问外网。在这一策略中,防火墙需要执行NAT。 ②内网可以访问DMZ:此策略使内网用户可以使用或者管理DMZ中的服务器。 ③外网不能访问内网:这是防火墙的基本策略,内网中存放的是公司内部数据,显然这些数据是不允许外网的用户进行访问的。如果要访问,就要通过VPN方式来进行。 ④外网可以访问DMZ: DMZ中的服务器需要为外界提供服务,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。 ⑤DMZ不能访问内网:如不执行此策略,则当入侵者攻陷DMZ时,内部网络将不会受保护。 ⑥DMZ不能访问外网:此条策略也有例外,可以根据需要设定某个特定的服务器可以访问外网,以保证该服务器可以正常工作。 综上所述,防火墙区域按照受保护程度从高到低正确的排列次序应为内网、DMZ和外网。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
PKI体制中,为保障数字证书不被篡改而且要发送到证书主人手中,需要用CA的私钥对数字证书签名,防伪造,不可抵赖。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
防火墙的性能及特点主要由以下两方面所决定。   ①工作层次。 这是决定防火墙效率及安全的主要因素。一般来说, 工作层次越低,则工作效率越高, 但安全性就低了;反之, 工作层次越高,工作效率越低, 则安全性越高。   ②防火墙采用的机制。 如果采用代理机制, 则防火墙具有内部信息隐藏的特点, 相对而言, 安全性高, 效率低;如果采用过滤机制, 则效率高, 安全性却降低了。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
机房安全属于物理安全,入侵检测属于网络安全,漏洞补丁管理属于系统安全,而数据库安全则是应用安全。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
 RSA是一种非对称加密算法,由于加密和解密的密钥不同,因此便于密钥管理和分发,同时在用户或者机构之间进行身份认证方面有较好的应用; SHA-1是一种安全散列算法,常用宁对接收到的明文输入产生固定长度的输出,来确保明文在传输过程中不会被篡改; MD5是一种使用最为广泛的报文摘要算法; RC5是一种用于对明文进行加密的算法,在加密速度和强度上,均较为合适,适用于大量明文进行加密并传输。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机病毒具有隐蔽性、传染性、潜伏性、触发性和破坏性等特定。因此自毁性不属于计算机病毒的特征。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
公开密钥加密(public-key cryptography),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。 常见的公钥加密算法有: RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲-赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法(Elliptic Curve Cryptography, ECC) ;DSA数字签名(又称公钥数字签名),将摘要信息用发送者的私钥加密,接收者只有用发送者的公钥才能解密被加密的摘要信息,也是属于公开密钥加密算法。DES是典型的私钥加密体制,属于对称加密,不属于公开秘钥加密。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息。使用网络监听工具可轻而易举地截取包括口令和账号在内的信息资料。采用数据加密的方式保护包括口令和账号在内的信息资料,使得即使网络监听获取密文后也无法解密成明文,是对付网络监听的有效手段。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
用户的数字证书由某个可信的证书发放机构(Certification Authority,CA)建立, 并由CA或用户将其放入公共目录中。在X.509标准中,一般格式的数字证书包含以下数据域: • 版本号:用于区分X.509的不同版本 
 
 
  • 序列号:由同一发行者(CA)发放的每个证书的序列号是唯一的

  • 签名算法:签署证书所用的算法及其参数

  • 发行者:指建立和签署证书的CA的X.509名字

  • 有效期:包括证书有效期的起始时间和终止时间 •

  • 主体名:指证书持有者的名称及有关信息 •

  • 公钥:证书持有者的公钥以及其使用方法

  • 发行者ID:任选的名字唯一地标识证书的发行者 •

  • 主体ID:任选的名字唯一地标识证书的持有者 •

  • 扩展域:添加的扩充信息 •

  • 认证机构的签名:用CA私钥对证书的签名 从上述描述可知,数字证书用CA私钥做数字签名,从用户的数字证书中可以获得用户的公钥。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Windows IIS服务支持的身份认证方式有.NET Passport身份验证、集成Windows身份验证、摘要式身份验证和基本身份验证。
 
 
  • 集成Windows身份验证:以Kerberos票证的形式通过网络向用户发送身份验证信息,并提供较高的安全级别。Windows集成身份验证使用Kerberos版本5NTLM身份验证。

  • 摘要式身份验证:将用户凭据作为MD5哈希或消息摘要在网络中进行传输,这样就无法根据哈希对原始用户名和密码进行解码。

  • NET Passport身份验证:对IIS的请求必须在査询字符串或Cookie中包含有效的.NET Passport凭据,提供了单一登录安全性,为用户提供对Internet上各种服务的访问权限。

  • 基本身份验证:用户凭据以明文形式在网络中发送。这种形式提供的安全级别很低,因为几乎所有协议分析程序都能读取密码。


     
     
     
    xxxxxxxxxx
    1
     
     
     
     
    1
    欢乐时光及熊猫烧香均为蠕虫病毒,CIH则为系统病毒,这3者均以感染台式机或服务器为主,且产生较早;X卧底则是新近产生的、通过木马形式传播、目标为智能手机的病毒。       
     
     

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
“蠕虫”(Worm)是一个程序或程序序列。它利用网络进行复制和传播,传染途径是通过网络、移动存储设备和电子邮件。最初的蠕虫病毒定义是在DOS环境下,病毒发作时会在屏幕上出现一条类似虫子的东西,胡乱吞吃屏幕上的字母并将其改形,蠕虫病毒因此而得名。常见的蠕虫病毒有红色代码、爱虫病毒、熊猫烧香、Nimda病毒、爱丽兹病毒等。 冰河是木马软件,主要用于远程监控,冰河木马后经其他人多次改写形成多种变种,并被用于入侵其他用户的计算机的木马程序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
设备防雷击属于物理线路安全措施,入侵检测和流量控制属于网络安全措施,漏洞发现与补丁管理属于系统安全措施。 入侵检测技术包括专家系统、模型检测、简单匹配;漏洞扫描不是入侵检测的内容。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
震网(Stuxnet),指一种蠕虫病毒。它的复杂程度远超一般电脑黑客的能力。这种震网(Stuxnet)病毒于2010年6月首次被检测出来,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫”病毒,比如核电站,水坝,国家电网。 引导区病毒破坏的是引导盘、文件目录等;宏病毒破坏的是OFFICE文件相关;木马的作用一般强调控制操作。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
网络安全体系设计是逻辑设计工作的重要内容之一,数据库容灾属于系统安全和应用安全考虑范畴。            
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Outlook Express有以下一些优点: • 可以脱机处理邮件,有效利用联机时间,降低了上网费用。 • 可以管理多个邮件账号,在同一个窗口中使用多个邮件账号。 • 可以使用通讯簿存储和检索电子邮件地址。 • 在邮件中添加个人签名或信纸。 • 发送和接收安全邮件。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
网络层的联网设备是路由器,数据链路层的联网设备是网桥和交换机,传输层和会话层主要是软件功能,都不需要专用的联网设备。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数字签名(Digital Signature)技术是不对称加密算法的典型应用。数字签名的应用过程是:数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”;数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”, 在技术和法律上有保证,可见数字签名是对签名真实性的保护。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ARP攻击(ARP欺骗)是欺骗攻击的一种,通过伪造IP地址和MAC地址,能够在网络中产生大量的ARP通信量使网络阻塞,如果伪造网关的IP地址和MAC地址对,则所有发往网关的IP包将因为MAC地址错误而无法到达网关(ARP攻击一般会将MAC地址改为发起ARP攻击的主机地址),造成无法跨网段通信。 处理ARP攻击的方法为首先断开ARP攻击主机的网络连接,然后用“arp-d”命令清除受攻击影响的ARP缓存。       
 
 

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议。它是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息。HTTPS使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。HTTPS和HTTP的区别: • https协议需要到ca申请证书,一般免费证书很少,需要交费。 • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 • http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。 • http的连接很简单,是无状态的。 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在IE浏览器中,安全级别最高的区域设置是受限站点。其中Internet区域设置适用于Internet网站,但不适用于列在受信任和受限制区域的网站;本地Intranet区域设置适用于在Intranet中找到的所有网站;可信任站点区域设置适用于你信任的网站;而受限站点区域设置适用于可能会损坏你计算机或文件的网站,它的安全级别最高。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
矢量图是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内在空间较小,因为这种类型的图像文件包含独立的分离图像,可以自由无限制的重新组合。它的特点是放大后图像不会失真,和分辨率无关,适用于图形设计、文字设计和一些标志设计、版式设计等。矢量图中的图形元素称为图元。而另一类图具有代表性的图像表示形式是位图图像,该图采用像素来表示图像。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
视频信息是指活动的、连续的图像序列。一幅图像称为一帧,帧是构成视频信息的基本单元。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
内网安全系统紧密围绕“合规”,内含企业级主机防火墙系统,通过终端准入控制、终端安全控制、桌面合规管理、终端泄密控制和终端审计五维化管理,全面提升内网安全防护能力和合规管理水平。
 
 
  • 加入终端接入数量
  • 终端访问权限,防止合法终端越权访问
  • 加强终端的安全检查与策略管理
  • 加强员工上网行为管理与违规审计

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
声音信号由许多频率不同的信号组成,通常称为复合信号,而把单一频率的信号称为分量信号。声音信号的一个重要参数就是带宽(Bandwidth),它用来描述组成声音的信号的频率范围。 声音信号的频率是指声波每秒钟变化的次数,用Hz表示。人们把频率小于20Hz的声波信号称为亚音信号(也称次音信号);频率范围为20Hz〜20kHz的声波信号称为音频信号;髙于20kHz的信号称为超音频信号(也称超声波)。 PC处理的音频信号主要是人耳能听得到的音频信号(audio),它的频率范围是20〜20kHz。可听声包括: •话音(也称语音):人的说话声,频率范围通常为300〜3400Hz» •音乐:由乐器演奏形成(规范的符号化声音),其带宽可达到20〜20kHz。 • 其他声音:如风声、雨声、鸟叫声和汽车鸣笛声等,它们起着效果声或噪声的作用,其带宽范围也是20〜20kHz。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
通常所说的“媒体(Media)”包括两重含义:一是指信息的物理载体,即存储和传递信息的实体,如手册、磁盘、光盘、磁带以及相关的播放设备等(本题只涉及存储信息);二是指承载信息的载体,即信息的表现形式(或者说传播形式),如文字、声音、图像、动画和视频等,即CCITT定义的存储媒体和表示媒体。表示媒体又可以分为三种类型:视觉类媒体(如位图图像、矢量图形、图表、符号、视频和动画等)、听觉类媒体 (如音响、语音和音乐等)和触觉类媒体(如点、位置跟踪,力反馈与运动反馈等)。视觉和听觉类媒体是信息传播的内容,触觉类媒体是实现人机交互的手段。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
MPEG是Moving Picture Expert Group的简称,最初是指由国际标准化组织(ISO) 和国际电工委员会(IEC)联合组成的一个研究视频和音频编码标准的专家组。同时MPEG也用来命名这个小组所负责开发的一系列音、视频编码标准和多媒体应用标准。这个专家组至今为止已制定和制定中的标准包括MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21标准。其中MPEG-1、MPEG-2和MPEG-4主要针对音、视频编码技术,而MPEG-7是多媒体内容描述接口标准,MPEG-21是多媒体应用框架标准。 VCD使用了MPEG-1标准作为其音、视频信息压缩编码方案,而MPEG-2标准中的音、视频压缩编码技术被应用到DVD中。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
MIC (话筒)输出的是音频模拟信号,声卡从MIC获取音频模拟信号后,通过模数 转换器(ADC),将声波振幅信号采样转换成一串数字信号并存储到计算机中。重放时,这些数字信号送到数模转换器(DAC),以同样的采样速度还原为模拟波形,放大后送到扬声器发声,这一技术称为脉冲编码调制技术(PCM)。       
 
 

DPI即每英寸的点数


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
BMP图像文件格式是Windows操作系统采用的图像文件格式,BMP采用位映射存储格式,除了图像深度可选以外,一般不采用其他任何压缩,所以占用的存储空间较大。 JPEG图像文件格式是一种有损压缩的静态图像文件存储格式,压缩比例可以选择,支持灰度图像、RGB真彩色图像和CMYK真彩色图像。JPG格式文件的压缩比例很高,非常适用于处理大量图像的场合。 TIFF是电子出版CD-ROM中的一个图像文件格式。TIFF格式非常灵活易变,它又定义了4类不同的格式:TIFF-B适用于二值图像;TIFF-G适用于黑白灰度图像;TIFF-P 适用于带调色板的彩色图像;TIFF-R适用于RGB真彩图像。无论在视觉上还是其他方面,都能把任何图像编码成二进制形式而不丢失任何属性。 GIF图像文件格式以数据块为单位来存储图像的相关信息,采用了LZW无损压缩算法按扫描行压缩图像数据。它可以在一个文件中存放多幅彩色图像,每一幅图像都由一个图像描述符、可选的局部彩色表和图像数据组成。如果把存储于一个文件中的多幅图像逐幅读出来显示到屏幕上,可以像播放幻灯片那样显示或者构成简单的动画效果。GIF定义了两种数据存储方式,一种是按行连续存储,存储顺序与显示器的显示顺序相同;另一种是按交叉方式存储,由于显示图像需要较长的时间,使用这种方法存放图像数据,用户可以在图像数据全部收到之前这幅图像的全貌,而不觉得等待时间太长。 采用图像文件格式支持实现的显示效果与通过软件的实现方式相比,循环显示图像的数量、每幅图像显示的时间、透明度变化等参数受图像文件格式的限制,而通过软件方式实现显示效果的各项参数则可以灵活配置。 图像信号是一种模拟信号,计算机要对它进行处理,必须将它转换成为数字图像信号,即用二进制数字的编码形式来表示图像,转换过程一般称为A/D转换(模数转换)。将图像播放出来,需进行D/A转换(数模转换)。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
声音信号是模拟信号,要是声音信号数字化并传递,首先要进行 A/D 转换。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
多媒体编辑软件分为:文本工具、图形/图像工具、动画工具、视频工具、音频工具和播放工具。“WPS”属于文本工具类软件,主要用于文字编辑和处理;“Xara3D”属于动画工具类软件,主要用于动画编辑和处理;“PhotoShop”属于图形/图像工具类软件,主要用于显示图形/图像、图形/图像编辑、图像压缩、围像捕捉、图形/图像素材库;“Cool Edit Pro”属于音频工具类软件,主要用于音频播放、音频编辑、音频录制和声音素材库4个功能。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
国际电话电报咨询委员会(CCITT)将媒体分为感觉媒体、 表示媒体、 表现媒体、存储媒体和传输媒体5类。   感觉媒体指直接作用于人的感觉器官.,使人严生内接感觉的媒体, 如引起听觉反应的声音、引起视觉反应的图像等;   传输媒体指传输表示媒体的物理介质,如电缆、光缆。电磁波等;   表示媒体指传输感觉媒体的中介媒体,即用于数据交换的编码,如图像编码、文本编码和声音编码等;   表现媒体是指进行信息输入和输出的媒体,如键盘、鼠标、话筒,以及显示器、打印机、喇叭等;   存储媒体指用于存储表示媒体的物理介质,如硬盘、光盘等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
表示媒体是为了加工、处理和传输感觉媒体而人为研究、构造出来的一种媒体,它有各种编码方式,如:文本编码、图像编码和声音编码等。表现媒体是指进行信息输入和输出的媒体,如:键盘、鼠标、扫捕仪、话筒和摄像机等输入媒体以及显示器、打印机和扬声器等输出媒体。感觉媒体是指直接作用于人的感觉器官,使人产生直接感觉的媒体,如:引起听觉反应的声音,引起视觉反应的文本、图形和图像等。存储媒体是指用于存储表示媒体的物理介质,如:硬盘、软盘、光盘和胶卷等。传输媒体是指用于存储表示媒体的物理介质,如:电缆和光缆等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
感觉媒体指直接作用于人的感觉器官,使人产生直接感觉的媒体,如引起听觉反应的声音,引起视觉反应的图像等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
WAV为微软公司开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范。 BMP(Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB)。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩。 MP3(Moving Picture Experts Group Audio Layer Ⅲ是一种音频压缩技术,它被设计用来大幅度地降低音频数据量。作为文件扩展名时表示该文件时一种音频格式文件。 MOV即QuickTime影片格式,它是Apple公司开发的一种音频、视频文件格式,用于存储常用数字媒体类型。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机中使用的图像文件格式大体上可分为图像文件格式和动态图像文件格式两大类,每类又有很多种。JPEG是由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态和数字图像数据压缩编码标准,这个专家组地区性的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。MPEG文件格式是运动图像压缩算法的国际标准,它包括MPEG视频、MPEG音频和MPEG系统(视频、音频同步)三个部分。MPEG压缩标准是针对运动图像设计的,其基本方法是:单位时间内采集并保存第一帧信息,然后只存储其余帧对第一帧发生变化的部分,从而达到压缩的目的。MPEG的平均压缩比为50 : 1,最高可达200:1,压缩效率非常高,同时图像和音响的质量也非常好,并且在PC上有统一的标准格式,兼容性相当好。AVI是Microsoft 公司开发的一种符合RIFF文件规范的数字音频与视频文件格式,Windows、OS/2等多数操作系统直接支持。AVI格式允许视频和音频交错在一起同步播放,支持256色和RLE 压缩,但AVI文件并未限定压缩标准。AVI文件目前主要应用在多媒体光盘上,用来保存电影、电视等各种影像信息,有时也出现在因特网上,供用户下载、欣赏新影片的片段。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
图像深度是指存储每个像素所用的位数,也是用来度量图像分辨率的。像素深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数。如一幅图像的图像深度为b位,则该图像的最多颜色数或灰度级为2b种。显然,表示一个像素颜色的位数越多,它能表达的颜色数或灰度级就越多。例如,只有1个分量的单色图像,若每个像素有8位,则最大灰度数目为28=256; —幅彩色图像的每个像素用R、G、B三个分量表示,若3个分量的像素位数分别为4、4、2,则最大颜色数目为24+4+2=210=1024,就是说像素的深度为10位,每个像素可以是210种颜色中的一种。表示一个像素的位数越多,它能表达的颜色数目就越多,它的深度就越深。       
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
计算机中使用的图像压缩编码方法有多种国际标准和工业标准。目前广泛使用的编码及压缩标准有JPEG、MPEG和H.261。 JEPG (Joint Photographic Experts Group)是一个由ISO 和 IEC 两个组织机构(国际标准化组织)联合组成的一个专家组,负责制定静态和数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。 MPEG (Moving Pictures Experts Group)动态图像压缩标准是一个由ISO和IEC两个组织机构联合组成的一个活动图像专家组制定的标准。1992年提出MPEG-l、MPEG-2 标准,用于实现全屏幕压缩编码及解码。MPEG-1是针对传输率为1Mbps到1.5Mbps的普通电视质量的视频信号的压缩,MPEG-2是对每秒30帧的720X572分辨率的视频信号进行压缩。1999年发布了MPEG-4多媒体应用标准,目前推出了MPEG-7多媒体内容描述接口标准等。每个新标准的产生都极大地推动了数字视频的发展和更广泛的应用。 H.261视频通信编码标准是由国际电话电报咨询委员会CCITT (Consultative Committee on International Telephone and Telegraph)于1998 年提出的电话/会议电视的建议标准,该标准又称为PX64K标准。CCITT推出的H.263标准用于低位速率通信的电视图像编码。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
目前,计算机数字音乐合成技术主要有FM和Wave Table,其中FM即频率调制,在电子音乐合成技术中,是最有效的合成技术之一,而WaveTable即波形表合成,它是一种真实的音乐合成技术,其合成的音乐音质更好。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
dpi 是 Dots Per Inch 的缩写,也就是每英寸的像素。28=256种不同的颜色或灰度等级。  图像数据量=图像的总像素X图像深度DPI(Dots Per Inch,每英寸点数)通常用来描述数字图像输入设备(如图像扫描仪)或点阵图像输出设备(点阵打印机)输入或输出点阵图像的分辨率。DPI为像素/英寸
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
国际电话电报咨询委员会(CCITT)将媒体分为感觉媒体、 表示媒体、 表现媒体、存储媒体和传输媒体5类。 感觉媒体指直接作用于人的感觉器官.,使人严生内接感觉的媒体, 如引起听觉反应的声音、引起视觉反应的图像等; 传输媒体指传输表示媒体的物理介质,如电缆、光缆。电磁波等; 表示媒体指传输感觉媒体的中介媒体,即用于数据交换的编码,如图像编码、文本编码和声音编码等; 表现媒体是指进行信息输入和输出的媒体,如键盘、鼠标、话筒,以及显示器、打印机、喇叭等; 存储媒体指用于存储表示媒体的物理介质,如硬盘、光盘等。       
 
 

Powerpoint是微软公司的演示文稿软件。 Premiere是一款常用的视频编辑软件,由Adobe公司推出。 Acrobat是由Adobe公司开发的一款PDF(Portable Document Format)编辑软件Photoshop(简称PS),是由Adobe Systems开发和发行的图像处理软件。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
音调(Pitch)用来表示人的听觉分辨个声音的调子高低的程度,主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对定频率的纯音、低频纯音的音调随声强增加而下降,高频纯者的音调却随强度增加而上升。 音色(Timbre)是指声音的感觉特性,不同的人声和不同的声响都能区分为不同的音色,即音频泛音或谐波成分。 音高是指各种不同高低的声音(即首的高度),是首的基本特征的一种。 在FM方式音乐合成器中,数字载波波形和调制波形有很多种,不同型号的FM合成器所选用的波形也不同。各种不同乐音的产生是通过组合各种波形和各种波形参数并采用各种不同的方法实现的。改变数字载波频率可以改变乐音的音调,改变它的幅度可以改变乐音的音高。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
语音信号频率范围是300Hz〜3.4kHz,也就是不超过4kHz,按照奈奎斯特定律,要保持话音抽样以后再恢复时不失真,最低抽样频率是2倍的最高频率,即8kHz就可以保证信号能够正确恢复,因此将,字语音的采样频率定义为8kHz。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
模拟视频信号进入计算机时,首先需要解决模拟视频信息的数字化问题。与音频数字化一样,视频数字化的目的是将模拟信号经A/D转换和彩色空间变换等过程,转换成计算机可以显示和处理的数字信号。由于电视和计算机的显示机制不同,因此要在计算机上显示视频图像需要作许多处理。例如,电视是隔行扫描,计算机的显示器通常是逐行扫描;电视是亮度(Y)和色度(C)的复合编码,而PC 的显示器工作在RGB空间;电视图像的分辨率和显示屏的分辨率也各不相同等。这些问题在电视图像数字化过程中都需考虑。一般,对模拟视频信息进行数字化采取如下方式: 先从复合彩色电视图像中分离出彩色分量,然后数字化。目前市场上的大多数电视信号都是复合的全电视信号,如录像带、激光视盘等存储设备上的电视信号。对这类信号的数字化,通常是将其分离成YUV、YIQ或RGB彩色空间的分量信号,然后用3个A/D转换器分别进行数字化。这种方式称为复合数字化。 先对全彩色电视信号数字化,然后在数字域中进行分离,以获得YUV、YIQ或RGB分量信胃号。用这种方法对电视图像数字化时,只需一个髙速A/D转换器。这种方式称为分量数字化。 视频信息数字化的过程比声音复杂一些,它是以一幅幅彩色画面为单位进行的。分量数字化方式是使用较多的一种方式。电视信号使用的彩色空间是YUV空间,即每幅彩色画面有亮度(Y)和色度(U、V) 3个分量,对这3个分量需分别进行取样和量化,得到一幅数字图像。由于人眼对色度信号的敏感程度远不如对亮度信号那么灵敏,因此色度信号的取样频率可以比亮度信号的取样频率低一些,以减少数字视频的数据量。 数字图像数据的数据量大,而数字视频信息的数据量就更加突出。例如,每帧352X240像素点,图像深度16位的图像,其数据量约为1.3Mb,每秒30帧,其数据量就髙达40Mb/s,这样大的数据量无论是传输、存储还是处理,都是极大的负担。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
矢量图形是用一系列计算机指令来描述和记录一幅图的内容,即通过指令描述构成一幅图的所有直线、曲线、圆、圆弧、矩形等图元的位置、维数和形状,也可以用更为复杂的形式表示图像中曲面、光照和材质等效果。矢量图法实质上是用数学的方式(算法和特征)来描述一幅图形图像,在处理图形图像时根据图元对应的数学表达式进行编辑和处理。在屏幕上显示一幅图形图像时,首先要解释这些指令,然后将描述图形图像 的指令转换成屏幕上显示的形状和颜色。编辑矢量图的软件通常称为绘图软件,如适于绘制机械图、电路图的AutoCAD软件等。这种软件可以产生和操作矢量图的各个成分,并对矢量图形进行移动、缩放、叠加、旋转和扭曲等变换。编辑图形时将指令转变成屏幕上所显示的形状和颜色,显示时也往往能看到绘图的过程。由于所有的矢量图形部分都可以用数学的方法加以描述,从而使得计算机可以对其进行任意放大、缩小、旋转、 变形、扭曲、移动和叠加等变换,而不会破坏图像的画面。但是,用矢量图形格式表示 复杂图像(如人物、风景照片),并且要求很高时,将需要花费大量的时间进行变换、着色和处理光照效果等。因此,矢量图形主要用于表示线框型的图画、工程制图和美术字等。 位图图像是指用像素点来描述的图。图像一般是用摄像机或扫描仪等输入设备捕捉实际场景画面,离散化为空间、亮度、颜色(灰度)的序列值,即把一幅彩色图或灰度图分成许许多多的像素(点),每个像素用若干二进制位来指定该像素的颜色、亮度和属性。位图图像在计算机内存中由一组二进制位组成,这些位定义图像中每个像素点的颜色和亮度。图像适合于表现比较细腻,层次较多,色彩较丰富,包含大量细节的图像, 并可直接、快速地在屏幕上显示出来。但占用存储空间较大,一般需要进行数据压缩。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
由ISO制定的MPEG系列标准中,MPEG-7称为“多媒体内容描述接口”(multimedia content description interface)。该标准是建立对多媒体内容的描述标准,满足包括静止图像、图形、3D模型、音频、话音、视频以及以上元素组合在一起的合成多媒体信息的应用领域的要求,并兼顾标准的通用性和扩展性的要求。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在多媒体应用中,很重要的一个环节是制作所需要的各种媒体素材。声卡用于处理音频信息,它可以把话筒、录音机、电子乐器等输入的声音信息进行模数转换(A/D)、压缩等处理,也可以把经过计算机处理的数字化的声音信号通过还原(解压缩)、数模转换(D/A)后用音箱播放出来,或者用录音设备记录下来。音频卡的关键技术包括数字音频、音乐合成(FM合成和波形表合面)、MIDI (乐器数字接口)和音效。数字音频部分具有44.1kHz的采样率,8位以上的分辨率;具有录音和播放声音信号的功能;同时具有压缩采样信号的能力,最常用的压缩方法是自适应脉冲编码调制。数字音频的实现有不同的方法和芯片,大多数采用的是CODEC芯片,它具有硬件压缩功能。 视频卡是基于PC的一种多媒体视频信号处理设备,用来支持视频信号的输入与输出。它可以采集视频源、声频源和激光视盘机、录像机、摄像机等设备的信息,经过编辑或特技等处理而产生非常精美的画面。还可以对这些画面进行捕捉、数字化、冻结、 存储、压缩、输出等操作。对画面的修整、像素显示调整、缩放功能等都是视频卡支持的标准功能。视频卡的功能是连接摄像机、VCR影碟机、TV等设备,以便获取、处理和表现各种动画和数字化视频媒体。 多媒体素材编辑软件用于采集、整理和编辑各种媒体数据。 文字处理软件的功能主要是文字处理,包括文字录入、编辑,文档编辑、排版、管理、打印、表格处理等功能,使用文字处理软件可以创建符合用户要求的、美观的文稿。常用的字处理软件有WPS、Word、Notebook (记事本)、Writer (写字板)等。 图形/图像软件的主要功能包括显示和编辑图形/图像、图像压缩、图像捕捉、图形/ 图像素材库制作等。例如,Photoshop用于图像的设计、编辑与处理,其功能强大,是使用最多的一种图形/图像工具软件;Xara3D是一种3D图形软件,可用于制作高质量的三维动画。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
显示分辨率是指显示器上能够显示出的像素点数目,即显示器在横向和纵向上能够显示出的像素点数目。水平分辨率表明显示器水平方向(横向)上显示出的像素点数目,垂直分辨率表明显示器垂直方向(纵向)上显示出的像素点数目。例如,显示分辨率为1024X768 则表明显示器水平方向上显示1024个像素点,垂直方向上显示768个像素点,整个显示屏就含有796432个像素点。屏幕能够显示的像素越多,说明显示设备的分辨率越高,显示的图像质量越高。显示深度是指显示器上显示每个像素点颜色的二进制位数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
图像深度是指存储每个像素所用的位数,它是用来度量图像的色彩分辨率的,即确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数。显示深度是显示器上每个点用于显示颜色的二进制位数。使用显示器显示数字图像时,应当使显示器的显示深度大于或等于数字图像的深度,这样显示器就可以完全反映数字图像中使用的全部颜色。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
亮度是指发光体(反光体)表面发光(反光)强弱的物理量。色调指的是一幅画中画面色彩的总体倾向,是大的色彩效果。在大自然中,我们经常见到这样一种现象:不同颜色的物体或被笼罩在一片金色的阳光之中,或被笼罩在一片轻纱薄雾似的、淡蓝色的月色之中;或被秋天迷人的金黄色所笼罩;这样的色彩现象就是色调。饱和度是指色彩的鲜艳程度,也称色彩的纯度。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
中继器是物理层设备,其作用是对接收的信号进行再生放大,以延长传输的距离。网桥是数据链路层设备,可以识别MAC地址,进行帧转发。交换机是由硬件构成的多端口网桥,也是一种数据链路层设备。路由器是网络层设备,可以识别IP地址,进行数据包的转发。      
 
 

域名地址用来在Internet上唯一确定位置的地址,通常用来指明所使用的计算机资源位置及查询信息的类型。其由字母或数字组成,中间以“.”隔开。www.dailynews.com.cn表示访问的主机和域名。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
建立连接进行可靠通信在TCP/IP网络中,应该在传输层完成,在OSI/RM同样在传输层完成。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ARP是网络层协议,它的作用是实现IP地址与MAC地址之间的变换。IP地址是分配给主机的逻辑地址,在互联网中表示唯一的主机。另外,每个主机还有一个物理地址,通常用网卡地址(MAC地址)来表示主机的物理地址。 物理地址和逻辑地址的区别可以从两个角度看:从网络互连的角度看,逻辑地址在整个互连网络中有效,而物理地址只是在子网内部有效;从网络协议分层的角度看,逻辑地址由Internet层使用,而物理地址由子网访问子层(具体地说就是数据链路层)使用。 由于有两种主机地址,因而需要一种映像关系把这两种地址对应起来。在Internet 中用地址分解协议(Address Resolution Protocol,ARP)来实现逻辑地址到物理地址映像。 ARP分组的格式如下图所示。  各字段的含义解释如下:
 
 

•硬件类型:网络接口硬件的类型,对以太网此值为1。 •协议类型:发送方使用的协议,0800H表示IP协议。 •硬件地址长度:对以太网,地址长度为6字节。 •协议地址长度:对IP协议,地址长度为4字节。 •操作类型:1 一ARP请求,2—ARP响应,3—RARP请求,4—RARP响应。 通常Internet应用程序把要发送的报文交给IP协议,IP当然知道接收方的逻辑地址 (否则就不能通信了),但不一定知道接收方的物理地址。在把IP分组向下传送给本地数据链路实体之前可以用两种方法得到目标物理地址: ①查本地内存中的ARP地址映像表,其逻辑结构如下表所示。可以看出这是IP地址和以太网地址的对照表。 ②如果在ARP表中查不到,就广播一个ARP请求分组,这种分组经过路由器进一步转发,可以到达所有连网的主机。它的含义是“如果你的IP地址是这个分组中的目标结点协议地址,请回答你的物理地址是什么”。收到该分组的主机一方面可以用分组中的 两个源地址更新自己的ARP地址映像表,另一方面用自己的IP地址与目标结点协议地址字段比较,若相符则发回一个ARP响应分组,向发送方报告自己的硬件地址,若不相符则不予回答。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
以太网交换机根据数据链路层MAC地址进行帧交换帧中继网和ATM网都是面向连接的通信网,交换机根据预先建立的虚电路标识进行交换。帧中继的虚电路号是DLCI, 进行交换的协议数据单元为“帧”;而ATM网的虚电路号为VPI和VCI,进行交换的协议数据单元为“信元”。三层交换机是指因特网中使用的高档交换机,这种设备把MAC交换的高带宽和低延迟优势与网络层分组路由技术结合起来,其工作原理可以概括为:一次路由、多次交换、就是说,当三层交换机第一次收到一个数据包时必须通过路由功能寻找转发端口,同时记住目标MAC地址和源MAC地址,以及其他相关信息,当再次收到目标地址和源地址相同的帧时就直接进行交换了,不再调用路由功能。所以三层交换机不但具有路由功能,而且比通常的路由器转发得更快。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Windows Server 2003中配置SNMP服务时,必须以管理员身份或者Administrators组成员身份登录才能完成SNMP服务的配置功能。一般用户或者普通用户不能完成SNMP配置服务。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
集线器连接的主机构成一个冲突域,交换机的每个端口属于一个冲突域,路由器连接的两部分网络形成两个广播域
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
PPP 认证是可选的。PPP 扩展认证协议(Extensible Authentication Protocol,EAP) 可支持多种认证机制,并且允许使用后端服务器来实现复杂的认证过程。例如通过Radius 服务器进行Web认证时,远程访问服务器(RAS)只是作为认证服务器的代理传递请求和应答报文,并且当识别出认证成功/失败标志后结束认证过程。通常PPP支持的两个认证协议是: ①口令验证协议(Password Authentication Protocol,PAP):提供了一种简单的两次握手认证方法,由终端发送用户标识和口令字,等待服务器的应答,如果认证不成功,则终止连接。这种方法不安全,因为采用文本方式发送密码,可能会被第三方窃取。 ②质询握手认证协议(Challenge Handshake Authentication Protocol,CHAP);采用三次握手方式周期地验证对方的身份。首先是逻辑链路建立后认证服务器就要发送一个挑战报文(随机数),终端计算该报文的Hash值并把结果返回服务器,然后认证服务器把收到的Hash值与自己计算的Hash值进行比较,如果匹配,则认证通过,连接得以建立,否则连接被终止。计算Hash值的过程有一个双方共享的密钥参与,而密钥是不通过网络传送的,所以CHAP是更安全的认证机制。在后续的通信过程中,每经过一个随机的间隔,这个认证过程都可能被重复,以缩短入侵者进行持续攻击的时间。值得注意的是,这种方法可以进行双向身份认证,终端也可以向服务器进行挑战,使得双方都能确认对方身份的合法性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
集线器是物理层设备,相当于在10BASE2局域网中把连接工作站的同轴电缆收拢在一个盒子里,这个盒子只起到接收和发送的功能,可以检测发送冲突,但不能识别数据链路层的帧。网桥是数据链路层设备,它可以识别数据链路层MAC地址,有选择地把帧发送到输出端口,网桥也可以有多个端口,如果网桥端口很多,并配置了加快转发的硬件,就成为局域网交换机。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
属于应用层协议的是简单网络管理协议SNMP,它的传输层协议是UDP。ARP和ICMP,IP都属于网络层协议。X.25是分组交换网上的协议,也归于网络层。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
DNS域名查询的次序是:本地的hosts文件一>本地DNS缓存一>本地DNS服务器一>根域名服务器。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
主要的传输层协议为TCP和UDP。TCP协议的是现较为复杂,采用3次握手建立连接,传输过程中能实现可靠传输、流量控制以及拥塞控制,因而也带来了较大开销。UDP协议主要通过端口号实现传输层级的寻址,开销也小。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ADSL Modem上网拨号方式有3种,即专线方式(静态IP)、PPPoA和PPPoE。 PPPoE(英语:Point-to-Point Protocol Over Ethernet),以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。 PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可以通过密码验证协议(PAP)、可扩展认证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。 SLIP(Serial Line Internet Protocol,串行线路网际协议),该协议是Windows远程访问的一种旧工业标准,主要在Unix远程访问服务器中使用,现今仍然用于连接某些ISP。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Windows Server 2003的路由类型有5种,见下表。当Windows服务器收到一个IP数据包时,先查找主机路由,再查找网络路由(直连网络和远程网络),这些路由查找失败时,最后才查找默认路由。 路由类型       
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ASCII即美国信息互换标准代码,是一种基于拉丁字母的一套电脑编码系统。SMTP传输的邮件报文采用的就是这种编码。ZIP是一种计算机文件的压缩算法,能减少文件的大小,有利用数据存储和传输。HTML即超文本标记语言,是用于描述网页文档的一种标记语言。我们上网浏览的网页很多就是采用这种格式。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在ASP的内置对象中。能修改cookie中的值的是response,它还可以创建cookie,而request可以访问cookie中的参数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
如果要使得两个IPv6结点可以通过现有的IPv4网络进行通信,则应该使用隧道技术,如果要使得纯IPv6结点可以与纯IPv4结点进行通信,则需要使用翻译技术。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ICMP (Internet control Message Protocol)与IP协议同属于网络层,用于传送有关通信问题的消息,例如数据报不能到达目标站,路由器没有足够的缓存空间,或者路由器向发送主机提供最短通路信息等。ICMP报文封装在IP数据报中传送,因而不保证可靠的提交。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
把局域网划分成多个不同的VLAN,使得网络接入不再局限于物理位置的约束,这样就简化了在网络中增加、移除和移动主机的操作,特别是动态配置的VLAN,无论主机在哪里,它都处于自己的VLAN中。VLAN内部可以相互通信,VLAN之间不能直接通信,必须经过特殊设置的路由器才可以连通。这样做的结果是,通过在较大的局域网中创建不同的VLAN,可以抵御广播风暴的影响,也可以通过设置防火墙来提高网络的安全性。VLAN并不能直接增强网络的安全性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
POP3协议是TCP/IP协议簇中用于邮件接收的协议。邮件客户端通过与服务器之间建立TCP连接,采用Client/Server计算模式来传送邮件。默认端口为110.       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
属于应用层协议的是简单网络管理协议SNMP,它的传输层协议是UDP。ARP和ICMP都属于网络层协议。X.25是分组交换网上的协议,也归于网络层。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件。110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多,许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 nslookup是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。 PING命令常用于测试连通性,在此过程中可看出是直接ping的目标地址。 nslookup、ping、tracert都可以加上一个主机域名作为其命令参数来诊断DNS故障,nslookup还可以看到本地DNS服务器地址。Arp命令是与arp记录有关,与DNS无关联。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
域名解析流程:   1.客户机提出域名解析请求,并将该请求发送给本地的域名服务器。   2.当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。   3.如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。   4.本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。   5.重复第4步,直到找到正确的纪录。   6.本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在HTTP协议中,GET可以用于获取一个指定页面内容;而HEAD用户获取头部信息;POST可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
集线器是一种物理层设备,它的作用是从一个端口接收信息,并向其他端口广播出去。 集线器不解释所传送信息的含义,也不能识别任何协议数据单元。集线器的各个端口构成一个冲突域,即只能有一个端口发送数据,如果有两个以上端口同时发送,就冲突了。网桥是数据链路层设备,能识别数据链路层协议数据单元,并根据数据链路层地址进行数据转发。交换机是一种多端口网桥,任何一对端口之间都能进行数据转发。交换机的各个端口构成一个广播域,但不是冲突域,即可以有多个端口同时发送数据而不会出现冲突。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
可用性是指网络系统、网络元素或网络应用对用户可利用的时间的百分比。有些应用对可用性很敏感,例如飞机订票系统若宕机一小时,就可能减少几十万元的票款;而股票交易系统如果中断运行一分钟,就可能造成几千万元的损失。实际上,可用性是网络元素可靠性的表现,而可靠性是指网络元素在具体条件下完成特定功能的概率。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
如果要使得两个IPv6结点可以通过现有的IPv4网络进行通信,则应该使用隧道技术,如果要使得纯IPv6结点可以与纯IPv4结点进行通信,则需要使用翻译技术。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
由于本地计算机采用动态地址分配,因此选用“自动获得IP地址”,DHCP服务器会为本地计算机动态分配IP地址。DHCP客户端可从DHCP服务器获得本机IP地址、DNS服务器的地址、DHCP服务器的地址、默认网关的地址等,但没有Web服务器、邮件服务器地址。DHCP协议的功能是自动分配IP地址;FTP协议的作用是文件传输,使用的传输层协议为TCP。                     
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。 URL的一般语法格式为(带方括号[]的为可选项): protocol :// hostname[:port] / path /filename 其中,protocol指定使用的传输协议,最常见的是HTTP或者HTTPS协议,也可以有其他协议,如file、ftp、,gopher、mms、ed2k等;hostname是指主机名,即存放资源的服务域名或者IP地址;port是指各种传输协议所使用的默认端口号,该选项是可选选项,例如http的默认端口号为80,一般可以省略,如果为了安全考虑,可以更改默认的端口号,这时,该选项是必选的;path是指路径,有一个或者多个“/”分隔,一般用来表示主机上的一个目录或者文件地址;filename是指文件名,该选项用于指定需要打开 的文件名称。 一般情况下,一个URL可以采用“主机名.域名”的形式打开指定页面,也可以单独使用“域名”来打开指定页面,但是这样实现的前提是需进行相应的设置和对应。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
TCP的流量控制采用了可变大小的滑动窗口协议,由接收方指明接收缓冲区的大小(字节数),发送方发送了规定的字节数后等待接收方的下一次请求。固定大小的滑动窗口协议用在数据链路层的HDLC中。可变大小的滑动窗口协议可以应付长距离通信过程中线路延迟不确定的情况,而固定大小的滑动窗口协议则适合链路两端点之间通信延迟固定的情况。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
URL(Uniform Resource Locator,统一资源定位符)是对互联网的资源位置和访问方法的一种简洁的表示,是互联网上资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 一个标准URL的格式如下: 协议://主机名.域名.域名后缀或 IP 地址(:端口号)/目录/文件名 其中,目录可能是多级的。       
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
域名解析流程:   1.客户机提出域名解析请求,并将该请求发送给本地的域名服务器。   2.当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。   3.如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。   4.本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。   5.重复第4步,直到找到正确的纪录。   6.本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
IPv4用32位二进制表示,能够表示的地址空间是232,IPv6用128位二进制表示,能够表示的地址空间是2128,本题选择2128 /232=296 。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
帧中继(Frame Relay,FR)是为克服X.25交换网的缺陷、提髙传输性能而发展起来的高速分组交换技术。帧中继网络不进行差错和流量控制,并且通过流水方式进行交换,所以比X.25网络的通信开销更少,传输速度更快。 帧中继提供面向连接的虚电路服务,因而比DDN专线更能提高通信线路利用率, 用户负担的通信费用也更低廉。在帧中继网中,用户的信息速率可以在一定的范围内变化,从而既可以适应流式业务,又可以适应突发式业务,这使得帧中继成为远程传输的理想形式。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
“三网合一”是将电信网、广播电视网以及互联网进行整合,实现业务互联互通的一种网络解决方案。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
结构化综合布线系统(Structure Cabling System)是基于现代计算机技术的通信物理平台,集成了语音、数据、图像和视频的传输功能,消除了原有通信线路在传输介质上的差别。 结构化布线系统分为6个子系统:工作区子系统、水平子系统、干线子系统、设备间子系统、管理子系统和建筑群子系统。 工作区子系统(Work Location)。 工作区子系统是由终端设备到信息插座的整个区域。一个独立的需要安装终端设备的区域划分为一个工作区。工作区应支持电话、数据终端、计算机、电视机、监视器以及传感器等多种终端设备。 水平布线子系统(Horizontal)。 各个楼层接线间的配线架到工作区信息插座之间所安装的线缆属于水平子系统。水平子系统的作用是将干线子系统线路延伸到用户工作区。 管理子系统(Administration)。 管理子系统设置在楼层的接线间内,由各种交连设备(双绞线跳线架、光纤跳线架)以及集线器和交换机等交换设备组成,交连方式取决于网络拓扑结构和工作区设备的要求。交连设备通过水平布线子系统连接到各个工作区的信息插座,集线器或交换机与交连设备之间通过短线缆互连,这些短线被称为跳线。通过跳线的调整,可以在工作区的信息插座和交换机端口之间进行连接切换。 干线子系统(Backbone) 干线子系统是建筑物的主干线缆,实现各楼层设备间子系统之间的互连。干线子系统通常由垂直的大对数铜缆或光缆组成,一头端接于设备间的主配线架上,另一头端接在楼层接线间的管理配线架上。 设备间子系统(Equipment)。 建筑物的设备间是网络管理人员值班的场所,设备间子系统由建筑物的进户线、交换设备、电话、计算机、适配器以及保安设施组成,实现中央主配线架与各种不同设备 (如PBX、网络设备和监控设备等)之间的连接。 建筑群子系统(Campus)。 建筑群子系统也叫园区子系统,它是连接各个建筑物的通信系统。大楼之间的布线方法有三种:一种是地下管道敷设方式,管道内敷设的铜缆或光缆应遵循电话管道和入孔的各种规定,安装时至少应预留1〜2个备用管孔,以备扩充之用。第二种是直埋法,要在同一个沟内埋入通信和监控电缆,并应设立明显的地面标志。最后一种是架空明线,这种方法需要经常维护。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
浏览网页、Telnet远程登录以及发送邮件应用均不允许数据的丢失,需要采用可靠的传输层协议TCP,而VoIP允许某种程度上的数据丢失,采用不可靠的传输层协议UDP。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
如果本地的DNS服务器工作不正常或者本地DNS服务器网络连接中断都有可能导致该计算机的DNS无法解析域名,而如果直接将该计算机的DNS服务器设置错误也会导致DNS无法解析域名,从而出现使用域名不能访问该网站,但是使用该网站的IP地址可以访问该网站。但是该计算机与DNS服务器不在同一子网不会导致DNS无法解析域名的现象发生,通常情况下大型网络里面的上网计算机与DNS服务器本身就不在一个子网,只要路由可达DNS都可以正常工作。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
DHCP协议的功能是自动分配IP地址;FTP协议的作用是文件传输,使用的传输层协议为TCP。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
主机路由的子网掩码是255.255.255.255。网络路由要指明一个子网,所以不可能为全1,默认路由是访问默认网关,而默认网关与本地主机属于同一个子网,其子网掩码也应该与网络路由相同,对静态路由也是同样的道理。       
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ipconfig 显示信息; ipconfig /all 显示详细信息 ,可查看DHCP服务是否已启用; ipconfig /release 释放所有匹配的连接。ipconfig/renew的含义是更新所有适配器的 DHCP 配置。该命令仅在具有配置为自动获取 IP 地址的适配器的计算机上可用。ipconfig/flushdns的含义是刷新并重设DNS解析器缓存。netstat –r用于显示核心路由表。arp –a用于查看ARP高速缓存中的内容。           
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在无线通信技术中,蓝牙的传输距离最短,一般为10 m左右,用于连接本地的外围设备,例如打印机、鼠标等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
ipconfig命令详解如下: ①具体功能 该命令用于显示所有当前的TCP/IP网络配置值、刷新动态主机配置协议(DHCP)和域名系统(DNS)设置。使用不带参数的IPCONFIG可以显示所有适配器的IP地址、子网掩码、默认网关。 ②语法详解 ipconfig [/all] [/renew [adapter] [/release [adapter] [/flushdns] [/displaydns] [/registerdns] [/showclassidpadapter] [/setclassidpadapter] [classID] ③参数说明 /all显示所有适配器的完整TCP/IP配置信息。在没有该参数的情况下IPCONFIG只显示IP地址、子网掩码和各个适配器的默认网关值。适配器可以代表物理接口(例如安装的网络适配器)或逻辑接口 (例如拨号连接)。 /renew更新所有适配器(如果未指定适配器),或特定适配器(如果包含了adapter参数) 的DHCP配置。该参数仅在具有配置为自动获取IP地址的网卡的计算机上可用。要指定适配器名称,请输入使用不带参数的IPCONFIG命令显示的适配器名称。 /release[adapter]发送DHCPRELEASE消息到DHCP服务器,以释放所有适配器(如果未指定适配器)或特定适配器(如果包含了adapter参数)的当前DHCP配置并丢弃IP地址配置。该参数可以禁用配置为自动获取IP地址的适配器的TCP/IP。要指定适配器名称,请键入使用不带参数的IPCONFIG命令显示的适配器名称。 /flushdns清理并重设DNS客户解析器缓存的内容。如有必要,在DNS疑难解答期间,可以使用本过程从缓存中丢弃否定性缓存记录和任何其他动态添加的记录。 DNS Client服务为计算机解析和缓存DNS名称。为了要达到用最快速、最有效率的方式,让客户端能够迅速找到网域的验证服务,在Win2000/XP系统中,加入了DNS 快取(Cache)的功能。当第一次在找到了目的主机的IP地址后,操作系统就会将所查询到的名称及IP地址记录在本机的DNS快取缓冲区中,下次客户端还需要再查询时,就不需要到DNS服务器上査询,而直接使用本机DNS Cache中的数据即可,所以你查询的结果始终是同一IP地址。这个服务关闭后,dns还可以解析,但是本地无法储存dns 缓存。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在Windows的DNS服务器中基于DNS的循环(round robin),只需要为同一个域名设置多个ip主机记录就可以了,DNS中没有转发器的概念,因此需要启用循环,添加每个Web服务器的主机记录就可以确保域名解析并实现负载均衡。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
国际电信联盟(ITU)在2000年5月确定W-CDMA、CDMA2000和TDS-CDMA三大主流无线接口标准,写入3G技术指导性文件《2000年国际移动通讯计划》(简称IMT-2000)。W-CDMA:英文名称是Wideband Code Division Multi-ple Access,中文译名为宽带码分多址,它可支持384kbps到2Mbps不等的数据传输速率,支持者主要以GSM系统为主的欧洲厂商。CDMA2000:亦称CDMA Multi-Carrier,由美国高通北美公司为主导提出,摩托罗拉、Lucent和后来加入的韩国三星都有参与,韩国现在成为该标准的主导者。TD-SCDMA:该标准是由中国独自制定的3G标准,由于中国的庞大的市场,该标准受到各大主要电信设备厂商的重视,全球一半以上的设备厂商都宣布可以支持TD-SC-DMA标准。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在层次化局域网模型中,核心层的主要功能是将分组从一个区域高速地转发到另一个区域。核心层是因特网络的高速骨干,由于其重要性,因此在设计中应该采用冗余组件设计,使其具备高可靠性,能快速适应变化。在设计核心层设备的功能时,应尽量避免使用数据包过滤、策略路由等降低数据包转发处理的特性,以优化核心层获得低延迟和良好的可管理性。 汇聚层是核心层和接入层的分界点,应尽量将资源访问控制、核心层流量的控制等都在汇聚层实施。汇聚层应向核心层隐藏接入层的详细信息,汇聚层向核心层路由器进行路由宣告时,仅宣告多个子网地址汇聚而形成的一个网络。另外,汇聚层也会对接入层屏蔽网络其他部分的信息,汇聚层路由器可以不向接入路由器宣告其他网络部分的路由,而仅仅向接入设备宣告自己为默认路由。 接入层为用户提供了在本地网段访问应用系统的能力,接入层要解决相邻用户之间的互访需要,并且为这些访问提供足够的带宽。接入层还应该适当负责一些用户管理功能,包括地址认证、用户认证和计费管理等内容。接入层还负责一些用户信息收集工作,例如用户的IP地址、MAC地址和访问日志等信息。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在SNMP管理中,管理站和代理之间进行信息交换时要通过团体名认证,这是一种简单的安全机制,管理站与代理必须具有相同的团体名才能互相通信。但是由于包含团体名的SNMP报文是明文传送,所以这样的认证机制是不够安全的。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
静态路由是固定路由,从不更新除非拓扑结构发生变化;洪泛式路由将信息发送到连接的所有路由器,不利用网络信息;随机路由是洪泛式的简化;自适应路由依据网络信息进行代价计算,依据最小代价实时更新路由。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
备选项命令的作用分别是:Netstat用于显示网络相关信息;Ping用于检查网络是否连通;Msconfig用于Windows配置的应用程序;Cmd称为命令提示符,在操作系统中进行命令输入的工作提示符。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
1. 无线局域网WIFI是目前应用最广泛的无线通信技术,传输距离在100-300M,速率可达300Mbps,功耗10-50mA。 2. Zigbee,传输距离50-300M,速率250kbps,功耗5mA,最大特点是可自组网,网络节点数最大可达65000个。 3. 蓝牙,传输距离2-30M,速率1Mbps,功耗介于zigbee和WIFI之间。 ZigBee应用于智能家居的比较多,而蓝牙应用于特别短距离的文件传输。
 
 

 

算法与数据结构

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在邻接表中,就是要依次访问每个顶点,然后在每个顶点中依次访问每条边,把这些边的终点的入度+1。也就是每个顶点和每条边依次要各访问一遍,所以时间复杂度是O(n+e)。在邻接矩阵中,算法需要遍历邻接矩阵的每一个点,而邻接矩阵有n*n个点,所以时间复杂度是O(n*n)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称“熵编码法”),用于数据的无损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的。出现概率髙的字符使用较短的编码,出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而到无损压缩数据的目的。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
逆波兰式(reverse polish notation,也叫后缀表达式)是将运算符写在操作数之后的表达式表示方法。对逆波兰式进行求值的方法是:从左至右扫描表达式,遇到操作数则压栈,遇到运算符号则从栈中弹出操作数进行运算,然后将运算结果压入栈中,重复该过程直到表达式结束,最后的结果为栈顶元素。由于控制上比较简单,所以逆波兰式更便于计算。 表达式“a-b+c*d”的后缀式为“ab-cd*+”。 表达式“(a-b)* c+d”的后缀式为“ab-c*d+”。 表达式“(a-b)* (c+d)”的后缀式为“ab-cd+*”。 表达式“a-b*c+d”的后缀式为“abc*-d+”。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二维数组arr[1..M,1..N]的元素可以按行存储,也可以按列存储。按列存储时,元素的排列次序为,先是第一列的所有元素,然后是第二列的所有元素,最后是第N列的所 有元素。每一列的元素则按行号从小到大依次排列。因此,对于元素arr[i,j],其存储位置如下计算:先计算其前面j-1列上的元素总数,为然后计算第j列上排列在 arr[i,j]之前的元素数目,为i-1,因此arr[i,j]的地址为base+((j-1)*M+i-1)*K。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二维数组a[1..N,1..N]的元素布局如下:
 
 

在按行存储方式下,a[ij]之前的元素个数为(i-l)N+j-l;在按列存储方式下,a[ij] 之前的元素个数为(j-l)N+i-l。若i=j,则a[ij]是主对角线上的元素,显然(i-l)N+j-l 与(j-l)N+i-l相等。若i<j,则a[ij]是上三角区域的元素;若i>j,则a[i,j]是下三角区域的元素,这两种情况下,存储在a[i,j]之前的元素个数分别为和(j-l)*N+i-1, 其大小关系依赖于i和j的具体取值。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于长度为n的线性序列,若采用顺序表(一维数组)存储,则每个元素的位序与存储该元素的数组元素下标有直接的对应关系,可进行随机查找,时间复杂度为0(1); 若采用单链表存储,则只能进行顺序访问,即必须从头指针出发,结合计数顺着指针链找到指定序号的元素,时间复杂度为0(n)。       
 
 

栈是一种后进先出的数据结构,队列的特点是先进先出。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
数据挖掘就是应用一系列技术从大型数据库或数据仓库中提取人们感兴趣的信息和知识,这些知识或信息是隐含的,事先未知而潜在有用的,提取的知识表示为概念、 规则、规律、模式等形式。也可以说,数据挖掘是一类深层次的数据分析。常见和应用最广泛的数据挖掘方法如下。 ①决策树:决策树方法是利用信息论中的互信息(信息增益)寻找数据库中具有最大信息量的属性字段,建立决策树的一个结点,再根据该属性字段的不同取值建设树的分支;在每个分支子集中重复建立树的下层结点和分支的过程。国际上最早的、也是最有影响的决策树方法是Quiulan研究的ID3方法。 ②神经网络:神经网络方法是模拟人脑神经元结构,完成类似统计学中的判别、 回归、聚类等功能,是一种非线性的模型,主要有三种神经网络模型:前馈式网络、反馈式网络和自组织网络。人工神经网络最大的长处是可以自动地从数据中学习,形成知识,这些知识有些是我们过去未曾发现的,因此它具有较强的创新性。神经网络的知识体现在网络连接的权值上,神经网络的学习主要表现在神经网络权值的逐步计算上。 ③遗传算法:遗传算法是模拟生物进化过程的算法,它由三个基本过程组成:繁殖(选择)、交叉(重组)、变异(突变)。采用遗传算法可以产生优良的后代,经过若干代的遗传,将得到满足要求的后代即问题得解。 ④关联规则挖掘算法:关联规则是描述数据之间存在关系的规则,形式为 “A1A2...An=>B1B2...Bn”。一般分为两个步骤:求出大数据项集、用大数据项集产生关联规则。 除了上述的常用方法外,还有粗集方法,模糊集合方法,Bayesian Belief Netords ,最邻近算法(K-nearest Neighbors Method,kNN)等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
遍历运算是二叉树的基本运算,主要有先序、中序、后序和层序遍历。 先序遍历的基本方法:对于非空二叉树,先访问根结点,然后先序遍历根的左子树,最后先序遍历根的右子树。因此,若已知某二叉树的先序遍历序列,则可直接得到其树根结点。 中序遍历的基本方法:对于非空二叉树,先中序遍历根的左子树,然后访问根结点,最后中序遍历根的右子树。因此,若已知某二叉树的根结点,则可根据中序遍历序列将该二叉树左右子树上的结点划分开。 后序遍历的基本方法:对于非空二叉树,首先后序遍历根的左子树,接着后序遍历根的右子树,最后访问根结点。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于循环队列,求队头元素的指针的计算公式为:(rear-len+1+M)%M。求队列中元素个数公式为:(rear-fear+M)%M。其中fear表示队列的对头指针。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
假设主串和模式串的长度分别为n和m,位置序号从0开始计算。设从主串的第i个位置开始与模式串匹配成功,在前i趟匹配中(位置0~i-1),每趟不成功的匹配都是模式串的第一个字符与主串中相应的字符不相同,则在前i趟匹配中,字符的比较共进行了i次,而第趟i=1(从位置i开始)成功匹配的字符比较次数为m,所以总的字符比较次数为 i+m (0 ≤i≤n-m)。 而在最坏情况下,每一趟不成功的匹配都是模式串的最后一个字符与主串中相应的字符不相等,则主串中新一趟的起始位置为i-m+2。若设从主串的第f个字符开始匹配时成功,则前i趟不成功的匹配中,每趟都比较了m次,总共比较了i×m次,第i+1趟的成功匹配也比较了m次。因此,最坏情况下的比较次数为(n-m+1)*m。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
线性表进行顺序存储时,逻辑上相邻的元素,其物理位置也相邻,因此在己知第一个元素存储位置和元素序号的情况下,可计算出表中任意指定序号元素的存储位置,即按照序号访问元素时随机的,该运算的时间复杂度为01.,也就是常量级。而插入元素时就需要移动一些元素了,在最坏情况下要移动表中的所有元素,因此该运算的时间复杂度为O(n),其中n为线性表的长度。 线性表进行链式存储时,逻辑上相邻的元素,其物理位置不要求相邻,因此需要额外的存储空间表示元素之间的顺序关系。在链表上查找元素和插入元素的运算时间复杂度都为0(n)。线性表的元素在逻辑上是一个线性序列,若最常用的操作是访问任意指定序号的元素,而且其插入和删除元素的操作均在表尾进行,不需要移动其他元素,则其存储结构采用顺序表最为合适。 对于线性表(a1,a2,…,an),顺序存储时表中元素占用的存储单元地址是连续的,因此逻辑上相邻的元素,其物理位置也相邻,如下图(a)所示。 线性表采用链式存储有单链表、双向链表、循环链表等形式,单链表如下图(b) 所示。链式存储的基本特点是逻辑上相邻的元素不要求物理位置上相邻,所以需要在元素的存储单元中专门表示下一个(或上一个)元素的存储位置信息,从而可以得到元素间的顺序信息。
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
栈和队列都是线性的数据结构。栈的操作要求是入桟和出栈都在表尾进行,即在栈中有多个元素时,后进去的元素先出来,特点是后进先出,元素入栈的顺序与出桟的顺序可以相同也可以不同。而队列的修改要求是在队尾加入元素,在队头删除元素,特点是先进先出,元素的入队顺序与出队顺序一定相同。 将一个栈和队列连接后,进出队列的元素顺序是相同的,而进入队列的元素顺序正是从栈中出来的元素顺序,因此,正确的叙述为出队序列与出栈序列一定相同。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
线性表的元素在逻辑上是一个线性序列,若最常用的操作是访问任意指定序号的元素,而且其插入和删除元素的操作均在表尾进行,不需要移动其他元素,则其存储结构采用顺序表最为合适。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
字符串是由字符构成的序列,属于线性数据结构。包含任意个空格字符的字符串称为空白串。字符串中的字符取自特定的字符集合(常见的是ASCII字符集),其长度是指包含的字符个数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
按照子串长度考虑,长度为1的子串为n个,长度为2的子串为n-1个,以此类推,长度为n-1的子串为2个,合计n+n-1+...+3+2=(n+2)(n-1)/2。       
 
 

单链表作为栈的存储结构,因为栈的操作是先进后出,因此无论是入栈还是出栈,都只对栈顶元素操作,而在单链表中用头指针作为栈顶指针,此时无论是出栈还是入栈,都只需要对头指针指向的栈顶指针操作即可,不需要遍历链表。是栈一种后进先出的数据结构。将一个元素序列逆置时,可以使用栈也可以不用。链表结点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。可执行程序的装入与卸载,也不存在“后进先出”的操作要求。对于函数的递归调用与返回,一定是后被调用执行的先返回。


1.完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点. 2.平衡二叉树(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树. 3.最优二叉树:哈夫曼树 4.满二叉树:每一层上的节点数均达到最大值


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在有向图中,若以顶点表示活动,用有向边表示活动之间的优先关系,则称这样的有向图为以顶点表示活动的网(Activity On Vertex Network,AOV网)。 若在带权有向图G中以顶点表示事件,以有向边表示活动,边上的权值表示该活动持续的时间,则这种带权有向图称为用边表示活动的网(Activity On Edge Network,AOE 网)通常在AOE网中列出了完成预定工程计划所需进行的活动、每项活动的计划完成时间、要发生哪些事件以及这些事件和活动间的关系,从而可以分析该项工程是否实际可行并估计工程完成的最短时间,分析出哪些活动是影响工程进度的关键。进一步可以进行人力、物力的调度和分配,以达到缩短工期的目的。 根据生成树的定义,有n个顶点的连通图的生成树中恰好有n-1条边。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
树的带权路径长度为树中所有叶子节点的带权路径长度之和。哈夫曼树是指权值为 w1,w2,…,wn的n个叶子节点的二叉树中带权路径长度最小的二叉树。 构造最优二叉树的哈夫曼算法如下: 1.根据给定的n个权值{w1,w2,…,wn},构成n棵二叉树的集合F= {T1, T2,…,Tn},其中每棵二叉树Ti中只有一个带权为wi的根节点,其左右子树均空。 在F中选取两棵权值最小的二叉树作为左、右子树构造一棵新的二叉树,置新 构造二叉树的根节点的权值为其左、右子树根节点的权值之和。 从F中删除这两棵树,同时将新得到的二叉树加入到F中。 重复2.、3.,直到F中只含一棵树时为止。这棵树便是最优二叉树(哈夫曼树)。 从以上叙述可知,哈夫曼树中权值最小的两个节点互为兄弟节点。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
假设从前往后找,则所找元素为第1个元素时,与表中的1个元素作了比较,所找元素为第2个元素时,与表中的2个元素作了比较,……,所找元素为第n个元素时, 与表中的n个元素作了比较,因此,平均查找长度等于(1+2+…+n)/n。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
采用单向循环链表存储的特点之一是从表中任意结点出发都能遍历整个链表,另外便于元素的元素节点的删除与插入。如需要对表中的任意节点进行随机访问需采用顺序存储结构。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
KMP模式匹配算法是对基本模式匹配算法的改进,其改进之处在于:每当匹配过程中出现相比较的字符不相等时,不需要回溯主串的字符位置指针,而是利用已经得到的“部分匹配”结果将模式串向右“滑动”尽可能远的距离,再继续进行比较。 在KMP算法中,依据模式串的next函数值实现子串的滑动。若令next[j]=k,则next[j] 表示当模式串中的Pj与主串中相应字符不相等时,令模式串的pk与主串的相应字符进行比较。 
 
 

根据二叉排序树的定义,将新结点插入二叉排序树时,需要先查找插入位置。若等于树根,则不再插入,若大于树根,则递归地在右子树上查找插入位置,否则递归地在左子树上查找插入位置,因此,新结点总是以叶子的方式加入树中。这样,在根结点到达每个叶子结点的路径上,结点的顺序必须保持,也就是父结点必定先于子结点进入树中。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
线性表是一个线性序列,在顺序存储方式下,若删除其中一个元素,需要将其后的元素逐个前移,使得元素之间没有空闲单元。表长为n时,共有n个可删除的元素,删除元素a1时需要移动n-1个元素,删除元素an时不需要移动元素,因此,等概率下删除一个元素时平均的移动元素次数Edelete为
 
 

线性表若釆用单链表存储,插入和删除元素的实质都是对相关指针的修改,而不需要移动元素。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二叉树的顺序存储,就是用一组连续的存储单元存放二叉树中的结点;把二叉树的所有结点安排成为一个恰当的序列,反映出节点中的逻辑关系;用编号的方法从树根起,自上层至下层,每层自左至右地给所有结点编号。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树: ①若它的左子树非空,则其左子树上所有节点的关键字均小于根节点的关键字; ②若它的右子树非空,则其右子树上所有节点的关键字均大于根节点的关键字; ③左、右子树本身就是两棵二叉排序树。 由上述定义可知,二叉排序树是一个有序表,对二叉排序树进行中序遍历,可得到一个关键字递增排序的序列。 对于给定的关键字序列,可从空树开始,逐个将关键字插入树中来构造一棵二叉排序树。其过程是:每读入一个关键字值,就建立一个新节点。若二叉排序树非空,则将 新节点的关键字与根节点的关键字相比较,如果小于根节点的值,则插入到左子树中,否则插入到右子树中;若二叉排序树为空树,则新节点作为二叉排序树的根节点。 显然,若关键字初始序列已经有序,则构造出的二叉排序树一定是单枝树(每个节点只有一个孩子)。 为了使在二叉排序树上进行的查找操作性能最优,构造二叉排序树时需进行平衡化处理,使每个节点左、右子树的髙度差的绝对值不超过1。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二叉树具有以下性质:度为2的结点(双分支结点)数比度为0 (叶子结点)数正好少1。而根据最优二叉树(哈夫曼树)的构造过程可知,最优二叉树中只有度为2和0的结点,因此,其结点总数为2n-1。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
拓扑排序是将AOV网中所有顶点排成一个线性序列的过程,并且该序列满足:若在AOV网中从顶点vi到vj有一条路径,则在该线性序列中,顶点vi必然在顶点vj之前。 对AOV网进行拓扑排序的方法如下: 1.在AOV网中选择一个入度为零(没有前驱)的顶点且输出它; 2.从网中删除该顶点及与该顶点有关的所有边; 3.重复上述两步,直至网中不存在入度为零的顶点为止。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于无向图中的两个顶点u和v,若存在边(u,v),则该边为计算U的度和V的度各贡献一个值1,因此,所有顶点的度数之和为e的两倍。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对任何一棵二叉树,若其终端节点数为n0,度为2的节点数为n2,则n0=n2+l。证明如下: 设一棵二叉树上叶结点数为n0,单分支结点数为n1,双分支结点数为n2,则总结点数=n0+n1+n2。 在一棵二叉树中,所有结点的分支数(即度数)应等于单分支结点数加上双分支结点数的2倍,即总的分支数=n1+2n2。 由于二叉树中除根结点以外,每个结点都有唯一的一个分支指向它,因此二叉树中:总的分支数=总结点数-1。因此,n1+2n2= n0+n1+ n2-l,即n0=n2+l。       
 
 

设查找表的元素存储在一维数组r[1..n]中,在表中的元素已经按关键字递增方式排序的情况下,进行折半查找的方法是:首先将待查元素的关键字(key)值与表r中间位置上(下标为mid)记录的关键字进行比较,若相等,则查找成功;若key>r[mid].key, 则说明待查记录只可能在后半个子表r[mid+l..ti]中,下一步应在后半个子表中进行查找, 若key<r[mid].key,说明待查记录只可能在前半个子表r[l..mid - 1]中,下一步应在r的前半个子表中进行查找,通过逐步缩小范围,直到查找成功或子表为空时失败为止。 折半查找的过程可以用一棵二叉树描述,方法是以当前查找区间的中间位置序号作为根,左半个子表和右半个子表中的记录序号分别作为根的左子树和右子树上的节点,


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对一个有向图G进行拓扑排序的方法如下。 ①G中选择一个入度为0(没有前驱)的顶点且输出它; ②从网中删除该顶点及其与该顶点有关的所有弧; ③重复上述两步,直至网中不存在入度为0的顶点为止。 显然,若存在弧<vi,vj> ,则vj的入度就不为0,而要删除该弧,则vi的入度应为0,因此在拓扑序列中,vi必然在'之前。另外,进行拓扑排序时,可能存在vi和vj的入度同时为0的情形,此时,在第①步可先输出vi,后输出vj。因此在拓扑序列中,顶点vi排列在vj之前,不一定存在弧<vi,vj>,一定不存在弧<vj,vi>,也一定不存在vj到vi的路径,而可能存在vi到vj的路径。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二叉树中,非叶子结点最多有两个子结点,第i层上最多有2(i-1)个结点,因此高度为h的二叉树最多有2h-1个结点。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
哈希表通过一个已记录的关键字为自变量的函数(哈希函数)得到该记录的存储地址,所以在哈希表中进行查找操作时,需用同一哈希函数计算得到待查记录的存储地址,然后到相应的存储单元去获得有关信息再判定查找是否成功。用哈希表存储元素时,需要进行冲突(碰撞)处理,这个冲突指的是关键字不同的元素被映射到相同的存储位置。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二叉排序树的构造过程: 若查找二叉树为空树,则以新结点为查找二叉树; 将要插入结点键值与插入后父结点键值比较,就能确定新结点是父结点的左子结点,还是右子结点,直到将序列中的所有元素(关键码)全部插入。
 
 

双端队列是指在队列的两个端口都可以加入和删除元素

 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
栈和队列都是操作受限的线性表:栈仅在表尾插入和删除元素;队列仅在表头删除元素、在表尾插入元素。 采用单循环链表表示队列的示意图如下图所示: 
 
 

入队时初始队列为空、出队后队列变为空要进行特殊处理。 入队操作和出队操作均与队列长度无关,因此其时间复杂度都为O1.。 队列是先入先出的线性表,栈是后进先出的线性表。一个线性序列经过队列结构后只能得到与原序列相同的元素序列,而经过一个栈结构后则可以得到多种元素序列。用两个栈可以模拟一个队列的入队和出队操作。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
含有头结点的单链表如下图所示。
 
 

在链表中加入头结点后,査找表中某一元素仍然要从头指针出发,顺序找到目标元素或失败时找到表尾为止,时间复杂度与表长成正比。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
无向图的邻接矩阵是一个对称矩阵,每条边会表示两次,因此矩阵中的非零元素数目为2E。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
如果是满二叉树,那么其第n层的结点数应该是第n-1层结点数的两倍,从根(第一层)开始,各层的结点数应分别是2n-1个,其中n为当前的层次,因此一颗x层的满二叉树,其总的结点数位2x-1个。而如果知道结点编号m,我们可以用log2m+1来求取该结点属于那一层,同样,对于编号为n的结点,所属层次为log2n+1,两者属于同一层次则应该满足log2m+1=log2n+1
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
图的基本存储结构有邻接矩阵表示法和邻接链表表示法。图的邻接矩阵表示利用一个矩阵来表示图中顶点之间的关系。对于具有n个顶点的图G=(V,E),其邻接矩阵是一个n阶方阵,且满足: 邻接表存储是指为图的每个顶点建立一个单链表,第i个单链表中的结点表示依附 于顶点Vi的边(对于有向图是以Vi为尾的弧)。 例如,下面分别为一个有向图a和一个无向图b。  
 
 

有向图a和无向图b的邻接矩阵如下所示

有向图a和无向图b的邻接表如下图所示。

图中的顶点数决定了邻接矩阵的阶和邻接表中的单链表数目,无论是对有向图还是无向图,边数的多少决定了单链表中的结点数,而不影响邻接矩阵的规模,因此完全图适合采用邻接矩阵存储。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
竹包问题是典型的算法问题,包括两种形式,即0-1背包问题和部分背包问题。0-1背包问题是指每个物品或者全部放在背包中或者不放在背包中,求解在特定背包容量下装入背包物品的最大价值。部分背包问题中,每个物品可以部分地放入背包中,求解在特定背包容量下装入背包物品的最大价值。 基于单位重量价值最大优先的策略来将物品放入背包中,本质上是一种贪心的策略。在该策略下求0-1背包问题,不能确保得到最优解,事实上在本题给出实例中是得不到最优解的。而对于部分背包问题,是可以得到最优解的。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
哈夫曼树是一类带权路径长度最短的树,根据一组权值构造出来。构造过埕为: ①根据给定的n个权值{w1,w2,…,wn},构成n棵二叉树的集合F={T1,T2,…,Tn},其中每棵树Ti中只有一个带权为wi的根结点,其左右子树均空。 ②在F中选取两棵权值最小的树作为左、右子树构造一棵新的二叉树,置新构造二叉树的根结点的权值为其左、右子树根结点的权值之和。 ③从F中删除这两棵树,同时将新得到的二叉树加入到F中。 根据权值集合{0.25,0.30,0.08,0.25,0.12}构造的哈夫曼树如下图所示,从中可以知道,哈夫曼树中叶子结点的权值越小则距离树根越远、叶子结点的权值越大则距离树根越近。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
快速排序采用的是分治法,其基本思想是将原问题分解成若干个规模更小但结构与原问题相似的子问题。快速排序算法是一种经典的排序算法,其基本思想是选择一个基准元素(通常选择第一个元素或者最后一个元素),通过一趟排序将待排序序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置;然后再递归地排序划分的两部分,因此本质上快速排序是一种分治算法。由于在排序的过程中,各元素与基准元素比较大小,若小于基准元素则与基准元素交换位置,因此该算法是不稳定的排序算法。当每一趟排序进行后,选择的基准元素恰好最大或者最小时,就把序列分成极端不均衡的两部分,即一部分为空,另一部分为待排序序列的元素个数减1,此时算法处于最坏情况,其时间复杂度为O(n2)。当输入数据基本有序或者所有元素值相等时,不论选择第一个元素还是最后一个元素作为基准元素,都恰好把序列分成极端不均衡的两部分,快速排序算法具有最坏情况下的时间复杂度。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
由邻接矩阵可知,对于结点V0和V1之间,只存在弧V0->V1,而没有弧V1->V0,因此图G不属于无向图,也不属于完全图。 强连通图:在有向图G中如果对于每一对顶点Vi,Vj,从顶点Vi到顶点Vj和从顶点Vj到顶点Vi都存在路径,则称图为强连通图。本题不满足该条件。 因此G是有向图。图的广度遍历过程:从图中的某个顶点V触发,在访问了V之后一次访问V的各个未被访问的邻接点,然后分别从这些邻接点出发,依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直到图中所有已被访问的顶点的邻接点都被访问到。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
当序列基本有序时,直接插入排序过程中元素比较的次数较少,当序列为逆序时, 元素的比较次数最多。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在m阶B-树的定义中,要求: ①树中的每个节点至多有M棵子树 ②若根节点不是叶子节点,则至少有两棵子树。 ③除根之外的所有非终端节点至少有[M/2]棵子树。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在应用散列函数构造哈希表(或散列表)时,由于设计散列函数的目标是:作为一个压缩映像函数,它应具有较大的压缩性,以节省存储空间;哈希函数应具有较好的散列性,虽然冲突是不可避免的,但应尽量减少。题中所给是常用的除留余数法,P值一般为不大于n且最接近n的质数。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
二分查找是一种高效的查找方法,其思路是待查找元素先与序列中间位置上的元素比较,若相等,则查找成功:若待查找元素较大,则接下来到序列的后半区进行二分查找,否则到序列的前半区进行二分查找。显然,要快速定位序列的中间位置,査找表必须进行顺序存储;其次,从二分查找过程可知,序列必须有序排列才行。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
将数据分成若干份,每份单独处理后再合并,其思想为分治。理想情况下,快速排序每次将数据划分为规模相近的两部分,并递归至不可再划分,因此其时间复杂度为O(nlgn)。在最坏情况下,每次划分都极不均匀,如一个类别中仅有一个元素,另一个类别中包含剩余所有元素。这时划分的复杂度为O(n),n次操作的总复杂度为O(n2)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
图的遍历是指对图中所有顶点进行访问且只访问一次的过程。因为图的任一个结点都可能与其余顶点相邻接,所以在访问了某个顶点之后,可能沿着某路径又回到该结点上。因此为了避免顶点的重复访问,在图的遍历过程中,必须对已访问过的顶点进行标记。深度优先遍历和广度优先遍历是两种遍历图的基本方法。 图的广度优先遍历方法为:从图中某个顶点V出发,在访问了v之后依次访问v的各个未被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有己被访问的顶点的邻接点都被访问到。若此时还有未被访问的顶点,则另选图中的一个未被访问的顶点作为起点,重复上述过程,直至图中所有的顶点都被访问到为止。 广度优先遍历图的特点是尽可能先进行横向搜索,即最先访问的顶点的邻接点也先被访问。为此,引入队列来保存己访问过的顶点序列,即每当一个顶点被访问后,就将其放入队中,当队头顶点出队时,就访问其未被访问的邻接点并令这些邻接顶点入队。       
 
 

二叉查找树又称为p叉排序树或二叉检索树,它或者是一棵空树,或者是具有如下性质的二叉树:①若它的左子树非空,则左子树中所有结点的值均小于根结点的值;②若它的右子树非空,则右子树中所有结点的值均大于根结点的值;③左、右子树本身就是叉査找树。


对非空二叉排序树进行中序遍历,得到递增有序的序列,先序和后序序列则不是。 二叉排序树中结点在左、右子树上的分布并不均匀,极端情况下,n个结点的二叉排序树的高度为n。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
两个递增序列A、B进行归并时,从序列的第一个元素开始,分别从这两个序列中取一个元素并进行比较,将较小者输出,然后从较小者所在序列取下一个元素再进行比较,循环往复,直到某个序列的全部元素已经输出,再将另一个序列的剩余元素依次输出即可。若am<b1 ,则需要依次比较 a1与b1,a2与b1,a3与b1,am-1与b1,am与b1共需要m次比较,这是归并时比较次数最少的情况。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。整个算法的时间复杂度是O(nlogn)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
归并排序,在最坏情况下,时间复杂度是O(nlog2n);其他选项在最坏情况下的时间复杂度都是O(n2)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
广义表是函数式语言中使用的一种数据结构。根据广义表取表头和取表尾的定义,对于广义表L=((x,y,z),a,(u,t,w)),运算head(L)=(x,y,z),而tail(L) =(a,(u,t,w)),因此原子项y应从head(L)中取,对(x,y,z)取表头可得到原子项x,因此从L中取出原子项y的运算为head(tail(head(L)))。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在串比较、求子串、串连接、串替换运算中,除了串替换外,其他运算都不会改变串中的内容,因此,在链表存储方式下进行串替换最不方便。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
装填因子a表示了哈希表的装满程度,显然,a越大发生冲突的可能性就越大。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
N-皇后问题是一个经典的计算问题,该问题基于一些约束条件来求问题的可行解。该问题不易划分为子问题求解,因此分治法不适用:由于不是要求最优解,因此不具备最优子结构性质,也不宜用动态规划法和贪心法求解。而系统搜索法--回溯法可以有效地求解该问题。        
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
分治法:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。动态规划法:这种算法也用到了分治思想,它的做法是将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题。贪心算法:它是一种不追求最优解,只希望得到较为满意解的方法。贪心算法一般可以快速得到满意的解,因为它省去了为找到最优解而穷尽所有可能所必须耗费的大量时间。贪心算法常以当前情况为基础做最优选择,而不考虑各种可能的整体情况,所以贪心算法不要回溯。回溯算法(试探法):它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。其实现一般要用到递归和堆栈。针对单源最短路径问题,由Dijkstra提出了一种按路径长度递增的次序产生各顶点最短路径的算法。若按长度递增的次序生成从源点s到其他顶点的最短路径,则当前正在生成的最短路径上除终点以外,其余顶点的最短路径均已生成(将源点的最短路径看做是已生成的源点到其自身的长度为0的路径)。这是一种典型的贪心策略,就是每递增一次,经对所有可能的源点、目标点的路径都要计算,得出最优。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
O记号:给出一个函数的渐进上界。给定一个函数g(n),0(g(n))表示为一个函数集合的{f(n): #在正常数c和no,使得对所有的n>no,有0≤f(n)≤cg(n)} 
 
 

Ω

记号:给出一个函数的渐进下界。给定一个函数g(n),n(g(n))表示为一个函数集合{f(n):存在正常数c和no,使得对所有的n>no,有0≤cg(n)≤f(n)}

Θ

记号:给出一个函数的渐进上界和下界,即渐进确界。给定一个函数g(n),0(g(n)) 表示为一个函数集合{f(n):存在正常数C1、C2和n0,使得对所有的n≥n0,有n≥(0≤c1g(n)≤ f(n)≤c2g(n)}


归并排序是一个采用分治策略的经典排序算法;而搜索过程则是从两端往里判断是否存在ai+aj=x。因此算法采用的是分治策略。 算法的时间复杂度也是从两个部分分析得到的。归并排序的时间复杂度为O(nlgn); 而搜索过程的时间复杂度为0(n)。因此算法的时间复杂度为O(nlgn)。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
排序和查找是基本的计算问题,存在很多相关的算法,不同的算法适用于不同的场合。不同的数据输入特点相同的算法也有不同的计算时间。若数据基本有序,对插入排序算法而言,则可以在近似线性时间内完成排序,即O(n);而对于快速排序而已,则是其最坏情况,需要二次时间才能完成排序,即O(n2)。两个算法在排序时仅需要一个额外的存储空间,即空间复杂度均为常数时间复杂度O(1)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
优先队列是一种常用的数据结构,通常用堆实现。对应于大顶堆和小顶堆,存在最大优先队列和最小优先队列。以最大优先队列为例,优先队列除了具有堆上的一些操作, 如调整堆、构建堆之外,还有获得优先队列的最大元素,抽取出优先队列的最大元素, 向优先队列插入一个元素和增大优先队列中某个元素的值。其中除了获得优先队列的最大元素的时间复杂度为O1之外,其他几个操作的时间复杂度均为二叉树的高度,即O(lgn)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
动态规划算法与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。贪心选择是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
应用蛮力法求解最长公共子序列时,其思路在题干已经给出。对X的每一个子序列,判断其是否也是Y的子序列,那么长度为n的序列X的子序列数是2n,而判断一个子序列是否也是Y的子序列的时间是n,因此时间复杂度为O(n2n)。 而采用动态规划自底向上的方法求解时,题干也给出了最优子结构和递归式的定义,因此很容易看出算法的时间复杂度实际上就是i和j的两重循环,时间复杂度为O(n2)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
回溯法的实质是在包含问题的所有解的解空间树中,按照深度优先的策略,从根节点出发搜索解空间树。若进入某子节点的子树后没有找到解(或者需要找出全部解),则需要从子节点回退(回溯)至父节点,从而可以选择其他子节点进行搜索。回溯法有“通用的解题法”之称,用它可以系统地搜索一个问题的所有解或任一解。 分治与递归就像一对孪生兄弟,经常同时应用于算法设计之中。分治的思路是将一个难以直接解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之。 如果规模为n的问题可分解成k个子问题,1<k<n,这些子问题互相独立且与原问题相同。 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题, 先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是独立的。若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解,每个解都对应于一个值,我们希望找到具有最优值(最大值或最小值)的那个解。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
时间复杂度是指程序运行从开始到结束所需要的时间。通常分析时间复杂度的方法是从算法中选取一种对于所研究的问题来说是基本运算的操作,以该操作重复执行的次数作为算法的时间度量。一般来说,算法中原操作重复执行的次数是规模n的某个函数T(n)。由于许多情况下要精确计算T(n)是困难的,因此引入了渐进时间复杂度在数量上估计一个算法的执行时间。其定义如下:如果存在两个常数c和m,对于所有的n,当n≥m时有f(n)≤cg(n),则有f(n)=O(g(n))。也就是说,随着n的增大,f(n)渐进地不大于g(n)。
 
 

空间复杂度是指程序运行从开始到结束所需的辅助存储量,在本题中,只需要辅助存储量来存储统计的元素个数,因此其空间复杂度为O(1)。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
霍夫曼编码在构造最优编码树时,每次总是取出权值最小的两个结点来生成它们的父结点(新的中间结点),因此霍夫曼编码方案是基于贪心策略的。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Prim算法从扩展顶点开始,每次总是“贪心的”选择与当前顶点集合中距离域短的顶点,而Kruscal算法从扩展边开始,每次总是“贪心的”选择剩余的边中最小权重的边,因此两个算法都是基于贪心策略进行的。 Prim算法的时间复杂度为0(n2),其中n为图的顶点数,该算法的计算时间与图中的边数无关,因此该算法适合于求边稠密的图的最小生成树:Kruscal算法的时间复杂度为O(mlgm),其中m为图的边数,该算法的计算时间与图中的顶点数无关,因此该算法适合于求边稀疏的图的最小生成树。当图稠密时,用Prim算法效率更高。但若事先没有关于图的拓扑特征信息时,无法判断两者的优劣。由于一个图的最小生成树可能有多棵,因此不能保证用这两种算法得到的是同一棵最小生成树。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
中位数的含义:将一组数据按照由小到大(或由大到小)的顺序排列,如果数据的个数是奇数,则处于中间位置的数就是这组数据的中位数;如果数据的个数是偶数,则中间两个数据的平均数就是这组数据的中位数。对于该问题,若每次都是选择中位数作为基准元素,则时间复杂度的递归式为: T(n) =T(n/2)+cn 求解该递归式,得到T(n)=O(n)。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
排序是一类最基本的操作,因此要求考生熟悉一些典型的排序算法,包括其算法思想、时空复杂度以及应用场合。若数据基本有序,插入排序应该是最佳选择,输入数据是否有序对归并和计数排序算法并没有影响。对传统的快速排序算法,输入数据有序反而使其效率最低。若关键字取值范围较小,则计数排序是最佳选择,因为在该情况下,该算法的时间复杂度为线性时间。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
以2-路归并排序为例进行说明。2-路归并是指将两个有序序列合并成一个有序序列, 其基本过程为:从两个序列中各取一个元素,进行比较,输出较小的元素,从较小元素所在序列取下一个元素,与未输出的那个元素比较,输出较小者。依此类推,直到输出序列包含了两个初始有序序列的全部元素。 对于一个初始无序的序列,可以先将其等分为两个无序的子序列,对这两个子序列再次二分,重复该过程,直到分出的子序列中仅包含一个元素时(一个元素自然是有序的)为止,然后再反复进行2-路归并的过程,最后完成排序。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
分支限界法一般以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间,那么肯定能找出最优解。贪心算法的思想是:总是做出在当前来说是最好的选择,而并不从整体上加以考虑,它所做的每步选择只是当前步骤的局部最优选择,但从整体来说不一定是最优的选择。所以用该算法并不能保证求得0-1背包问题的最优解。回溯法的思想是:按选优条件向前搜索,以达到目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。它其实是遍历了整个解空间,所以肯定能找到最优解。动态规划法的思想是:在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解。它能求得0-1背包问题的最优解。
 
 

冲突是指哈希函数将关键字不同的元素映射到了同一个存储地址。要减少冲突,就要设法使哈希函数尽可能均匀地把关键字映射到存储区的各个存储地址上,这样就可以提高查找效率。构造哈希函数时,一般应使关键字的所有组成部分都能起作用。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Prim算法从扩展顶点开始,每次总是“贪心的”选择与当前顶点集合中距离域短的顶点,而Kruscal算法从扩展边开始,每次总是“贪心的”选择剩余的边中最小权重的边,因此两个算法都是基于贪心策略进行的。 Prim算法的时间复杂度为0(n2),其中n为图的顶点数,该算法的计算时间与图中的边数无关,因此该算法适合于求边稠密的图的最小生成树:Kruscal算法的时间复杂度为O(mlgm),其中m为图的边数,该算法的计算时间与图中的顶点数无关,因此该算法适合于求边稀疏的图的最小生成树。当图稠密时,用Prim算法效率更高。但若事先没有关于图的拓扑特征信息时,无法判断两者的优劣。由于一个图的最小生成树可能有多棵,因此不能保证用这两种算法得到的是同一棵最小生成树。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
字符在计算机中是用二进制表示的,每个字符用不同的二进制编码来表示。码的长度影响存储空间和传输效率。 Huffman编码是一种最优的不定长编码方法,可以有效的压缩数据。要使用Huffman编码,除了知道文件中出现的字符之外,还需要知道每个宇符出现的频率。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
排序是一类最基本的操作,因此要求考生熟悉一些典型的排序算法,包括其算法思想、时空复杂度以及应用场合。若数据基本有序,插入排序应该是最佳选择,输入数据是否有序对归并和计数排序算法并没有影响。对传统的快速排序算法,输入数据有序反而使其效率最低。若关键字取值范围较小,则计数排序是最佳选择,因为在该情况下,该算法的时间复杂度为线性时间。       
 
 

 

面向对象技术

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象开发方法有Booch方法、Coad方法和OMT方法。Jackson方法是一种面向数据结构的开发方法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
采用面向对象的软件开发,通常有面向对象分析、面向对象设计、面向对象实现。 面向对象分析是为了获得对应用问题的理解,其主要任务是抽取和整理用户需求并建立问题域精确模型。面向对象设计是采用协作的对象、对象的属性和方法说明软件解决方案的一种方式,强调的是定义软件对象和这些软件对象如何协作来满足需求,延续了面向对象分析。面向对象实现主要强调釆用面向对象程序设计语言实现系统。面向对象测试是根据规范说明来验证系统设计的正确性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
XML (可扩展标记语言)是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 Python是一种面向对象、解释型计算机程序设计语言。 Prolog是逻辑型程序设计语言。 C++为面向对象的编译型语言,而非解释型语言。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
HTML用于处理静态网页;LISP一种基于λ演算的函数式编程语言。PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网。C++是一个接近系统底层的综合的,支持面向对象和范编程的程序设计语言,适用于开发要求很高效率的程序,例如大型游戏、大型企业应用、系统应用等。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在机器层面上,所有的数据都是二进制形式的。应用领域中的数据可以有不同的形式、意义和运算,程序中的数据已经进行了抽象,不同类型的数据需要不同大小的存储空间,因此为程序中的数据规定类型后,可以更合理地安排存储空间。不同类型的数据其取值方式和运算也不同,引入类型信息后,在对源程序进行编译时就可以对参与表达式求值的数据对象可以进行合法性检查。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
进行面向对象系统设计时,软件实体(类、模块、函数等)应该是可以扩展但不可修改的,这属于开放封闭设计原则。面向对象分析主要强调理解问题是什么,不考虑问题的解决方案,面向对象设计侧重问题的解决方案,并且需要考虑实现细节问题。面向对象中,类是对象的模板,描述了一组对象共有的 成员属性和方法。类是一组对象的抽象描述,通过类可以产生一个或多个对象,这些对象具有相同的属性和方法。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象技术中,继承是父类和子类之间共享数据和方法的机制。继承是类之间的一种关系,在定义和实现一个的时候,可以在一个已经存在的类的基础上进行。 这是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。可以存在多重继承的概念,但不同的程序设计语言可以有自己的规定。多重继承是编程语言中的概念,多重继承指的是一个类可以继承另外一个类,而另外一个类又可以继承别的类,比如A类继承B类,而A类又可以继承C类,这就是多重继承。多重继承可能造成混淆的情况,出现二义性的成员。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
开-闭原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design,OOD)的基石。开-闭原则是指一个软件实体应当对扩展开放,对修改关闭,即在设计 一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。满足开-闭原则的系统可以通过扩展己有的软件系统,提供新的能力和行为,以满足对软件的新需求,使软件系统有一定的适应性和灵活性;因为已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性;满足开-闭原则的系统具备更好的可复用性与可维护性。 在面向对象编程中,通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,从而满足“对修改关闭”的要求;而从抽象类导出的具体类可以改变系统的行为, 从而满足对扩展开放。 里氏代换原则(Liskov Substitution Principle,LSP)是指一个软件实体如果使用的是—个基类的话,那么一定适用于其子类,而且软件系统觉察不出基类对象和子类对象的区别,也就是说,在软件系统中把基类都替换成它的子类,程序的行为没有变化。但需要注意的是,里氏代换原则中仅仅指出了用子类的对象去代替基类的对象,而反过来的代换则是不成立的。例如,如果一个软件模块中使用的是一个子类对象,那么使用父类 对象去代换子类对象则可能产生错误。用一句简单的话概括:任何基类对象可以出现的地方,子类对象一定可以代替基类对象。 依赖倒转原则(Dependence Inversion Principle,DIP)就是要依赖于抽象,而不依赖于实现,或者说要针对接口编程,不要针对实现编程。系统中进行设计和实现的时候应 当使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型说明,以及数据 类型的转换等,而不要用具体类进行上述操作。要保证做到这一点,一个具体类应当只 实现接口和抽象类中声明过的方法,而不要给出多余的方法。 传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块,抽象层次依赖于具体层次。依赖倒转原则就是把这个不良的依赖关系倒转过来。面向对象设计 的重要原则是创建抽象层次,并且从该抽象层次导出具体层次,具体层次给出不同的实现。继承关系就是一种从抽象化到具体化的导出。抽象层包含的应该是应用系统的业务 逻辑和宏观的、对整个系统来说重要的战略性决定,而具体层次含有的是一些次要的与 实现有关的算法和逻辑,以及战术性的决定,带有一定的偶然性选择。从复用的角度来说,高层抽象的模块是应当复用的,而且是复用的重点,因为它含有一个应用系统最重 要的宏观业务逻辑,是较为稳定的部分。而在传统的过程性设计中,复用则侧重于具体层次模块的复用。 使用依赖倒转原则时建议不依赖于具体类,即程序中所有的依赖关系都应该终止于抽象类或者接口。尽量做到:任何变量都不应该持有一个指向具体类的指针或者引用; 任何类都不应该从具体类派生;任何方法都不应该覆写它的任何基类中的己经实现的方法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象分析的目的是为了获得对应用问题的理解,确定系统的功能、性能要求。面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作和定义对象的内部信息。而分析阶段最重要的是理解问题域的概念,其结果将影响整个工作。经验表明,从应用定义域概念标识对象是非常合理的。因此,面向对象分析的第一步就是确定问题域。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
采用面向对象开发方法时,对象是系统运行时基本实体。它既包括数据(属性), 也包括作用于数据的操作(行为)。一个对象通常可由对象名、属性和操作三部分组成。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象技术中,包用于将关系紧密的模型元素组织在一起,提供一个命名空间, 以提供访问控制。用例之间有继承、包含和扩展关系。类是在对象之上的抽象,对象是类的具体化,对定义好的类的属性的不同赋值就可以得到该类的对象实例。组合关系表示整体与其部分之间的一种关系。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象技术中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。一个对象把属性和行为封装为一个整体,与其他对象之间有清晰的边界,有良好定义的行为和可扩展性。对象位置和数量,由使用其的对象或系统确定。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象技术中,不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态(polymorphism)。在使用多态的时候,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。这样,同一消息就可以调用不同的方法。多态有参数多态、包含多态、过载多态和强制多态四类。参数多态是应用比较广泛的多态,被称为最纯的多态,包含多态在许多语言中都存在,最常见的例子就是子类型化,即一个类型是另一个类型的子类型。过载多态是同一个名字在不同的上下文中所代表的含义不同。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
定义领域模型是面向对象分析的关键步骤之一。领域模型是从按对象分类的角度来创建对象领域的描述,包括定义概念、属性和重要的关联,其结果用一组显示领域概念和对象的图形一一类图来组织,图中还包括多重性、关联关系、泛化/特化关系以及聚合关系等。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
泛化是一个类与它的一个或多个细化类之间的关系,表达一般与特殊的关系。关联是类与类之间的一种结构关系。聚集是一种关系,其中一个较大的整体类包含一个或多个较小的部分类;相反地,一个较小的部分类是一个较大的整体类的一部分。组合是一种聚合关系,其中整体负责其部分的创建和销毁,如果整体不存在了,部分也将不存在。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在进行类设计时,有些类之间存在一般和特殊关系,即一些类是某个类的特殊情况,某个类是一些类的一般情况,这就是继承关系。继承是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类(一般情况)的基础上来进行,把这个己经存在的类所定义的内容作为自己的内容,并加入若干新的内容,即子类比父类更加具体化。交通工具是泛指各类交通工具,而汽车、飞机和轮船分别都是具体的交通工具类,且具有自己的特性。因此交通工具是汽车、飞机和轮船类的一般情况,分别与汽车、轮船和飞机存在一般与特殊的关系。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象的4个核心概念是对象、类、继承和消息传递。其中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。所以,一个对象把属性和行为封装为一个整体。类定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。在进行类设计时,有些类之间存在一般和特殊关系,即一些类是某个类的特殊情况,某个类是一些类的一般情况,这就是继承关系。 消息是对象之间进行通信的一种构造,包含要求接收对象去执行某些活动的信息。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象系统中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。所以,一个对象把属性和行为封装为一个整体。封装是一种信息隐蔽技术,它的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。从程序设计者来看,对象是一个程序模块;从用户来看,对象为他们提供了所希望的行为。在对象内的操作通常叫做方法。一个对象通常可由对象名、属性和方法三部分组成。 一个类定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性,这些对象共享这些行为和属性。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
继承是父类和子类之间共享数据和方法的机制。覆盖是子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象系统中,对象是基本的运行时实体,它既包括数据(属性),也包括作用于数据的操作(行为),访问对象的这些操作也称为接口。一组大体上相似的对象定义为一个类。一个类所包含的方法和数据描述一组对象的共同行为和属性,这些对象共享这些行为和属性。有些类之间存在一般和特殊关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入新的内容,这种机制就是父类和子类之间共享数据和方法的机制,即继承。在子类定义时,可以继承它的父类(或祖先类)中的属性和方法,也可以重新定义父类中已经定义的方法,其方法可以对父类中方法进行覆盖,即在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现。在继承的支持下,不同对象在收到同一消息是可以产生不同的结果,这是由于对通用消息的实现细节由接收对象自行决定的缘故,这就是多态。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象方法中,对象是基本的运行时实体,它既包括数据(属性),也包括作用于数据的操作(行为),即一个对象把属性和行为封装为一个整体。这一封装使得对象的使用者和生产者分离,对象的使用者需要使用对象中的属性和方法时,需要通过对象来进行。封装是面向对象的特征之一。对象中的属性和方法的可访问性由访问权限修饰关键字来指定,C++和Java均支持private、protected和public关键字,分别说明类中属性或行为是私有的、保护的还是公有的。其中private表示对内可见,只有类内部所定义的方法才可以访问;protected对外不可见,对继承子类可见,在使用继承时具有继承关系的子类可以访问;public对外对内均可见,所有类使用者均可以访问。在Java中,缺省的访问权限指定默认访问权限是不采用任何访问权限修饰关键字,指定在同一个package中或子类中访问的成员。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
重载,简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。在面向对象技术中,一个类可以具有多个同名而参数类型列表不同的方法,每个方法实现自己的特定行为,这种机制称为方法重载(Overloading)。对象协作过程中,对象给对象进行消息传递,通常通过方法调用进行。在继承关系中,子类重新定义父类中已经定义的方法,称为方法重置或覆盖(Overriding)。             
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
事件触发一个没有特定监护条件的迁移,对象不一定离开当前状态       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
实体类主要负责数据和业务逻辑;边界类负责和用户进行交互,即用户界面;控制类则负责实体类和界面类的交互。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
封装的作用是把属性和服务结合成一个独立的系统单元,并隐藏对象的内部细节;而继承则使得子类可以自动拥有父类的全部属性和服务;消息则是对象发出的服务请求;多态是指面向对象中由重载或过载机制实现的结果。封装是一种信息隐藏技术,其目的是使对象(组件)的使用者和生产者分离,也就是使其他开发人员无需了解所要使用的软件组件内部的工作机制,只需知道如何使用组件,即组件提供的功能及其接口。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态(polymorphism)。在使用多态的时候,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。这样,同一消息就可以调用不同的方法。 绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设 计语言中,绑定是在编译时进行的,叫做静态绑定。动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。 动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接, 即动态绑定。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
开-闭原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design,OOD)的基石。开-闭原则是指一个软件实体应当对扩展开放,对修改关闭,即在设计 一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。满足开-闭原则的系统可以通过扩展己有的软件系统,提供新的能力和行为,以满足对软件的新需求,使软件系统有一定的适应性和灵活性;因为已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性;满足开-闭原则的系统具备更好的可复用性与可维护性。 在面向对象编程中,通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,从而满足“对修改关闭”的要求;而从抽象类导出的具体类可以改变系统的行为, 从而满足对扩展开放。 里氏代换原则(Liskov Substitution Principle,LSP)是指一个软件实体如果使用的是—个基类的话,那么一定适用于其子类,而且软件系统觉察不出基类对象和子类对象的区别,也就是说,在软件系统中把基类都替换成它的子类,程序的行为没有变化。但需要注意的是,里氏代换原则中仅仅指出了用子类的对象去代替基类的对象,而反过来的代换则是不成立的。例如,如果一个软件模块中使用的是一个子类对象,那么使用父类 对象去代换子类对象则可能产生错误。用一句简单的话概括:任何基类对象可以出现的地方,子类对象一定可以代替基类对象。 依赖倒转原则(Dependence Inversion Principle,DIP)就是要依赖于抽象,而不依赖于实现,或者说要针对接口编程,不要针对实现编程。系统中进行设计和实现的时候应 当使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型说明,以及数据 类型的转换等,而不要用具体类进行上述操作。要保证做到这一点,一个具体类应当只 实现接口和抽象类中声明过的方法,而不要给出多余的方法。 传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块,抽象层次依赖于具体层次。依赖倒转原则就是把这个不良的依赖关系倒转过来。面向对象设计 的重要原则是创建抽象层次,并且从该抽象层次导出具体层次,具体层次给出不同的实现。继承关系就是一种从抽象化到具体化的导出。抽象层包含的应该是应用系统的业务 逻辑和宏观的、对整个系统来说重要的战略性决定,而具体层次含有的是一些次要的与 实现有关的算法和逻辑,以及战术性的决定,带有一定的偶然性选择。从复用的角度来说,高层抽象的模块是应当复用的,而且是复用的重点,因为它含有一个应用系统最重 要的宏观业务逻辑,是较为稳定的部分。而在传统的过程性设计中,复用则侧重于具体层次模块的复用。 使用依赖倒转原则时建议不依赖于具体类,即程序中所有的依赖关系都应该终止于抽象类或者接口。尽量做到:任何变量都不应该持有一个指向具体类的指针或者引用; 任何类都不应该从具体类派生;任何方法都不应该覆写它的任何基类中的己经实现的方法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象开发方法中,静态成员的含义是所修饰的成员是属于类的,而不是属于某对象的。静态数据成员对该类只有一份,该类的所有对象共享静态数据成员,可被该类的所有方法访问,其值可以修改,但是不论是通过对象还是类对静态数据成员值的修改, 都会反应到整个类。类的静态方法只能访问该类的静态数据成员。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象技术中,将一组大体上相似的对象定义为一个类。把一组对象的共同特征加以抽象并存储在一个类中,是面向对象技术中的一个重要特点。一个所包含的方法和数据描述一组对象的共同行为和属性。在类定义时,属性声明private的目的是实现数据隐藏,以免意外更改。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML活动图用于构建系统的活动。建模用例执行过程中对象如何通过消息相互交互,将系统作为一个整体或者几个子系统进行考虑。对象在运行时可能会存在两个或多个并发运行的控制流,为了对并发控制流进行建模,UML中引入同步的概念,用同步棒——黑色粗线条表示并发分支与汇合。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在采用面向对象技术开发系统时,主要步骤有面向对象分析、面向对象设计、面向对象程序设计和面向对象测试。面向对象分析主要包括:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。面向对象设计是设计分析模型和实现相应源代码。面向对象程序设计选择合适的面向对象程序设计语言,将程序组织为相互协作的对象集合,每个对象表示某个类的实例,类通过继承等关系进行组织。 面向对象测试是尽可能早的开始进行系统测试,以发现系统中可能存在的错误并进行修复,进而保证系统质量。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
继承是父类和子类之间共享数据和方法的机制。覆盖是子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
多态的实现受到继承的支持,利用类的继承的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次。一个对象发送通用消息请求服务时,要根据接收对象的具体情况将求的操作与实现的方法进行连接,即动态绑定,以实现在这些低层次上生成的对传给用消息以不同的响应。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对象的状态包括这个对象的所有属性(通常是静态的)以及每个属性当前的值(通常是动态的);为了将一个对象与其它所有对象区分开来,我们通常会给它起一个“标识”;行为是对象根据它的状态改变和消息传递所采取的行动和所作出的反应;对象的行为代表了其外部可见的活动;操作代表了一个类提供给它的对象的一种服务。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
参数多态:应用广泛、最纯的多态。 包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。 强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。 过载多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Composition组成关系,即组合关系,指的是整体与部分的关系,并且整体与部分的生命周期并不相同。本题中“汽车和座位”、“汽车和车窗”、“汽车和发动机”选项中,将汽车作为一个系统,当汽车报废后,座位、车窗、发动机都可以再次利用,而音乐系统不可以。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
通常是用一组视图反映系统的各个方面,以完整地描述系统,每个视图代表系统描述中的一个抽象,显示系统中的一个特定的方面。UML2.0中提供了多种图形,从静态和动态两个方面表现系统视图。 类图展现了一组对象、接口、协作和它们之间的关系。对象图展现了一组对象以及其之间的关系,描述了在类图中所建立的事物的实例的静态快照。序列图(sequence diagram)是场景(scenario)的图形化表示,描述了以时间顺序组织的对象之间的交互活动。通信图和序列图同构,强调收发消息的对象的结构组织。状态图展现了一个状态机,由状态、转换、事件和活动组成, 它关注系统的动态视图,强调对象行为的事件顺序。活动图是一种特殊的状态图,展现了在系统内从一个活动到另一个活动的流程,它专注于系统的动态视图。序列图、通信图、交互图和定时图均被称为交互图,它们用于对系统的动态方面进行建模。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML序列图(Sequence Diagram)以二维图的形式显示对象之间交互的图,纵轴自上而下表示时间,横轴表示要交互的对象,主要体现对象间消息传递的时间顺序,强调参与交互的对象及其间消息交互的时序。序列图中包括的建模元素主要有:活动者(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)和消息(Message) 等。其中对象名标有下划线;生命线表示为虚线,沿竖线向下延伸;消息在序列图中标记为箭头;控制焦点由薄矩形表示。 消息是从一个对象的生命线到了一个对象生命线的箭头,用从上而下的时间顺序来安排。一般分为同步消息(→),异步消息()和返回消息()。UML2.0中提供了多种图形,序列图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。其中消息定义了交互中生命线之间的特定交互,有同步消息、异步消息和返回消息三类。同步消息指进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息;而异步消息的调用者发出消息后继续执行,不引起调用者阻塞, 也不等待返回消息。消息由名称进行标识,还描述出消息的发出者和接收者。异步消息由空心箭头表示,如上图中3所示,同步消息用实心三角箭头表示。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象技术中,继承关系是一种模仿现实世界中继承关系的一种类之间的关系,是超类(父类)和子类之间共享数据和方法的机制。父类定义公共的属性和操作,一个父类可以有多个子类,即多个特例。子类可以继承其父类或祖先类中的属性和操作作为自己的内容而不必自己定义,也可以覆盖这些操作,并加入新的内容。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。绑定有在编译时进行的,即静态绑定,有在运行时进行的,即动态绑定。不同的对象收到同一消息可以进行不同的响应,产生完全不同的结果,用户可以发送一个通用的消息,而实现细节则由接收对象自行决 定,使得同一个消息就可以调用不同的方法,即一个对象具有多种形态,称为多态。不同类的对象通过消息相互通信。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML用例图展现了一组用例、参与者(Actor)以及它们之间的关系。用于对系统的静态用例视图进行建模。这个视图主要支持以下系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。用例图说明参与者及其扮演的角色,可以是人、硬件或者其他系统可以扮演的角色,而非个人用户。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
采用面向对象技术进行软件开发时,需要进行面向对象分析(OOA)、面向对象设计(OOD)、面向对象实现和面向对象测试几个阶段。分析阶段的目的是为了获得对应用问题的理解,确定系统的功能、性能要求,在此阶段主要关注系统的行为,明确系统需要提供什么服务。在设计阶段,采用面向对象技术将OOA所创建的分析模型转化为设计模型,其目标是定义系统构造蓝图。在实现阶段(面向对象程序设计),系统实现人员选用一种面向对象程序设计语言,采用对象、类及其相关概念进行程序设计,即实现系统。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
类可以分为三种:实体类、接口类(边界类)和控制类。实体类的对象表示现实世界中真实的实体,如人、物等。接口类(边界类)的对象为用户提供一种与系统合作交互的方式,分为人和系统两大类,其中人的接口可以是显示屏、窗口、Web窗体、对话框、菜单、列表框、其他显示控制、条形码、二维码或者用户与系统交互的其他方法。系统接口涉及到把数据发送到其他系统,或者从其他系统接收数据。控制类的对象用来控制活动流,充当协调者。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
单一职责原则:设计目的单一的类; 开放-封闭原则:对扩展开放,对修改封闭; 李氏(Liskov)替换原则:子类可以替换父类; 接口隔离原则:使用多个专门的接口比使用单一的总接口要好。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
命令(Command)模式通过将请求封装为一个对象,可将不同的请求对客户进行参数化。责任链(Chain of Responsibility)模式将多个对象的请求连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止,避免请求的发送者和接收者之间的耦合关系。观察者(Observer)模式定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 在上述观察者模式的类图中,Subject (目标)知道其观察者,可以有任意多个观察者观察同一个目标,提供注册和删除观察者对象的接口。Observer (观察者)为那些在目标发生改变时需获得通知的对象定义一个更新接口。ConcreteSubject (具体目标)将有关状态存入各ConcreteObserver对象,当它的状态发生改变时,向它的各个观察者发出通知。ConcreteObserver (具体观察者)维护一个指向ConcreteSubject对象的引用,存储有关状态,实现Observer的更新接口以使自身状态与目标的状态保持一致。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML2.0中提供了多种图形。组件图(component diagram)展现了一组组件之间的组织和依赖,专注于系统的静态实现视图,与类图相关,通常把组件映射为一个或多个类、接口或协作。部署图(deployment diagram)展现了运行处理节点以及其中构件的配置。部署图给出了体系结构的静态实施视图。它与构件图相关,通常一个节点包含一个或多个构件。类图(classdiagram)展现了一组对象、接口、协作和它们之间的关系,在开发软件系统时,类图用于对系统的静态设计视图建模。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML是面向对象软件的标准化建模语言,由三个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制。UML的词汇表包含三种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。其中关系包括4种:依赖、关联、泛化和实现。 依赖(Dependency)是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。关联(Association)是一种结构关系,它描述了一组链,链是对象之间的连接。泛化(Generalization)是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象,用这种方法,子元素共享了父元素的结构和行为。实现(Realization)是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
用例图(use case diagram)展现了一组用例、参与者(Actor)以及它们之间的关系。用例图通常包括用例、参与者,以及用例之间的扩展关系(<<extend>>)和包含关系(<<include>>),参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。
 
 

在关联上可以标注重复度(multiplicity)和角色(role)。两个类之间可以有多个关联,但这些关联需要由不同角色进行标识。


状态图(state diagram)展现了一个状态机,用于描述一个对象在其生存期间的动态行为,表现为4个对象所经历的状态序列,它由状态、转换、事件和活动组成。状态图关注系统的动态视图,它对于接口、类和协作的行为建模尤为重要强调对象行为的事件顺序。状态图通常包括简单状态和组合状态、转换(事件和动作)。 可以用状态图对系统的动态方面建模。这些动态方面可以包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为,这些对象包括类(各主动类)、接口、构件和节点。 当对象处于某个状态时,这个状态被称为激活状态(active state)。任何从激活状态出发的转换所标识的事件被检测到发生时,进行转换,而从当前状态出发的事件如果没有标注所检测到的事件名称,就忽略该事件,不激发任何转换,当前状态仍然是激活状态。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在面向对象分析过程中,选择名词短语来识别对象,动词短语识别对象的操作。       
 
 

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。 认定对象是指:在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题定义域实体的良好开始。通过实 体间的关系寻找对象常常没有问题,而困难在于寻找(选择)系统关心的实质性对象。实质性对象是系统稳定性的基础。例如在银行应用系统中,实质性对象应包含客户账务、清算等,而门卫值班表不是实质性对象,甚至可不包含在该系统中。 组织对象含义是:分析对象间的关系,将相关对象抽象成类,其目的是为了简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一个对象的一部分来考虡;如房子由门和窗构成,门和窗是房子类的子类。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程 是一种迭代表征过程。 描述对象间的相互作用是:描述出各对象在应用系统中的关系。如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。 实现对象及其相互关系应该归入到系统的实现阶段,不属于分析阶段的任务。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
事物:模型中的基本成员。UML中包括结构事物、行为事物、分组事物和注释事物。①结构事物:模型中静态部分。[类Class]+[接口Interface]+[协作Collaboration]+[用例UseCase]+[活动类]+[组件Component]+[结点Node]②行为事物:模型中的动态部分。[交互]+[状态机]③分组事物:可以把分组事物看成是一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包(Package)。结构事物、动作事物、甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。④注释事物:注释事物是UML模型的解释部分。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
活动图(activity diagram)是一种特殊的状态图,它展现了在系统内从一个治动到另一个活动的流程,专注于系统的动态视图,它对于系统的功能建模特别重要,并强调对象间的控制流程。活动图一般包括活动状态和动作状态、转换和对象。活动图有开始、结束和一系列动作,可以表示分支、合并、分岔和汇合。分支描述基于布尔表达式的可选择路径,可有一个入流和2个或多个出流,在每个出流上放置一个布尔表达式条件(监护表达式),每个出流的条件不应该重叠,但需要覆盖所有可能性。合并描述当两条控制路径重新合并,不需要监护条件,只有一个出流。分岔描述把一个控制流分成两个或多个并发控制流,可以有一个进入转移和两个或多个离去转移,每个离去的转移表示一个独立的控制流,这些流可以并行的进行。汇合表示两个或多个并发控制流的同步,可以有两个或多个进入转移和一个离去转移,意味着每个进入流都等待,直到所有进入流都达到这个汇合处。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML类图刻画系统的静态方面,展现了一组对象、接口、协作及其之间的关系。类图中包括的主要内容有类、接口、协作以及依赖、泛化和关联关系,也可以包含注解和约束。其中: ①依赖是两个事务间的语义关系,其中一个事物发生变化时会影响了一个事务的语义。 ②泛化是一种特殊/一般关系,特殊元素(子元素)的对象可以替代一般元素(父元素)的对象,达到子元素可以共享父元素的结构和行为的目的。 ③关联是一种结构关系,描述一组对象之间连接的链,有单向关联、双向关联和自身关联(只涉及一个类)等。链上可以添加多重度、角色名称说明关联的对象数量以及行为。关联关系又有特殊类型,聚合和组合,用于描述部分和整体之间的结构关系,聚合暗示子类型独立于父类型而存在,比如班级和学生,班级删除之后,学生仍然可以存在。组合暗示没有父类型,子类型无法独立存在,比如题目所示Magazine和Page之间,Magazine被删除之后,Page 无法独立存在。 使用类图情况的方式通常有以下三种。 ①对系统的词汇进行建模。决定哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外,并详细描述这些抽象和它们的职责。 ②对简单协作进行建模。协作是一些共同工作的类、接口和其他元素的群体,提供一些合作行为强于所有这些因素的行为之和,要有相互协作的一组类来实现这些协作的语义。 ③对逻辑数据库模式建模。将模式看作是数据库的概念设计的蓝图,类图对这些数据库模式进行建模,有时也称为领域类图。 对象快照采用对象图进行建模。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
类图(Class Diadram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中,最常见的就是类图,它给出系统的静态设计视图。 组件图(Component Diagram)展现了一组组件之间的组织和依赖。 通信图(communication diagram)。通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。 部署图(Deploy Diagram)是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在采用UML进行面向对象系统建模时,会用UML中构造型(stereotype)名称为«interface»来表示接口这一概念,声明对象类所需要的服务,而服务具体如何执行,有实现它的具体类完成。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML类图刻画系统的静态方面,展现了一组对象、接口、协作及其之间的关系。类图中包括的主要内容有类、接口、协作以及依赖、泛化和关联关系,也可以包含注解和约束。其中: ①依赖是两个事务间的语义关系,其中一个事物发生变化时会影响了一个事务的语义。 ②泛化是一种特殊/一般关系,特殊元素(子元素)的对象可以替代一般元素(父元素)的对象,达到子元素可以共享父元素的结构和行为的目的。 ③关联是一种结构关系,描述一组对象之间连接的链,有单向关联、双向关联和自身关联(只涉及一个类)等。链上可以添加多重度、角色名称说明关联的对象数量以及行为。关联关系又有特殊类型,聚合和组合,用于描述部分和整体之间的结构关系,聚合暗示子类型独立于父类型而存在,比如班级和学生,班级删除之后,学生仍然可以存在。组合暗示没有父类型,子类型无法独立存在,比如题目所示Magazine和Page之间,Magazine被删除之后,Page 无法独立存在。 使用类图情况的方式通常有以下三种。 ①对系统的词汇进行建模。决定哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外,并详细描述这些抽象和它们的职责。 ②对简单协作进行建模。协作是一些共同工作的类、接口和其他元素的群体,提供一些合作行为强于所有这些因素的行为之和,要有相互协作的一组类来实现这些协作的语义。 ③对逻辑数据库模式建模。将模式看作是数据库的概念设计的蓝图,类图对这些数据库模式进行建模,有时也称为领域类图。 对象快照采用对象图进行建模。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
协作图(通信图)强调的是发送和接收消息的对象之间的组织结构。协作图的组成元素有:1. 对象:题干图形中的矩形元素即为对象,其中冒号前面部分为对象名,后面为类名,表示类的一个实例。2. 链接:用两个对象之间的单一线条表示,用来在通信图中关联对象,目的是让消息在不同系统对象之间传递。可以理解链接是公路,消息是车。3. 消息:通信图中对象之间通信的方式。协作图与顺序图相比顺序图(序列图)强调的消息时间顺序的交互图,描述类系统中类与类之间的交互,它将这些交互建模成消息互换,换句话说,顺序图描述了类与类之间之间相互交换以完成期望行为的消息。通信图描述的是对象和对象之间的关系,即一个类操作的实现。简而言之就是,对象和对象之间的调用关系,体现的是一种组织关系。该图明显表达的是对象与对象之间的关系。其中如果一个框中的名称中带有“:”号,说明这表示的是一个对象,“:”号前的部分是对象名,“:”号后面的部分是类名。而对象之间连线上面的箭头所标识的是对象之间通信的消息。              
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
顺序图(sequence diagram,序列图)。顺序图是一种交互图(interaction diagram),交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。 
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
装饰模式主要的目的是在无法生成子类的情况下给一个对象动态地增加新的职责; 享元设计模式是共享大量细粒度的对象;适配器设计模式则是将已有的接口转换为系统希望的接口形式。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
单例设计模式的目的就是保证一个类仅能够生成一个对象;组合设计模式则用于表示“部分-整体”的层次结构,并且对部分和整体的使用具有一致性;装饰设计模式则动态地给一个对象增加一些额外的职责,无须改变类的设计和实现。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
组合(Composition)和聚合(Aggregation)都是关联(Association)的特殊种类。 组合是一种很强的“拥有”关系,部分和整体的生命周期通常一样。组合成的新对象完全支配其组成部分,包括它们的创建和湮灭等。一个组合关系的成分对象是不能被另一个组合构成的对象共享的。聚合同样表示“拥有”关系,但其程度不如组合强,有时候“部分”对象可以在不同的“整体”对象之间共享,并且“部分”对象的生命周期也可以与“整体”对象不同,甚至“部分”对象可以脱离“整体”对象而单独存在。一般而言,组合是值的合成(Aggregation by Value),而聚合是引用的合成(Aggregation by Reference )。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
适配器(Adapter)模式是将类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Bridge (桥接)模式将对象的抽象和其实现分离,从而可以独立地改变它们。组合(Composite)模式描述了如何构造一个类层次式结构。装饰器(Decorator)模式的意图是动态地给一个对象添加一些额外职责。在需要给某个对象而不是整个类添加一些功能时使用。这种模式对增加功能比生成子类更加灵活。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML序列图(Sequence Diagram)以二维图的形式显示对象之间交互,纵轴自上而下表示时间,横轴表示要交互的对象,主要体现对象间消息传递的时间顺序,强调参与交互的对象及其间消息交互的时序。序列图中包括的建模元素主要有:活动者(Actor)、 对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)和消息(Message)等。 其中对象名标有下划线;生命线表示为虚线,沿竖线向下延伸;消息在序列图中标记为箭头;控制焦点由薄矩形表示。 消息是从一个对象的生命线到另一个对象生命线的箭头,用从上而下的时间顺序来安排。一般分为同步消息,异步消息和返回消息。本题图中balance为返回消息,其他为同步消息。src和tgt均为Account对象,所以Account 应该实现checkBalance()、withdraw()和deposit()方法,FundsTransactionManager 应该实现start()方法。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
解释器(Interpreter)设计模式是给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。策略(Strategy)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 以上四种设计模式都是行为设计模式。行为设计模式大多注重封装变化,当一个程序的某个方面的特征经常发生改变时,这些模式就定义一个封装这个方面的对象。这样,当该程序的其他部分依赖于这个方面时,它们都可以与此对象协作。这些模式通常定义一个抽象类来描述这些封装变化的对象,并且通常该模式依据这个对象来命名。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML类图刻画系统的静态方面,展现了一组对象、接口、协作及其之间的关系。类图中包括的主要内容有类、接口、协作以及依赖、泛化和关联关系,也可以包含注解和约束。其中: ①依赖是两个事务间的语义关系,其中一个事物发生变化时会影响了一个事务的语义。 ②泛化是一种特殊/一般关系,特殊元素(子元素)的对象可以替代一般元素(父元素)的对象,达到子元素可以共享父元素的结构和行为的目的。 ③关联是一种结构关系,描述一组对象之间连接的链,有单向关联、双向关联和自身关联(只涉及一个类)等。链上可以添加多重度、角色名称说明关联的对象数量以及行为。关联关系又有特殊类型,聚合和组合,用于描述部分和整体之间的结构关系,聚合暗示子类型独立于父类型而存在,比如班级和学生,班级删除之后,学生仍然可以存在。组合暗示没有父类型,子类型无法独立存在,比如题目所示Magazine和Page之间,Magazine被删除之后,Page 无法独立存在。 使用类图情况的方式通常有以下三种。 ①对系统的词汇进行建模。决定哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外,并详细描述这些抽象和它们的职责。 ②对简单协作进行建模。协作是一些共同工作的类、接口和其他元素的群体,提供一些合作行为强于所有这些因素的行为之和,要有相互协作的一组类来实现这些协作的语义。 ③对逻辑数据库模式建模。将模式看作是数据库的概念设计的蓝图,类图对这些数据库模式进行建模,有时也称为领域类图。 对象快照采用对象图进行建模。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Bridge (桥接)模式将对象的抽象和其实现分离,从而可以独立地改变它们,抽象类定义对该抽象的接口,如上图中Implementor,而具体的子类则用不同方式加以实现,如ConcretelmplementorA 和 ConcretelmplementorB。Composite (组合)模式是结构型对象模式的一个实例。它描述了如何构造一个类层次式结构,这一结构由两种类型的对象所对应的类构成,其中的组合对象使得用户可以组合基元对象以及其他的组合对象,从而形成任意复杂的结构。Facade (外观)模式则描述了如何用单个对象表示整个子系统。Singleton (单例)模式保证一个类只产生唯一的一个实例。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
适配器(Adapter)模式是将类的接口转换成客户希望的另外一个接口。代理(Proxy) 模式通过提供与对象相同的接口来控制对这个对象的访问,以使得在确实需要这个对象时才对它进行创建和初始化。组合(Composite)模式描述了如何构造一个类层次式结构。装饰器(Decorator)模式动态地给一个对象添加职责。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象而造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象;应用程序不依赖于对象标识。 抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。适用于:一个系统要独立于它的产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显小'它们的接口而不是实现时。如为图形用户界面(GUI)组件定义不同平台的并行类层次结构,适合采用此模式,其中抽象工厂声明一个创建抽象界面组件的操作接口,具体工厂实现创建产品对象的操作。 外观(Facack)模式为子系统中的一组接口提供一个-致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用facade模式定义子系统中每层的入口点。 装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加~些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
对于观察者模式是一个被观察者和多个观察者对象,与图示不符;桥接模式是结构型模式,存在部分与整体的联系;策略模式是对于不同算法的封装和切换,但是调用策略的对象只有一个,与本题不符。一个对象结构包含很多类对象(Item),而系统要求这些对象实施一些依赖于某具体类(Checkout)的操作时,可以使用访问者模式。
 
 

UML2.0提供多种视图,只有部署图描述系统的物理视图。部署图通常在实施阶段使用,以说明哪些组件或子系统部署于哪些结点。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
UML中提供了多种建模系统的图,体现系统的静态方面和动态方面。对象图(object diagram)展现了某一时刻一组对象以及它们之间的关系。对象图描述了在类图中所建立的事物的实例的静态快照,给出系统的静态设计视图或静态进程视图。序列图(sequence diagram)是场景(scenario)的图形化表示,描述了以时间顺序组织的对象之间的交互活动。通信图(communication diagram)强调收发消息的对象的结构组织。时序图(Timing Diagram)关注沿着线性时间轴、生命线内部和生命线之间的条件改变,描述对象状态随着时间改变的情况,很像示波器,适合分析周期和非周期性任务。交互概览图(Interaction Overview Diagram)是UML 2.0新增的交互图之一,它是活动图的变体,描述业务过程中的控制流概览,软件过程中的详细逻辑概览,以及将多个图进行连接,抽象掉了消息和生命线。序列图、通信图、交互概览图和时序图均被称为交互图。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。按照设计模式的目的可以分为创建型、结构型和行为型三大类。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。每种设计模式都有其适应性,描述适用于解决的问题场合。 创建型模式包括 Factory Method、Abstract Factory、Builder、Prototype 和 Singleton。 结构型模式包括 Adapter (类)、Adapter (对象)、Bridge、Composite、Decorator、Fafade、 Flyweight 和 Proxy。行为型模式包括 Interpreter、Template Method、Chain of Responsibility、 Command、Iterator、Mediator、Memento Observer State Strategy 和 Visitor。 Proxy模式的结构图如下所示:
 
 

Proxy模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:远程代理(Remote Proxy)为一个对象在不同地址空间提供据不代表;虚代理 (Virtual Proxy)根据需要创建开销很大的对象;保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权限的时候;智能指引(Smart Reference) 取代了简单的指针,它在访问对象时执行一些附加操作。 Builder模式的结构图如下所示:

Builder模式适用于当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时;当构造过程必须允许被构造的对象有不同的表示时。 Composite模式的结构图如下所示:

Composite模式适用于:想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 Observer模式的结构图如下所示:

Observer模式适用于:.当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这两者封装在独立地对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象.而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
组合(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于:想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 外观(Facade)模式为子系统中的一组接口提供一个一致的界面,Fapde模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Fapde模式定义子系统中每层的入口点。 享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象:应用程序不依赖于对象标识。 装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。 工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪-个类实例化,使一个类的实例化延迟到其子类。适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。 观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。 中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
按照设计模式的目的可以分为创建新模式、结构型模式以及行为型模式三大类。行为模式涉及算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。观察者模式、状态模式、策略模式和访问者模式均为行为设计模式。状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
Adapter模式是将类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Command模式将请求封装在对象中,这样它就可作为参数来传递,也可以被存储在历史列表里,或者以其他方式使用。Singleton (单例)模式保证一个类只产生唯一的一个实例。策略模式(Strategy)定义一系列的算法,把它们一个个封装起来,并使它们可以相互替换,这一模式使得算法可以独立于使用它的客户而变化。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
抽象工厂(AbstractFactory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。抽象工厂模式适用于一个系统要独立于它的产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当要强调一系列相关的产品对象的设计以便进行联合使用时:当提供一个产品类库,而只想显示它们的接口而不是实现时。 生成器(Builder)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式适用于当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时:当构造过程必须允许被构造的对象有不同的表示时。 工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。工厂方法模式适用于当一个类不知道它所必须创建的对象的类的时候:当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。 原型(Prototype)模式用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。原型模式适用于:当一个系统应该独立于它的产品创建、构成和表示时; 当要实例化的类是在运行时刻指定时,例如通过动态装载,为了避免创建一个与产品类层次平行的工厂类层次时;当一个类的实例只能有几个不同状态组合中的一种时,建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。       
 
 

 

 

标准化和知识产权

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
在我国,软件著作权采用“自动保护”原则。《计算机软件保护条例》第十四条规定:==“软件著作权自软件开发完成之日起产生。”==即软件著作权自软件开发完成之日起自动产生,不论整体还是局部,只要具备了软件的属性即产生软件著作权,既不要求履行任何形式的登记或注册手续,也无须在复制件上加注著作权标记,也不论其是否已经发表都依法享有软件著作权。 一般来讲,一个软件只有开发完成并固定下来才能享有软件著作权。如果一个软件—直处于开发状态中,其最终的形态并没有固定下来,则法律无法对其进行保护。因此,条例(法律)明确规定软件著作权自软件开发完成之日起产生。当然,现在的软件开发经常是一项系统工程,一个软件可能会有很多模块,而每一个模块能够独立完成某一项功能。自该模块开发完成后就产生了著作权。所以说,自该软件开发完成后就产生了著作权。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
专利法明确规定,智力活动的规则和方法不取得专利权。智力活动规则和方法是直接作用于人的思维,与产业生产中的技术活动不发生直接关系,并不是对自然规律的利用,不属于技术方案。通常,智力活动规则和方法是一些人为的规则,如管理规则、游戏规则、统计方法、分类方法和计算方法等。 算法被认为是一种数学公式,反映的是自然法则和逻辑思维过程,属于智力活动规 则和方法,不能受到专利法的保护。算法对于计算机软件而言极其重要,是计算机程序的基础,计算机软件总是离不开算法。因此,计算机软件本身属于智力活动规则和方法的范畴,不能够授予专利权。无论是源程序还是目标程序,它体现的是智力活动的规则和方法。因此仅以单纯的计算机程序为主题的发明创造是不能获得专利权的。 随着计算机技术的发展,不能授予专利权的智力活动规则和方法与能够授予专利权的方法之间的界线比较模糊了。例如,抽象出一种生产过程的数学模式,设计一种算法, 通过予以运行用于控制该生产过程就能够获得专利保护。也就是说,智力活动规则和方法本身不被授予专利权,但进行智力活动的机器设备、装置或者根据智力活动规则和方法而设计制造的仪器、装置等都可以获得专利保护。即软件和硬件或者工业产品结合并 表现为机器、装置或者为达到某种结果表现为方法时,软件可成为专利保护的对象。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
我国授予专利权采用先申请原则,即两个以上的申请人分别就同一项发明创造申请专利权的,专利权授予最先申请的人。如果两个以上申请人在同一日分别就同样的发明创造申请专利的,应当在收到专利行政管理部门的通知后自行协商确定申请人。如果协商不成.专利局将驳回所有申请人的申清,即所有申请人均不能取得专利权。所以,先申请人可以获得专利申请权。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
我国授予专利权采用先申请原则,即两个以上的申请人分别就同一项发明创造申请专利权的,专利权授予最先申请的人。如果两个以上申请人在同一日分别就同样的发明创造申请专利的,应当在收到专利行政管理部门的通知后自行协商确定申请人。如果协商不成.专利局将驳回所有申请人的申清,即所有申请人均不能取得专利权。所以,先申请人可以获得专利申请权。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
合理使用是指在特定的条件下,法律允许他人自由使用享有著作权的作品而不必征得著作权人的同意,也不必向著作权人支付报酬,但应当在指明著作权人姓名、作品名称,并且不侵犯著作权人依法享有的合法权利的情况下对著作权人的作品进行使用。 许可使用是指著作权人将自己的作品以一定的方式、在一定的地域和期限内许可他人使用,并由此获得经济利益。 强制许可使用是指在一定条件下,作品的使用者基于某种正当理由,需要使用他人已发表的作品,经申请由著作权行政管理部门授权即可使用该作品,无需征得著作权人同意,但应向其支付报酬。 法定许可是指除著作权人声明不得使用外,使用人在未经著作权人许可的情况下, 向著作权人支付报酬,指明著作权人姓名、作品名称,并且不侵犯著作权人依法享有的合法权利的情况下进行使用。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件著作权的客体是指计算机软件,即计算机程序及其有关文档。计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。文档是指用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法的文字资料和图表等,如程序说明、流程图、用户手册等。
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
一般职务作品的著作权由作者享有。所谓一般职务作品是指虽是为完成工作任务而为,但非经法人或其他组织主持,不代表其意志创作,也不由其承担责任的职务作品。 对于一般职务作品,法人或其他组织享有在其业务范围内优先使用的权利,期限为两年。 优先使用权是专有的,未经单位同意,作者不得许可第三人以与法人或其他组织使用的相同方式使用该作品。在作品完成两年内,如单位在其业务范围内不使用,作者可以要求单位同意由第三人以与法人或其他组织使用的相同方式使用,所获报酬,由作者与单位按约定的比例分配。 特殊的职务作品,除署名权以外,著作权的其他权利由法人或者其他组织(单位) 享有。所谓特殊职务作品是指著作权法第16条第2款规定的两种情况:一是主要利用法人或者其他组织的物质技术条件创作,并由法人或者其他组织承担责任的工程设计、产品设计图、计算机软件、地图等科学技术作品;二是法律、法规规定或合同约定著作权由单位享有的职务作品。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
显然,作品的买卖导致了所有权的转移,著作权法第十八条规定:“美术等作品原件所有权的转移,不视为作品著作权的转移,但美术作品原件的展览权由原件所有人享有。”
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
接受任务开发软件的著作权归属一般按以下两条标准确定:①在合同中明确约定的,按照合同约定实行;②未明确约定的,著作权属于实际完成软件开发的单位。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
依据著作权法第十一条、第十六条规定,职工为完成所在单位的工作任务而创作的作品属于职务作品。职务作品的著作权归属分为两种情况。 ①虽是为完成工作任务而为,但非经法人或其他组织主持,不代表其意志创作, 也不由其承担责任的职务作品,如教师编写的教材,著作权应由作者享有,但法人或者其他组织在其业务范围内有优先使用的权利,期限为2年。 ②由法人或者其他组织主持,代表法人或者其他组织意志创作,并由法人或者其他组织承担责任的职务作品,如工程设计、产品设计图纸及其说明、计算机软件、地图等职务作品,以及法律规定或合同约定著作权由法人或非法人单位单独享有的职务作品, 作者享有署名权,其他权利由法人或者其他组织享有。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
我国著作权法在第10条对权利内容作了较为详尽而具体的规定,指明著作权的内容包括人身权利和财产权利。著作人身权是指作者享有的与其作品有关的以人格利益为内容的权利,也称为精神权利,包括发表权、署名权、修改权和保护作品完整权。著作人身权与作者的身份紧密联系,永远属于作者本人,即使作者死亡,其他任何人不能再拥有它。所以,我国著作权法第20条规定“作者的署名权、修改权、保护作品完整权的保护期不受限制。” 发表权是属于人身权利,但发表权是一次性权利,即发表权行使一次后,不再享有发表权。发表权是指决定作品是否公之于众的权利,作品一经发表,就处于公知状态,对处于公知状态的作品,作者不再享有发表权,以后再次使用作品与发表权无关,而是行使作品的使用权。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
发明专利权的期限为二十年,实用新型专利权和外观设计专利权的期限为十年,均自申请日起计算。专利保护的起始日是从授权日开始,有下列情形之一的,专利权在期限届满前终止:①没有按照规定缴纳年费的;②专利权人以书面声明放弃其专利权的。还有—种情况就是专利期限到期,专利终止时,保护自然结束。 商标权保护的期限是指商标专用权受法律保护的有效期限。我国注册商标的有效期为十年,自核准注册之日起计算。注册商标有效期满可以续展;商标权的续展是指通过指定程序,延续原注册商标的有效期限,使商标注册人继续保持其注册商标的专用权。 在著作权的期限内,作品受著作权法保护;著作权期限届满,著作权丧失,作品进入公有领域。 法律上对商业秘密的保密期限没有限制,只要商业秘密的四个基本特征没有消失,权利人可以将商业秘密一直保持下去。权利人也可以根据实际状况,为商业秘密规定适当的期限。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
依照《计算机软件保护条例》的相关规定,计算机软件著作权的归属可以分为以下情况。 ①独立开发 这种开发是最普遍的情况。此时,软件著作权当然属于软件开发者,即实际组织开发、直接进行开发,并对开发完成的软件承担责任的法人或者其他组织;或者依照自己具有的条件独立完成软件开发,并对软件承担责任的自然人。 ②合作开发 由两个以上的自然人、法人或者其他组织合作开发的软件,一般是合作开发者签定书面合同约定软著作权归属。如果没有书面合同或者合同并未明确约定软件著作权的归属,合作开发的软件如果可以分割使用的,开发者对各自开发的部分可以单独享有著作权;但是行使著作权时,不得扩展到合作开发的软件整体的著作权。如果合作开发的软件不能分割使用,其著作权由各合作开发者共同享有,通过协商一致行使;不能协商一 致,又无正当理由的,任何一方不得阻止他方行使除转让权以外的其他权利,但是所提收益应当合理分配给所有合作开发。 ③委托开发 接受他人委托开发的软件,一般也是由委托人与受托人签订书面合同约定该软件著作权的归属;如无书面合同或者合同未作明确约定的,则著作权人由受托人享有。 ④国家机关下达任务开发 由国家机关下达任务开发的软件,一般是由国家机关与接受任务的法人或者其他组织依照项目任务书或者合同规定来确定著作权的归属与行使。这里需要注意的是,国家机关下达任务开发,接受任务的人不能是自然人,只能是法人或者其他组织。但如果项目任务书或者合同中未作明确规定的,软件著作权由接受任务的法人或者其他组织享有。 ⑤职务开发 自然人在法人或者其他组织中任职期间所开发的软件有下列情形之一的,该软件著作权由该法人或者其他组织享有。(一)针对本职工作中明确指定的开发目标所开的软件; (二)开发的软件是从事本职工作活动所预见的结果或者自然的结果;(三)主要使用了法人或者其他组织的资金、专用设备、未公开的专门信息等物质技术条件所开发并由法人或者其他组织承担责任的软件。但该法人或者其他组织可以对开发软件的自然人进行奖励。 ⑥继承和转让 软件著作权是可以继承的。软件寒作权是属于自然人的,该自然人死亡后,在软件著作权的保护期内,软件著作权法的雄承人可以依照继承法的有关规定,继承除署名权以外的其他软件著作权权利,包括人身权利和财产权利。软件著作权属于法人或者其他组织的,法人或者其他组织变更、终止其著作权在条例规定的保护期内由承受其权利义务的法人或者其他组织享有;没有承受其权利义务的法人或者其他组织的,由国家享有。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
软件许可使用一般有独占许可使用、独家许可使用和普通许可使用三种形式。独占许可使用,许可的是专有使用权,实施独占许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人自己不能使用该软件;独家许可使用,许可的是专有使用权,实施独家许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人自己可以使用该软件;普通许可使用,许可的是非专有使用权,实施普通许可使用后,软件著作权人可以将软件使用权授予第三方,软件著作权人自己可以使用该软件。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
1.—般职务作品 一般职务作品的著作权由作者享有。单位或其他组织享有在其业务范围内优先使用的权利,期限为2年。单位的优先使用权是专有的,未经单位同意,作者不得许可第三人以与单位使用的相同方式使用该作品。在作品完成两年内,如单位在其业务范围内不使用,作者可以要求单位同意由第三人以与单位使用的相同方式使用,所获报酬,由作者与单位按约定的比例分配。 2.特殊的职务作品 所谓特殊职务作品一是指是利用法人或者其他组织的物质技术条件创作,并由法人或者其他组织承担责任的工程设计、产品设计图纸、地图、计算机软件等职务作品;二是指法律、行政法规规定或者合同约定著作权由法人或者其他组织享有的职务作品。对于特殊职务作品,作者享有署名权,其他权利由法人或非法人单位享有。 本题涉及软件知识产权,王某为完成公司指派的工作任务所开发的软件是职务软件,职务软件包括软件文档和源程序。该软件文档属于特殊职务作品,依据著作权法,对于特殊职务作品,除署名权以外,著作权的其他权利由公司享有。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
因为该技术只在美国申请了专利,且在有效期内,而在中国和其他国家未提出申请,因此不受这些国家的专利权保护,因此在中国或其他国家销售,M不需要向L支付专利许可使用费。       
 
 

首先,法律确立了软件著作权人的权利进行绝对的保护原则,即软件复制品持有人不知道也没有合理理由应当知道该软件是侵权复制品的,也必须承担停止侵害的法律责任,只是在停止使用并销毁该侵权复制品将给复制品使用人造成重大损失的情况下,软件复制品使用人可继续使用,但前提是必须向软件著作权人支付合理费用。其次,如果软件复制品持有人能够证明自己确实不知道并且也没有合理理由应当知道该软件是侵权复制品的,软件复制品持有人除承担停止侵害外,不承担赔偿责任。 软件复制品持有人一旦知道了所使用的软件为侵权复制品时,应当履行停止使用、销毁该软件的义务。不履行该义务,软件著作权人可以诉请法院判决停止使用并销毁侵权软件。如果软件复制品持有人在知道所持有软件是非法复制品后继续使用给权利人造成损失的,应该承担赔偿责任。


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
当两个以上的申请人分别就同样的发明创造申请专利的,专利权授给最先申请的人。如果两个以上申请人在同一日分别就同样的发明创造申请专利的,应当在收到专利行政管理部门的通知后自行协商确定申请人。如果协商不成,专利局将驳回所有申请人的申请,即均不授予专利权。我国专利法规定:“两个以上的申请人分别就同样的发明创造申请专利的,专利权授予最先申请的人。”我国专利法实施细则规定:“同样的发明创造只能被授予一项专利。依照专利法第九条的规定,两个以上的申请人在同一日分别就同样的发明创造申请专利的,应当在收到国务院专利行政部门的通知后自行协商确定申请人。”       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
我国商标法第六条规定:“国家规定必须使用注册商标的商品,必须申请商标注册,未经核准注册的,不得在市场销售。” 目前根据我国法律法规的规定必须使用注册商标的是烟草类商品。       
 
 


 
 
 
xxxxxxxxxx
1
 
 
 
 
1
根据《著作权法》的规定,符合法定许可条件的都是“已发表作品”,由此推知,引用未发表作品,必须征得作者同意,因为这涉及到作者的发表权问题。合理使用是不必征得原作者的同意,不需要向他支付报酬,其使用的范围和具体方式,具体而言可以从以下几个方面理解: (1) 引用的目标地是为了介绍、评论某一作品或者说明某一问题。(2) 引用的比例必须适当。一般说来,引用不应当比评论、介绍或者说明还长。(3) 引用的作品必须是已经发表的作品。(4)引用他人的作品,应当指明作者的姓名,作品的名称,并且不得侵犯著作权人按照著作权法享有的其他权利。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
我国保护计算机软件著作权的两个基本法律文件是《中华人民共和国著作权法》和《计算机软件保护条例》。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
根据我国《著作权法》的规定,有三种类型的作品不受法律保护。 第一种是依法禁止出版、传播的作品。第二种是不适用于《著作权法》的作品。它们包括下列作品:1.法律、法规,国家的决议、决定、命令和其他具有立法、行政、司法性质的文件,极其官方正式译文;2.时事新闻;3.历法、通用数表、通用表格和公式。 国务院颁布的《计算机软件保护条例》属于法律法规,所以不受著作权法保护。       
 
 

 
 
 
xxxxxxxxxx
1
 
 
 
 
1
我国《著作权法》对著作权的保护期限作了如下规定:著作权中的署名权、修改权、保护作品完整权的保护期不受限制。       
 
 

专业英语

as work proceed 随着工作的进行

implement 实施

optomzied 优化

virtualized 虚拟化

subroutine 子函数

duplicated 被复制

consensus 共同意见

implement 实施

constructing 构造

outlinling概述

structure 结构

sequence 序列

cooperate 合作社

coordinate坐标

defacto 事实上

legal 合法的

advance 提前

life -cycle生命周期

moderately-sized 中等规模

collaboration 协作

tool工具

comparison 比较

explicitly 明确的

implicitly 含蓄的

alternative 可供替代的

synonym 代名词

engineer 工程师

fundamental 基本的

confront 面对

pile 一桩 堆

requiement 需求

make sense of理解

practical 实践的 熟练的

typically 通常 典型的

authenticate 证明是真实的

magnitude 巨大 广大

orders 次序

condition 状态 条件

expression 表现 ,表示 表达

collaborate 合作 协作

cooperate 合作 协作

define 定义 规定 使明确

memoranda 备忘录

standard 标准 规格

specification 规格 规范 明细单

proposing v. 提议;建议;打算;希冀;计划;求婚

estimate n. (对数量、成本等的)估计;估价;估计的成本 v. 估价;估算

stakeholders (某组织、工程、体系等的)参与人,参与方;有权益关系者;赌金保管人 stakeholder的复数

standardization 标准化;规范化;标准定型和改型计划;规格化

theoretical adj. 理论上的;理论上存在的;假设的

practical adj. 实际的;真实的;客观存在的;切实可行的;有用的;适用的 n. 实习课;实践课;实验考核

semantic adj. 语义的

syntactical 句法的;语法的;句法;依照句法的;一个句法

task

n.

(尤指艰巨或令人厌烦的)任务,工作;(尤指语言教学中旨在帮助达到某一学习目的的)活动

v.

交给某人(任务);派给某人(工作)

patron n. (艺术家的)赞助人,资助者;名义赞助人(支持慈善组织等的名人,名字常用于有关的广告宣传中);老主顾;顾客;常客

discipline

n.

训练;训导;纪律;风纪;训练方法;行为准则;符合准则的行为;自制力;遵守纪律

v.

惩罚;处罚;训练;训导;管教;自我控制;严格要求(自己)

insginificant 不显著的

crucial

adj. 至关重要的;关键性的

implied v. 含有…的意思;暗示;暗指;说明;表明;必然包含;使有必要 imply的过去分词和过去式

delivered

v. 递送;传送;交付;运载;发表;宣布;发布;履行诺言;不负所望;兑现 deliver的过去分词和过去式

architecture

n. 建筑学;建筑设计;建筑风格;体系结构;(总体、层次)结构

horizontally adv. 水平地;横地

vertically

adv 垂直地;直立地

inclined adj.

想(做某事);有…倾向;很可能;(温和地表达意见)倾向于同意(或相信、认为等)

v.

(使)倾向于,有…的趋势;点头(尤指以示同意、欢迎等);(使)倾斜

decreasing v.

(使大小、数量等)减少,减小,降低

distribute
v.

分发;分配;分销;使散开;使分布;分散

massive

adj. 巨大的;大而重的;结实的;非常严重的

scale

n. (尤指与其他事物相比较时的)规模,范围,程度;等级;级别;等级体系 v. 攀登;到达…顶点;去鳞;刮除牙石

emerged

v. (从隐蔽处或暗处)出现,浮现,露出;暴露;露出真相;被知晓;露头;显现;显露

emerged

v. (从隐蔽处或暗处)出现,浮现,露出;暴露;露出真相;被知晓;露头;显现;显露

architecture

n. 建筑学;建筑设计;建筑风格;体系结构;(总体、层次)结构

properties n. 所有物;财产;财物;不动产;房地产;房屋及院落;庄园

hardware

n. 硬件;(家庭及园艺用)工具,设备,五金制品;硬件设备;机器;车辆

implementer 实施者 执行人

rarely

adv. 罕有;很少;不常

lump

(通常为无定形的)块;肿块;隆起;笨重的人;懒汉;傻大个 v. 把…归并一起(或合起来考虑)

load

n. 负载;负荷;装载量;容纳量;承载量 v. (把大量…)装上,装入;承载;装载;大量给予(尤指得携带的东西)

release v. 释放;放出;放走;放开;松开;使自由移动(或飞翔、降落等);发泄;宣泄 n. 释放;获释;公开;发行;发布;新发行的东西;(尤指)新激光唱片,新电影

conventional adj. 依照惯例的;遵循习俗的;墨守成规的;普通平凡的;传统的;习惯的;非核的;常规的

capture v. 俘虏;俘获;捕获;用武力夺取;攻取;攻占;夺得;赢得;争得 n. (被)捕获;(被)俘获

capture

v. 俘虏;俘获;捕获;用武力夺取;攻取;攻占;夺得;赢得;争得 n. (被)捕获;(被)俘获

approaches

v. (在距离或时间上)靠近,接近;接洽;建议;要求;(在数额、水平或质量上)接近 n. (待人接物或思考问题的)方式,方法,态度;(距离和时间上的)靠近,接近;接洽;建议;要求

emphasis n. 强调;重视;重要性;(对某个词或短语的)强调,加重语气,重读

declarative adj. 陈述的声明的

grant v. (尤指正式地或法律上)同意,准予,允许;(勉强)承认,同意 n. (政府、机构的)拨款

seek v. 寻找;寻求;谋求;争取;(向人)请求

parallel adj. 平行的;极相似的;同时发生的;相应的;对应的;并行的 n. (尤指不同地点或时间的)极其相似的人(或情况、事件等);相似特征;相似特点;(地球或地图的)纬线,纬圈 v. 与…相似;与…同时发生;与…媲美;比得上 adv. 平行地,并列地

additive

n. (尤指食品的)添加剂,添加物

partial adj. 部分的;不完全的;热爱;钟爱;偏颇;偏袒

entire adj. 全部的;整个的;完全的

complete

adj. (用以强调)完全的,彻底的;全部的;完整的;整个的;包括,含有(额外部分或特征) v. 完成;结束;填写(表格);使完整;使完美

implementation

n. 执行,履行;实施,贯彻;生效;完成;工具;仪器;供给器具

requirement n. 所需的(或所要的)东西;必要条件;必备的条件

structure n. 结构;构造;结构体;(尤指)建筑物;精心组织;周密安排;体系 v. 使形成体系;系统安排;精心组织

specification

n. 规格;规范;明细单;说明书

completed v. 完成;结束;填写(表格);使完整;使完美

controlled

adj. 十分小心完成的;精心安排的;(受法律或规则)限制的,控制的,管制的;(受某团体或用某种方式)管理的,操纵的 v. 指挥;控制;掌管;支配;限制;限定;阻止蔓延(或恶化)

coupled

v. (把车辆或设备等)连接,结合;性交;交配 couple的过去分词和过去式

cohesion

n. 黏合;结合;凝聚性;内聚力

enterprise n. 公司;企业单位;事业单位;(尤指艰巨而重大的)规划,事业;企业发展;企业经营;企业活动

distribute v. 分发;分配;分销;使散开;使分布;分散

astronomy n. 天文学

resident n. 居民;住户;(旅馆的)住宿者,旅客,房客;(美国的)高级专科住院实习医生 adj. (在某地)居住的

computational

adj. 使用计算机的;与计算机有关的

strictly

adv. 严格地;(强调在一切情况都是如此)绝对地,无论如何;完全地;确切地

separate adj. 单独的;独立的;分开的;不同的;不相关的 v. (使)分开,分离;分割;划分;(使)分离,分散;隔开;阻隔

omitting

v. 删除;忽略;漏掉;遗漏;不做;未能做 omit的现在分词

tailored

adj. 订做的;合身的;特制的;专门的 v. 专门制作;订做

tailored

adj. 订做的;合身的;特制的;专门的 v. 专门制作;订做

suited

adj. 合适;适宜;适当;般配的;穿西装的;穿…套装的 v. 对(某人)方便;满足(某人)需要;合(某人)心意;相配;合身;适合;适宜;有利于

individual adj. 单独的;个别的;一个人的;供一人用的;独特的;与众不同的 n. 个人;与众不同的人;有个性的人;某种类型的人;(尤指)古怪的人

expectation

n. 预料;预期;期待;希望;盼望;期望;指望

dependently 依赖地

integratedly综合

hardware

n.

硬件;(家庭及园艺用)工具,设备,五金制品;硬件设备;机器;车辆

entire adj. 全部的;整个的;完全的

invaluable adj. 极有用的;极宝贵的

layer

n. 层;表层;层次;阶层 v. 把…分层堆放

encapsulate

v. 简述;概括;压缩

stakeholder

n. (某组织、工程、体系等的)参与人,参与方;有权益关系者;赌金保管人

coordinate v. 使协调;使相配合;使(身体各部分)动作协调;协同动作;(衣服、家具等)搭配,协调 n. 坐标;(颜色协调的)配套服装,套装

stabilized

v. (使)稳定,稳固

misapplied

v. 误用;滥用;挪用

manual

adj. 用手的;手工的;体力的;手动的;手控的;用手操作的 n. 使用手册;说明书;指南

deadline n. 最后期限;截止日期

exterior n. (尤指建筑物的)外部,外观,表面,外貌;(人的)外貌,外表 adj. 外面的;外部的;外表的

essential adj. 完全必要的;必不可少的;极其重要的;本质的;基本的;根本的 n. 必不可少的东西;必需品;要点;要素;实质

interoprate互操作

standard n. (品质的)标准,水平,规格,规范;正常的水平;应达到的标准;行为标准;道德水准 adj. 普通的;正常的;通常的;标准的;(符合)标准的;按一定规格制作的;权威性

surface n. 表面;表层;面;水面;地面;液面;(家具的)顶面,操作台 v. 升到水面;浮出水面;(隐藏或被掩盖一段时间后)露面,重新出现,显露,被披露;醒来;起床

pattern

n. 模式;方式;范例;典范;榜样;样板;图案;花样;式样 v. 构成图案(或花样);使形成,促成(某行为模式)

correctness

n. 正确性

feasibility

n. 可行性;可能性

modifiability

n. 可修改性;修饰(饰变)能力

traceability

n. 可追踪性;可描绘,可描写,可追溯

distribution n. 分配;分布;分发;分送;(商品)运销,经销,分销

network n. 网络;网状系统;关系网;人际网;相互关系(或配合)的系统;(互联)网络 v. 将…连接成网络;联播;建立工作关系

empirical

adj. 以实验(或经验)为依据的;经验主义的

foundation n. 地基;房基;基础;基本原理;根据;基金会

rarelyadv. 罕有;很少;不常

proclaimed

v. 宣布;宣告;声明;明确显示;成为标志;表明 proclaim的过去分词和过去式

periodically

adv. 定期;周期性;定期出版地

occassional 临时的 偶然的

infrequently

adv. 偶尔;稀少地,珍贵地

specification

n. 规格;规范;明细单;说明书

capture

v. 俘虏;俘获;捕获;用武力夺取;攻取;攻占;夺得;赢得;争得 n. (被)捕获;(被)俘获

 

posted @ 2021-04-22 18:49  老运维  阅读(423)  评论(0)    收藏  举报