2014北航软院991复试笔试和面试准备_第1页
2014北航软院991复试笔试和面试准备_第2页
2014北航软院991复试笔试和面试准备_第3页
2014北航软院991复试笔试和面试准备_第4页
2014北航软院991复试笔试和面试准备_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面试计算机网络1.什么是数字证书数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。2.木马和蠕虫的区别病毒“指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指

2、令或者程序代码”。病毒必须满足两个条件: 1、它必须能自行执行。它通常将自己的代码置于另一个程序的执行路径中。 2、它必须能自我复制。例如,它可能用受病毒感染的文件副本替换其他可执行文件。病毒既可以感染桌面计算机也可以感染网络服务器。蠕虫(worm)是病毒中的一种,但是它与普通病毒之间有着很大的区别。一般认为:蠕虫是一种通过网络传播的恶性病毒,它具有病毒的一些共性,如传播性、隐蔽性、破坏性等等,同时具有自己的一些特征,如不利用文件寄生(有的只存在于内存中),对网络造成拒绝服务,以及和黑客技术相结合,等等。普通病毒需要传播受感染的驻留文件来进行复制,而蠕虫不使用驻留文件即可在系统之间进行自我复制

3、, 普通病毒的传染能力主要是针对计算机内的文件系统而言,而蠕虫病毒的传染目标是互联网内的所有计算机。木马是病毒的一种,病毒是一种破坏性的程序。病毒破坏你的信息,而木马窃取你的信息。特洛伊木马与病毒的重大区别是特洛伊木马不具传染性,它并不能像病毒那样复制自身,也并不"刻意"地去感染其他文件,它主要通过将自身伪装起来,吸引用户下载执行。操作系统1、TCP三次握手的过程基于TCP协议传输数据之前,为确认连接正常,会通过三次握手来建立虚连接,连接建立完成后才能进行数据的传输。三次握手的过程如下:首先由发起端发送连接请求;当接受方收到连接请求后,如果同意建立连接会回复应答报文;然后发

4、送方收到此应答报文,会发送对此应答报文的确认信息。通过这种三次握手的过程来在数据发送的初期建立连接,保障数据的正常传输。2.库函数调用和系统调用的区别函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。你要确保弄懂“trap(自陷)”这个关键字的含义。系统调用是在操作系统内核发现一个“trap”或中断后进行的。 在所有的ANSI C编译器版本中,C库函数是相同的 各个操作系统的系统调用是不同的 它调用函数库中的一段程序(或函数) 它调用系统内核的服务 与用户程序相联系 是操作系统的一个入口点 在用户地址空间执行 在内核地址空间执行 它的运行时间属于“用户时间” 它的运行时间属于“

5、系统”时间 属于过程调用,调用开销较小 需要在用户空间和内核上下文环境间切换,开销较大 在C函数库libc中有大约300个函数 在UNIX中大约有90个系统调用 典型的C函数库调用:system fprintf malloc 典型的系统调用:chdir fork write brk; 库函数调用通常比行内展开的代码慢,因为它需要付出函数调用的开销。但系统调用比库函数调用还要慢很多,因为它需要把上下文环境切换到内核模式。3.工作集的定义和作用所谓工作集是指进程已映射的物理内存部分(即这些内存块全在物理内存中,并且 CPU 可以直接访问),还有一部分不在工作集中的虚拟内存则可能在转换列表中(CPU

6、 不能通过虚地址访问,需要 Windows 映射之后才能访问),还有一部分则在磁盘上的页面文件里。工作集在进程运行时会被 Windows 自动调整,频繁访问的页面(4KB 的块)会留在内存中,而不频繁访问的页面在内存紧张时会被从工作集中移出,暂时保存在内存中的“转换列表”中,或者进一步换出到页面文件中。当应用程序再次访问某一页面时,操作系统会将它重新加回工作集中。4. 进程与线程计算机的核心是CPU,它承担了所有的计算任务。单个CPU一次只能运行一个任务。进程代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。一个进程可以包括多个线程。进程在执行过程中拥有独

7、立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。"互斥锁"(Mutual exclusion,缩写 Mutex),防止多个线程同时读写某一块内存区域。某些内存区域,只能供给固定数目的线程使用。操作系统的设计,因此可以归结为三点:(1)以多进程形式,允许多个任务同时运行;(2)以多线程形式,允许单个任务分成不同的部分运行;(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。5.cpu最

8、小时钟周期时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期表示了SDRAM所能运行的最高频率。SDRAM全称为“Synchronous Dynamic random access memory”,在电脑系统上为同步内存的意思。理论上,SDRAM与CPU在同一个时钟周期里运行。时钟周期是计算机中最基本的、最小的时间单位。CPU工作的最小时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。6. 进程调度无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于

9、就绪队列中的某一个进程,以使之执行。从就绪的进程中选出最适合的一个来执行。1.等待态:等待某个事件的完成;2.就绪态:等待系统分配处理器以便运行;3.运行态:占有处理器正在运行。可能引起进程切换的中断原因有:时钟中断、设备I/O中断信号、系统调用等所谓批处理(batch processing )就是将作业按照它们的性质分组(或分批),然后再成组(或成批)地提交给计算机系统,由计算机自动完成后再输出结果,从而减少作业建立和结束过程中的时间浪费。根据在内存中允许存放的作业数,批处理系统又分为单道批处理系统和多道批处理系统。批处理系统(batch processing system)中,一个作业可以

10、长时间地占用cpu。而分时系统中,一个作业只能在一个时间片(Time Slice,一般取100ms)的时间内使用cpu。分时操作系统 (time-sharing system),“分时”的含义:分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源。软件工程1.什么是白盒测试?什么是黑盒测试?区别是什么?白盒测试也叫做alpha测试,是指程序设计员为了验证程序的逻辑过程而进行的测试,因知道内部原理而得名。黑盒测试也beta测试,是由客户(使用者)进行的测试,目的在于检验程序的功能,因不知道其内部结构而得名。代码可见不可见的区别:黑盒不管代码,只测试功能;白盒要判断程序代码逻辑结构

11、。2. 面向对象软件工程特点1与人类习惯思维方法一致2稳定性好3可重用性好4较易开发大型软件产品5可维护性好3. 需求分析所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。4. UML建模语言Unified Modeling Language (UML)又称统一建模语言或标准建模语言。它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分

12、析到规格,到构造和配置。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划-就像建筑工人多年来所使用的建筑设计图一样。5. 顺序图顺序图是将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。eg.一次学生的注册数据库1.什么是事务处理?事务处理(TRANSACTION)是由一个或多个SQL语句序列结合在一起所形成的一个逻辑处理单元。事务处理中的每个语句都是完成整个任务的一部分工

13、作,所有的语句组织在一起能够完成某一特定的任务。DBMS在对事务处理中的语句进行处理时,是按照下面的约定来进行的,这就是“事务处理中的所有语句被作为一个原子工作单位,所有的语句既可成功地被执行,也可以没有任何一个语句被执行”。2.DBA的作用数据库管理员(Database Administrator,简称DBA),是一个负责管理和维护数据库服务器的人。数据库管理员负责全面管理和控制数据库系统。3.数据库三级模式人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式

14、,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中"的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。4. 什么是数据模型数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立

15、在数据结构上。不同的数据结构具有不同的操作和约束。2)数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。1、概念数据模型(Conceptual Data Model):简称概念模型,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力

16、分析数据以及数据之间的联系等,与具体的数据管理系统(Database Management System,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。2、逻辑数据模型(Logical Data Model):简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。3、物理数据模型(Physical Data Model):简称物理模型,是面向计

17、算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作又系统自动完成,而设计者只设计索引、聚集等特殊结构。在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向对象模型及谓词模型。在逻辑数据类型中最常用的是层次模型、网状模型、关系模型。5. 事务处理 事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但

18、尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完成的事务。 6. 关系数据库的定义用二维表结构来表示实体及实体之间的联系的数据模型。将现实世界的实体以及实体间的各种联系均用关系来表示。从用户角度,关系模型中数据的逻辑结构是一张二维表。编译原理1. 句子和句型的定义以及区别句型句子的结构类型。句子设G是一个给定的文法,S是文法的开始符号,如果S x(其中xVT*),则称x是文法的一个句子。句型设G是一个给定的文法,S是文法的开始符号,如果S x(其中xV*),则称x是文法的一个句型。 V为属性的有穷集,Vt表示终结符集合,Vn表示非终结符集合,V表示文法符号集合(即既包含

19、终结符,也包含非终结符. S(start)也是一个非终结符,然后大写的为非终结符,小写的为终结符V是一个符号集合,假设V指的是三个符号a, b, c的集合,记为 V = a, b, c V* 读作“V的闭包”,它的数学定义是V自身的任意多次自身连接(乘法)运算的积,也是一个集合。也就是说,用V中的任意符号进行任意多次(包括0次)连接,得到的符号串,都是V*这个集合中的元素。0次连接的结果是不含任何符号的空串,记为 1次连接就是只有一个符号的符号串,比如,a,b, c2次连接是两个符号构成的符号串,比如,aa, ab, ac, ba, bb, bc,等等 .文法是编译原理的基础,是描述一门程序设

20、计语言和实现其编译器的方法.文法定义:乔姆斯基将所有文法都定义为一个四元组: G=(VN,VT,P,Z) VN:非终结符号集 VT:终结符号集 P:产生式或规则的集合 Z:开始符号(识别符号), ZVN 文法和语言分类:0型、1型、2型、3型 这几类文法的差别在于对产生式施加不同的限制。 C语言和数据结构1.什么是树?什么是图?树和图有什么区别?树和图都是非线性的数据结构。图相对于树来说,是更加抽象和复杂的。可以认为树是图的基础,树是一种更简单意义上的图。在树型结构中,每一个数据元素都可能和下一层中多个元素(即孩子结点)相关,但却只能与上一层中的一个元素(即双亲结点)相关。而在图形结构中,结点

21、之间的关系可以是任意的,图中任意两个数据之间都可能相关。2.完全二叉树和满二叉树的区别完全二叉树的定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。特点:叶子结点只可能在层次最大的两层上出现;对任一结点,若其右分支下子孙的最大层次为l,则其左分支下子孙的最大层次必为l 或l+1满二叉树:一棵深度为k,且有2的(k)次方1个节点的二叉树特点:每一层上的结点数都是最大结点数。3. 哪种二叉树数与存储结构有关线索二叉树。n个结点的二叉链表中含有n+1(2n-(n-1)=n+1)个空指针域。利用二叉链表中的空指针域,存放指向结点

22、在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。4.选择编程语言所依据的规则在选择编程语言时以下事情应当考虑:常规特性:性能、兼容性、操作 l 团队大小 l 代码多少 l 代码的寿命 l 应用领域 l 工具:选择语言考虑的最后一个问题是工具的支持。一个合适的编辑器对于你编程所起的作用不亚于语言本身的语法. 1.汇编是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语

23、言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。2.C适于快而小的程序,但不支持面向对象的编程。自从 C 发明了以后,它就取代了汇编语言在操作系统编程的领导地位。从性能上说,除了汇编语言, C 语言是最接近机器的语言。各种操作系统的编程接口的默认语言都是 C 语言。因此,用 C 语言编程,可以最大限度发挥操作系统的能力。同时,由于绝大部分的商品软件都是 C 或与 C 兼容的 C+ 实现的,都有 C 编程接口,可以说,没有 C 不能实现的功能。缺点是在企业级开发中,几乎无用武之地。3.C+完全支持面向对象,但是非常复杂。优点在于含有大量的库,如MFC,可直接调用window

24、s库函数干很多事情。C语言进化而来的,有强大的功能,举例吧: 软件: 微软的Office系列 Macromedia网页三剑客 - flash,dreamweaver,fireworks Adobe出的 超有名的作图软件 - PhotoShop 3D动画软件 - 3DMax 游戏: PC平台几乎所有的游戏 星际争霸、魔兽争霸、CS、帝国时代、跑跑卡丁车、传奇、魔兽世界. 那数不胜数了,自己数吧:) 以上均出自C+之手,原因是C+靠近计算机底层,编写出来的程序对系统资源依赖较小,功能强大,运行速度快,比如你的两个朋友与你分别玩 用 VB、Java、与C+编写的“跑跑卡丁车”,你玩C+那款游戏已经跑

25、玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊,所以这一系列的软件、游戏都会采用C+编写。 虽然C+很有优点,但是对于学习者来说应该是比较困难的一门语言。(再说明一点,C或C+属于语言,而VC - “Visual C+”是用来编写C或C+的工具) 4.Visual Basic与Delphi易学,但不可移植且有专利权。 Visual Basic( 简称 VB) VB 是快速的界面生成语言,是快速的数据库程序开发语言。 vba 是 vb 的应用版,嵌入在 MS office 中。编写 MS office 上的程序很好用。缺点是只能在 Windows 平台运作。 Delphi Kylix 和

26、 vb 一样是快速开发环境,但性能更好,功能更强大,亦可以用于 Linux 平台。语法建基于 Pascal,是面向对象的程序语言5.Java商业编程语言。有很多简洁的功能,但是慢。创作工具可以以最快的速度产生你的程序,但是仅对某一些类型的程序起作用。Java 作为现代语言,具有非常丰富的语法特征,如模块和类,不像 C 随操作系统和编译器的不同有极大差异。 Java 所有的 API 都是类库,相对 C 的函数来说,是非常大的进步。缺点是要学的技术太多,二是在底层开发中不行。Java开发的软件大部分是面向事业单位、公司及企业的,它的功能同样强大,结构比C+清晰,学习起来比C+简单多了,并且是跨平台

27、运行的程序,用Java开发出来的软件可以在世界几乎所有的系统上运行(包括Linux、掌上电脑、手机等),但正因为如此,使之运行时会比C+开发的软件要慢。 6.Web类的大致说下流行的 php jsp asp 三者从数据库操作上而言,jsp>php>asp 从目前市场角度来说,asp几乎垄断了中小型市场。而asp漏洞百出,原因也是市场片面比较大,垃圾程序较多。学java,学的不仅仅是技术,而是一种思想 架构项目的思想 。 所以java是培养架构师,培养System Designer,Project Manager的 

28、0;c语言和c+只能培养技术专家,资深程序员。笔试1.UML在 UML 2 中有二种基本的图范畴:结构图和行为图。每个 UML 图都属于这二个图范畴。结构图的目的是显示建模系统的静态结构。它们包括类,组件和(或)对象图。另一方面,行为图显示系统中的对象的动态行为,包括如对象的方法,协作和活动之类的内容。行为图的实例是活动图,用例图和序列图。1.1用例图用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者(Actor) 表示与您的应用程序或系

29、统进行交互的用户、组织或外部系统。用一个小人表示。 2. 用例(Use Case) 用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。 3. 子系统(Subsystem) 用来展示系统的一部分功能,这部分功能联系紧密。 4. 关系 用例图中涉及的关系有:关联、泛化、包含、扩展。 如下表所示: a. 关联(Association) 表示参与者与用例之间的通信,任何一方都可发送或接受消息。 【箭头指向】:指向消息接收方 b. 泛化(Inheritance) 就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用

30、例的一段行为,也可以重载它。父用例通常是抽象的。 【箭头指向】:指向父用例 c. 包含(Include) 包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。 【箭头指向】:指向分解出来的功能用例 d. 扩展(Extend) 扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。 【箭头指向】:指向基础用例 e. 依赖(Dependency) 以上4种关系,是UML定义的标准关系。但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示,表示源用例依赖于目标用例。 【箭头指向】:指向被依赖项 5. 项目(Artifact) 用例图虽然是用来帮助人们形象地理解功能需求,但却

31、没多少人能够通看懂它。很多时候跟用户交流甚至用Excel都比用例图强,VS2010中引入了“项目”这样一个元素,以便让开发人员能够在用例图中链接一个普通文档。 用依赖关系把某个用例依赖到项目上: 然后把项目-属性 的Hyperlink设置到你的文档上; 这样当你在用例图上双击项目时,就会打开相关联的文档。 6. 注释(Comment) 包含(include)、扩展(extend)、泛化(Inheritance) 的区别: 条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的; 直接性:泛化中的子用例和extend中的延伸用例为参与者提供

32、直接服务,而include中被包含的用例为参与者提供间接服务。 对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系; 一个用例图示例:1.2类图在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类的属性、操作中的可见性使用+、#、分别表示public、protected、private。类之间的关系是类图中比较复杂的内容。有泛化(Generalization), 实现(Realization),关联(

33、Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,是“akindof”关系,定义一般元素和特殊元素之间的分类关系。表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2. 实现(Realization) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3. 关联(Ass

34、ociation) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 下图为自身关联:关联的一方关联对象位于直线的上端,关联数目位于同侧的直线下端,另一方则相反 多重值和它们的表示 表示含义0.10个或1个1只能1个0.*0

35、个或多个*0个或多个1.*1个或多个3只能3个0.50到5个5.155到15个 4. 聚合(Aggregation) 【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。 聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。 【代码体现】:成员变量 【箭头及指向】:带空心菱形的实心线,菱形指向整体 5. 组合(Composition) 【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。 组合关系是关联关系的一种,是比聚合

36、关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。【代码体现】:成员变量【箭头及指向】:带实心菱形的实线,菱形指向整体聚合和组合的区别:聚合关系是“hasa”关系,组合关系是“containsa”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。 6. 依赖(Dependency) 【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.如果

37、类A和类B有关联关系,它们之间必然有依赖关系。 【代码表现】:局部变量、方法的参数或者对静态方法的调用 【箭头及指向】:带箭头的虚线,指向被使用者 各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 下面这张UML图,比较形象地展示了各种类图关系:【类图说明】(1) reader类是借阅者的类,它的属性很多,包括借阅者的账户ID(reader_id)、姓名(reader_Name)、地址(Address)、班级(class)、所借书籍的书目(borrowed)等。其中主要操作有借书(addborrowed)和还书(deleteborrowed)

38、和预订(reservation)等。(2) admin类是管理员类,他有编号和姓名属性,操作主要是书籍的增删改和读者的增删改等等。(3) Title 类是记录书目信息的类,包括书籍的名字(name)、作者(author)、book_id等属性。(4) Item 类是具体某本书的类,属性包括书籍号(id)。操作包括预订(reserve)、按书目查找(find_on_title)等。(5) borrow类是某本书的借阅信息类,包括所借阅书籍的ISBN、借阅的时间(date)等。(6) Reservation类是预订信息类,每个预订信息包括预订日期(date)、所预订书籍的ISBN、预订书籍的用户I

39、D(UserID)等属性。(7) persistent store类是书籍永久的存储类,在数据库中的存储数据,其他对与书籍有关的活动都要经过其存储类。图书馆管理系统的类图及关系如下:1.3流程图-活动图活动图是一种工作流程图。1:初始节点,活动最终节点,操作,连接符 <1> 初始节点: 在绘制活动图中,总有一个起始点,在UML的规范中用”实心圆点“表示。 <2>活动最终节点: 有起点就必然存在终点,在UML中用”空心圆点“表示。 <3> 操作: 是活动图中的一个基本步骤,具有原子性。 <4>连接符: 操作之间的过渡我们用”连接符“进行连接。下面做

40、个简单的例子加深下印象,这个也是最简单的活动图。2:注释 良好的代码习惯是二行一注释,在UML中同样也存在注释,道理都一样,帮助团队理解。3:对象节点 首先看下专业的解释:如果一个操作执行结束之后生成了某些数据需要传递给下一个目标操作,此时需要用对象节点表示。 对应到上面案例就是我们需要在”登陆界面“和”登陆后台“中间插一个”登陆信息“的对象节点,这个也就是”登陆界面“产生 的数据。4:决策节点和合并节点 <1>决策节点: 在工具箱中我们看到决策节点使用”菱形“来表示的,也非常好理解,决策嘛,不就是抉择,一条边进,多条边出。 <2> 合并节点: 既然放在一起讲,它们肯定

41、有关联,多条边进,一条边出,比如在很多页面中都有传送门让我们进入登陆页面。如果眼尖的话已经看到了”连接符"旁边的提示信息,这个也就是“警示信息”,设置方法很简单,选中“连接符”,按F4打开“属性窗口”,然后在Guard字段中设置值即可。5:分叉节点和联接节点 这两个节点是真的需要同对出现,用途跟“决策和合并”非常类似,分叉节点是一条边进,多条边出,联接节点是多条边进,一条边出,只不过有一点不一样的就是,联接节点需要等待“分叉节点”的所有边都到达后整个流程才能继续进行下去。对应上图中,我们登录成功后,进入了分叉节点,此时我们需要干两件事情,“签到”和“发微博“,如果只做了其中某一件事情

42、,整个流程都会处理中断状态,直到两件事都已做完,是不是有点多线程的味道。图书馆管理系统的借书活动图1.4ER图实体-联系图 (Entity-Relation Diagram)用来建立数据模型。通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。 ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体

43、连接起来,同时在无向边旁标上联系的类型在E-R图中要明确表明1对多关系,1对1关系和多对多关系。1对1关系在两个实体连线方向写1;1对多关系在1的一方写1,多的一方写N;多对多关系则是在两个实体连线方向各写N,M ER图缺点不能很好表示单向和双向关系图书馆管理系统数据库建模图书馆管理系统各实体之间的ER图1.5数据流图数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流程图中有以下几种主要元素:数据流。数据流是数据在系

44、统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。:数据源(终点)。代表系统之外的实体,可以是人、物或其他软件系统。如数据表。:对数据的加工(处理)。加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。:数据存储。表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。Data Store顶层一层2. SQL语句1 数据的创建create database db1;2 删除数据库drop

45、database db1;3 使用数据库use db1;4 创建数据表 创建带有约束的表create table student1(- 描述表的每一列- 列名 类型 数据约束 ,sid integer primary key auto_increment,name varchar(10)not null,sex varchar(10) default 'male');4-1:删除表drop table users;5 (select)查询数据的操作 select * from users; 行筛选(筛选)select * from userswhere sex = 'm

46、ale' 列筛选(投影)select username, sex from users /查询男生的姓名select username from users where sex='male'6 (insert)插入操作insert into users(username, password, sex) values('haha', '123456', 'male') ;7 (update) 更新操作(修改) update users set sex='女' , password='123456789

47、' where username='haha'8 (delete) 删除操作 delete from users where username='haha' 3. 数据传递过程的协议描述传输协议中各层都为上一层提供业务功能。为了提供这种业务功能,下一层将上一层中的数据并入到本层的数据域中,然后通过加入报头或报尾来实现该层业务功能,该过程叫做数据封装。用户的数据要经过一次次包装,最后转化成可以在网络上传输的信号,发送到网络上。当到达目标计算机后,再执行相反的拆包过程。下层能够向上层提供的服务有两种形式:面向连接的服务(TCP)和无连接的服务(UDP)。TC

48、P:传输控制协议,当传输出现错误时能自动予以纠正;UDP:用户数据包协议,当传输出现错误时会将错误信息丢弃;UDP方式比TCP方式有更强大的容错性,采用UDP的话,它的缓冲速度比TCP快45%,而且可以大大的节省网络共享带宽,当网络出现不稳定时,不会经常出现缓冲,所以不少影视节目采用UDP方式传送。双方在数据传输中必须遵守的规则。 数据传递过程:(1)寻址。当一个应用程序希望与另一个应用程序传输数据时,必须指明是与哪个应用程序相连。寻址的方法一般采用定义传输地址。因特网传输地址由IP地址和主机端口号组成。(2)建立连接。在实际的网络应用中,采用三次握手的算法,并增加某些条件以保证建立起可靠的连

49、接。增加的条件是:所发送的报文都要有递增的序列号;对每个报文设立一个计时器,设定一个最大时延,对那些超过最大时延仍没有收到确认信息的报文就认为已经丢失,需要重传。(3)释放连接。也采用三次握手的算法。OSI,Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型。MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC位址。因此一个主机会有一个IP地址,而每个网络位置会有一个专属于它的MAC地址。IP

50、地址和MAC地址相同点是它们都唯一,不同的特点主要有:1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为12 ,也可以将它改成00。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。2. 长度不同。IP地址为32位,MAC地址为48位。3. 分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。4. 寻址协议层不同。IP地址应用于OSI第三层,即网络

51、层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)描述在OSI参考模型中(OSI模型的七层协议)数据传输的基本过程首先从计算机里面的数据出发,比如QQ写入的信息是最原始的,也就是应用层的工作,然后是表示层,传输的编码,是用什么编码传输数据,还包括加密的过程。而会话层则主要进行端对端的连接的建立维持和断开.这三部分是端对端的连接。下一层是传输层,主要包括端口和进程,表示用什

52、么进程连接通信,比如说对方用QQ进行信息传递,而这边有QQ,msn,yahoo,那么为什么就只有QQ能够接受到信息呢?这个功能识别就是靠传输层的作用了.下面三层是点到点的连接.网络层写上ip,指明数据传输的路, 是快速的寻址,能快速找到去往的路. 数据链路层是在网络层封装的基础上封装MAC地址,是精确的寻址方式。物理层通过规定物理设备和物理媒体之间的接口技术,实现物理设备之间的比特流透明传输(包括DTEDTE和DCEDCE之间的比特流传输)。建立、维持和释放物理连接(标识物理连接、选择服务质量:速率、延迟、传输误码率等),并在物理连接上透明传输比特流(包括排序和故障通知等)4. HTTP协议H

53、TTP协议即超文本传送协议。超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器(WWW服务器)之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。HTTP是“请求-响应”的工作模式。4.1 HTTP协议格式包括Client向Server的请求消息和Server向Client的响应消息

54、。协议消息由起始行,头域和可选的消息体组成。HTTP 请求协议(报文)的一般格式由三部分组成,分别是:请求行、消息报头(请求头)、请求正文(请求体) 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI 和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF其中Method 表示请求方法;Request-URI 是一个统一资源标识符;HTTP-Version 表示请求的HTTP 协议版本;CRLF 表示回车和换行(除了作为结尾的CRLF 外,不允许出现单独的CR 或LF 字符)HTTP 响应协议的一般格式也是由三个部分组成,分别是:状态行、消息报

55、头、响应正文1.响应头第一行也称为状态行,格式如下:HTTP-Version 空格 Status-Code 空格 Reason-Phrase CRLFHTTP- Version表示HTTP版本,例如为HTTP/1.1。Status- Code是结果代码,用三个数字表示。Reason-Phrase是个简单的文本描述,解释Status-Code的具体原因。Status-Code用于机器自动识别,Reason-Phrase用于人工理解。Status-Code的第一个数字代表响应类别,可能取5个不同的值。后两个数字没有分类作用。Status-Code的第一个数字代表响应的类别(消息(1字头) 成功(2

56、字头) 重定向(3字头)请求错误(4字头) 服务器错误(5字头),后续两位描述在该类响应下发生的具体状况。 2、响应报头后述3、响应正文就是服务器返回的资源的内容HTTP 消息报头(即头域)包括普通报头(Cache-Control)、请求报头(Accept、Authorization、Host、User-Agent)、响应报头(Location、Server)、实体报头(Content-Encoding、Content-Language、Content-Length、Content-Type、Last-Modified、Expires)。HTTP报文由请求行或状态行组成,后面是信息头和主体。请求报文的格式由请求行、通用信息头、请求头、实体头、信息主体组成。响应报文由响应行、通用信息头、响应头、实体头、信息主体组成。为了指示IE 浏览器( 客

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论