软件工程概述

上传人:小*** 文档编号:243412389 上传时间:2024-09-22 格式:PPT 页数:31 大小:1.93MB
返回 下载 相关 举报
软件工程概述_第1页
第1页 / 共31页
软件工程概述_第2页
第2页 / 共31页
软件工程概述_第3页
第3页 / 共31页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程与技术,北京联合大学信息学院 廖礼萍,E-Mail: xxtlliping, lipingliao,本课程学习的目的,本课程的主要内容,本课程的特点,本课程的教,/,学及考核方式,主要参考书目,实验安排,课程简介,消除错误地认识,学习软件工程基本理论,学习主流的软件开发方法,熟悉软件开发过程,掌握软件开发全过程中的各重要阶段的任务及相关描述方法 ;,如何分析问题并设计出合理的解决方案,如何保证软件质量,培养软件工程师的基本素质,一、本课程学习目的,1,、软件工程的基本概念及软件危机,2,、软件生存周期及软件开发模型,3,、软件计划,4,、软件分析,(,需求分析,),5,、软件系统设计,6,、软件测试,7,、软件维护,8,、面向对象软件工程,返回,二、,主要内容,1,、是专业课;,2,、属“工程”学科;,3,、是一门需不断完善的、发展的、可创新的学科,。,返回,三、课程特点,1,、主要参考书目:,软件工程技术及应用,贾铁军著 机械工业出版社,2,、其他参考书目:,a.,软件工程,杨卫东译 人民邮电出版社,b.,实用面向对象软件工程教程,殷人昆等译 电子工业出版社,返回,四、参考教材,第一章 软件工程概述,本章要点,1,软件的定义及软件发展过程,2,软件危机及软件工程的产生,3,软件工程学定义、本课程学习的目的,可执行部分,不可执行部分,文档,1,文档,2,文档,3,一、软件的定义、特点,1,软件的定义,程序,+,数据,+,文档,与计算机系统操作有关的程序、数据以及任何与之相关的文档的集合。,程序,1,软件的定义:,什么是程序,(1/2),:,程序,:,由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列,程序例子,Main( ), int i, j;,/,变量定义,char Str10;,i = i + j ; /,语句说明,一、软件的定义、特点,1,软件的定义:,什么是程序,(2/2),程序设计语言具有良好、严格语法和语义,目前程序设计语言主要有以下几种类型,面向机器,:,如汇编语言、机器语言等,面向过程,:,如,Fortran, Pascal, C,等等,面向对象,:,如,Java,等等,面向问题,:,如结构化查询语言,SQL,等等,一、软件的定义、特点,1,软件的定义:,什么是文档:,文档,:,记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料,需求分析文档、软件设计文挡、用户文档等,编写文档目的,促进对软件的开发,管理和维护;,便于各种人员,(,用户,开发人员,),的交流,一、软件的定义、特点,一、软件的定义、特点,2,软件的特点,不会老化,逻辑产品,(,智力,无形,),维护困难和复杂,(,完善,纠错,,.),生产只需复制,软件开发性质如成本、进度等难以估计,软件的开发更加依赖于开发人员的业务素质、智力、人员的合作、组织和管理,二、软件的发展过程,1,、,20,世纪,50,年代,60,年代初,:程序设计阶段,特点:个体化;只有程序清单;,以硬件发展为主,2,、,20,世纪,60,年代初,70,年代初,:程序,系统,阶段,特点:作坊式;软件数量剧增;软件维护费用惊人;提 出,“,软件工厂,”,概念;出现软件危机,3,、,70,年代,90,年代:软件工程阶段,软件成本剧增;硬件技术 (微电子学)日趋成熟;,软件工程时代,4,、,90,年代至今:,现代信息技术飞速发展(并行计算机处理、三层处理模式、数据仓库、多媒体技术、网络技术、电子商务等)称为:网络时代,三、软件危机,1,、软件危机定义:,软件在开发和维护过程中遇到的一系列问题,困扰学术界和工业界,用户对软件开发缺乏信心,软件开发的高投入和高风险,Crisis,!,三、软件危机,2,、软件危机的表现(1,of 3),成本,高,IBM 360 OS, 5000,多人年,耗时4年(19631966),花费2亿多美元,美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85,美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元,计算机软件和硬件费用比,三、软件危机,2,、软件危机的表现(2,of 3),软件质量得不到保证,软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭,软件越来越多的应用于安全犹关(,safety critical),的系统,对软件质量提出更高的要求,80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误,美国阿托拉斯火箭的发射失败,原因是软件故障,英国1986年开发的办公室信息系统,Folios,经4年,因性能达不到要求,1989年取消,日本第5代机因为软件问题在投入50亿美元后于1993年下马,由于软件质量问题导致失败的软件项目非常多,三、软件危机,2,、软件危机的表现(3,of 3),进度难以控制,项目延期比比皆是,由于进度问题而取消的软件项目较常见,只有一小部分的项目能够按期完成,维护非常困难,软件维护的多样性,软件维护的复杂性,软件维护的副作用,三、软件危机,3,、软件危机包含两方面问题,一、如何开发软件,以满足不断增长,日趋复杂的需求;,二、如何维护数量不断膨胀的软件产品。,4,、软件危机产生的原因,逻辑产品,不同于物理产品,复杂性高,逻辑产品,逻辑复杂性,远高于硬件复杂性,软件的复杂性随规模呈指数级上升,规模大,应用扩大,代码量,1000万行,仍在不断膨胀,影响软件生产率和质量的因素比较复杂,人员的能力和水平,团队合作,缺乏有效、系统原理、原则、方法和工具的指导和辅助,:,5,、对软件开发的深层次认识:,开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样,正如建设一个平房和高楼大厦,建造房屋的过程,确定和分析需求,房子的总体设计(建筑平面图和建筑透视图),房子的详细设计(建筑平面图的细化以及规格说明),识别并设计房子的组成部分,建造房子的每一个组成部分,测试房子的每一个组成部分,把房子的各个部分集成在一起,在住户搬进来之前作最后的修改,大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动,三、软件危机,6,、解决危机的技术途径,20,世纪,60,年代爆发,然而实际上软件危机随着计算机软件的产生而产生,只是在此之前其问题的严重性没有引起人们的关注和重视,提出有效的方法和工具支持软件开发,1968年提出软件工程概念和思想,20,世纪,70,年代的结构化软件开发方法,20,世纪,80,年代的面向对象的软件开发方法,新的技术,:,软件重用、快速原型、需求工程,典型技术,: COM, Java, C+, J2EE, .Net,.,支撑工具和环境:,Jbuilder, Visual Studio, WebLogic,三、软件危机,7,、技术手段不能完全解决软件危机,到了,20,世纪,90,年代,软件危机依然存在,甚至更为严重,应用变得越来越大和复杂,技术变得更加力不从心,错误的观念,“,只要有好的软件开发方法和工具就能高效率地开发出高质量的软件,”,三、软件危机,8,、解决危机的管理途径,问题出在哪里?,20,世纪,80,年代末,美国工业界开始认识到管理的重要性,美国的一项研究表明,70%的项目由于管理不善导致难以控制进步、成本和质量;,进一步的研究发现:管理是影响软件项目成功开发的全局性因素,而技术只影响局部,如果软件开发组织不能对软件项目进行有效管理,就不能充分发挥软件开发方法和工具的潜力,也就不能高效率地开发出高质量的软件产品,三、软件危机,四、软件工程的提出,解决软件危机?,硬件发展?开发人员增加?软件开发工具的发展?,软件工程!,由于认识到软件的设计、实现、维护和传统的工程规则有相同的基础。,1967,年,NATO,的研究组织首次提出“软件工程”,1968,年,NATO,软件工程会议正式提出“软件工程”概念,1968-,至今, 40,余年,四、软件工程的提出,2,、软件工程定义,1968,年,NATO(,北大西洋公约组织,),会议上首次提出软件工程:,给出了软件工程的早期定义:,软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。(强调软件工程的目标),IEEE,:,软件工程是(,1,)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(,2,)(,1,)中所述方法的研究。,计算机科学技术百科全书:,所谓软件工程就是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最先进的技术方法结合起来。,思考:其它更准确的定义?,五、软件工程的发展,1,、传统软件工程,管理,:希望实现软件开发过程的工程化。这方面最为著名的成果就是提出了大家都很熟悉的,“,瀑布式,”,生命周期模型。它是在,60,年代末,“,软件危机,”,后出现的第一个生命周期模型。如下所示:,分析 设计 编码 测试 维护,后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对,“,瀑布式,”,生命周期模型进行补充。现在,它们在软件开发的实践中被广泛采用。,认识到了文档的标准以及开发者之间、开发者与用户之间的交流方式的重要性。,方法:,侧重与对软件开发过程中分析、设计的方法的研究。这方面的重要成果就是在,70,年代风靡一时的结构化开发方法,即,PO,(面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法,。,六、软件工程的发展,2,、现代软件工程,方法:,面向对象的分析、设计方法(,OOA,和,OOD,)的出现使传统的开发方法发生了翻天覆地的变化。随之而来的是面向对象建模语言(以,UML,为代表)、软件复用、基于组件的软件开发等新的方法和领域。,管理:,从企业管理的角度提出的软件过程管理。即关注于软件生存周期中所实施的一系列活动并通过过程度量、过程评价和过程改进等涉及对所建立的软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。,其中最著名的软件过程成熟度模型是美国卡内基梅隆大学软件工程研究所(,SEI,),建立的,CMM,(,Capability Maturity Model,),,即能力成熟度模型。,3,、软件工程三要素,软件程是一种层次化的技术。包含了一个观点,和三要素,如下图:,工具,+,方法,+,过程,软件工程包括两方面内容:,软件开发技术,包括软件开发方法学、软件工具和软件工程环境。,软件项目管理,包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。,软件工程技术有两个明显的特点:,第一,强调规范化。,第二,强调文档化。,六、克服软件危机的途径,消除,错误的概念和做法,推广,使用成功的开发技术和方法,使用,软件工具和软件工程支持环境,加强软件,管理,七、软件工程的基本原理,严格按照软件生命周期各阶段的计划进行管理。,坚持阶段评审,实施严格的产品控制,开发小组的成员应该少而精,结果应能清楚地审查,认识不断改进软件工程实践的必要性,八、软件工程的目标,生产具有正确性、可用性以及价格合宜的产品,正确性,反映软件产品实现相应功能规约的程度;,可用性,反映软件的基本结构、实现及其文档为用户可用的程度;,价格合宜,反映软件开发与运行的总代价满足用户要求的程度。,五、本课程的学习目的,1,、了解软件工程的基本思想和理论;,2,、掌握软件开发全过程中的主流技术和方法;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!