软件工程导论(第五版)全册配套最完整精品课件.ppt

上传人(卖家):罗嗣辉 文档编号:1743582 上传时间:2021-09-23 格式:PPT 页数:877 大小:7.47MB
下载 相关 举报
软件工程导论(第五版)全册配套最完整精品课件.ppt_第1页
第1页 / 共877页
软件工程导论(第五版)全册配套最完整精品课件.ppt_第2页
第2页 / 共877页
软件工程导论(第五版)全册配套最完整精品课件.ppt_第3页
第3页 / 共877页
软件工程导论(第五版)全册配套最完整精品课件.ppt_第4页
第4页 / 共877页
软件工程导论(第五版)全册配套最完整精品课件.ppt_第5页
第5页 / 共877页
点击查看更多>>
资源描述

1、 ( Software Engineering ) 第第1章:软件工程学概述章:软件工程学概述 1.1 软件危机软件危机 60年代中期以前:通用硬件相当普遍,软件却是为某个年代中期以前:通用硬件相当普遍,软件却是为某个 具体的应用而编写的。具体的应用而编写的。 60年代中到年代中到70年代中:软件作坊。年代中:软件作坊。 1.1.1 软件危机的介绍软件危机的介绍 软件危机的典型表现:软件危机的典型表现: 1.1.2 产生软件危机的原因产生软件危机的原因 1)软件本身特点造成;)软件本身特点造成; 2)软件开发与维护的方法不正确。)软件开发与维护的方法不正确。 主要表现:主要表现: (a)忽视软

2、件需求分析;)忽视软件需求分析; (b)认为软件开发就是写程序并使之运行;)认为软件开发就是写程序并使之运行; (c)轻视软件维护;)轻视软件维护; 在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的 代价很不相同:代价很不相同: 高高 中中 低低 早期早期中期中期后期后期软件开发时期软件开发时期 代价代价 引入同一修改的代价随时间变化的趋势引入同一修改的代价随时间变化的趋势 1)推广使用在实践中总结出来的开发软件的成)推广使用在实践中总结出来的开发软件的成 功技术和方法,并研究探索更有效的技术和功技术和方法,并研究探索更有效的技术和 方法;方法; 2)开发和使用更好

3、的软件工具;)开发和使用更好的软件工具; 3)良好的组织管理措施。)良好的组织管理措施。 1.1.3 解决软件危机的途径解决软件危机的途径 为了解决软件危机产生的问题,软件工程与为了解决软件危机产生的问题,软件工程与 方法学逐渐形成,然后出现了两个相互相承又方法学逐渐形成,然后出现了两个相互相承又 各有侧重的学科:各有侧重的学科: 1)软件工程学软件工程学:主要应用工程的方法和技:主要应用工程的方法和技 术研究软件开发与维护的方法、工具和管理的术研究软件开发与维护的方法、工具和管理的 一门交叉学科。一门交叉学科。 2)程序设计方法学程序设计方法学:主要应用数学的方法:主要应用数学的方法 研究程

4、序的性质以及程序设计的理论和方法的研究程序的性质以及程序设计的理论和方法的 学科。学科。 1.2 软件工程软件工程 1.2.1 软件工程的介绍软件工程的介绍 1968年年NATO会议:软件工程就是为了经济地获会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件,得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。而建立和使用完善的工程原理。 1993年年IEEE:软件工程是(:软件工程是(1)把系统的、规范)把系统的、规范 的、可度量的途径应用于软件开发、运行和维护的、可度量的途径应用于软件开发、运行和维护 过程;(过程;(2)研究()研究(1)中提到的

5、途径。)中提到的途径。 1. 软件工程关注于大型程序的构造;软件工程关注于大型程序的构造; 2. 软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性; 3. 软件经常变化;软件经常变化; 4. 开发软件的效率非常重要;开发软件的效率非常重要; 5. 和谐地合作是软件开发的关键;和谐地合作是软件开发的关键; 6. 软件必须有效地支持它的用户;软件必须有效地支持它的用户; 7. 在软件工程领域中是由具有一种文化背景的在软件工程领域中是由具有一种文化背景的 人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。 软件工程的本质特性:软件工程的本质特性: 1.2.2 软件

6、工程的基本原理软件工程的基本原理 1. 用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理; 2. 坚持进行阶段评审;坚持进行阶段评审; 3. 实行严格的产品控制;实行严格的产品控制; 4. 采用现代程序设计技术;采用现代程序设计技术; 5. 结果能清楚地审查;结果能清楚地审查; 6. 开发小组的人员应该少而精;开发小组的人员应该少而精; 7. 承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。 1.2.3 软件工程方法学软件工程方法学 通常把在软件生命周期全过程中使用的一整套通常把在软件生命周期全过程中使用的一整套 技术方法的集合称为方法学(技术方法的集合称为方

7、法学(Methodology),), 也称为范型(也称为范型(Paradigm)。)。 软件工程方法学的软件工程方法学的3要素:方法、工具和过程要素:方法、工具和过程 1. 传统方法学传统方法学 也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。 结构化方法(结构化方法(Structure Method)有:有: 1)结构化设计方法()结构化设计方法(SD);); 2)结构化分析方法(结构化分析方法(SA);); 3)结构化分析与设计技术()结构化分析与设计技术(SADT) 4)JACKSON方法方法 5)WARNIER方法方法 2. 面向对象方法学面向对象方法学 把数据和对

8、数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法, 模拟人类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。 面向对象的方法面向对象的方法 =对象(属性与服务的封装)对象(属性与服务的封装) +分类分类 +继承继承 +通过消息的通讯通过消息的通讯 1)适用于实时事物处理系统的有限状态机方法)适用于实时事物处理系统的有限状态机方法 (FSM);); 2)适用于并发软件系统的适用于并发软件系统的PETRI网方法;网方法; 3)以数学概念和理论为基础的形式化方法,如)以数学概念和理论为基础的形式化方法,如 SDC公司的形式化开发方法公司的形式化开发方法FDM:

9、 (Formal Development Methodology) IBM公司的维也纳开发方法公司的维也纳开发方法VDM: (Vienna Development Method ) 3. 其他开发方法其他开发方法 1.3 软件生命周期软件生命周期 软件生命周期软件生命周期: 指软件从提出到最终被淘汰的这个存在期。指软件从提出到最终被淘汰的这个存在期。 软件生命周期组成:软件生命周期组成: 1)软件定义;)软件定义; A.问题定义问题定义 B.可行性研究可行性研究 C.需求分析需求分析 2)软件开发;)软件开发; D.总体设计总体设计 E.详细设计详细设计 F.编码和单元测试编码和单元测试 G.

10、综合测试综合测试 3)运行维护。)运行维护。 1.问题定义;问题定义; 2.可行性研究;可行性研究; 3.需求分析;需求分析; 4.总体设计(概要设计);总体设计(概要设计); 5.详细设计;详细设计; 6.编码与单元测试;编码与单元测试; 7.综合测试;综合测试; 8.维护。维护。 软件生命周期各个阶段:软件生命周期各个阶段: 1.4 软件过程软件过程 软件过程软件过程:为了获得高质量软件所需要完成的一:为了获得高质量软件所需要完成的一 系列任务的框架,它规定了完成各项任务的工作系列任务的框架,它规定了完成各项任务的工作 步骤。步骤。 软件过程(软件过程(ISO9000):使用资源将输入转化

11、为使用资源将输入转化为 输出的活动所构成的系统。输出的活动所构成的系统。 输入:如软件需求输入:如软件需求 输出:如软件产品输出:如软件产品 1.4.1 瀑布模型瀑布模型 1. 阶段间具有顺序性和阶段间具有顺序性和 依赖性依赖性 2. 推迟实现的观点推迟实现的观点 3. 质量保证的观点质量保证的观点 优点优点:采用规范的:采用规范的 方法;严格规定每方法;严格规定每 个阶段提交的文档;个阶段提交的文档; 要求每个阶段交出要求每个阶段交出 的产品必须经过验的产品必须经过验 证。证。 1.4.2 快速原型模型快速原型模型 优点优点:不带反馈环,基:不带反馈环,基 本上是线性顺序进行。本上是线性顺序

12、进行。 1.4.3 增量模型增量模型 优点优点:能较短时间内提交可完成部分工作的产品;可以使用:能较短时间内提交可完成部分工作的产品;可以使用 户有充裕的时间学习和适应新产品。户有充裕的时间学习和适应新产品。 一种风险更大的增量模型:一种风险更大的增量模型: 1.4.4 螺旋模型螺旋模型 可把它看作在每可把它看作在每 个阶段之前都增加个阶段之前都增加 风险分析的快速原风险分析的快速原 型模型。型模型。 1.4.5 喷泉模型喷泉模型 典型的面向对象软件典型的面向对象软件 开发过程模型之一。开发过程模型之一。 1.4.6 Rational 统一过程统一过程 1. RUP软件开发经验软件开发经验 (

13、1)迭代式开发)迭代式开发 (2)管理需求)管理需求 (3)使用基于构件的体系结构)使用基于构件的体系结构 (4)可视化建模)可视化建模 (5)贯穿于开发过程的软件质量验证)贯穿于开发过程的软件质量验证 (6)控制软件变更)控制软件变更 1.4.7 敏捷过程与极限编程敏捷过程与极限编程 1.敏捷过程敏捷过程 具有高效、快速响应变化的开发过程。具有高效、快速响应变化的开发过程。 (1)个体和交互胜过过程和工具;)个体和交互胜过过程和工具; (2)可以工作的软件胜过面面俱到的文档;)可以工作的软件胜过面面俱到的文档; (3)客户合作胜过合同谈判;)客户合作胜过合同谈判; (4)响应变化胜过遵循计划

14、。)响应变化胜过遵循计划。 2.极限编程极限编程 敏捷过程中最著名的一种,指把好的开发实践运敏捷过程中最著名的一种,指把好的开发实践运 用到极致,多应用于软件需求模糊的场合。用到极致,多应用于软件需求模糊的场合。 1.4.8 微软过程微软过程 1.微软过程准则微软过程准则 2.微软软件生命周期微软软件生命周期 (1)规划阶段)规划阶段 (2)设计阶段)设计阶段 (3)开发阶段)开发阶段 (4)稳定阶段)稳定阶段 (5)发布阶段)发布阶段 3.微软过程模型微软过程模型 问题定义就是要确定为用户建立什么样的软问题定义就是要确定为用户建立什么样的软 件系统,软件叫什么样的名称等等。件系统,软件叫什么

15、样的名称等等。“问题问题” 是指软件最基本的问题,如:是指软件最基本的问题,如: 软件的总体目标什么?软件的总体目标什么? 有什么用途?有什么用途? 为那些用户设计?为那些用户设计? 1.5 问题定义阶段问题定义阶段 问题定义报告的内容包括:问题定义报告的内容包括: 1)软件项目标题;软件项目标题; 2)软件目标;软件目标; 3)软件用户对象;软件用户对象; 4)软件规模。软件规模。 问题定义是软件生命周期中时间最短的阶段,问题定义是软件生命周期中时间最短的阶段, 一般都比较简单,因此在实际开发中它是最容一般都比较简单,因此在实际开发中它是最容 易被忽视的一个阶段。易被忽视的一个阶段。 这一阶

16、段工作主要由系统分析员来完成,系这一阶段工作主要由系统分析员来完成,系 统分析员要尽可能从较高的角度概括软件所要统分析员要尽可能从较高的角度概括软件所要 做的工作,而不用写明问题的实现细节。做的工作,而不用写明问题的实现细节。 第第2章:可行性研究章:可行性研究 可行性研究就是要回答可行性研究就是要回答“所定义的问题有所定义的问题有 可行的解决办法吗?可行的解决办法吗?”。 可行性研究的目的是:用最小的代价在尽可行性研究的目的是:用最小的代价在尽 可能短的时间内确定问题是否有解,以及是可能短的时间内确定问题是否有解,以及是 否值得去解。否值得去解。 2.1 可行性研究的任务可行性研究的任务 可

17、行性研究所需的时间取决于工程的规可行性研究所需的时间取决于工程的规 模,所需要的成本要占工程总成本的模,所需要的成本要占工程总成本的 5%10%。 可行性研究的内容:可行性研究的内容: 1)技术可行性技术可行性 技术可行性要分析各种技术因素,例如:技术可行性要分析各种技术因素,例如: 使用现有的技术能否实现这个系统?使用现有的技术能否实现这个系统? 是否有胜任开发该项目的熟练技术人员?是否有胜任开发该项目的熟练技术人员? 能否按期得到开发该项目所需的软件、硬件能否按期得到开发该项目所需的软件、硬件 资源?资源? 2)经济可行性经济可行性 对经济合理性进行评价,所要考虑的问题是:对经济合理性进行

18、评价,所要考虑的问题是: 这个系统的经济效益能否超过它的开发成本?这个系统的经济效益能否超过它的开发成本? 这就需要对项目进行价格这就需要对项目进行价格/利益分析,即利益分析,即“投入投入/ 产出产出”分析。分析。 由于利益分析取决于软件系统的特点,因此在由于利益分析取决于软件系统的特点,因此在 软件开发之前,很难对新系统产生的效益作出精软件开发之前,很难对新系统产生的效益作出精 确的定量描述,所以往往采用一些估算方法。确的定量描述,所以往往采用一些估算方法。 3)操作可行性操作可行性 操作可行性评价系统运行后会引起的各方操作可行性评价系统运行后会引起的各方 面变化,如:对组织机构管理模式、用

19、户工面变化,如:对组织机构管理模式、用户工 作环境等产生的影响。作环境等产生的影响。 4)社会可行性社会可行性 社会可行性主要讨论法律方面和使用方面社会可行性主要讨论法律方面和使用方面 的可行性。的可行性。 例如,被开发软件的权利归属问题、软件例如,被开发软件的权利归属问题、软件 所使用的技术是否会造成侵权等问题。所使用的技术是否会造成侵权等问题。 2.2 可行性研究的步骤可行性研究的步骤 1)复查系统规模和目标;)复查系统规模和目标; 2)研究目前正在使用的系统;)研究目前正在使用的系统; 3)导出新系统的高层逻辑模型(数据流图、)导出新系统的高层逻辑模型(数据流图、 数据字典);数据字典)

20、; 4)重新定义问题;重新定义问题; 5)导出和评价供选择的解法(物理解决方案);)导出和评价供选择的解法(物理解决方案); 6)推荐行动方案;)推荐行动方案; 7)草拟开发计划;)草拟开发计划; 8)书写文档提交审查。)书写文档提交审查。 2.2 可行性研究的步骤可行性研究的步骤 2.3 系统流程图系统流程图 (描绘物理系统的工具)(描绘物理系统的工具) 2.3.1 符号符号 符号符号名称名称说明说明 处理处理 如:程序,处理机,人工加工如:程序,处理机,人工加工 输入输入/输出输出 连接连接 换页连接换页连接 数据流数据流 表示输入或输出表示输入或输出 同一页上图的连接同一页上图的连接 不

21、同页上图的连接不同页上图的连接 指明数据流动方向指明数据流动方向 图图2.1 基本符号基本符号 符号符号名称名称说明说明 穿孔卡片穿孔卡片 文档文档 磁带磁带 联机存储联机存储 磁盘磁盘 磁鼓磁鼓 显示显示 人工输入人工输入 人工操作人工操作 辅助操作辅助操作 通信链路通信链路 穿孔卡片输入穿孔卡片输入/输出,或穿孔卡片文件输出,或穿孔卡片文件 打印输出,或打印终端输入数据打印输出,或打印终端输入数据 磁带输入磁带输入/输出,或表示磁带文件输出,或表示磁带文件 任何种类磁盘存储,如磁盘、磁鼓等任何种类磁盘存储,如磁盘、磁鼓等 磁盘输入磁盘输入/输出,或磁盘上文件、数据库输出,或磁盘上文件、数据

22、库 磁鼓输入磁鼓输入/输出,或磁鼓上文件、数据库输出,或磁鼓上文件、数据库 显示器部件显示器部件 人工输入数据,如填写表格人工输入数据,如填写表格 人工完成的处理人工完成的处理 使用辅助设备进行的脱机操作使用辅助设备进行的脱机操作 通过远程通信线路传送数据通过远程通信线路传送数据 图图2.2 系统符号系统符号 2.3.2 例子例子 事务事务 库存清单程序库存清单程序 报告生成程序报告生成程序 定货定货 信息信息 定货报告定货报告 库存清单库存清单 主文件主文件 图图2.3 库存清单系统的系统流程图库存清单系统的系统流程图 2.4 数据流图(描绘数据在系统中流动的逻辑过程)数据流图(描绘数据在系

23、统中流动的逻辑过程) 2.4.1 符号符号 或或 或或 或或 数据源点或终点数据源点或终点 变换数据的处理变换数据的处理 数据存储数据存储 数据流数据流 图图2.4 基本符号的含义基本符号的含义 T A B C * T A B C * 附加符号附加符号 T A B C +T A B C + 2.4.2 绘制数据流图的绘制数据流图的例子例子 事务事务 库存清单程序库存清单程序 报告生成程序报告生成程序 定货定货 信息信息 定货报告定货报告 库存清单库存清单 主文件主文件 图图2.3 库存清单系统的系统流程图库存清单系统的系统流程图 2.4.2 绘制数据流图的绘制数据流图的例子例子 仓库仓库 管理

24、员管理员采购员采购员 定货系定货系 统统 事务事务定货报表定货报表 图图2.5 定货系统的基本系统模型定货系统的基本系统模型 2.4.2 绘制数据流图的例子绘制数据流图的例子 库存清单库存清单 仓库仓库 管理员管理员采购员采购员 事务事务 定货报表定货报表 图图2.6 定货系统的功能级数据流图定货系统的功能级数据流图 处理处理 事务事务 1 产生产生 报表报表 2 D1 库存清单库存清单 D2 定货信息定货信息 定货信息定货信息 定货信息定货信息 组成该例子的数据流图的元素组成该例子的数据流图的元素 源点源点/终点终点处理处理 采购员采购员 仓库管理员仓库管理员 产生报表产生报表 处理事务处理

25、事务 数据流数据流数据存储数据存储 订货报表订货报表 零件编号零件编号 零件名称零件名称 订货数量订货数量 目前价格目前价格 主要供应商主要供应商 次要供应商次要供应商 事务事务 零件编号零件编号 事务类型事务类型 数量数量 订货信息订货信息 (见订货报表)(见订货报表) 库存清单库存清单 零件编号零件编号 库存量库存量 库存量临界值库存量临界值 2.4.2 绘制数据流图的例子绘制数据流图的例子 仓库仓库 管理员管理员采购员采购员 事务事务 定货报表定货报表 图图2.7 定货系统进一步分解后的数据流图定货系统进一步分解后的数据流图 更新更新 库存库存 清单清单 1.2 产生产生 报表报表 2

26、D1 库存清单库存清单 D2 定货信息定货信息 接收接收 事务事务 1.1 处理处理 定货定货 1.3 库存清单库存清单 定货信息定货信息定货信息定货信息 1)为数据流(或数据存储)命名为数据流(或数据存储)命名 A名字应该代表整个数据流(或数据存储)名字应该代表整个数据流(或数据存储) 的内容;的内容; B不要使用空洞的、缺乏具体含义的名字不要使用空洞的、缺乏具体含义的名字 (如(如“数据数据”、“输入输入”);); 2.4.3 命名命名 C如果为某个数据流(或数据存储)如果为某个数据流(或数据存储) 起名字时遇到困难,则很可能是因为对起名字时遇到困难,则很可能是因为对 数据流图的分解不恰当

27、造成的,应该试数据流图的分解不恰当造成的,应该试 试重新分解数据流图;试重新分解数据流图; 2)为处理命名为处理命名 A通常先为数据流命名,然后再为与之通常先为数据流命名,然后再为与之 相关联的处理命名;相关联的处理命名; B名字应该反映整个处理的功能;名字应该反映整个处理的功能; C应该尽量避免空洞笼统的动词做名字,应该尽量避免空洞笼统的动词做名字, 如如“处理处理”、“加工加工”; D通常用一个动词命名,如果必须用两通常用一个动词命名,如果必须用两 个动词才能描述整个处理的功能,则可能要个动词才能描述整个处理的功能,则可能要 把这个处理分解成两个处理更恰当;把这个处理分解成两个处理更恰当;

28、 E如果在为某个处理命名时遇到困难,如果在为某个处理命名时遇到困难, 则很可能是发现了分解不当的情况,应考虑则很可能是发现了分解不当的情况,应考虑 重新分解。重新分解。 通常,为通常,为“数据源点数据源点/终点终点”命名时,采用命名时,采用 它们在问题域中习惯使用的名字(如它们在问题域中习惯使用的名字(如“仓库仓库 管理员管理员”、“采购员采购员”)。)。 1)利用它作为交流信息的工具;)利用它作为交流信息的工具; 2)作为软件分析和设计的工具。)作为软件分析和设计的工具。 2.4.4 数据流图的用途数据流图的用途 2.4.4 数据流图的用途数据流图的用途 仓库仓库 管理员管理员采购员采购员

29、事务事务 定货报表定货报表 图图2.8 这种自动化边界建议以联机方式更新库存清单这种自动化边界建议以联机方式更新库存清单 更新更新 库存库存 清单清单 1.2 产生产生 报表报表 2 D1 库存清单库存清单 D2 定货信息定货信息 接收接收 事务事务 1.1 处理处理 定货定货 1.3 库存清单库存清单 定货信息定货信息定货信息定货信息 图图2.8 对应的物理实现硬件方案对应的物理实现硬件方案 2.4.4 数据流图的用途数据流图的用途 仓库仓库 管理员管理员采购员采购员 事务事务 定货报表定货报表 图图2.9 这种自动化边界暗示以批量方式更新库存清单这种自动化边界暗示以批量方式更新库存清单 更

30、新更新 库存库存 清单清单 1.2 产生产生 报表报表 2 D1 库存清单库存清单 D2定货信息 定货信息 接收接收 事务事务 1.1 处理处理 定货定货 1.3 库存清单库存清单 定货信息定货信息定货信息定货信息 D3 事务事务 图图2.9 对应的物理实现硬件方案对应的物理实现硬件方案 数据字典数据字典:对数据流图中包含的所有元素的:对数据流图中包含的所有元素的 定义的集合;定义的集合; 可行性研究阶段,数据流图与数据字典共同可行性研究阶段,数据流图与数据字典共同 构成系统的构成系统的逻辑模型逻辑模型。 2.5 数据字典数据字典 2.5.1 数据字典的内容数据字典的内容 数据字典应该对下列元

31、素进行定义:数据字典应该对下列元素进行定义: 1)数据流;)数据流; 2)数据元素(数据流分量);)数据元素(数据流分量); 3)数据存储;)数据存储; 4)处理。)处理。 1)数据元素数据元素字典字典定义定义 其定义的基本内容有:其定义的基本内容有: A数据元素编号、名称及其含义;数据元素编号、名称及其含义; B数据类型和长度;数据类型和长度; C合理取值;合理取值; D其他内容,如它与其它数据的逻辑关其他内容,如它与其它数据的逻辑关 系等。系等。 2.5.2 定义数据的方法定义数据的方法 数据元素字典数据元素字典定义实例:定义实例: 数据元素编号数据元素编号:DC001 数据元素名称数据元

32、素名称:考试成绩:考试成绩 别名别名:成绩、分数:成绩、分数 简述简述:学生考试成绩,分五个等级:学生考试成绩,分五个等级 类型类型/长度长度:两个字节,字符类型:两个字节,字符类型 取值取值/含义含义:优:优 90-100 良良 80-89 中中 70-79 及格及格 60-69 不及格不及格 0-59 有关数据项或结构有关数据项或结构:学生成绩档案:学生成绩档案 有关处理逻辑有关处理逻辑:计算成绩:计算成绩 图图2.10 数据元素字典定义数据元素字典定义 2)数据流字典数据流字典定义定义 其定义的基本内容有:其定义的基本内容有: A数据流编号及名称;数据流编号及名称; B数据流来源;数据流

33、来源; C数据流去处;数据流去处; D数据流的组成;数据流的组成; E流通量;流通量; F峰值。峰值。 数据流字典数据流字典定义实例:定义实例: 数据流编号数据流编号:DF001 数据流名称数据流名称:订票单:订票单 简述简述:订票时填写的订票单:订票时填写的订票单 数据流来源数据流来源:外部实体:外部实体“乘客乘客” 数据流去处数据流去处:处理逻辑:处理逻辑“预订机票预订机票” 数据流组成数据流组成:订单编号:订单编号 日期日期 乘客号乘客号 航班号航班号 状态状态 订单失效日期订单失效日期 流通量流通量:每天:每天300份份 高峰值流通量高峰值流通量:每天早上:每天早上9:00,约,约16

34、0份份 图图2.11 数据流字典定义数据流字典定义 3)数据存储数据存储字典定义字典定义 其定义的基本内容有:其定义的基本内容有: A数据存储编号及名称;数据存储编号及名称; B数据存储的组成;数据存储的组成; C其它要求。其它要求。 4)数据处理数据处理字典定义字典定义 其定义的基本内容有:其定义的基本内容有: A数据处理编号及名称;数据处理编号及名称; B简单描述;简单描述; C输入输入/输出;输出; D功能描述;功能描述; E有关数据存储。有关数据存储。 数据处理数据处理字典定义实例:字典定义实例: 数据处理编号数据处理编号:DP001 数据处理名称数据处理名称:编辑订票:编辑订票 简述

35、简述:接收从终端录入的订票单,检验是否正确:接收从终端录入的订票单,检验是否正确 输入输入:乘客订单,来源:外部实体:乘客订单,来源:外部实体“乘客乘客” 输出输出:1.合格订单,去处:处理逻辑合格订单,去处:处理逻辑“确定订票确定订票 ” 2.不及格订单,去处:外部实体不及格订单,去处:外部实体“乘客乘客” 功能描述:功能描述:(略)(略) 图图2.12 数据处理字典定义数据处理字典定义 5)组成数据项的表示方法)组成数据项的表示方法 = 表示表示“等价于等价于”或或“定义为定义为” + 表示表示“与与” 与与 | 表示表示“或或” 表示重复表示重复 ( ) 表示可选项表示可选项 通讯录通讯

36、录=通讯地址通讯地址 通讯地址通讯地址=姓名姓名+邮编邮编+省省|直辖市直辖市|自治自治 区区+市市|县县+街道街道+门牌号门牌号+(电话)(电话) 1. 作为分析阶段的重要工具;作为分析阶段的重要工具; 2. 数据元素的控制信息非常有用;数据元素的控制信息非常有用; 3. 有助于开发数据库。有助于开发数据库。 2.5.3 数据字典的用途数据字典的用途 实现数据字典:实现数据字典: 1)程序处理;)程序处理; 2)卡片式人工书写;)卡片式人工书写; 2.5.4 数据字典的实现数据字典的实现 2.6 成本成本/效益分析效益分析 1)代码行技术代码行技术 软件成本软件成本 = 每行代码的平均成本估

37、计的每行代码的平均成本估计的 源代码总行数源代码总行数 2.6.1 成本估计成本估计 2)任务分解技术任务分解技术 软件开发项目分解为若干个相对独立的软件开发项目分解为若干个相对独立的 任务,分别估计每个单独任务的成本:任务,分别估计每个单独任务的成本: 单独任务成本单独任务成本 = 任务所需人力估计值每任务所需人力估计值每 人每月平均工资;人每月平均工资; 软件开发项目总成本估计软件开发项目总成本估计 = 各个单独任务各个单独任务 成本估计值之和。成本估计值之和。 常用的办法是按开发阶段划分任务,典型环境下常用的办法是按开发阶段划分任务,典型环境下 各个开发阶段需要使用的人力百分比大致如下:

38、各个开发阶段需要使用的人力百分比大致如下: 任务任务人力()人力() 可行性研究可行性研究 需求分析需求分析 设计设计 编码与单元测试编码与单元测试 综合测试综合测试 总计总计 5 10 25 20 40 100 3)自动估计成本技术自动估计成本技术 采用自动估计成本的软件工具估计。采用自动估计成本的软件工具估计。 1)Putnam 模型模型 1978年年Putnam提出的,一种动态多变量模型:提出的,一种动态多变量模型: 软件开发成本估算的经验模型:软件开发成本估算的经验模型: Ck为技术状态常数,它反映为技术状态常数,它反映“妨碍开发进展妨碍开发进展 的限制的限制”,取值因开发环境而异,见

39、下表:,取值因开发环境而异,见下表: Ck的典型的典型 值值 开发环开发环 境境 开发环境举例开发环境举例 2000差差 没有系统的开发方法,缺乏文档和复没有系统的开发方法,缺乏文档和复 审审 8000好好 有合适的系统的开发方法,有充分的有合适的系统的开发方法,有充分的 文档和复审文档和复审 11000优优有自动的开发工具和技术有自动的开发工具和技术 2)COCOMO模型模型(constructive cost model) 这是由这是由TRW公司开发,公司开发,Boehm提出的结构化成本估算提出的结构化成本估算 模型,是一种精确的、易于使用的成本估算方法。模型,是一种精确的、易于使用的成本

40、估算方法。 基本基本COCOMO模型估算工作量和进度的公式如下:模型估算工作量和进度的公式如下: 工工 作作 量:量: MM = r(KDSI)c (人月)人月) 开发时间:开发时间: TDKV = a(MM)b (月)月) DSI:源指令条数,不包括注释,源指令条数,不包括注释,1KDSI = 1000DSI MM:开发工作量(以人月计),开发工作量(以人月计),1MM = 19 人日人日 = 152 人时人时 =1/12 人年人年 经验常数经验常数 r, c, a, b 取决于项目的总体类型取决于项目的总体类型 COCOMO模型中,考虑开发环境,软件开发模型中,考虑开发环境,软件开发 项目

41、的类型可以分为项目的类型可以分为3种:种: 1)组织型组织型(organic) 相对较小、较简单的软件项目。开发人员对开相对较小、较简单的软件项目。开发人员对开 发目标理解比较充分,与软件系统相关的工作经发目标理解比较充分,与软件系统相关的工作经 验丰富,对软件的使用环境很熟悉,受硬件的约验丰富,对软件的使用环境很熟悉,受硬件的约 束较小,程序的规模不是很大(束较小,程序的规模不是很大(下个状态下个状态 加入谓词集加入谓词集P P,把系统扩展成一个把系统扩展成一个6 6元组后元组后: 当前状态【菜单】事件【所选择的项】谓词当前状态【菜单】事件【所选择的项】谓词下个状态下个状态 计算机系统中每个

42、菜单驱动的用户界面都是计算机系统中每个菜单驱动的用户界面都是 一个有穷状态机的实现。一个有穷状态机的实现。 4.2.2 例子例子:电梯的状态转换电梯的状态转换 电梯状态转换规则:电梯状态转换规则:S(U,e,f)+DC(e,f)=M(U,e,f+1); S(D,e,f)+DC(e,f)=M(D,e,f-1); S(N,e,f)+DC(e,f)=W(e,f) 4.2.3 评价评价 有穷状态机描述规格说明:有穷状态机描述规格说明: 当前状态事件谓词当前状态事件谓词=下个状态下个状态 易于书写、验证、转变成设计或程序代码。易于书写、验证、转变成设计或程序代码。 有穷状态机方法比数据流图技术更精确,有

43、穷状态机方法比数据流图技术更精确, 一样易于理解。但不能处理定时需求。一样易于理解。但不能处理定时需求。 4.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,

44、Petri网成为一个网成为一个5元组元组(P,T,I,O,M) 对对Petri网的一个重要扩充是加入禁止线:网的一个重要扩充是加入禁止线: 4.3.2 例子例子 1. 电梯按钮电梯按钮 EBf 电梯中楼层电梯中楼层 f 的按钮;的按钮;Fg 楼层楼层g;Ff 楼层楼层 f。 2. 楼层按钮楼层按钮 FBfu 第第 f 楼层向上按钮;楼层向上按钮; FBfd 第第 f 楼层向下按钮;楼层向下按钮; 小结 基于数学的形式化说明技术,目前还没有在基于数学的形式化说明技术,目前还没有在 软件产业界广泛应用;软件产业界广泛应用; 应该把形式化方法与传统方法有机结合。应该把形式化方法与传统方法有机结合。

45、第5章:总体设计 5.1 设计过程设计过程 1.设想供选择的方案设想供选择的方案 2.选择合理的方案选择合理的方案 对每个合理的方案要提供:对每个合理的方案要提供: A系统流程图系统流程图 B组成系统的物理元素清单组成系统的物理元素清单 C成本成本/效益分析效益分析 D实现这个系统的进度计划实现这个系统的进度计划 3.推荐最佳方案推荐最佳方案 4.功能分解功能分解 5.设计软件结构设计软件结构 6.数据库设计数据库设计 A模式设计模式设计 B子模式设计子模式设计 C完整性和安全性设计完整性和安全性设计 D优化优化 7.制定测试计划制定测试计划 8.书写文档书写文档 A系统说明系统说明 B用户手

46、册用户手册 C测试计划测试计划 D详细的实现计划详细的实现计划 E数据库设计结果数据库设计结果 9.审查和复审审查和复审 5.2 设计原理设计原理 如果一个大型程序仅由一个模块组成,很难被人理解。如果一个大型程序仅由一个模块组成,很难被人理解。 设函数设函数C(x)定义问题定义问题x的复杂程度,函数的复杂程度,函数E(x)定义解决问定义解决问 题题x需要的工作量(时间)。对于两个问题需要的工作量(时间)。对于两个问题P1和和P2,如果:如果: C(P1)C(P2) 那么那么 E(P1)E(P2) 根据解决问题的经验,有一个规律是:根据解决问题的经验,有一个规律是: C(P1+P2)C(P1)+

47、C(P2) 于是有于是有 E(P1+P2)E(P1)+E(P2) 5.2.1 模块化模块化 模块数目模块数目 接口成本接口成本 成本成本/模块模块 软件总成本软件总成本 M 最小成本区最小成本区 成本成本 图图5.1 模块化与软件成本模块化与软件成本 5.2.2 抽象抽象 5.2.3 逐步求精逐步求精 模块的独立性很重要,因为:模块的独立性很重要,因为: 1)有效的模块化的软件比较容易开发出来)有效的模块化的软件比较容易开发出来; 2)独立的模块比较容易测试和维护。)独立的模块比较容易测试和维护。 5.2.4 信息隐蔽和局部化信息隐蔽和局部化 5.2.5 模块独立模块独立 一、耦合一、耦合 耦

48、合耦合:指软件结构内不同模块彼此之间:指软件结构内不同模块彼此之间 相互依赖(连接)的紧密程度。相互依赖(连接)的紧密程度。 模块独立程度可以由两个定性标准度量:模块独立程度可以由两个定性标准度量: 耦合耦合与与内聚内聚。 模块的偶合分四类:模块的偶合分四类: 1)数据耦合数据耦合 两个模块之间只是通过参数交换信息,而且两个模块之间只是通过参数交换信息,而且 交换的信息仅仅是数据。交换的信息仅仅是数据。 数据耦合是最低程度的耦合。数据耦合是最低程度的耦合。 AB 数据数据 (1)数据耦合)数据耦合 2)控制耦合控制耦合 两个模块之间所交换的信息包含控制信息。两个模块之间所交换的信息包含控制信息

49、。 控制耦合是中等程度的耦合。控制耦合是中等程度的耦合。 图中模块图中模块A的内部处理程序判断是执行的内部处理程序判断是执行C还是执行还是执行D, 要取决于模块要取决于模块B传来的信息状态(传来的信息状态(Status)。)。 B A CD (2)控制耦合)控制耦合 a status 3)公用耦合公用耦合 两个或多个模块通过一个公共区相互作用两个或多个模块通过一个公共区相互作用 时的耦合。时的耦合。 公共区可以是:全程数据区、共享通信区、公共区可以是:全程数据区、共享通信区、 内存公共覆盖区、任何介质上的文件、物理内存公共覆盖区、任何介质上的文件、物理 设备等。设备等。 软件结构中存在大量的公

50、用耦合时会给诊软件结构中存在大量的公用耦合时会给诊 断错误带来困难。断错误带来困难。 图中存在公用耦合,假设模块图中存在公用耦合,假设模块A、C、E都存取全程数据都存取全程数据 区(如公用一个磁盘文件)中的一个数据项。区(如公用一个磁盘文件)中的一个数据项。 如果如果A模块读取该项数据,然后调用模块读取该项数据,然后调用C模块对该项重新计模块对该项重新计 算,并进行数据更新。算,并进行数据更新。 A BC D E 全程数全程数 据区据区 (3)公用耦合)公用耦合 如果此时如果此时C模块错误地更新了该项数据,在往下的处理模块错误地更新了该项数据,在往下的处理 中模块中模块E读该数据项时出现错误。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(软件工程导论(第五版)全册配套最完整精品课件.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

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


163文库-Www.163Wenku.Com |网站地图|