第3章计算机辅助软件工程及展望(时间:2次课,4学时)教学提示:本章主要介绍计算机辅助软件工程CASE方法。CASE是集软件开发技术、方法和工具为一体的计算机辅助软件工程方法,CASE的新发展是集成化软件工程环境。使用CASE工具开发软件已经成为现实和形成趋势。本教材将着重介绍的PlayCASE是CASE的一种。通过对本章的学习,读者对软件开发方法将会有更加全面的了解。教学目标:掌握CASE、CASE工具的定义、分类和它们应具备的功能;了解国际、国内比较重要的CASE工具;了解集成化软件工程环境的概念、优势,并能通过对未来软件工程的展望,更全面地认识软件工程。第3章计算机辅助软件工程及展望第3章计算机辅助软件工程及展望3.1CASE的概念3.2CASE的功能与分类3.3CASE工具与分类3.4集成CASE环境3.5UML及建模工具3.6软件工程的未来3.7习题的概念计算机辅助软件工程(CASE)CASE是计算机技术在系统开发活动、技术和方法中的应用,是软件工具与开发方法的结合体。的概念CASE的目的通过一系列集成化的软件工具、技术和方法,实现分析、设计与程序开发、维护的自动化,提高软件开发的效率和软件的质量,最终实现软件系统开发的全面自动化。具体目标»提高效率»提高质量»加速过程»降低费用»实现系统设计的恢复和逆向软件工程的自动化»自动产生程序代码»自动进行错误的检查和校验»实现项目管理工作的自动化»改善软件开发过程的控制»集成软件开发的工具»提高软件的复用性和可移植性3.1CASE的概念的概念CASE构造积木块系统应该具备以下功能和能力:(1)支持多种软件开发方法(如结构化方法、快速原型法、面向对象方法等)。(2)支持软件开发生命周期的各个阶段。(3)具有文档出版功能和文字、图形编辑功能。(4)支持软件重用。(5)支持开发信息资源共享。3.2CASE的功能与分类一般分为如下三类:*上游CASE,或称前端CASE。它描述了支持软件开发周期前期几个阶段的CASE工具。*下游CASE,或称后端CASE。描述了支持软件开发周期后期几个阶段的CASE工具。*支持项目管理、并贯穿于整个软件开发周期的CASE。主要支持项目管理和评估等活动。3.2CASE的功能与分类的功能与分类应该注意的问题(1)上游CASE和下游CASE之间有所重叠。(2)这种划分方法人为造成了上CASE与下游CASE之间的缝隙,因为上游CASE工具的输出要作为下游CASE的输入。(3)一个完整的CASE工具应包括上述各种类型中的一种或几种产品。工具能够支持或使软件工程周期中一个或多个阶段自动化的计算机程序(软件)。3.3CASE工具与分类工具应具备的功能①用户通过CASE工具能创建软件开发各阶段所需要的图表。②收集有关图表上的对象以及对象之间关系的信息,以便建立一个完整的信息集合。③在一个中央资源库中,应将图表所表示的语义而不是图表本身存储起来。④根据准确性、一致性、完整性检查图表。3.3CASE工具与分类⑤使用户能够用多种图表类型表示一个分析或设计的不同方面。⑥使用户能以图表来描述条件、循环、CASE结构和其它结构化程序结构。⑦实施结构化的模型和设计,尽可能达到准确、一致。⑧协调多个图表上的信息,检查信息的一致性,并集中检查信息的准确性、一致性和完整性。3.3CASE工具与分类工具与分类CASE工具的分类(1)信息工程工具(2)过程建模和管理工具(3)项目计划工具(4)风险分析工具(5)项目管理工具(6)需求跟踪工具(7)度量和管理工具(8)文档工具(9)系统软件工具(10)质量保证工具(11)数据库管理工具(12)软件配置管理工具(13)分析和设计工具(14)原形和仿真工具(15)界面设计和开发工具(16)原型工具(17)编程工具(18)集成和测试工具(19)静态分析工具(20)动态分析工具(21)测试管理工具(22)客户/服务器测试工具(23)再工程工具典型的CASE通常由下列工具的全部或一部分组成:(1)图形工具(2)描述工具(3)原型化工具(4)查询和报表工具(5)质量保证工具3.3CASE工具与分类(6)决策支持工具(7)文档出版工具(8)变换工具(TransformFacilities)(9)生成器(10)数据共享工具:为同一种CASE工具的不同的局部资源库之间传递资源库信息。(11)安全和版本控制工具3.3CASE工具与分类集成CASE环境ISEE(IntegratedSoftwareEngineeringEnvironment)是按照一定的理论/概念模型把支持软件开发的计算机系统软件、工具集、信息库、网络管理、人员与场地设施等全部开发资源进行有效灵活的集成,系统有效的支持基于软件工程理论、技术、方法和规范所进行的软件开发的全部过程和所有活动。目标:按照软件工程的理论、方法和规范建立一个自然和谐、高效可靠乃至完全智能和自动化的软件生产流水线,真正实现软件工程和软件产业的工业化。集成CASE环境ISEE必须满足的基本需求所有环境工具机制和配置良好,充分共享信息。当创建和转变一个信息项时,能够自动跟踪和维护与之有关的所有其他信息项。必须提供有效的版本控制和配置管理能力。允许直接且非顺序地访问环境中的工具。提供强有力的异常处理和数据恢复能力。须有视觉、感觉和行为能力一致的用户界面。提供自然和谐的通信机制,支持软件开发过程和活动中的一切协作。不断吸收和积累整个过程的新技术、新方法。具有良好的可移植性和开发性。提供可靠、实用的软件质量方法和质量保证系统。集成CASE环境ISEE的特征(1)集成化软件工程环境(2)通用的软件工程环境(3)可裁剪的开发式环境(4)实用的软件开发环境(5)以信息为基础的环境及建模工具3.5.1UML简介3.5.2UML建模工具3.5.3PlayCASE建模工具简介UML是在多种面向对象建模方法的基础上发展起来的建模语言,主要用于软件密集型系统的建模。UML用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它提供了静态、动态、系统环境及组织结构的模型,记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。建模工具由于UML统一了面向对象建模的基本概念、术语和图形符号,建立了便于交流的通用语言,现已成为了一种国际上公认的标准建模语言。因此,世界各大著名的软件公司纷纷以UML为中心,提供用于创建UML图并将这些图组织成为模型的工具软件包。最有名的软件包当数RationalROSE,另一个是SelectEnterprise。VisualUML也是一个很有竞争力的产品。此外GDPro和TogetherSoft公司的建模工具软件也具有一定竞争力。Microsoft公司已经取得Rational公司的许可,使用Rational公司的技术开发出了VisualModeler建模工具软件,它是RationalRose的一个子集,被纳入VisualStudio集成开发环境中,以供VisualStudio的用户使用。建模工具PlayCASE建模工具是中文全程一体化的建模工具,易学易用,这对于拥有超过全球人口1/5的中国来说似乎更具有划时代意义,尤其对于高职高专层次学生由浅入深地、自然地领会和掌握现代软件工程理论和方法更为适合。因此,在本教材中,我们选择与UML兼容的PlayCASE建模工具进行讲解,通过PlayCASE来理解和掌握软件工程的新方法、新理论。软件工程的未来3.6.1变化的范围3.6.2使用的过程3.6.3信息的性质3.6.4基本的计算技术3.6.5做工作的人变化的范围一个新技术从发展到产品所需的年限199720022007+技术的成熟51015概念原型产品传统的计算机硬件图15-5-5规则变化的范围在未来十年中影响软件工程的四个方面(1)做工作的人;(2)使用的过程;(3)信息的性质;(4)基本的计算技术。变化的范围人及其建立系统的方式图2对软件工程师及其工作的影响技术的成熟51015概念原型产品支持软件工程的领域的特定的AI模式识别语义信息处理连续语音识别可复用构件形式化方法和净室软件工程智能代理多媒体环境虚拟现实超媒体Internet资源群件CASE工具和中心库多任务工作站和PC客户/服务器体系结构使用的过程将软件工程实践的前20年说成为“线性思维”的时代是合理的,在传统的生存周期模型的养育下,软件工程被处理为线性的活动,其中应用了一系列顺序的步骤,以解决复杂的问题。然而,软件开发的线性方法违反了大多数系统实际被建造的方式。在现实中,复杂系统迭代的“演化”、甚至增量的“演化”,使软件工程界的绝大部分正移向软件开发的演化模型。信息的性质数据:无关信息:与一个语境相关联知识:与多个语境相关联智慧:基于不同来源的已有知识来创造的一般性原理图3“信息”谱基本的计算技术技术的成熟51015概念原型产品光处理器分子计算机光电子设备高级信息获取超宽带通信大规模并行机移动计算高级RISC机精简指令集计算机RISC高密度光/磁存储网络体系结构图4硬件技术的变化基本的计算技术图5软件技术的变化技术的成熟51015概念原型产品神经网络编程神经语言理解并行程序设计分