欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件工程一讲ppt课件.ppt

    • 资源ID:5641488       资源大小:1.02MB        全文页数:58页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程一讲ppt课件.ppt

    软件工程 Software Engineering,主讲:李铁柱,教材,软件工程与UML案例解析 何晓蓉 铁道出版社软件工程方法与实践 许家珆 电子工业出版社 Software Engineering,6th EditionIan Sommerville(英)机械工业出版社(影印版),参考书目,软件工程导论(第五版),张海藩,清华大学出版社软件工程实践导论-有关方法、设计、实现、管理之三十六计,金尊和,清华大学出版社,2005.软件开发的科学与艺术,微软亚洲研究院,电子工业出版社,2002年 软件工程实践者的研究方法,R S.Pressman,机械工业出版社现代软件工程,周之英编著,科学出版社软件工程思想,林锐。人月神话,FREDERICK P.BROOKS,JR.清华大学出版社。,学习要求,听理解知识点和思想无需死记硬背做实践体会软件工程的原则、方法和技术,在实践中提高培养抽象思维能力培养独立解决问题的能力培养合作精神想阅读相关资料,学习方式,完成必要的作业完成每次的实验题目完成一次综合性的项目分析开发,软件工程师的基本功底,扎实的基础 丰富的想象力最简单的是最好交流能力良好的编程风格韧性和毅力,项目有关常识,流程重于项目QC(就是QA)独立于研发部门,专门检查研发部门的开发流程是不是按照既定流程走.如果QC觉得流程不对,他会直接上报高层,项目肯定就此停止.所谓的项目经理(PC)一般也是从编码人员升上来的,并不是所谓的不懂技术,一般都至少有四年以上的经验,所有的东西(包括草稿)都必须有文档详细文档要求达到只有这个文档就可以编码的程度,一般写文档时间占60%,编码时间极少有各种详细的review(同行评审),项目组内的,项目组之间的,客户的.计划很详细,的确能达到小时级,但是实际情况还是误差比较大,所以加班是家常便饭的事情。,项目有关常识,学习目的,有助于正确理解和认识“软件”的概念及其特点理解软件开发面临的问题和挑战掌握软件工程的原则、方法和思想来系统地开发软件,尤其是复杂、庞大的软件的开发了解和接触软件开发所需的各种技术手段 软件工程是典型的计算机科学和数学,管理科学,心理学,社会学等学科的综合。,软件的发展,程序设计阶段(20世纪40年代初60年代中期)程序系统阶段(60年代中期到70年代末期)软件工程阶段(20世纪70年代中)第四阶段,个体化的软件环境,软件规模小,编写者和使用者往往是同一个人,除程序清单外,无其它文档资料。,“软件作坊”,比较广泛使用产品软件,仍沿用个体化开发方法。软件维护工作很难进行,甚至不可维护(不能修改运行时发现的错误,不能适应新的硬件环境)由于软件的“不可维护”,而导致了“软件危机”。,微处理器出现,个人计算机产品、分布式系统对软件开发提出更高要求,软件在工业、学术界应用广泛,个人应用少。,更强大的硬件和软件,复杂操作系统控制的强大的桌面系统,局域网和广域网,先进的应用软件配合,成为主流。集中主机环境转变为分布的C/S,B/S环境。面向对象技术取代传统技术。,例:Windows95有1000万行代码 Windows Vista有超过5000万行代码Exchange2000和 Windows2000开发人员结构,四个阶段典型技术,第一阶段:面向批处理 有限的分布 自定义软件第二阶段:多用户 实时 数据库 软件产品第三阶段:分布式系统 嵌入“智能”第四阶段:OO 专家系统 AI PC NC,软件工程概论,什么是软件 软件的分类 软件的特点软件的生存期软件开发面临的问题 软件危机 软件工程 软件工程的目的和要求,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合 软件程序数据文档资料程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据结构文档是与程序开发,维护和使用有关的图文材料,软件的分类,按软件的功能进行划分:系统软件支撑软件应用软件,系统软件,使计算机系统各个部件、相关软件和数据协调、高效地工作的软件操作系统数据库管理系统设备驱动程序通信处理程序等,支撑软件 协助用户开发软件的工具软件文本编辑程序文件格式化程序磁盘向磁带进行数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件,应用软件商业数据处理软件工程与科学计算软件计算机辅助设计制造软件系统仿真软件智能产品嵌入软件医疗、制药软件事务管理、办公自动化软件计算机辅助教学软件,按软件规模进行划分:类别 参加人员数 研制期限 源程序行数 微型 1 14周 0.5k 小型 1 16月 1k2k 数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。中型 25 12年 5k50k 软件人员之间、与用户之间的联系、协调的配合关系。因而计划、资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。系统的软件工程方法是完全必要的。,大型 520 23年 50k100k 编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。甚大型 1001000 45年 1M(=1000k)若干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。极大型 20005000 510年 1M10M军事指挥、弹道导弹防御系统。,按软件工作方式划分:实时处理软件 分时软件 交互式软件 批处理软件,按软件失效的影响进行划分:高可靠性软件 一般可靠性软件,软件的特点,软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性软件的生产与硬件不同,在它的开发过程中没有明显的制造过程在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,软件的特点-软件的失效曲线,软件的特点-软件规模与复杂度关系,以美国宇航局的软件系统为例:1963年 水星计划系统 200万条指令1967年 双子星座计划系统 400万条指令1973年 阿波罗计划系统 1000万条指令1979年 哥伦比亚航天飞机系统 4000万条指令假设1个人一年生产一万条有效指令,那么是否4000人生产一年,或400人生产10年就能完成任务吗?答案是否定的。一万条指令的复杂度决不仅仅是100条指令复杂度的100倍。,软件的特点-软件成本构成,12%需求率,4%,生产率,开发人员,成本构成不同:主要投资在研制;软件研制是一种人力、资金密集的产业,而软件生产只是简单的复制、安装和培训。,软件的特点-改正一个问题需付出的代价,需求分析,结构设计,详细设计,编码,集成测试,系统测试,现场,改正一个问题的估计费用,改正一个问题估计的工作量,20,200,2000,1000,5.0,2.5,0.05,0.5,(美元),(人天),软件的特点-软件开发进度难以预测,拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。以丹佛新国际机场为例。该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,000台遥控车,可按不同线路在20家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400台无线电接受机、56台条形码扫描仪和100台计算机。按原定计划要在1993年万圣节前启用,但一直到1994年6月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度。,软件的生存期 life cycle,软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护,制定计划,确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,需求分析和定义,对待开发软件提出的需求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审,软件设计,概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书,提交评审。,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的,软件测试,单元测试,查找各模块在功能和结构上存在的问题并加以纠正组装测试,将已测试过的模块按一定顺序组装起来按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护 运行中发现了软件中的错误需要修正适应性维护 为了适应变化了的软件工作环境,需做适当变更完善性维护 为了增强软件的功能需做变更,36,案例分析,某电力公司A,希望软件公司B 为他们制造一种”电费结算系统”,该系统用于结算每一户电表1个月期间应该缴纳的电费。B 公司得到电力公司A的这个要求之后,开始进入制作“电费结算系统”软件的生命周期。,37,问题定义阶段,该阶段的关键任务是要明确:要解决的问题是什么?,思考:以下几个选项中,哪个是B公司得出的结论:A.要解决某小区用电总度数问题B.要解决某小区总收电费问题C.要解决电力公司A管辖范围内的所有电表每月每户电费结算问题D.要解决全国区域内电表结算问题,38,可性行研究阶段,该阶段的关键任务是要明确:做不做用最小的代价在尽可能短的时间内从经济、技术、社会因素等方面论证解决方案的可行性,思考:B公司在可行性分析阶段应该做些什么事情,会得出什么结论?,39,需求分析阶段,该阶段的关键任务是要明确:做什么通过与客户不断的讨论、协商,对目标系统提出完整、准确、清晰、具体的要求.用正式的文档准确地记录对目标系统的需求,形成软件需求规格说明书(SRS),注意点,B公司在这个阶段应该对用户的要求进行详细的调研与分析,需要去了解电费结算中需要涉及到信息、结算电费的标准与公式、这个电费结算系统的产出文档是什么等内容,确定该系统需要实现的功能,例如:对使用电表的用户进行管理,对1个用户1个月的电费计算,能够生成结算单。最后以文档的形式描述出需求规格。这些是指导B公司进行下一步工作的依据。,40,概要设计(总体设计)阶段,该阶段的关键任务是要明确:怎么做提出实现目标系统的几种方案,制定最佳方案的详细计划系统的体系结构设计阶段性成果:概要设计说明书、数据库或者数据结构说明书、组装测试计划等,根据上一 步得到的需求规格说明书,将需求功能进行模块化分,B公司的设计人员开始了对“电费结算系统”的设计。例如,系统管理模块,电费计算模块,生成结算单模块等。,41,详细设计阶段,该阶段的关键任务是要明确:具体做法 设计出程序的详细规格说明,即详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。阶段性成果:详细设计规格说明书和单元测试计划等,对每一个模块,设计它的实现算法和数据结构。例如,电费计算模块,需要根据计算公式进行电费的计算。B公司的设计人员开始了对“电费结算系统”的设计。,42,编码和单元测试阶段,该阶段的关键任务是编码和单元测试编写出正确的、易理解的、易维护的程序模块;仔细测试编写出的每一个模块阶段成果:经过单元测试后的代码,单元测试报告等。,B公司程序员们开始对每个模块进行分工,各自负责1个或者多个模块,然后写代码阿写代码,代码写好了,还需要对自己所写模块的代码进行测试,保证自己的正确性。,43,综合测试阶段,该阶段的关键任务是通过各种类型的测试(及调试)使软件达到预定的要求组装测试:根据设计的软件结构,把经过单元测试检验的模块按某种策略装配起来,在装配过程中对程序进行必要的测试。验收测试:按照规格说明书的规定,由用户对目标系统进行验收,看其是否达到需求规格说明书中定义的全部功能和性能等方面的需求。验收测试结束后,经过评审的软件产品就可以交付投入使用了。,经过上面的几个步骤,B公司的人员终于拿出了“电费结算系统”,他们需要对该系统进行各种测试,包括集成测试,系统测试,用户环境测试,验收测试等等,确保该系统能够平稳的运行在A公司中。,44,软件维护阶段,该阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的要求。改正性维护:诊断和改正在使用过程中发现的软件错误适应性维护:修改软件易适应环境的变化完善性维护:根据用户的要求改进或扩充软件使它更完善预防性维护:修改软件为将来的维护活动预先做准备,在电力公司A的实际使用当中,“电力结算系统”出现了一些问题,B公司需要派人员进行维护。此外,A公司对B公司所开发的系统比较满意,愿意继续让B公司对其进行其他方面功能的扩充,例如:分小区进行用电量和电费收益的统计分析等。,软件开发中面临的问题,计划很难制定致使经费预算常常突破 由于缺乏软件开发的经验,主观盲目地制定计划,执行起来和实际情况有很大差距,对于工作量估计不准确,进度计划无法遵循,开发工作完成的期限一拖再拖。已经拖延了的项目,为了加快进度而增加人力,反而更加延误项目的进度。,需求在开发的初期阶段提得不够明确,或是未能得到确切的表达。软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,造成开发后期矛盾的集中暴露。然而这时问题既难于分析,也难于挽回。开发过程没有统一的、公认的方法论和规范指导 加之不重视文字资料工作,资料很不完整;忽视每个人与其他人的接口部分,发现了问题修修补补,这样的软件很难维护。,未能充分做好检测工作 在运行中暴露出大量的问题,轻者影响系统的正常工作,重者发生事故,甚至造成生命财产的重大损失。美国IBM公司在1963年至1966年开发的IBM 360机的操作系统。5000人-年的工作量,1000人投入,近100万行源程序。每次发行的新版本都是从前一版本中找1000个程序错误,项目负责人F.D.Brook总结时说:“正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深。最后无法逃脱灭顶的灾难。“,软件危机,1968年由NATO(北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念,引入了现代软件开发的方法,希望用工程化的原则和方法来克服软件危机。,软件危机的具体体现,(1)软件开发进度难以预测(2)软件开发成本难以控制(3)用户对软件功能难以满足(4)软件产品质量无法保证(5)软件产品难以维护(6)软件缺少文档资料,按工程化的原则和方法组织软件开发是解决软件开发中出现问题的一个主要出路。软件工程阶段,大约为70年代以后。50年代到60年代时,程序设计曾经被看做是一种任人发挥创造才能的技术领域。写出的程序通篇充满了程序技巧,这些程序很难被别人看懂。然而随着计算机的广泛使用,人们逐渐抛弃了这种观点。对于稍大的程序,并需要较长时间为许多人使用的程序,人们要求这些程序容易看懂、容易使用,并且容易修改和扩充。多个软件人员分工合作、共同完成;只有在项目的总体要求和技术规范的约束下充分发挥和施展。,解决途径,软件工程的定义,软件工程:是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。实质上,软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中去。IEEE:(Institute of Electrical and Electronics Engineers)软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件中的方法的研究。,软件工程三要素:方法、工具和过程,工具层:为软件工程方法提供了自动的或半自动的软件支撑环境。CASE:计算机辅助软件工程,将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。使用软件工程工具可以有效地改善软件开发过程,提高开发效率,降低开发成本,软件工程三要素:方法、工具和过程,方法层:提供了软件开发的各种方法。方法覆盖了一系列的任务,包括项目计划与估算方法、需求分析和设计的方法、编程、测试方法及维护方法等软件工程方法为软件开发提供了“如何做”的技术,过程层:是软件工程的基础。软件工程过程是为了获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。(具体实施),软件工程三要素:方法、工具和过程,软件工程过程定义了:方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑,软件工程项目的基本目标,付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用,软件开发项目力图在以上目标的冲取得一定程度的平衡。,结束,

    注意事项

    本文(软件工程一讲ppt课件.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开