书签 分享 收藏 举报 版权申诉 / 47
上传文档赚钱

类型计算机科学概论第8章-软件工程课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2872913
  • 上传时间:2022-06-06
  • 格式:PPT
  • 页数:47
  • 大小:872.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《计算机科学概论第8章-软件工程课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机科学 概论 软件工程 课件
    资源描述:

    1、计算机科学概论第8章 软件工程2软件工程Outline:o 软件工程学科发展o 软件开发模型o 软件开发方法o 软件开发工具o 软件行业道德与法律软件工程学科发展o 软件危机n 开始阶段p 60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大、随着软件开发规模的增大、复杂性以及功能的增强,高质量的软件开发变的越来越困难。n 表现p 难以在规定的时间内完成开发任务p 软件产品的质量得不到保证p 开发人员开发的软件不能完全满足用户的需求等n 典型案例p IBM公司的OS/360项目p Therac-25事件3软件工程学科发展o 软件工程的诞生n 诞生阶段p 北大西洋公约组织(NAT

    2、O)在1968年举办了首次软件工程学术会议,并于会中提出“软件工程”来界定软件开发所需相关知识。n 发展p 软件工程已经成为一门独立学科p 软件工程是指应用计算机科学与技术、数学、管理学的原理,运用工程科学的理论、方法和技术,研究和指导软件开发与演化的一门交叉学科p 是用工程化的方法开发软件4软件工程学科发展o 软件工程的内容和意义n 软件工程知识体系p 依据2014年发布的软件工程知识体系指南p 软件需求(software requirements)p 软件设计(software design)p 软件构建(software construction)p 软件测试(software test

    3、ing)p 软件维护(software maintenance)p 软件配置管理(software configuration management)p 软件工程管理(software engineering management)p 软件工程过程(software engineering process)5软件工程学科发展o 软件工程的内容和意义n 软件工程知识体系p 软件工程模型和方法(software engineering models and methods)p 软件质量(software quality)p 软件工程职业实践(software engineering profess

    4、ional practice)p 软件工程经济学(software engineering economics)p 计算基础(computing foundations)p 数学基础(mathematical foundations)p 工程基础(engineering foundations)6软件工程学科发展o 软件工程的内容和意义n 意义p 软件工程为软件开发提出了形式化的方法,用工程化的理念来指导软件的开发过程,在高效的软件生产和科学的项目管理的基础上得到高质量的产品7软件工程学科发展o 软件生命周期n 典型的软件工程生命周期p 可行性研究n 解决的是软件能不能开发的问题p 需求分析n

    5、 目标系统需要做什么的问题p 软件设计n 目标系统该怎么开发的问题p 软件实现n 进行实际的编码工作p 软件测试n 软件测试的目的是发现软件产品中存在的缺陷p 软件维护89软件工程Outline:o 软件工程学科发展o 软件开发模型o 软件开发方法o 软件开发工具o 软件行业道德与法律软件开发模型o 软件开发模型n 定义p 软件开发模型描述了主要的开发阶段,定义了每个阶段需要完成的任务和活动,规范了每个阶段的输入和输出,并且为开发过程定义了一个框架,将必要的活动都映射到框架中n 意义p 软件开发模型是软件工程思想的具体化,反映了软件在其生命周期中各个阶段的衔接和过渡关系,是人们在软件开发过程中

    6、总结出来的方法和步骤10软件开发模型o 瀑布模型n 提出:p 由W.W.Royce在1970年首次提出的软体开发模型n 阶段:p 计划、需求分析,设计,编码,测试,集成,运行和维护p 前一阶段的输入就是后一阶段的输出n 特点:p 瀑布模型是一种线性开发模型,回溯性比较差p 瀑布模型是一种里程碑式的开发过程n 适用:p 适用于需求变化不大,开发人员有相关的经验并且风险较低的项目11软件开发模型o 瀑布模型12软件开发模型o 喷泉模型n 定义:p 一种过程模型,也同时支持面向对象开发n 阶段:p 分析,设计,编码n 特点:p 面向对象方法的迭代和无间隙性p 各个阶段需要多次重复p 各个阶段之间没有

    7、明显的界限,常常进行相互交叉13软件开发模型o 原型模型n 定义:p 在初步获取需求之后,开发人员会快速地开发出一个原型系统,通过对原型系统的进行模拟操作,开发人员可以更直观地了解到用户的需求,并且可以挖掘一部分的隐含的需求n 分类p 探索型原型p 实验型原型p 渐增型原型14软件开发模型o 增量模型n 定义:p 将软件开发模块化,将每一个模块都作为一个组件,分别进行分析、设计、编码、测试等n 步骤:p 先开发核心组件,创建一个具备基本功能的组件p 再对其进行完善n 优点:p 开发组件化、提交批次化、开发顺序灵活、风险比较低n 缺点:p 要求被开发的软件系统要能够模块化15软件开发模型o 增量

    8、模型16软件开发模型o 螺旋模型n 提出:p 是由美国软件工程师巴里勃姆于1988年5月在他的文章一种螺旋式的软件开发与强化模型提出的一种模型。n 阶段:p 决定方案n 对软件开发目标进行规划p 评估方案n 从风险的角度对当前的开发计划进行处理,进行评估p 开发实施n 具体的实施阶段p 下一阶段计划n 迭代地对下一阶段的开发进行合理的计划17软件开发模型o 螺旋模型n 优点:p 通过原型开发,使每个迭代明确自己最初的方向;通过将风险分摊到每个迭代过程的方式,降低整体的风险p 在每个阶段都有自己的支出计划,使整体的支出容易得到统计n 缺点:p 过分依赖风险的分析经验和技术p 会增加整体的成本18

    9、软件开发模型o 统一软件开发模型n 提出:p 称为RUP,是Rational软件公司创建的软件开发方法p 是一种重量级过程,特别适用于大型软件团队开发大型项目p 在RUP的开发过程中,在开发之外配套的管理过程、文档等都是非常复杂的19软件开发模型o 统一软件开发模型n 阶段p 初始p 细化p 构造p 交付n 适用p 适用于规模比较大、团队成员比较多的项目p 对风险控制和进度管理都有质量保证都有很好地效果20软件开发模型o 敏捷模型n 定义p 快捷、小文档、轻量级的开发过程p 强调人与人之间沟通的重要性以及开发过程的简洁性n 特点p 更加强调发挥团队成员的个性思维p 强调软件开发过程中团队成员之

    10、间的交流、过程的简洁性、用户反馈、对决定的信心和人性化的特征n 实践p 极限编程p 自适应软件开发方法p 动态系统开发方法2122软件工程Outline:o 软件工程学科发展o 软件开发模型o 软件开发方法o 软件开发工具o 软件行业道德与法律软件开发方法o 软件开发方法n 定义p 形式上定义了软件如何被开发的问题p 说明了软件开发的具体方法和采用的方式o 结构化方法n 定义:p 一种传统的软件开发方法,它由结构化分析、结构化设计、结构化程序设计三个部分组成p 基本思想:把一个复杂问题的求解过程分阶段进行,而这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都能控制在人们容易理解和处理的范围

    11、之内23软件开发方法o 结构化方法n 设计方法p 以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构p 矩形框、直线n 基本要点:p 自顶向下p 逐步求精p 模块化设计p 结构化编码24软件开发方法o 面向数据结构的开发方法n 定义p 注重的数据结构而不是数据流p 以信息对象及其操作为核心进行需求分析p 按照顺序、选择、重复三种结构分解为成员信息对象p 供了由层次信息结构映射为程序结构的机制,n 典型方法:p Jackson方法p Warnier方法25软件开发方法o 面向对象开发方法n 传统软件开发方法缺点p

    12、软件的可重用性差p 软件的可维护性差p 开发出来的软件不能满足用户的需求n 对象:p 对象是指人们要研究的任何事物p 对象具有状态和行为,状态是描述当前对象的数据值,行为是该对象所能进行的操作p 对象具有状态和行为,状态是描述当前对象的数据值,行为是该对象所能进行的操作26软件开发方法o 面向对象开发方法n 对象p 每个对象都具有唯一性,其标识是唯一的p 对象之间可以有继承关系p 继承性是指在定义一个类的时候,可以在一个已经存在的类的基础之上进行n 开发方法p Booch方法p Coad方法p OMT方法 p UML语言27软件开发方法o 可视化开发方法n 兴起p 可视化开发方法是从90年代开

    13、始兴起的一种开发方法n 开发方法p 通过操作界面元素,如菜单、复选框、列表框、滚动条等p 事件驱动28软件开发方法o 模块化开发方法n 定义p 基于模块的开发方法p 模块是指可以组成系统的,具有某种确定独立功能的子系统,可以通过与其他子系统按照一定的规则相互联系成为更为复杂的系统p 原则:n 高内聚、低耦合n 步骤p 将一个系统按划分原则分为若干个独立的模块p 将模块分给不同的开发人员独立开发p 将各个模块按照之前设定的接口进行整合29软件开发方法o 软件重用技术n 定义p 是利用已有的软件来重新构造软件的技术p 采用已经存在软件产品,再进行加工而开发出新的软件的过程n 趋势p 基于软件复用库

    14、的技术n 利用模式重用的生成技术n 利用现有模块的组装方式p 与面向对象相结合n 类的聚集、实例对类的成员函数或操作的引用p 组件连接n 购买所需的大部分组件,进行集成3031软件工程Outline:o 软件工程学科发展o 软件开发模型o 软件开发方法o 软件开发工具o 软件行业道德与法律软件开发工具o UML语言n 定义p UML(Unified Modeling Language),统一建模语言p 用于软件开发周期的每一个方面,从需求分析、设计等p 与平台和具体的编程语言无关,主要关注的是上层的抽象和建模n 组成p 基础结构p 上层结构p 对象约束语言p 图交换标准32软件开发工具o UM

    15、L语言n 图示p UML2.0共支持13种图示p 6种结构图n 类图、组织结构图、组件图、部署图、对象图和包图p 7种行为图n 类图、时序图、用例图等33软件开发工具o 开发项目管理工具n 项目管理工具p 一般需要具备对项目进行时间计划、进行任务分配、对预算进行管理和工作量分析等功能p 工具n Microsoft Office Projectn Redminen OpenProj34软件开发工具o 需求分析建模工具n 结构化需求建模p 从高到低逐层分解p 最顶层的为整个目标系统,中间层将目标系统划分为若干个模块,而最底层的是对每个模块实现方法的细节性描述p 工具:n 数据流图:图形方式来表达系

    16、统的逻辑功能n 数据字典:定义数据流图中各个图元的具体部分n E-R图:描述应用系统的数据结构35软件开发工具o 需求分析建模工具n 面向对象需求建模p 按照用户与系统之间的相互交互过程进行需求分析p 工具:n 用例图p 软件n Rational Rosen Microsoft Office Visio36软件开发工具o 需求分析建模工具n 设计工具p 按照用户与系统之间的相互交互过程进行需求分析p 工具:n 用例图p 软件n Rational Rosen Microsoft Office Visio37软件开发工具o 设计工具n 结构化软件设计方法p 数据流图n 描述系统的具体执行过程p 流

    17、程图n 对过程和算法流程等的一种图形化表示n 使用顺序、选择、循环和分支的控制方式进行描述n 有一个入口和一个出口,分别表示初始条件和结束条件38软件开发工具o 设计工具n 面向对象软件设计方法p 主要关注用户与系统的交互过程p 时序图和活动图等UML图p 示例:用户浏览评论页面之后再进行评论n 用户对页面的输入n 系统发生的动作n 展示给用户的显示界面39软件开发工具o 编码工具n 编码过程p 把软件设计阶段得到的解决方案转化为可以在计算机上运行的软件产品n 编程语言p 汇编语言编程n 在Shell里直接编程p 脚本语言和高级语言的n 专用IDEp 记事本和Sublime Text等文本工具

    18、n 所有编程都可以40软件开发工具o 测试工具n 测试过程p 发现隐藏的错误和缺陷,保证软件的质量n 测试分类p 按照时间段n 单元测试、集成测试、系统测试和验收测试p 按照测试类型n 黑盒测试和白盒测试p 测试方法n 静态查错过程,等价类划分法、逻辑覆盖法等n 测试工具p 开源测试工具Bugfree、TestLinkp IDE测试工具,UnitTest,JUnit4等4142软件工程Outline:o 软件工程学科发展o 软件开发模型o 软件开发方法o 软件开发工具o 软件行业道德与法律软件行业道德与法律o 软件的知识产权n 软件产品法律p 中华人民共和国著作权法p 计算机软件保护条例n 软

    19、件保护等级p 原版软件n 除非经过软件开发者同意或付费才具有使用权的软件。p 共享软件n 免费发放的定期限试用软件p 免费软件n 免费发放、免费使用的弱保护软件p 公有领域软件n 自由软件,是软件开发者明确放弃一切权利的软件43软件行业道德与法律o 软件的知识产权n 软件产品法律p 中华人民共和国著作权法p 计算机软件保护条例n 软件保护等级p 原版软件n 除非经过软件开发者同意或付费才具有使用权的软件。p 共享软件n 免费发放的定期限试用软件p 免费软件n 免费发放、免费使用的弱保护软件p 公有领域软件n 自由软件,是软件开发者明确放弃一切权利的软件44软件行业道德与法律o 开源软件与闭源软

    20、件n 开源软件p 定义n 一种源代码可以任意获取的计算机软件n 开源协议通常符合开放源代码的定义的要求p 组织n Linux、Mozilla Firefox、OpenOffice和OpenBSD等Red Hat、Apple、IBM、网景公司等n 闭源软件p 定义n 任何没有资格作为开源许可术语的程序p 代表n Windows、Office系列、iOS系列,Oracle数据库等45软件行业道德与法律o 盗版软件的危害n 盗版软件p 定义n 非法复制具有版权保护的软件,假冒并发售软件的行为p 形式n 用户盗版、硬盘预装盗版、网络盗版、街头贩卖盗版p 危害n 大部分的盗版软件都有内置广告或木马以及恶意软件n 将承担法律风险,生成、传播和使用盗版软件的组织和个人都有可能被告侵权n 存在一定的缺陷和使用问题,法获得正常的维护和修缮服务n 打击了软件产业46Thanks!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机科学概论第8章-软件工程课件.ppt
    链接地址:https://www.163wenku.com/p-2872913.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库