书签 分享 收藏 举报 版权申诉 / 123
上传文档赚钱

类型《软件系统开发技术》课件第10章.ppt

  • 上传人(卖家):momomo
  • 文档编号:7939104
  • 上传时间:2024-09-06
  • 格式:PPT
  • 页数:123
  • 大小:504.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《软件系统开发技术》课件第10章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件系统开发技术 软件 系统 开发 技术 课件 10
    资源描述:

    1、第十章软件工具和环境10.1 计算机辅助软件开发10.2 需求分析和规格说明工具10.3 概要设计工具AIDES系统10.4 详细设计工具SDL/PAD系统10.5 编程工具程序综合器10.6 检验和测试工具10.7 维护工具10.8 面向对象开发和维护的工具10.9 软件开发环境第十章软件工具和环境 计算机近二十年来广泛应用于各行各业,使这些领域的工作得以自动化。例如,许多飞机、汽车、拖拉机就是由先进的CADCAM系统设计和制造的。CADCAM(Cornputer Aided DesignComputer Aided Ma.nufacturing,即计算机辅助设计计算机辅造制造)系统是一组集

    2、成化的工具,它们支持各种产品的规格说明、设计、分析和制造,从而减少或取消了生产过程中大量劳力密集的活动,对提高生产率和改进产品质量起了重要作用。l0.1 计算机辅助软件开计算机辅助软件开发发 第十章软件工具和环境大型软件系统的开发始终是一类劳力密集的活动,尽管7 O年代以来出现了不少指导软件开发的方法,且这些方法是有效的,但是实施这些方法涉及的许多工作是复杂而耗费人工的。例如按照这些方法需要编写大量高质量的文档,而且还需不断对它们作修改。维持文档内部的一致性并使各种版本合理地配置就是一个特别困难的任务,而人的能力毕竟是有限的,因此由人来处理大规模的问题显然难以保证质量。在计算机产量猛增、软件需

    3、求急剧上升,软件技术人员紧缺的形势下,人们认识到对软件开发必须采用类似CADCAM的技术,也就是说必须为软件开发提供良好的自动化工具。第十章软件工具和环境早期的自动工具集中用于开发期的后阶段,最典型的例子是行文编辑程序、编译程序、排错程序等。提出软件生命期模型以后,有一段时期一直没有支持分析和设计的工具,70年代末,随着各种需求分析方法和设计方法的提出,对需求分析工具、设计工具以至支持整个生命期的配套工具和集成化软件开发环境的研究逐步形成高潮。目前,对软件工具和环境的研究方兴未艾,软件产业界和学术界都有不少单位在从事这一课题的研究,已有一些工具作为产品在软件市场上销售,但它们的功能还比较简单;

    4、一些大学、研究所虽也研究出不少成果,且这些成果的面较广,功能更高级,但一般还未能用到产业界。第十章软件工具和环境 本章将分别介绍生命期各阶段可使用的典型工具,特别是支持SA方法和SD方法的工具,由此,对软件开发自动化的状况可见一斑。限于篇幅,我们只讨论这些工具的功能,不再介绍它们的内部实现。第十章软件工具和环境SA方法是相当实用的一种需求分析和规格说明方法,由于它简单、易学易用,在国外软件产业界已广泛使用多年,人们对它的一般反映是:由于有了简明清晰的需求说明书,所以方便了人际交流;又由于在开发早期就能从用户那里获得反馈,所以错误减少了,开发成本也有所下降。虽然SA方法是很有价值的,但它本身仍有

    5、其固有的问题:仅用笔和纸来绘制和修改需求说明书很费人工,而且错误多,检查文档的一致性和完整性很不容易,系统规模越大、需求说明书越详细时,情况则更糟。这就妨碍了生产率和产品质量的进一步提高。人们意识到,自动工具有可能解决上述困难,本节将介绍两个支持SA方法的工具。l0.2 需求分析和规格说明工具需求分析和规格说明工具 第十章软件工具和环境10.2.1 Tektronix的工具箱的工具箱 美国Tektronix公司对SA方法进行了仔细的分析,他们发现SA方法的下面3个方面是可以考虑自动实现的:(1)图形和文字编辑程序可以减少修改SA文档的工作量。数据词典和小说明可借助一般的文字编辑程序来建立和修改

    6、,专门的图形编辑程序配上图形终端等设备则可帮助人们绘制数据流图。由于数据流图中各个成分所在的位置对文档的可理解有一定的影响,如果图形编辑程序能自动为各个成分定位,则效果会更好。第十章软件工具和环境(2)SA文档中某些类型的错误可以用计算机来检查,例如上下两层数据流图对某个数据流的使用不一致,这种硬性错误就可用计算机来检测。当然涉及文档语义的一些错误还是要由人来发现,例如一个数据流的命名是否合适等。既然SA文档存放在计算机中,那就可由一个检查工具来检测文档中的不一致性,当然光是发现错误对维持一致性来说还不是令人满意的,因为一个一致的SA文档建立起来后,如果某个部分被修改了,整个文档的一致性又会遭

    7、到破坏,所以如果能监视对文档的修改要求,并能自动导出文档中受影响部分需作的相应修改,则某种类型的不一致性就可避免了。这类检查工具可同编辑程序配合起来维持文档的一致性,而不是简单地发现不一致性。第十章软件工具和环境(3)从SA文档有可能自动导出SD方法的初始结构图。需求说明书写成后,下一步就是设计了,接在SA方法后使用的往往是SD方法。从一套数据流图自动导出初始结构图是有可能的,但导出过程需要一定的人工干预,所以这个过程不是全部自动化的,研究有效的半自动转换工具有一定难度,需要较高的投资。在进行了上述分析后,Tektronix公司先开发了编辑、检查、格式化和文档整理等一套自动工具,它们是用Mod

    8、ula-2编写的,可在uNIx操作系统上运行,并用Tektronix的图形终端设备作为交互式图示手段。这些工具可以个别使用,也可结合起来配套使用,下面分别介绍这四类工具及其协同工作的过程。第十章软件工具和环境(1)编辑工具使用户能交互地修改SA文档,并负责导出维持文档一致性所需的相应修改要求。编辑工具有2个:数据流图编辑程序和文字编辑程序。前者是个专用的图形编辑器,它用于建立和修改数据流图,用户可用鼠标器来指定数据流图中每个成分的位置;后者可用于对数据词典和小说明作修改。编辑程序要对每个修改命令进行分析,以便导出对整套SA文档需作的相应修改,文档整理工具将检验并完成这些相应修改要求。第十章软件

    9、工具和环境(2)检查工具用于检测SA文档中的错误。检查工具有4个,它们分别对数据流图、数据词典、小说明和全套SA文档进行检查。它能发现两类错误,一类是违背SA方法规则的硬性错误,如未定义的数据、只写不读的文件等;另一类是软性错误,如一张数据流图中画有过多的加工等,这些软性错误通常说明分析员未能很好地理解问题。(3)格式化工具将数据流图、数据词典、小说明等的内部表示转换成适合于人们阅读的形式,通常输出是显示在图形终端上的。第十章软件工具和环境(4)文档整理工具检查编辑工具导出的修改要求,并完成这些修改,从而维持全套SA文档的一致性。例如,从一张数据流图中删去了一个加工,就应将从属于这个加工的所有

    10、数据流图及小说明删去,还应从数据词典中删去仅被这个加工及其下属所使用的条目;又如某个加工的编号被修改后,其下属的数据流图及小说明的编号也应作相应的修改。编辑工具负责导出这些相应的修改要求,整理工具再验证这些修改对维持一致性是否确实需要,然后完成这些修改。第十章软件工具和环境上述工具协同工作的过程如下(图10.1):(1)用户用编辑工具以交互方式对数据流图进行修改,编辑工具负责维持数据流图的合理性,如每个数据流必须有其源点和终点,则只有在操作员指定其源点和终点之后,才能画出一个数据流;如果源点或终点中的一个被删去了,这个数据流亦自动被删去。所以,某个修改对本张数据流图的影响在编辑时立即完成,但对

    11、其他SA文档的影响则由编辑工具导出相应修改要求提交给整理工具来完成。第十章软件工具和环境(2)编辑过程结束后,整理工具读取导出的相应修改要求,并据此对SA文档的有关部分作修改。(3)整理工作完成后,检查程序开始工作,它对SA文档作检查。文档中被发现的错误,有些可以自动纠正,有些则必须向操作员报告,由人决定如何修改,例如父图和子图不平衡,纠正这种错误有多种可能,所以工具无法自动处理。Tektronix公司试用这套工具之后,获得了良好的效果,很明显的一点变化是:以前,开发工作的瓶颈总是绘制和重画数据流图,用了工具后,瓶颈变为评审文档所需的时间了,可见这套工具对SA方法的实施起了积极作用。第十章软件

    12、工具和环境 近年来,由于图形显示设备的图形处理软件的迅速发展,类似Tektronix工具箱的系统已开始在市场上出现。这些工具还具有多窗口处理能力,可以在不同的窗口同时显示和处理上下几层数据流图及有关的数据词典和小说明,实施SA方法就更方便了。第十章软件工具和环境 l 0.2.2 PSLPSA系统系统 使用SA方法除了绘制数据流图之外,还要编写一本数据词典和一组小说明,小说明亦可像数据词典那样组织,即按编号或加工名的顺序排列起来构成一本词典,每个小说明就是词典中的一个条目。对大型系统来说,词典的容量一般比较宠大,所以人工维护一本词典是很花时间也很单调乏味的,词典经多次修改后,其一致性、完整性也难

    13、以靠人工来检查。我们可以用计算机代替人来完成这项机械而繁琐的工作,负责这种工作的程序系统称为“词典管理程序”,或简称“词典”。第十章软件工具和环境 一个“词典管理程序”应具有下列基本功能:(1)规定一套词典条目的格式,即为数据流、文件、数据项、加工等几种类型的条目各规定一组语法。(2)接受上述格式的词典条目作为输入。(3)具有编辑的手段:如对词典条目进行插入、删除、修改等。(4)具有一定的一致性、完整性检查能力,即能发现并报告一些错误,如语法不正确、重复定义、循环定义等。(5)能够产生各类查阅报告、词典清单等。第十章软件工具和环境“词典管理程序”是一种有效的工具,近年来已研制出多种不同类型的词

    14、典管理程序,其功能从简到繁各不相同,PSLPSA就是在词典管理的思想上开发出来的一个有代表性的系统。PSIJPSA是美国密执安大学ISDOS(1nformation system Design Optimization System)项目组研制的一个系统,研制这个系统的目的是为分析员提供需求文档的编写和检查的工具。第十章软件工具和环境 PSIJ(Problem Statement Language)是一种问题说明语言,它可以按一定的语法描述用户对系统的功能要求和性能要求。PSA(Problem Statement Analyzer)是问题说明分析器,它可以对用PSI。书写的文本进行分析,产生许

    15、多有用的报告,图10.2是PSLPSA系统的示意图。PSLPSA将软件系统中的每个成分看作是一个“对象”,对象之间有特定的联系,每个对象本身又有特定的性质。以图32为例,?分类”、“报名”、“帐目”、“学生”、“报名单”、“发票”、都是对象,对象分成加工和数据两大类,图3.2中的“分类”、“报名等属于加工类,其余属于数据类。第十章软件工具和环境图10.2第十章软件工具和环境 PSL是一种形式化的需求描述语言,它从系统的输入输出流、系统结构、数据结构、数据流程、系统规模、系统动态、系统性质、项目管理等8个方面描述系统中的每一个对象,包括它们的种种性质以及它们之间的联系。对每个对象的一段PSI。描

    16、述就构成了一个词典条目。PSIJ描述一个数据对象的语法如表10.1所示。第十章软件工具和环境第十章软件工具和环境 表10.1中第一行指出了数据对象的名字。第二、三行描述了数据的结构,即这个数据由哪些数据项组成,它本身又是什么数据的一部分,第四、五、六行描述了数据的流程,即它由哪个加工产生,被哪个加工修改,又被哪个加工使用等。PSL描述一个加工的语法如表10.2所示。表中第一行指出了加工的名字。第二、三行描述了系统的输入输出流,即这个加工产生什么数据输出到系统外面,这个加工从系统外接受什么数据等。第四行描述了这个加工的逻辑,加工逻辑可用自然语言或结构化语言描述。第十章软件工具和环境第五、六、七行

    17、描述数据流程,即这个加工产生什么数据,修改什么数据,使用什么数据等。第八、九行指出了系统的结构,即这个加工有哪些子加工,它本身是哪个加工的一部分等。第十行说明这个加工执行的频率,如每天发生多少次等。最后三行是系统动态方面的描述,如这个加工被什么事件激发,这个加工的开始将引起什么事件,加工的结束又会引起什么事件等等。第十章软件工具和环境第十章软件工具和环境 在用SA方法分析大型的数据处理系统时,借助PSLPSA这个工具,我们就可以一边对用户的数据处理活动作由顶向下逐层分解,一边将分析过程中遇到的数据流、文件、加工等对象用PSL描述出来,并将这些描述输入到PSLPSA系统。PSA将对输入信息作词法

    18、、语法、一致性和完整性检查,防止相互矛盾的或错误的信息进入文档中,然后保存这些描述信息,这就形成了一个用计算机管理的词典,或称“文档库”。当需要修改对系统的描述时,PSA可以根据要求对文档库中的内容作编辑修改,同时进行种种检查,以维持文档的一致性。需求分析阶段结束后,PSA可以根据分析员要求以标准格式输出全部文档。第十章软件工具和环境 由于PSL是一种形式化的语言,有确定的语法,可以被计算机处理,所以PSA可以帮助分析员对用PSL书写的文档进行查阅分析,产生从不同侧面观察系统的各种报告。其中,有些报告只是将文档库中的信息原封不动地取出制成报表,有些需对信息重新排列,有些则涉及复杂的分析。例如,

    19、PSA可以列出名为X X X的对象的所有属性,或者列出同X X X有关的所有对象,这些功能可以帮助分析员对文档作有选择的阅读PSA还可以产生描述系统中成分间交叉引用关系的报告,数据加工关系表和数据元素关系表就是两个典型例子。第十章软件工具和环境数据加工关系表用矩阵表示数据同加工间的相互关系(表10.3),表中最左边列出了数据型对象(另有编号一数据名表指出编号同数据名的对应),最上面一行列出了加工型对象(另有编号一加工名表指出编号同加工名的对应),表中的字母描述了数据I和加工J的关系:字母R表示数据I被加工J接收或使用,字母u表示数据I被加工J修改,字母D表示数据I由加工J导出或产生。第十章软件

    20、工具和环境 数据元素关系表用矩阵描述数据对象所含的元素,也描述了多个数据对象含有公共元素的情况(表10.4),表中最左边列出了数据元素(即数据项),最上面列出了数据对象(另有编号一元素名表和编号一数据名表指出编号同元素或数据的对应),表中第l行第J列的*号表示数据J中含有元素I。PSA产生的上述报表,可以帮助分析员进一步理解需求文档,它们不仅在需求分析阶段,而且在整个生命期间都是很有用的,例如对系统作维护修改时,根据数据加工关系表就可确定数据I修改的影响范围,以便决定必须重新设计哪些加工。第十章软件工具和环境 由于词典条目中包含了对数据流程的描述,所以PSA还可根据词典的内容打印出数据流图,这

    21、些图可能要分别打印在几张纸上,按打印在纸上的标记将几张纸拼接起来,就可得到一张完整的数据流图。PSLPSA系统使人们用统一的方式来理解和表达一个数据处理系统,并发挥了计算机的特长来维护需求文档库,使需求文档标准、一致、完整,并且能反映系统的最新状况。PSLPSA系统的作用是多方面的,无论从词典管理、文档编辑、文档检查、文档理解和维护等哪一角度来看,它都是一个良好的工具。PSLPSA系统是软件工具中的一个杰出代表,目前在IBM、uNIVAc等大型机上都可配备PSLPSA系统。第十章软件工具和环境 SD方法在l974年提出之后,受到人们的普遍关注,经多年使用后,其效果是明显的。SD方法使设计文档标

    22、准化,提高了软件的可理解性和可维护性,而开发成本却降低了。但是使用SD方法也有一些问题,第一是大型系统的结构图很复杂,其典型尺寸约为20英尺(6.09 6 m)长、l0英尺(3.048 m)高,包含了成百上千个模块,所以绘制、修改并维持其正确性既化人工又很困难;第二是SD方法的一些设计技巧虽然概念上是自然的,但是没有严格的定义,所以实际使用并非容易,对经验不足的人尤其如此,例如块间联系、块内联系的类型、作用范围控制范围等问题备人可以有不同解释,难以客观地进行评价。l0.3 概要设计工具概要设计工具AIDES系统系统第十章软件工具和环境这些问题带来的后果是开发人员将设计看成是额外的负担,于是往往

    23、仅绘制一个极粗糙的结构图后就急于去编程,想在编程中再来完成设计,这就难以保证产品的质量;又由于设计员难以了解整个系统的结构,往往只是“改进”他自己的子系统,这样使整个系统的设计质量遭受损失。所以随着SD方法的推广,开发支持SD方法的自动工具势在必行。第十章软件工具和环境 美国Hughes飞机公司80年代初在VAX 11780机上开发了AIDES(Automated Interactive Design and Evaluation System)系统。AIDES一方面是一个典型的信息处理系统,它具有一些常规的功能,如交互式编辑、报告产生、数据库管理等;另一方面,它又是一个“计算机辅助设计”系统

    24、,因为它具有设计文档编写、结构图自动图形布局、设计标准强制、设计配置控制、设计复杂性度量和可测试性度量等性能。AIDES可以辅助设计人员用SD方法以交互方式对软件系统作模块分解,系统的反馈信息基本是图形的,图10.3是AIDES的示意图。第十章软件工具和环境 图 10.3第十章软件工具和环境AIDES包括两个部分:结构图图示系统(SCG。)和设计质量度量系统(DQM)。结构图图示系统SCG(Structure Cha,rt Graphics System)具有下列功能:1)交互式结构图编辑:操作员只要发出一条命令“建立一个模块”,系统就会自动问模 块的名字和调用的模块等,然后在文档中插入有关信

    25、息并修改屏幕上的图形;屏幕上还能。同时显示模块的文字信息(功能、输入和输出等)。第十章软件工具和环境 2)窗口设置:通过窗口用户可以选择观看整张结构图的一部分,窗口还可以伸缩,因此可以粗看整张结构图的形态,也可细看某个局部。3)结构图自动布局:按照某种标准为结构图中各个成分自动定位,使各模块尽可能匀称合理地排列,因此结构图比较美观清晰,便于阅读理解。4)设计文档整理:全部设计文档(包括结构图和模块说明)保存在一个关系型数据库中,需要时可以打印或显示。第十章软件工具和环境 5)查询报告:系统可以回答“有多少个模块调用模块”、“哪些模块使用 数据”等查询。此外,SCG还有配置控制和将几个子树装配成

    26、整个系统等其他功能。AIDES的另一部分是DQM,它是对设计质量作定量分析的工具。在软件生命期中应该 对软件质量尽早进行评价,因为越到生命期后期,修改系统所需的开支越大。概要设计完 成后,软件结构方面必有一些错误或缺陷存在,如果设计质量不高,后面程序的质量也不会高,因此在运用SD方法进行模块分解时,应该进行质量评价。第十章软件工具和环境 SD方法用块间联系、块内联系、扇入、扇出、等特性对设计质量进行评价,然而,SD方法尚无严密的理论基础,上述特性亦无严格的定义,所以对设计方案的评价还是相当困难的,人们希望对设计方案也能像对程序一样采用一些定量的评价方法。第十章软件工具和环境 设计质量度量系统D

    27、QM(Design Quality Metric System)是一个初步的研究性系统,其目的是寻找定量描述设计质量的手段。DQM根据结构图的树深度、非纯度和扇入扇出等特性,产生描述结构图复杂性、块间联系和总扇入扇出特征的数字,并立即反馈给设计人员。所以,DQM同SCG结合起来,设计人员就不仅能交互式地建立结构图,而且立即可获知设计方案的质量,并再次调用SCG,对结构图中质差的部分作修改,这样SD方法设计技巧的运用就有了保证。第十章软件工具和环境 定量分析方法目前尚不成熟,DQM采用的定量评价标准是通过对软件作统计得到的,显然有片面性,但在大多数情况下,可望给出令人满意的结果,这些结果对设计及

    28、以后的维护,都有一定的参考价值。AIDES系统提交使用之后,获得了良好的效果。据称,文档编写人工减少了95,整个设计阶段的人工减少了30,而设计质量和文档质量却显著提高了。第十章软件工具和环境 详细设计常用的描述方式包括流程图、盒图、问题分析图和程序设计语言(PDL)等,本节介绍一个支持问题分析图的工具系统。问题分析图(PAD)用顺序、选择、循环等三种标准图式描述一个模块内部的执行过程广而且用“走树”规则(Tree Walk)可以机械地将PAD翻译成编程语言。显然,我们可以研制以下2种工具来支持PAD方法:图形和文字编辑器。10.4 详细设计工具详细设计工具SDLPAD系统系统第十章软件工具和

    29、环境 从PAD自动产生程序的程序生成器。日本日立公司8 0年代初在M系列机上开发了一个试验性的系统SDLPAD(SoftwareDesign LanguagePAD),该系统接受用SD方法确定的模块说明书,然后辅助设计人员以交互方式进行详细设计(采用PAD或SDL描述法),继而可以直接产生用编程语言书写的程序。第十章软件工具和环境 SDLPAD系统的主要功能包括:(1)交互式地建立和编辑每个模块的详细设计文档(即模块内部执行过程的描述);详细设计可用文字(SDL)或图形(PAD)方式输入。SDL是一种类似于PDI。的语言,系统可以发现文档中的不完整性,如未定义的数据、未确定的处理过程等。(2)

    30、输出用PAD描述的全套详细设计文档。(3)从PAD自动产生用高级语言(女IJ PLI、PASCAl。、FORTRAN等)编写的源程序。(4)从源程序产生用PAD书写的相应详细设计文档。(5)统一管理设计文档。第十章软件工具和环境 在SDLPAD系统的支持下,详细设计和编程的难度大大降低了,其工作过程如下:(1)设计人员交互地输入详细设计方案。(2)系统输出用PAD表示的图形化文档供设计人员复查并及时纠正错误。(3)系统自动产生源程序。(4)编译程序将源程序翻译成机器代码。如果程序中有错误,可以回到第(2)步再作修改。第十章软件工具和环境SDLPAD系统还可以用来对软件作维护。维护工作中一个普遍

    31、存在的问题是维护人员往往只修改程序而不愿意修改文档,造成文档陈旧、与程序不符,所以系统的可维护性日趋下降。为了解决这个问题,SDLPAD有一个附加的功能,即从源程序(任意源程序,不必是SDLPAD本身产生的源程序)产生相应的PAD,因此设计员就可以在PAD这一层而不是在程序这一层进行修改,使维护的难度大大降低,其工作过程如下:(1)系统对源程序作分析,产生相应的PAD。第十章软件工具和环境(2)设计人员对PA_D作交互式地修改。(3)系统将修改后的PAD翻译成新的源程序。由于SDIPAD实现了详细设计文档同程序间的双向自动转换,所以使详细设计结果同程序结合成一体;软件开发时,人工只需做到详细设

    32、计这一步;维护又可在详细设计这一较高的层次进行,所以提高了生产率并改进了软件质量(据日立公司统计,使用SDLPAD系统可使设计人工减少40,周期缩短30);SDLPAD还迫使设计人员使用、SP方法,并维持与程序的最新版本相一致的设计文档。对详细设计的另一种描述方式PDI。,类似SDLPAD的试验性系统也有不少,它们都具有PDL编辑和将PDL。翻译成编程语言的功能,这里不再介绍。第十章软件工具和环境编程阶段考虑的问题包括:程序的建立和修改、程序的翻译、程序的连接装配等。早在60年代,人们已开发了行文编辑程序、编译程序和格式化程序(能产生用缩排法排列的源程序清单)等工具来支持编程活动。在这些早期工

    33、具的支持下,编程工作是这样进行的:先调用编辑器建立源程序,再退出编辑器并调用编译器产生目 标程序,程序执行时如发现错误又要调用编辑器再编辑,退出编辑器后再调用编译器重新编译如此反复。这种工作方式可用图10.4说明。l0.5 编程工具编程工具程序综合器程序综合器第十章软件工具和环境图10.4第十章软件工具和环境 上述编程方式具有明显的缺点:(1)工作方式复杂,反复调用和退出编辑器、编译器、连结程序有诸多不便。(2)工作效率不高,由编辑器产生的源程序一般含有许多语法错误,这些错误要到编译时才被发现,再回过头来纠正。(3)程序员不得不一丝不苟地认真对待标点符号、保留字的拼写、括号配对等繁琐的细节。(

    34、4)工作量大,例如一个几万行的源程序,其中每个字符必须由程序员逐个键入,可以想象,打字量是多么大!第十章软件工具和环境 所以,为了提高生产率,降低编程工作的复杂性,必须对图l0.4的工作方式作改革。对传统的编程方式作分析后,可以看出关键问题在于编辑器不懂得程序的结构,它将程序看作为普通的字符序列,所以不能发现其中的语法错误。解决问题的途经在于使编辑器具有编程语言的句法知识。如果使编辑器具有面向语言的句法结构,就可以大大减轻程序员拘泥于语言细节的负担,这就是语法制导编辑器(SyntaxDirected Editor)的由来。第十章软件工具和环境 美国Cornell大学的程序综合器、Carneig

    35、eMellon大学的Gandalf系统是这方面研究工作的典型代表,下面介绍Cornen大学的程序综合器。程序综合器(Program synthesizer)是建立在uNIx上的一个交互式编程环境,它能辅助程序员进行程序的建立、编辑、执行和排错等多种活动。这个系统的基本思想是将程序理解为由许多语法对象组成的一个层次结构,而不是一般的字符序列,这样,编辑、执行和排错均可在该编程语言的句法结构指导下进行。第十章软件工具和环境 在综合器中,程序是由模板和短语两类成分嵌套构成的一个层次结构。模板是语句的语法轮廓,它包括关键字、匹配括号和标点符号,模板的格式是事先定义的,它体现了编程语言的语法。例如,对P

    36、ASCAL语言来说,条件句的模板是:IF(条件)THEN(语句)ELSE(语句)循环句的模板是:WHILE(条件)DO(语句)在模板的括号内,又可插入新的模板或短语,所以,模板的作用是为语法单元的插入提供一个不可改变的框架。第十章软件工具和环境 短语是用户打入的任意字符串,包括赋值语句、表达式、变量表等。利用综合器建立程序时,程序不再以行文方式逐行输入,而是用由顶向下逐步加细的方式建立,即在先前已进入的模板框架中逐步插入新的模板和短语。程序员用简单的命令(如菜单选择)就可建立模板。由于模板是事先规定的,而且在特定的上下文中可供选用的模板也是事先按语法规定的,所以产生的程序不会有语法错误;对于输

    37、入的短语,综合器立即调用语法分析程序进行语法检查,所以,即使是不完整的程序片断,其语法却总是正确的。第十章软件工具和环境 用综合器对程序作修改时,总是删除或插入整个模板或短语,而在对个别短语进行修改之后,又要立即进行语法检查,这就保证了在编辑过程的每一步,程序的语法结构始终是正确的,即修改不会引起语法错误。例如,将条件句 IF KO THEN X:=A ELSE X:=B改为放在循环句 REPEAT (语句)UNTIL N=0第十章软件工具和环境由于在编辑过程中,程序一直被维持成一种可解释的形式(语法树),所以编辑结束后,程序立即就可执行,即使是不完整的程序片断,亦同样可执行。当遇到尚未输入的

    38、待填部分时,程序被暂时挂起,等所需的语法单元填入后,再恢复执行。程序执行时如因某种原因需要挂起,控制会回到编辑器,显示中止执行的原因及中止的位置,程序员对程序修改后,又可同未被修改的部分连接并继续执行,如此反复,直到程序最终完成,所以在综合器的控制下,程序的编辑、执行能很方便地交替进行。第十章软件工具和环境 综合器还有丰富的源程序级排错功能,如通过窗口观察运行中的程序、监视变量在运行中的变化情况、控制执行速率(全速、单步等)、逆向执行(REDOUNDO)等。上述功能都是以语法结构为单位的。源程序级的这些排错手段可以帮助程序员分析故障原因,较快地找出其中的错误。实现综合器的关键是:程序在机器内部

    39、不是用行文形式而是用结构树来表示,每个模板和短语都是结构树上的一个结点,结点带有许多属性,编辑、执行、排错等功能均以此语法树为操作对象来进行。第十章软件工具和环境 综合器的使用,为编程带来许多便利:(1)由于不必担心会产生琐碎的语法错误,程序员不用再拘泥于种种语法细节(如分隔符是句号还是分号),而可将精力集中于更需智力的地方。(2)由于模板是事先定义的,所以缩排方式可自动保证,这就提高了程序的可读性。(3)由于用简单的命令(如菜单选择)就可插入一个较复杂的模板,不必再逐个打入每一字符,因此减少了打字量,即提高了工作效率又避免了打字错误。第十章软件工具和环境 当然,综合器最有意义的长处是:由于不

    40、完整的程序亦可以执行,所以它有效地支持由顶向下逐步加细的编程方法。程序综合器用统一的用户界面集程序的建立、编辑、编译、运行、测试、排错等工具于一体,以语法树作为公共数据被各个工具共同操作,这样的系统比一般工具箱又前进了一步,由于它为程序员创造了一个良好的工作环境,所以通常称之为编程环境。第十章软件工具和环境 本书第六章已指出在软件生命期中,检验和测试是很重要但又极耗人工的活动,完全凭借人工则效率低效果又差,所以其中一部分工作应该自动化。例如让自动工具对程序作分析,发现某种类型的错误,对可能的错误(可疑的地方)作提示,为选择测试用例提供有用的信息,记录和统计测试结果等。70年代末,有关检验和测试

    41、工具的研究已取得不少成果,一些试验性的工具系统大量出现,例如静态分析工具DAVE和FACES、动态分析工具PET、符号执行工具DISSECT以及集成化的测试系统SADAT等。本节将介绍其中的一部分。10.6检验和测试工具检验和测试工具第十章软件工具和环境10.6.1 静态分析工具静态分析工具 检验的一种手段是静态分析,即人工对程序或需求说明书、设计文档等资料作评审,6.2介绍了人工评审的方法,这种方法是有效的,但由于人类能力的局限,其效果毕竟是有限的。如果需求说明书、设计文档等能用形式化或半形式化(格式化)的方式描述,则可以由自动工具对其作一些检查。此时被检查的文档或程序本身不必运行,它们只是

    42、作为一份文本供自动工具阅读和检查,所以称“静态分析”。第十章软件工具和环境 10.2和10.3介绍的工具系统都具有静态分析功能,如PSLPSA系统能对用PSI。描述的用户需求作一致性和完整性检查,也可以作数据和加工的交叉引用分析:Tektronix的工具箱能对需求作一致性、完整性分析;AIDES能对设计文档作某些检查或进行设计质量的定量分析。至于对程序作静态分析的工具就更多了,因为程序是由形式化的编程语言精确地书写的,所以可用自动工具对它作多种分析,例如:第十章软件工具和环境(1)静态错误分析,这包括对程序作引用分析、界面分析、类型和量纲分析、表达式分析等,其目的是发现某种类型的错误。(2)一

    43、般情况分析,这包括对程序作数据流分析、程序结构分析、事件顺序分析、符号交叉引用分析,其目的不是发现错误,而是获得反映程序功能、结构的一般信息。(3)符号执行,即用符号作为变量的值,以符号形式计算表达式,以便证明程序的部分正确性,这是一种介于测试和正确性证明之间的技术。第十章软件工具和环境 下面对静态错误分析的几种功能作些解释。引用分析的注意点是变量被赋值、引用和去值(过程中的局部变量在过程结束时被去值)的顺序。在程序的任一条路径中一个变量被赋值、引用和去值的顺序应该遵从下面两条规则:(1)引用前必须先赋值,而且在此期间没有去值。(2)赋值后,在再赋值或去值前应该被引用。第十章软件工具和环境 如

    44、果对变量的使用违反了这两条规则就称为“引用反常”,如违背第一条规则,则说明一定有错误存在;违背第二条规则虽不一定有错误,但这样做是浪费时间的,所以是一个可疑之处。观察下面一段FORTRAN程序:SUBROUTINES(A,B)VOLT=A+B BVOLTS RETURN END第十章软件工具和环境只要顺序扫视这个程序就会发现其中有两处出现“引用反常”:变量VOLTS没赋值就被引用,而变量VOLT则在赋值后,一直没被引用。造成“引用反常”的原因往往是变量名拼写错,变量名的冲突使用,没有为变量赋初值或语句位置错等。界面分析可以对设计文档或程序进行,其注意点是模块间界面一致性,例如形式参数和实在参数

    45、的个数、类型、维度是否一致等。第十章软件工具和环境 下面介绍静态分析工具中两个典型的代表:FAcEs和DAVE。FAcES(FORTRAN Automated Code Evaluation System,即FORTRAN自动程序评价系统)由美国加州大学(伯克莱分校)在70年代末开发,用于FORTRAN程序的测试和维护。它本身用FORTRlAN编写,较易于移植,在IBM、uNIVAc、CDC等大型机上均可实现。FACES的前端部分是二个语言处理器,它扫视被检验的FORTRAN程序并产生一些表格存放在数据库中,其中主要的表格有:(1)符号表,它记录程序中的变量名、语句标号、子程序名等信息。第十章

    46、软件工具和环境(2)引用表,它记录程序中引用上述符号名的情况,如哪个赋值句引用某个变量,哪个语句调用某个子程序等,引用表同符号表中用链表连接。(3)结点表,它用有向图的方式把程序的流程结构记录下来。显然,这些表格包含了程序的结构、功能等总的信息,FACES的主体部分以这些信息为基础,完成下列功能:(1)评价程序总的质量。第十章软件工具和环境 查找可能含有错误的结构,这是指语法上虽然正确,但逻辑上可疑的结构,例如向子程序传送的参数是常数就是一个可疑之处。查找多余的即不可能达到的程序段。检查每个循环嵌套、终止的性质。检查模块中局部变量的使用是否出现“引用反常”。在模块间、公共数据块间作界面分析。检

    47、查程序是否符合编程标准。第十章软件工具和环境 (2)回答查询。例如列出使用某个变量名的所有语句,或列出某语句修改后可能影响的所有变量名。(3)产生各种交叉引用表和程序结构图。例如产生“变量语句交叉引用表”、“子程序调用顺序表”、“公共块子程序交叉引用表”、等。这些功能不仅对测试,而且对程序的评价和维护都是很有用的。我们可以把FAcES看成是编译程序的扩充。编译程序可以发现语法错误,FACES则能进一步找出一些编译程序不能发现的逻辑错误。第十章软件工具和环境 FACES的效果可用下面的事实说明:美国国家航天局首次使用FACES时,对一个大型FORTRAN程序作分析,在每200个语句中约发现了一个

    48、错误;在对空中飞船的软件作分析时,在6.5的语句中查出了问题。有人用FACES检查FACES本身的一个新版本,结果查出变量名拼写错、公共块中变量位置错等4个错误,这4个错误一般不会影响系统的运行,所以用人工恐难发现,自动工具的威力由此可见一斑。第十章软件工具和环境 另一个类似的系统DAVE由美国Colorado大学在1976年开发,这是对FORTRAN程序作分析的工具,它本身用FORTRAN编写,在CDC等机器上实现。DAVE对程序作分析的焦点是查找其中的“引用反常”,发现错误后,DAVE打印有关信息,以便帮助程序员分析造成错误的原因。DAVE的作用也可看成是编译程序的某种扩充。DAVE还有其

    49、它功能,如符号执行等。DAVE的使用效果是相当好的,有人用DAVE检查某程序,而该程序已投入实际使用数月余,被认为是“没有错误”的,但DAVE发现了其中的一处“引用反常”,错误原因是变量名拼写错了。第十章软件工具和环境10.6.2 动态分析工具动态分析工具动态分析的基本思想是使程序有控制地运行,并从多种角度观察程序运行时的行为。我们完全可以用一些自动工具来记录、监视、统计程序的运行情况,最典型的方法是在被测程序的某些位置插入一些装置,程序运行时,这些装置就能发挥监视作用,运行结束后,它们就能对测试情况作出报告。下面介绍的覆盖监视工具和动态断言处理器都采用了这种方法。第十章软件工具和环境 程序评

    50、价和测试系统PET(Program Evaluator and Tester System)是动态分析工具的一个代表,它是美国McDonald Douglas公司在70年代末开发的一个覆盖监视工具,已在IBM、uNIVAc、CDC等大型机上实现,其功能是支持对FORTRAN程序采用白盒法测试,可以监视测试的实际覆盖程度。第十章软件工具和环境 白盒法考虑的是对程序路径的覆盖,而对一个逻辑比较复杂的程序,设计一组测试用例,使其达到某种覆盖标准是极为困难的;另外,由于程序中含有错误,实际覆盖程度同预期覆盖程度是否相符也是值得怀疑的。PET能监视测试的实际覆盖程度,根据PET、提供的信息,测试人员就能

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《软件系统开发技术》课件第10章.ppt
    链接地址:https://www.163wenku.com/p-7939104.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库