软件工程导论张海潘(第六版)第1-13章总结-P课件.ppt

上传人(卖家):ziliao2023 文档编号:5635835 上传时间:2023-04-28 格式:PPT 页数:117 大小:3.81MB
下载 相关 举报
软件工程导论张海潘(第六版)第1-13章总结-P课件.ppt_第1页
第1页 / 共117页
软件工程导论张海潘(第六版)第1-13章总结-P课件.ppt_第2页
第2页 / 共117页
软件工程导论张海潘(第六版)第1-13章总结-P课件.ppt_第3页
第3页 / 共117页
软件工程导论张海潘(第六版)第1-13章总结-P课件.ppt_第4页
第4页 / 共117页
软件工程导论张海潘(第六版)第1-13章总结-P课件.ppt_第5页
第5页 / 共117页
点击查看更多>>
资源描述

1、1 1 1、软件危机、软件危机 在计算机软件的开发和维护过程中所遇到的一系列严重在计算机软件的开发和维护过程中所遇到的一系列严重问题。问题。几乎所有的软件,都不同程度地存在着这些问题。几乎所有的软件,都不同程度地存在着这些问题。软件危机主要包括如下两方面的问题软件危机主要包括如下两方面的问题:如何开发软件,满足增长需求;如何开发软件,满足增长需求;如何维护软件;如何维护软件;2 2、解决软件软件危机的途径、解决软件软件危机的途径 解决软件危机的途径是软件工程。解决软件危机的途径是软件工程。按工程化的原则和方法组织软件开发工作是有效的,是摆按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件

2、危机的一个主要出路。脱软件危机的一个主要出路。第一章第一章 软件工程学概述软件工程学概述2 3 3、软件软件 软件是程序、数据及文档的完整集合。软件是程序、数据及文档的完整集合。其中:其中:程序是能够完成预定功能和性能的可执行的指令序列;程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序的图文资料。文档是开发、使用和维护程序的图文资料。4 4、软件工程软件工程 软件工程是采用工程的软件工程是采用工程的概念、原理、技术和方法概念、原理、技术和方法来来开发开发与维护与维护软件一门工程学科,从

3、而软件一门工程学科,从而经济地开发出高质量的软件经济地开发出高质量的软件并有效地维护它并有效地维护它。5 5、软件工程方法学、软件工程方法学 在软件在软件生命周期全过程生命周期全过程中使用的一整套中使用的一整套技术方法的集合技术方法的集合称称为软件工程方法学。为软件工程方法学。软件工程软件工程 第一章第一章 3 6 6、方法学三要素?、方法学三要素?工程方法学包含工程方法学包含3 3个要素:个要素:方法、工具方法、工具和和过程过程;方法方法:是完成软件开发的各项任务的技术方法,回答:是完成软件开发的各项任务的技术方法,回答“怎怎样做样做”的问题。的问题。工具工具:是为运用方法而提供的自动的或半

4、自动的软件工程:是为运用方法而提供的自动的或半自动的软件工程支撑环境。支撑环境。过程过程:是为了获得高质量的软件所需要完成的一系列任务:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。的框架,它规定了完成各项任务的工作步骤。软件工程软件工程 第一章第一章 4 7 7、传统方法学、面向对象方法学、传统方法学、面向对象方法学 (1)传统方法学)传统方法学(生命周期方法学或结构化范型生命周期方法学或结构化范型)强调自顶向下;强调自顶向下;(2)面向对象方法学)面向对象方法学 强调主强调主动地多次反复迭代;动地多次反复迭代;(3)面向对象方法学)面向对象方法学4个要

5、点:个要点:对象;对象;类;类;继承;继承;消息消息软件工程软件工程 第一章第一章 5 8 8、软件生命周期、软件生命周期 软件孕育、诞生、成长、成熟、衰亡的生存过程。软件孕育、诞生、成长、成熟、衰亡的生存过程。软件工程软件工程 第一章第一章 6 软件生命周期软件生命周期1.问题定义2.可行性研究3.需求分析4.总体设计5.详细设计6.编码和单元测试7.综合测试8.软件维护7 各阶段具体任务:各阶段具体任务:1.问题定义:必须回答的关键问题是:问题定义:必须回答的关键问题是:“要要解决的问题解决的问题是什么?是什么?”。2.可行性研究:阶段回答的关键问题是:可行性研究:阶段回答的关键问题是:“

6、对于上一个阶段所确定的对于上一个阶段所确定的问题问题有行得通的解决办法有行得通的解决办法吗?吗?”3.需求分析:需求分析:“目标系统目标系统必须做什么必须做什么”,确定目标系统必须具备哪些,确定目标系统必须具备哪些功能。功能。4.总体设计:必须回答的关键问题是:总体设计:必须回答的关键问题是:“概括地说,应该概括地说,应该怎样实现怎样实现目目标系统?标系统?”总体设计又称为概要设计。总体设计又称为概要设计。5.详细设计:关键问题是:详细设计:关键问题是:“应该应该怎样具体地实现怎样具体地实现这个系统呢?这个系统呢?”6.编码和单元测试:关键任务是写出正确的容易理解、容易维护的程编码和单元测试:

7、关键任务是写出正确的容易理解、容易维护的程序模块。序模块。7.综合测试:关键任务是通过各种类型的测试使软件达到预定的要求。综合测试:关键任务是通过各种类型的测试使软件达到预定的要求。8.软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。8 8 8、软件过程、软件过程 为为获得高质量软件所需要完成的获得高质量软件所需要完成的一系列任务的框架一系列任务的框架,它规定,它规定了完成各项任务的了完成各项任务的工作步骤工作步骤。是软件工程三要素之一的是软件工程三要素之一的过程过程。9 9、软件生命周期模型、软件生命周期模型 软件过程通

8、常用软件过程通常用软件生命周期模型软件生命周期模型来描述,它规定了把生命来描述,它规定了把生命周期周期划分成哪些阶段划分成哪些阶段以及各个以及各个阶段执行的顺序阶段执行的顺序,也称为过程,也称为过程模型。模型。1010、典型的生命周期模型、典型的生命周期模型 瀑布模型、瀑布模型、快速原型模型快速原型模型 增量模型、增量模型、螺旋模型螺旋模型 喷泉模型喷泉模型软件工程软件工程 第一章第一章 9 1111、瀑布模型、瀑布模型、软件工程软件工程 第一章第一章 实际的瀑布模型实际的瀑布模型传统的瀑布模型传统的瀑布模型10 1212、快速原型模型、快速原型模型 软件工程软件工程 第一章第一章 实线箭头实

9、线箭头表示开发过程表示开发过程 虚线箭头虚线箭头表示维护过程表示维护过程11 1313、增量模型、增量模型软件工程软件工程 第一章第一章 增量模型增量模型风险更大的增量模型风险更大的增量模型12 1414、螺旋模型:增加了、螺旋模型:增加了风险分析风险分析过程的过程的快速原型快速原型。软件工程软件工程 第一章第一章 简单得螺旋模型简单得螺旋模型完整的螺旋模型完整的螺旋模型13 1515、喷泉模型:、喷泉模型:面向对象软件开发迭代迭代和无缝无缝的特性软件工程软件工程 第一章第一章 喷泉模型喷泉模型14 1616、各模型特点、各模型特点瀑布模型的特点:瀑布模型的特点:1.阶段间具有顺序性和依赖性。

10、2.推迟实现的观点。3.质量保证的观点。快速原型:快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。增量模型:增量模型:它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。螺旋模型:螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。(使用于内部开发的大规模软件项目)喷泉模型:喷泉模型:强调的是“迭代”和“无缝“的特性,是典型的面向对象的软件过程模型之一。15 复习重点复习重点软件危机软件工程软件工

11、程三要素软件生命周期包含的过程(3个时期、8个阶段)及各过程的任务瀑布模型快速还原模型16 1 1、可行性研究的目的:、可行性研究的目的:就是用最小的代价在尽可能短的时间内就是用最小的代价在尽可能短的时间内确定问题是否能够解决确定问题是否能够解决。必须记住,可行性研究的目的必须记住,可行性研究的目的不是解决问题不是解决问题,而是,而是确定问题是否确定问题是否值得去解决值得去解决。从下述从下述3 3个方面研究每种解法的可行性:个方面研究每种解法的可行性:1 1)技术可行性技术可行性 2 2)经济可行性经济可行性 3 3)操作可行性操作可行性 其他方面:其他方面:运行可行性、法律可行运行可行性、法

12、律可行性性2 2、典型的可行性研究有下述一些步骤:、典型的可行性研究有下述一些步骤:1.1.复查系统规模和目标。复查系统规模和目标。2.2.研究目前正在使用的系统研究目前正在使用的系统 3.3.导出新系统的高层逻辑模型导出新系统的高层逻辑模型 4.4.进一步定义问题进一步定义问题 5.5.导出和评价供选择的解法导出和评价供选择的解法 6.6.推荐行动方针推荐行动方针 7.7.草拟开发计划草拟开发计划 8.8.书写文档提交审查。书写文档提交审查。第二章第二章 可行性研究可行性研究17 3 3、系统流程图:、系统流程图:是概括性地描绘是概括性地描绘物理系统物理系统的传统工具,它的基本思想是用的传统

13、工具,它的基本思想是用图形图形符号符号以以黑盒子形式黑盒子形式描绘描绘组成系统的每个部件组成系统的每个部件。系统流程图表达的是系统流程图表达的是数据在系统各部件之间流动的情况数据在系统各部件之间流动的情况,而,而不是不是对数据进行加工处理对数据进行加工处理的控制过程,因此尽管系统流程图的某些的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却符号和程序流程图的符号形式相同,但是它却是物理数据流图是物理数据流图而而不是程序流程图不是程序流程图。基本符号如下。基本符号如下第二章第二章 可行性研究可行性研究18 库存清单系统的系统流程图库存清单系统的系统流程图19 4 4、数

14、据流图(、数据流图(DFDDFD)是一种图形化技术,它描绘信息流和数据从是一种图形化技术,它描绘信息流和数据从输入输入移动到移动到输输出出的过程中所的过程中所经受的变换经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在数据流图中没有任何具体的物理部件,它只是描绘数据在软件在软件中中流动和被处理流动和被处理的的逻辑过程。基本符逻辑过程。基本符号如下号如下:第二章第二章 可行性研究可行性研究20 附加符号:附加符号:星号(星号(*):表示):表示“与与”关系;关系;加号(加号(+):表):表示示“或或”关系关系 异或(异或():表示互斥关系):表示互斥关系第二章第二章 可行性研究可行

15、性研究21 5 5、画数据流图的步骤:、画数据流图的步骤:(1 1)从问题描述中提取数据流图的)从问题描述中提取数据流图的4 4种成分:种成分:u数据的源点数据的源点/终点终点u处理:处于静止状态的数据处理:处于静止状态的数据u数据流:处于运动中的数据数据流:处于运动中的数据u数据存储:数据存储:(2 2)画基本系统模型)画基本系统模型 (3 3)细化,描绘系统的主要功能(功能级数据流图)细化,描绘系统的主要功能(功能级数据流图)(4 4)对系统主要功能进一步细化)对系统主要功能进一步细化22 6 6、画数据流图举例:、画数据流图举例:银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的

16、工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址存款则系统记录存款人姓名、住址(或电话号码或电话号码)、身份证、身份证号码、存款类型、存款日期、到期日期、利率及密码号码、存款类型、存款日期、到期日期、利率及密码(可可选选)等信息,并印出存单给储户;等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。印出利息清单给

17、储户。23 第一步:第一步:提取数据流图的提取数据流图的四种成分四种成分:数据源点和终点数据源点和终点:业务员、储户:业务员、储户 处理:处理:(1)(1)事物处理事物处理 (2)(2)处理存款处理存款 (3 3)处理取款)处理取款 数据存储:数据存储:(1)(1)存款信息存款信息 (2)(2)取款信息取款信息 数据流:数据流:事物、存款单、存单事物、存款单、存单 密码密码 、取款单、利息清单、取款单、利息清单24 顶层数据流图顶层数据流图n 第二步:画基本数据流图第二步:画基本数据流图25 功能级数据流图功能级数据流图第三步:画功能级数据流图第三步:画功能级数据流图 26 细化的数据流图细化

18、的数据流图第四步:第四步:对系统主要功能进一步细化对系统主要功能进一步细化27 7 7、数据字典:、数据字典:数据的信息的集合,也就是对数据的信息的集合,也就是对数据流图数据流图中包含的中包含的所有元素所有元素的的定义定义的集合。的集合。可行性研究阶段,可行性研究阶段,数据流图数据流图与与数据字典数据字典共同构成系统的共同构成系统的逻辑模逻辑模型型。没有数据字典,数据流图就不严格,然而没有数据流图,。没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。数据字典也难于发挥作用。数据字典应该由对下列数据字典应该由对下列4 4类元素类元素的定义组成:数据流、数据流的定义组成:数

19、据流、数据流分量(数据元素)、数据存储和处理。分量(数据元素)、数据存储和处理。由由数据元素组成数据数据元素组成数据的方式只有下述的方式只有下述3 3种基本类型种基本类型:顺序、选:顺序、选择、重复和可选。择、重复和可选。数据定义符号:数据定义符号:=+()=+()=等价于等价于 ;+和即连接;和即连接;选择一个;选择一个;重复重复 ;()()可选可选28 8 8、定义数据的方法、定义数据的方法 数据组成方式数据组成方式(三种基本类型三种基本类型):顺序:顺序 选择选择 重复重复 附加类型附加类型:可选可选 数据定义符号:数据定义符号:=+()=+()含义:含义:=意思是等价于意思是等价于(或

20、定义为或定义为);+意思是和意思是和(即,连接两个分量即,连接两个分量);意思是或意思是或(即,从方括弧内列出的若干个分量中选择一个即,从方括弧内列出的若干个分量中选择一个),通常用通常用“|”|”号隔开供选择的分量;号隔开供选择的分量;意思是重复意思是重复(即,重复花括弧内的分量即,重复花括弧内的分量);常常使用上限;常常使用上限和下限进一步注释表示重复的花括弧。和下限进一步注释表示重复的花括弧。()()意思是可选意思是可选(即,圆括弧里的分量可有可无即,圆括弧里的分量可有可无)。29 电话定义电话定义-应用举例应用举例 北京某高校可用的北京某高校可用的电话号码电话号码有有以下几类:以下几类

21、:n 校内电话校内电话号码由号码由4 4位数字组位数字组成,成,n 第第1 1位数字不是位数字不是0 0;n 校外电话校外电话又分为又分为本市电话本市电话和和外外n 地电话地电话两类;两类;p a)a)拨校外电话需先拨拨校外电话需先拨0 0,若是本市电话则再接着拨若是本市电话则再接着拨8 8位位数数 字字(第第1 1位不是位不是0)0);b)b)若是外地电话则拨若是外地电话则拨3 3位区位区码再拨码再拨8 8位电话号码位电话号码(第第1 1位不位不是是0)0)。请用定义请用定义数据字典数据字典的方法,定义的方法,定义上述的上述的电话号码电话号码。电话号码电话号码=校内电话号码校内电话号码|校外

22、电话号码校外电话号码 校内电话号码校内电话号码=非零数字非零数字+3+3 位数字位数字 /后面继续定义后面继续定义校外电话号码校外电话号码=本市号码本市号码|外地号码外地号码 本市号码本市号码=数字零数字零+8+8位数字位数字外地号码外地号码=数字零数字零+3+3位数字位数字+8+8位数字位数字非零数字非零数字=1|2|3|4|5|6|7|8|9=1|2|3|4|5|6|7|8|9数字零数字零0 03 3位数字位数字33数字数字3 /33 /3至至3 3个数字个数字8 8位数字位数字=非零数字非零数字+7+7位数字位数字7 7位数字位数字=7=7数字数字77数字数字0|1|2|3|4|5|6|

23、7|8|90|1|2|3|4|5|6|7|8|930 9 9、成本、成本/效益分析的目标效益分析的目标 正式要从正式要从经济角度分析经济角度分析开发一个特定的新系统开发一个特定的新系统是否划算是否划算,从而,从而帮助客户组织的负责人帮助客户组织的负责人正确地做出是否投资于这项开发工程正确地做出是否投资于这项开发工程的决定。的决定。第二章可行性研究第二章可行性研究31 复习重点:复习重点:可行性研究的目的可行性研究的目的 可行性研究的内容可行性研究的内容 数据流图的画法数据流图的画法 数据字典的实现数据字典的实现第二章第二章 可行性研究可行性研究32 1 1、需求分析的任务、需求分析的任务 准确

24、地回答准确地回答“系统必须做什么系统必须做什么”这个问题。而这个问题。而不必研究不必研究“如何如何做做”。需求分析的结果,是提供需求分析的结果,是提供准确完整准确完整的的软件需求规格说明书软件需求规格说明书。2 2、软件系统的、软件系统的综合要求综合要求 功能需求、功能需求、性能需求、可靠性和可用性需求、出错处理需求性能需求、可靠性和可用性需求、出错处理需求 接口需求、接口需求、约束约束 、逆向需求逆向需求 、将来可能提出的要求将来可能提出的要求3 3、分析系统的、分析系统的数据要求数据要求 (1 1)建立数据模型)建立数据模型E-RE-R图图 (2 2)描绘数据结构)描绘数据结构层次方框图和

25、层次方框图和WarnierWarnier图图 (3 3)数据结构规范化)数据结构规范化 第三章第三章 需求分析需求分析33 4 4、需求分析过程建立、需求分析过程建立三种模型三种模型u数据模型:实体数据模型:实体-联系图联系图u功能模型:数据流图功能模型:数据流图u行为模型:状态转换图行为模型:状态转换图u数据字典数据字典是分析模型的核心是分析模型的核心第三章第三章 需求分析需求分析5 5、实体、实体-联系图联系图 数据模型中包含数据模型中包含3 3种种相互关联的信息:相互关联的信息:数据对象数据对象、数据、数据 对象的对象的属性属性、数据对象彼此间相互连接的、数据对象彼此间相互连接的关系。关

26、系。联系可分为以下三种类型:联系可分为以下三种类型:一对一一对一,一对多一对多和和多对多对34 6 6、范式:、范式:第一范式、第二范式、第三范式第一范式、第二范式、第三范式35 第三章第三章 需求分析需求分析7 7、状态转换图、状态转换图 通过描绘系统的通过描绘系统的状态状态及引起系统状态转换的及引起系统状态转换的事件事件,来表,来表示系统的示系统的行为行为。36 37 38 8 8、层次方框图、层次方框图 用用树形结构树形结构的一系列的一系列多层次的矩形框多层次的矩形框描绘描绘的层次的层次结构结构。第三章第三章 需求分析需求分析39 9 9、WarnierWarnier图图 Warnier

27、Warnier图也用图也用树形结构树形结构描绘信息,但是这种图形工具描绘信息,但是这种图形工具比层次方框图提供了比层次方框图提供了更丰富的描绘手段更丰富的描绘手段。第三章第三章 需求分析需求分析软件产品的软件产品的Warnier图图40 1010、IPOIPO图图 是是输入输入、处理处理、输出图输出图的简称,能够方便地描绘的简称,能够方便地描绘输入数据输入数据、对、对数据的处理数据的处理和和输出数据输出数据之间的关系。之间的关系。第三章第三章 需求分析需求分析主文件更新处理的主文件更新处理的IPO图图41 第三章第三章 需求分析需求分析 复习重点:复习重点:需求分析的任务需求分析的任务 需求分

28、析阶段建立需求分析阶段建立3 3种模型:种模型:u 数据模型数据模型u 功能模型功能模型u 行为模型行为模型 实体实体-联系图(联系图(E-RE-R图)的画法图)的画法42 第四章第四章 形式化说明技术形式化说明技术软件工软件工程的使程的使用方法用方法非形式化:用自然语言描述需求规格说明非形式化:用自然语言描述需求规格说明半形式化:用数据流图或实体半形式化:用数据流图或实体联系图联系图 建立模型建立模型形式化:描述系统性质的基于数学的技术形式化:描述系统性质的基于数学的技术43 第五章第五章 总体设计总体设计1 1、总体设计的目的、总体设计的目的“概括地说,系统应当概括地说,系统应当如何实现如

29、何实现”,因此总体设计又称为,因此总体设计又称为概要设概要设计计或者或者初步设计初步设计。2 2、总体设计的过程、总体设计的过程由两个主要阶段组成:由两个主要阶段组成:系统设计系统设计阶段,确定系统的具体实现方案:阶段,确定系统的具体实现方案:包括:设想供选择的方案、选取合理的方案、推荐最佳方案。包括:设想供选择的方案、选取合理的方案、推荐最佳方案。结构设计结构设计阶段,确定软件结构阶段,确定软件结构:包括:功能分解、设计软件结构、设计数据库、制定测试文档包括:功能分解、设计软件结构、设计数据库、制定测试文档、书写文档、审查和复查。、书写文档、审查和复查。3 3、模块、模块是由是由边界元素边界

30、元素限定的相邻程序元素的序列,而且有一个总体标识限定的相邻程序元素的序列,而且有一个总体标识符代表它。符代表它。44 第五章第五章 总体设计总体设计4 4、模块化、模块化 就是把程序就是把程序划分成划分成独立命名且可独立访问的模块,每个模块完独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来够成一个整体,可以完成指成一个子功能,把这些模块集成起来够成一个整体,可以完成指定的功能满足用户的需求。定的功能满足用户的需求。每个程序都相应地有一个每个程序都相应地有一个最适当的模块数目最适当的模块数目M,使得系统的,使得系统的开开发成本最小发成本最小。5 5、模块化的作用、模块化的作

31、用模块化可以使模块化可以使软件结构清晰软件结构清晰,不仅容易设计也,不仅容易设计也容易阅读和理解容易阅读和理解;模块化使软件模块化使软件容易测试和调试容易测试和调试,因而有助于提,因而有助于提高软件的可靠性高软件的可靠性;模块化能够模块化能够提高软件的可修改性提高软件的可修改性;模块化也有助于模块化也有助于软件开发工程的组织管理软件开发工程的组织管理。45 第五章第五章 总体设计总体设计6 6、抽象、抽象抽象就是抽象就是抽出事物本质抽出事物本质特性而特性而暂时不考虑细节暂时不考虑细节。是人类处理复杂。是人类处理复杂问题的基本方法之一问题的基本方法之一7 7、逐步求精、逐步求精为了能集中精力为了

32、能集中精力解决主要问题解决主要问题而尽量而尽量推迟推迟对问题对问题细节的考虑细节的考虑。8 8、信息隐藏、信息隐藏 设计和确定模块,使得一个模块设计和确定模块,使得一个模块内包含的信息内包含的信息(过程和数据过程和数据)对于不对于不需要这些信息的模块来说,是需要这些信息的模块来说,是不能访问的不能访问的。9 9、局部化、局部化 指把一些关系指把一些关系密切的软件元素密切的软件元素物理地物理地放得彼此靠近放得彼此靠近。显然,局部。显然,局部化有助于实现信息隐藏。化有助于实现信息隐藏。46 第五章第五章 总体设计总体设计1010、模块独立性、模块独立性使得每个模块完成一个使得每个模块完成一个相对独

33、立的特定子功能相对独立的特定子功能,并且和其他,并且和其他模块模块之间的关系很简单。之间的关系很简单。即即功能专一功能专一,模块之间,模块之间无过多的相互作用无过多的相互作用的模块。的模块。1111、模块独立程度的两个定性标准度量、模块独立程度的两个定性标准度量 两个标准分别称为两个标准分别称为内聚内聚和和耦合耦合。1212、耦合、耦合是对一个软件结构内是对一个软件结构内不同模块之间互连程度不同模块之间互连程度的度量。的度量。耦合要低耦合要低,即每个即每个模块和其他模块之间的关系要简单模块和其他模块之间的关系要简单;1313、内聚、内聚 是衡量一个模块是衡量一个模块内部各个元素彼此结合的紧密程

34、度内部各个元素彼此结合的紧密程度。内聚要高内聚要高,每个模块完成一个相对独立的特定子功能。理想内聚的模块只,每个模块完成一个相对独立的特定子功能。理想内聚的模块只做一件事情。做一件事情。47 1414、耦合的种类(、耦合的种类(6 6种种)(1)非直接耦合非直接耦合/完全独立完全独立:两个模块中的每一个都能独立地工作而不需要另一个模:两个模块中的每一个都能独立地工作而不需要另一个模块的存在;块的存在;(2)数据耦合)数据耦合:两个模块彼此间通过:两个模块彼此间通过参数交换信息参数交换信息,而且交换的信息仅仅是,而且交换的信息仅仅是数据数据;(3)控制耦合)控制耦合:两个模块彼此间传递的信息中:

35、两个模块彼此间传递的信息中有控制信息有控制信息;(4)特征耦合)特征耦合:把:把整个数据结构整个数据结构作为参数传递而被调用的模块作为参数传递而被调用的模块只需要使用其中一部只需要使用其中一部分数据元素分数据元素时,就出现了特征耦合;时,就出现了特征耦合;(5)公共环境耦合)公共环境耦合:两个或多个模块通过:两个或多个模块通过一个公共数据环境一个公共数据环境相互作用时,它们之间相互作用时,它们之间的耦合称为公共环境耦合;的耦合称为公共环境耦合;(6)内容耦合)内容耦合:最高程度的耦合是:最高程度的耦合是内容耦合内容耦合。如果出现下列情况之一,两个模块间就发生了内容耦合:如果出现下列情况之一,两

36、个模块间就发生了内容耦合:u 一个模块一个模块访问另一个模块的内部数据访问另一个模块的内部数据;u 一个模块一个模块不通过正常入口转到另一个模块的内部不通过正常入口转到另一个模块的内部;u 两个模块有一部分程序两个模块有一部分程序代码重叠代码重叠;u 一个模块一个模块有多个入口有多个入口。设计原则:设计原则:尽量使用数据耦合,尽量使用数据耦合,少用少用控制耦合和特征耦合,控制耦合和特征耦合,限制限制公共环境耦合的范围公共环境耦合的范围,完全不用完全不用内容耦合。内容耦合。48 1515、内聚的种类、内聚的种类(7种种)(1)偶然内聚)偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关

37、系也是很松:一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。散的,就叫做偶然内聚。(2)逻辑内聚)逻辑内聚:一个模块完成的任务在一个模块完成的任务在逻辑上逻辑上属于属于相同相同或或相似相似的一类,则称为逻辑内的一类,则称为逻辑内聚。聚。(3)时间内聚:)时间内聚:一个模块包含的任务一个模块包含的任务必须在同一段时间内执行必须在同一段时间内执行,就叫时间内聚。,就叫时间内聚。(4)过程内聚)过程内聚:一个模块内的:一个模块内的处理元素是相关的处理元素是相关的,而且必须以,而且必须以特定次序执特定次序执行,则称为行,则称为过程内聚。过程内聚。(5)通信内聚)通信内

38、聚:模块中所有元素都:模块中所有元素都使用同一个输入数据使用同一个输入数据和和(或或)产生同一个输出数据产生同一个输出数据,则,则称为通信内聚。即在称为通信内聚。即在同一个数据结构上操作同一个数据结构上操作。(6)顺序内聚)顺序内聚:一个模块内的处理元素和:一个模块内的处理元素和同一个功能密切相关同一个功能密切相关,而且这些处理,而且这些处理必须顺必须顺序执行序执行,则称为顺序内聚。,则称为顺序内聚。(7)功能内聚:)功能内聚:如果模块内所有处理元素如果模块内所有处理元素属于一个整体属于一个整体,完成,完成一个单一的功能一个单一的功能,则称,则称为功能内聚。功能内聚是为功能内聚。功能内聚是最高

39、程度的内聚最高程度的内聚。高内聚:功能内聚高内聚:功能内聚、顺序内聚、顺序内聚 中内聚:通信内聚中内聚:通信内聚、过程内聚、过程内聚 低内聚:时间内聚低内聚:时间内聚、逻辑内聚、偶然内聚、逻辑内聚、偶然内聚49 1515、启发性规则、启发性规则(7条条)(1)改进软件结构提高模块独立性:)改进软件结构提高模块独立性:通过模块通过模块分解或合并分解或合并,降低耦合降低耦合提高内聚提高内聚。(2)模块规模应该适中)模块规模应该适中:过大的模块往往是由于分解不充分,过小的模块将导致:过大的模块往往是由于分解不充分,过小的模块将导致模块数目过多将使系统接口复杂。模块数目过多将使系统接口复杂。(3)深度

40、、宽度、扇出和扇入都应适当)深度、宽度、扇出和扇入都应适当:u 深度:软件结构中深度:软件结构中控制的层数;控制的层数;u 宽度:软件结构内同一个层次上的宽度:软件结构内同一个层次上的模块总数的最大值模块总数的最大值;u 扇出:一个模块扇出:一个模块直接控制直接控制(调用调用)的模块数目的模块数目;u 扇入:有多少个扇入:有多少个上级模块直接调用它上级模块直接调用它。50 1515、启发性规则、启发性规则(7条条)(4)模块的作用域应该在控制域之内:)模块的作用域应该在控制域之内:u模块的作用域:定义为受该模块内一个模块的作用域:定义为受该模块内一个判定影判定影响的所有模块的集合。响的所有模块

41、的集合。u模块的控制域:是这个模块模块的控制域:是这个模块本身以及所有直接或间接从属于它本身以及所有直接或间接从属于它的模块的集合的模块的集合。(5)力争降低模块接口的复杂程度。)力争降低模块接口的复杂程度。(6)设计单入口单出口的模块。)设计单入口单出口的模块。(7)模块功能应该可以预测:)模块功能应该可以预测:功能可预测:功能可预测:如果一个模块可以当做一个黑盒子,只要输入的数据相同就产生如果一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。同样的输出,这个模块的功能就是可以预测的。51 1616、层次图层次图(H图图)层次图层次图用来描绘用来描

42、绘软件的层次结构。软件的层次结构。很适于在很适于在自顶向下自顶向下设计软件的过程中使用设计软件的过程中使用。与层次方框图的区别是:与层次方框图的区别是:层次方框图层次方框图描绘的是描绘的是数据结构数据结构。52 1717、HIPO图图 HIPO图是图是“层次图层次图+输入输入/处理处理/输出图输出图”的英文缩写。的英文缩写。为了能使为了能使HIPO图具有图具有可追踪性可追踪性,在,在H图图(层次图层次图)里除了最顶层的方框之外,里除了最顶层的方框之外,每个方框都加了每个方框都加了编号编号。和和H图中每个方框相对应,应该有一张图中每个方框相对应,应该有一张IPO图图描绘这个方框代表的模块的处理描

43、绘这个方框代表的模块的处理过程。过程。53 1818、面向数据流的设计方法面向数据流的设计方法 面向数据流的设计方法可以面向数据流的设计方法可以把数据流图变换成软件结构把数据流图变换成软件结构。通常所说的通常所说的结构结构化设计方法化设计方法(简称简称SD方法方法),也就是基于,也就是基于数据流的设计方法。数据流的设计方法。1919、信息流有两种类型信息流有两种类型u变换流变换流u事务流事务流2020、变换分析变换分析 把具有把具有变换流特点变换流特点的的数据流图数据流图按预先确定的模式按预先确定的模式映射成映射成软件结构软件结构。54 2121、变换分析变换分析设计步骤设计步骤(1)复查基本

44、系统模型复查基本系统模型:确保系统的:确保系统的输入数据输入数据和和输出数据输出数据符合实际符合实际。(2)复查并精化数据流图:确保数据流图给出了)复查并精化数据流图:确保数据流图给出了正确的逻辑模型正确的逻辑模型,使数据流,使数据流图中图中每个处理每个处理都代表一个都代表一个相对独立的子功能相对独立的子功能。(3)确定确定数据流图具有数据流图具有变换特性变换特性还是还是事务特性事务特性。(4)确定)确定输入流输入流和和输出流输出流的的边界边界,从而,从而孤立孤立出出变换中心。变换中心。55 2121、变换分析变换分析设计步骤设计步骤(5)完成完成“第一级分解第一级分解”。最顶层的控制模块协调

45、下述从属的控制功能。最顶层的控制模块协调下述从属的控制功能。输入信息处理输入信息处理控制模块控制模块Ca,协调协调对所有对所有输入数据的接收输入数据的接收;变换中心控制变换中心控制模块模块Ct,管理对内部形式的管理对内部形式的数据的所有处理操作数据的所有处理操作;输出信息处理输出信息处理控制模块控制模块Ce,协调,协调输出信息的产生过程输出信息的产生过程。56 2121、变换分析变换分析设计步骤设计步骤(6)完成完成“第第二二级分解级分解”。输入部分、输入部分、转换部分、输出部分分别转换部分、输出部分分别映射成接映射成接收模块、收模块、处理模块、输出模块。处理模块、输出模块。从变换中心的从变换

46、中心的边界开始边界开始沿沿输入通路向外移动输入通路向外移动,把输入通路中,把输入通路中每个处理每个处理映射成软件结构中映射成软件结构中Ca控制下的控制下的一个低层模块一个低层模块;然后沿然后沿输出通路向外移动输出通路向外移动,把输出通路中,把输出通路中每个处理每个处理映射成直接或间接受映射成直接或间接受模块模块Ce控制的控制的一个低层模块一个低层模块;最后把最后把变换中心内变换中心内的的每个处理每个处理映射成受映射成受Ct控制的控制的一个处理模块一个处理模块。57 2121、变换分析变换分析设计步骤设计步骤(6)完成完成“第第二二级分解级分解”(7)使用设计度量和启发式规则对第一次分割得到的软

47、件结构进一步精化使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化58 2222、事物分析事物分析59 2323、举例举例根据根据储蓄系统的数据流图储蓄系统的数据流图利用利用面向数据流的设计方法面向数据流的设计方法设计其设计其软件结构软件结构60 2323、举例举例根据根据储蓄系统的数据流图储蓄系统的数据流图利用利用面向数据流的设计方法面向数据流的设计方法设计其设计其软件结构软件结构61 第五章第五章 总体设计总体设计 复习重点:复习重点:总体设计的目的总体设计的目的 模块化模块化 模块独立及度量标准模块独立及度量标准 耦合、内聚及其种类耦合、内聚及其种类 启发性规则启发性规则 面向

48、数据流的设计方法面向数据流的设计方法62 第六章第六章 详细设计设计详细设计设计1 1、总体设计的目的、总体设计的目的确定确定应该怎样具体地实现应该怎样具体地实现所要求的系统所要求的系统。2 2、结构程序设计、结构程序设计u 经典的经典的结构程序设计:只允许使用结构程序设计:只允许使用顺序顺序、IF-THEN-ELSE型分支型分支和和DO-WHILE型循环这型循环这3种基本控制结构种基本控制结构;u 扩展的扩展的结构程序设计:如果除了上述结构程序设计:如果除了上述3种基本控制结构之外,还允种基本控制结构之外,还允许使用许使用DO-CASE型多分支结构和型多分支结构和DO-UNTIL型循环结构;

49、型循环结构;u 修正的修正的结构程序设计:再加上允许使用结构程序设计:再加上允许使用LEAVE(或或BREAK)结构。结构。描述描述程序处理过程的工具程序处理过程的工具叫程序设计工具叫程序设计工具,分为,分为图形图形、表格表格、和、和语言语言3 3类,必须提供对设计的无歧义的描述。包括:程序流程图类,必须提供对设计的无歧义的描述。包括:程序流程图(程序框图)、盒图(程序框图)、盒图(N-S(N-S图图)、PADPAD图、判定表、判定树、过程设图、判定表、判定树、过程设计语言计语言(伪码)。伪码)。3 3、过程设计工具、过程设计工具63 4 4、程序流程图、程序流程图程序流程图又称为程序流程图又

50、称为程序框图程序框图,它是历史最悠久、使用最广,它是历史最悠久、使用最广泛描述过程设计的方法。也是用的泛描述过程设计的方法。也是用的最混乱最混乱的一种方法。的一种方法。64 5 5、盒图、盒图(N-S(N-S图图)出于要有一种出于要有一种不允许违背结构程序设计不允许违背结构程序设计精神的精神的图形工具图形工具的考虑,的考虑,Nassi和和Shneiderman提出了盒图,又称为提出了盒图,又称为N-S图。图。65 6 6、PADPAD图图是问题分析图是问题分析图(problem analysis diagram)的英文缩写,它用二的英文缩写,它用二维树形结构的图来表示程序的控制流,将这种图翻译

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

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


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

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


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