计算机辅助软件工程介绍成员:李维佳、刘德龙、梁秉全、张帅、倪高鹏、侯广峰•软件体系结构的起源与发展•CASE提出,解决的问题•CASE发展过程•CASE研究方向•CASE特点•CASE在软件工程项目中所起的作用•CASE件工程质量的保证•CASE工具介绍•CASE工具选择与采用软件体系结构起源与发展软件规模越来越大,结构越来越复杂。软件开发管理困难而复杂。软件开发技术落后。生产方式落后,仍采用手工方式。软件工程提出为解决这个问题,1968年NATO会议上首次提出“软件工程”的概念,提出把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。其基本思想是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满用户要求的软件产品的定义、开发、发布和维护的工程。软件开发工程化主要关点软件开发不是艺术创作,而是工程项目,必须受开发规范的制约。任何软件都要经历包括计划、可行性研究、需求分析、设计、编码、运行和维护在内的所谓“软件生存周期”。软件除程序外还应包括与程序有关的数据、文档以及最终用户的操作、维护手册等。依旧不满意的地方但是软件固有的复杂性、易变性和不可见性。软件开发周期长、代价高和质量低问题依然存在。大系统软件开发中70%的错误是由需求和软件设计阶段引入的计算机辅助软件工程(CASE)在软件生存周期过程中,CASE工具辅助各个软件工程活动的实施,从软件的项目计划、需求分析、系统设计、编码调试、测试管理、运行维护,到支持软件的过程管理、质量保证CASE解决的问题软件开发自动化扩展到软件生存期的各个阶段开发时的信息延续到软件维护中,从而使开发和维护构成一个整体分析员、程序员、稳点编辑者都得到支持保持一致性、完整性和标准化CASE发展过程简单工具(从七十年代旱期开始)工作台(从八十年代早期开始)集成化CASE从八十年代后期开始开放式环境(从九十年代中期开始)CASE研究方向由于CASE工具对整个信息系统或软件工程开发过程的全面支持,引起了系统开发方法学领域从技术,方法到观念、认知体系的变化,方法学研究领域也受到了冲击和挑战从而使CASE演变成了一种独特的以自动化支持环境为基础的系统开发方法学。1.应用定义;功能层次;实体定义;实体图。2.功能定义;数据详细定义;数据流程图。3.缺省数据设计;数据库规模预测;程序/模块结构。4.程序文档;数据库/文件定义。5.更新现存救据库定义。6.效果分析预侧;重定义与重组文件CASE特点(一)使结构化方法更加实用。自动检测方法大大地提高了软件的质量。使原型化方法付诸于实施。简化了软件的管理和维护。加速了系统的开发过程。CASE特点(二)使开发者从繁杂的分析设计图表和程序编写工作中解放出来。使软件的各部分能重用产生出统一的标准化系统文档加速了软件开发而且功能进一步完善软件工程中面临的问题用户和软件承担人员、工程主管人和具体工作人员、审查人员与设计人员之间缺乏共同的语言,交流时常存在隔核。系统通常是多功能,各功能方面可能提出相互冲突的要求,需要协调一致,并且这些功能要求往往会随着人们对系统的深入和客观因素的变化而变化。速度问题,设计人员不能迅速提供设计规格说明,影响后继阶段工作进行。case带来的解决方案(一)图示工具提供一种用户、分析人员和编程人员都易理解的描述方式,并辅助系统分析员和总体设计员进行系统分析与设计。快速生成经过优化了的系统结构图(包括各级子系统)、数据流程图以及其他分析与设计中所需的专门图形生成各种规格说明文档,文档的修改和更新极为方便,加速了设计阶段的进厂并且提供了使用方法的指导,起到设计方法学的训导作用。case带来的解决方案(二)自动生成部分程序代码,减轻编程工作。辅助进行项目管理。CASE件工程质量的保证CASE强调了系统分析员和设计员进行系统分析和逻辑设计。CASE引导人们按软件生命周期开发软件,首先做好系统分析和设计。具体的图形设计、文档建立等繁琐易错的工作,由计算机辅助完成,保证了快速准确,并且检查和修理方便。保证所形成的结构图数据流程图是优化或接近优化。定义一致性对目标、信息流、处理过程有标准的描述方法。CASE工具介绍按软件过程的活动通常可分为:支持软件开发过程的工具:如需求分析工具、需求跟踪工具、设计工具、编码工具、排错工具、测试和集成工具等。支持软件维护过程的工具:版本控制工具、文档工具、开发信息库工具、工程工具(包括逆向工程工具、代码重构与分析工具)等。支持软件管理和支持过程的工具:项目计划工具、项目管理工具、配置管理工具、软件评价工具、度量和管理工具等。CASE工具选择与采用国际标准化组织和国际电工委员会于1999年发布了一项针对CASE工具采用的技术报告,就上述问题给出了一个推荐的采用过程。它全面、综合地研究了采用工作可能会遇到的各方面问题,考查了CASE工具的各种特性,将采用工作划分为4个主要过程、4个子过程和13个活动。这4个主要过程包括:(1)准备过程;(2)评价和转换过程;(3)实验过程;(4)转换过程。准备过程准备过程的主要工作是定义采用CASE的目标,将诸如提高软件组织的竞争地位、提高生产率等高层的商业目标分解细化为改进软件过程、提高设计质量等具体的任务和目标,分析、确定经济和技术上的可行性和可测量性,制订一个具体的执行计划,包括有关里程碑、活动和任务的日程安排,对所需资源及成本的估算,以及监督控制的措施等内容。评价和选择过程评价和选择过程是为了从众多的候选工具中确定最合适的工具,以确保推荐的工具满足组织的要求。其中最关键的是要将组织对CASE工具的需求加以构造,列出属于CASE工具的若干特性或子特性,并对其进行评价和测量,软件组织根据对候选工具的评价结果决定选择哪一种工具。试验项目过程试验项目过程是帮助软件组织在它所要求的环境中为CASE工具提供一个真实的试验环境。在这个试验环境中运用选择的CASE工具,确定其实际性能是否满足软件组织的要求,并且确定组织的管理规程、标准和约定等是否适当。转换过程转换过程是为了从当前的工作流程或工作习惯转为在整个组织内推广使用新的CASE工具的过程。在此过程中,软件组织充分利用试验项目的经验,尽可能地减少工作秩序的混乱状况,以达到最大地获取CASE技术的回报,最小地减少CASE技术的投资风险的目的。总结对于大型的软件系统单靠人工进行研制全过程会困难重重软件工程化思想水平有限,很难保证软件工程质量,甚至前功尽弃,加之目前人们的软即使历尽艰辛完成,但工程期限、经费开支会大大超过、而功能与性能令人失望,这样的教训国内外不乏其例,使用CASE可谓是明智的选择。