您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第1讲 计算机辅助软件工程的发展趋势
1软件开发环境与工具2第1讲软件开发环境与工具的相关概念第2讲软件开发工具的功能与结构第3讲软件开发环境与工具的的选用第4讲需求分析与设计工具第5讲数据库设计与开发工具第6讲程序设计工具第7讲界面设计工具第8讲多媒体开发工具第9讲测试工具第10讲项目管理工具第11讲软件配置管理工具第12讲UML与RationalRose软件第13讲软件产品线与网构软件第14讲软件酶第15讲VB第16讲综合实验31.1、软件开发环境在软件工程学中,方法和工具是同一个问题的两个不同方面,方法是工具研制的先导,工具是方法的实在体现,软件工程方法的研究成果要最终实现为软件工具和系统,才能充分发挥软件工程方法在软件开发中的作用。软件开发环境,就是围绕着软件开发的一定目标而组织在一起的相关一组软件工具的有机集合。第1讲软件开发环境和工具的相关概念42.1.软件开发环境概论1.什么是软件开发环境软件开发环境是指在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。一个由IEEE和ACM支持的国际工作小组提出的关于“软件开发环境”的定义是:“软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成”。美国国防部在STARS计划中定义如下;“软件工程环境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生存期”。“可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理而编制的计算机程序或软件。”52.软件开发环境的发展在70年代,软件开发与设计方法由结构化程序设计技术(SP)向结构化设计(SD)技术发展,而后又发展了结构化分析技术的一整套的相互衔接的SA-SD的方法学。在80年代中期与后期,主要是实时系统设计方法,以及面向对象的分析和设计方法的发展,它克服了结构化技术的缺点。在90年代主要是进行系统集成方法和集成系统的研究,所研究的集成CSAE环境可以加快开发复杂信息系统的速度,确保用户软件开发成功,提高软件质量,降低投资成本和开发风险。63.对软件开发环境的要求软件开发环境的目标是提高软件开发的生产率和软件产品的质量。(1)软件开发环境应是高度集成的一体化的系统。(2)软件开发环境应具有高度的通用性。(3)软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。(4)软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。(5)软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。72.软件开发环境的分类软件开发环境是与软件生存期,软件开发方法和软件处理模型紧密相关的。其分类方法很多,本节按解决的问题、软件开发环境的演变趋向与集成化程度进行分类。1)按解决的问题分类(1)程序设计环境。(2)系统合成环境。(3)项目管理环境。项目管理环境的责任是解决由于软件产品的规模大、生存期长、人们的交往多而造成的问题。82)按软件开发环境的演变趋向分类(1)以语言为中心的环境。(2)工具箱环境。这类环境的特点是由一整套工具组成,供程序设计选择之用,如有窗口管理系统,各种编辑系统,通用绘画系统,电子邮件系统,文件传输系统,用户界面生成系统等。(3)基于方法的环境。这类环境专门用于支持特定的软件开发方法。3)按集成化程度分类(1)第一代,建立在操作系统上。(2)第二代,具有真正的数据库,而不是文件库。(3)第三代,建立在知识库系统上,出现集成化工具集。91.3软件工具的基本概念软件工具是软件开发环境中最主要的组成部分,软件开发环境的主要目标是提高软件开发的生产率、改善软件质量,和降低软件成本。而这些目标的实现,只能直接依靠软件工具的广泛使用,所以对软件工具开发、设计和使用的研究是十分重要的。1.什么是软件工具软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。所以软件工具是一个程序系统。软件工具通常由工具、工具接口和工具用户接口三部分构成。工具通过工具接口与其他工具、操作系统或网络操作系统,以及通信接口、环境信息库接口等进行交互作用。当工具需要与用户进行交互作用时则通过工具的用户接口。102.当前软件工具发展的特点软件工具的发展有以下特点:(1)软件工具由单个工具向多个工具集成化方向发展。(2)重视用户界面的设计。(3)不断的采用新理论和新技术。(4)软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。3.软件工具的分类如何对软件工具进行分类,一直是人们研究的热点,自90年代以来掀起了新的热潮。Reifer和Trattner将软件工具分为6类:模拟工具、开发工具、测试和评估工具、运行和维护工具、性能测量工具和程序设计支持工具。111.4计算机辅助软件工程(CASE)计算机辅助软件工程这一术语的英文为Computer-AidedSoftwareEngineering,缩写为CASE。1.CASE定义CASE是一组工具和方法集合,可以辅助软件开发生命周期个阶段进行软件开发。122.CASE分类1)CSAE技术种类CASE系统所涉及到的技术有两大类:一类是支持软件开发过程的本身的技术,如支持规约、设计、实现、测试等等。还有一种特殊的CASE技术,即元-CASE技术。2)CASE工具软件工具是用于辅助计算机软件的开发、运行、维护和管理等活动的一类软件。随着CASE的出现,人们也经常使用工具这一术语。人们一般不加区别地使用软件工具和CASE工具这两个词。133)CSAE工具的分类对CASE工具分类的标准可分为:(1)功能。(2)支持的过程。(3)支持的范围。1993年Fuggetta根据CASE系统对软件系统的支持范围,提出CASE系统可分为三类:(1)支持单个过程任务的工具。(2)工作台支持某一过程所有活动或某些活动。(3)环境支持软件过程所有活动或至少大部分。143.CASE的集成以一种集成的方式工作的CASE工具可获得更多收益,因为集成方式组装特定工具以提供对过程活动更广泛的支持。(1)平台集成:工具运行在相同的硬件/操作系统平台。(2)数据集成:工具使用共享数据模型来操作。(3)表示集成:工具提供相同的用户界面。(4)控制集成:工具激活后能控制其他工具的操作。(5)过程集成:工具在一个过程模型和“过程机”的指导下使用。151)平台集成“平台”或是一个单一的计算机或操作系统或是一个网络系统。2)数据集成数据集成是指不同软件工程能相互交换数据。(1)共享文件。(2)共享数据结构。(3)共享仓库。最简单的数据集成形式是基于一个共享文件的集成,UNIX系统就是这样。UNIX有一个简单的文件模型,即非结构化字符流。任何工具都能把信息写入文件中,也能读其他工具生成的文件。UNIX还提供管道。163)表示集成表示集成或用户界面集成意指一个系统中的工具使用共同的风格,以及采用共同的用户交互标准集。工具有一个相似的外观。当引入一个新工具时,用户对其中一些用户界面已经很熟悉,这样就减轻了用户的学习负担。目前,表示集成有如下三种不同级别:(1)窗口系统集成。(2)命令集成。(3)交互集成。4)控制集成控制集成支持工作台或环境中一个工具对系统中其他工具的访问。5)过程集成过程集成意指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。174.CASE工作台1)CASE工作台概述(1)CASE工作台的分类。一个CASE工作台是一组工具集,支持像设计、实现或测试等特定的软件开发阶段。将CASE工具组装成一个工作台后工具能协调工作,可提供比单一工具更好的支持。可实现通用服务程序,这些程序能被其他工具调用。工作台工具能通过共享文件、共享仓库或共享数据结构来集成。(2)开放式工作台和封闭式工作台。182)程序设计工作台程序设计工作台由支持程序开发过程的一组工具组成。将编译器、编辑器和调试器这样的软件工具一起放在一个宿主机上,该机器是专门为程序开发设计的。组成程序设计工作台的工具可能有:(1)语言编译器:将源代码程序转换成目标码。(2)结构化编辑器:结合嵌入的程序设计语言知识。(3)连接器。(4)加载器。(5)交叉引用。(6)按格式打印。(7)静态分析器。(8)动态分析器。(9)交互式调试器。193)分析和设计工作台分析和设计工作台支持软件过程的分析和设计阶段,在这一阶段,系统模型已建立(例如,一个数据库模型,一个实体关系模型等)。这些工作台通常支持结构化方法中所用的图形符号。支持分析和设计的工作台有时称为上游CASE工具。它们支持软件开发的早期过程。程序设计工作台则成为下游CASE工具。4)测试工作台测试是软件开发过程较为昂贵和费力的阶段。测试工作台永远应为开放系统,可以不断演化以适应被测试系统的需要。201.5计算机辅助软件工程的发展趋势计算机辅助软件工程(ComputerAidedSoftwareEngineering,即CASE)技术,是目前计算机界研究的热点之一。进入90年代以来,IBM、DEC、Oracle等各大公司纷纷推出应用于各种不同类型计算机的CASE产品,其发展速度呈直线上升趋势,几乎主宰了整个软件市场。学术界的研究与讨论也异常活跃。从1988年3月IEEESoftware杂志出了一期专刊以后,国际上各大学术刊物纷纷发表有关CASE技术及CASE产品的文章。国内的许多学者在这方面也有较深入的研究和见解。211、CASE技术的发展历史CASE技术是软件技术发展的产物。它既起源于软件工具的发展,又起源于软件开发方法学的发展,同时还受到实际应用发展的驱动。1)应用CASE是用以支持应用系统开发的,新的应用必然驱动系统开发方法的演变。由于新的开发方法越来越复杂,因而需要强有力的开发工具的支持;反过来,由于使用工具,又使新的开发方法和新的应用系统的开发更加简便。2270年代,绝大部分应用系统是用第三代语言写成的批处理系统。随着数据库技术的成熟,更复杂的数据密集型的交互处理系统应运而生,同时出现了帮助用户分析数据的决策支持系统。80年代,专家系统和基于知识的应用引起第四代语言(4GL)和第四代技术(4GL)的发展,应用系统要求自动推理和自动生成。90年代,为了使企业适应激烈多变的市场竞争且取得成功,应用系统的开发必须适应企业对功能不断增加和修改的需求,甚至要建立在某一领域内覆盖所有组织层次和各种功能需求的系统。这就需要更加复杂的应用技术,如组合建模、交互图形用户界面的实现等等,这成为CASE技术发展的主要驱动力量。232)方法软件开发方法的发展,是沿着结构化方法、面向对象的方法和快速原型法这样一条轨迹进行的。结构化方法出现于70年代,是支持系统最早的努力之一。由于在系统开发生命周期前期错误所产生的代价太高,因而用于需求分析和设计的结构化技术(SADT)得以产生和发展。但是,许多结构化方法只处理信息系统模型的一个或几个方面,描述问题不太精确并且有二义性。24在80年代中后期,实时系统的设计与面向对象的分析和设计方法的出现,弥补了结构化技术的一些缺陷。面向对象(客体)的程序设计(OOP)其基本观点就是把世界上的一切事物高度抽象为若干客体,每种客体都有自身的特性和活动,各客体因互通信息而相互作用。在数据处理中,客体与活动分别对应数据及其处理。过去传统的方法是将数据与处理截然分割,而这种方法将两者合并于客体概念之中,这样设计出的软件必然是模块化的、可扩充的、可重用的、可移植的,克服了过去由于分析设计与实施割裂所造成的程序编制必须到设计后期才能进行的程序“沉淀”现象。25快速原型法的出现缩短了软件开发周期,提高了软件开发效率。这种方法使用户在大规模的软件开发之前,能够尽快看到未来系统的全貌,了解系统功能及效果,使开发人员可以及时对模型修改、补充,为用户展开新的模型,直到用户为满意为止,形成最终用户产品。采用原型法开发系统具有众多的优点,但要快速生成原型,必须有软件开发工具的支持,这就进一步推动了CASE工具的发展。263)工
本文标题:第1讲 计算机辅助软件工程的发展趋势
链接地址:https://www.777doc.com/doc-3674315 .html