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