资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章软件开发工具的技术要素,4.1基本功能与一般结构,4.2总控与人机界面,4.3信息库及其管理,4.4文档生成与代码生成,4.5项目管理与版本管理,由于软件开发工具一般都较为复杂、庞大,所以,它的功能设计与总体结构是必须认真考虑的。,4.1基本功能与一般结构,软件开发工具对各类支持工作归纳成五个方面,即软件的功能要求:,认识与描述客观系统,存储及管理开发过程中的信息,代码的编写或生成,文档的编制或生成,软件项目的管理,一、软件开发工具的基本功能(五个方面),(1)提供描述软件状况及其开发过程的概念模式,协助软件开发人员认识软件工作的环境与要求、合理地组织与管理软件开发的工作过程。,系统描述,软件开发工具是引导人们建立正确的、有效地概念模式的一种手段。,此处的概念模式包括几个主要方面:,对软件的应用环境的认识和理解,对预期产生的软件产品的认识与理解。,对软件开发过程的认识与理解。任何软件开发工具都具备这种功能。,(2)提供存储和管理有关信息的机制与手段。简单说就是根据概念模式提供一个信息库和一个人机界面,它能够有效地管理这些信息。,信息管理,(3)帮助使用者编制、生成及修改各种文档。这包括文字材料和各种表格、图形。软件开发中有大量的文档产生,其工作量常常使人望而却步,软件开发工具在这方面的功能是十分重要的。,文档生成,(4)帮助使用者编写程序代码,即代码生成。这些编码工作本来是程序员的任务,软件开发工具通过各种信息的提供,使用户能够在较短时间内半自动地生成所需的代码段落,进行测试、修改错误等。,代码生成,(5)对于历史信息进行跨生命周期的管理,把项目运行与版本更新的有关信息科学地管理起来。对于大型软件开发来说,这一部分会成为信息处理的瓶颈。做好这一部分工作将非常有利于信息与资源的充分利用(或重用),其作用也是十分可观的。,项目管理,完整的、一体化的软件开发工具应当具备以上这些功能。,理想情况下,现有的多数软件开发工具往往实现了其中某一荐或某几项。,二、软件开发工具的一般结构,根据软件开发工具的基本功能概括软件开发工具的一般结构:,处于中心位置的是总控和人机界面。一方面,人机界面面对着不同的用户类型;另一方面,总控面对着系统内部的各种功能与各种信息,它要保证各部分相互之间的协调一致,保证各部分之间信息有效地、准确地流通。另一个重要部分是信息库及其管理,信息库框架反映了人们对软件产品和软件开发过程的基本看法。,信息库内容的丰富程度,则是软件开发工具的功能与作用的最基本的依据。图中没有反映出来的技术要素是项目管理和版本管理。,分析设计人员,运行管理人员,项目管理人员,人机,界面,总控,使用,查询,一致性,维护,录入,更新,联机,查询,文档,生成,代码,生成,其他,输出,系统,状况,设计,成果,运行,状况,项目,版本,信息库,信息库管理,具体包括以下的几个方面:,1、总控部分与人机界面,这部分是使用用者和软件开发工具之间交流信息,实现所有的支持功能的桥梁。这一部分的有效实现是软件开发工具的实用性和灵活性的主要保证。,2、信息库存及其管理模块,软件开发工具对软件开发支持的范围及深度取决于信息库的功能和内容,3、文档生成模块,用于输出文档,4、代码生成模块,用于生成代码,5、项目管理模块,用于实现跨越开发周期的信息共享、知识重用以及软件重用,文档生成和代码生成,是两个最重要的信息出口。,4.2总控部分及人机界面,总控与人机界面的地位与作用,作为一个完整的、一体化的软件开发工具,总控和人机界面处于中心的位置。,(1)从一体化的软件开发工具来看,作为一个完整的、一体化的软件开发工具,总控和人机界面提供了各个工作环节之间的协调与配合,早期的、单项功能工具,只是帮助人们完成某一项具体工作,各个环节缺乏协调与配合,工具的封闭性致使它们的输出格式之间有差别,协调配合更加困难。随着软件规模的扩大,整个工具的总的结构,各部分之间的联系方式及在用户面前保持统一的形象逐步成为中心议题。,(2)从单项功能的工具集成的角度来看,在实际工作中,常常采用来自不同厂家的单项工具,使用者自己承担集成的任务。如分析阶段使用独立于机器的一般化的以逻辑设计文档作为其输出的工具,在设计编码阶段,使用依赖于某个软件(语言或数据库管理系统)的设计工具。在这种情况下,最关键的也是最麻烦的就是把前半段的输出,准确无误地转化为后半段工作所要求的输入。这就要设立一个有效的总控,它能够在各个具体工具之上,实现信息的正确传递与转换,帮助人们完成上述协调与配合的工作,从而形成一个统一的、完整地支撑环境,并通过一个统一的、友好的人机界面与用户对话。,因此,不论是从一体化的软件开发工具来说,还是从单项的工具集成的角度来说,总控和人机界面都处于中心的位置。,软件配置(集成)名词:实质是设立一个有效的总控部分,能够在各个具体工具之上实现信息的正确传递与转换,帮助人们完成软件开发各阶段的协调与配合工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。,总体结构设计的基本原则是什么?,在技术上可以归纳为三条要点:,面向使用者;保证信息的准确传递;保证系统的开放性,(或灵活性),首先,总控和人机界面是使用者与工具之间联系的桥梁,必须严格遵循面向使用者的原则。,其次,保证各部分之间信息的准确传递。各个分散的软件工具在集成为一个一体化的工具时,它们的内部并不发生改变,而是通过相互之间的信息交流联系。,最后,保证的开放性或灵活性。软件开发过程的复杂性决定了软件开发工具的多样性和可变性。理想的模块结构应当是模块式的,易于裁剪的。,面向用户的原则体现在几个方面?,面向用户的原则具体体现在两方面:,一方面是总控部分对各部分的调度与安排应当体现符合软件开发人员思路的概念模式。,另一方面,向用户提供的统一界面应当体现这个模式。,不论是设计一体化的软件开发工具,还是把分散的单项工具集成起来,都应当遵循面向用户这个基本原则。,为什么要保证软件开发工具各部分之间信息的准确传递?,无论是分散的软件工具集成为一体化工具还是有计划有组织的统一开发一体化工具,它们的内部都是通过相互交流信息联系。,交流信息时,信息能够准确地从一个部分传送到另一个部分,就成为一体化是否成功的关键。某一部分的输出当它成为另一个部分的输入的时候,它的特殊因素就必须经过充分的考虑,并进行必要的交换或调整,否则,就会产生误解以致干扰和破坏了整个软件系统的正常运转。,因此,必须保证软件开发工具各部分之间信息的准确传递。,软件开发工具是为软件开发人员服务,因此软件开发工具要能够对软件环境及需求、软件结构与功能、软件开发工作的过程与步骤进行描述。IBM的AD/Cycle就是这样一个框架,它一方面描述了一般的应用软件的结构即SAA,另一方面,它进一步提出了应用软件开发的各个阶段的模型。SAA:系统应用体系结构,包括的接口及内容如下表所示:,AD/Cycle把软件开发过程的一个周期分五个阶段,各阶段的任务,(1)需求分析阶段需求分析阶段的任务是建立逻辑模型。具体说:首先应当建立志软件所处领域或环境的模型(即“,企业模型,”)其次,建立起软件所要处理信息的静态模型,即,数据模型,。第三,建立起,信息流通的模型,,即信息的来源、去向、存储及处理的逻辑过程。,(2)分析设计阶段需求分析阶段的基本任务是完成系统的,总体设计,。包括数据结构的详细设计,处理过程的详细设计,子系统或模块的划分以及它们之间相互联系的具体规定。作为对于一下阶段工作的具体要求,还应当完成屏幕设计、报表设计、数据库的物理设计。(3)编码阶段是指编写软件的阶段,这里是实际的程序代码的产生点。,(4)测试阶段任务是对已经完成的各个模块或子系统进行测试、调整,以便最终形成完整的软件。需要安排测试方案,准备测试数据,收集与分析测试结果,对需要修改的模块进行修改或调整。,(5)运行维护阶段任务是组织和管理软件的日常运行,收集运行中的状态信息及出现的问题并及时地进行局部的修改与完善。,4.3信息库及其管理,信息库是软件开发工具的基础。没有这个基础,或者这个基础不牢。总控就无信息可调度,人机界面也就没有有用的信息向用户提供,所谓支持软件开发也就为一句空话。因此,合理的组织信息库的内容,加强信息库的管理功能,是软件开发工具的又一个重要的技术要素。,信息库的技术考虑主要涉及四个问题:,信息库的内容,信息库的组织方式,信息库的管理功能,历史信息的处理方法。,一、信息库的内容:,信息库中需要存放四大类信息,系统状况:,关于软件应用的领域与环境的状况,。,包括应用领域中的有关实体及它们之间的相互关系的描述,软件要处理的信息的种类、格式、数量、流向、应用领域对软件的要求、使用者的情况、背景、工作目标、工作习惯等。一般是在需求分析阶段收集并存入信息库,主要用于分析设计阶段。,设计成果:,包括逻辑设计与物理设计的成果。主要包括:数据流程图、数据字典、系统结构图、数据库逻辑设计、各模块的设计要求以及由此形成的设计文档。,运行状况的记录,:包括运行效率、作用、用户反映、故障情况、故障的原因及处理情况。,项目管理与版本管理的信息:,包括项目的进度、过程、人员分工、资源投入、版本组织等。属于跨生命周期的信息。,第三章书本61页有详细的内容。,二、信息库的组织方式(三种),1、集中存储方式(最初采取)就是建立一个庞大的数据库,把各种信息都存放在这个数据库存中,而各种工具,或实现单项功能的模块则围绕在这个信息库的周围,进行操作。优点:想法比较自然,而且充分利用已有的数据库技术,比较容易保持一致性。缺点:与模块化的要求相冲突。,2、分散存储把信息分别存入不同的数据库,由不同的功能模块来处理。优点:易于变更和裁剪,一部分发生变更,不致影响整个系统。缺点:每个模块都要有自己进行一整套增删改的操作,且各部分之间的一致性无从保证。,信息库,模块,1,模块,2,模块,3,子库,模块,1,模块,2,模块,3,子库,子库,3、逻辑上统一、物理上分散、设立统一的信息库管理模块来进行管理:通过信息库管理模块来对分散的各个数据库进行存取,并进行一致性的检查与维护。优点:数据库与模块都实现了模块化,既保持了一致性,又保持了灵活性。,子库,模块,1,模块,2,模块,3,子库,子库,信息管理模块,三、信息库的管理功能,1)与一般数据库管理系统相同的功能:录入更新、使用查询、一致性维护。,2)与一般数据库不同的管理功能:,信息库管理的主要任务,(1)信息之间逻辑联系的识别与记录。即信息库管理模块必须记住信息之间的逻辑联系,如数据字典某一项发生变化,相应的数据流程图也必须随之变更,不管是否在同一个数据中。,(2)如何实现定量信息与文字信息的协调一致。,如数字的部分修改不会引起与数字对应的全部文字的修改。,四、历史信息的处理方法,1、信息库的另一个问题是如何处理历史信息。实际操作中有两个困难:(1)一个是历史信息的数量太大,占用存储设备过多。,大容量问题,(2)另一个是历史信息格式不一致,难以有效地利用。,表达方式不一致问题,2、解决办法:(1)前一个问题一般采用脱机备份的方法解决。即面对信息爆炸的问题要做好脱机备份的准备。(2)解决后一个问题是十分困难的。加强标准化、稳定数据结构只能使这个问题得到一定程度的解决。(任何标准化都不是一成不变的,数据结构的稳定是相对的,变更则是绝对的。这个问题至今尚无令人十分满意的解决办法),4.4文档的生成与代码的生成,除了通过屏幕上的对话获取信息支持外,使用者从软件开发工具得到的最主要的帮助有两种方式:文档生成与代码生成。软件开发工具的起点也就是这二者,软件开发工具的主要输出成果:,程序和文档。,一、代码生成1、代码生成器的基本任务,根据设计要求,自动地或者半自动地产生相应的某种语言的程序。输出代码是这个模块的目标。输出的代码有两种情况:某种高级语言程序的代码和某种机器环境下可运行的机器指令。,某种高级程序设计语言
展开阅读全文