您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 哈工大-第1章软件工程概述.
1计算机科学与技术学院软件工程研究室王宇颖wangyy@hit.edu.cn2授课对象软件学院本科40学时课程设计2周(下学期)高级语言程序设计、数据结构、数据库技术等等授课学时先修课程3计算机科学与软件工程ComputerScienceCustomerTheoriesComputerFunctionProblemSoftwareEngineeringToolsandTechniquestoSolveProblem4初步了解工程?硬件工程?软件工程?计算机工程?工程:利用自然规律,创建一个使一部分人受益的系统.5计算机工程ComputerEngineering硬件工程HardwareEngineering研究硬件生产和硬件管理的工程学科.《计算机硬件及网络分析、制定设计方案、选型、配置、采购、验收、安装、调试、运行、培训、维护》6软件工程SoftwareEngineering研究软件开发、生产和管理的工程学科《调研、可行性论证、正式立项、需求分析、项目策划、设计、编程、测试、实施、试运行、产品发布、用户培训、产品复制、销售、系统维护、版本升级》.采用科学的方法指导软件的开发与维护!初步了解7软件开发模型软件开发过程,方法与技术软件开发环境与工具软件管理过程(度量、成本…)软件企业文化现代软件工程研究的内容:软件开发既是一门科学,又是一门工程,也是一门艺术8导读第1章绪论-提出问题第2章模型-全局观点第3章项目计划-管理观点第4、5章分析方法,需求分析-开发第1步最重要第6章软件设计-实现的前提第7章实现-初始结果第8章测试质量保证-得到可交付的结果第9章维护-延长软件生命期9软件工程教材丛书需求分析系列设计系列实现系列测试与度量系列项目管理系列质量管理系列面向对象技术系列建模语言系列可用性与复用系列前沿论题系列软件工程软件工程方法与技术软件项目管理软件过程系列10史济民等,软件工程-原理、方法与应用(第二板),高等教育出板社ISBN7-04-011561-1张海藩,软件工程,人民邮电出版社2002年3月第一版周之英,现代软件工程(上、中、下),科学出版社2001年4月第一版陈明,软件工程学教程,科学出版社2002年3月第一版郑人杰,软件工程,清华大学出版社中文参考书11英文参考书SoftwareEngineeringTheoryandPractice(SecondEdition)Author:ShariLawrencePfleeger(软件工程——理论与实践,高等教育出版社)SoftwareEngineeringAPractitioner’sApproachAuthor:Rogers.Pressman(软件工程实践者的研究方法机械工业出版社)12基本要求理解软件工程的思想和方法掌握软件开发方法和工具学会按照工程化的方法开发和维护软件具有阅读软件工程方面资料的能力为实践及未来的软件开发打基础13听课复习阅读讨论练习,从知到会实践,从会到通知识—方法—能力如何学习软件工程讲课教书学习读书知识课程你们的收获不会仅仅局限在本课程之内……课堂教学复习作业参考资料实践渗透14考试课堂小考核,占成绩的10%完成一个小型软件系统的分析、设计文档,阶段性成果占成绩的20%考试成绩占70%财富可以通过辛勤劳动获取,也可能由于喜中彩票大奖获得。但知识却必须是通过一点一滴努力学习逐渐积累珍惜每一天,每一节课,每一分钟诚信15实践作业分析和设计下列问题之一,并写出文档.1.教学管理软件2.教学网站3.网上售书,网上购物4.超市管理5.食堂管理6.工寓管理7.自选16第1章软件工程的概述17基本内容:1.1软件1.2软件工程的概念1.3软件工程的作用1.4软件工程的发展1.5软件工程三要素1.6软件工程的目标181.1软件1.1.1软件的定义:20世纪五十年代软件=程序面向过程的程序=算法+数据结构20世纪六十年代软件=程序+文档20世纪七十年代软件=程序+文档+数据面向对象的程序=对象+消息面向构件的程序=构件+构架191.1.2软件的特征:软件是一个信息变换器;软件是产品交付使用的载体;软件是是被开发或设计的,而不是被制造的;软件不会磨损,但维护困难。故障率时间夭折磨损实际理想故障率时间修改软件故障曲线硬件故障曲线图1-1硬件软件故障图201.1.3软件的应用*系统软件*应用软件*商业软件*工程和科学计算软件*嵌入式软件*个人计算机软件*人工智能软件*基于web软件*工具包软件211.2软件工程的概念1.2.1软件工程的提出软件开发失败的例子1962年6月,美国飞向金星的第1个空间探测器(水手1号)飞行中偏移了航线,失败了.原因:飞舱中的导航程序中的一个语句的语义错.世界上精心设计的并花费巨额投资的美国阿波罗8号太空飞船登月飞行计划的软件的错误,使存储器一部分信息丢失;阿波罗14号的飞行10天中,出现18个软件错误.原因:软件的可靠性问题221963~1966年IBM开发OS/360操作系统,投资几千万美元,工作量5000多人年,拖延几年才交付使用,而且每年要发现近100个错误。美国肯尼迪发射的一枚“阿脱拉斯火箭,当飞地面几十英里高空时,翻转.地面控制中心被迫下令炸毁,结果损失1850万美元原因:飞行计划程序漏掉一个“连”接字符23通过比较,支持“美国航天飞机”的软件由3百万行代码组成,包括地面控制发射和飞行的计算机,航天飞机本身就需10万行代码。这样一个反导弹软件系统需要测试大量的代码.此外可靠性约束是不可能测试的。许多软件工程师认为一个“反弹道导弹系统”只少需要1千万行代码,有人估计代码在1亿行左右。24“安全临界”软件问题:安全临界是指其可靠性至少达到10-9,也就说在工作109小时内不能出现错误。为了观察可靠性程度,就必须使系统至少运行109小时不会失败。但验证109小时不出错,需要测试114,000年,这实际上是不可能的。这是一种无法实现的计划。25由上可看出:软件需求量不断增大,复杂度越来越高,软件可靠性无保障软件维护费用不断上升软件进度无法预测成本增长无法控制程序人员无限度地增加各个方面.上述原因导致了60年代末的“软件危机.26一系列软件开发的失败引起人们的思考,1968年北大西洋公约组织(NATO)的计算机科学家在联邦德国的幕尼黑召开的一次计算机软件国际会议上,对软件开发的方法、技术进行了广泛的讨论,首次提出了“软件工程”的概念。271.2.2软件工程的含义P.Wegner和B.Boehm认为:科学知识在设计和构造计算机程序,以及开发、运作和维护这些程序所需求的有关文档编制中的实际应用。28IEEE(83)指出:软件工程是开发、运行、维护和修复软件的系统方法。IEEE(93)指出:软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化的方法应用于软件开发中。29解决60年代出现的软件危机解决软件当前面临的技术问题软件可靠性、可用性、重用性、维护性等等告诉人们怎样去开发软件、管理软件开发软件即需要干哪些“活”,对“开发”两字做一解析.如何干活,即有关开发模型和开发方法等技术问题.如何管理,即有关CMM等管理问题.1.3软件工程的作用30现代软件开发对人才的要求系统分析人员、设计人员、软件架构师、软件集成人员、高层管理人员、中层项目经理、软件蓝领工人、实施和维护人员、软件售前人员、软件营销人员提高软件产品的质量,降低软件开发的成本.311.4软件工程的发展传统的软件工程时代过程软件工程时代对象软件工程时代构件软件工程时代发展方向:流水线装配软件工程的方向发展(流水线生产,网络化,服务化,全球化)32为屏蔽计算机硬件的异构性,发展了操作系统.NET/COMWebServicesJ2EE/EJBUNIXWindowsLinuxC/C++语言Java语言为屏蔽操作系统和编程语言的异构性,发展了支撑软件和中间件为了屏蔽中间件之间的异构性,出现了Web技术。Fortran语言为了祢补应用软件与现实计算环境之间的距离网络层综观软件技术的发展图1-2应用系统操作系统支撑软件中间件331)20世纪60年代末至80年代初,围绕软件项目,开展了有关:软件开发风范开发方法支持工具的研究。20世纪60年代末80年代初20世纪末主要特点强调技术关注管理“螺旋反复”发展阶段342)20世纪80年代以来,随着软件系统规模的增大、复杂性的提高以及在关键领域应用的开展,人们更加关注:软件生产技术的研究和实践注重软件工程管理。主要成果包括:(1)计算机辅助软件工程(CASE)(2)软件复用:如构件模型、复用机制等(3)软件过程概念以及能力成熟度模型(CMM)351.5软件工程三个要素:工具质量焦点过程Softwareengineeringlayers方法工具图1-5软件工程三个要素361.6软件工程的目标低成本满足功能满足性能易于移植维护费用低及时交付使用简而言之,提高软件质量,降低软件开发和维护成本37本章小结软件工程的概述软件软件工程的概念软件工程的目标希望认真学习主动获取知识软件工程三要素方法过程工具38习题1简述软件工程的发展过程。2软件的定义?3什么叫软件危机?软件危机主要有哪几种表现?4软件工程要解决的问题及技术是什么6软件工程的目标是什么?
本文标题:哈工大-第1章软件工程概述.
链接地址:https://www.777doc.com/doc-2581780 .html