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

    软件工程PPT课件第1章软件工程学概述.ppt

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

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

    软件工程PPT课件第1章软件工程学概述.ppt

    软件工程,软件工程导论,课 名:软件工程,教材:软件工程导论(第四版)张海藩 清华大学出版社(2003)参考教材:1 计算机软件工程规范国家标准汇编(2000)2 软件工程实践者的研究方法 3 软件工程Java语言实现教学方式:授课、大作业 课时:1818,软 件 工 程,实用软件工程(第二版)郑人杰 殷人昆 陶永雷 清华大学出版社(1996),软件工程-实践者的研究方法(英文版 第四版)Roger S.Pressman 机械工业出版社,参考书目,第一章 软件工程学概述,Late 1950s:,1.软件危机(Software Crisis),In the early days:“Software”=“Place a sequence of instructions together to get the computer to do something useful”.User Computer,Computer became cheaper and more commonHigh level languages were invented,Programmer,User,Computer,1.软件危机,Early 1960s:Very few large software projects were done by some experts.,Middle to late 1960s:Truly large software systems were attempted.例:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.,1.软件危机,这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,.谁也没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,Software Crisis!,1.软件危机,项目没有被很好地理解;计划不周,最终导致进度拖延。,例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!,问题出在哪里?,1.软件危机,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.,1.软件危机,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.,1.软件危机,没有充分的文档资料(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,1.软件危机,软件可靠性(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.Many computer scientists and software engineers continue to believe there is no way to write and test the software to guarantee adequate reliability.,1.软件危机,软件难以维护(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.,1.软件危机,Better management Different team organizations Better languages&tools Uniform coding conventions 必须意识到:“软件”编程,它有自己的生命周期(life cycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。,解决问题的想法:,1.2 软件工程,1.2.1软件工程发展历史“软件工程”(Software Engineering)术语首次出现:1968年NATO会议,软件工程方法:是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。,Evolution of software,早期 自定义软件用户自己开发、自己使用、自己维护,1950,1960,Evolution of software,早期 第二阶段 多用户 实时自定义软件 数据库 软件产品,1950,1960,1970,1980,Evolution of software,早期 第二阶段 第三阶段 多用户 分布式系统 实时 嵌入“智能”自定义软件 数据库 低成本硬件 软件产品 消费者的影响,1950,1960,1970,1980,1990,Evolution of software,早期 第二阶段 第三阶段 第四阶段 多用户 分布式系统 强大的桌面系统 实时 嵌入“智能”面向对象技术自定义软件 数据库 低成本硬件 专家系统 软件产品 消费者的影响 人工神经网络 批处理 并行计算 网格计算,1950,1960,1970,1980,1990,2000,软件的特点,软件具有与硬件不同的特点:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。软件是由开发或工程化而形成的,而不是传统意义上的制造产生的;在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。大多数软件是自定义的,而不是通过已有构件组装的。软件的开发至今尚未完全摆脱手工艺的开发方式。维护不同。,软件的分类,如果按软件规模进行划分:,计算机软件发展的三个时期及其特点,软件构件,软件构件要求:标准构件(components)可复用性(Reusability)集成化软件开发环境(ISEE),应用系统,软件生产过程,软件生产过程,应用构件提取车间,应用构件库,领域 1,领域 2,应用系统,软件生产过程,应用构件提取车间,应用构件库,构件生产车间,领域 1,领域 2,应用系统,1,2,3,4,1基础构件,2功能构件 3接口构件,4用户界面构件,软件生产过程,应用构件提取车间,应用构件库,构件生产车间,构件库,组装车间,领域 1,领域 2,应用系统,.,1,2,3,4,1基础构件,2功能构件 3接口构件,4用户界面构件,软件技术面临的问题:,软件复杂性 例:1 Windows95程序超过1000万行 2 WWMCCS(军事和控制)花费3500多人拖了几年,交付后发现出100个错误。最后失败。3 城市银行出纳机程序7.8万行,150人年 软件生产率 OO技术(软件IC),软件危机的主要特征,软件开发周期大大超过规定日期;软件系统开发成本高,周期长,质量差,满足不了市场需求;软件质量无保证软件系统开发人员数量少,质量低软件系统维护难度大供不应求:软件开发生产率跟不上计算机应用的迅速发展 软件的版权问题得不到保证,对软件开发成本和进度的估计常常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。用户对“已完成的”软件系统不满意的现象经常发生。软件开发人员常常在对用户要求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就匆忙着手编写程序。,软件危机的典型表现,软件产品的质量往往靠不住。软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。软件常常是不可维护的。很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。,软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。软件开发组织的管理人员可以使用这些文档资料作为“里程碑”,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息;对于软件维护人员而言,这些文档资料更是必不可少的。,软件成本在计算机系统总成本中所占的比例逐年上升。由于微电子学技术的进步和生产自动化程度不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升。美国在1985年软件成本大约已占计算机系统总成本的90%。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。,硬件/软件成本变化趋势,软件技术进步落后于需求增长,严重的问题是,在软件开发的不同阶段进行修改需要付出的代价是很不相同的。,引入同一变动付出的代价随时间变化的趋势,改正一个问题需付出的代价,需求分析,结构设计,详细设计,编码,集成测试,系统测试,现场,改正一个问题的估计费用,改正一个问题估计的工作量,20,200,2000,1000,5.0,2.5,0.05,0.5,(美元),(人天),yet,Success Hasnt Come Easily,31%,53%,16%,Successfully(成功),Challenged(异议),Canceled(失败),成功的标准:,用户在使用用户使用软件很容易做完要做的事 失败的根本原因:开发人员写出的软件达不到用户要求:人的能力问题.当前技术发展问题 系统平台问题,中国软件产业:挑战与机遇,挑战:外国软件打入 软件侵权行为 软件开发投资力度不足 软件人才结构不合理,缺乏高级系统程序员和项目负责人。软件人员缺乏软件工程化的概念。,软件工程(software engineering),软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。软件工程为了经济地获得可靠的和能在实际机器上高效运行的软件而建立合使用的好的工程原则。,软件工程 一种层次化技术,工具,方法,过程,质量焦点,Software engineering layers,软件工程 一种层次化技术,质量焦点:支持软件工程的根基就在于对质量的关注。过程:软件工程的过程将技术层结合在一起,使计算机软件合理和及时开发出来。方法:涵盖一系列的任务:需求分析、设计、编程、测试和维护。工具:对过程、方法提供自动或半自动的支持。例CASE集成软件、硬件或一个软件工程数据库。,软件工程是一门交叉学科,软件开发模型软件开发方法 软件立项到终止的全过程 软件开发工具 软件开发环境 计算机辅助软件工程(CASE)软件工程管理 软件工程经济学,?,软件工程的主要研究内容,软件工程项目的基本目标,组织实施软件工程项目,从技术上和管理上采取了多项措施以后,最终希望得到项目的成功。所谓成功指的是达到以下几个主要的目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。,软件工程框架,可,用,性,性,性,确,正,合,算,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视软件工程的管理,基本过程,原则,目标,过,程,支持过程,组织过程,“软件工程”课程的教学与实践,(1)立足于系统的整体。(2)讲授系统分析、系统需求、系统设计、系统实现、系统测试及维护的理论和方法。(3)运用所学软件和技术构筑一理想的系统。,与其他软件专业课的区别:,“软件工程”课程的教学与实践,对软件的认识:上升 程序 系统 思维定式:上升 程序员 系统工程师(系统分析员),系统分析员的地位,用户,分析员,程序员,“一个好的工业,应有一套良好的标准来配套”,软件的工业化生产过程应具备的特点:明确的工作步骤详细具体的规范化文档明确的质量评价标准,软件工程技术的两个明显特点:,强调规范化 强调文档化,软件工程目标之间的关系,软件工程的原则,(分解和)抽象:抽取事物最基本的特性和行为,忽略非基本的细节。采用分层次抽象,自顶向下、逐层分解的办法控制软件开发过程的复杂性。例如,软件瀑布模型、结构化分析方法、结构化设计方法,以及面向对象建模技术等都体现了抽象的原则。,信息隐蔽:将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。使用者只能通过模块接口访问模块中封装的数据。模块化:模块是程序中逻辑上相对独立的成分,是独立的编程单位,应有良好的接口定义。如C语言程序中的函数过程,C+语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。,局部化:要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于加强模块的独立性,控制解的复杂性。确定性:软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。这有助于人们之间在交流时不会产生误解、遗漏,保证整个开发工作协调一致。,一致性:整个软件系统(包括程序、文档和数据)的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。完备性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。,可验证性:开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。,软件工程方法学包含3个要素:方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学:传统方法学面向对象方法学,两种程序设计方法,程序设计的两次飞跃结构化程序设计程序=数据结构+算法面向对象程序设计程序=对象+消息,两类软件工程方法,传统软件工程软件分析 总体设计 详细设计 面向过程的编码 测试 面向对象软件工程软件分析与对象抽取 对象详细设计 面向对象的编码 测试,1.用分阶段的生命周期计划严格管理经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的。应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。,软件工程的7条基本原理,2.坚持进行阶段评审软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,根据统计,设计错误占软件错误的63%,编码错误仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。,3.实行严格的产品控制在软件开发过程中改变需求是难免的,只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称为基线配置,它们是经过阶段评审后的软件配置成分。基准配置管理也称为变动控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件,就随意进行修改。,4.采用现代程序设计技术从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术,并进一步研究各种先进的软件开发与维护技术。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。,5.结果应能清楚地审查软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。,6.开发小组的人员应该少而精软件开发小组的组成人员的素质应该好,而人数则不宜过多。素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。当开发小组人员数为N时,可能的通信路径有N(N-1)/2条,可见随着人数N的增大,通信开销将急剧增加。,7.承认不断改进软件工程实践的必要性遵循上述6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅有上述6条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,能跟上技术的不断进步。因此,Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第7条基本原理。按照这条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。,1.3 软件生存周期,软件生存周期(Software Life Cycle)软件产品或软件系统从提出、设计、投入使用到被淘汰的全过程。,软件系统开发方法,结构化开发方法(瀑布模型)快速原型方法面向对象开发方法方法,1 软件工程和软件生命周期,为什么称为软件生命周期?,软件生命周期,人的生命周期,费用,效益,费用,贡献,2软件生存期的步骤,(1)制定计划(2)需求分析和定义(3)软件设计(4)程序编写(5)软件测试(6)运行/维护,软件生存期的阶段划分,(国标计算机软件开发规范)(1)可行性研究与计划(2)需求分析(3)总体设计 上游(4)详细设计(5)实现(6)集成测试(7)确认测试 下游(8)使用和维护,只考虑编写程序,涉及整个软件生存周期,扩展到,软件工作的范围,1.4 软件过程,软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件过程模型也常称为:软件开发模型 软件生存期模型 软件工程范型,软件生存期模型可归结为三大类,瀑布模型 原型模型 OO模型面向对象开发模型构件集成模型(component integration model),1.瀑布模型(线形顺序模型),可行性研究与计划,需求分析,设计,编码,运行维护,测试,定义阶段,开发阶段,维护阶段,1.问题定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”如果不知道问题是什么就试图解决这个问题,显然是盲目的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。,2.可行性研究这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程,也就是在较抽象的高层次上进行的分析和设计过程。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究的结果是使用部门负责人作出是否继续进行这项工程的决定的重要依据。可行性研究以后的那些阶段将需要投入更多的人力物力。及时终止不值得投资的工程项目,可以避免更大的浪费。,3.需求分析这个阶段的任务仍然不是具体解决问题,而是确定“为了解决这个问题,目标系统必须做什么?”,主要是确定目标系统必须具备哪些功能。系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示。在需求分析阶段确定的系统逻辑模型是以后设计和实现系统的基础。这个阶段的一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书(specification)。,4.总体设计这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。首先,应该设计出实现目标系统的几种可能的方案。通常至少应该设计出低成本、中等成本和高成本等3种方案。软件工程师在充分权衡各种方案的利弊的基础上,推荐一个最佳方案。制定出实现最佳方案的详细计划。一个程序应该由若干个规模适中的模块按合理的层次结构组织而成。总体设计的另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。,5.详细设计详细设计阶段的任务就是把解法具体化,也就是回答这个关键问题:“应该怎样具体地实现这个系统呢?”这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明应该包含必要的细节,程序员可以根据它们写出实际的程序代码。详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。,6.编码和单元测试这个阶段的关键任务是写出正确的、容易理解、容易维护的程序模块。程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。,7.综合测试这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测试是集成测试和验收测试。所谓集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试则是按照规格说明书的规定,由用户对目标系统进行验收。必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。,8.软件维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有4类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。每一项维护活动都实质上是经历了一次压缩和简化了的软件定义和开发的全过程。,按照传统瀑布模型开发软件的特点,1)阶段间具有顺序性和依赖性。必须等前一阶段的工作完成之后,才能开始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。2)推迟实现的观点。对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不扎实,过早地考虑进行程序实现,往往带来灾难性后果。3)每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,以便尽早发现问题,及早改正错误。,2.原型模型,又称快速成型模型一般用于最终系统的早期用户评价开发工期短,质量有保证,原型范型,听取用户意见,建造/修改 原型,用户测试运行原型,原型化软件生存期模型,系统需求分析定义,生成原型,系统设计,程序设计,编码,测试,运 行和维护,原型化,含原型化的软件生存期,3.演化模型,针对事先不能完整定义需求的软件开发,演化模型开发过程,(1)根据用户给出的待开发系统的核心需求,先开发出核心系统。(2)用户试用后,提出精化系统、增强系统能力的需求,开发人员实施开发的迭代过程。,需求,设计,需求,编码,测试,集成,运行、试用,核心系统开发,设计,需求,编码,测试,集成,运行、试用,第二次迭代,反馈,反馈,演化模型,4.螺旋模型,风险评估分析,设计开发验证,确定目标方案,阶段客户评估,螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,5.增量模型(递增模型、增殖模型),先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求。系统的总体设计在初始子集设计阶段就应作出设想。,分析,增量模型,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,增量1,增量2,增量3,增量4,交付的增量1,交付的增量2,交付的增量3,交付的增量4,日历时间,6.喷泉模型,演化,分析,设计,实现,确认,维护,喷泉模型特点,主要用于支持面向对象开发过程体现了软件创建所固有的迭代和无间隙的特征,8.可重用部件组装模型,使用重用技术的软件工程模型部件(构件):可重用的软件成份,可重用部件组装模型,系统A的软件构成,系统C的软件构成,系统B的软件构成,可重用部 件,可重用 部 件,构件集成模型,1.5 软件开发方法,软件开发过程所遵循的方法和步骤开发过程一般包括:需求、设计、实现、确认等活动主要针对需求和设计的典型方法:结构化方法(SASD)面向数据结构方法(JSD)面向对象方法(OO)软件分析与对象抽取 对象详细设计 面向对象的编码 测试,软件开发模型小结,软件开发模型是不断发展的各种软件开发模型各有优缺点选用时不必拘泥与某种模型可组合多种模型也可根据实际创建新的模型,CASE工具,计算机辅助软件工程(Computer Aided Software Engineering)项目管理工具需求分析工具编程环境软件测试工具,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开