计算机软件技术基础习题答案_第1页
计算机软件技术基础习题答案_第2页
计算机软件技术基础习题答案_第3页
计算机软件技术基础习题答案_第4页
计算机软件技术基础习题答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

计算机软件技术基础习题答案1.5.1复习题1.解释计算机程序的概念。计算机程序(computerprograms),简称程序,是指计算机的指令序列。2.什么是源代码程序?源代码是指以程序设计语言编写的、可读的语句和声明的集合,程序设计人员的工作就是使用程序设计语言编写源代码,源代码经过编译后转变为计算机可以执行的程序。3.什么是可执行程序?可执行程序是指包含了计算机可以直接执行的指令的文件。为了与源代码相区别,可执行程序又被称为二进制代码。4.什么是计算机软件技术?计算机软件技术是与软件的设计、实施和使用相关的多种技术的统称。软件的设计与实施涉及到程序设计语言、算法和数据结构、数据库系统、多媒体、软件工程等技术,软件的使用涉及到质量、可靠性、专利、知识产权、道德、法律等管理和技术。5.如何对软件进行分类?可以根据软件的功能进行分类,也可以根据软件的不同开发方式进行划分,还可以从软件的使用方式进行分类。根据软件的功能来划分是一种主要的分类方式,可以把软件分为系统软件、编程软件和应用软件3大类型。6.什么是系统软件?系统软件(systemsoftware)指管理和控制计算机硬件、使计算机工作的软件。系统软件是一种非常重要的软件类型,它为用户提供了一种操作计算机硬件的便捷方法,为其他程序提供了运行的基础。7.常见的系统软件有哪些?根据系统软件的功能特点,可以继续划分为操作系统、设备驱动程序、实用工具以及其他系统软件。8.什么是操作系统?操作系统(operatingsystem,OS)是位于计算机系统中的硬件和软件之间的接口,负责管理和协调计算机硬件的操作和计算机有限资源的共享。9.列出3个典型的操作系统。主要的操作系统包括微软公司的Windows系列操作系统、Unix和类Unix操作系统、苹果公司的MacOSX操作系统、Linux操作系统等。任意列出3个即可。10.什么是编程软件?编程软件(programmingsoftware)又称为编程工具(programmingtool)或软件开发工具(softwaredevelopmenttool),是一种软件开发人员用于创建、调试、维护其他程序和应用软件的软件工具。11.IDE缩写的中文含义是什么?集成开发环境(integrateddevelopmentenvironment,IDE)12.什么是应用软件?应用软件(applicationsoftware)是指在计算机上运行的、支持或改进软件用户工作的计算机程序。或者说,应用软件可以直接完成终端用户的工作。13.如何理解业务软件的概念?业务软件(businesssoftware)是有助于提高业务生产效率或者度量业务生产效率的应用软件。业务软件又可以细分成多种类型,包括企业软件、企业基础设施软件、信息工作者软件等。14.什么是软件架构?软件架构(softwarearchitecture)有时也称为软件体系结构,是对软件系统总体结构的抽象表示,主要描述软件系统的组件、组件的接口特征以及这些组件之间的关系。软件架构的研究内容主要包括软件架构设计模式、软件架构描述语言、软件架构文档以及形式化方法。15.WYSIWYG是什么意思?whatyouseeiswhatyouget,所见即所得2.6.1复习题1.什么是机器语言?机器语言(machinelanguage)也称为机器代码指令(machinecodeinstruction),是指直接用二进制的机器代码指令编写的、由处理器执行的程序就是机器语言程序。2.什么是汇编语言?汇编语言(assemblylanguage)是指用符号代替数字机器代码指令和其他常量进行编程的程序设计语言。3.什么是1GL/2GL/3GL/4GL/5GL?机器语言是第一代语言(firstgenerationlanguage,1GL)。汇编语言是第二代语言(2GL)。第三代语言(3GL)是从2GL精炼而来的。2GL侧重于改进语言的逻辑结构,3GL主要是提高了语言的用户友好性。许多常见的语言都是3GL,例如FORTRAN、COBOL、BASIC、C、C++、VisualBasic、Java、C#等,都是典型的3GL。第四代语言(4GL)是从3GL演变而来的,具有更高抽象级别程序设计语言或程序设计环境。与3GL相比,4GL是针对特定目的的、面向问题和系统工程的程序设计语言。5GL关注的是约束条件和逻辑,而不是如何去实现算法。5GL主要用于解决人工智能领域中的问题。4.FORTRAN语言的名称有什么含义?FORTRAN是公式翻译系统(formulatranslatingsystem)的缩写,侧重于科学计算。5.COBOL语言的主要作用是什么?COBOL是通用商业语言(commonbusiness-orientedlanguage)的简称,主要用于商业、金融、行政等行业领域。6.BASIC语言的主要作用是什么?BASIC(beginner’sall-purposesymbolicinstructioncode,针对初学者的一般用途的符号指令代码)语言。该语言采用了解释计算方式,具有简单易学的特点。7.C语言是如何产生的?1972年,AT&T贝尔实验室的DennisTrichie在开发Unix操作系统的过程中,提出了C程序设计语言。之所以称为C语言,是因为其来自早期的B(BCPL)语言。8.VisualBasic语言与BASIC语言有什么关系?VisualBasic是微软公司于1991年发布的、基于COM模型的、具有集成开发环境的第三代事件驱动式程序设计语言。9.Java语言的特点是什么?Java语言的主要特点包括:纯粹的面向对象语言、跨平台、编译—解释执行、支持多线程、支持分布式应用等。10.ColdFusion语言的作用是什么?一种用于Web开发的语言。11.什么是指令式程序设计语言风格?指令式程序设计风格(imperativeprogrammingparadigm)是指根据改变程序状态的语句描述计算过程的程序设计风格。也就是说,指令式程序包含了计算机按照序列执行的指令或语句,描述计算机如何执行相应的操作。12.什么是过程式程序设计语言?过程式程序设计语言(proceduralprogramminglanguages)是一种为程序设计人员提供准确定义任务执行步骤的语言。在过程式程序设计语言中,程序设计人员可以指定计算机将要执行的详细的算法步骤。13.面向对象程序设计语言有哪些特点?面向对象程序设计语言(object-orientedprogramminglanguages,OOP语言)是指采用封装性、继承性、模块化、多态性等面向对象技术进行程序设计的语言。这种语言采用由数据和方法组成的对象结构和对象之间的关系进行应用程序的设计。对象、类、实例、方法、消息、继承、封装、多态等特性都是面向对象程序设计语言中的基本概念。目前,大多数的程序设计语言都是面向对象程序设计语言或具备面向对象技术特征,14.特定领域语言的作用是什么?特定领域语言(domainspecificlanguages)是用于解决特殊领域中特殊问题表示技术和解决方案的程序设计语言。典型的特定领域语言包括正则表达式、层叠样式表(cascadingstylesheets,CSS)、SQL查询语句、标记语言(例如HTML、XML等)等。15.什么是脚本语言?脚本语言(scriptinglanguage)是一种嵌入在另一种语言中、可以控制应用程序的程序设计语言。16.解释概念:语句、变量、表达式、运算符、赋值、注释。语句是程序设计语言的重要概念。在指令式程序设计语言中,语句是组成语言的最小的独立元素。语句本身是由许多语言元素组成的。在语句中,常用的语言元素包括变量、常量、运算符、表达式、函数、赋值等。变量是一种其值可变的标识符。表达式是构成语句的重要元素。在程序设计语言中,表达式是常量、变量、运算符、函数调用等按照优先级规则组成的序列。运算符可以用来操作数据和比较信息等。程序设计语言中的运算符是类似于数学运型。赋值是改变变量值的一种基本手段。注释是对代码或算法的详细描述。在处理注释时,任何编译程序或解释程序都会忽略注释。17.基本数据类型包括哪些数据类型?一般地,基本数据类型包括:整数类型、浮点数据类型、字符类型和字符串类型、布尔类型、枚举类型等。18.解释概念:数组类型、记录类型、指针类型。数组是描述一组具有相同数据类型的变量。这一组变量经常被称为数组变量、数组值或简称为数组。记录类型,又称为元组类型或结构类型,是一种定义多个内存位置连续的变量的数据类型。记录中的各个组成部分,均称为记录域。指针变量也是一种数据类型,其值通过地址指向另一个变量值。19.什么是程序控制结构?有哪些典型的程序控制结构?程序在执行过程中,可以根据需要改变程序的执行顺序。程序有3种基本结构类型,即顺序结构、条件分支结构和循环结构。20.什么是子例程?子例程是某个主程序的一部分代码,该代码执行特定的任务并且与主程序中的其他代码相对独立。子例程又被称为子程序、过程、方法、函数等。在主程序中可以调用子例程来执行。3.9.1复习题1.简述多媒体的概念。多媒体是指通过计算机或其他媒介传播的文字、图形、图像、声音、视频、动画等多种媒体的组合。2.分析多媒体的特点。与传统的数值相比,多媒体具有许多特性,包括信息载体的多样性、集成性、交互性、时间相关性、数据量大等。3.什么是多媒体技术?根据技术的作用,可以将多媒体技术划分为多媒体数据压缩技术、多媒体软件技术、多媒体硬件平台技术、多媒体数据管理技术、多媒体展示技术、多媒体人机交互技术、多媒体通讯技术等。根据多媒体元素的特点,可以把多媒体技术划分为图形处理技术、图像处理技术、音频处理技术、动画处理技术、视频处理技术等。因此,多媒体技术是指对多媒体的采集、加工处理、存储、传输、应用等相关技术,也可以说,多媒体技术是图形、图像、音频、动画、视频等相关技术的集成。4.什么是有损压缩方法?什么是无损压缩方法?有损压缩方法(lossycompression)是指还原后的数据与压缩前的原始数据不相同,数据中的部分信息在压缩过程中损失了。无损压缩方法(losslesscompression)是指还原后的数据与压缩前的原始数据是完全相同的,压缩过程中没有丢失原始数据的信息。5.JPEG和MPEG分别是什么意思?JPEG是JointPhotographicExpertsGroup(静态图像专家组)的简称,是静态图像压缩方法,是Internet上使用最为广泛的图像格式。这是一种有多种压缩程度的有损压缩方法,其文件名后缀包括.jpg、.jpeg等。数字视频音频的主要压缩标准是MPEG(MovingPictureExpertsGroup,动态图像专家组)。6.简述RLE的基本思想。RLE是一种简单的数据无损压缩方法。一般地,RLE的编码格式为<f,c,n>,其中f表示压缩标志,c表示字母字符,n表示字面字符的计数器。7.简述Huffman编码法的基本过程。Huffman编码法是DavidHuffman于1952年在其博士论文中提出的,是一种基于概率的、变长度编码表进行压缩的编码方法,目的是找到最有效的二进制编码。Huffman编码法是一种数据无损压缩方法.8.比较矢量图和位图的特点。由点、直线、曲线、多边形等基于数学公式的几何图形构成的图像称为矢量图(vectorgraphics)。矢量图采用数学公式来存储几何图形。位图(bitmap,pixmap)是指由像素点直接构成的图像。BMP就是一种典型的位图格式。矢量图是在运行时创建的,是计算机根据收到的指令绘制图像,而不是显示已经创建好的图像。因此,矢量图是可伸缩的,其分辨率或图像质量不会下降。同样的矢量图文件,当矢量图被放大时,一般都能比较清晰的显示图形。9.什么是加色模型?RGB是什么意思?加色模型指颜色是通过组合三种原色(红色R、绿色G和蓝色B)光源而生成的。这种模型也称为RGB颜色模式。10.什么是减色模型?CMYK是什么意思?在减色模型中,利用涂料或墨水吸收色谱中的一部分颜色,将其余颜色反射到眼睛中,形成颜色。CMYK颜色模式就使用了减色模型。在进行打印时,青色(Cyanic)、洋红色(Magenta)、黄色(Yellow)和黑色(blacK,black的简称是K,B指蓝色)墨水被打印出形成全色图形。11.简述TIFF、BMP、GIF、PNG、SVG图像文件格式的特点。TIFF(taggedimagefileformat,标记图像文件格式)是一种主要用于桌面印刷的图像文件格式。在图像扫描、传真、文字处理、光学字符识别等领域都有广泛地应用。BMP是微软操作系统中处理图像的文件格式。BMP文件是非压缩的,因此BMP文件的字节比较大。BMP的优点是结构简单,可以应用于大多数应用程序中。GIF(graphicsinterchangeformat,图像互换格式)是CompuServe公司于1987年开发的图像文件格式。GIF文件采用了基于LZW算法的连续色调的无损压缩算法进行压缩,压缩率一般在50%左右,它不属于任何应用程序。PNG(portablenetworkgraphic,流式网络图形格式)是一种位图文件存储格式,使用了基于LZ77派生的无损数据压缩算法。PNG的一个重要目的是在Internet上替代GIF文件格式。SVG的英文全称为ScalableVectorGraphics,意思为可缩放的矢量图形。它是基于XML(ExtensibleMarkupLanguage),由WorldWideWebConsortium(W3C)联盟进行开发的。是一种开放标准的矢量图形语言12.简述数字音频的特点。数字音频是指用数字表示的声音波形。数字化的录音过程是,每隔n分之一秒,就采样一次声音,以位或字节的形式存储为数字。数字录音的质量取决于声音采样的采样率和每个样本值用多少数字表示的采样深度。采样率的单位是KHz,表示每秒钟采样的千次数。13.简述CD、WAV、AU、MIDI、RA、MP3、WMA音频文件格式的特点。CD(compactdiscdigitalaudio,光盘数字音频)是1980年飞利浦和索尼公司联合发布的用于存储声音信号轨道,例如音乐、歌曲的标准CD格式。CD的采样率是44.1KHz,16位采样深度,立体声。由于最早的数字编码方法标准书的封面是红色的,因此CD又称为红皮书标准。MIDI(musicalinstrumentdigitalinterface,音乐设备数字接口)是1982年发布的,是为电子音乐设备和计算机之间的通信而开发的通信标准。MIDI允许不同制造商生产的音乐和声音合成器通过在设备之间连接的电缆发送消息,实现相互通信。MIDI提供的协议用于传递乐谱的具体描述,例如音符、音符序列、演奏这些音符的乐器等。MIDI数据不是数字化的声音,而是以数字形式存储的乐谱速记符号。MIDI文件是一组带有时间戳的、记录了演奏音乐动作的命令。因此,MIDI文件往往比数字化波形文件小得多。WAV(waveformaudioformat,波形音频文件格式)是微软开发的用于存储音频字节流的音频文件标准。WAV是一种非压缩的音频格式,是Windows系列操作系统中使用的主要音频文件。WAV文件尺寸比较大,大约每分钟10MB。苹果Macintosh计算机系统使用的主要音频文件格式是AIFF。AIFF(audiointerchangefileformat,音频交换文件格式)是一种用于在个人计算机和其他电子音频设备上存储声音数据的音频文件格式。AIFF本身是一种非压缩的音频格式,经过压缩后的AIFF文件称为AIFF-C或AIFC。AIFF是一种音频视频应用程序使用的专业标准,其文件名后缀是.aiff。德国爱尔兰根的Fraunhofer研究所开始研究致力于高质量、低数据量的声音编码。20世纪80年代中期,该研究所在德国取得了MP3的专利权。1991年,这项技术被提交到国际标准组织,整合进了MPEG-1标准。MP3(MPEG-1AudioLayer3)是一种基于有损数据压缩方法生成的音频文件格式。正常人耳只能听到频率在20Hz至20KHz的声音,音频文件中包含的一些声音超出了人耳所能听到的范围。将音频文件压缩成MP3文件的基本思想是利用MP3编码器找到并删除音频文件中人耳听不到的声音。MP3的压缩率高达10:1-12:1,其主要参数如下:采样频率44.1kHz、采样精度16位、立体声。WMA(Windowsmediaaudio,Windows媒体音频)是微软开发的音频数据无损压缩技术,可以生成音频文件或音频编码。WMA的主要特点是压缩率比较高,音质高,与WindowsMediaPlayer无缝捆绑,适于在网络上播放等。RA是RealAudio的缩写,是RealNetworks公司于1995年开发的专有的音频文件格式。该格式采用一系列的音频编码方法,采用了流音频格式,可以在网上边播放边下载。14.什么是帧率?帧率(framepersecond,FPS),也称为画面更新率,是指视频格式每秒钟播放的静态画面数量。典型的帧率由早期的每秒6或8张,至现今的每秒120张不等。PAL与SECAM规定其画面更新率为25FPS,NTSC则规定其帧率为29.97FPS,电影胶卷则是以24FPS在拍摄。要达成最基本的视觉暂留效果大约需要10FPS的速度。15.简述MPEG、AVI、RMVB、WMV视频文件格式的特点。MPEG包括MPEG-1(1993)、MPEG-2(1995)、MPEG-4(1998)、MPEG-7(2001)等在内的多种视频格式。大部分的VCD都是用MPEG-1格式压缩的,使用MPEG-1压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右。MPEG-2是制作DVD和数字电视的标准。使用MPEG-2压缩算法压缩一部120分钟长的电影可以压缩到5-8GB的大小,但是其图像的分辨率和质量更高。采用MPEG-4技术,场景可以实现多视图、多图层、多音轨、立体声和三维视角,使得虚拟现实成为可能。MPEG-7可以更好地描述多媒体的内容。AVI(AudioVideoInterleaved,音频视频交错)是微软公司于1992年发布的多媒体技术。AVI文件可以包含音频和视频两种数据,支持多种流音频和视频。WMV(Windowsmediavideo,Windows媒体视频)是微软公司发布的压缩视频文件格式。微软公司希望WMV能取代RealVideo之类的技术标准。WMV具有可扩充的媒体类型、本地或网络回放、多语言支持等特点。RMVB(RealMediavariablebitrate,RealMedia可变比特率)是RealNetworks公司开发的可变比特率的多媒体文件格式。RMVB是一种由RM视频格式升级延伸出来的视频格式,其主要特点是打破了原先RM格式的那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源。静止和动作场面少的场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样,在保证了静止画面质量的前提下,大幅提高了运动图像的画面质量。16.简述动画的基本原理。动画的基本原理是“视觉暂留”的生理学现象和“相似”的心理学现象。人眼看到物体后,其影像会在视网膜上短暂地停留一会儿(一般认为1/24秒内不会消失),再加上大脑要完成一个感知的过程,当一系列图像变化非常细微,且变化速度非常快时(每秒至少24帧画面),他们看起来似乎混合在一起了,从而构成一种运动的视觉假象。17.简述多媒体软件的开发过程。多媒体软件开发过程是指多媒体软件的规划、需求分析、故事情节板绘制、脚本编写、软件结构设计、多媒体元素准备、创建动画程序、测试、试运行和运行的整个过程。4.11.1复习题1.什么是算法?一般地认为,算法(algorithm)是一系列有限的解决问题的指令。也就是说,算法是指能够对一定的规范的输入,在有限时间内获得所要求的输出。算法也可以理解为是由规定的运算顺序所构成的完整的解题步骤。还有些专家认为,算法是一个有穷规则的集合,这些规则规定了解决特定问题的运算序列。2.算法的基本特征是什么?有穷性是指任何算法在经过有限的步骤之后总会结束,步骤的数量是一个合理的数字。实际上,算法的有穷性包含了时间的含义。如果某种算法从理论上可以实现,但是运行时间过长(例如要运行200年)则可能失去了实际的应用价值。确定性是指算法的每一个步骤都是精确定义的,在任何情况下这些步骤都是严密的、清晰的。该特征是指算法不允许出现模棱两可的解释、不允许有多种不同的理解,不同的人、不同的环境下对同一种算法的理解应该是明确的、唯一的。输入是指算法开始运算时给定的初始数据,这些输入是与特定的运算对象关联的。输出是指与输入相关的运算结果,反映了对输入数据加工后的情况。可行性是指算法的每一个步骤都是可以实现的,即使人们用笔和纸进行手工运算,那么在有限的时间内也是可以完成的。3.列出算法的表示方法。表示算法的方式有多种,常用的方法包括自然语言、流程图、程序设计语言、形式化方法等。不同的表示方法有不同的特点和作用。4.一般流程图有哪些图形元素?在一般流程图中,主要的图形元素包括开始/结束标志、箭线、处理框、输入/输出框、条件判断框等。5.NS图的特点是什么?NS图是Nassi-Shneiderman图的简称,有时也称为N-S图、盒图等,是1972年IsaacNassi和BenShneiderman提出的结构化表示程序的图形。NS图遵循自顶向下的原则,将问题对象逐步分解为一个个小问题、再继续分解,直到可以使用简单的语句或控制流程图表示为止。6.什么是形式化方法?形式化方法是一种描述计算机软件和硬件系统思想的数学方法。形式化方法主要用于规格说明、设计开发、系统验证等。使用形式化方法的主要好处是可以准确地描述系统或算法的思想,可以满足工程原理验证、执行性能估算、系统可靠性验证等作用。7.什么是计算复杂度?衡量计算复杂度的主要标准是什么?计算复杂度表示应用一种算法需要付出多大的努力或成本是多少。计算成本可以用多种不同的标准衡量,时间成本和空间成本是两个最常用的成本标准。时间成本是指程序处理数据所耗费的时间度量,空间成本则是指程序处理数据时所耗费的存储空间的度量。8.列出常见的算法类型。按照实现方式分类,可以将算法分为递归算法、迭代算法、逻辑算法、串行算法和并行算法和分布式算法、确定性算法和非确定性算法、精确算法和近似算法等。如果根据设计方法来分类,可以将算法分为穷举法、分治法、线性规划法、动态规划法、贪心算法、回溯法等。9.解释下列算法的概念:迭代算法、穷举法、分治法、逻辑算法、确定性算法、精确算法、近似算法。迭代算法(iterationalgorithms)是采用计算机解决问题的一种基本方法。该算法主要是利用计算机运算速度快、适合做重复性操作的特点,让计算机重复执行某种结构或一组指令或一些步骤,在每次执行这种结构(或指令或步骤)时,都从变量的原值推出它的一个新值。也就是说,迭代算法通过从一个初始值出发寻找一系列近似值来解决问题。迭代算法的基本步骤包括确定迭代变量、建立迭代关系式、对迭代过程和结束方式进行控制。穷举法(exhaustivesearch),又称为强力搜索法(brute-forcesearch)、枚举法(enumerationmethod),是一种解决问题的基本方法,该方法枚举出所有可能的解决方案,然后对每一个可能的解决方案进行测评以便找到满足条件的方案。分治法(divideandconqueralgorithm)的基本思想是把一个大问题分解成多个子问题,这些子问题可以继续再分解(递归方式),直到分解后的子问题容易解决为止,然后把这些子问题的解决方案组合起来得到最终的结果。逻辑算法(logicalalgorithms)又称为逻辑演绎、演绎逻辑,是一种以一般概念、原则为前提,推导出个别结论的思维方法,即根据某类事物都具有的一般属性、关系来推断该类事物中个别事物所具有的属性、关系的推理方法。确定性算法(deterministicalgorithms)是最常见到的算法,其计算行为是可预测的。在确定性算法中,给定一个特定的输入,总是会产生相同的输出结果,且其计算过程总是一样的。精确算法(exactalgorithms)是指总是可以找到最优解的算法。近似算法(approximatealgorithms)则是指寻找接近最优解的满意解的算法。10.解释下列算法的概念:并行算法、串行算法、分布式算法、线性规划法、动态规划法、贪心算法、回溯法。如果算法指令在计算机中执行的过程是一个指令接着一个指令,在指定的时刻只能有一个指令在执行,那么该算法是就串行算法(serialalgorithms)。并行算法(parallelalgorithms)是并行计算中的重要问题,指在并行机上同时用很多个处理器联合求解问题的方法。分布式算法(distributedalgorithms)是一种可以借助计算机网络进行运算的方法。线性规划法(linearprogrammingmethod,LPM)又称为线性规划技术,是一种解决多变量最优决策的典型方法。线性规划法是指在各种相互关联的多变量约束条件下,解决一个对象的线性目标函数最优化的问题。其中,目标函数是决策者要求达到目标的数学表达式,用一个极大或极小值来表示;约束条件是指实现目标的能力资源和内部条件的限制因素,用一组等式或不等式表示。动态规划法(dynamicprogrammingmethod,DPM)是1953年美国应用数学家RichardBellman提出用来解决多阶段决策过程问题的一种最优化方法。多阶段决策过程是把研究问题分成若干个相互联系的阶段,每一个阶段都做出决策,从而使整个过程达到最优化。动态规划法是一种多阶段决策方法,其基本思想是按时空特点将复杂问题划分为相互联系的若干个阶段,在选定系统行进方向之后,从终点向始点逆向计算,逐次对每个阶段寻找决策,使整个决策过程达到最优。该方法又称为逆序决策过程。贪心算法(greedyalgorithms)类似于动态规划法,在对问题求解时,先把问题分成若干个子问题,总是贪心地做出在当前看来是最好的选择。也就是说,贪心算法不是从整体最优上加以考虑,所做出的决策仅是在某种意义上的局部最优解。回溯法(backtrackingalgorithms)是一种选优搜索法,按选优条件向前搜索,以达到目标。当搜索到某一步时,发现原先选择并不优或达不到目标,就退回上一步重新选择。这种走不通就退回再走以便达到优化目的的方法称为回溯法。11.简述递归法的思想和特征。递归法是一种思考和解决问题的方式,是计算机科学的核心思想之一。递归法的主要思想是将一个初始问题分解成为比较小的、有着相同形式的子问题,直到子问题足够简单、能够被理解并解决为止,然后再将所有子问题的解组合起来得到初始问题的结果。每个递归过程都包含如下两个步骤:(1)一个能够不使用递归方法可以直接处理的基本情况;(2)一个常用的方法,能够将一种特殊的情况化解为一种或多种规模较小的情况,持续下去,最终将问题转换为对基本情况的求解。12.解释下列搜索算法的概念:顺序搜索、二分搜索、散列搜索。顺序搜索(sequencesearch)是一种最基本的搜索算法,该算法在一组数据元素组成的集合中按照关键项搜索指定的数据元素。这些数据元素组成的集合往往是数组或链表等线性结构,因此顺序搜索也称为线性搜索(linearsearch)。二分搜索算法(binarysearch)是指在一个有序数据集中,假设数据元素递增排列,搜索项与数据集的中间位置的数据元素进行比较,如果搜索项小于中间位置的数据元素,则只搜索数据集的前半部分;否则,搜索数据集的后半部分。如果搜索项等于中间位置的数据元素,则返回该中间位置的数据元素的地址,搜索成功结束。散列搜索的主要思想是根据指定的关键项值,计算其散列地址,然后根据散列地址在散列表中搜索。如果该地址中的数据元素为空,则搜索失败;如果该地址中有数据元素存在,且该数据元素的关键项值与待搜索的关键项值相等,则搜索成功;如果该地址中有数据元素存在,但该数据元素的关键项值与待搜索的关键项值不相等,则按照散列冲突解决方法在下一个散列地址中搜索。13.解释下列排序算法的概念:冒泡排序、插入排序、选择排序。冒泡排序(bubblesort)是一种简单的互换类排序算法,其基本思想是比较序列中的相邻数据项,如果存在逆序则进行互换,重复进行,直到在一次比较过程中没有互换发生为止。插入排序(insertionsort)是一种将无序列表中的数据元素通过依次插入到已经排序好的列表中的算法。插入排序算法具有实现简单、对于少量数据排序效率高、适合在线排序等特点。选择排序算法(selectionsort)的主要思想是,扫描数据序列,找到最小的数据,将该数据交换到序列最前面的位置,然后对其余数据序列重复前面的步骤直到数据全部排序为止。14.什么是数据结构?数据结构的研究内容是什么?数据结构是由数据元素根据某种逻辑关系组织起来以便有效使用的数据元素的集合。数据结构的研究内容主要包括3个方面:数据的逻辑结构、数据的存储结构和数据的运算方式。数据逻辑结构是指对数据元素之间的逻辑关系的描述;数据必须在计算机内存储,数据的存储结构是数据结构的物理实现形式,是其在计算机内的关系表示,数据的存储结构也称为数据的物理结构;数据运算方式是指在分析研究数据结构时,需要同时讨论在该类数据上执行的运算才有意义。15.什么是集合结构?说出集合结构的典型操作。集合(set)是一种用于存储数据的简单数据结构,数据元素之间没有特定的顺序而且不能重复。如果集合中的数据元素在使用过程中不再改变,那么这种集合称为静态集合,静态集合只能执行查询操作。如果集合中的数据元素可以在使用过程中改变,那么这种集合称为动态集合,动态集合可以执行插入、删除、更新等操作。集合结构的典型操作包括:build(x1,x2,…,xn):创建一个包含了x1,x2,…,xn数据的集合;element_of(x,S):检查S集合中是否存储数据x;empty(S):检查S集合是否为空;size(S):返回S集合中的数据元素的数量;enumerate(S):按照任意顺序列出S集合中的数据;pick(S):返回S集合中的任意一个数据。16.什么是线性表?线性表的基本特点是什么?列出线性表的基本操作。线性表(linearlist)是由n(n≥0)个数据元素组成的有限序列(a1,a2,…,an),该序列存在唯一的一个第一元素和唯一一个最后元素。当n=0时,线性表为空表。线性表序列中的每个数据元素,除了第一个之外,都有且仅有一个前驱元素;除了最后一个数据元素之外,都有且仅有一个后继元素。在该序列中,所有的数据元素都有相同的结构。线性表的基本操作如下:build(L):创建新表L;setNull(L):置空表L;length(L):求表L的长度,或者求表中元素个数;get(L,i):取表中第i个元素(1≤i≤n);prior(L,i):取第i个元素的前驱元素;next(L,i):取第i个元素的后继元素;locate(L,x):返回指定元素x在表L中的位置;insert(L,i,x):在表L中的第i个位置插入元素x;delete(L,x):删除表L中指定的元素x;sort(L):排序表L中的元素;empty(L):判别表L是否为空。17.链表有哪些特点?链表(linkedlist)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就能够访问整个结点序列。也就是说,结点包含两部分信息:一部分用于存储数据元素的值,称为信息域;另一部分用于存储下一个数据元素地址的指针,称为指针域。链表中的第一个结点的地址存储在一个单独的结点中,称为头结点或首结点。链表中的最后一个结点没有后继元素,其指针域为空。18.树的基本特点是什么?列出树的主要运算方式。树结构中有许多节点。每个节点既可以是一个值,也可以是包含了一组值,甚至可以是另外一个独立的数据结构。在树结构中,根(root)是起始节点。每个节点有零个或一个或多个子节点(childnode)。有子节点的节点称为子节点的父节点(parentnode)。一般地,在通常绘制的树结构图中,子节点总是位于父节点之下。一个子节点最多只能有一个父节点。没有子节点的节点就好象大自然中的树叶一样,被称为叶子节点(leafnode)。在树结构中,节点的高度是从该节点开始向下到叶子节点的最长的路径。树的高度是指根节点的高度。树的主要运算包括:创建树;列出树的所有数据元素;列出树的部分数据元素;在树中搜索指定的数据元素;在树的指定位置增加数据元素;在树中找到指定节点的父节点;在树中找到指定节点的子节点;删除指定的某个数据元素;删除指定的子树;增加一个数据元素;增加一个子树;计算树的高度。19.什么是二叉树?简述二叉树中序遍历算法的基本思想。二叉树是指父节点最多有两个被称为左、右子节点的树。下面给出二叉树的递归定义。二叉树T或者为空或者符合下面的描述:(1)T有一个特殊的节点,称为根节点;(2)T有两个节点集合,LT和RT,分别称为T的左子树和右子树;(3)LT和RT都是二叉树。在中序遍历算法中,遍历二叉树的顺序是:遍历左子树、访问节点、遍历右子树。。通过中序遍历算法访问节点得到的节点序列称为中序序列。20.什么是图?图(graph)是由一个顶点集V和一个边集E组成的数据结构,其中E是顶点连接对。如果用G表示图,则G=(V,E)。21.什么邻接矩阵?什么是邻接表?设G是一个有n(n>0)个顶点的图,V(G)={v1,v2,…,vn},则邻接矩阵AG是一个n阶二维矩阵。在该矩阵中,如果vi至vj有一条边,则(i,j)项的值为1,否则为0。G是一个有n(n>0)个顶点的图,V(G)={v1,v2,…,vn}。在邻接表中,每个顶点v都对应着一个链表,该链表的每个节点都包含一个顶点u,且(v,u)∈E(G)。因为图中有n个顶点,所以可以利用一个长度为n的数组A,A(i)指向第i个顶点对应的链表的第一个节点,链表由顶点vi的全部邻接顶点组成。22.简述深度优先遍历和广度优先遍历算法的基本思想。深度优先遍历算法的基本思想是:假设遍历过程中访问到顶点v,与顶点v邻接的顶点分别是w1、w2、…、wn。下一步访问的顶点是w1,其他顶点等待访问。顶点w1访问之后,再遍历所有与顶点w1相邻的顶点。直到与顶点w1相关的所有顶点访问结束之后,再依次访问顶点w2、…、wn,直到所有顶点访问结束为止。广度优先遍历算法的基本思想是:假设遍历过程中访问到顶点v,与顶点v邻接的顶点分别是w1、w2、…、wn。下一步访问的顶点依次是w1、w2、…、wn,这些顶点访问之后,再依次访问与这些顶点相邻的顶点,直到所有顶点访问结束为止。5.7.1复习题1.简述数据库技术的演变过程。从历史的发展来看,信息技术的快速发展、社会对信息需求的不断增强、信息资源的作用日益显现,是推动数据库技术发展的主要动力。从数据管理的实践来看,数据库技术的演变过程是从手工管理、面向文件的数据管理阶段逐渐向面向数据库系统的数据管理阶段发展的过程。2.解释:数据冗余性、数据不一致性。数据冗余性(dataredundancy):是指同一个信息在多个数据文件中同时出现。当多个不同的部门独立采集同一种信息时,就发生了这种冗余性。数据不一致性(datainconsistency):是指由于同一种信息数据在多处采集和维护,有可能造成同一种信息有不同的数据表示。3.简述数据库管理系统阶段的特点。(1)使用复杂的数据模型表示结构。在这种系统中,数据模型不仅描述数据本身的特征,而且还要描述数据之间的联系。这种联系通过存取路径来实现。通过所有存取路径表示自然的数据联系是数据库系统与传统的文件系统之间的本质区别。这样,所要管理的数据不再面向特定的某个或某些应用,而是面向整个应用系统,从而极大地降低了数据冗余性,实现了数据共享。(2)具有很高的数据独立性。数据的逻辑结构与实际存储的物理结构之间的差别比较大。用户可以使用简单的逻辑结构来操作数据,而无需考虑数据的物理结构,该操作方式依靠数据库系统的中间转换。在物理结构改变时,尽量不影响数据的逻辑结构和应用程序。这时,就认为数据达到了物理数据的独立性。(3)为用户提供了方便的接口。在该数据库系统中,用户可以非常方便地使用查询语言,例如SQL(structuredquerylanguage,结构化查询语言)或实用程序命令来操作数据库中的数据,也可以以编程方式(例如在高级程序设计语言中嵌入查询语言)操作数据库。(4)提供了完整的数据控制功能。这些功能包括并发性、完整性、可恢复性、安全性和审计性。并发性是允许多个用户或应用程序同时操纵数据库中的数据,而数据库依然保证为这些用户或应用程序提供正确的数据;完整性是指始终包含正确的数据,例如通过定义完整性的规则使数据值可以限制在指定的范围内;可恢复性是指在数据库遭到破坏之后,系统有能力把数据库恢复到最近某个时刻的正确状态;安全性是指只有指定的用户才能使用数据库中的数据和执行允许的操作;审计性是指系统可以自动记录所有对数据库系统和数据的操作,以便跟踪和审计数据库系统的所有操作。(5)提高了系统的灵活性。对数据库中数据的操作既可以以记录为单位,也可以以记录中的数据项为单位。例如,在SQL语言中,可以使用SELECT语句指定记录或记录中的数据项。4.解释下面的概念:数据库、数据库管理系统、数据库系统、数据库技术。数据库(database)是采用计算机技术统一管理的相关数据的集合,数据库能为各种用户共享,具有最小冗余度、数据之间联系密切、有较高的数据独立性等特点。数据库管理系统(databasemanagementsystem,DBMS)是位于用户与操作系统之间的一层数据库管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据库控制等。DBMS总是基于某种数据模型的,这些模型可以分为层次模型、网状模型、关系模型、面向对象模型等。例如,MicrosoftSQLServer是一种基于关系模型的DBMS,我们称这种DBMS为关系型DBMS。数据库系统(databasesystem,DBS)是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统,是采用数据库技术的计算机系统。数据库技术是研究数据库的基本原理、组成结构、数据存储、结构设计、系统管理和应用的一门计算机软件学科。5.什么是数据模型?什么是数据建模?数据模型(datamodel)是描述数据如何表示、如何访问的抽象模型,常用来定义特定领域的数据元素和数据元素之间的关系。在程序设计语言中,数据模型也常常称为数据结构。在数据库领域中建立的数据模型称为数据库模型。数据库模型(databasemodel)是描述数据库结构和使用的方法和技术。数据建模(datamodeling)是采用特定的方法和技术创建具体的数据模型的过程,用于定义和描述数据集合。如果在数据库中建立数据模型,那么这种建模技术称为数据库建模(databasemodeling)。6.列出常见的数据库模型并简述这些模型的特点。常见的数据库模型包括层次模型、网状模型、关系模型、对象关系模型、对象模型、多维模型等。层次模型(hierarchicalmodel)是一种按照树状结构来组织数据的方式,层次模型主要用于早期大型机的数据库管理系统中和对XML文档数据的描述。这种模型适合描述两种数据之间存在一对多的父子关系的客观对象,例如组织结构、产品结构、生物分类、XML文档等数据。网状模型(networkmodel)是一种按照网状结构来组织数据的方式,在此结构中,每个节点都可能与其他节点之间建立关系。网状模型适合于描述具有冗余数据的数据元素之间的关系。关系模型(relationalmodel)最早是由E.F.Codd于1970年基于关系代数理论提出的,目的是使得数据库管理系统独立于各种应用程序。关系模型的基本数据结构是用来描述实体的表,表是数据行的集合,表中的列描述了数据行的属性。数据库中的多个表之间往往彼此关联。7.简述数据库管理系统的组成结构。系型数据库管理系统的主要组成部分包括用户接口驱动程序、SQL引擎、事务处理引擎、关系引擎、存储引擎等。对象数据库管理系统的组成包括程序设计语言驱动程序、查询引擎、事务引擎、存储引擎等。8.什么是ACID属性?事务处理引擎具有ACID属性,A表示原子性(Atomicity),C表示一致性(Consistency),I表示独立性(Isolation),D表示持久性(Durability)。原子性表示事务的执行全部完成或全部不完成;一致性的含义表示无论系统处于何种状态,都能保证数据库中的数据处于一致状态;独立性表示两个或多个事务可以同时运行而不互相影响;持久性表示事务的工作完成之后,工作结果会永远保存,即使系统失败也是如此。9.简述数据库技术的作用。一般地,数据库技术主要用来管理大量业务数据、定义数据库、执行数据库操作、控制多用户访问等。10.表的特点是什么?一般而言,表具有以下基本特点:代表实体、由行和列组成、行和列的顺序是不重要的等等。11.什么是数据库范式?数据库范式(normalform,NF)是确保数据库结构合理,满足各种查询需要、避免数据库操作异常的数据库设计方式。第一范式是最基本的范式。如果表中的所有属性值都是不可再分解的原子值,那么称该表是满足第一范式(firstnormalform,1NF)的要求。在满足第一范式的基础上,所有的非主键属性值全部依赖于主键值,不存在部分依赖现象,这时的表称为满足第二范式(secondnormalform,2NF)的要求。在满足第二范式的基础上,如果所有的非主键属性都不存在传递依赖现象,则称该表满足第三范式(thirdnormalform,3NF)的要求。12.什么是操作异常现象?修改异常的含义是当我们修改了表中某一行的信息后,该表中另一行中相同的信息却没有被修改。插入异常的含义是当我们向表中插入一行数据时,仅仅知道该行的一部分数据,另外一部分数据则不知道,结果这些已知的数据由于那些未知的数据而很难在表中正确地插入。删除异常的含义是如果某些属性的值变为空,那么可能会丢失其他一些有用的信息。13.列出常见的数据库对象并简述其特点。数据库中有许多对象,最基本的对象就是表,除此之外,视图、索引、存储过程、触发器等都是常见的数据库对象。在关系型数据库系统中,表(table)是最基本的数据库对象,用于存储数据。视图、索引、触发器等对象都与表对象有直接的关系。视图(view)是由查询语句构成的对象,是一种查看表中数据的方式。在许多应用程序开发过程中,往往不是直接查询表中的数据,而是通过查询视图来获得表中的数据。在数据库中,索引(index)是一种可以加快检索表中数据的数据结构。在创建索引时,需要基于表中的一个或多个列进行创建。就像表耗费空间一样,索引也同样耗费空间。在一个表上,可以创建一个或多个索引对象。优化表上的索引结构,往往可以显著地提高数据库应用程序的效率。存储过程(storedprocedure)是一组预编译的命令或子例程,可以在数据库中执行相关的操作。存储过程的执行需要明确地调用,既可以在应用程序访问数据库系统时调用,也可以在数据库中直接执行。存储过程主要用来完成数据校验、访问控制等功能。与存储过程非常类似的数据库对象是触发器(trigger),该对象也用来在数据库中执行特定的操作,但是触发器的执行是自动的。触发器是指当执行某种操作时自动执行的代码块。这些操作既可以是针对表的插入、更新等操作,也可以是针对视图的操作,还可以是针对数据库的操作。例如,当在财务表上执行插入操作时,该操作的基本信息可以借助于触发器的功能自动记录在审计表中。14.什么是ERD图?如何绘制ERD图?实体关系图(entityrelationshipmodel,ERD)是一种描述数据库中数据之间逻辑关系的图形。在数据库设计过程中,经常使用ERD图。ERD图有时也称为E-R图、ER图等。ERD有3个基本元素:实体、关系和属性。实体(entity)是客观存在的、可以被唯一识别的事物。实体可以是学生、教师、课程、图书、数码相机等物理对象,也可以是像业务流程、选修课程、图书销售等发生的客观事件或概念。一般地,常用名词短语来描述实体。在ERD图中,常用直角矩形来表示实体。关系(relationship)描述了两个或两个以上的实体之间的关联,常使用动词短语来描述关系。例如,“购买”关系描述了用户与图书之间的关系,“选修”关系描述了学生与课程之间的关系。在ERD图中,常使用菱形表示关系,菱形通过直线与表示实体的直角矩形连接起来,并且在关系两旁标上联系的类型,1:1联系、1:N联系或N:N联系。在ERD图中,实体和关系都可以有属性,属性(attribute)描述了实体或关系的特征。例如,学生实体的属性包括学号、姓名、性别、班级、电话等,连接学生和课程的选修关系的属性包括学号、课程代号、考试成绩等。属性往往使用椭圆来表示,通过直线与实体或关系连接起来。一般地,每个实体都有一个能够唯一地确认该实体的属性,该属性称为主键属性。在ERD图中,常常在属性名称下面加下划线来表示主键属性。15.什么是数据完整性?数据完整性是指确保存储在数据库中的数据的一致性和准确性的约束或规则。数据完整性有3种基本类型,即域完整性、实体完整性和参考完整性。16.什么是数据库的安全性?安全是数据库管理员的重要任务之一。数据库的安全性是保障数据库不受非法用户访问的方法和机制,是计算机安全性的一个重要组成部分。常用的数据库的安全性包括系统认证、访问控制、监视和审计、数据加密等方法。17.简述数据库的开发过程。数据库开发过程是指设计和实现一个可以满足用户需求和使用的数据库的过程。一般地,数据库开发过程包括4个阶段,即概念数据建模、逻辑数据库设计、物理数据库设计和数据库实现和维护。18.什么是SQL语言?SQL是结构化查询语言(StructureQueryLanguage)的简称,是当前流行的数据库语言。在数据库中,可以使用SQL语言执行对象定义、数据操纵、权限管理、流程控制等操作。19.列出常用的数据操纵语句。数据操纵语句用于在数据库中操纵各种对象,检索和修改数据,包括SELECT、INSERT、UPDATE、DELETE等语句。SELECT语句是检索语句,可以从表中检索数据;INSERT语句是插入数据语句,可以把数据插入到表中;UPDATE语句是修改数据语句,可以对表中的数据进行修改;DELETE语句是删除数据语句,可以把表中的数据删除。这些语句都是操纵数据库最常用的语句。20.列出常用的数据定义语句。数据定义语句用于执行数据库的任务、创建数据库以及数据库中的各种对象,包括CREATE、ALTER、DROP等语句。数据库中的常见对象包括数据库、表、索引、视图、触发器、存储过程等。这些对象的创建、修改和删除等管理都可以通过CREATE、ALTER、DROP等语句来完成。21.简述数据库技术的发展趋势。从当前的客观需求和研究状况来看,数据库技术的发展趋势主要有:可以执行分布式处理的分布式数据库技术、可以处理复杂对象的面向对象数据库技术、可以处理多媒体海量数据的多媒体数据库技术、可以对数据库中数据进行多维和历史分析的数据仓库技术、可以支持长事务和协调处理的工作流数据库技术、可以存储空间位置信息的空间数据库技术、可以支持个人应用的移动数据库以及基于Web的数据库技术等。6.9.1复习题1.什么是软件危机?为什么会出现软件危机?软件危机的表现形式是什么?软件危机(softwarecrisis)的概念,用于描述快速增长的计算机能力和需要解决的日益复杂的需求问题之间的关系。大容量、高速度的计算机出现,计算机的应用范围迅速扩大,软件开发急剧增长,多种高级编程语言开始出现,操作系统快速发展,数据库管理系统诞生,软件系统的规模越来越大、复杂程度越来越高,软件可靠性问题越来越突出。软件危机主要表现在以下几个方面:软件开发项目费用超支、进度拖延失控;软件的可靠性差,尽管耗费了大量的人力物力,但是正确性却越来越难以保证;软件开发生产率低下,其提高的速度远远跟不上计算机应用迅速扩展和深入的需要;开发出的软件往往不能满足用户的需求;在许多软件项目中,软件代码难于阅读、理解和维护。从整体来看,软件生产水平的发展远远落后于硬件生产水平的发展速度。2.解释软件工程的概念。分析软件危机和软件工程之间的关系。软件工程(softwareengineering)是指将系统的、规范的、可量化的方法应用于软件的开发、运行和维护,以及对这些方法所进行的研究。软件工程的根本目标在于提高软件开发的生产效率和软件产品质量。解决如何进行软件开发和提高软件开发的效率和质量的问题,是许多研究人员和软件开发专业人员研究和探索的目标。一些专家认为,从软件历史发展来看,软件开发经历了艺术、技能和工程三大阶段。早期的程序员使用的是一种探索性的编程风格,自己摸索软件开发技术,软件的好坏取决于程序开发人员的直觉、经验、冲动和爱好。这种软件开发风格被认为是艺术的,程序开发人员就像艺术家一样凭直觉进行软件开发。后来,随着软件开发需求的不断增加和对软件开发工作经验和教训的总结,许多新手经过培训就可以掌握一些软件开发技术和知识,软件开发技术逐渐从艺术形式过渡到工艺形式或技能形式。再后来,许多计算机科学家致力于软件开发过程的系统研究、知识组织,提出了一系列可以提高软件开发效率和质量的思想、原则、方法和工具,这些都是软件工程的核心内容。3.什么是软件需求分析?软件需求分析(softwarerequirementanalysis)是软件开发中的主要活动之一,也是其他活动的基础,该活动的主要目的是确定软件系统应该为用户提供哪些功能来解决用户的需求。4.简述软件需求分析的主要任务。软件需求分析活动又可以分为许多任务,主要包括调查研究、问题分析、确定目标、需求定义、需求分析、需求描述等。5.简述功能需求和非功能需求的区别与联系。需求定义是指将明确的软件目标转换为可以满足这些目标的功能需求和非功能需求的过程。功能需求是一个软件必须提供的活动和服务描述。一般地,根据那些可以满足软件目标的输入、输出、流程和存储的数据来定义功能需求。非功能需求是一个软件的特征和约束的描述。典型的非功能需求包括:单位时间内处理的事务数量和单位事务的响应时间;软件支持的并发性操作要求;易学性和易用性;预算、成本;进度安排和结束日期;文档和培训需要;软件的质量和可靠性要求与管理;安全性要求等。两者既相互区别,又相互联系。6.简述软件需求规格说明书的内容框架。1引言1.1产品概述1.2目的1.3产品的范围1.4参考文献1.5术语定义和缩写2综合描述2.1软件前景描述2.2软件功能描述2.3用户特征2.4约束条件2.5假设和前提3需求规格说明3.1外部接口需求描述 3.1.1用户界面 3.1.2硬件接口 3.1.3软件接口 3.1.4通信协议 3.1.5内存约束 3.1.6运行 3.1.7产品功能 3.1.8假设和依赖性3.2软件产品特征 3.2.1说明和优先级 3.2.2激励/响应序列 3.2.3功能需求3.3软件系统属性 3.3.1可靠性 3.3.2可用性 3.3.3安全性 3.3.4可维护性 3.3.5可移植性 3.3.6性能需求3.4数据库需求4其他需求附录7.简述软件设计的主要任务。在软件设计过程中,主要完成的任务包括:确定所需要的模块;模块之间的控制关系或调用关系;不同模块之间的接口,包括模块之间交换的数据项;单个模块的数据结构;执行单个模块所需的算法。设计阶段的输入是需求分析描述文档,然后进行概要设计(或高层设计)和详细设计。概要设计的主要任务是确定不同的模块、控制关系和模块之间接口的定义,其设计结果被称为程序结构或软件结构;详细设计的主要任务是设计不同模块的数据结构和算法,其结果被称为模块规范说明。8.简述软件设计时应该考虑到的主要因素。在软件设计过程中,除了必须满足用户需求之外,为了保障软件的使用、扩展和维护,还需要考虑其他一些因素。这些因素主要包括兼容性、可扩展性、容错性、可维护性、可靠性、可复用性、安全性、易用性等。9.简述软件设计时的模块化原则。抽象(abstraction)是指从许多事物和问题中,舍弃个别的、非本质的属性,抽出共同的、本质的属性的过程。在软件设计中,抽象原则意味着尽可能地摈弃事物和问题中的个性化信息。例如,学生、图书、合同等事物都可以抽象为对象。对于事物和问题而言,不同的层次和不同的角度,可能有不同的抽象结果。模块化(modularity)是指将复杂的事物和问题进行分解,得到可以管理的更小的事物和问题的过程。一般地,如果事物和问题分解得越细,得到的模块就越容易理解和解决,每一个模块的设计复杂度也就越低;但是,越细,模块数量越多,模块之间的耦合度则越复杂。内聚是用于描述模块功能强度的度量,耦合是模块之间相互依靠和相互作用程度的度量。理想的模块化原则是分解得到的模块具有高内聚、低耦合的特点。10.列出常用的面向功能的软件设计方法。1967年,EdsgerDijkstra提出了结构化编程(structuredprogramming)方法;1969至1973年,DouglasRoss开发了结构化分析和设计(structuredanalysisanddesigntechnique,SADT)技术;1975年,LarryConstantine等人提出了结构化设计(structureddesign)方法;1975年,MichaelJackson提出了Jackson结构化编程(Jacksonstructuredprogramming)方法;1978年,TomDemarco等人强调采用结构化分析(structuredanalysis)技术;1980年,英国计算机和通信管理部门提出了结构化系统分析和设计方法(structuredsystemsanalysisanddesignmethod,SSADM);1981年,DouglasRoss等人开发了基于SADT技术的IDEF0方法;1990年,JamesMartin提出了信息工程(informationengineering)方法。在以上方法中,最基本的方法是结构分析(structuredanalysis)/结构设计(structureddesign)技术,简称SA/SD技术。11.列出UML2.2中的图示。UML2.2定义了14种图示,用于软件需求分析、设计和开发。这些图示可以分为两种类型:静态视图(结构视图)和动态视图(行为视图)。结构视图主要使用对象、属性、关系、运算等内容描述系统的结构,例如类图、对象图、部署图等;行为视图主要强调对象之间的合作、对象状态的变化等系统行为,例如序列图、活动图、用例图、时间图等。12.什么是软件编码?软件编码(softwareprogramming)是把软件设计转换为程序设计语言代码的过程。有时,也把软件编码称为代码编写、软件构造、软件实现等。有些专家把软件编码活动称为软件构造活动,强调软件复用、快速配置等特点。13.什么是软件测试?软件测试(softwaretesting)是指根据一组测试用例的输入和运行,观察软件产品是否能够按照期望的要求正常运行的过程。如果产品没有按照期望的要求运行,那么表示产品中存在缺陷,需要记录下这些情况,以后就可以对产品进行调试和改正。软件测试的目的在于发现产品中存在的所有缺陷、确保产品满足各种功能需求和非功能需求。14.简述测试用例的特点。测试用例(testcase)是为了达到某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定的需求。测试集是测试用例的集合,用于测试指定的软件产品。15.简述静态测试的特点。静态测试是指在非运行环境中审视软件产品的方法,常见的静态测试包括代码评审、代码走查、代码检查等。16.比较分析黑盒测试和白盒测试的特点。从测试策略来看,可以分为黑盒测试和白盒测试。在黑盒测试策略中,测试用例的设计主要考虑软件产品的功能,不需要考虑软件产品的内部结构,因此这种测试也称为功能测试;而在设计白盒测试用例时,需要对软件内部结构有一个全面的理解,因此这种测试策略也称为结构测试。17.什么是等价类划分?等价类划分(equivalencepartitioning)是指把测试软件产品的输入划分为一组等价的类,然后基于这些等价类来设计测试用例。在同一个等价类中,不同的测试用例可以

温馨提示

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

评论

0/150

提交评论