您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第1章+SEI-为什么要研究软件工程
软件工程导论(1)为什么要研究软件工程zhu.kerry@gmail.com软件工程体系软件工程导论需求工程系统设计编程方法软件测试项目管理质量管理过程管理配置管理zhu.kerry@gmail.com内容提要本书围绕软件工程最基本的核心——“质量和生产率”展开,力求通过一些具体的实例来说明软件工程的思想和方法。本书在回答为什么要研究软件工程问题之后,首先系统地给出软件工程的知识体系框架,帮助读者建立其软件工程的完整而清晰的概念。然后深入软件过程、软件工程目标和要求的讨论,全面阐述了软件工程的思想、方法、技术和工具,结合软件工程环境、软件项目管理等内容,使读者坚实地掌握和运用软件工程的知识内涵。本书在内容组织上,构思新颖,突破软件工程图书的传统框架,使整个软件工程体系更清晰,从思想和管理出发,自然延伸到流程、方法、工具和环境,重新阐释了软件工程体系。本书吸收了软件工程的最新进展,适应软件即服务(SaaS)新的开发模式,增加了相应的内容,符合当今软件工程的实际需求。zhu.kerry@gmail.com引子回答最重要的问题zhu.kerry@gmail.comQ1-什么是软件工程?软件工程是一种工程形式,它运用计算机科学和数学原理,针对软件问题获得一种经济有效的解决方案用系统的、规范的、可度量的方法,开发、运行和维护软件软件工程是采用系统工程学和管理学相结合的原理、方法和技术来指导、管理和实施软件的各种活动,包括软件开发、运行、维护和服务等zhu.kerry@gmail.comQ2-软件工程的基本目标是什么?高质量就是最大程度地满足客户需求、帮助客户获得成功高生产力就是以最小的成本获得最好的收益,即在规定的时间和预算之内完成软件开发、维护和服务等任务高质量&高生产力zhu.kerry@gmail.comQ3-为什么要讨论软件工程?软件危机的出现和加剧软件系统越来越复杂软件环境变化很快软件用户的需求越来越高zhu.kerry@gmail.comQ4-软件工程带来的益处又是什么?规范软件开发的行为,从而提高软件的可维护、可移植性和可靠性提供许多科学的方法、最佳实践和工具,帮助人们高效地、系统地、正确地构造软件帮助我们建立有效的、平稳的并能持续改进的软件过程,预防缺陷、降低成本,最终多快好省地提供优质的软件产品或服务,为组织赢得利润、获得竞争力zhu.kerry@gmail.comQ5-软件工程的基本思想是什么?将软件看成一个系统通过迭代来完善软件系统,逐渐逼近客户的需求软件开发是工程和艺术的统一、创造性和规范性的统一过程决定产品,持续改进过程质量以预防为主、重在文化建设以顾客为导向、软件即服务个人和团队并重向传统的成熟工业学习适合自己的,才是最好的zhu.kerry@gmail.comQ6-如何理解软件工程?管理,针对不同的领域建立目标、标准和规则过程:定义完成软件各项任务的工作阶段、内容、流程、阶段性成果和验收要求方法:软件开发、运行和维护等所需的技术方法工具:为方法的运用提供自动或半自动的软件支撑环境首先就是一种指导软件管理和实施的先进思想。其次,是针对软件特点而建立的科学管理体系。最后,是一门学科,研究适合软件的过程、方法和工具zhu.kerry@gmail.comQ7-软件工程知识体系包含哪些内容?软件工程分为:软件工程方法学和软件工程管理学10个知识域:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法和软件质量管理。zhu.kerry@gmail.com巴比伦塔可能是第一个工程上的彻底失败,但它不是最后一个zhu.kerry@gmail.com本章内容1.1软件危机1.2软件的问题在哪里?1.3软件工程的诞生1.4软件工程的命题1.5软件工程知识体系1.6现代软件工程@gmail.com本章内容1.1软件危机1.2软件的问题在哪里?1.3软件工程的诞生1.4软件工程的命题1.5软件工程知识体系1.6现代软件工程@gmail.com软件危机1.1.1软件不再只是程序1.1.2危机四伏1.1.3软件危机之证软件危机(SoftwareCrisis)是在软件开发和维护过程中所遭遇的一系列严重问题,导致开发延期、成本激增或者软件运行质量事故等。zhu.kerry@gmail.com软件不再只是程序软件=程序人机交互、实时系统、业务系统@gmail.com世界上第一位软件工程师AdaLovelace(1815-1851)数学家穿孔机程序创始人,建立了循环和子程序概念英国著名诗人拜伦的女儿zhu.kerry@gmail.com典型的例子IBM360系列机的操作系统FredBrooks在的《人月神话》(TheMythicalMan-Month)@gmail.com软件危机四伏对软件开发成本和进度的估计不足,超预算、完成日期一再被推迟的现象屡屡出现不能满足客户需求,用户不满意缺乏质量保证体系,没有成熟的开发流程,产品的质量得不到保证软件不容易被维护,错误难以纠正,新功能难以扩充软件发展速度跟不上硬件发展的要求……@gmail.com软件危机之证(1)1994年,英特尔奔腾CPU芯片曾经存在一个浮点运算的缺陷丹佛新国际机场的自动化行李处理系统中存在严重的程序缺陷,导致行李箱被绞碎……1999年美国宇航局的火星基地登陆飞船在试图登陆火星表面时突然坠毁失踪。Windows2000存在许多安全性漏洞2002年7月23日,我国首都机场因计算机软件系统故障,6000多人滞留机场,150多个航班延误。2003年8月14日发生的美国及加拿大部分地区史上最大停电事故是由软件错误所引起质量事故的例子zhu.kerry@gmail.com软件危机之证(2)项目拖延或取消的事例44%challengedzhu.kerry@gmail.com恶化的趋势zhu.kerry@gmail.com本章内容1.1软件危机1.2软件的问题在哪里?1.3软件工程的诞生1.4软件工程的命题1.5软件工程知识体系1.6现代软件工程@gmail.com1.2软件的问题在哪里?1.2.1软件特性1.2.2软件业所面临的问题1.2.3软件问题的幽默画@gmail.com软件特性创造性软件技术日新月异易修改性需求不断变化非标准化软件是逻辑的、知识性的智力产品,是对物理世界的一种抽象zhu.kerry@gmail.com软件开发=焦油坑软件开发被喻为让众多史前巨兽痛苦挣扎,却无力摆脱的焦油坑。zhu.kerry@gmail.com软件所面临的问题软件系统的复杂性,使我们理解程序如何工作也变得非常难,团队工作效率低下,容易产生问题软件需求不充分,同时经常变更大规模的软件会使开发人员数量的增长很快,导致团队沟通不畅(二次级数增长)其它问题@gmail.com软件问题的幽默画客户是如何解释的的项目经理这样理解的分析人员的设计程序员代码写成这样业务咨询师描述成那样项目文档这样记载软件安装后的结果客户遭到乱收费支持人员的工作客户的真正需求zhu.kerry@gmail.com本章内容1.1软件危机1.2软件的问题在哪里?1.3软件工程的诞生1.4软件工程的命题1.5软件工程知识体系1.6现代软件工程@gmail.com概念来源1968年北大西洋公约组织(NATO)的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,正式提出了“软件工程”zhu.kerry@gmail.comGOTO语句大讨论foreachmy$try(@options){nextunlessexists$hash{$try};do_something($try);gotoSUCCESS;}log_failure();SUCCESS:...zhu.kerry@gmail.com本章内容1.1软件危机1.2软件的问题在哪里?1.3软件工程的诞生1.4软件工程的命题1.5软件工程知识体系1.6现代软件工程@gmail.com软件工程学科软件工程从计算机科学中的一个学科方向发展成为与之并重的一门独立学科,重点研究如何以系统的、可控的、高效的方式开发和维护高质量软件的问题zhu.kerry@gmail.com软件工程的定义F.L.Bauer:软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则SEI:软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题IEEE:软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护zhu.kerry@gmail.com软件工程的内涵软件工程学科包含为完成软件需求、设计、构建、测试和维护所需的知识、方法和工具。软件工程不局限在理论之上,更重要在实践上,能够帮助软件组织协调团队、运用有限的资源,遵守已定义的软件工程规范,通过一系列可复用的、有效的方法,在规定的时间内达到预先设定的目标zhu.kerry@gmail.com交叉性学科计算机科学和数学用于构造软件的模型与算法工程科学用于制定规范、设计范型、评估成本以及确定权衡等管理科学用于计划、资源、质量、成本等管理软件工程由下列3部分组成:zhu.kerry@gmail.com学科范围zhu.kerry@gmail.com本章内容1.1软件危机1.2软件的问题在哪里?1.3软件工程的诞生1.4软件工程的命题1.5软件工程知识体系1.6现代软件工程@gmail.com1.5软件工程知识体系1.5.1软件工程知识体系的构成1.5.2软件工程要素1.5.3SWEBOK@gmail.com多视角观察zhu.kerry@gmail.com软件工程学的构成zhu.kerry@gmail.com软件工程方法学软件方法学实际上就是研究在软件工程中可以采用的软件方法、技术和工具,即完成软件构建和维护所需要的有效方法和技术软件方法学离不开软件过程,包括软件过程的定义、监控、管理和改进软件开发环境是方法和工具的结合zhu.kerry@gmail.com软件工程管理学计划管理成本管理人员组织软件配置管理质量管理软件度量zhu.kerry@gmail.com软件工程要素从项目管理看,自然涉及到人员与组织、成本、风险、软件配
本文标题:第1章+SEI-为什么要研究软件工程
链接地址:https://www.777doc.com/doc-203028 .html