您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程导论 (1)
主讲:曹阳15991836299copyright/22009年8月陕西理工学院计算机系《软件工程》1.张海藩.软件工程导论.北京:清华大学出版社,2008.2.郑人杰.软件工程概论.北京:清华大学出版社,2003.3.史济民.软件工程原理方法与应用.北京:高等教育出版社,2002.4.邓良松等.软件工程(第二版).西安:西安电子科技大学出版社,2004.5.SoftwareEngineering,6thEditionSommerville.I.(影印版)机械工业出版社2003.4.教材及主要参考书:copyright/32009年8月陕西理工学院计算机系《软件工程》第一章软件工程学概述11.1软件危机1.3软件生命周期1.5小结1.4软件过程1.2软件工程copyright/42009年8月陕西理工学院计算机系《软件工程》•软件是计算机系统的重要组成部分;•软件是逻辑产品,需要计算机硬件和系统软件的支撑;•软件是计算机控制系统的指挥中枢;•软件是信息转换器,它能对信息进行加工、处理或变换;•软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;copyright/52009年8月陕西理工学院计算机系《软件工程》软件—定义•能够完成预定功能和性能的可执行的指令(计算机程序)软件是•使得程序能够适当地操作信息的数据结构•描述程序的操作和使用的文档copyright/62009年8月陕西理工学院计算机系《软件工程》现在,被普遍接受的软件的定义是:软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。Software=Program+Data+Documentcopyright/72009年8月陕西理工学院计算机系《软件工程》软件—软件特征•软件是一种逻辑实体,具有抽象性•软件没有明显的制造过程•软件在使用过程中,没有磨损、老化的问题•软件对硬件和环境有着不同程度的依赖性•软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低•软件是复杂的,而且以后会更加复杂•软件的成本相当昂贵•大多数软件是自定的,而不是通过已有的构件组装而来的•软件工作牵涉到很多社会因素copyright/82009年8月陕西理工学院计算机系《软件工程》2008年,我国软件产业继续保持高速增长态势,实现产业收入达1935.5亿元,同比增长31.2%,比电子信息制造业高出11.4个百分点。其中,软件产品收入703.9亿元,仍为软件产业的主要组成部分;软件技术服务增长最快,达356.3亿元,同比增长48.2%。在之前的7年,我国软件产业收入从2001年的796亿元增长到2007年的5834亿元,增长了6.3倍,占全球软件产业的份额也从1.5%上升到8.7%。copyright/92009年8月陕西理工学院计算机系《软件工程》国外软件企业的人才结构畸形的人才结构?高层管理员程序员软件开发员系统分析员图1.1国外人才结构图copyright/102009年8月陕西理工学院计算机系《软件工程》我国的软件人才却呈橄榄形(缺少高级管理者和基础程序员),必须多发展“塔基”(软件蓝领),才能形成合理的软件人才结构。图1.2软件人员从业结构copyright/112009年8月陕西理工学院计算机系《软件工程》拉布雷阿的焦油坑(MuralofLaBreaTarPits)图1.3拉布雷阿的焦油坑copyright/122009年8月陕西理工学院计算机系《软件工程》在未来的十年内,无论是在技术还是管理方法上,都看不出有任何突破性的进步,能够独自保证在十年内大幅度地提高软件的生产率、可靠性和简洁性。Thereisnosingledevelopment,ineithertechnologyormanagementtechnique,whichbyitselfpromisesevenoneorder-of-magnitudeimprovementwithinadecadeinproductivity,inreliability,insimpllicity.NoSilverBullet?copyright/132009年8月陕西理工学院计算机系《软件工程》微软公司,测试人员与开发人员数量之比一般为1.5~2.5左右,即一个开发人员背后有两位左右测试人员在工作,以保证软件产品的质量。在WINDOWS2000开发团队中,微软用了250多个项目经理、1700多个开发人员,而内部测试人员则达到3200人,比前两者的之和还要多。有关机构的研究表明,国外软件开发机构40%的工作量花在软件测试上,测试费用占项目总费用的30%至50%。对于一些要求高可靠、高安全的软件,测试费用可能相当于整个项目费用的3至5倍。软件产品的高质量,主要依赖科学的软件测试。copyright/142009年8月陕西理工学院计算机系《软件工程》1.1软件危机“软件危机”(Softwarecrisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。1.1软件危机copyright/152009年8月陕西理工学院计算机系《软件工程》1.1.1软件危机的介绍1.1软件危机一.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。二.软件危机的表现形式1.对软件开发成本和进度的估计常常很不准确;2.用户对“已完成的”软件系统不满意的现象经常发生;3.软件产品的质量往往靠不住,Bug一大堆,Patch一个接一个;copyright/162009年8月陕西理工学院计算机系《软件工程》4.软件常常是不可维护的;5.软件通常没有适当的文档资料;6.软件成本在计算机系统总成本中所占的比例逐年上升;7.软件开发生产率提高的速度跟不上计算机应用普及的趋势。1.1软件危机二.软件危机的表现形式(续)copyright/172009年8月陕西理工学院计算机系《软件工程》1.1.2产生软件危机的原因(软件开发人员的错误观点)“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”•“所谓软件开发就是编写程序并设法使它运行”•“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”•“软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”1.1软件危机copyright/182009年8月陕西理工学院计算机系《软件工程》1.1.2产生软件危机的原因1.软件缺乏“可见性”,软件的开发过程的进展情况难以衡量,软件质量难以评价;2.软件维护意味着改正或修改原来的设计,使维护较难;3.软件规模大,须由多人分工合作,管理难度大;4.软件专业人员对软件开发和维护有糊涂观念,常采用错误的方法和技术;错误的认识和做法主要表现,(1)忽视软件需求分析的重要性;(2)忽视软件维护1.1软件危机copyright/192009年8月陕西理工学院计算机系《软件工程》1.1软件危机4.选择好的软件开发工具。1.端正认识,纠正“软件就是程序”的错误观念;2.认识到软件开发是组织良好、管理严密,各类人员协同配合、共同完成的工程项目;3.多使用已成功的技术和方法,探索更有效的方法;1.1.3消除软件危机的途径copyright/202009年8月陕西理工学院计算机系《软件工程》1.2软件工程1.2软件工程1.2.1软件工程的介绍1.什么是软件工程?为了经济的获得可靠的,在实际机器上高效运行的软件,而建立和使用的好的工程原则。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。copyright/212009年8月陕西理工学院计算机系《软件工程》2.软件工程三要素过程、方法和工具软件工程过程方法工具1.2软件工程copyright/222009年8月陕西理工学院计算机系《软件工程》软件工程过程方法工具软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具、过程和工具促进方法学的研究。将系统的、规范的、可量化的方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。为软件工程的过程和方法提供自动化或半自动化的工具支持贯穿软件开发的各个环节完成项目的技术手段(传统方法学、面向对象方法学)copyright/232009年8月陕西理工学院计算机系《软件工程》3.软件工程发展阶段软件工程的发展已经历了四个重要阶段:4)第四代软件工程—构件工程3)第三代软件工程—过程工程2)第二代软件工程—对象工程1)第一代软件工程—传统的软件工程1.2软件工程copyright/242009年8月陕西理工学院计算机系《软件工程》软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程60年代末到70年代为了克服“软件危机”(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。1.2软件工程3.软件工程发展阶段copyright/252009年8月陕西理工学院计算机系《软件工程》1.软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程80年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。1.2软件工程3.软件工程发展阶段copyright/262009年8月陕西理工学院计算机系《软件工程》1.软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。1.2软件工程3.软件工程发展阶段copyright/272009年8月陕西理工学院计算机系《软件工程》1.软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程90年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。1.2软件工程3.软件工程发展阶段copyright/282009年8月陕西理工学院计算机系《软件工程》4.软件工程目标在给定成本、进度的前提下,开发出具有:有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。5.软件工程基本原则在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:抽象模块化信息隐藏局部化一致性完全性可验证性1.2软件工程copyright/292009年8月陕西理工学院计算机系《软件工程》1.2软件工程6.软件工程的特性(1)软件工程关注于大型程序的构造;(2)软件工程的中心课题是控制复杂性;(3)软件经常变化;(4)开发软件的效率非常重要;(5)和谐地合作是开发软件的关键;(6)软件必须有效地支持它的用户;(7)在软件工程领域中是由具有一种文化背景的人替另一种文化背景的人创造产
本文标题:软件工程导论 (1)
链接地址:https://www.777doc.com/doc-213128 .html