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

    第1章 软件工程基础14319.pptx

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

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

    第1章 软件工程基础14319.pptx

    第一章第一章 软件工程基础软件工程基础 主要内容n计算机系统工程计算机系统工程 n软件工程软件工程 n软件生存期模型软件生存期模型 n软件开发方法软件开发方法 n软件工程环境软件工程环境 软件与计算机的系统要素之间的关系软件与计算机的系统要素之间的关系n大多数软件系统都是为了开发满足某种需求大多数软件系统都是为了开发满足某种需求而建立。这些软件必须要而建立。这些软件必须要计算机系统的支持。的支持。n不论系统的自动化程度有多高,都需要不论系统的自动化程度有多高,都需要人人的的参与。任何系统都必须配备参与。任何系统都必须配备使用手册使用手册及必要及必要的表格和其他文档。在网络时代的应用系统的表格和其他文档。在网络时代的应用系统中,绝大多数应用系统都离不开中,绝大多数应用系统都离不开数据库数据库和和网网络络这样的基础设施。如图这样的基础设施。如图1.11.1所示。所示。过程输出输入文档硬件软件人系统系统数据库、网络图1.1 基于计算机的系统要素 1.11.1计算机系统工程计算机系统工程 n计算机系统工程:与构造基于计算机系统有关的过:与构造基于计算机系统有关的过程、方法和技术。程、方法和技术。n一种问题求解活动,目的是揭示与分析所期望的功一种问题求解活动,目的是揭示与分析所期望的功能,并把这些功能分配到系统的各个独立系统元素能,并把这些功能分配到系统的各个独立系统元素中去。中去。n计算机系统工程师与用户充分合作,以确认用户的计算机系统工程师与用户充分合作,以确认用户的目标与约束。目标与约束。1.1.11.1.1硬件与硬件工程硬件与硬件工程 n计算机系统工程师根据系统需求为硬件系统计算机系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。指派任务,产生硬件需求。n硬件工程师根据硬件需求设计、制造或选择硬件工程师根据硬件需求设计、制造或选择硬部件或设备。硬部件或设备。n硬件工程过程分为三个阶段,即计划和定义硬件工程过程分为三个阶段,即计划和定义阶段;设计和样机实现阶段;生产、销售和阶段;设计和样机实现阶段;生产、销售和售后服务阶段。售后服务阶段。硬件功能开发计划评审详细需求分析评审成本进度硬件规格说明(a)计划与定义阶段 该阶段的任务是制订开发计划,确定项目成本预算和该阶段的任务是制订开发计划,确定项目成本预算和工程进度,并进行详细需求分析,确定硬件规格说明。工程进度,并进行详细需求分析,确定硬件规格说明。设计图纸设计图纸样机设 计 分析评审建立样机与测试评审生产分析(b)设计与样机实现阶段 该阶段的任务是分析设计,画出设计图,必要时建造原该阶段的任务是分析设计,画出设计图,必要时建造原型对样机进行测试,最后进行制造分析,画出生产图型对样机进行测试,最后进行制造分析,画出生产图。产品备件制造质 量 保证销售评审返工维护机构(c)制造、销售与售后服务阶段该阶段的任务是按照质量保证计划和要求生产硬件产品。该阶段的任务是按照质量保证计划和要求生产硬件产品。1.1.21.1.2软件与软件工程软件与软件工程 n计算机软件:软件工程师设计和建造的产品。:软件工程师设计和建造的产品。包括:包括:可执行的程序可执行的程序+开发各阶段文档开发各阶段文档+各种数据。各种数据。n软件工程是研究软件生产和软件管理的工程科学。是研究软件生产和软件管理的工程科学。内容包括:内容包括:市场调研、正式立项、需求分析、项目策划、市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护和版本升级等。户培训、产品复制、销售、实施、系统维护和版本升级等。n软件工程模型一般包括:软件项目的定义阶段、软软件工程模型一般包括:软件项目的定义阶段、软件开发阶段、软件的检验、交付与维护阶段件开发阶段、软件的检验、交付与维护阶段。原型(a)定义阶段软件项目计划评审需求分析或原型评审项目计划需求规格说明软件功能原型数据与结构设计评审过程设计评审程序编码评审详细设计规格说明概要设计规格说明源程序代码(b)开发阶段操作过程(c)检验、交付与维护阶段(运行维护阶段)单元测试组装测试确认测试调试交付与销售评审维护评审用户文档测试计划测试过程测试结果修改的源程序代码因缺陷可能导致返回到前面步骤修改的文档代码1.1.31.1.3人机工程人机工程 n关键是处理软件与人的交互问题。关键是处理软件与人的交互问题。n现在现在“人机界面友好人机界面友好”的要求,已成为基于计算机系的要求,已成为基于计算机系统的一项重要技术指标统的一项重要技术指标。n人机工程包括下列步骤:1.1.创建系统功能的外部模型创建系统功能的外部模型 2.2.确定为完成此系统功能人和计算机应分别完成的任务确定为完成此系统功能人和计算机应分别完成的任务 3.3.考虑界面设计中的典型问题考虑界面设计中的典型问题 4.4.借助借助CASECASE工具构造界面原型和最终实现设计模型工具构造界面原型和最终实现设计模型 5.5.从质量的角度对界面进行评估从质量的角度对界面进行评估 1.1.41.1.4数据库工程数据库工程 n数据库系统是基于计算机系统的重要组成部分,数据库系统是基于计算机系统的重要组成部分,它将有关的硬件、软件、数据和数据库管理人它将有关的硬件、软件、数据和数据库管理人员结合起来,为用户提供信息服务。员结合起来,为用户提供信息服务。n数据库系统的开发方法主要有:结构化生命周数据库系统的开发方法主要有:结构化生命周期开发方法、原型法、面向对象的开发方法等。期开发方法、原型法、面向对象的开发方法等。数据库工程的任务数据库工程的任务n数据库工程应完成下列任务:1.1.确定系统的各项指标并进行评估和计划制定确定系统的各项指标并进行评估和计划制定 2.2.论证、选择和配置数据库系统论证、选择和配置数据库系统 3.3.数据库设计与实现数据库设计与实现 概念设计(概念设计(E-RE-R图)、逻辑设计、物理设计图)、逻辑设计、物理设计4.4.数据库的管理与维护数据库的管理与维护 1.1.51.1.5网络工程网络工程 n网络工程是研究网络系统的规划、设计与网络工程是研究网络系统的规划、设计与管理的工程科学,要求工程技术人员根据管理的工程科学,要求工程技术人员根据既定的目标,严格依照行业规范,制定网既定的目标,严格依照行业规范,制定网络建设的方案,协助工程招投标、设计、络建设的方案,协助工程招投标、设计、实施、管理与维护等活动。实施、管理与维护等活动。网络工程的任务网络工程的任务n网络工程应该完成以下任务:网络工程应该完成以下任务:1.1.需求分析需求分析。2.2.总体设计分析,总体设计分析,确定该网络的服务类型,进而确定该网络的服务类型,进而确定系统建设的具体目标以及系统构件拓扑结确定系统建设的具体目标以及系统构件拓扑结构等。构等。3.实施,即实施,即选择合适的设备,按设计方案实现网选择合适的设备,按设计方案实现网络建设。络建设。4.验收与维护验收与维护。1.21.2软件工程软件工程 n1.2.1软件软件n1.1.软件定义软件定义 (1)(1)在在运运行行中中能能提提供供所所希希望望的的功功能能和和性性能的指令集(即程序);能的指令集(即程序);(2)(2)使程序能够正确运行的数据结构;使程序能够正确运行的数据结构;(3)(3)描描述述程程序序研研制制过过程程、方方法法所所用用的的文文档。档。2.2.软件的特点软件的特点 n软件是一种逻辑实体,不是具体的物理实体,具有软件是一种逻辑实体,不是具体的物理实体,具有抽象性。抽象性。n软件是通过人们的智力活动,把知识与技术转化成软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。信息的一种产品,是在研制、开发中被创造出来的。n在软件的运行和使用期间,没有硬件那样的机械磨在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。损、老化问题。软件存在故障(错误)的原因软件存在故障(错误)的原因n软件的开发和运行经常受到计算机硬件系统的软件的开发和运行经常受到计算机硬件系统的限制,软件对计算机硬件系统有着不同程度的限制,软件对计算机硬件系统有着不同程度的依赖关系。依赖关系。n软件的开发尚未完全摆脱手工的开发方式。软件的开发尚未完全摆脱手工的开发方式。n软件的开发费用越来越高,成本相当昂贵。软件的开发费用越来越高,成本相当昂贵。n软件的开发是一个复杂的过程,管理是软件开软件的开发是一个复杂的过程,管理是软件开发过程中必不可少內容。发过程中必不可少內容。1.2.21.2.2软件工程的概念软件工程的概念 软件发展的四个阶段1.1950s1960s中:规模较小的程序,个体化的软件开发,规模较小的程序,个体化的软件开发,只有程序清单。只有程序清单。程序设计阶段程序设计阶段2.1960s中1970中:“软件作坊软件作坊”,广泛使用产品软件。,广泛使用产品软件。程序系统阶段程序系统阶段3.1970中 1980s:微处理器的出现并广泛应用。分布式系微处理器的出现并广泛应用。分布式系统、嵌入智能。统、嵌入智能。进入软件工程阶段进入软件工程阶段4.1980s:网络迅速普及网络迅速普及,强大的桌面系统、面向对象技术、强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网格计算、虚拟专家系统、人工智能、神经网络、并行计算、网格计算、虚拟组织。组织。软件发展过程中存在的问题软件发展过程中存在的问题软件开发能力不能满足人们的需要;软件开发能力不能满足人们的需要;社会对软件的依赖程度加大,人们普遍关注软件的社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性;安全和可靠性;若干年前开发的应用软件经过几十次修改已无人认若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护;识它的内部结构,己经不可维护;由于经济原因由于经济原因,嵌入式系统存在许多怪现象,企业嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁不愿意投入资源再生产,而采取打补丁+时髦界面时髦界面的方法。的方法。1.1.软件危机软件危机 软件危机软件危机是指在计算机软件的是指在计算机软件的开发和维护过程开发和维护过程中所遇中所遇到的一系列严重问题。到的一系列严重问题。典型表现:典型表现:n 开发成本和进度的估计常常很不准确;开发成本和进度的估计常常很不准确;n 用户对用户对“已完成的已完成的”软件系统不满意;软件系统不满意;“闭门造闭门造车车”;n 软件质量不可靠;软件质量不可靠;n 软件常常是不可维护的;软件常常是不可维护的;n 软件成本的比例逐年上升;软件成本的比例逐年上升;n 软件产品软件产品“供不应求供不应求”;2.2.消除软件危机的途径消除软件危机的途径 消除消除“软件就是程序软件就是程序”的错误观念。的错误观念。一个软件必须由一个完整的配置组成,事实上,一个软件必须由一个完整的配置组成,事实上,软件是软件是程序、数据及相关文档的完整集合。程序、数据及相关文档的完整集合。软件开发不是某种个体劳动的神秘技巧,而应该软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、是一种组织良好、管理严密、各类人员协同配合、共同完成的共同完成的工程项目。工程项目。成功的软件开发技术和方法。成功的软件开发技术和方法。软件工具和软件工程支撑环境。软件工具和软件工程支撑环境。3.3.软件工程的定义软件工程的定义 n1968年在联邦德国召开的年在联邦德国召开的计算机国际会议计算机国际会议NATOn软件危机软件危机根源根源解决途径解决途径软件工程软件工程n“概括地说,概括地说,软件工程是指导计算机软件开发和是指导计算机软件开发和维护的一门工程学科。采用维护的一门工程学科。采用工程的概念、原理、的概念、原理、技术和方法来开发与维护软件,把经过时间考验技术和方法来开发与维护软件,把经过时间考验而证明正确的而证明正确的管理技术和当前能够得到的最好的和当前能够得到的最好的技术方法结合起来,以技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。”4.4.软件工程的目标软件工程的目标 n软件工程的目标是明确的,就是研制、开发软件工程的目标是明确的,就是研制、开发与生产出具有良好软件质量和费用合算的产与生产出具有良好软件质量和费用合算的产品品。1)1)采用工程化方法和途径来开发与维护软件。采用工程化方法和途径来开发与维护软件。2)2)应该开发和使用更好的软件工具。应该开发和使用更好的软件工具。3)3)采取必要的管理措施。采取必要的管理措施。5.5.软件工程的基本原则软件工程的基本原则1.1.用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理2.2.坚持进行阶段评审坚持进行阶段评审错误出现的时间:在编代码之前(设计错误占错误出现的时间:在编代码之前(设计错误占63%63%:编码占:编码占37%37%)改正错误的代价:发现得越晚,开发代价越高改正错误的代价:发现得越晚,开发代价越高3.3.实行严格的产品控制实行严格的产品控制n基线配置(经阶段评审后的软件配置)、变动控制(要严格评审才基线配置(经阶段评审后的软件配置)、变动控制(要严格评审才能修改)能修改)4.4.采用现代程序设计技术采用现代程序设计技术5.5.结果应能清楚地审查结果应能清楚地审查6.6.开发小组的人员应该少而精开发小组的人员应该少而精7.7.承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性6.6.软件工程研究的基本内容软件工程研究的基本内容 n软件工程学分为:理论与结构、方法、工具与环境、软件工程学分为:理论与结构、方法、工具与环境、管理和规范等。管理和规范等。n理论与结构包括:程序正确性证明理论、软件可靠理论与结构包括:程序正确性证明理论、软件可靠性理论、软件成本估算模型、软件开发模型、模块性理论、软件成本估算模型、软件开发模型、模块划分原理等。划分原理等。n软件开发技术包括:软件开发方法学、软件工具和软件开发技术包括:软件开发方法学、软件工具和软件开发环境。软件开发环境。n软件工程管理包括:软件开发管理和软件经济管理软件工程管理包括:软件开发管理和软件经济管理。1.2.31.2.3软件生命周期软件生命周期 v软件生存周期就是从提出软件产品开始,直到该软就是从提出软件产品开始,直到该软件产品被淘汰的全过程件产品被淘汰的全过程。v我国软件工程标准将软件生命周期分成以下几个阶我国软件工程标准将软件生命周期分成以下几个阶段:段:n软件定义:确定软件开发总目标;确定工程的可行性;确定软件开发总目标;确定工程的可行性;导出实现策略及系统功能;估计资源和成本,并且制定导出实现策略及系统功能;估计资源和成本,并且制定工程进度表。工程进度表。n问题定义、可行性研究、需求分析问题定义、可行性研究、需求分析n软件开发:具体设计和实现在前一个时期定义的软件具体设计和实现在前一个时期定义的软件n总体设计、详细设计、编码和单元测试、综合测试总体设计、详细设计、编码和单元测试、综合测试n软件维护:使软件持久地满足用户的需要。使软件持久地满足用户的需要。软件生命周期软件生命周期(续续1)1)1.1.问题定义问题定义 “要解决的问题是什么要解决的问题是什么?”?”确定用户要求解决的性质、工程的目标和规模。确定用户要求解决的性质、工程的目标和规模。2.2.可行性研究可行性研究 “对于上一个阶段所确定的问题有行得通的解决办法吗对于上一个阶段所确定的问题有行得通的解决办法吗?”?”经济可行性、技术可行性、法律可行性、不同的方案经济可行性、技术可行性、法律可行性、不同的方案3.3.需求分析需求分析 “为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么”确定系统必须具有的功能和性能,系统要求的运行环境,并且确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。预测系统发展的前景。规格说明书规格说明书(specification)(specification)软件生命周期软件生命周期(续续2)2)4.总体设计(概要设计)总体设计(概要设计)n “概括地说,应该怎样实现目标系统概括地说,应该怎样实现目标系统?”n 设计出实现目标系统的几种可能的方案。推荐一个最佳方案。设计出实现目标系统的几种可能的方案。推荐一个最佳方案。5.详细设计详细设计n “应该怎样具体地实现这个系统呢应该怎样具体地实现这个系统呢?”n 设计出程序的详细规格说明。设计出程序的详细规格说明。6.编码和单元测试编码和单元测试n 写出正确的容易理解、容易维护的程序模块写出正确的容易理解、容易维护的程序模块n 仔细测试编写出的每一个模块。仔细测试编写出的每一个模块。7.综合测试综合测试n 集成测试和验收测试,现场测试或平行运行集成测试和验收测试,现场测试或平行运行8.软件维护软件维护 使系统持久地满足用户的需要。使系统持久地满足用户的需要。改正性维护,适应性维护,完善性维护,预防性维护。改正性维护,适应性维护,完善性维护,预防性维护。1.31.3软件生存期模型软件生存期模型 n软件生存期模型反映软件生存周期内各种工作应如软件生存期模型反映软件生存周期内各种工作应如何组织及,以及各个阶段应如何衔接。何组织及,以及各个阶段应如何衔接。n软件生存期模型是跨越整个软件生存周期的系统开软件生存期模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的结构框发、运作、维护所实施的全部工作和任务的结构框架。架。n常用的软件生存期模型有:瀑布模型、原型模型、常用的软件生存期模型有:瀑布模型、原型模型、螺旋模型、基于四代技术模型、喷泉模型和增量模螺旋模型、基于四代技术模型、喷泉模型和增量模型。型。1.3.21.3.2瀑布模型瀑布模型(Waterfall model)n瀑布模型又称生存周期模型,由瀑布模型又称生存周期模型,由B.M.Boehm提出,提出,是软件工程的基础模型。是软件工程的基础模型。理想的瀑布模型理想的瀑布模型实际的瀑布模型实际的瀑布模型瀑布模型的特点瀑布模型的特点1.阶段间具有顺序性和依赖性n各个阶段如同瀑布流水,逐级下落,自上而下、相互衔接的固定次序。2.推迟实现的观点n清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现。3.质量保证的观点(文档驱动)n每个阶段都必须完成规定的文档n每个阶段结束前都要对所完成的文档进行评审瀑布模型的缺点瀑布模型的缺点模型缺乏灵活性。模型缺乏灵活性。开发过程一般不能逆转,否则代价太大开发过程一般不能逆转,否则代价太大规格说明很难理解:规格说明很难理解:“我知道这是按我我知道这是按我的要求做的,但不是我想要的样子。的要求做的,但不是我想要的样子。”软件的实际情况必须到项目开发的后期软件的实际情况必须到项目开发的后期客户才能看到。(客户才能看到。(文档驱动的两面性文档驱动的两面性)1.3.3 1.3.3 快速原型模型快速原型模型 快速建立起来的可以在计算机上运行的程序,它所能完快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。成的功能往往是最终产品能完成的功能的一个子集。用户测试用户测试运行原型运行原型建造建造/修改修改 原型原型 听取用听取用 户意见户意见1.1.快速原型模型的优点快速原型模型的优点快速原型的本质是快速原型的本质是“快速快速”,主要帮助建立正确的,主要帮助建立正确的规规格说明。格说明。原型模型给用户以机会,更改心中原先设想的、不尽原型模型给用户以机会,更改心中原先设想的、不尽合理的最终系统。合理的最终系统。原型模型可以低风险开发柔性较大的计算机系统。原型模型可以低风险开发柔性较大的计算机系统。原型模型使系统更易维护,生成对用户更友好的最终原型模型使系统更易维护,生成对用户更友好的最终系统。系统。原型模型使总的开发费用降低,开发时间缩短。原型模型使总的开发费用降低,开发时间缩短。有利于开发与培训的同步有利于开发与培训的同步2.2.缺点缺点 对对于于开开发发者者不不熟熟悉悉的的领领域域,可可能能会会把把次次要要部部分分当当作作主要框架,从而做出不切题的原型。主要框架,从而做出不切题的原型。原型迭代不收敛于开发者预先定义的目标。原型迭代不收敛于开发者预先定义的目标。原型过快收敛于需求集合,而忽略了一些基本点。原型过快收敛于需求集合,而忽略了一些基本点。资资源源规规划划和和管管理理较较为为困困难难,随随时时更更新新文文档档也也带带来来麻麻烦。烦。长长期期在在原原型型环环境境上上开开发发,只只注注意意得得到到满满意意的的原原型型,容易容易“遗忘遗忘”用户环境和原型环境的差异。用户环境和原型环境的差异。3.3.原型模型的应用范围原型模型的应用范围对所开发的领域比较熟悉而且有快速的原型开发工具对所开发的领域比较熟悉而且有快速的原型开发工具项目招投标时,可以以原型模型作为软件的开发模型项目招投标时,可以以原型模型作为软件的开发模型进行产品移植或升级时,或对已有产品原型进行客户进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的化工作时,原型模型是非常适合的原型模型不适用嵌入式软件、实时控制软件、数值计原型模型不适用嵌入式软件、实时控制软件、数值计算软件算软件比较比较 瀑布模型瀑布模型试图一次就获得正确的产品试图一次就获得正确的产品 快速原型快速原型频繁变化,然后废弃频繁变化,然后废弃1.3.41.3.4螺旋模型螺旋模型 n1988年,年,Barry Boehm正式发表了软件系统开发的正式发表了软件系统开发的“螺旋螺旋模型模型”,它将瀑布模型和快速原型模型结合起来,强调了其,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的他模型所忽视的风险分析。n该模型通常用来指导大型软件项目的开发,它将开发划分为该模型通常用来指导大型软件项目的开发,它将开发划分为制订计划、风险分析、实施开发和客户评估四类活动。制订计划、风险分析、实施开发和客户评估四类活动。简化版本:瀑布模型简化版本:瀑布模型+风险分析风险分析 每个阶段之前每个阶段之前-确定目标,可供选择的办法及其限制条件确定目标,可供选择的办法及其限制条件-风险分析风险分析 每个阶段之后每个阶段之后-评估评估-计划下一阶段计划下一阶段简化的螺旋模型简化的螺旋模型完整的螺旋模型完整的螺旋模型 螺旋模型的优点容易确定什么时候已经对某一阶段的产品充分测试完毕容易确定什么时候已经对某一阶段的产品充分测试完毕维护和开发之间没有什么本质上的差别维护和开发之间没有什么本质上的差别 螺旋模型的缺点仅适合于大型软件仅适合于大型软件 风险驱动既是优点也是缺点风险驱动既是优点也是缺点1.3.51.3.5基于四代技术模型基于四代技术模型n软件工程的第四代技术(软件工程的第四代技术(4GT)包含一系列的软件)包含一系列的软件工具。工具。n共同点:使软件设计者在较高级别上说明软件的某些特征;使软件设计者在较高级别上说明软件的某些特征;软件工具根据说明,自动生成源代码。软件工具根据说明,自动生成源代码。n支持第四代技术模型的软件开发环境和工具要求较支持第四代技术模型的软件开发环境和工具要求较高,高,例如数据库查询的非过程语言、报告生成器、数据操纵、屏幕交例如数据库查询的非过程语言、报告生成器、数据操纵、屏幕交互及定义、以及代码生成;高级图形功能;电子表格功能。互及定义、以及代码生成;高级图形功能;电子表格功能。n优点:极大地降低了软件的开发时间,并显著极大地降低了软件的开发时间,并显著提高了构造软件的生产率。提高了构造软件的生产率。n缺点:目前目前4GT并不比程序设计语言更容易使并不比程序设计语言更容易使用,而且这类工具生成的结果源代码是用,而且这类工具生成的结果源代码是“低效低效的的”,使用,使用4GT开发的大型软件系统的可维护开发的大型软件系统的可维护性令人怀疑的。性令人怀疑的。1.3.61.3.6喷泉模型喷泉模型 n在面向对象方法中,提出了与瀑布模型相对应的喷在面向对象方法中,提出了与瀑布模型相对应的喷泉模型,该模型的主要特点是认为软件生命周期的泉模型,该模型的主要特点是认为软件生命周期的各个阶段是相互重叠和多次反复的各个阶段是相互重叠和多次反复的。n喷泉模型主要支持面向对象的开发方法。系统某个喷泉模型主要支持面向对象的开发方法。系统某个部分常常重复工作多次,相关功能在每次迭代中随部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。之加入演进的系统。n在开发活动,即分析、设计和编码之间不存在明显在开发活动,即分析、设计和编码之间不存在明显的边界。的边界。图1.9 喷泉模型 1.3.71.3.7增量模型增量模型 也称:渐增模型也称:渐增模型把软件产品作为一系列增量构件来设计、编码、集成和测试。把软件产品作为一系列增量构件来设计、编码、集成和测试。瀑布模型和快速原型模型的目标交付给客户一个完整的、可用的产品交付给客户一个完整的、可用的产品增量模型的优点每个阶段交付一个可用的产品每个阶段交付一个可用的产品减少一个全新产品给客户带来的心理上的影响减少一个全新产品给客户带来的心理上的影响分阶段地交付产品不需要大的资金支出分阶段地交付产品不需要大的资金支出需求经常变化,增量模型的灵活性使其具有更加优越的需求经常变化,增量模型的灵活性使其具有更加优越的适用性适用性增量模型的困难需要一个开放的结构,方便构件的加入需要一个开放的结构,方便构件的加入增量模型本身就是一个矛盾的名词增量模型本身就是一个矛盾的名词1.41.4软件开发方法软件开发方法 n结构化方法结构化方法n面向数据结构方法面向数据结构方法 n面向对象方法面向对象方法 n原型法原型法 1.4.11.4.1结构化方法结构化方法n结构是指系统内各组成要素之间的相互联系、是指系统内各组成要素之间的相互联系、相互作用的框架。相互作用的框架。n结构化方法:强调结构的合理性,以及所开发强调结构的合理性,以及所开发软件的结构合理性,由此提出了一组提高软软件的结构合理性,由此提出了一组提高软件结构合理性的准则,如分解和抽象、模块件结构合理性的准则,如分解和抽象、模块的独立性、信息隐蔽等。的独立性、信息隐蔽等。n针对不同的开发活动,有结构化分析、结构针对不同的开发活动,有结构化分析、结构化设计、结构化编程和结构化测试等。化设计、结构化编程和结构化测试等。结构化分析方法结构化分析方法n结构化分析方法给出一组帮助系统分析人员结构化分析方法给出一组帮助系统分析人员产生功能规约的原理和技术。产生功能规约的原理和技术。n利用图形表示用户需求,以数据流图和控制利用图形表示用户需求,以数据流图和控制流图为基础,伴以数据词典,并配上结构化流图为基础,伴以数据词典,并配上结构化语言、判定表和判定树等等描述手段,从而语言、判定表和判定树等等描述手段,从而达到为解决问题而建立模型。达到为解决问题而建立模型。结构化分析的步骤结构化分析的步骤n结构化分析的步骤如下:结构化分析的步骤如下:(1)进行系统分析,做出反映当前物理模型的数据流图;)进行系统分析,做出反映当前物理模型的数据流图;(2)推导出等价的逻辑模型的数据流图;)推导出等价的逻辑模型的数据流图;(3)设计新的逻辑系统,生成数据词典描述;)设计新的逻辑系统,生成数据词典描述;(4)建立人机接口界面,提出可供选择的目标系统的物理模)建立人机接口界面,提出可供选择的目标系统的物理模型数据流图;型数据流图;(5)确定各种方案的成本和风险等级,据此对各种方案进行)确定各种方案的成本和风险等级,据此对各种方案进行分析;分析;(6)选择一种方案;)选择一种方案;(7)建立完整的需求规约。)建立完整的需求规约。结构化设计结构化设计n结构化设计通常与结构化分析衔接起来使用,以数据流图为结构化设计通常与结构化分析衔接起来使用,以数据流图为基础,得到软件模块结构。基础,得到软件模块结构。n结构化设计的步骤如下:(1)评审和细化数据流图;)评审和细化数据流图;(2)确定数据流图的类型;)确定数据流图的类型;(3)把数据流图映射到软件模块结构,设计出模块结构的上)把数据流图映射到软件模块结构,设计出模块结构的上层;层;(4)基于数据流图逐步分解高层模块,设计中下层模块;)基于数据流图逐步分解高层模块,设计中下层模块;(5)对软件模块结构进行优化,得到更为合理的软件结构;)对软件模块结构进行优化,得到更为合理的软件结构;(6)描述模块接口。)描述模块接口。1.4.21.4.2面向数据结构方法面向数据结构方法n面向数据结构方法是结构化方法的变形,它面向数据结构方法是结构化方法的变形,它着重数据结构而不是数据流。着重数据结构而不是数据流。n结构化方法:以分析信息流为主,用数据流以分析信息流为主,用数据流图来表示信息流;图来表示信息流;n面向数据结构方法:从分析数据结构入手,从分析数据结构入手,即分析信息结构,并用数据结构图来表示,即分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,导出软件的结再在此基础上进行需求分析,导出软件的结构。构。n面向数据结构方法面向数据结构方法:Warmer法、法、Jackson法以及法以及DSSD(数据结构系统开发)方法等。(数据结构系统开发)方法等。n面向数据结构的开发方法包括:分析和设计活动。面向数据结构的开发方法包括:分析和设计活动。nJackson方法实例:把系统开发分为方法实例:把系统开发分为描述和和实现两两个阶段。个阶段。n描述阶段建立一个与系统相关的客观世界的模型,描述阶段建立一个与系统相关的客观世界的模型,并在此基础上确定系统功能。实现阶段在具体的计并在此基础上确定系统功能。实现阶段在具体的计算机软硬件环境下,实现系统功能。算机软硬件环境下,实现系统功能。1.4.31.4.3面向对象方法面向对象方法n起源起源:面向对象编程语言面向对象编程语言 nOOP(面向对象编程)(面向对象编程)-OOD(面向对象设计)(面向对象设计)+OOA(面向(面向对象分析)对象分析)-OMT(对象建模技术)对象建模技术)和和UML(统一建模语言:面(统一建模语言:面向对象的软件开发方法)向对象的软件开发方法)n面向对象方法的开发步骤:1)从问题陈述入手,构造系统模型(对象模型)从问题陈述入手,构造系统模型(对象模型,再导出动态模型和功能模型)。再导出动态模型和功能模型)。2)逐层分解成各级子系统。)逐层分解成各级子系统。1.4.41.4.4原型法原型法n原型法首先构造一个功能简单的原型系统,然后通原型法首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的过对原型系统逐步求精,不断扩充完善得到最终的软件系统。软件系统。n原型法的主要优点:原型法的主要优点:1)一种支持用户的方法,使得用户在系统生存周期)一种支持用户的方法,使得用户在系统生存周期的设计阶段起到积极的作用;的设计阶段起到积极的作用;2)它能减少系统开发的风险,特别是在大型项目的)它能减少系统开发的风险,特别是在大型项目的开发中,由于对项目需求的分析难以一次完成,应开发中,由于对项目需求的分析难以一次完成,应用原型法效果更为明显。用原型法效果更为明显。1.51.5软件工程环境软件工程环境n软件工程环境是软件工程学的组成部分,也软件工程环境是软件工程学的组成部分,也是实现软件生产工程化的重要基础。是实现软件生产工程化的重要基础。n软件工程环境的定义 “软件工程环境是一组方法、过程及计算软件工程环境是一组方法、过程及计算机程序的整体化构建,支持从需求定义、程机程序的整体化构建,支持从需求定义、程序生成直到维护的整个软件生存期序生成直到维护的整个软件生存期”。美国国防部的定义美国国防部的定义 n软件工程环境是相关的一组软件工具的集合,软件工程环境是相关的一组软件工具的集合,支持一定的软件开发方法或按照一定的软件支持一定的软件开发方法或按照一定的软件开发模型组织而成。开发模型组织而成。n软件工程环境支持应用软件的全部或部分自软件工程环境支持应用软件的全部或部分自动生产过程,大大提高了软件的生产率,降动生产过程,大大提高了软件的生产率,降低了软件的成本,改善了软件的质量。低了软件的成本,改善了软件的质量。n现普遍用现普遍用CASE一词来描述软件工程环境。一词来描述软件工程环境。1.5.2 1.5.2 软件软件工程工程环境的特点环境的特点n一个理想的软件工程环境:支持开发支持开发+支持管理的支持管理的工具。工具。n软件开发环境的特点1.数据库数据库 2.软件工具的集成软件工具的集成3.友好的用户界面友好的用户界面 4.信息提取的能力信息提取的能力 5.分析能力分析能力 6.可裁减性和可扩充性可裁减性和可扩充性 7.项目控制和管理项目控制和管理 8.方法学的支持方法学的支持

    注意事项

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

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




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

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

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

    收起
    展开