软件工程导论(第五版)全册配套课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程导论(第五版)全册配套课件.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 第五 配套 课件
- 资源描述:
-
1、软件工程导论软件工程导论(第五第五版版)全册配套课件全册配套课件POWER POINT( Software Engineering )第第1 1章:软件工程学概述章:软件工程学概述1.1 软件危机 60年代中期以前:通用硬件相当普遍,软件却是为某个具体的应用而编写的。 60年代中到70年代中:软件作坊。1.1.1 软件危机的介绍软件危机的典型表现:1.1.2 产生软件危机的原因1)软件本身特点造成;2)软件开发与维护的方法不正确。主要表现: (a)忽视软件需求分析; (b)认为软件开发就是写程序并使之运行; (c)轻视软件维护; 在软件开发的不同阶段进行修改需要付出的代价很不相同:高中低早期中
2、期后期软件开发时期代价引入同一修改的代价随时间变化的趋势1)推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法;2)开发和使用更好的软件工具;3)良好的组织管理措施。 1.1.3 解决软件危机的途径 为了解决软件危机产生的问题,软件工程与方法学逐渐形成,然后出现了两个相互相承又各有侧重的学科: 1)软件工程学:主要应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科。 2)程序设计方法学:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科。 1.2 1.2 软件工软件工程程1.2.1 软件工程的介绍1968年NATO会议:软件工程就是
3、为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。1993年IEEE:软件工程是(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程;(2)研究(1)中提到的途径。 1. 软件工程关注于大型程序的构造; 2. 软件工程的中心课题是控制复杂性; 3. 软件经常变化; 4. 开发软件的效率非常重要; 5. 和谐地合作是软件开发的关键; 6. 软件必须有效地支持它的用户; 7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。软件工程的本质特性:1.2.2 软件工程的基本原理1. 用分阶段的生命周期计划严格管理;2. 坚持进行阶
4、段评审;3. 实行严格的产品控制;4. 采用现代程序设计技术;5. 结果能清楚地审查;6. 开发小组的人员应该少而精;7. 承认不断改进软件工程实践的必要性。1.2.3 软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(Methodology),也称为范型(Paradigm)。 软件工程方法学的3要素:方法、工具和过程1. 传统方法学 也称为生命周期方法学或结构化范型。 结构化方法(Structure Method)有: 1)结构化设计方法(SD); 2)结构化分析方法(SA); 3)结构化分析与设计技术(SADT) 4)JACKSON方法 5)WARNIER方
5、法2. 面向对象方法学 把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。 面向对象的方法 =对象(属性与服务的封装) +分类 +继承 +通过消息的通讯1)适用于实时事物处理系统的有限状态机方法(FSM);2)适用于并发软件系统的PETRI网方法;3)以数学概念和理论为基础的形式化方法,如 SDC公司的形式化开发方法FDM: ( F o r m a l D e v e l o p m e n t Methodology) IBM公司的维也纳开发方法VDM: (Vienna Development Method ) 3. 其他开发方法 1.3 1.3 软件生命周期软件
6、生命周期软件生命周期:指软件从提出到最终被淘汰的这个存在期。 软件生命周期组成: 1)软件定义; A.问题定义 B.可行性研究 C.需求分析 2)软件开发; D.总体设计 E.详细设计 F.编码和单元测试 G.综合测试 3)运行维护。 1.问题定义; 2.可行性研究; 3.需求分析; 4.总体设计(概要设计); 5.详细设计; 6.编码与单元测试; 7.综合测试; 8.维护。软件生命周期各个阶段:1.4 1.4 软件过程软件过程软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程(ISO9000):使用资源将输入转化为输出的活动所构成的系统。输入:
7、如软件需求输出:如软件产品1.4.1 瀑布模型1. 阶段间具有顺序性和依赖性2. 推迟实现的观点3. 质量保证的观点优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。1.4.2 快速原型模型优点:不带反馈环,基本上是线性顺序进行。1.4.3 增量模型优点:能较短时间内提交可完成部分工作的产品;可以使用户有充裕的时间学习和适应新产品。一种风险更大的增量模型:1.4.4 螺旋模型 可把它看作在每个阶段之前都增加风险分析的快速原型模型。1.4.5 喷泉模型 典型的面向对象软件开发过程模型之一。1.4.6 Rational 1.4.6 Rational 统一过统一过
8、程程1. RUP软件开发经验(1)迭代式开发(2)管理需求(3)使用基于构件的体系结构(4)可视化建模(5)贯穿于开发过程的软件质量验证(6)控制软件变更1.4.7 1.4.7 敏捷过程与极限编程敏捷过程与极限编程1.敏捷过程 具有高效、快速响应变化的开发过程。(1)个体和交互胜过过程和工具;(2)可以工作的软件胜过面面俱到的文档;(3)客户合作胜过合同谈判;(4)响应变化胜过遵循计划。2.极限编程 敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合。1.4.8 1.4.8 微软过程微软过程1.微软过程准则2.微软软件生命周期(1)规划阶段(2)设计阶段(3)开发阶
9、段(4)稳定阶段(5)发布阶段3.微软过程模型 问题定义就是要确定为用户建立什么样的软件系统,软件叫什么样的名称等等。“问题”是指软件最基本的问题,如: 软件的总体目标什么? 有什么用途? 为那些用户设计? 1.5 1.5 问题定义阶段问题定义阶段问题定义报告的内容包括: 1)软件项目标题; 2)软件目标; 3)软件用户对象; 4)软件规模。 问题定义是软件生命周期中时间最短的阶段,一般都比较简单,因此在实际开发中它是最容易被忽视的一个阶段。 这一阶段工作主要由系统分析员来完成,系统分析员要尽可能从较高的角度概括软件所要做的工作,而不用写明问题的实现细节。 第第2 2章:可行性研究章:可行性研
10、究 可行性研究就是要回答“所定义的问题有可行的解决办法吗?”。 可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得去解。2.1 可行性研究的任务 可行性研究所需的时间取决于工程的规模,所需要的成本要占工程总成本的5%10%。可行性研究的内容:1)技术可行性技术可行性要分析各种技术因素,例如: 使用现有的技术能否实现这个系统? 是否有胜任开发该项目的熟练技术人员? 能否按期得到开发该项目所需的软件、硬件资源?2)经济可行性 对经济合理性进行评价,所要考虑的问题是: 这个系统的经济效益能否超过它的开发成本? 这就需要对项目进行价格/利益分析,即“投入/产出”分析。 由
11、于利益分析取决于软件系统的特点,因此在软件开发之前,很难对新系统产生的效益作出精确的定量描述,所以往往采用一些估算方法。3)操作可行性 操作可行性评价系统运行后会引起的各方面变化,如:对组织机构管理模式、用户工作环境等产生的影响。 4)社会可行性 社会可行性主要讨论法律方面和使用方面的可行性。 例如,被开发软件的权利归属问题、软件所使用的技术是否会造成侵权等问题。2.2 2.2 可行性研究的步可行性研究的步骤骤 1)复查系统规模和目标;2)研究目前正在使用的系统;3)导出新系统的高层逻辑模型(数据流图、数据字典);4)重新定义问题; 5)导出和评价供选择的解法(物理解决方案);6)推荐行动方案
12、;7)草拟开发计划;8)书写文档提交审查。 2.2 2.2 可行性研究的步可行性研究的步骤骤 2.3 2.3 系统流程图系统流程图 (描绘物理系统的工(描绘物理系统的工具)具)2.3.1 符号 符号名称说明处理如:程序,处理机,人工加工输入/输出连接换页连接数据流表示输入或输出同一页上图的连接不同页上图的连接指明数据流动方向图2.1 基本符号符号名称说明穿孔卡片文档磁带联机存储磁盘磁鼓显示人工输入人工操作辅助操作通信链路穿孔卡片输入/输出,或穿孔卡片文件打印输出,或打印终端输入数据磁带输入/输出,或表示磁带文件任何种类磁盘存储,如磁盘、磁鼓等磁盘输入/输出,或磁盘上文件、数据库磁鼓输入/输出,
13、或磁鼓上文件、数据库显示器部件人工输入数据,如填写表格人工完成的处理使用辅助设备进行的脱机操作通过远程通信线路传送数据图2.2 系统符号2.3.2 例子 事务库存清单程序报告生成程序定货信息定货报告库存清单主文件图2.3 库存清单系统的系统流程图2.4 2.4 数据流图(描绘数据在系统中流动的逻辑过数据流图(描绘数据在系统中流动的逻辑过程)程)2.4.1 符号 或或或数据源点或终点变换数据的处理数据存储数据流图2.4 基本符号的含义TABC*TABC*附加符号TABC+TABC+2.4.2 绘制数据流图的例子 事务库存清单程序报告生成程序定货信息定货报告库存清单主文件图2.3 库存清单系统的系
14、统流程图2.4.2 绘制数据流图的例子 仓库管理员采购员定货系统事务定货报表图2.5 定货系统的基本系统模型2.4.2 绘制数据流图的例子 库存清单仓库管理员采购员事务定货报表图2.6 定货系统的功能级数据流图处理事务1产生报表2D1 库存清单D2 定货信息定货信息定货信息组成该例子的数据流图的元素源点/终点处理 采购员 仓库管理员 产生报表 处理事务数据流数据存储 订货报表 零件编号 零件名称 订货数量 目前价格 主要供应商 次要供应商 事务 零件编号 事务类型 数量 订货信息 (见订货报表) 库存清单 零件编号 库存量 库存量临界值2.4.2 绘制数据流图的例子 仓库管理员采购员事务定货报
15、表图2.7 定货系统进一步分解后的数据流图更新库存清单1.2产生报表2D1 库存清单D2 定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息1)为数据流(或数据存储)命名 A名字应该代表整个数据流(或数据存储)的内容; B不要使用空洞的、缺乏具体含义的名字(如“数据”、“输入”); 2.4.3 命名 C如果为某个数据流(或数据存储)起名字时遇到困难,则很可能是因为对数据流图的分解不恰当造成的,应该试试重新分解数据流图; 2)为处理命名 A通常先为数据流命名,然后再为与之相关联的处理命名; B名字应该反映整个处理的功能; C应该尽量避免空洞笼统的动词做名字,如“处理”、“加工”; D通
16、常用一个动词命名,如果必须用两个动词才能描述整个处理的功能,则可能要把这个处理分解成两个处理更恰当; E如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的情况,应考虑重新分解。 通常,为“数据源点/终点”命名时,采用它们在问题域中习惯使用的名字(如“仓库管理员”、“采购员”)。1)利用它作为交流信息的工具;2)作为软件分析和设计的工具。2.4.4 数据流图的用途 2.4.4 数据流图的用途 仓库管理员采购员事务定货报表图2.8 这种自动化边界建议以联机方式更新库存清单更新库存清单1 .2产生报表2D1库存清单D2定货信息接收事务1 .1处理定货1 .3库存清单定货信息定货信息图2.8
17、对应的物理实现硬件方案2.4.4 数据流图的用途 仓库管理员采购员事务定货报表图2.9 这种自动化边界暗示以批量方式更新库存清单更新库存清单1 .2产生报表2D1 库存清单D2定货信息接收事务1 .1处理定货1 .3库存清单定货信息定货信息D3 事务图2.9 对应的物理实现硬件方案 数据字典:对数据流图中包含的所有元素的定义的集合; 可行性研究阶段,数据流图与数据字典共同构成系统的逻辑模型。2.5 2.5 数据字典数据字典 2.5.1 数据字典的内容数据字典应该对下列元素进行定义: 1)数据流; 2)数据元素(数据流分量); 3)数据存储; 4)处理。 1)数据元素字典定义其定义的基本内容有:
18、 A数据元素编号、名称及其含义; B数据类型和长度; C合理取值; D其他内容,如它与其它数据的逻辑关系等。2.5.2 定义数据的方法数据元素字典定义实例:数据元素编号:DC001数据元素名称:考试成绩别名:成绩、分数简述:学生考试成绩,分五个等级类型/长度:两个字节,字符类型取值/含义:优 90-100 良 80-89 中 70-79 及格 60-69 不及格 0-59有关数据项或结构:学生成绩档案有关处理逻辑:计算成绩 图2.10 数据元素字典定义2)数据流字典定义其定义的基本内容有: A数据流编号及名称; B数据流来源; C数据流去处; D数据流的组成; E流通量; F峰值。数据流字典定
19、义实例:数据流编号:DF001数据流名称:订票单简述:订票时填写的订票单数据流来源:外部实体“乘客”数据流去处:处理逻辑“预订机票”数据流组成:订单编号 日期 乘客号 航班号 状态 订单失效日期流通量:每天300份高峰值流通量:每天早上9:00,约160份图2.11 数据流字典定义3)数据存储字典定义其定义的基本内容有: A数据存储编号及名称; B数据存储的组成; C其它要求。4)数据处理字典定义其定义的基本内容有: A数据处理编号及名称; B简单描述; C输入/输出; D功能描述; E有关数据存储。 数据处理字典定义实例:数据处理编号:DP001数据处理名称:编辑订票简述:接收从终端录入的订
20、票单,检验是否正确输入:乘客订单,来源:外部实体“乘客”输出:1.合格订单,去处:处理逻辑“确定订票” 2.不及格订单,去处:外部实体“乘客”功能描述:(略)图2.12 数据处理字典定义5)组成数据项的表示方法 = 表示“等价于”或“定义为” + 表示“与” 与 | 表示“或” 表示重复 ( ) 表示可选项 通讯录=通讯地址 通讯地址=姓名+邮编+省|直辖市|自治区+市|县+街道+门牌号+(电话) 1. 作为分析阶段的重要工具;2. 数据元素的控制信息非常有用;3. 有助于开发数据库。2.5.3 数据字典的用途实现数据字典: 1)程序处理; 2)卡片式人工书写;2.5.4 数据字典的实现2.6
21、 2.6 成本成本/ /效益分效益分析析 1)代码行技术 软件成本 = 每行代码的平均成本估计的源代码总行数 2.6.1 成本估计2)任务分解技术 软件开发项目分解为若干个相对独立的任务,分别估计每个单独任务的成本: 单独任务成本 = 任务所需人力估计值每人每月平均工资; 软件开发项目总成本估计 = 各个单独任务成本估计值之和。 常用的办法是按开发阶段划分任务,典型环境下各个开发阶段需要使用的人力百分比大致如下:任务人力()可行性研究需求分析设计编码与单元测试综合测试总计5102520401003)自动估计成本技术 采用自动估计成本的软件工具估计。 1)Putnam 模型 1978年Putna
22、m提出的,一种动态多变量模型:软件开发成本估算的经验模型: Ck为技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表:Ck的典型值开发环境开发环境举例2000差没有系统的开发方法,缺乏文档和复审8000好有合适的系统的开发方法,有充分的文档和复审11000优有自动的开发工具和技术2)COCOMO模型(constructive cost model) 这是由TRW公司开发,Boehm提出的结构化成本估算模型,是一种精确的、易于使用的成本估算方法。 基本COCOMO模型估算工作量和进度的公式如下: 工 作 量: MM = r(KDSI)c (人月) 开发时间: TDKV = a
23、(MM)b (月) DSI:源指令条数,不包括注释,1KDSI = 1000DSI MM:开发工作量(以人月计),1MM = 19 人日 = 152 人时 =1/12 人年 经验常数 r, c, a, b 取决于项目的总体类型 COCOMO模型中,考虑开发环境,软件开发项目的类型可以分为3种:1)组织型(organic) 相对较小、较简单的软件项目。开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(下个状态加入谓词集P,把系统扩展成一个6元组后: 当前状态【菜单】事件【所选择的项】谓词下个状态 计算机系统中每个菜单驱动的
24、用户界面都是一个有穷状态机的实现。(5)ST(e,f):电梯e靠近f层时触发传感器,电梯控制器决定在当前楼层是否停下。(6)RL:电梯按钮或楼层按钮被按下进入打开状态4.2.2 例子:电梯的状态转换电梯状态转换规则:S(U,e,f)+DC(e,f)=M(U,e,f+1);S ( D ,e,f) + D C (e,f) = M ( D ,e,f- 1 ) ; S(N,e,f)+DC(e,f)=W(e,f)4.2.3 评价 有穷状态机描述规格说明: 当前状态事件谓词=下个状态 易于书写、验证、转变成设计或程序代码。有穷状态机方法比数据流图技术更精确,一样易于理解。但不能处理定时需求。4.3 Pet
25、ri4.3 Petri网网4.3.1 概念Petri网包含4种元素: 1)一组位置P,上例 PP1,P2,P3,P4 2)一组转换T,上例 Tt1,t2 3)输入函数I,上例 I(t1)=P2,P4 I(t2)=P2 4)输出函数O,上例O(t1)=P1 O(t2)=P3,P3更形式化的Petri网结构,是一个4元组(P,T,I,O)更形式化地:标记 M:P0,1,2,Petri网成为一个5元组(P,T,I,O,M)对Petri网的一个重要扩充是加入禁止线:4.3.2 例子1. 电梯按钮EBf 电梯中楼层 f 的按钮;Fg 楼层g;Ff 楼层 f。2. 楼层按钮FBfu 第 f 楼层向上按钮;
展开阅读全文