《软件工程PPT.ppt》由会员分享,可在线阅读,更多相关《软件工程PPT.ppt(40页珍藏版)》请在优知文库上搜索。
1、1/40软件工程2/40 软件工程教育的定位软件工程教育的定位 我国软件工程的专业教育与软件人才的链之间的关系可描述为我国软件工程的专业教育与软件人才的链之间的关系可描述为如下图:如下图:软件开发工程师软件开发工程师架构设计师架构设计师产品经理产品经理项目管理者项目管理者系统分析师系统分析师系统设计师系统设计师程序员程序员研究生教育研究生教育本科教育本科教育大专教育大专教育中专教育中专教育3/40软软 件件 工工 程程 实用面向对象软件工程教实用面向对象软件工程教程程殷人昆殷人昆 等译等译 电子工业电子工业出版社出版社 软件工程软件工程 -实践者的研究方法实践者的研究方法(英文版(英文版 第四
2、版)第四版) Roger S. Pressman 机械工业出版社机械工业出版社参考书目参考书目4/40图书管理系统图书管理系统 针对用户是中型图书馆,藏书种类包括针对用户是中型图书馆,藏书种类包括中文和英文的书籍和期刊,读者的数量中文和英文的书籍和期刊,读者的数量和来源仅限于本单位的职工。要求:和来源仅限于本单位的职工。要求:能够存储一定数量的图书信息,并方便能够存储一定数量的图书信息,并方便有效的进行相应的书籍书籍操作和管理。有效的进行相应的书籍书籍操作和管理。主要包括主要包括: 图书信息的录入、删除和修改图书信息的录入、删除和修改 图书信息的检索查询图书信息的检索查询 图书的出借、返还和资
3、料统计图书的出借、返还和资料统计5/40能够对一定数量的读者进行相应的信息能够对一定数量的读者进行相应的信息存储与管理,这包括:存储与管理,这包括: 读者信息的登记、删除及修改读者信息的登记、删除及修改 读者资料的统计与查询读者资料的统计与查询能够对需要的统计结果提供打印输出能够对需要的统计结果提供打印输出能够提供一定的安全机制,提供数据访能够提供一定的安全机制,提供数据访问信息授权访问,防止随意删改,同时问信息授权访问,防止随意删改,同时提供信息备份的服务。提供信息备份的服务。6/40应提交的文档 软件需求规格说明书软件需求规格说明书 软件设计规格说明书软件设计规格说明书 用户安装及使用手册
4、用户安装及使用手册 确认测试计划确认测试计划 系统测试计划系统测试计划 程序测试计划程序测试计划 演示程序演示程序7/40总 目 录第1章 软件工程学概述第2章 可行性研究第3章 需求分析第4章 形式化说明技术第5章 总体设计第6章 详细设计第7章 实现8/40第8章 维护第9章 面向对象方法学引论第10章 面向对象分析第11章 面向对象设计第12章 面向对象实现第13章 软件项目管理9/40第1章 软件工程学概述软件危机软件危机 软件工程软件工程 软件生命周期软件生命周期 软件过程软件过程123410/401.1 软件危机软件危机什么是软件? 软件软件是计算机系统中与硬件相互依存的一是计算机
5、系统中与硬件相互依存的一部分,它包括程序、数据以及相关文档。部分,它包括程序、数据以及相关文档。 程序程序是按事先设计的功能和性能要执行的是按事先设计的功能和性能要执行的指令序列指令序列 数据数据是使程序能正常操作信息的数据结构是使程序能正常操作信息的数据结构 文档文档是与程序开发、维护和使用有关的图是与程序开发、维护和使用有关的图文材料文材料11/40软件的特征:1. 软件是一种软件是一种逻辑实体逻辑实体,不是物理实体,不是物理实体,它具有抽象性它具有抽象性2. 软件的生产和与硬件不同,在它的开发软件的生产和与硬件不同,在它的开发过程中过程中没有明显的制造过程没有明显的制造过程3. 在软件的
6、运行和使用期间,不会磨损和在软件的运行和使用期间,不会磨损和老化老化12/40至今至今尚未摆脱手工方式尚未摆脱手工方式6、软件本身是复杂的:、软件本身是复杂的:实际问题的复杂性实际问题的复杂性和和程序逻辑结构的复杂性程序逻辑结构的复杂性7、软件成本相当昂贵、软件成本相当昂贵13/40按软件的功能划分:按软件的功能划分:u系统软件系统软件操作系统数据库管理系统设备驱动程序通信处理程序等软件的分类软件的分类14/40应用软件 商业数据处理软件 工程与科学计算软件 CAD/CAM 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件15/40支撑软件u文本编辑
7、程序文本编辑程序u文件格式化程序文件格式化程序u向磁盘磁带数据传输的程序向磁盘磁带数据传输的程序u程序库系统程序库系统u支持需求分析、设计、实现、测试和管理的软支持需求分析、设计、实现、测试和管理的软件件16/40按软件的规模划分:按软件的规模划分:类别 参加人数 研制时间 源程序行数微型 1 1-4周 0.5k小型11-6月1-2k中型2-51-2年5-50k大型5-20 2-3年50-100k超大型 2-5k 5-10年 1-10M 17/40按软件的工作方式划分按软件的工作方式划分: 实时处理软件 分时处理软件 交互式软件 批处理软件18/40按软件服务对象的范围划分:按软件服务对象的范
8、围划分: 项目软件项目软件 产品软件产品软件19/40按使用频度进行分类 一次使用一次使用 频繁使用频繁使用按软件失效的影响进行划分按软件失效的影响进行划分 高可靠性软件高可靠性软件 一般可靠性软件一般可靠性软件20/40软件的发展软件的发展 程序设计阶段(程序设计阶段(50-60年代)年代) 程序系统阶段(程序系统阶段(60-70年代)年代) 软件工程阶段(软件工程阶段(70年代以后)年代以后)21/40软件危机的几种表现 对成本和进度估计不准确对成本和进度估计不准确 用户对已完成的软件系统不满意的现象经常发生用户对已完成的软件系统不满意的现象经常发生 软件产品的质量往往靠不住软件产品的质量
9、往往靠不住 软件常常是不可维护的软件常常是不可维护的 软件通常没有适当的文档资料软件通常没有适当的文档资料 软件成本在计算机系统总成本中占的比例逐渐上软件成本在计算机系统总成本中占的比例逐渐上升升 软件生产速度跟不上需求的速度软件生产速度跟不上需求的速度22/4023/40产生软件危机的原因客观:软件本身特点客观:软件本身特点 逻辑部件逻辑部件 规模庞大规模庞大主观:不正确的开发主观:不正确的开发和维护的和维护的方法方法 忽视需求分析忽视需求分析 错误认为:软件开发错误认为:软件开发=程序编写程序编写 轻视软件维护轻视软件维护消除软件危机的途径组织管理组织管理 系统工程项目管理方法系统工程项目
10、管理方法技术措施技术措施 软件开发技术与方法软件开发技术与方法 软件工具软件工具24/401.2软件工程软件工程 NATO(Fritz Bauer)给出定义:软件工程就是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用完善的工程原理。 IEEE:软件工程是把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件。25/40软件工程三要素:方法、工具和过程。方法方法是完成软件开发的各项任务的技术方法,回是完成软件开发的各项任务的技术方法,回答答“怎样做怎样做”的问题;的问题;工具工具是为运用方法而提供的自动的或半自动的软是为运用方法而提供的自动的或半自
11、动的软件工程支撑环境;件工程支撑环境;软件工程过程软件工程过程定义了:定义了: 方法使用的顺序方法使用的顺序 要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑26/40软件工程项目的基本目标软件工程项目的基本目标 付出较低的开发成本付出较低的开发成本 达到要求的软件功能达到要求的软件功能 取得较好的软件性能取得较好的软件性能 开发的软件易于移植开发的软件易于移植 需要较低的维护费用需要较低的维护费用 能按时完成开发工作,及时交付使用能按时完成开发工作,及时交付使用27/401.3 软
12、件生存期软件生存期 问题定义问题定义 可行性研究可行性研究 需求分析需求分析 总体设计总体设计 详细设计详细设计 编码编码 测试测试 软件维护软件维护系统分析系统分析系统开发系统开发系统维护系统维护28/40问题定义及可行性分析 确定要开发软件的确定要开发软件的总目标总目标 给出给出功能、性能、可靠性功能、性能、可靠性以及以及接口接口等方等方面的要求面的要求 完成该软件任务的完成该软件任务的可行性可行性研究研究 估计可利用的估计可利用的资源资源(硬件、软件、人力(硬件、软件、人力等)等)成本、效益、开发进度成本、效益、开发进度 制定出完成开发任务的制定出完成开发任务的实施计划实施计划,连同,连
13、同可行性研究报告,提交管理部门审查可行性研究报告,提交管理部门审查29/40需求分析 对用户提出的要求进行分析并给出详细的定义 编写软件规格说明书或系统功能说明书及初步的系统用户手册 提交管理机构评审30/40系统设计 概要设计:把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应 详细设计:对每个模块要完成的工作进行具体的描述,为源程序编写打下基础 编写设计说明书,提交评审31/40软件实现软件实现 把软件设计转换成计算机可以接受的程序把软件设计转换成计算机可以接受的程序代码代码,即写成以某种特定程序设计语言表即写成以某种特定程序设计语言表示的示的
14、“源程序清单源程序清单” 写出的程序应当是结构良好、清晰易读的,写出的程序应当是结构良好、清晰易读的,且与设计相一致的且与设计相一致的32/40软件测试软件测试 单元测试单元测试:查找各模块在功能和结构上存:查找各模块在功能和结构上存在的问题并加以纠正在的问题并加以纠正 组装测试组装测试:将已测试过的模块按一定顺序:将已测试过的模块按一定顺序组装起来组装起来 按规定的各项需求,逐项进行按规定的各项需求,逐项进行有效性测试有效性测试,决定已开发的软件是否合格,能否交付用决定已开发的软件是否合格,能否交付用户使用户使用33/40运行和维护 改正性维护改正性维护:运行中发现了软件中的错误:运行中发现
15、了软件中的错误需要修正需要修正 适应性维护适应性维护:为了适应变化了的软件工作:为了适应变化了的软件工作环境,需要做适当变更环境,需要做适当变更 完善性维护完善性维护:为了增强软件的功能需要做:为了增强软件的功能需要做变更变更34/401.4软件过程(生存期模型)软件过程(生存期模型) 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型35/40瀑布模型问题定义可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护软件定义时期软件开发时期软件维护时期36/40快速原型模型37/40增量模型 38/40螺旋模型39/40喷泉模型迭代迭代重复重复演进演进无间隙无间隙 各阶段间无明显界限各阶段间无明显界限40/40