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

    816实用软件工程.ppt

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

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

    816实用软件工程.ppt

    软 件 工 程,软件工程 齐治昌高等教育出版社(1997),教 材,软 件 工 程,软件工程导论(第三版)张海藩 清华大学出版社(1997),参考书目,软 件 工 程,实用软件工程(第二版)郑人杰 殷人昆 陶永雷 清华大学出版社(1996),软件工程-实践者的研究方法(英文版 第四版)Roger S.Pressman 机械工业出版社,参考书目,参考书目,Fundamentals of Software Engineering Carlo Ghezzi,Mehdi Jazayeri,Dino Mandrioli Prentice-Hall,Inc.(1991),Software Engineering,Theory and Practice Shari Lawrence Pfleeger,Prentice-Hall,Inc.(1998),软件工程 近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门、生产部门、和服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分。展望二十一世纪,软件仍将成为驱动任何事情从基础教育到遗传工程取得新进展的动力。学习研究工程化的软件开发方法,使开发过程更加规范。,什么是软件 软件的分类 软件的发展 软件危机 软件生存期 软件工程 软件工程的目的和要求,软件工程,软件是与计算机系统操作有关的程序、规程、规则及任何与之相关的文档及数据。程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据及其结构文档是与程序开发,维护和使用有关的图文材料,什么是软件?,软件的特点,软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性软件的生产与硬件不同,在它的开发过程中没有明显的制造过程在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工的开发方式软件本身是复杂的实际问题的复杂性程序逻辑结构的复杂性 软件成本相当昂贵相当多的软件工作涉及到社会因素,软件的分类,按软件的功能进行划分:系统软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等,支撑软件文本编辑程序文件格式化程序磁盘向磁带向数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件,应用软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件,按软件规模进行划分:类别 参加人员数 研制期限 源程序行数 微型 1 14周 0.5k 小型 1 16月 1k2k中型 25 12年 5k50k大型 520 23年 50k100k甚大型 1001000 45年 1M(=1000k)极大型 20005000 510年 1M10M,按软件工作方式划分:实时处理软件 分时软件 交互式软件 批处理软件按软件服务对象的范围划分:项目软件 产品软件,按使用的频度进行划分:一次使用 频繁使用按软件失效的影响进行划分:高可靠性软件 一般可靠性软件,软件发展阶段,程序设计阶段 50至60年代为具体运用专门编写小规模的程序程序系统阶段 60至70年代软件作坊的出现沿用个体软件开发方法使得软件不可维护出现软件危机软件工程阶段 70年代以后70年代中期80年代分布式系统、计算机网络、嵌入式系统发展80年代末开始面向对象、专家系统、人工智能的应用,软件危机(Software Crisis),表现-对软件开发成本和进度的估算很不准确-用户对“已完成”软件系统不满意的现象经常发生 开发人员与用户交流不充分-质量不可靠 缺乏质量保证技术(审查、复审和测试)-软件常常是不可维护的-没有适当的文档资料-软件成本比重逐年上升-供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,原因-用户需求描述不准确-理解问题-管理人员缺乏经验-开发人员的疏漏-缺乏方法学支持-软件本身的特殊性和人类的智力障碍解决软件危机的途径-技术措施(方法和工具)-组织管理措施,例:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.,这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,.谁也没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,Software Crisis!,项目没有被很好地理解;计划不周,最终导致进度拖延。,例1.In the late 1960s,a bright-eyed young engineer*was chosen to“write”a computer program for an automated manufacturing application.The reason for his selection was simple.He was the only person in his technical group who had attended a computer programming seminar.He knew the ins and outs of assembler language and Fortran,but nothing about software engineering and even less about project scheduling and tracking.*If youre wondering whether this story is autobiographical,it is!,问题出在哪里?,His boss gave him the appropriate manuals and a verbal description of what had to be done.He was informed that the project must be completed in two months.He read the manuals,considered his approach,and began writing code.After two weeks,the boss called him into his office and asked how things were going.“Really great,”said the young engineer with youthful enthusiasm,“This was much simpler than I thought.Im probably close to 75 percent finished.”The boss smiled.“Thats really terrific,”he said.He then told the young engineer to keep up the good work and plan to meet again in a weeks time.,A week later the boss called the engineer into his office and asked,“Where are we?”“Everythings going well,”said the youngster,“but Ive run into a few small snags.Ill get them ironed out and be back on track soon.”“How does the deadline look?”the boss asked.“No problem,”said the engineer.“Im close to 90 percent complete.”If youve been working in the software world for more than a few years,you can finish the story.Itll come as no surprise that the young engineer stayed 90 percent complete for the entire project duration and only finished(with the help of others)one month late.,例2:In the early 1980s,the United States Internal Revenue Service(IRS)hired Sperry Corporation to build an automated federal income tax form processing system.According to the Washington Post,the“system has proved inadequate to the workload,cost nearly twice what was expected and must be replaced soon”(Sawyer 1985).In 1985,an extra$90 million was needed to enhance the original$103 million worth of Sperry equipment.In addition,because the problem prevented the IRS from returning refunds to taxpayers by the deadline,the IRS was forced to pay$40.2 million in interest and$22.3 million in overtime wages for its employees who were trying to catch up.,In 1996,the situation had not improved.The Los Angeles Times reported on March 29 that there was still no master plan for the modernization of IRS computers,only a six-thousand-page technical document.Congressman Jim Lightfoot called the project“a$4-billion fiasco that is floundering because of inadequate planning”(Vartabedian 1996).,Myth:If we get behind schedule,we can add more programmers and catch up.Reality:Software development is not a mechanistic process like manufacturing.In the words of Brooks,“adding people to a late software project makes it later.”,没有充分的文档资料(documentation)Myth:The only deliverable for a successful project is the working program.Reality:A working program is only one part of a software configuration that includes programs,documents,and data.Documentation forms the foundation for successful development and,more important,provides guidance for the software maintenance task.,VITAL!,人与人的交流比写程序困难得多。,Managers evaluate,track progress,.Programmers communicate to each otherMaintainers,软件可靠性(reliability)缺少度量的标准,质量无法保证。如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件,如:.,The software supporting the American space shuttle consists of 3 million lines of code,including computers on the ground controlling the launch and the flight;there were one hundred thousand lines of code in the shuttle itself in 1985.President Reagans proposed Strategic Defense Initiative(SDI)is estimated to require 10 to 100 million lines of code.Many computer scientists and software engineers continue to believe there is no way to write and test the software to guarantee adequate reliability.,软件难以维护(maintainability)不易升级(evolvability),Myth:Once we write the program and get it to work,our job is done.Reality:Someone once said that“the sooner you begin writing code,the longer itll take you to get done.”Industry data indicate that between 50 and 70 percent of all effort expended on a program will be expended after it is delivered to the customer for the first time.,Better management Different team organizations Better languages&tools Uniform coding conventions 必须意识到:“软件”编程,它有自己的生命周期(life cycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。,“软件工程”(Software Engineering)NATO Conference,Garmisch,Germany,1968.,解决问题的想法:,软件工程过程,软件规格说明:规定软件的功能及其运行的限制软件开发:产生满足规格说明的软件软件确认:确认软件能够完成客户提出的要求软件演进:为满足客户的变更要求,软件必须在使用的过程中演进,软件工程过程的特性,易理解性可见性可支持性可接受性,可靠性健壮性可维护性速度,软件生存期 life cycle,软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护,瀑布模型,RETURN,制定计划,确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源(硬件,软件,人力等)、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,需求分析和定义,对用户提出的要求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审,软件设计,概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书,提交评审。,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的,软件测试,单元测试,查找各模块在功能和结构上存在的问题并加以纠正组装测试,将已测试过的模块按一定顺序组装起来按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护 运行中发现了软件中的错误需要修正适应性维护 为了适应变化了的软件工作环境,需做适当变更完善性维护 为了增强软件的功能需做变更,软件生存期模型,软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架 瀑布模型 演化模型 螺旋模型 喷泉模型 智能模型,演化模型,由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求第二次则在此基础上获得较为满意的软件产品,螺旋模型,螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发的限制风险分析分析所选方案,考虑如何识别和消除风险实施工程实施软件开发客户评估评价开发工作,提出修正建议,喷泉模型,对象驱动迭代 重复 演进无间隙 各阶段间无明显界限,软件工程的定义,Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料IEEE:软件工程是开发、运行、维护和修复软件的系统方法Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法,软件工程三要素:方法、工具和过程,软件工程方法为软件开发提供了“如何做”的技术软件工具为软件工程方法提供了自动的或半自动的软件支撑环境,软件工程过程定义了:方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑,软件工程项目的基本目标,付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开