软工导论完整版.docx
- 文档编号:5084358
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:21
- 大小:97.30KB
软工导论完整版.docx
《软工导论完整版.docx》由会员分享,可在线阅读,更多相关《软工导论完整版.docx(21页珍藏版)》请在冰豆网上搜索。
软工导论完整版
A)ModernComputerArchitecture
ⅠVonNeumannModelandTuringModel
VonNuemannModel(1944~1945)
4个子系统:
存储器、算术逻辑单元(ALU)、控制单元、输入/输出单元
关键思想:
程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。
控制器根据存放在存储器中地指令序列(程序)进行工作,并由一个程序计数器控制指令地执行。
控制器具有判断能力,能根据计算结果选择不同的工作流程。
TuringModel(1937)
图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:
1、在纸上写上或擦除某个符号;
2、把注意力从纸的一个位置移动到另一个位置;
而在每个阶段,人要决定下一步的动作,依赖于(a)此人当前所关注的纸上某个位置的符号和(b)此人当前思维的状态。
为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:
1.一条无限长的纸带TAPE。
纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号表示空白。
纸带上的格子从左到右依此被编号为0,1,2,...,纸带的右端可以无限伸展。
2.一个读写头HEAD。
该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
3.一套控制规则TABLE。
它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。
4.一个状态寄存器。
它用来保存图灵机当前所处的状态。
图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。
参见停机问题。
注意这个机器的每一部分都是有限的,但它有一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。
图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程。
ⅡFourSubsystems(四个子系统)
1、存储器:
在计算机的处理过程中用来存储数据和程序。
2、算术逻辑单元(ALU):
用来进行计算和逻辑运算的地方。
3、控制单元:
对存储器、算术逻辑单元、输入/输出等子系统进行控制操作的单元。
4、输入/输出:
输入子系统负责从计算机外部接收输入数据和程序;输出子系统负责将计算机的处理结果输出到计算机外部。
ⅢStorageSystem(存储系统)
1、SecondStorage(externalstorage外部存储器)
软盘、硬盘、光盘、U盘
2、Memory(internalstorage内部存储器)
内存
3、MemoryCaches(高速缓存)
4、RAMandROM
RAM(随机存取存储器):
可以使用存储单元地址来随机存取一个数据项,而不需要存取位于它前面的所有数据项。
用户可以读写RAM,之后可以方便地通过覆盖来擦除原有信息。
另一个特点是易失性,系统断电后信息将丢失。
RAM技术又可以分为两大类:
SARM(静态RAM,用传统的触发器门电路,速度快价格昂贵)和DRAM(动态RAM,用电容器,因电容器会漏电,需要周期性刷新,速度慢比较便宜)。
ROM(只读存储器):
用户能读不能写,优点是非易失性,切断电源数据也不会丢失。
按照发展历程,有三种:
PROM(可编程只读存储器)、EPROM(可擦除的可编程只读存储器)、EEPROM(电可擦除的可编程制度存储器)。
ⅣDatabus,Controlbus,Addressbus
1、数据总线(Databus)用于传送数据信息。
数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。
数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。
2、控制总线(Controlbus)用来传送控制信号和时序信号。
控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:
中断申请信号、复位信号、总线请求信号、限备就绪信号等。
因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。
实际上控制总线的具体情况主要取决于CPU。
3、地址总线(AddressBus)属于一种电脑总线(一部份),是由CPU或有DMA能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。
专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。
地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机的地址总线为20位,其可寻址空间为2^20=1MB。
一般来说,若地址总线为n位,则可寻址空间为2^n字节。
地址总线的宽度,随可寻址的内存元件大小而变,决定有多少的内存可以被存取。
ⅤParallelComputerCategories(并行计算机类别)
1、SISD(单指令流,单数据流)
一个控制单元、一个算术逻辑单元和一个内存单元。
指令被顺序执行,每条指令可以存取数据流中的一个或多个数据项。
2、SIMD(单指令流,多数据流)
一个控制单元、多个处理单元和一个内存单元。
所有处理器单元从控制单元接受相同的指令,但在不同的数据项上操作。
3、MISD(多指令流,单数据流)
属于多个指令流的多个指令作用于相同的数据项的体系结构。
从未被实现。
4、MIMD(多指令流,多数据流)
属于多个指令流的多个指令作用于多个数据流(每条指令作用于一个数据项)。
在这种体系结构中,可以同时执行多个任务。
这个体系结构可以使用单个的共享内存或多个内存区。
B)ComputerNetworks
ⅠISOOSI(OpenSystemInterconnection开放式系统互联)
1、PhysicalLayer(物理层)
硬件层面,数据单位为比特(bit),为数据端提空传送数据的通路。
主要设备:
中继器、集线器。
2、DataLinkLayer(数据链路层)
在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。
这一层的数据单位为帧(frame)。
主要功能是为网络层提供数据传送服务,应具备链路连接的建立、拆除、分离及顺序控制和差错检测恢复。
主要设备:
二层交换机、网桥。
3、NetworkLayer(网络层)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。
网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。
网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息(源站点和目的站点的网络地址)
这一层数据的单位称为数据包(packet)。
协议包括:
IP、IPX、RIP、OSPF等。
主要功能是为建立网络连接和为上层提供服务,应具备以下主要功能:
路由选择和中继、激活终止网络连接、在一条数据链路上复用多条网络连接(分时复用技术)、差错检测与恢复、排序及流量控制、服务选择、网络管理。
主要设备:
路由器。
4、TransportControlLayer(传输层)
本层的数据单元也称作数据包(packets),但是会因为具体的协议不同而不同:
TCP中的数据单元称为段(segments)而UDP协议的数据单元称为数据报(datagrams)。
传输层协议的代表有:
TCP(较慢但可靠:
MSN使用此协议)、UDP(快速但不可靠:
QQ使用此协议)、SPX等。
5、SessionLayer(会话层)
在会话层及以上(指第6、7层)的高层次中,数据传送的单位不再另外命名,统称为报文。
会话层不参与具体的传输。
6、PresentationLayer(表示层)
主要解决用户信息的语法表示问题。
它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。
即提供格式化的表示和转换数据服务。
数据的压缩和解压缩,加密和解密等工作都由表示层负责。
例如图像格式的显示,就是由位于表示层的协议来支持。
7、ApplicationLayer(应用层)
为操作系统或网络应用程序提供访问网络服务的接口。
应用层协议的代表有:
Telnet、FTP、HTTP、SNMP等。
OSI分层的优点
1、人们可以很容易的讨论和学习协议的规范细节。
2、层间的标准接口方便了工程模块化。
3、创建了一个更好的互连环境。
4、降低了复杂度,使程序更容易修改,产品开发的速度更快。
5、每层利用紧邻的下层服务,更容易记住个层的功能。
OSI是一个定义良好的协议规范集,并有许多可选部分完成类似的任务。
它定义了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的任务。
是作为一个框架来协调和组织各层所提供的服务。
OSI参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定。
即OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念性框架。
ⅡTheTCP/IPModel(TCP/IP模型)
TCP/IP模型实际上是OSI模型的一个浓缩版本。
一般认为分为四层:
应用层(对应OSI的应用层、表示层、会话层)、运输层(对应OSI的传输层)、网际层(对应OSI的网络层)、网络接口层(对应OSI的数据链路层和物理层)。
但在这里分为五层(以区别各层见数据单位的不同),因为这里的第1、2层可以合并为网络接口层。
1、PhysicalLayer(物理层)
物理层完成在物理介质上传输二进制流所需要的功能。
单位是比特(bit)。
2、DataLinkLayer(数据链路层)
在本层中单位是数据帧,数据链路层负责数据帧的结点到结点的发送。
3、NetworksLayer(网际层)
网络层负责单个数据包从源主机到目的主机的发送。
几个关键词:
网络层地址、路由选择、网络层协议(主协议:
IP辅助协议:
IGMP\ARP\TARP等)
4、TransportLayer(传输层)
单位是数据包。
传输层负责客户和服务器进程间的消息的逻辑传输。
几个关键词:
传输层的地址(端口号)、多路复用和解多路复用(多数据同时传送,传送完可以分解)、拥塞控制、流量控制、传输层协议(UDP\TCP\SCTP)
5、ApplicationLayer(应用层)
应用层负责向客户提供服务。
几个关键词:
客户/服务器体系结构(有客户端和服务器端,进程到进程的通信)、应用层地址(客户通常使用统一资源定位符(URL)如
ⅢNetworkCategories(网络类别)
ThreeGeographyKinds:
LAN/MAN/WAN
A)LAN(LocalAreaNetwork局域网)
通常是私有的,连接单个办公室、大楼或校园里的设备。
B)MAN(MaintenanceAlertNetwork城域网)
大小介于LAN和WAN之间,通常覆盖一个镇或者城市,用来为那些需要高速连接且终端点分布在一个城市或城市的一部分的客户服务。
C)WAN(WideAreaNetwork广域网)
提供长距离的数据、图像、音频、和视频信息的传输,在地理上可能包含一个国家、一个大洲或者全球。
ThreeTopologyKindsofLAN
1、Bus(总线式)安装简单,但设备间不能传输
2、Star(星式)高速局域网中最常使用
3、Ring(环式)容易安装和重构
ⅣTheDifferenceBetween“Internet”and“internet”
internet(小写i):
互联网,多种网络连接到一起。
Internet(大写I):
因特网,是最著名的互联网。
ⅤNetworkDevices
1、Repeater(中继器)
工作于OSI模型的物理层,是局域网上所有结点的中心,作用是放大信号,补偿信号衰减,支持远距离的通信,适用于完全相同的两类网络的互连。
优点:
过滤通信量、扩大通信距离、增加结点的最大数目、各个网段可以使用不同的通信速率、提高了可靠性(网络出现故障时一般只影响个别网段)
缺点:
增加了延时、网络负担很重时容易溢出导致丢帧、中继器若出现故障相邻两个子网的工作都将受影响。
2、Bridge(网桥)
工作于物理层和数据链路层。
在网络互联中起到数据接收、地址过滤与数据转发的作用,用来实现多个网络系统之间的数据交换。
网桥的基本特征:
1)网桥在数据链路层上实现局域网互连;
2)网桥能够互连两个采用不同数据链路层协议、不同传输介质与不同传输速率的网络;
3)网桥以接收、存储、地址过滤与转发的方式实现互连的网络之间的通信;
4)网桥需要互连的网络在数据链路层上采用相同的协议;
5)网桥可以分隔两个网络之间的饿广播通信量,有利于改善互连网络的性能与安全性。
3、Routers(路由器)
工作在网络层。
连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。
与交换机之间的主要区别是交换机发生在OSI模型的第二层(即数据链路层),而路由发生在第三层(网络层),这个区别决定了路由和交换在移动信息的过程中需要使用不同的控制信息,所以两者实现各自功能的方式是不同的。
4、Gateways(网关)
工作于OSI模型的所有(7个)层中。
又称网间连接器、协议转换器。
网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关的结构也和路由器类似,不同的是互连层。
网关既可以用于广域网互连,也可以用于局域网互连。
网关是一种充当转换重任的计算机系统或设备。
在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。
与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
同时,网关也可以提供过滤和安全功能。
C)DataandAlgorithms(数据与算法)
ⅠNumberRepresentationandConversation(数字表示与会话(一种用户与交互式数据处理系统间的对话过程))
1、位置化数字系统
十进制系统(以10为底),二进制(以2为底),十六进制系统(以16为底),八进制系统(以8为底)
2、不同进制间的转换
其他进制到十进制的转换:
将数码乘以其在源系统中的未知量并求和便得到十进制中的数。
若为二进制,则小数点左边第一个数码乘以2^0,第二个数码乘以2^1,第三个数码乘以2^2···再把所有的乘积相加,对于小数来说,小数点右边第一位乘以2^-1,第二位乘以2^-2···同样再对乘积求和即可。
若为八进制、十六进制,则是乘以8^n、16^n(n为对应的位置量)
十进制到其他进制的转换:
对于整数部分,把这个十进制数做N的整除运算,并将所得到的余数倒过来写(后得到的余数反而在高位)即可。
(N为要转换成的进制,若转换成八进制,就除8,对于二进制或者十六进制亦如此)。
对于小数部分,使用连乘法,用原来十进制数的小数部分乘以N(N为要转换成的进制数,若转换成二进制,则N为2),得到的新的数字的整数部分即为小数点后第一位,然后新的数字的小数部分再乘以N,再得到更新的数字,再写下更新的整数,即为小数点后第二位,类推即可。
(依次可以得到无穷位,根据要求的位数进行计算)
二进制与十六进制间的转换:
二进制中的4位恰好是十六进制中的1位,转换时先将二进制数排位4位一组的形式:
10011100010。
若最左边不够四位也不要紧,补上0即可,然后再对照进制转换表等量转换即可如0100对应4,1110对应E,0010对应2,所以就等于(4E2)16。
十六进制转换成二进制,则每个数码要转换成为4个数码,方法与上面类似。
二进制与八进制间的转换:
二进制中的3位恰好是八进制中的1位,转换时3个为一组,方法与十六进制与二进制之间的转换类似。
八进制与十六进制间的转换:
以二进制作为沟通的“桥梁”,先转换为二进制数再进行下一步的转换。
ⅡOperationsonBits
1、TruthTables(真值表)
表征逻辑事件输入和输出之间全部可能状态的表格,通常以1表示真,0表示假。
2、ArithmeticOperationonIntegers(整数的算术运算)
整数通常是二进制补码形式存储的。
二进制补码表示法的一个优点是加法和减法之间没有区别。
A-B=A+B的补码(补码等于反码+1)。
运算时即为正常的相加、进位、得结果。
3、LogicalOperations(逻辑运算)
非(NOT):
一元运算符,只有一个输入。
输出位是输入位的相反,如果输入是0,则输出1。
其真值表只有两行。
与(AND):
二元运算符,有两个输入,如果输入都是1,则输为1,而在其他三种情况下,输出都是0,其真值表有4行。
若输入位中有一位是0,则不需要检查其他输入的相应位即可得结果0。
或(OR):
二元运算符,有两个输入。
如果输入都是0,则输出为0,而在其他三种情况下输出都是1.其真值表也有4行。
OR运算符有时被称为包含或运算符。
若输入位中有一位是1,则不需要检查其他输入的相应的位即可得结果1。
异或(XOR):
二元运算符,当输入相同时,输出0;当输入不同时,输出1。
4种逻辑运算可以用于修改位模式
取反(NOT运算符的唯一应用)
使指定的位复位(置0):
这种情况下的第二个输入称为掩码,0为复位,1为保持不变,利用AND运算符。
对指定的位置位(置1):
第二个输入同样是掩码,但0保持不变,1为置位,利用OR运算符。
使指定的位反转:
同样利用掩码,0保持不变,1则输出与相应的位相反。
利用XOR运算符。
ⅢDataStructuresandAlgorithms(数据结构和算法)
1、LinearLists(线性表)
A)Arrays(数组):
数组是元素的顺序集合,通常这些元素具有相同的数据类型。
大多数计算机使用行主序存储,其中数组的一个整行在内存上存储在下一个行之前。
但是也可以使用列主序存储。
数组的操作常见的有:
查找、插入、删除(较麻烦)、检索、遍历。
当需要进行的插入和删除操作数目较少,而需要大量的查找和检索操作时,数组时合适的结构。
B)LinkedLists(链表):
链表是一个有序数据的集合,其中每个元素包含下一个元素的地址;即每个元素包含两个部分:
数据和链。
数据部分包含可用的信息,并被处理。
链则将数据连在一起。
它包含一个指明列表中下一个元素的指针(地址)。
另外,一个指针变量标识该列表中的第一个元素。
列表的名字就是该指针变量的名字。
链表的操作常见的有:
搜索(只能是顺序的)、插入、删除、检索、遍历。
如果需要大量的插入和删除,那么链表是合适的结构,但搜索一个链表比搜索一个数组要慢。
链表是一种动态的数据结构,其中表从没有节点开始,然后当需要新节点时,它就逐渐增长。
C)Stack(栈):
栈是一种限制线性列表,该类列表的添加和删除操作只能在一端实现,称为栈顶。
如果插入一系列数据到栈中,然后移走它们,那么数据的顺序将被倒转。
这种倒转的属性也正是栈被称为后进先出(LIFO)数据结构的原因。
栈的基本操作有四种:
1)建栈:
创建一个空栈stackName是要创建栈的名字,返回一个空栈,格式为
stack(stackName)
2)入栈:
在栈顶添加新的元素,stackName是栈的名字,dataItem是要插在栈顶的数据,入栈后,新的元素称为栈顶元素,返回一个dataItem插在顶端的新栈,格式为:
push(stackName,dataItem)
3)出栈:
将栈顶元素移走,stackName是栈的名字,dataItem是从栈中移走的数据,在删除之前站定元素下面的项就成为栈顶元素,返回一个少一个元素的新栈,格式为:
pop(stackName,dataItem)
4)空:
检查栈的状态,stackName是栈的名字。
如果栈为空,返回真;栈非空,返回假,格式为:
empty(stackName)
栈的应用:
倒转数据、配对数据、数据延迟使用和回溯步骤。
D)Queue(队列):
队列是一种线性列表,该表中的数据只能在称为“尾部”的一端插入,并且只能在称为“头部”的一端删除。
这些限制确保了数据在队列中只能按照他们存入的数据被处理。
换言之,队列就是先进先出(FIFO)结构。
队列的四个基本操作:
1)建队列:
建立一个空队列,queueName是建立的队列的名字。
并返回一个空队列,格式为
queue(queueName)
2)入列:
在队列尾部插入一个数据项,queueName是队列的名字,dataItem是要在队列尾部插入的数据。
入列操作后,新数据项就成了队列的最后一项。
返回一个dataItem插在队列尾部的新队列,格式为
enqueue(queueName,dataItem)
3)出列:
删除队列前端的数据项,queueName是队列的名字,dataItem是从队列中删除的数据,返回一个少一个元素的新队列,格式为
dequeue(queueName,dataItem)
4)空:
检查队列的状态,如果队列为空,则返回真,否则返回假,格式为
empty(queueName)
队列的应用:
在线电子商务应用程序,如处理客户需求、任务和指令。
2、Records(记录)
记录是一组相关元素的集合(类似于结构体),它们可能是不同的类型,但整个记录有一个名称。
记录中的每个元素称为域。
域是具有含义的最小命名数据。
它有类型且存在于内存汇总。
它能被赋值,反之也能够被选择和操纵。
域不同于变量主要在于它是记录的一部分。
在记录中的元素可以使相同类型或不同类型,但记录中的所有元素必须是关联的。
3、SortingandSearching(分类和查找)
1)SmallestandLargest(最小和最大)
2)BubbleSort(冒泡排序法)
3)InsertionSort(插入排序)
4)SequentialSearch(顺序查找)
5)BinarySearch(折半查找):
用first、mid、last来折半的查找。
4、RecursionandRecursiveSolution(递归和递归解)
递归式算法自我调用的过程。
算法定义中必须有其本身。
D)SoftwareandSoftwareEngineer
ⅠAssembleInterpretCompile(汇编译)
人类语言与机器语言沟通的桥梁。
ⅡSoftwareDevelopingProcessModel(软件开发过程模型)
1、WaterfallModel(瀑布模型)
1970年温斯顿•罗伊斯(WinstonRoyce)提出了著名的“瀑布模型”,直到80年代早期,它一直
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 导论 完整版