欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件工程学幻灯片.ppt

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

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

    软件工程学幻灯片.ppt

    软件工程学软件工程学第1页,共50页,编辑于2022年,星期三总总目目录录第第1 1章章 软件工程学概述软件工程学概述第第2 2章章 系统分析系统分析第第3 3章章 需求分析需求分析第第4 4章章 软件设计方法软件设计方法第第5 5章章 用户界面设计用户界面设计第第6 6章章 编码编码第2页,共50页,编辑于2022年,星期三总总目目录录第第7 7章章 测试测试第第8 8章章 软件维护软件维护第第9 9章章 面向对象技术面向对象技术第第1010章章 软件质量管理软件质量管理第第1111章章 软件项目管理软件项目管理第3页,共50页,编辑于2022年,星期三第第1章章 软件工程学概述软件工程学概述1.1 1.1 什么是软件什么是软件1.2 1.2 软件危机软件危机1.3 1.3 软件工程软件工程1.4 1.4 软件生命周期软件生命周期1.5 1.5 软件过程软件过程第4页,共50页,编辑于2022年,星期三软件软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列数据数据是使程序能正常操纵信息的数据结构文档是与程序开发,维护和使用有关的图文材料是与程序开发,维护和使用有关的图文材料1.1 什么是软件第5页,共50页,编辑于2022年,星期三 软件是一种软件是一种逻辑实体,而不是具体的物理实体。因,而不是具体的物理实体。因而它具有抽象性而它具有抽象性 软件的生产与硬件不同,在它的开发过程中软件的生产与硬件不同,在它的开发过程中没有明显没有明显的制造过程的制造过程在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题1.1.1 软件的特点第6页,共50页,编辑于2022年,星期三软件的开发和运行常受到计算机系统的限软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性制,对计算机系统有着不同程度的依赖性软件的开发至今软件的开发至今尚未完全摆脱手工艺的开尚未完全摆脱手工艺的开发方式发方式软件本身是复杂的软件本身是复杂的 实际问题的复杂性实际问题的复杂性 程序逻辑结构的复杂性程序逻辑结构的复杂性 软件成本相当昂贵软件成本相当昂贵相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素第7页,共50页,编辑于2022年,星期三按软件的功能进行划分:系统软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等1.1.2软件的分类第8页,共50页,编辑于2022年,星期三 支撑软件文本编辑程序文件格式化程序磁盘向磁带向数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件第9页,共50页,编辑于2022年,星期三 应用软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件第10页,共50页,编辑于2022年,星期三按软件规模进行划分:类别 参加人员数 研制期限 源程序行数 微型微型 1 14周 0.5k 小型 1 16月 1k1k2k2k中型中型 25 12年 5k5k50k大型 5 52020 2 23年 50k100k甚大型 1001000 45 5年年 1M(=1000k)极大型极大型 20005000 510年 1M10M第11页,共50页,编辑于2022年,星期三按软件工作方式划分:实时处理软件 分时软件 交互式软件 批处理软件按软件服务对象的范围划分:项目软件 产品软件第12页,共50页,编辑于2022年,星期三通常把在计算机软件的开发与维护过程中所遇到的一系列通常把在计算机软件的开发与维护过程中所遇到的一系列通常把在计算机软件的开发与维护过程中所遇到的一系列通常把在计算机软件的开发与维护过程中所遇到的一系列严重问题笼统地称为软件危机。这些问题绝不仅仅是不能严重问题笼统地称为软件危机。这些问题绝不仅仅是不能严重问题笼统地称为软件危机。这些问题绝不仅仅是不能严重问题笼统地称为软件危机。这些问题绝不仅仅是不能正常,运行的软件才具有的。实际上,几乎所有软件都不正常,运行的软件才具有的。实际上,几乎所有软件都不正常,运行的软件才具有的。实际上,几乎所有软件都不正常,运行的软件才具有的。实际上,几乎所有软件都不同程度地存在这些问题。同程度地存在这些问题。同程度地存在这些问题。同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题:概括地说,软件危机包含下述两方面的问题:(1)(1)如何开发软件以满足社会对软件日益增长的需求;如何开发软件以满足社会对软件日益增长的需求;(2)(2)如何更有效地维护数量不断膨胀的已有软件。如何更有效地维护数量不断膨胀的已有软件。如何更有效地维护数量不断膨胀的已有软件。如何更有效地维护数量不断膨胀的已有软件。1.2.1 软件危机简介第13页,共50页,编辑于2022年,星期三具体地说,软件危机主要有以下一些典型表现:具体地说,软件危机主要有以下一些典型表现:(1)(1)对开发软件成本和进度的估计常常很不准确对开发软件成本和进度的估计常常很不准确(2)(2)经常出现用户对经常出现用户对“已完成的已完成的”软件产品不满意的情况软件产品不满意的情况(3)(3)软件产品的质量往往达不到要求软件产品的质量往往达不到要求(4)软件往往没有适当的文档资料软件往往没有适当的文档资料(5)软件成本在计算机系统总成本中所占的比例逐年上升软件成本在计算机系统总成本中所占的比例逐年上升(6)(6)软件开发生产率提高的速度远远不能满足社会对软件产品日益软件开发生产率提高的速度远远不能满足社会对软件产品日益软件开发生产率提高的速度远远不能满足社会对软件产品日益软件开发生产率提高的速度远远不能满足社会对软件产品日益增长的需求增长的需求增长的需求增长的需求鉴于软件危机周期长且难于预测,把它为鉴于软件危机周期长且难于预测,把它为鉴于软件危机周期长且难于预测,把它为鉴于软件危机周期长且难于预测,把它为“软件萧条软件萧条软件萧条软件萧条”或或或或“软件困扰软件困扰软件困扰软件困扰”可能更恰当一些。可能更恰当一些。可能更恰当一些。可能更恰当一些。第14页,共50页,编辑于2022年,星期三1.客观原因客观原因软件是计算机系统中的逻辑部件而不是物理部件,其显软件是计算机系统中的逻辑部件而不是物理部件,其显软件是计算机系统中的逻辑部件而不是物理部件,其显软件是计算机系统中的逻辑部件而不是物理部件,其显著特点是缺乏著特点是缺乏著特点是缺乏著特点是缺乏“可见性可见性可见性可见性”,因此,管理和控制软件开发过程,因此,管理和控制软件开发过程,因此,管理和控制软件开发过程,因此,管理和控制软件开发过程相当困难。此外,软件维护通常意味着改正或修改原有的设相当困难。此外,软件维护通常意味着改正或修改原有的设相当困难。此外,软件维护通常意味着改正或修改原有的设相当困难。此外,软件维护通常意味着改正或修改原有的设计,从而使得软件较难维护。计,从而使得软件较难维护。计,从而使得软件较难维护。计,从而使得软件较难维护。软件的另一个突出特点是规模庞大,而程序复杂性将随软件的另一个突出特点是规模庞大,而程序复杂性将随软件的另一个突出特点是规模庞大,而程序复杂性将随软件的另一个突出特点是规模庞大,而程序复杂性将随着程序规模增加以指数上升。软件可能具有的状态数通常都着程序规模增加以指数上升。软件可能具有的状态数通常都着程序规模增加以指数上升。软件可能具有的状态数通常都着程序规模增加以指数上升。软件可能具有的状态数通常都是天文数字,无法完全预见软件可能遇到的每一种情况。是天文数字,无法完全预见软件可能遇到的每一种情况。是天文数字,无法完全预见软件可能遇到的每一种情况。是天文数字,无法完全预见软件可能遇到的每一种情况。1.2.2 产生软件危机的原因第15页,共50页,编辑于2022年,星期三2.2.主观原因主观原因 在计算机系统发展的早期阶段开发软件的个体化在计算机系统发展的早期阶段开发软件的个体化特点,使得许多软件工程师对软件开发和维护有不少特点,使得许多软件工程师对软件开发和维护有不少糊涂认识,在实际工作中或多或少地采用了错误的方糊涂认识,在实际工作中或多或少地采用了错误的方法,这是使软件问题发展成软件危机的主要原因。法,这是使软件问题发展成软件危机的主要原因。错误的认识和做法主要表现为,忽视软件需求分错误的认识和做法主要表现为,忽视软件需求分析的重要性,认为软件开发就是写程序,轻视软件维析的重要性,认为软件开发就是写程序,轻视软件维护。护。事实上,对用户的需求没有完整准确的认识就匆事实上,对用户的需求没有完整准确的认识就匆忙着手编写程序,是许多软件开发工程师失败的主要忙着手编写程序,是许多软件开发工程师失败的主要原因之一。原因之一。第16页,共50页,编辑于2022年,星期三必须认识到,软件开发和维护要经历一个漫长的时期必须认识到,软件开发和维护要经历一个漫长的时期(称为软件生命周期),编写程序只是软件开发过程中的一(称为软件生命周期),编写程序只是软件开发过程中的一个相对来说比次要的阶段。个相对来说比次要的阶段。另一方面还必须认识到,程序只是完整的软件产品的另一方面还必须认识到,程序只是完整的软件产品的一个组成部分,一个软件产品必须由一个完整的配置组成。一个组成部分,一个软件产品必须由一个完整的配置组成。软件配置主要包括程序、文档和数据等部分。软件配置主要包括程序、文档和数据等部分。严酷的事实是,在软件开发的后期阶段引入一个变动比在严酷的事实是,在软件开发的后期阶段引入一个变动比在早期引如同一个变动所需付出的代价高早期引如同一个变动所需付出的代价高几百倍甚至上千倍几百倍甚至上千倍。所谓软件维护,就是在软件开发工作结束后,在使用现场对所谓软件维护,就是在软件开发工作结束后,在使用现场对软件进行修改,是极端艰巨复杂的工作,需要花费很大代价。软件进行修改,是极端艰巨复杂的工作,需要花费很大代价。由此可见,轻视软件维护是一个最大的错误。软件工程的一由此可见,轻视软件维护是一个最大的错误。软件工程的一个重要目标就上提高软件的可维护性,减少软件维护的代价。个重要目标就上提高软件的可维护性,减少软件维护的代价。第17页,共50页,编辑于2022年,星期三引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势第18页,共50页,编辑于2022年,星期三 首先应该树立对计算机软件的正确的认识。软件是首先应该树立对计算机软件的正确的认识。软件是首先应该树立对计算机软件的正确的认识。软件是首先应该树立对计算机软件的正确的认识。软件是程序、数据程序、数据及及及及文档文档文档文档的完整集合。其中,的完整集合。其中,的完整集合。其中,的完整集合。其中,程序程序是能够是能够完成预定功能和性能的可执行的指令序列;完成预定功能和性能的可执行的指令序列;数据数据是使程序能够适当地处理信息的数据结构;是使程序能够适当地处理信息的数据结构;文档文档文档文档是开发、使用和维护程序所需要的图文资料。是开发、使用和维护程序所需要的图文资料。1.2.3 消除软件危机的途径第19页,共50页,编辑于2022年,星期三软件开发应该是组织良好、管理严密、各类人员团软件开发应该是组织良好、管理严密、各类人员团软件开发应该是组织良好、管理严密、各类人员团软件开发应该是组织良好、管理严密、各类人员团结协作共同完成的工程项目。必须充分吸取和借鉴人类结协作共同完成的工程项目。必须充分吸取和借鉴人类结协作共同完成的工程项目。必须充分吸取和借鉴人类结协作共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、长期以来从事各种工程项目所积累的行之有效的原理、长期以来从事各种工程项目所积累的行之有效的原理、长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,并研究能更有效地开发软件的技术概念、技术和方法,并研究能更有效地开发软件的技术概念、技术和方法,并研究能更有效地开发软件的技术概念、技术和方法,并研究能更有效地开发软件的技术和方法。和方法。和方法。和方法。应该积极开发和使用计算机辅助软件工程(应该积极开发和使用计算机辅助软件工程(应该积极开发和使用计算机辅助软件工程(应该积极开发和使用计算机辅助软件工程(CASE)工具。工具。工具。工具。第20页,共50页,编辑于2022年,星期三总之,为了消除软件危机,既要有技术措施(方总之,为了消除软件危机,既要有技术措施(方总之,为了消除软件危机,既要有技术措施(方总之,为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程法和工具),又要有必要的组织管理措施。软件工程法和工具),又要有必要的组织管理措施。软件工程法和工具),又要有必要的组织管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护正是从技术和管理两方面研究如何更好地开发和维护正是从技术和管理两方面研究如何更好地开发和维护正是从技术和管理两方面研究如何更好地开发和维护软件的一门新兴的工程学科。软件的一门新兴的工程学科。软件的一门新兴的工程学科。软件的一门新兴的工程学科。第21页,共50页,编辑于2022年,星期三软件工程是指导计算机软件开发的维护的一门软件工程是指导计算机软件开发的维护的一门工程学科,该学科的目的是生产出能按期交付工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、满足用户需求的、质量的、在预算范围内的、满足用户需求的、质量合格的软件产品。合格的软件产品。1.3 软件工程 1.3.1 软件工程简介第22页,共50页,编辑于2022年,星期三软件工程具有下述本质特性:软件工程具有下述本质特性:软件工程关注于大型程序的构造。软件工程关注于大型程序的构造。软件工程的中心课题是控制复杂性。软件工程的中心课题是控制复杂性。软件工程的中心课题是控制复杂性。软件工程的中心课题是控制复杂性。软件产品交付使用后仍然需要经常修改。软件产品交付使用后仍然需要经常修改。开发软件的效率非常重要。开发软件的效率非常重要。开发人员和谐地合作是成功地开发软件的关键。开发人员和谐地合作是成功地开发软件的关键。开发人员和谐地合作是成功地开发软件的关键。开发人员和谐地合作是成功地开发软件的关键。软件必须有效地支持它的用户。软件必须有效地支持它的用户。软件必须有效地支持它的用户。软件必须有效地支持它的用户。在软件工程领域中通常由具有一种文化背景的人替具有在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。另一种文化背景的人创造产品。第23页,共50页,编辑于2022年,星期三用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理 坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审实行严格的产品控制实行严格的产品控制实行严格的产品控制实行严格的产品控制采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查 开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性1.3.2 软件工程的基本原理第24页,共50页,编辑于2022年,星期三软件工程软件工程方法方法方法方法为软件开发提供了为软件开发提供了“如何做如何做”的技术的技术软件软件工具工具工具工具为软件工程方法提供了自动的或半自动的软为软件工程方法提供了自动的或半自动的软件支撑环境件支撑环境 软件工程软件工程软件工程软件工程过程过程定义了:定义了:定义了:定义了:方法使用的顺序方法使用的顺序要求交付的文档资料要求交付的文档资料要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑1.3.3 软件工程方法学第25页,共50页,编辑于2022年,星期三概括地说,软件生命周期由概括地说,软件生命周期由软件定义、软件开发和运行软件定义、软件开发和运行维护(也称为软件维护)维护(也称为软件维护)3 3个时期组成,通常把两个时期个时期组成,通常把两个时期个时期组成,通常把两个时期个时期组成,通常把两个时期再进一步划分成若干个阶段。再进一步划分成若干个阶段。再进一步划分成若干个阶段。再进一步划分成若干个阶段。软件定义时期软件定义时期的基本任务是:确定软件开发工程的总目标;的基本任务是:确定软件开发工程的总目标;的基本任务是:确定软件开发工程的总目标;的基本任务是:确定软件开发工程的总目标;研究该项目的可行性;分析确定客户对软件产品的需求;估研究该项目的可行性;分析确定客户对软件产品的需求;估研究该项目的可行性;分析确定客户对软件产品的需求;估研究该项目的可行性;分析确定客户对软件产品的需求;估算完成该项目所需的资源和成本,并且制定工程进度表。这算完成该项目所需的资源和成本,并且制定工程进度表。这算完成该项目所需的资源和成本,并且制定工程进度表。这算完成该项目所需的资源和成本,并且制定工程进度表。这个时期的工作称为系统分析,由系统分析员负责完成。个时期的工作称为系统分析,由系统分析员负责完成。个时期的工作称为系统分析,由系统分析员负责完成。个时期的工作称为系统分析,由系统分析员负责完成。1.4 软件生命周期第26页,共50页,编辑于2022年,星期三通常把通常把通常把通常把软件定义软件定义软件定义软件定义时期进一步划分成时期进一步划分成问题定义问题定义、可行可行可行可行性研究性研究性研究性研究和和和和需求分析需求分析3 3个阶段。其中需求分析阶段应该完成个阶段。其中需求分析阶段应该完成个阶段。其中需求分析阶段应该完成个阶段。其中需求分析阶段应该完成的工作包括需求获取和需求分析两部分。揭示客户需求的工作包括需求获取和需求分析两部分。揭示客户需求的工作包括需求获取和需求分析两部分。揭示客户需求的工作包括需求获取和需求分析两部分。揭示客户需求的过程称为需求获取或需求收集;一旦确定了最初的一的过程称为需求获取或需求收集;一旦确定了最初的一的过程称为需求获取或需求收集;一旦确定了最初的一的过程称为需求获取或需求收集;一旦确定了最初的一系列需求,就应该进一步提炼和扩展这些需求,并用软系列需求,就应该进一步提炼和扩展这些需求,并用软系列需求,就应该进一步提炼和扩展这些需求,并用软系列需求,就应该进一步提炼和扩展这些需求,并用软件需求规格说明书把客户需求准确地记录下来,这个过件需求规格说明书把客户需求准确地记录下来,这个过件需求规格说明书把客户需求准确地记录下来,这个过件需求规格说明书把客户需求准确地记录下来,这个过程称为需求分析。程称为需求分析。程称为需求分析。程称为需求分析。第27页,共50页,编辑于2022年,星期三软件开发时期软件开发时期具体设计和实现在前一个时期定义的软具体设计和实现在前一个时期定义的软件,它通常由下述件,它通常由下述4 4个阶段组成:个阶段组成:总体设计(又称为结总体设计(又称为结构设计);详细设计;编码和单元测试;综合测试构设计);详细设计;编码和单元测试;综合测试。其中前两个阶段又称为其中前两个阶段又称为系统设计系统设计,后两个阶段又称为,后两个阶段又称为系系统实现统实现。第28页,共50页,编辑于2022年,星期三运行维护时期运行维护时期的主要任务是,通过对已交付使用的软件的主要任务是,通过对已交付使用的软件的主要任务是,通过对已交付使用的软件的主要任务是,通过对已交付使用的软件做必要修改,使软件持久地满足客户的需求。具体地说,当软做必要修改,使软件持久地满足客户的需求。具体地说,当软做必要修改,使软件持久地满足客户的需求。具体地说,当软做必要修改,使软件持久地满足客户的需求。具体地说,当软件在使用过程中发现错误时应该加以改正;当环境改变时应该件在使用过程中发现错误时应该加以改正;当环境改变时应该件在使用过程中发现错误时应该加以改正;当环境改变时应该件在使用过程中发现错误时应该加以改正;当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进或修改软件以适应新的环境;当用户有新要求时应该及时改进或修改软件以适应新的环境;当用户有新要求时应该及时改进或修改软件以适应新的环境;当用户有新要求时应该及时改进或扩充软件以满足用户的新需求。扩充软件以满足用户的新需求。扩充软件以满足用户的新需求。扩充软件以满足用户的新需求。通常对维护时期不再进一步通常对维护时期不再进一步通常对维护时期不再进一步通常对维护时期不再进一步划分阶段,但是每一个维护活动本质上都是一次压缩和简化划分阶段,但是每一个维护活动本质上都是一次压缩和简化划分阶段,但是每一个维护活动本质上都是一次压缩和简化划分阶段,但是每一个维护活动本质上都是一次压缩和简化了的定义和开发过程。了的定义和开发过程。了的定义和开发过程。了的定义和开发过程。第29页,共50页,编辑于2022年,星期三使用结构化范型开发软件时,软件生命周期各阶使用结构化范型开发软件时,软件生命周期各阶段中使用的概念及应完成的任务性质显著不同。需求段中使用的概念及应完成的任务性质显著不同。需求分析阶段的基本任务是确定软件必须分析阶段的基本任务是确定软件必须“做什么做什么”,使,使用的概念主要是用的概念主要是“功能功能功能功能”。设计阶段的任务是确定。设计阶段的任务是确定“怎样做怎样做”,其中结构设计的任务是把软件分解成不同,其中结构设计的任务是把软件分解成不同的模块,使用的概念是的模块,使用的概念是“模块模块模块模块”;详细设计的任务是设;详细设计的任务是设;详细设计的任务是设;详细设计的任务是设计实现每个模块所需要的数据结构和算法,使用的概念计实现每个模块所需要的数据结构和算法,使用的概念计实现每个模块所需要的数据结构和算法,使用的概念计实现每个模块所需要的数据结构和算法,使用的概念是是是是“数据结构数据结构数据结构数据结构”和和和和“算法算法算法算法”。第30页,共50页,编辑于2022年,星期三简单地说,软件生命周期各阶段的任务是:简单地说,软件生命周期各阶段的任务是:简单地说,软件生命周期各阶段的任务是:简单地说,软件生命周期各阶段的任务是:1.1.1.1.问题定义问题定义问题定义问题定义问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:“要解决的问题是要解决的问题是要解决的问题是要解决的问题是什么什么什么什么?”?”?”?”2.2.2.2.可行性研究可行性研究可行性研究可行性研究这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:“对于上一个阶段所确定对于上一个阶段所确定对于上一个阶段所确定对于上一个阶段所确定的问题有行得通的解决办法吗的问题有行得通的解决办法吗的问题有行得通的解决办法吗的问题有行得通的解决办法吗?”?”?”?”3.3.3.3.需求分析需求分析需求分析需求分析这个阶段的任务仍然不是具体地解决问题,而是准确地这个阶段的任务仍然不是具体地解决问题,而是准确地这个阶段的任务仍然不是具体地解决问题,而是准确地这个阶段的任务仍然不是具体地解决问题,而是准确地确定确定确定确定“为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么”,主要是,主要是,主要是,主要是确定目标系统必须具备哪些功能。确定目标系统必须具备哪些功能。确定目标系统必须具备哪些功能。确定目标系统必须具备哪些功能。第31页,共50页,编辑于2022年,星期三4.4.总体设计总体设计总体设计总体设计这个阶段必须回答的关键问题是:这个阶段必须回答的关键问题是:“概括地说,概括地说,应该怎样实现目标系统应该怎样实现目标系统?”?”总体设计又称为概要设计。总体设计又称为概要设计。总体设计又称为概要设计。总体设计又称为概要设计。5.5.详细设计详细设计详细设计详细设计总体设计阶段以比较抽象概括的方式提出了解决问总体设计阶段以比较抽象概括的方式提出了解决问总体设计阶段以比较抽象概括的方式提出了解决问总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的任务就是把解法具体化,也题的办法。详细设计阶段的任务就是把解法具体化,也题的办法。详细设计阶段的任务就是把解法具体化,也题的办法。详细设计阶段的任务就是把解法具体化,也就是回答下面这个关键问题:就是回答下面这个关键问题:就是回答下面这个关键问题:就是回答下面这个关键问题:“应该怎样具体地实现这应该怎样具体地实现这应该怎样具体地实现这应该怎样具体地实现这个系统呢个系统呢个系统呢个系统呢?”?”第32页,共50页,编辑于2022年,星期三7.7.7.7.综合测试综合测试综合测试综合测试这个阶段的关键任务是通过各种类型的测试这个阶段的关键任务是通过各种类型的测试(及相及相应的调试应的调试)使软件达到预定的要求。使软件达到预定的要求。6.6.6.6.编码和单元测试编码和单元测试这个阶段的关键任务是写出正确的容易理解、容易这个阶段的关键任务是写出正确的容易理解、容易这个阶段的关键任务是写出正确的容易理解、容易这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。维护的程序模块。维护的程序模块。维护的程序模块。8.8.8.8.软件维护软件维护维护阶段的关键任务是,通过各种必要的维护活动维护阶段的关键任务是,通过各种必要的维护活动维护阶段的关键任务是,通过各种必要的维护活动维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。使系统持久地满足用户的需要。使系统持久地满足用户的需要。使系统持久地满足用户的需要。第33页,共50页,编辑于2022年,星期三 软件过程定义了运行技术方法的顺序、应该交软件过程定义了运行技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里采取的管理措施,以及标志完成了相应开发活动的里程碑。程碑。通常使用生命周期模型概括地描述软件过程。生通常使用生命周期模型概括地描述软件过程。生命周期模型规定了软件过程包含的各个阶段,以及完命周期模型规定了软件过程包含的各个阶段,以及完成这些阶段的顺序。成这些阶段的顺序。1.5 软件过程第34页,共50页,编辑于2022年,星期三典型的生命周期模型如下所典型的生命周期模型如下所述述 :1.1.1.1.瀑布模型瀑布模型传统软件工程方法学的软件过传统软件工程方法学的软件过传统软件工程方法学的软件过传统软件工程方法学的软件过程,基本上可以用瀑布模型来程,基本上可以用瀑布模型来程,基本上可以用瀑布模型来程,基本上可以用瀑布模型来描述。描述。描述。描述。1.5.1 瀑布模型传统的瀑布模型传统的瀑布模型第35页,共50页,编辑于2022年,星期三实际的瀑布模型实际的瀑布模型第36页,共50页,编辑于2022年,星期三瀑布模型的主要瀑布模型的主要瀑布模型的主要瀑布模型的主要优点优点优点优点如下:如下:如下:如下:强迫开发人员采用规范的技术方法;强迫开发人员采用规范的技术方法;强迫开发人员采用规范的技术方法;强迫开发人员采用规范的技术方法;严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;每个阶段结束前必须正式进行严格的技术审查和管理复每个阶段结束前必须正式进行严格的技术审查和管理复每个阶段结束前必须正式进行严格的技术审查和管理复每个阶段结束前必须正式进行严格的技术审查和管理复审。审。审。审。瀑布模型的主要瀑布模型的主要瀑布模型的主要瀑布模型的主要缺点缺点缺点缺点是:是:是:是:在可运行的软件产品交付给用户之前,用户只能通过文在可运行的软件产品交付给用户之前,用户只能通过文在可运行的软件产品交付给用户之前,用户只能通过文在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。开发人员和用户之间缺乏档来了解未来的产品是什么样的。开发人员和用户之间缺乏档来了解未来的产品是什么样的。开发人员和用户之间缺乏档来了解未来的产品是什么样的。开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满有效的沟通,很可能导致最终开发出的软件产品不能真正满有效的沟通,很可能导致最终开发出的软件产品不能真正满有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。足用户的需求。足用户的需求。足用户的需求。第37页,共50页,编辑于2022年,星期三 1.5.2 快速原型模型所谓所谓所谓所谓“快速原型快速原型快速原型快速原型”,是快速建立起来的、可在计算机,是快速建立起来的、可在计算机,是快速建立起来的、可在计算机,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所上运行的程序,它所能完成的功能往往是最终的软件产品所上运行的程序,它所能完成的功能往往是最终的软件产品所上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。原型是软件开发人员与用户沟通的强能完成的功能的子集。原型是软件开发人员与用户沟通的强能完成的功能的子集。原型是软件开发人员与用户沟通的强能完成的功能的子集。原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实有力工具,因此有助于所开发出的软件产品满足用户的真实有力工具,因此有助于所开发出的软件产品满足用户的真实有力工具,因此有助于所开发出的软件产品满足用户的真实需求。需求。需求。需求。第38页,共50页,编辑于2022年,星期三快速原型模型快速原型模型第39页,共50页,编辑于2022年,星期三快速原型模型的主要快速原型模型的主要优点优点是:是:使用这种软件过程开发出的软件产品通常能满足使用这种软件过程开发出的软件产品通常能满足用户的真实需求;用户的真实需求;软件产品的开发过程基本上是线性顺序过程。软件产品的开发过程基本上是线性顺序过程。第40页,共50页,编辑于2022年,星期三1.5.3 增量模型(渐增模型)第41页,共50页,编辑于2022年,星期三风险更大的增量模型风险更大的增量模型第42页,共50页,编辑于2022年,星期三使用增量模型开发软件时,把软件产品作为一系列增使用增量模型开发软件时,把软件产品作为一系列增使用增量模型开发软件时,把软件产品作为一系列增使用增量模型开发软件时,把软件产品作为一系列增量构件来设计、编码、集成和测试。每个构件由若干个相量构件来设计、编码、集成和测试。每个构件由若干个相量构件来设计、编码、集成和测试。每个构件由若干个相量构件来设计、编码、集成和测试。每个构件由若干个相互协作的模块构成,并且能够完成相对独立的功能。互协作的模块构成,并且能够完成相对独立的功能。互协作的模块构成,并且能够完成相对独立的功能。互协作的模块构成,并且能够完成相对独立的功能。增量模型的主要增量模型的主要增量模型的主要增量模型的主要优点优点是:是:能在较短时间内向用户提交可完成部分工作的产能在较短时间内向用户提交可完成部分工作的产品;品;逐步增加产品功能,从而使用用户有较充裕的时间逐步增加产品功能,从而使用用户有较充裕的时间逐步增加产品功能,从而使用用户有较充裕的时间逐步增加产品功能,从而使用用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带学习和适应新产品,减少一个全新的软件给客户组织带学习和适应新产品,减少一个全新的软件给客户组织带学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。来的冲击。来的冲击。来的冲击。第43页,共50页,编辑于2022年,星期三为了使用增量模型成功地开发软件,软件工程师为了使用增量模型成功地开发软件,软件工程师必须有较高的技术水平,能够设计出开放的软件体系必须有较高的技术水平,能够设计出开放的软件体系结构。结构。尽量采用增量模型比采用其他生命周期模型需要尽量采用增量模型比采用其他生命周期模型需要更精心的设计,但在设计阶段多付出的劳动将在维护更精心的设计,但在设计阶段多付出的劳动将在维护阶段获得回报,因为用增量模型开发出的软件具有可阶段获得回报,因为用增量模型开发出的软件具有可扩充性。扩充性。第44页,共50页,编辑于2022年,星期三螺旋模型的基本思想是,使用原型及其他方法尽量螺旋模型的基本思想是,使用原型及其他方法尽量螺旋模型的基本思想是,使用原型及其他方法尽量螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。理解这种模型的一个简便方法,实际把它看降低风险。理解这种模型的一个简便方法,实际把它看降低风险。理解这种模型的一个简便方法,实际把它看降低风险。理解这种模型的一个简便方法,实际把它看作在每个阶段之前都增加了风险分析的快速原型模型。作在每个阶段之前都增加了风险分析的快速原型模型。作在每个阶段之前都增加了风险分析的快速原型模型。作在每个阶段之前都增加了风险分析的快速原型模型。1.5.4 螺旋模型第45页,共50页,编辑于2022年,星期三简化的螺旋模型简化的螺旋模型第46页,共50页,编辑于2022年,星期三完整的螺旋模型完整的螺旋模型螺旋模型螺旋模型所描述的所描述的软件过程软件过程主要适用主要适用于内部开于内部开发的大型发的大型软件项目软件项目第47页,共50页,编辑于2022年,星期三螺旋模型主要有下述螺旋模型主要有下述优点优点优点优点:有利于已有软件的重用;有利于已有软件的重用;有助于把软件质量作为软件开发的一个重要目标;有助于把软件质量作为软件开发的一个重要目标;有助于把软件质量作为软件开发的一个重要目标;有助于把软件质量作为软件开发的一个重要目标;减少了过多测试或测试不足所带来的风险;减少了过多测试或测试不足所带来的风险;软件维护与软件开发没有本质区别。软件维护与软件开发没有本质区别。使用螺旋模型开发软件,要求软件开发人员具有丰富的使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。风险评估知识和经验。第48页,共50页,编辑于2022年,星期三迭代是软件开发过程中普遍存在的一种内在属性。迭代是软件开发过程中普遍存在的一种内在属性。在面向对象范型中,软件开发过程各阶段之间的迭代在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。范型中更常见。喷泉模型是典型的面向对象生命周期模型,它充喷泉模型是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特分体现了面向对象软件开发过程迭代和平滑过渡的特性。性。1.5.5 喷泉模型第49页,共50页,编辑于2022年,星期三喷喷泉泉模模型型第50页,共50页,编辑于2022年,星期三

    注意事项

    本文(软件工程学幻灯片.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开