全部科目 > 软件评测师 >
2013年下半年 上午试卷 综合知识
第 35 题
知识点 过程模型   文件管理  
关键词 开发   文档  
章/节 软件开发方法及过程  
 
 
在开发一个字处理软件时,首先快速发布了一个提供基本文件管理、编缉和文档生成功能的版本,接着发布提供更完善的编辑和文档生成功能的版本,最后发布提供拼写和语法检查功能的版本,这里采用了(35)过程模型
 
  A.  瀑布
 
  B.  快速原型
 
  C.  增量
 
  D.  螺旋
 
 




 
 
相关试题     软件开发方法及过程 

  第27题    2010年下半年  
螺旋模型综合了(27)的优点,并增加了这两种模型忽略的风险分析。

  第47题    2017年下半年  
下图是(44)设计模式的类图,该设计模式的目的是(45),图中,Abstraction和RefinedAbstraciton之间是(46)关系,Abstraction和Implementor之间是(47)关系。

  第36题    2012年下半年  
以下关于数据流图的叙述中,不正确的是(36) 。

 
知识点讲解
· 过程模型
· 文件管理
 
        过程模型
        产品开发生命周期通常使用过程模型进行表示。过程模型习惯上也称为开发模型,它是系统开发全部过程、活动和任务的结构框架。典型的开发过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式化方法模型等。
               瀑布模型(Waterfall Model)
               瀑布模型是将系统生存周期各个活动规定为依线性顺序连接的若干阶段的模型,也称为线性模型。它包括需求分析、设计、实现、测试、运行和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落,如下图所示。
               
               瀑布模型
               瀑布模型为系统的开发和维护提供了一种有效的管理模式,根据这一模式制定开发计划,进行成本预算,组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合于系统需求很明确的软件项目的模型。
               瀑布模型假设一个待开发的系统需求是完整的、简明的、一致的,而且可以先于设计和实现产生。瀑布模型的优点是,容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。不足之处是,客户必须能够完整、正确和清晰地表达他们的需要;在开始的两个或三个阶段中,很难评估真正的进度状态;当接近项目结束时,出现了大量的集成和测试工作;直到项目结束之前,都不能演示系统的能力。在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。
               瀑布模型的一个变体是V模型,如下图所示。V模型描述了质量保证活动和沟通、建模相关活动以及早期构建相关的活动之间的关系。随着团队工作沿着V模型左侧步骤向下推进,基本问题需求逐步细化,形成问题及解决方案的技术描述。一旦编码结束,团队沿着V模型右侧的步骤向上推进工作,其实际上是执行了一系列测试(质量保证活动),这些测试验证了团队沿着V模型左侧步骤向下推进过程中所生成的每个模型。V模型提供了一种将验证确认活动应用于早期软件工程工作中的方法。
               
               V模型
               增量模型(Incremental Model)
               增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一系列增量产品,每一增量可以分别开发。该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”,如下图所示。当使用增量模型时,第1个增量往往是核心的产品。客户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
               
               增量模型
               增量模型作为瀑布模型的一个变体,具有瀑布模型的所有优点。此外,它还有以下优点:第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
               增量模型有以下不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。
               原型模型(Prototype Model)
               并非所有的需求都能够预先定义,大量的实践表明,在开发初期很难得到一个完整的、准确的需求规格说明。这主要是由于客户往往不能准确地表达对未来系统的全面要求,开发者对要解决的应用问题模糊不清,以至于形成的需求规格说明常常是不完整的、不准确的,有时甚至是有歧义的。此外,在整个开发过程中,用户可能会产生新的要求,导致需求的变更。而瀑布模型难以适应这种需求的不确定性和变化,于是出现了快速原型(rapid prototype)这种新的开发方法。原型方法比较适合于用户需求不清、需求经常变化的情况,是一种演化模型(Evolutionary Model)。当系统规模不是很大也不太复杂时,采用该方法比较好。
               原型是预期系统的一个可执行版本,反映了系统性质的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。当然,能够采用原型方法是因为开发工具的快速发展,使得能够迅速地开发出一个让用户看得见、摸得着的系统框架。这样,对于计算机不是很熟悉的用户就可以根据这个框架提出自己的需求。开发原型系统首先确定用户需求,开发初始原型,然后征求用户对初始原型的改进意见,并根据意见修改原型。原型模型如下图所示。
               
               原型模型
               原型模型开始于沟通,其目的是定义软件的总体目标,标识需求,然后快速制定原型开发的计划,确定原型的目标和范围,采用快速射击的方式对其进行建模,并构建原型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一轮中对原型进行改进。在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发。
               根据使用原型的目的不同,原型可以分为探索型原型、实验型原型和演化型原型3种。探索型原型的目的是要弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性。实验型原型的目的是验证方案或算法的合理性,是在大规模开发和实现前,用于考查方案是否合适、规格说明是否可靠等。演化型原型的目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统。
               螺旋模型(Spiral Model)
               对于复杂的大型系统,开发一个原型往往达不到要求。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。螺旋模型是一种演化模型。
               螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,如下图所示。在每个螺旋周期分为如下4个工作步骤。
               
               螺旋模型
               (1)制订计划。确定系统的目标,选定实施方案,明确项目开发的限制条件。
               (2)风险分析。分析所选的方案,识别风险,消除风险。
               (3)实施工程。实施系统开发,验证阶段性产品。
               (4)用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。
               螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此特别适用于庞大、复杂并且具有高风险的系统。
               与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高产品的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了系统开发的风险。在使用螺旋模型进行系统开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的迭代次数会增加开发成本,延迟提交时间。
               喷泉模型(water fountain model)
               喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性,如下图所示。迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善系统。无间隙是指在开发活动(如分析、设计、编码)之间不存在明显的边界,也就是说,它不像瀑布模型那样,需求分析活动结束后才开始设计活动,设计活动结束后才开始编码活动,而是允许各开发活动交叉、迭代地进行。
               
               喷泉模型
               喷泉模型的各个阶段没有明显的界限,开发人员可以同步进行。其优点是可以提高项目开发效率,节省开发时间。由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大。
               形式化方法模型(Formal Methods Model)
               形式化方法是用于将复杂系统建模为数据实体的技术,是建立在严格数学基础上的一种开发方法,其主要活动是生成计算机软件形式化的数学规格说明。
               形式化方法用严格的数学语言和语义描述功能规约和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。通过数学的演算,使得从形式化功能规约到形式化设计规约,以及从形式化设计规约到程序代码的转换成为可能。
               统一过程(UP)模型
               统一过程的特色是“用例和风险驱动,以架构为中心,迭代的增量开发过程”。迭代的意思是将整个产品开发项目划分为许多个小的“袖珍项目”,每个“袖珍项目”都包含正常项目的所有元素:计划、分析和设计、构造、集成和测试,以及内部和外部发布。
               统一过程定义了5个阶段及其制品。
               (1)起始阶段(inception phase)。起始阶段专注于项目的初创活动,产生的主要工作产品有构想文档(vision document)、初始用例模型、初始项目术语表、初始业务用例、初始风险评估、项目计划(阶段及迭代)、业务模型以及一个或多个原型(需要时)。本阶段的里程碑是生命周期目标。
               (2)精化阶段(elaboration phase)。精化阶段在理解了最初的领域范围之后进行需求分析和架构演进,产生的主要工作产品有用例模型、补充需求(包括非功能需求)、分析模型、体系结构描述、可执行的体系结构原型、初步的设计模型、修订的风险列表、项目计划(包括迭代计划、调整的工作流、里程碑和技术工作产品)以及初始用户手册。本阶段的里程碑是生命周期架构。
               (3)构建阶段(construction phase)。构建阶段关注系统的构建,产生实现模型,产生的主要工作产品有设计模型、系统构件、集成的增量、测试计划及步骤、测试用例以及支持文档(用户手册、安装手册和对于并发增量的描述)。初始运作功能。
               (4)移交阶段(transition phase)。移交阶段关注于系统提交方面的工作,产生系统增量,产生的主要工作产品有提交的系统增量、β测试报告和综合用户反馈。本阶段的里程碑是产品发布版本。
               (5)生产阶段(production phase)。生产阶段对持续使用的软件进行监控,提供运行环境(基础设施)的支持,提交并评估缺陷报告和变更请求。
               在每个迭代中,有5个核心工作流:捕获系统应该做什么的需求工作流,精化和结构化需求的分析工作流,用系统构架实现需求的设计工作流,构造系统的实现工作流,验证实现是否如期望那样工作的测试工作流。
               统一过程的典型代表是RUP(Rational Unified Process),主要针对前4个技术阶段。RUP是UP的商业扩展,完全兼容UP,但比UP更完整、更详细。
               敏捷方法(Agile Development)
               敏捷开发的总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。通过在产品开发过程中加入灵活性,敏捷方法使用户能够在开发周期的后期增加或改变需求。
               敏捷过程的典型方法有很多,每一种方法基于一套原则,这些原则实现了敏捷方法所宣称的理念(敏捷宣言)。
               (1)极限编程(XP)。XP是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。
               .4大价值观:沟通、简单性、反馈和勇气。
               .5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
               .12个最佳实践:计划游戏(快速制订计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40个小时、现场客户和编码标准。
               (2)水晶法(Crystal)。水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论。
               (3)并列争球法(Scrum)。并列争球法使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。多个自组织和自治的小组并行地递增实现产品。协调是通过简短的日常情况会议来进行,就像橄榄球中的“并列争球”。。
               (4)自适应软件开发(ASD)。ASD有6个基本的原则:有一个使命作为指导;特征被视为客户价值的关键点;过程中的等待是很重要的,因此“重做”与“做”同样关键;变化不被视为改正,而是被视为对软件开发实际情况的调整;确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求;风险也包含其中。
 
        文件管理
        文件系统是操作系统中负责存取和管理信息的模块,它用统一的方式管理用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法。对于用户来说,可按自己的愿望并遵循文件系统的规则来定义文件信息的逻辑结构,由文件系统提供“按名存取”来实现对用户文件信息的存储和检索。可见,使用者在处理他的信息时,只需关心所执行的文件操作及文件的逻辑结构,而不必涉及存储结构。
               文件与文件系统
                      文件的基本概念
                      文件是由文件名字标识的一组相关信息的集合。文件名是字母或数字组成的字母数字串,它的格式和长度因系统而异。
                      组成文件的信息可以是各式各样的:一个源程序、一批数据、各类语言的编译程序都可以各自组成一个文件。文件可以按各种方法进行分类,如按用途可分成:系统文件、库文件和用户文件;按保护级别可分成:只读文件、读写文件和不保护文件;按信息流向可分成:输入文件、输出文件和输入输出文件等。
                      文件的命名
                      文件是一个抽象机制,它提供了一种把文件保存在磁盘上而且便于以后读取的方法,用户不必了解信息存储的方法、位置以及存储设备实际运作方式等细节。在这一抽象机制中最重要的是文件命名,当一个进程创建一个文件时必须给出文件名字,以后这个文件将独立于进程存在直到它被显式地删除;当其他进程要使用这一文件时必须显式地指出该文件名字;操作系统也将根据该文件名字对文件进行保护。
                      文件类型
                      在现代操作系统中,对于文件乃至设备的访问都是基于文件进行的,例如,打印一批数据就是向打印机设备文件写数据,从键盘接收一批数据就是从键盘设备文件读数据。操作系统一般支持以下几种不同类型的文件:
                      (1)普通文件:即前面所讨论的存储在外存储设备上的数据文件。
                      (2)目录文件:管理和实现文件系统的系统文件。
                      (3)块设备文件:用于磁盘、光盘或磁带等块设备的I/O。
                      (4)字符设备文件:用于终端、打印机等字符设备的I/O。
                      一般来说,普通文件包括ASCII文件或者二进制文件,ASCII文件由多行正文组成,在DOS、Windows等系统中每一行以回车换行结束,整个文件以CTRL+Z结束;在Unix等系统中每一行以换行结束,整个文件以CTRL+D结束。ASCII文件的最大优点是可以原样显示和打印,也可以用通常的文本编辑器进行编辑。另一种正规文件是二进制文件,它往往有一定的内部结构,组织成字节的流,如可执行文件是指令和数据的流,记录式文件是逻辑记录的流。
                      文件系统
                      对文件系统本身来说,必须采用特定的数据结构和有效算法,实现文件的逻辑结构到存储结构的映射,实现对文件存储空间和用户信息的管理,提供多种存取方法。
                      所以,文件系统面向用户的功能是:
                      (1)文件的按名存取。
                      (2)文件目录建立和维护。
                      (3)实现从逻辑文件到物理文件的转换。
                      (4)文件存储空间的分配和管理。
                      (5)提供合适的文件存取方法。
                      (6)实现文件的共享、保护和保密。
                      (7)提供一组可供用户使用的文件操作。
                      为了实现这些功能,操作系统必须考虑文件目录的建立和维护、存储空间的分配和回收、数据的保密和监护、监督用户存取和修改文件的权限、在不同存储介质上信息的表示方式、信息的编址方法、信息的存储次序、以及怎样检索用户信息等问题。
                      文件的存取
                      从用户使用观点来看,关心的是数据的逻辑结构,即记录及其逻辑关系,数据独立于物理环境;从系统实现观点来看,数据则被文件系统按照某种规则排列和存放到物理存储介质上。那么,输入的数据如何存储?处理的数据如何检索?数据的逻辑结构和数据物理结构之间怎样接口?谁来完成数据的成组和分解操作?这些都是存取方法的任务。存取方法是操作系统为用户程序提供的使用文件的技术和手段。
                      (1)顺序存取。
                      按记录顺序进行读/写操作的存取方法称为顺序存取。固定长记录的顺序存取是十分简单的。读操作总是读出下一次要读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。如果文件是可读可写的。再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写操作时,将一个记录写到文件未端。允许对这种文件进行前跳或后退N(整数)个记录的操作。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。
                      (2)直接存取。
                      很多应用场合要求以任意次序直接读写某个记录,例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。直接存取方法便适合于这类应用,它通常用于磁盘文件。
                      (3)索引存取。
                      第三种类型的存取是基于索引文件的索引存取方法。由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给操作系统记录键后就可查找到所需记录。通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。信息块的地址都可以通过查找记录键而换算出来。实际的系统中,大都采用多级索引,以加速记录查找过程。
               文件目录
                      文件目录的概念
                      文件系统怎样实现文件的“按名存取”?如何查找文件存储器中的指定文件?如何有效地管理用户文件和系统文件?文件目录便是用于这些操作的重要手段。文件系统的基本功能之一就是负责文件目录的建立、维护和检索,要求编排的目录便于查找、防止冲突,目录的检索方便迅速。
                      有了文件目录后,就可实现文件的“按名存取”。每一个文件在文件目录中登记一项。文件目录项一般应该包括以下内容:
                      (1)有关文件存取控制的信息。如文件名、用户名、授权者存取权限:文件类型和文件属性,如读写文件、执行文件、只读文件等。
                      (2)有关文件结构的信息。文件的逻辑结构,如记录类型、记录个数、记录长度、成组因子数等。文件的物理结构,如记录存放相对位置或文件第一块的物理块号,也可指出文件索引的所在位置。
                      (3)有关文件管理的信息。如文件建立日期、文件最近修改日期、访问日期、文件保留期限、记账信息等。
                      有了文件目录后,就可实现文件的“按名存取”。当用户要求存取某个文件时,系统查找目录项并比较文件名就可找到所寻文件的目录项。然后,通过目录项指出的文件名就可找到所寻文件的目录项,然后通过目录项指出文件的文件信息相对位置或文件信息首块物理位置等就能依次存取文件信息。
                      一级目录结构
                      如下图所示,最简单的文件目录是一级目录结构,在操作系统中构造一张线性表,与每个文件有关的属性占用一个目录项就成了一级目录结构。单用户微型机操作系统CP/M的软盘文件便采用这一结构,每个磁盘上设置一张一级文件目录表,不同磁盘驱动器上的文件目录互不相关。文件目录表由长度为32字节的目录项组成,目录项0称目录头,记录有关文件目录表的信息,其他每个目录项又称文件控制块。文件目录中列出了盘上全部文件的有关信息。CP/M操作系统中文件目录项包括:盘号、文件名、扩展名、文件范围、记录数、存放位置等。
                      
                      一级目录结构示意图
                      一级文件目录结构存在若干缺点:一是重名问题,它要求文件名和文件之间有一一对应关系,但要在多用户的系统中,由于都使用同一文件目录,一旦文件名用重,就会出现混淆而无法实现按名存取。如果人为地限制文件名命名规则,对用户来说又极不方便;二是难以实现文件共享,如果允许不同用户使用不同文件名来共享同一个文件,这在一级目录中是很难实现的,为了解决上述问题,操作系统往往采用二级目录结构,使得每个用户有各自独立的文件目录。
                      二级目录结构
                      在二级目录中,第一级为主文件目录,它用于管理所有用户文件目录,它的目录项登记了系统接受的用户的名字及该用户文件目录的地址。第二级为用户文件目录,它为该用户的每个文件保存一登记栏,其内容与一级目录的目录项相同。每一用户只允许查看自己的文件目录。下图是二级文件目录结构示意。当一个新用户作业进入系统执行时,系统为其在主文件目录中开辟一个区域的地址填入主文件目录中的该用户名所在项。当用户需要访问某个文件时系统根据用户名从主文件目录中找出该用户的文件目录的物理位置,其余的工作与一级文件目录类似。
                      
                      二级目录结构示意图
                      采用二级目录管理文件时,因为任何文件的存取都通过主文件目录,于是可以检查访问文件者的存取权限,避免一个用户未经授权就存取另一个用户的文件,使用户文件的私有性得到保证,实现了对文件的保密和保护。
                      树型目录结构
                      二级目录的推广形成了多级目录。每一级目录可以是下一级目录的说明,也可以是文件的说明,从而,形成了层次关系。多级目录结构通常采用树型结构,它是一棵倒立的有根的树,树根是根目录;从根向下,每一个树枝是一个子目录;而树叶是文件。树型多级目录有许多优点:较好地反映现实世界中具有层次关系的数据集合和较确切地反映系统内部文件的分支结构;不同文件可以重名,只要它们不在同一末端的子目录中,易于规定不同层次或子树中文件的不同存取权限,便于文件的保护、保密和共享等。
               文件的结构和组织
               文件的组织是指文件中信息的配置和构造方式,通常应该从文件的逻辑结构和组织及文件的物理结构和组织两方面加以考虑。文件的逻辑结构和组织是从用户观点出发,研究用户概念中的抽象的信息组织方式,这是用户能观察到的,可加以处理的数据集合。由于数据可独立于物理环境加以构造,所以称为逻辑结构。文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系。这时,文件被看作物理文件,即相关物理块的集合。文件的存储结构涉及块的划分、记录的排列、索引的组织、信息的搜索等许多问题。
                      文件的逻辑结构
                      文件的逻辑结构分两种形式:一种是流式文件,另一种是记录式文件。
                      (1)流式文件。
                      流式文件指文件内的数据不再组成记录,只是依次的一串信息集合,也可以看成是只有一个记录的记录式文件。这种文件常常按长度来读取所需信息,也可以用插入的特殊字符作为分界。为了简化系统,大多数现代操作系统对用户仅仅提供流式文件,记录式文件往往由高级语言或简单的数据库管理系统提供。
                      (2)记录式文件。
                      记录式文件内包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含意划分的一个信息单位,记录在文件中的排列可能有顺序关系,但除此以外,记录与记录之间不存在其他关系。在这一点上,文件有别于数据库。根据记录的长度可分为定长和不定长两类:定长记录(格式F)指一个记录式文件中所有的逻辑记录都具有相同的长度,同时所有数据项的相对位置也是固定的。定长记录由于处理方便、控制容易,在传统的数据处理中普遍采用。定长记录可以成组或不成组,成组时除最末一块外,每块中的逻辑记录数为一常数。
                      变长记录(格式V)指一个记录式文件中,逻辑记录的长度不相等,但每个逻辑记录的长度处理之前能预先确定。有两种情况会造成变长记录:包含一个或多个可变的长度的数据项;包含了可变数目的定长数据项。
                      文件的物理结构
                      文件系统往往根据存储设备类型、存取要求、记录使用频度和存储空间容量等因素提供若干种文件存储结构。用户看到的是逻辑文件,处理的是逻辑记录,按照逻辑文件形式去存储,检索和加工有关的文件信息,也就是说数据的逻辑结构和组织是面向应用程序的。然而,这种逻辑上的文件总得以不同方式保存到物理存储设备的存储介质上去,所以,文件的物理结构和组织是指逻辑文件在物理存储空间中存放方法和组织关系。
                      (1)顺序文件。
                      将一个文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序结构,这类文件叫顺序文件,又称连续文件。显然,这是一种逻辑记录顺序和物理记录顺序完全一致的文件,通常,记录按出现的次序被读出或修改。
                      顺序文件的基本优点是:顺序存取记录时速度较快。顺序文件的主要缺点是:建立文件前需要能预先确定文件长度,以便分配存储空间;修改、插入和增加文件记录有困难;对直接存储器作连续分配,会造成少量空闲块的浪费。
                      (2)连接文件。
                      连接结构的特点是使用连接字,又叫指针来表示文件中各个记录之间的关系。如下图所示,第一块文件信息的物理地址由文件目录给出,而每一块的连接字指出了文件的下一个物理块。通常,连接字内容为0时,表示文件至本块结束。这种文件叫连接文件,又称串联文件。
                      
                      连接文件结构示意图
                      指向其他数据的连接表示是计算机程序设计的一种重要手段,是表示复杂数据关系的一种重要方法,使用指针可以将文件的逻辑记录顺序与它所在存储空间联系起来。
                      (3)索引结构。
                      索引结构是实现非连续存储的另一种方法,适用于数据记录保存有随机存取存储设备上的文件。如下图所示,它使用了一张索引表,其中每个表目包含一个记录的键及其记录数据的存储地址,存储地址可以是记录的物理地址,也可以是记录的符号地址,这种类型的文件称为索引文件。通常,索引表的地址可由文件目录指出,查阅索引表先找到的相应记录键,然后获得数据存储地址。
                      
                      索引文件结构示意图
                      索引文件在文件存储器上分两个区:索引区和数据区。访问索引文件需两步操作:第一步查找文件索引,第二步以相应键登记项内容作为物理或符号地址而获得记录数据。这样,至少需要两次访问辅助存储器,但若文件索引已预先调入主存储器,那么就可减少一次内外存信息交换。
                      索引结构是连接结构的一种扩展,除了具备连接文件的优点外,还克服了它只能作顺序存取的缺点,具有直接读写任意一个记录的能力,便于文件的增加、删除和修改。索引文件的缺点是:增加了索引表的空间开销和查找时间,索引表的信息量甚至可能远远超过文件记录本身的信息量。
               文件的共享和保护
                      文件的保护
                      文件保护是指防止文件被破坏,它包括两个方面:一是防止系统崩溃所造成的文件破坏;二是防止其他用户的非法操作所造成的文件破坏。
                      为防止系统崩溃造成文件破坏,定时转储是一种经常采用的方法,系统的管理员每隔一段时间,或一日、或一周、或一月、或一个期间,把需要保护的文件保存到另一个介质上,以备数据破坏后恢复。如一个单位建立了信息系统,往往会准备多个磁带,以便数据库管理员每天下班前把数据库文件转储到磁带上,这样即使出现了数据库损坏,最多只会丢失一天的数据。由于需要备份的数据文件可能非常多,增量备份是必需的,为此操作系统专门为文件设置了档案属性,用以指明该文件是否被备份过。
                      至于要防止其他用户的非法操作所造成的文件破坏,这往往通过操作系统的安全性策略来实现,其基本思想是建立如下的三元组。
                      (用户、对象、存取权限)
                      其中:
                      (1)用户是指每一个操作系统使用者的标识。
                      (2)对象在操作系统中一般是文件,因为操作系统把对资源的统一到文件层次,如通过设备文件使用设备、通过socket关联文件使用进程通信等。
                      (3)存取权限定义了用户对文件的访问权,如读、写、删除、创建、执行等。一个安全性较高的系统权限划分得较多较细。
                      要实现这一机制必须建立一个如下图所示的存取控制矩阵,它包括两个维,一维列出所有用户名,另一维列出全部文件,矩阵元素的内容是一个用户对于一个文件的存取权限,如用户1对文件1有读权R,用户3对文件1既有读权R,又有写权W和执行权X。
                      
                      存取控制矩阵
                      文件的保密
                      文件保密的目的是防止文件被窃取。主要方法有设置密码和使用密码。
                      密码分成两种:文件密码是用户为每个文件规定一个密码,它可写在文件目录中并隐蔽起来,只有提供的密码与文件目录中的密码一致时,才能使用这个文件。另一种是终端密码,由系统分配或用户预先设定一个密码,仅当回答的密码相符时才能使用该终端。但是它有一个明显的缺点,当要回收某个用户的使用权时,必须更改密码,而更改后的新密码又必须通知其他的授权用户,这无疑是不方便的。
                      使用密码是一种更加有效的文件保密方法,它将文件中的信息翻译成密码形式,使用时再解密。在网络上进行数据传输时,为保证安全性,经常采用密码技术;进一步还可以对在网络上传输的数字或模拟信号采用脉码调制技术,进行硬加密。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有