资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2016/4/27,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2016/4/27,#,软 件,软件工程 第,03,课,软 件软件工程 第03课,1,目标,1,、软件,2,、软件工程,3,、软件开发过程,目标1、软件2、软件工程3、软件开发过程,2,软件,1,、软件的定义,2,、软件的分类,3,、软件的发展,4,、软件的特点,5,、软件与硬件的对比,6,、软件危机,软件1、软件的定义2、软件的分类3、软件的发展4、软件的特点,3,什么是软件,软件,=,程序,IEEE,Standard Glossary of Software,Engineering,Terminology,定义:软件,是计算机,程序,、规程,以及,运行计算机系统可能需要的相关,文档,和,数据,。,软件,=,程序,文档,数据,+,+,什么是软件软件=程序IEEE Standard Gloss,4,什么是软件,程序,是计算机设备,可以,接受的,一系列指令和,说明,为计算机,执行,提供,所需的,功能,和性能。,机器语言,汇编语言,面向过程的语言,面向问题的语言,文档,是描述程序,研制过程、方法,及使用,的图文,材料,。,数据,是事实、概念,或指令,的结构化表示,,能够,被计算机设备,接收,、理解或处理,。,什么是软件 程序是计算机设备可以接受的一系列指令和说明,为,5,软件,1,、软件的定义,2,、软件的分类,3,、软件的发展,4,、软件的特点,5,、软件与硬件的对比,6,、软件危机,软件1、软件的定义2、软件的分类3、软件的发展4、软件的特点,6,软件的分类,分类方法,软件类型,分类方法,软件类型,按功能,1,、系统软件,2,、支撑软件,3,、应用软件,按软件规模,1,、微型,小型,2,、中型,3,、大型,4,、甚大型,极大型,按工作方式,1,、实时软件,2,、分时软件,3,、交互式软件,4,、批处理软件,按版权,1,、商业软件,2,、共享软件,3,、自由(免费)软件,4,、公有领域软件,按失效影响,1,、高可靠性软件,2,、一般可靠性软件,按使用频度,1,、一次性使用,2,、频繁使用,按销售方式,1,、定制软件,2,、产品软件,软件的分类,按软件规模划分,类别,参加人员数,研制期限,源程序行数,微型,1,2,1,4,周,0.5K,小型,1,5,1,6,月,1K,2K,中型,2,10,1,2,年,5K,50K,大型,5,20,2,3,年,50K,100K,甚大型,100,1000,4,5,年,1M,极大型,2000,5000,5,10,年,1M,10M,软件的分类分类方法软件类型分类方法软件类型按功能1、系统软件,7,软件的分类,例:,Windows 95,有,1000,万行代码,Windows 2000,有,5000,万行代码,Windows 95,与,Windows 2000,开发人员结构,Windows 95,Windows 2000,项目经理,25,人,约,250,人,开发人员,140,人,约,1700,人,测试人员,350,人,约,3200,人,软件的分类例:Windows 95有1000万行代码,8,软件,1,、软件的定义,2,、软件的分类,3,、软件的发展,4,、软件的特点,5,、软件与硬件的对比,6,、软件危机,软件1、软件的定义2、软件的分类3、软件的发展4、软件的特点,9,软件的发展,程序设计阶段,1946,年,1955,年,软件系统阶段,1956,年,1970,年,程序设计阶段,1970,年以后,尚无软件的概念,主要围绕硬件开发用于科学计算的程序,,规模,很小,工具简单,无明确分工(开发者和用户),,程序设计,追求节省空间和编程技巧,无文档资料,。,主要,围绕软件项目,研究了开发模型、支持工具以及开发,方法,,如:瀑布模型、结构化方法、结构化语言、管理,方法。“软件”不仅,是程序,还包括开发、使用、维护所需的文档,。,软件开发过程向工程化发展,将管理技术与技术方法,结合,提高,软件的质量和生产率,。,软件的发展程序设计阶段 1946年1955年软件系统阶,10,软件,1,、软件的定义,2,、软件的分类,3,、软件的发展,4,、软件的特点,5,、软件与硬件的对比,6,、软件危机,软件1、软件的定义2、软件的分类3、软件的发展4、软件的特点,11,软件的特点,1,、软件是不可见的,软件是客观世界和计算机空间之间的一种逻辑,实体,,不具有物理的形体特征,因而它具有抽象性,。,2,、软件是复杂的,正是软件,固有的复杂性造成了软件开发的诸多,问题:,实际,问题的,复杂性,程序逻辑,结构的,复杂性,3,、软件是不断变化的,软件没有硬件那样的机械磨损,老化问题;而是,需要,随着应用、硬件、用户和社会等各种因素的,变化而,不断被修改和完善,。,4,、大多数软件仍是定制的,在软件发展过程中,涌现出许多开发技术和开发,工具,,但手工作坊式的开发方式仍占主导地位。,因此大多数,软件仍然是定制的,而不是通过已有构件,组装,而成的,。,软件的特点1、软件是不可见的软件是客观世界和计算机空间之间的,12,软件,1,、软件的定义,2,、软件的分类,3,、软件的发展,4,、软件的特点,5,、软件与硬件的对比,6,、软件危机,软件1、软件的定义2、软件的分类3、软件的发展4、软件的特点,13,软件与硬件的对比,1,、产品形态,2,、质量体现,3,、失效曲线,4,、成本结构,5,、零件替换,6,、生产效率,软件与硬件的对比1、产品形态2、质量体现3、失效曲线4、成本,14,软件,1,、软件的定义,2,、软件的分类,3,、软件的发展,4,、软件的特点,5,、软件与硬件的对比,6,、软件危机,软件1、软件的定义2、软件的分类3、软件的发展4、软件的特点,15,软件的危机,1,、软件开发,的成本和进度难以准确估计,延迟,交付甚至,取消项目的现象,屡见不鲜。,2015,年维盟软件项目:,微管理,、,微营销,、,找位,APP,、,版本自动编译,、,空气净化器,、,锐捷,APP,、,DDNS,二级域名,、,通行证,、,计费系统,、,授权系统,、,云,VPN,、,智慧,WiFi,、,微信路由器,。,1995,年美国,Standish,咨询集团,公布题为,“混沌”的研究报告显示,软件项目约,31%,被取消,只有约,16.2%,已,完成,仍有,53.8%,的软件项目受到挑战。,2,、,软件存在着错误多、性能低、不可靠、不安全,等质量问题。,3,、,软件成本在计算机系统的整个成本中所占比例,越来越大。,4,、,软件维护及其困难,而且很难适应不断变化的,用户需求,和使用,环境。,软件的危机1、软件开发的成本和进度难以准确估计,延迟交付甚至,16,软件的危机,如何解决软件危机?,按工程化的原则和,方法组织,软件,系统开发,工程化的基本原理,按阶段、分步骤地开发产品。,要求在开发产品的任何阶段都采用经过验证的方法。,要求一系列的复查,以便保证质量。,在每一步骤中要求产生相应的技术文档。,鼓励使用和研制能够加速开发的各种方法或工具。,提供从原始概念到最终产品完成的一个可追溯的途径。,工程化的目标,优 质,高 效,低 成 本,达到要求的应用功能,取得较好的应用性能,易于移植和扩充,按时完成开发,及时交付使用,较低的开发成本,较低的维护费用,软件工程,采用,工程的概念、原理、,技术和,方法来开发和维护软件,,将经过,时间考验已证明正确的,管理技术与,当前能够得到的,最好的,技术方法结合起来,目的,在于,提高软件的质量与生产率,,最终,实现软件的工业化生产,。,软件的危机如何解决软件危机?按工程化的原则和方法组织软件系统,17,目标,1,、软件,2,、软件工程,3,、软件开发过程,目标1、软件2、软件工程3、软件开发过程,18,软件工程,1,、软件工程的定义,2,、软件工程的基本原理,3,、软件工程的三要素,4,、软件工程的目标,5,、软件工程框架及原则,6,、软件工程与其他科学,软件工程1、软件工程的定义2、软件工程的基本原理3、软件工程,19,软件工程定义,1968,年,10,月,,NATO,(北大西洋公约组织)科学,委员会,在德国的加尔密斯召开国际会议,讨论软件,危机,问题,,Fritz Bauer,首次提出“,软件工程,”的概念,:,软件工程,是为了,经济,地获得能够在实际机器,上,高效,运行的,可靠,软件而建立和使用的一系列好的,工程化,原则,。,IEEE,Standard Glossary of Software,Engineering Terminology,定义:,软件工程是:、将,系统性的、规范化的、可,定量的,方法应用于软件的开发、运行和维护,即将,工程化,原则应用到软件上;,、对,中所述方法的研究,。,特别提示:,软件工程,涉及软件产品的所有环节,。,企业往往,偏重于软件开发技术,忽视软件,项目管理的,重要性。统计数据表明,导致软件项目失败的,主要,原因几乎与技术和工具没有任何关系,更多的,是由于,不适当的管理造成的,。,软件工程定义 1968年10月,NATO(北大西洋公约,20,软件工程,1,、软件工程的定义,2,、软件工程的基本原理,3,、软件工程的三要素,4,、软件工程的目标,5,、软件工程框架及原则,6,、软件工程与其他科学,软件工程1、软件工程的定义2、软件工程的基本原理3、软件工程,21,软件工程的基本原理,著名软件工程专家,B.W.Boehm,在,1983,年提出,:,1,、用分阶段的生命周期计划严格管理。,2,、坚持进行阶段评审。,3,、实行严格的产品控制。,4,、采用现代程序设计技术。,5,、结果应能清楚的审查。,6,、开发小组的成员应该少而精。,7,、承认不断改进软件工程实践的必要性。,软件工程的基本原理著名软件工程专家B.W.Boehm在198,22,软件工程,1,、软件工程的定义,2,、软件工程的基本原理,3,、软件工程的三要素,4,、软件工程的目标,5,、软件工程框架及原则,6,、软件工程与其他科学,软件工程1、软件工程的定义2、软件工程的基本原理3、软件工程,23,软件工程的三要素,ISO,的软件质量评价模型,软件工程的三要素ISO的软件质量评价模型,24,软件工程,1,、软件工程的定义,2,、软件工程的基本原理,3,、软件工程的三要素,4,、软件工程的目标,5,、软件工程框架及原则,6,、软件工程与其他科学,软件工程1、软件工程的定义2、软件工程的基本原理3、软件工程,25,软件工程的目标,1,、达到要求的软件功能。,2,、取得较好的软件性能。,3,、付出较低的开发成本。,4,、需要较低的维护费用。,5,、开发的软件易于移植。,6,、能按时完成开发工作,及时交付使用。,软件工程的目标1、达到要求的软件功能。2、取得较好的软件性能,26,软件工程,1,、软件工程的定义,2,、软件工程的基本原理,3,、软件工程的三要素,4,、软件工程的目标,5,、软件工程框架及原则,6,、软件工程与其他科学,软件工程1、软件工程的定义2、软件工程的基本原理3、软件工程,27,软件工程框架及原则,A,、选取适宜的开发模型;,B,、采用合适的设计方法;,C,、提供高质量工程支持;,D,、重视开发过程的管理;,软件工程框架及原则A、选取适宜的开发模型;B、采,28,软件工程,1,、软件工程的定义,2,、软件工程的基本原理,3,、软件工程的三要素,4,、软件工程的目标,5,、软件工程框架及原则,6,、软件工程与其它科学,软件工程1、软件工程的定义2、软件工程的基本原理3、软件工程,29,软件工程与其它科学,软件工程与其它科学,30,目标,1,、软件,2,、软件工程,3,、软件开发过程,目标1、软件2、软件工程3、软件开发过程,31,软件开发过程,1,、软件的生命周期,2,、需求分析,3,、软件设计,4,、程序编码,5,、软件测试,6,、软件维
展开阅读全文