计算机科学概论第8章-软件工程课件.ppt
- 【下载声明】
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 基本思想:把一个复杂问题的求解过程分阶段进行,而这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都能控制在人们容易理解和处理的范围
展开阅读全文