第1章-软件工程概念.ppt_第1页
第1章-软件工程概念.ppt_第2页
第1章-软件工程概念.ppt_第3页
第1章-软件工程概念.ppt_第4页
第1章-软件工程概念.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程,Email:370064596Tel:187-5045-5919,闽南科技学院计算机系,什么是软件工程?,软件工程(SoftwareEngineering,简称为SE)是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面的知识;同时它还是一门将理论应用于实践的学科,多处应用了计算机科学、数学和管理科学等方面的知识。它也是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策.,闽南科技学院计算机系,我国软件产业的现状,软件产业的发展水平,决定了一个国家的信息产业发展水平及其在国际市场上的综合竞争力。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国,国内市场对软件人才的需求每年高达80万人,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才的极度短缺。尽快培养起适合信息产业所需要的高素质软件工程人才,已经成为信息化工作中的重中之重。,闽南科技学院计算机系,2010年高校软件工程专业排名,1、南京大学2、清华大学3、复旦大学4、武汉大学5、浙江大学6、上海交通大学7、中国科学技术大学8、中山大学9、华中科技大学10、哈尔滨工业大学,闽南科技学院计算机系,学软件有什么优势?,闽南科技学院计算机系,学软件的优势就业形势好,随着软件业的快速发展,软件开发专业人才的需求逐年增长。而国内的软件人才却非常紧缺。有句话说得好:“用电脑就是用软件”。而软件产业的发展也在改变着人们的日常生活,甚至成为IT产业发展的重要推动力。环顾世界,微软、Adobe、等公司无不是从软件起家,逐步发展到目前的庞大规模。因此,从某种意义上说,靠软件吃饭,是一辈子的事情。所以软件是一门好就业的行业。,闽南科技学院计算机系,学软件的优势就业工资高,这是一个众所周知的事实,软件工程的平均工资一直处于前列,软件工程师城市之间差异比较大,一级城市(如深圳,上海等)初高级软件工程师的待遇在40009000之间;内地其他省会城市一般在20006000之间。但只要你的技术高,能力强,月工资在10000与20000之间也不足为奇(研究生毕业工资更高),闽南科技学院计算机系,学软件的优势就业方向广,未来几年,国内外高层次软件人才将供不应求。毕业生主要在各大软件公司、企事业单位、高等院校、各大研究所、国防等重要部门从事软件设计、开发、应用与研究工作。有数据表明,我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观。,闽南科技学院计算机系,教学目标,为什么要学习这门课程有助于正确理解和认识“软件”的概念及其特点理解软件开发面临的问题和挑战掌握软件工程的原则、方法和思想来系统地开发软件,尤其是复杂、庞大的软件的开发了解和接触软件开发所需的各种技术手段理解、掌握和运用,闽南科技学院计算机系,理解,什么是软件工程为什么需要软件工程(产生背景)软件工程需要解决那些问题软件工程涉及那些方面内容,闽南科技学院计算机系,掌握,软件工程概念技术过程手段工具,闽南科技学院计算机系,运用,运用工程化思想进行软件开发需求分析软件设计程序设计软件维护,闽南科技学院计算机系,内容组织(见教学日历),先导要求,程序设计语言最好有一定的软件开发经验,闽南科技学院计算机系,学习要求,听理解知识点和思想无需死记硬背做实践体会软件工程的原则、方法和技术,在实践中提高培养抽象思维能力培养独立解决问题的能力培养合作精神想阅读相关资料,闽南科技学院计算机系,15,考核方式,考试70%+平时表现及考勤20%+10%平时大作业,闽南科技学院计算机系,16,参考文献,软件工程导论(第五版),张海藩,清华大学出版社软件工程实践导论-有关方法、设计、实现、管理之三十六计,金尊和,清华大学出版社,2005.软件工程与开发技术(第二版)(江开耀)十一五2009软件工程实践者的研究方法,RS.Pressman,机械工业出版社,闽南科技学院计算机系,软件工程产生的背景(软件危机),第1章软件工程概述,1,软件工程定义,2,软件工程方法学,3,软件过程模型,4,小结,5,闽南科技学院计算机系,1.1、软件及软件危机,1.1.1软件的定义(p4)软件(Software)是计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(Data)及其相关文档(Document)的完整集合。Software=Program+Data+Document程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据结构文档是与程序开发,维护和使用有关的图文材料,闽南科技学院计算机系,19,非常复杂,逻辑复杂远远高于硬件的逻辑复杂度开发复杂成本难以估算进度难以控制人员素质要求质量得不到保证96年Ariane火箭发射失败,浮点数转换时发生错误,1.1.2、软件的特征,闽南科技学院计算机系,成本高(1/2),1.1.2、软件的特征成本高,闽南科技学院计算机系,成本高(2/2),闽南科技学院计算机系,1995年美国Standish咨询集团的统计分析(至90年代初的软件项目执行情况)成功:16.2%失败:31受到挑战:53.8%近几年来的统计数据成功:26失败:28受到挑战:46%,1.1.2、软件的特征-风险大,闽南科技学院计算机系,维护形式多样化改正性:修改故障完善性:增加功能适应性:移植维护成本越来越高55%到70维护带来的问题,1.1.2、软件的特征-维护困难,闽南科技学院计算机系,1.1.3、软件的发展,早期面向批处理有限的应用自定义软件,第二阶段多用户实时数据库软件产品,第三阶段分布式系统嵌入“智能”低成本硬件消费者的影响,第四阶段强大的桌面系统面向对象技术专家系统人工神经网络并行计算网路计算机,1950,1960,1970,1980,1990,2000,1968年10月,北大西洋公约组织(NATO)的科学家在德国召开的学术会议上正式提出了软件危机问题。,闽南科技学院计算机系,1.1.4、什么是软件危机?,计算机软件开发和维护过程中遇到的一系列的问题1、怎么高效开发出成本合理,质量可靠的软件来满足社会日益增长的软件需求2、如何对已有的软件进行维护,闽南科技学院计算机系,1.1.5、软件危机的表现,成本高IBM360OS,5000多人,耗时4年(19631966),花费2亿多美元美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元计算机软件和硬件费用比,闽南科技学院计算机系,软件质量得不到保证1、软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭2、软件越来越多的应用于安全攸关(safetycritical)的系统,对软件质量提出更高的要求3、80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误4、美国阿托拉斯火箭的发射失败,原因是软件故障5、英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消6、日本第5代机因为软件问题在投入50亿美元后于1993年下马由于软件质量问题导致失败的软件项目非常多,1.1.5、软件危机的表现(2/3),闽南科技学院计算机系,1.1.5、软件危机的表现(3/3),进度难以控制项目延期比比皆是由于进度问题而取消的软件项目较常见只有一小部分的项目能够按期完成维护非常困难软件维护的多样性软件维护的复杂性软件维护的副作用,闽南科技学院计算机系,1.1.6、产生软件危机的原因,与软件本身的特点有关(难于维护,逻辑复杂)与软件开发与维护的方法不正确有关:软件程序急于求成=拔苗助长各自为阵无方法/学,闽南科技学院计算机系,1.1.7、如何解决软件危机,1、技术途径2、管理途径,闽南科技学院计算机系,提出有效的方法和工具支持软件开发1、1968年提出软件工程概念和思想2、20世纪70年代的结构化软件开发方法3、20世纪80年代的面向对象的软件开发方法4、新的技术:软件重用、快速原型、需求工程5、典型技术:COM,Java,C+,J2EE,.Net,.6、支撑工具和环境:Jbuilder,VisualStudio,WebLogic,1、解决危机的技术途径,闽南科技学院计算机系,20世纪80年代末,美国DoD和工业界开始认识到管理的重要性美国DoD的一项研究表明,70%的项目由于管理不善导致难以控制进步、成本和质量;进一步的研究发现:管理是影响软件项目成功开发的全局性因素,而技术只影响局部如果软件开发组织不能对软件项目进行有效管理,就不能充分发挥软件开发方法和工具的潜力,也就不能高效率地开发出高质量的软件产品,2、解决危机的管理途径,闽南科技学院计算机系,1.2软件工程定义(1),Theestablishmentanduseofsoundengineeringprinciples(methods)inordertoobtaineconomicallysoftwarethatisreliableandworksonrealmachines.(1968-FritzBauer),软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。,闽南科技学院计算机系,1.2软件工程定义(2),Softwareengineering.(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware;thatis,theapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).(IEEE(TheInstituteforElectricalandElectronicengineers)Std610-1990.),软件工程是:(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1)中提到的途径。,闽南科技学院计算机系,1.2软件工程定义(3),Engineeringisthesystematicapplicationofscientificknowledgeincreatingandbuildingcost-effectivesolutionstopracticalproblemsintheserviceofmankind.Softwareengineeringisthatformofengineeringthatappliestheprinciplesofcomputerscienceandmathematicstoachievingcost-effectivesolutionstosoftwareproblems.,SEIsoftwareengineeringdefinitionfrom1990SEIReportonUndergraduateSoftwareEngineeringEducation(CMU/SEI-90-TR-003):,闽南科技学院计算机系,1.2软件工程定义,总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。,闽南科技学院计算机系,1.2.2软件工程的特性,1.软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性3.软件经常变化4.开发软件的效率非常重要5.和谐地合作是开发软件的关键6.软件必须有效地支持它的用户7.在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人,闽南科技学院计算机系,1.2.3软件工程的基本原理,1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性,闽南科技学院计算机系,软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程领域中,这两个术语的含义基本相同。软件工程方法学包含3个要素:方法、工具和过程。,1.2.4软件工程方法学,闽南科技学院计算机系,1.2.4软件工程方法学,软件工程:一种层次化技术,软件工程三个要素:工具、方法、过程,基础层,综合方法及工具,定义方法使用的顺序,所需要的管理,为软件开发提供“如何做”的技术,为软件开发提供自动或半自动的软件支撑环境,建立计算机辅助软件工程(CASE)的软件开发支撑系统,闽南科技学院计算机系,1.3软件生命周期模型,问题定义软件定义可行性研究需求分析总体设计详细设计软件生命周期软件开发编码单元测试综合测试运行维护持久满足用户需求,闽南科技学院计算机系,1.4软件过程模型,软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,工作任务,里程碑、交付物,SQA点,AprocessdefinesWhoisdoingWhat,When,andHow,inordertoreachacertaingoal.,公共过程框架,辅助活动,框架活动,任务集合,软件过程,闽南科技学院计算机系,1.4软件过程模型,软件生命周期的每一阶段都有明确的任务,把规模大、结构复杂、管理复杂的软件开发变得容易控制和管理。各个阶段的活动如何衔接,开发过程中采用什么样的策略,应遵守什么样的规定和制约,将这些活动框架(忽略不必要的细节)用一种模型表示出来,称为软件过程模型(或软件开发模型或软件生命周期模型)。也就是说,软件过程模型是软件开发全部过程、活动和任务的结构框架。,闽南科技学院计算机系,1.4软件过程模型,(1)瀑布模型(WaterfallModel)传统瀑布模型,闽南科技学院计算机系,1.4软件过程模型,传统瀑布模型的特点提供了软件过程模型的基本框架(模板)。强调了每一阶段活动的严格顺序。质量保证观点:以经过评审确认了的阶段工作产品(文档)驱动下一阶段的工作,便于管理。是一种整体开发模型,程序的物理实现集中在开发阶段的后期,用户在最后才能看到自己的产品。传统瀑布模型存在什么问题?,闽南科技学院计算机系,1.4软件过程模型,实际的瀑布模型,闽南科技学院计算机系,1.4软件过程模型,瀑布模型适合于用户需求明确、完整、无重大变化的软件项目开发。瀑布模型的成功在很大程度上是由于它基本上是一种文档驱动的模型。“瀑布模型是由文档驱动的”这个事实也是它的一个主要缺点。实际项目很少按照该模型给出的顺序进行;用户常常难以清楚地给出所有需求;用户必须有耐心,等到系统开发完成。,瀑布模型的优缺点,闽南科技学院计算机系,1.4软件过程模型,(2)原型模型快速原型模型(RapidPrototypeModel),在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户的一组基本需求,快速建造一个原型(可运行的软件),然后进行评估,进一步精化、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解。,建造/修改原型,听取用户意见,用户测试运行原型,原型实现范型,闽南科技学院计算机系,1.4软件过程模型,快速原型,验证,规格说明,验证,设计,验证,编码,测试,综合测试,维护,变化的需求,验证,维护过程,开发过程,闽南科技学院计算机系,1.4软件过程模型,原型模型存在的问题为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。开发过程不便于管理。有效的使用原型模式建造原型仅是为了定义需求,之后就被抛弃(或被部分抛弃),实际的软件在充分考虑了质量和可维护性之后才被开发。,闽南科技学院计算机系,1.4软件过程模型,(3)增量模型(IncrementalModel),是一种渐进地开发逐步完善的软件版本的模型。,需求分析,验证,规格说明,验证,设计,验证,维护,针对每个构件完成详细设计、编码和集成,经测试后交付给用户,闽南科技学院计算机系,1.4软件过程模型,分析,分析,分析,分析,设计,设计,设计,设计,编码,编码,编码,编码,测试,测试,测试,测试,增量1,增量2,增量3,增量4,交付,交付,交付,交付,反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产生一个“增量”的发布或提交,该增量均是一个可运行的产品。早期的版本实现用户的基本需求,并提供给用户评估的平台。,增量模型,闽南科技学院计算机系,1.4软件过程模型,在较短时间内向用户提交可完成部分工作的产品,并分批、逐步地向用户提交产品。从第一个构件交付之日起,用户就能做一些有用的工作。整个软件产品被分解成许多个增量构件,开发人员可以一个构件一个构件地逐步开发。逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计,但在设计阶段多付出的劳动将在维护阶段获得回报。,增量模型的优点,闽南科技学院计算机系,简化的螺旋模型,1.4.4螺旋模型,闽南科技学院计算机系,完整的螺旋模型,闽南科技学院计算机系,基本思想:融合原型的迭代、瀑布模型和系统化的方法来降低风险。增加了风险分析。风险驱动,演化方法的结果不易于把握。风险分析可能大大影响项目的利润,主要适用于内部开发的大规模软件项目。较为复杂,对经验要求较高。,螺旋模型特点,闽南科技学院计算机系,1.4软件过程模型,(5)面向对象模型,喷泉模型(FountainModel),分析,设计,实现,测试,集成,演化,特点:主要用于支持面向对象开发过程体现了软件创建所固有的迭代和无间隙的特征,闽南科技学院计算机系,1.4.6Rational统一过程,开发经验最佳实践迭代式开发管理需求基于构件的体系结构可视化建模验证软件质量控制软件变更2.RUP软件开发生命周期,闽南科技学院计算机系,RUP软件开发生命周期,闽南科技学院计算机系,1.4.7敏捷过程与极限编程,敏捷过程轻量级软件工程个体和交互胜过过程和工具可工作的软件胜过面面俱到的文档客户合作胜过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论