软件技术基础.docx
《软件技术基础.docx》由会员分享,可在线阅读,更多相关《软件技术基础.docx(19页珍藏版)》请在冰点文库上搜索。
![软件技术基础.docx](https://file1.bingdoc.com/fileroot1/2023-5/15/194140a9-1277-42c5-88b9-39175112f7f6/194140a9-1277-42c5-88b9-39175112f7f61.gif)
软件技术基础
数据的四种存储结构:
顺序存储结构
逻辑相邻的元素存储在物理位置相邻的存储单元
特点:
连续存放,结构简单,插入删除不方便
链式存储结构
逻辑上相邻的元素存储在物理位置不必相邻的位置中。
特点:
非连续存放,插入删除简单
索引存储结构
数据按索引形式存放
特点:
非连续存放,检索速度快
散列存储结构
元素之间没有内在联系,存储形式不定
并发多个事件在同一时间段内发生。
并行(parallel)是指在同一时刻发生。
多个进程共享有限的计算机系统资源。
第3章操作系统
操作系统的两大基本职能
面向机器:
管理和操控全部计算机资源;
提高系统效率。
面向用户:
提供人机界面;提供便捷的操作环境
操作系统的发展
1、手工操作阶段——无操作系统
2、早期批处理阶段——第1代操作系统
两种批处理方式
(1)联机批处理
(2)脱机批处理
3、执行系统阶段——第2代操作系统
4、多道程序系统——第3代操作系统
多道批处理的运行特征
多道:
内存中同时存放几个作业;
宏观上并行运行:
都处于运行状态,但都未运行完;
微观上串行运行:
各作业交替使用CPU;
操作系统的分类
1.多道批处理操作系统
批处理的主要特征
用户脱机使用计算机:
作业提交后直到获得结果之前,用户无法与作业交互。
作业成批处理
多道程序并发:
充分利用系统资源。
2.分时操作系统
把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(timeslice),每个用户依次轮流使用时间片。
分时系统的特征
多路性:
多个用户同时工作。
独立性:
各用户独立操作,互不干扰。
交互性:
系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率:
缩短了周转时间。
3.实时操作系统
实时系统的特征
实时时钟管理:
提供系统日期和时间、定时和延时等时钟管理功能;
过载保护:
缓冲区排队,丢弃某些任务,动态调整任务周期;
过载是指进入系统的任务数目超出系统的处理能力。
高度可靠性和安全性:
容错能力(如故障自动复位)和冗余备份(双机,关键部件)
操作系统功能
文件管理、进程管理、存储器管理、设备管理、作业管理
操作系统的特征
并发、共享、虚拟、不确定性
存储器管理的功能
(1)内存分配
(2)地址变换或重定位
重定位方法:
静态重定位
缺点是:
程序一经定位后就不能再在主存中移动;
要求作业分配连续的主存空间,主存资源利用率低;
难于实现主存的资源共享。
动态重定位
动态地址重定位的特点
这对存储管理时解决碎块问题极为有利;
这样便于内存的充分利用和资源的共享。
需要附加硬件的支持,增加了系统的开销。
(3)存储空间的分区保护
(4)主存空间的扩充
实存储管理
方法要点:
把主存空间划分为若干个连续的区域,建立空间分区表进行管理。
方法分类:
采用“固定分区”和“可变分区”法。
1.分区分配
(1)固定分区
优点:
管理调度简单、分区策略适合于工作负荷比较确定的系统。
(2)可变分区
优点:
没有内碎片;
缺点:
选择剩下的空白区较小,无法使用;
寻找一个较大的空白区费时(从头找起);
归并主存“零头”,回收时费时。
(3)空闲区分配算法
最佳适应法:
找到其大小与要求相差最小的空闲分区,要求空闲链表中的
结点按空闲块大小升序排列
最差适应法:
找到最大的空闲分区,要求空闲链表中的结点按空闲块大
小降序排列
首次适应法:
按分区的先后次序,从头查找,找到符合要求的第一个分区
2.可重定位分区分配
3.覆盖技术
缺点:
编程时必须划分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度。
从外存装入覆盖文件,以时间延长来换取空间节省。
4.交换技术
优点:
增加并发运行的程序数目,并且给用户提供适当的响应时间;
编写程序时不影响程序结构
缺点:
对换入和换出的控制增加处理机开销;程序整个地址空间都进行传送,没有考虑执行过程中地址访问的统计特性。
虚拟存储管理
分页管理
(1)分页管理的基本概念
页面(Page)将作业的地址空间划分为等长的单位,称为页。
页架(块)将主存的存储空间划分为等长的单位,称为页架。
页表每个页在页表中有一个表项,记录着页号与该页在主存中的块号的对应关系;
页表实际上是地址重定位表。
作业表作业与页号管理对照表,每个作业有一个表项;
表项由作业号、页表长度、页表起始地址、状态等信息组成。
页表地址寄存器 指示当前运行的作业页表的起始地址和页表表长
(2)动态地址变换机制
(3)页面更新算法
1.先进先出法(FIFO)
2、最近最少使用算法(LRU)
分页管理特点
优点:
?
有效地解决了存储空间的“零头垃圾“问题;
?
用户可以连续编址。
缺点:
?
采用硬件的动态变址机构,
?
成本大、降低了CPU速度;
?
各种管理表格占用了部分存储空间;
?
块内还有“零头”;
分段存储管理
(1)分段管理的基本概念
段将程序划分为相互独立、具有一定逻辑功能的模块、且分别按名单独存放,
称这些模块为段。
段表为便于作业管理,系统建立的表格;每个作业都有一个段表。
表项由段号、段长度、段起始地址、状态组成。
段地址寄存器 指示当前运行作业的段表在主存中的起始地址以及段表长度。
二维地址空间
用两个参数才能唯一确定地址的空间,即段号s和段内地址w。
地址映射
两个不同空间地址的一一对应的转换。
(2)分段管理特点
优点:
便于模块化处理
便于动态连接
便于分段共享
缺点:
硬件成本高,地址转换花费CPU时间;
要为表格提供主存空间;
分段的最大尺寸受主存大小的限制。
处理器管理
作业和作业步
一个作业是指在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作。
作业由不同的顺序相连的作业步组成。
作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。
进程和程序
程序
是为解决某个问题用计算机语言或命令设计、编写的一系列指令的有序集合。
进程(Program)
一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
第五章
网络的定义:
计算机网络是以共享资源(硬件、软件和数据等)为目的而连接起来的,在协议控制下由一台或多台计算机系统、若干台终端设备、数据传输设备等组成的系统之集合。
1.根据网络覆盖的范围
网络可以分类为广域网、局域网、城域网等。
广域网(WideAreaNetwork——WAN)其覆盖范围通常在数十公里以上
传输率低、误码率高、网络分布不规则、点到点通信、网络的规定、环境影响
局域网(LocalAreaNetwork——LAN)覆盖范围常在几公里以内,限于单位内部建筑物内星型网、环形网(令牌控制技术)、总线网
广播式传送:
所有主机共享一条信道,某主机发出的数据,所有其他主机都能收到。
城域网(MetropolitanAreaNetwork——MAN)
城域网也称市域网,覆盖范围一般是一个城市,介于局域网和广域网之间。
2.按网络的拓扑结构分
网络拓扑结构是指连接网络设备的物理线缆的铺设形式,常见的有星形、总线形、环形和网状形等。
星形网的特点:
(1)网络结构简单,便于管理(集中式);
(2)每台入网机均需物理线路与处理机互连,线路利用率低;
(3)处理机负载重(需处理所有的服务),因为任何两台入网机之间交换信息,都必须通过中心处理机;
(4)入网主机故障不影响整个网络的正常工作,中心处理机的故障将导致网络的瘫痪。
适用场合:
局域网、广域网。
环形网特点:
(1)实时性较好(信息在网中传输的最大时间固定);
(2)每个结点只与相邻两个结点有物理链路;
(3)传输控制机制比较简单;
(4)某个结点的故障将导致物理瘫痪;
(5)单个环网的结点数有限。
适用场合:
局域网,实时性要求较高的环境。
总线网的特点:
(1)多台机器共用一条传输信道,信道利用率较高;
(2)同一时刻只能由两台计算机通信;
(3)某个结点的故障不影响网络的工作;
(4)网络的延伸距离有限,结点数有限。
适用场合:
局域网,对实时性要求不高的环境
网状网络拓扑结构:
利用专门负责数据通信和传输的结点机构成的网状网络,入网设备直接接入结点机进行通信。
网状网络通常利用冗余的设备和线路来提高网络的可靠性,因此,结点机可以根据当前的网络信息流量有选择地将数据发往不同的线路。
适用场合:
主要用于地域范围大、入网主机多(机型多)的环境,常用于构造广域网络。
FTP--文件传输协议(FileTransferProtocol)
OSI协议规范:
定义一组为确保子模块服务的提供而应遵循的规则(协议) 。
协议主要包括三个方面的内容:
语法:
规定通信双方交换的数据格式、编码和电平信号等。
语义:
规定用于协调双方动作的信息及其含义等。
时序:
规定动作的时间、速度匹配和事件发生的顺序等。
1、物理层
物理层功能
通过规定物理设备和物理媒体之间的接口技术,实现物理设备之间的比特流透明传输。
物理层服务
建立、维持和释放物理连接,并在物理连接上透明传输比特流。
物理连接:
由物理层提供的、在该层用户之间建立起来的一种临时的联系。
物理层协议
物理层标准从四个方面对物理设备和媒体之间的接口进行定义。
2、数据链路层
数据链路层功能:
提供数据链路:
数据链路是指活动着的物理连接,通信之前,收/发双方互相联系而建立;传输完毕,双方协商而释放。
提供流量控制:
采用流量控制技术(等-停协议、窗口机制等),解决速度不匹配的问题。
提供差错处理:
采用差错处理技术,变不可靠的物理连接为可靠的数据链路,从而保证点-点的数据传输正确性。
数据链路层服务:
标识和维护数据链路(建立和释放,以及选择服务质量,差错处理机制等)。
传输数据链路层数据单元,定义数据帧格式;施行流量控制;进行差错通知(无法处理的差错情况,告知上层用户)。
3、网络层
网络层功能
提供编址和路由技术,确保用户数据可以进行端-端传输。
利用复用/解复用技术,使得多对用户的数据可以交织在同一条数据链路上传输。
利用分组作为实体之间交换的一种数据结构(数据块),提供分组/组装功能。
网络层服务和网络层协议
网络层可提供的服务包括:
确定网络地址、标识网络连接、传输数据、分组装拆、排序(按提交顺序投递给用户)、流量控制(限制用户一次性提交给网络的分组个数)等。
目前常用的网络层协议有:
分组交换网:
CCITTX.25建议(X.25分组交换网)
局域网:
IP协议、IPX协议
Internet:
IP协议
OSI的低三层(物理层、数据链路层、网络层)主要是面向数据通信的,因此称为通信网络或通信子网,主要支持用户信息在一个网络的端到端传输。
一个通信子网最多只能到这一层。
4、传输层
传输层又称为运输层,处于OSI第四层,它主要是针对用户端的需求,采用一定的手段,屏蔽不同网络的性能差异,使得用户无需了解网络传输的细节,获得相对稳定的数据传输服务。
5、会话层
会话层的目的功能
向用户提供组织和控制信息交换的手段。
会话层功能
利用令牌技术来保证数据交换、会话同步的有序性;拥有令牌的一方可以发送数据,或者执行其它动作;令牌可以被申请和转让;
利用活动和同步技术来保证用户数据的完整性;并让用户知道整个交换的过程;
利用分段和拼接技术来提高数据交换的效率;多块用户数据可以合并在一起进行传输;
利用重新同步技术来实现用户会话的延续性;支持传输过程中的故障恢复。
6、表示层
表示层功能
表示层的目的是屏蔽不同计算机在信息表示方面的差异。
表示层功能包括传送语法的协商,以及抽象语法和传送语法之间的转换。
通过这种转换来统一表示被传送的用户数据,使得通信双方使用的计算机都可以识别。
除数据描述和数据表示方法,数据的压缩和数据加密也是数据的重要表示,也属于表示层的范畴。
7、应用层
应用层是网络可向最终用户提供应用服务的唯一窗口,其目的是支持用户联网的应用的要求。
由于用户的要求不同,应用层含有支持不同应用的多种应用实体,提供多种应用服务,如电子邮件(MHS)、文件传输(FTAM)、虚拟终端(VT)、电子数据交换(EDI)等。
网络互连设备
转发器(Repeater)
转发器又被称为中继器或放大器,执行物理层协议,实现电气信号的“再生”。
作为一种网络互连部件,转发器用于互连两个相同类型的网段(例如:
两个以太网段),其主要功能是延伸网段和改变传输媒体,从而实现信息位的转发。
转发器的工作过程
当被延伸的传输媒体为数字信道时,转发器(中继器)根据阈值电平识别输入信号,并将失真了的数字信号还原到原来的形状(整形);当被延伸的传输媒体是模拟信道时,转发器(放大器)将衰减的信号放大到适合的数值(能量补充)。
使用转发器需要注意
随着结点的增多和数据信息的增多有可能导致网络信息的拥塞。
注意网络协议本身对传输媒体长度,或者转发器转发信号的时间所作的限制。
网桥又称桥接器或信桥,工作在数据链路层,最早是为把那些具有相同物理层和媒体访问子层的局域网互连起来而设计的,后来也用于具有不同MAC协议的局域网的互连。
路由器在网络层工作,互连两个或多个独立的相同类型或不同类型的网络:
局域网与广域网的互连,局域网与局域网的互连。
路由器的主要功能就是进行路由选择。
当一个网络中的主机要给另一个网络中的主机发送分组时,它首先把分组送给同一网络中用于网间连接的路由器,路由器根据目的地址信息,选择合适的路由,把该分组传递到目的网络用于网间连接的路由器中,然后通过目的网络中内部使用的路由协议,该分组最后被递交给目的主机。
执行网络层以上高层协议的转换,或者实现不同体系结构的网络协议转换的互连部件称为网关(Gate-way),有时也被称为信关。
网关通常采用软件的方法予以实现,并且与特定的应用服务一一对应。
因特网简介
因特网是由许许多多属于不同国家、部门和机构的网络互连起来的网络(网间网),任何运行因特网协议(TCP/IP协议),且愿意接入因特网的网络都可以成为因特网的一部分,其用户可以共享因特网的资源,用户自身的资源也可向因特网开放。
从物理上看:
因特网是基于多个通信子网的网络。
TCP协议(传输控制协议--TransmissionControlProtocol)
因特网地址
目前因特网地址使用的是IPv4(IP第4版本)的IP地址,由32位二进制(4个字节)组成,通常用4个十进制来表示,十进制数之间用“.”分开。
A:
10100110011011110001100100101001
B:
10100110011011110001100100101001
C:
10100110011011110001100100101001
A类:
0+7bit+24bit(0.0.0.0~127.255.255.255)
B类:
10+14bit+16bit(128.0.0.0~191.255.255.255)
C类:
110+21bit+8bit(192.0.0.0~223.255.255.255)
D类:
1110+28bit+多地址投递
E类:
1111+···
子网掩码
A:
255.0.0.0
B:
255.255.0.0
C:
255.255.255.0
第六章
软件危机
在软件开发和维护过程中出现了一系列的严重问题。
同时由于计算机应用领域和硬件技术得到了飞速发展,软件的生产速度、质量和规模远远适应不了对软件需求,产生了所谓的“软件危机”。
“软件危机”的主要表现是:
软件的质量难以保证;
软件成本的增长难以控制;
软件开发的周期难以确定;
软件的维护非常困难。
软件生命期
软件生命周期的概念是从工业产品生存周期概念引用过来的。
一种产品从定货开始,经过设计、制造、调试、使用维护,直到该产品被淘汰不生产为止,这就是产品的生存周期。
瀑布模型是1976年由B.W.bohm首先提出的。
该模型的基本思想是:
将软件的生存周期划分为定义期、开发期与维护期三大阶段,每个阶段又分成几个具体步骤和相对独立的任务。
开发工作按规定的任务顺序自上而下、相互衔接的固定次序进行,如同自上而下的瀑布一样。
瀑布模型的特点
顺序性:
前一阶段的任务完全完成后才能进行下一阶段的任务。
依赖性:
后一步的实行必须在前一步没有错误隐患后才能进行,通过保证每个阶段的工作质量达到确保整个软件系统的质量的目的。
推迟性:
前阶段的工作越细后阶段的工作进行的就会越顺利。
宁慢勿快,致使整个软件工程设计工期推迟实现。
快速原型法模型
它的基本思想是回避(或暂时回避)传统的生存周期法中的一些难点,而从用户需求出发,快速建立一个原型,使用户通过这个原型初步表达出自己的要求,并通过反复修改、完善,逐步靠近用户的全部需求,最终形成一个完全满足用户要求的新体系。
快速原型法模型的特点:
一致性:
开发人员和用户在“原型”上达成一致。
双方有了共同语言,避免了许多由于不同理解而造成的错误。
提高了系统的实用性、正确性以及用户的满意度。
快捷性:
由于是对一个有形的“原型产品”进行修改和完善,即使前面的设计有缺陷,也可以通过不断地修改原型产品,最终解决问题。
缩短了开发周期,加快了工程进度。
低成本:
原型法本身不需要大量验证性测试以及前两点的原因,降低了系统的开发成本。
都包括定义、分析、设计、编码、测试、维护六种主要工作
概要设计主要有三类方法:
第一类是根据系统的数据流进行设计,称为面向数据流的设计或过程驱动设计,代表方法是结构化的设计方法(SD:
StructuredDesign)。
第二类是根据系统的数据结构进行设计,称为面向数据结构的设计或数据驱动设计,以Jackson系统开发方法为代表。
第三类是最新的面向对象的设计方法(OOD:
Object-OrientedDesign)。
模块化软件设计的基本概念和原理
(1)模块化
模块化就是将程序划分为若干个模块,每个模块完成一个特定的子功能的过程。
这些具有子功能的模块可以被集中起来组成一个整体以满足整个问题的需要,从而完成指定的功能。
(2)信息隐蔽与局部化
(3)模块的独立性
内聚性:
是对模块内部各种数据以及各种处理之间彼此结合的紧密程度的度量。
模块的内聚在系统的模块化设计中是一个关键因素。
耦合性:
是不同模块之间互相连接的紧密程度的度量。
模块之间的耦合程度对系统的可理解性、可靠性和可维护性具有重要的影响。
设计软件结构时要充分考虑模块的独立性原则,应力求高内聚性、低耦合性。
(4)模块划分的原则
提高模块的独立性,降低模块接口的复杂度。
确定适当的模块规模:
一个模块的语句数量尽量在30—50之间,模块太大会造成编程和测试的低效,而模块太小又会使系统杂乱。
选取合适的深度、宽度、扇入/扇出。
深度是指软件结构中的模块层数;
宽度是指软件结构中同层次上的模块总和的最大值;
扇入是指一个模块有多少个上级的模块直接调用;
扇出是指一个模块直接调用的下级模块总数。
深度可标志一个系统的大小;宽度可反映系统的复杂程度,一般来说宽度越大系统越复杂;一个好的系统的设计中,扇出的数值是3或4。
设计单入口/单出口的结构化模块。
结构化编程是将前一步完成的软件设计的结果,使用结构化的方法将其翻译成用某种指定的程序设计语言编写的程序。
软件测试的原则
测试工作不应由软件开发的个人或小组承担。
在计划测试时,不应默认为不会有错误。
对合法的和非法的输入条件都要进行测试。
某个模块中出现较多错误的概率与已经发现错误的个数成正比,即发现错误越多的模块,它依然存在错误的可能性就越大。
测试文件必须说明预期的测试结果,以同测试后的结果进行对照。
保留每一次测试的结果。
软件测试的方法
黑盒法又称为功能测试或数据驱动测试。
白盒法又称为结构测试或逻辑驱动测试。
软件测试的步骤
①模块测试(又称单元测试)
②组装测试(又称综合测试)
③确认测试
软件维护的内容
(l)改正性维护
(2)适应性维护
(3)完善性维护
(1)程序流程图
(2)N-S图又称方框图或盒图
(3)PAD图示符号
(4)PDL是一种半形式化的语言,也叫伪码。
数据流条目:
是对数据流程图中全部数据流的命名以及定义数据流的含义和内容。
描述一个数据流采用如下五种符号。
1)=:
表示“定义为”。
2)+:
表示由若干项连接组成。
3)[...]表示选择其[]内的若干项之一个。
4){...}表示由{}内的内容重复组成。
5)(...)表示()的内容可有可无。
结构化编程
结构化编程的基本思想:
①任何程序的形成和编写都必须按一定的规范和格式进行;
②按照自顶向下(分层)、逐步求精(细化)、模块化的原则编写程序;
③结构化的程序只能够由顺序、选择和循环三种基本结构构成并允许嵌套、每个程序模块应该单人口/单出口;
④结构化程序具有好的可读性。
面向对象方法的优点
(1)稳定性好
(2)可维护性好
(3)可重用性好
(4)一致性好