




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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)
5、面向对象方法学)面向对象方法学4个要点:个要点: 对象;对象; 类;类; 继承;继承; 消息消息软件工程软件工程 第一章第一章 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、软件过程、软件过程 为为获得高质量软件所需要完成的获得高质量软件所需要完成的一系列任务的框架一系列任务的框架,它规定,它规定了完成各项任务的了完成各项任务的工作步骤工作步骤。是软件工程三要素之一的是软件工程三要素之一的过程
8、过程。9 9、软件生命周期模型、软件生命周期模型 软件过程通常用软件过程通常用软件生命周期模型软件生命周期模型来描述,它规定了把生命来描述,它规定了把生命周期周期划分成哪些阶段划分成哪些阶段以及各个以及各个阶段执行的顺序阶段执行的顺序,也称为过程,也称为过程模型。模型。1010、典型的生命周期模型、典型的生命周期模型 瀑布模型、瀑布模型、 快速原型模型快速原型模型 增量模型、增量模型、 螺旋模型螺旋模型 喷泉模型喷泉模型软件工程软件工程 第一章第一章 9 1111、瀑布模型、瀑布模型、 软件工程软件工程 第一章第一章 实际的瀑布模型实际的瀑布模型传统的瀑布模型传统的瀑布模型10 1212、快速
9、原型模型、快速原型模型 软件工程软件工程 第一章第一章 实线箭头实线箭头表示开发过程表示开发过程 虚线箭头虚线箭头表示维护过程表示维护过程11 1313、增量模型、增量模型软件工程软件工程 第一章第一章 增量模型增量模型风险更大的增量模型风险更大的增量模型12 1414、螺旋模型:增加了、螺旋模型:增加了风险分析风险分析过程的过程的快速原型快速原型。 软件工程软件工程 第一章第一章 简单得螺旋模型简单得螺旋模型完整的螺旋模型完整的螺旋模型13 1515、喷泉模型:、喷泉模型:面向对象软件开发迭代迭代和无缝无缝的特性软件工程软件工程 第一章第一章 喷泉模型喷泉模型14 1616、各模型特点、各模
10、型特点瀑布模型的特点:瀑布模型的特点:1.阶段间具有顺序性和依赖性。 2.推迟实现的观点。3.质量保证的观点。快速原型:快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。增量模型:增量模型:它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。螺旋模型:螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。(使用于内部开发的大规模软件项目)喷泉模型:喷泉模型:强调的是“迭代”和“无缝“的特性,是典型的面
11、向对象的软件过程模型之一。15 复习重点复习重点软件危机软件工程软件工程三要素软件生命周期包含的过程(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、图: 是概括性地描绘是概括性地描绘物理系统物理系统的传统工具,它的基本思想是用的传统工具,它的基本思想是用图形图形符号符号以以黑盒子形式黑盒子形式描绘描绘组成系统的每个部件组成系统的每个部件。 系统流程图表达的是系统流程图表达的是数据在系统各部件之间流动的情况数据在系统各部件之间流动的情况,而,而不是不是对数据进行加工处理对数据进行加工处理的控制过程,因此尽管系统流程图的某些的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却符号和程序流程图的符号形式相同,但是它却是物理数据流图是物理数据流图而而不是程序流程图不是程序流程图。基本符号如下。基本符号如下第二章第二章 可行
14、性研究可行性研究18 库存清单系统的系统流程图库存清单系统的系统流程图19 4 4、数据流图(、数据流图(DFDDFD) 是一种图形化技术,它描绘信息流和数据从是一种图形化技术,它描绘信息流和数据从输入输入移动到移动到输输出出的过程中所的过程中所经受的变换经受的变换。 在数据流图中没有任何具体的物理部件,它只是描绘数据在数据流图中没有任何具体的物理部件,它只是描绘数据在软件在软件中中流动和被处理流动和被处理的的逻辑过程。基本符逻辑过程。基本符号如下号如下:第二章第二章 可行性研究可行性研究20 附加符号:附加符号: 星号(星号(* *):表示):表示“与与”关系;关系; 加号(加号(+ +):
15、表):表示示“或或”关系关系 异或(异或():表示互斥关系):表示互斥关系第二章第二章 可行性研究可行性研究21 5 5、画数据流图的步骤:、画数据流图的步骤: (1 1)从问题描述中提取数据流图的)从问题描述中提取数据流图的4 4种成分:种成分:u数据的源点数据的源点/ /终点终点u处理:处于静止状态的数据处理:处于静止状态的数据u数据流:处于运动中的数据数据流:处于运动中的数据u数据存储:数据存储: (2 2)画基本系统模型)画基本系统模型 (3 3)细化,描绘系统的主要功能(功能级数据流图)细化,描绘系统的主要功能(功能级数据流图) (4 4)对系统主要功能进一步细化)对系统主要功能进一
16、步细化22 6 6、画数据流图举例:、画数据流图举例: 银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的工作过程大致如下: 储户填写的存款单或取款单由业务员键入系统,如果是储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址存款则系统记录存款人姓名、住址( (或电话号码或电话号码) )、身份证、身份证号码、存款类型、存款日期、到期日期、利率及密码号码、存款类型、存款日期、到期日期、利率及密码( (可可选选) )等信息,并印出存单给储户;等信息,并印出存单给储户; 如果是取款而且存款时留有密码,则系统首先核对储户如果是取款而且存款时留有密码,则系统首先核对储户
17、密码,若密码正确或存款时未留密码,则系统计算利息并密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。印出利息清单给储户。23 第一步:第一步: 提取数据流图的提取数据流图的四种成分四种成分: 数据源点和终点数据源点和终点:业务员、储户:业务员、储户 处理:处理: ( (1) 1) 事物处理事物处理 ( (2) 2) 处理存款处理存款 (3 3)处理取款)处理取款 数据存储:数据存储: (1) (1) 存款信息存款信息 (2)(2) 取款信息取款信息 数据流:数据流: 事物、存款单、存单事物、存款单、存单 密码密码 、取款单、利息清单、取款单、利息清单24 顶层数据流图顶层数
18、据流图第二步:画基本数据流图第二步:画基本数据流图25 功能级数据流图功能级数据流图第三步:画功能级数据流图第三步:画功能级数据流图 26 细化的数据流图细化的数据流图第四步:第四步:对系统主要功能进一步细化对系统主要功能进一步细化27 7 7、数据字典:、数据字典: 数据的信息的集合,也就是对数据的信息的集合,也就是对数据流图数据流图中包含的中包含的所有元素所有元素的的定义定义的集合。的集合。 可行性研究阶段,可行性研究阶段,数据流图数据流图与与数据字典数据字典共同构成系统的共同构成系统的逻辑模逻辑模型型。没有数据字典,数据流图就不严格,然而没有数据流图,。没有数据字典,数据流图就不严格,然
19、而没有数据流图,数据字典也难于发挥作用。数据字典也难于发挥作用。 数据字典应该由对下列数据字典应该由对下列4 4类元素类元素的定义组成:数据流、数据流的定义组成:数据流、数据流分量(数据元素)、数据存储和处理。分量(数据元素)、数据存储和处理。 由由数据元素组成数据数据元素组成数据的方式只有下述的方式只有下述3 3种基本类型种基本类型:顺序、选:顺序、选择、重复和可选。择、重复和可选。 数据定义符号:数据定义符号:= + ( )= + ( ) = = 等价于等价于 ;+ + 和即连接;和即连接; 选择一个;选择一个; 重复重复 ;( )( )可选可选28 8 8、定义数据的方法、定义数据的方法
20、 数据组成方式数据组成方式( (三种基本类型三种基本类型) ):顺序:顺序 选择选择 重复重复 附加类型附加类型:可选可选 数据定义符号:数据定义符号:= + ( )= + ( ) 含义:含义: = = 意思是等价于意思是等价于( (或定义为或定义为) ); + + 意思是和意思是和( (即,连接两个分量即,连接两个分量) ); 意思是或意思是或( (即,从方括弧内列出的若干个分量中选择一个即,从方括弧内列出的若干个分量中选择一个) ),通常用通常用“|”|”号隔开供选择的分量;号隔开供选择的分量; 意思是重复意思是重复( (即,重复花括弧内的分量即,重复花括弧内的分量) );常常使用上限;常
21、常使用上限和下限进一步注释表示重复的花括弧。和下限进一步注释表示重复的花括弧。 ( )( ) 意思是可选意思是可选( (即,圆括弧里的分量可有可无即,圆括弧里的分量可有可无) )。29 电话定义电话定义-应用举例应用举例 北京某高校可用的北京某高校可用的电话号码电话号码有有以下几类:以下几类: 校内电话校内电话号码由号码由4 4位数字组成,位数字组成, 第第1 1位数字不是位数字不是0 0; 校外电话校外电话又分为又分为本市电话本市电话和和外外 地电话地电话两类;两类; a)a)拨校外电话需先拨拨校外电话需先拨0 0,若,若是本市电话则再接着拨是本市电话则再接着拨8 8位数位数 字字( (第第
22、1 1位不是位不是0)0); b)b)若是外地电话则拨若是外地电话则拨3 3位区位区码再拨码再拨8 8位电话号码位电话号码( (第第1 1位不位不是是0)0)。请用定义请用定义数据字典数据字典的方法,定义的方法,定义上述的上述的电话号码电话号码。电话号码电话号码=校内电话号码校内电话号码| |校外电话号码校外电话号码 校内电话号码校内电话号码= =非零数字非零数字+ 3 + 3 位数字位数字 /后面继续定义后面继续定义校外电话号码校外电话号码=本市号码本市号码| |外地号码外地号码 本市号码本市号码= =数字零数字零+8+8位数字位数字外地号码外地号码= =数字零数字零+3+3位数字位数字+8
23、+8位数字位数字非零数字非零数字=1|2|3|4|5|6|7|8|9=1|2|3|4|5|6|7|8|9数字零数字零0 03 3位数字位数字33数字数字3 /3 /3 3至至3 3个数字个数字8 8位数字位数字= =非零数字非零数字+7+7位数字位数字7 7位数字位数字=7=7数字数字77数字数字0|1|2|3|4|5|6|7|8|90|1|2|3|4|5|6|7|8|930 9 9、成本、成本/ /效益分析的目标效益分析的目标 正式要从正式要从经济角度分析经济角度分析开发一个特定的新系统开发一个特定的新系统是否划算是否划算,从而,从而帮助客户组织的负责人帮助客户组织的负责人正确地做出是否投资
24、于这项开发工程正确地做出是否投资于这项开发工程的决定。的决定。第二章可行性研究第二章可行性研究31 复习重点:复习重点: 可行性研究的目的可行性研究的目的 可行性研究的内容可行性研究的内容 数据流图的画法数据流图的画法 数据字典的实现数据字典的实现第二章第二章 可行性研究可行性研究32 1 1、需求分析的任务、需求分析的任务 准确地回答准确地回答“系统必须做什么系统必须做什么”这个问题。而这个问题。而不必研究不必研究“如何如何做做”。 需求分析的结果,是提供需求分析的结果,是提供准确完整准确完整的的软件需求规格说明书软件需求规格说明书。2 2、软件系统的、软件系统的综合要求综合要求 功能需求、
25、功能需求、 性能需求、可靠性和可用性需求、出错处理需求性能需求、可靠性和可用性需求、出错处理需求 接口需求、接口需求、 约束约束 、 逆向需求逆向需求 、 将来可能提出的要求将来可能提出的要求3 3、分析系统的、分析系统的数据要求数据要求 (1 1)建立数据模型)建立数据模型E-RE-R图图 (2 2)描绘数据结构)描绘数据结构层次方框图和层次方框图和WarnierWarnier图图 (3 3)数据结构规范化)数据结构规范化 第三章第三章 需求分析需求分析33 4 4、需求分析过程建立、需求分析过程建立三种模型三种模型u数据模型:实体数据模型:实体- -联系图联系图u功能模型:数据流图功能模型
26、:数据流图u行为模型:状态转换图行为模型:状态转换图数据字典数据字典是分析模型的核心是分析模型的核心第三章第三章 需求分析需求分析5 5、实体、实体- -联系图联系图 数据模型中包含数据模型中包含3 3种种相互关联的信息:相互关联的信息:数据对象数据对象、数据、数据 对象的对象的属性属性、数据对象彼此间相互连接的、数据对象彼此间相互连接的关系。关系。 联系可分为以下三种类型:联系可分为以下三种类型:一对一一对一,一对多一对多和和多对多对34 6 6、范式:、范式:第一范式、第二范式、第三范式第一范式、第二范式、第三范式35 第三章第三章 需求分析需求分析7 7、状态转换图、状态转换图 通过描绘
27、系统的通过描绘系统的状态状态及引起系统状态转换的及引起系统状态转换的事件事件,来表,来表示系统的示系统的行为行为。 36 37 38 8 8、层次方框图、层次方框图 用用树形结构树形结构的一系列的一系列多层次的矩形框多层次的矩形框描绘描绘的层次的层次结构结构。 第三章第三章 需求分析需求分析39 9 9、WarnierWarnier图图 WarnierWarnier图也用图也用树形结构树形结构描绘信息,但是这种图形工具描绘信息,但是这种图形工具比层次方框图提供了比层次方框图提供了更丰富的描绘手段更丰富的描绘手段。 第三章第三章 需求分析需求分析软件产品的软件产品的Warnier图图40 101
28、0、IPOIPO图图 是是输入输入、处理处理、输出图输出图的简称,能够方便地描绘的简称,能够方便地描绘输入数据输入数据、对、对数据的处理数据的处理和和输出数据输出数据之间的关系。之间的关系。第三章第三章 需求分析需求分析主文件更新处理的主文件更新处理的IPO图图41 第三章第三章 需求分析需求分析 复习重点:复习重点: 需求分析的任务需求分析的任务 需求分析阶段建立需求分析阶段建立3 3种模型:种模型:u 数据模型数据模型u 功能模型功能模型u 行为模型行为模型 实体实体- -联系图(联系图(E-RE-R图)的画法图)的画法42 第四章第四章 形式化说明技术形式化说明技术软件工软件工程的使程的
29、使用方法用方法非形式化:用自然语言描述需求规格说明非形式化:用自然语言描述需求规格说明半形式化:用数据流图或实体半形式化:用数据流图或实体联系图联系图 建立模型建立模型形式化:描述系统性质的基于数学的技术形式化:描述系统性质的基于数学的技术43 第五章第五章 总体设计总体设计1 1、总体设计的目的、总体设计的目的“概括地说,系统应当概括地说,系统应当如何实现如何实现”,因此总体设计又称为,因此总体设计又称为概要设概要设计计或者或者初步设计初步设计。2 2、总体设计的过程、总体设计的过程由两个主要阶段组成:由两个主要阶段组成: 系统设计系统设计阶段,确定系统的具体实现方案:阶段,确定系统的具体实
30、现方案: 包括:设想供选择的方案、选取合理的方案、推荐最佳方案。包括:设想供选择的方案、选取合理的方案、推荐最佳方案。结构设计结构设计阶段,确定软件结构阶段,确定软件结构: 包括:功能分解、设计软件结构、设计数据库、制定测试文档包括:功能分解、设计软件结构、设计数据库、制定测试文档、书写文档、审查和复查。、书写文档、审查和复查。3 3、模块、模块是由是由边界元素边界元素限定的相邻程序元素的序列,而且有一个总体标识限定的相邻程序元素的序列,而且有一个总体标识符代表它。符代表它。44 第五章第五章 总体设计总体设计4 4、模块化、模块化 就是把程序就是把程序划分成划分成独立命名且可独立访问的模块,
31、每个模块完独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来够成一个整体,可以完成指成一个子功能,把这些模块集成起来够成一个整体,可以完成指定的功能满足用户的需求。定的功能满足用户的需求。 每个程序都相应地有一个每个程序都相应地有一个最适当的模块数目最适当的模块数目M,使得系统的,使得系统的开开发成本最小发成本最小。 5 5、模块化的作用、模块化的作用模块化可以使模块化可以使软件结构清晰软件结构清晰,不仅容易设计也,不仅容易设计也容易阅读和理解容易阅读和理解; 模块化使软件模块化使软件容易测试和调试容易测试和调试,因而有助于提,因而有助于提高软件的可靠性高软件的可靠性;模块
32、化能够模块化能够提高软件的可修改性提高软件的可修改性; 模块化也有助于模块化也有助于软件开发工程的组织管理软件开发工程的组织管理。45 第五章第五章 总体设计总体设计6 6、抽象、抽象抽象就是抽象就是抽出事物本质抽出事物本质特性而特性而暂时不考虑细节暂时不考虑细节。是人类处理复杂。是人类处理复杂问题的基本方法之一问题的基本方法之一7 7、逐步求精、逐步求精为了能集中精力为了能集中精力解决主要问题解决主要问题而尽量而尽量推迟推迟对问题对问题细节的考虑细节的考虑。8 8、信息隐藏、信息隐藏 设计和确定模块,使得一个模块设计和确定模块,使得一个模块内包含的信息内包含的信息(过程和数据过程和数据)对于
33、不对于不需要这些信息的模块来说,是需要这些信息的模块来说,是不能访问的不能访问的。9 9、局部化、局部化 指把一些关系指把一些关系密切的软件元素密切的软件元素物理地物理地放得彼此靠近放得彼此靠近。显然,局部。显然,局部化有助于实现信息隐藏。化有助于实现信息隐藏。 46 第五章第五章 总体设计总体设计1010、模块独立性、模块独立性使得每个模块完成一个使得每个模块完成一个相对独立的特定子功能相对独立的特定子功能,并且和其他,并且和其他模块模块之间的关系很简单。之间的关系很简单。即即功能专一功能专一,模块之间,模块之间无过多的相互作用无过多的相互作用的模块。的模块。1111、模块独立程度的两个定性
34、标准度量、模块独立程度的两个定性标准度量 两个标准分别称为两个标准分别称为内聚内聚和和耦合耦合。 1212、耦合、耦合是对一个软件结构内是对一个软件结构内不同模块之间互连程度不同模块之间互连程度的度量。的度量。耦合要低耦合要低,即每个即每个模块和其他模块之间的关系要简单模块和其他模块之间的关系要简单; 1313、内聚、内聚 是衡量一个模块是衡量一个模块内部各个元素彼此结合的紧密程度内部各个元素彼此结合的紧密程度。内聚要高内聚要高,每个模块完成一个相对独立的特定子功能。理想内聚的模块只,每个模块完成一个相对独立的特定子功能。理想内聚的模块只做一件事情。做一件事情。47 1414、耦合的种类(、耦
35、合的种类(6 6种种)(1) 非直接耦合非直接耦合/完全独立完全独立:两个模块中的每一个都能独立地工作而不需要另一个模:两个模块中的每一个都能独立地工作而不需要另一个模块的存在;块的存在;(2)数据耦合)数据耦合:两个模块彼此间通过:两个模块彼此间通过参数交换信息参数交换信息,而且交换的信息仅仅是,而且交换的信息仅仅是数据数据;(3)控制耦合)控制耦合:两个模块彼此间传递的信息中:两个模块彼此间传递的信息中有控制信息有控制信息;(4)特征耦合)特征耦合:把:把整个数据结构整个数据结构作为参数传递而被调用的模块作为参数传递而被调用的模块只需要使用其中一部只需要使用其中一部分数据元素分数据元素时,
36、就出现了特征耦合;时,就出现了特征耦合;(5)公共环境耦合)公共环境耦合:两个或多个模块通过:两个或多个模块通过一个公共数据环境一个公共数据环境相互作用时,它们之间相互作用时,它们之间的耦合称为公共环境耦合;的耦合称为公共环境耦合;(6)内容耦合)内容耦合:最高程度的耦合是:最高程度的耦合是内容耦合内容耦合。 如果出现下列情况之一,两个模块间就发生了内容耦合:如果出现下列情况之一,两个模块间就发生了内容耦合:u 一个模块一个模块访问另一个模块的内部数据访问另一个模块的内部数据;u 一个模块一个模块不通过正常入口转到另一个模块的内部不通过正常入口转到另一个模块的内部;u 两个模块有一部分程序两个
37、模块有一部分程序代码重叠代码重叠;u 一个模块一个模块有多个入口有多个入口。 设计原则:设计原则:尽量使用数据耦合,尽量使用数据耦合,少用少用控制耦合和特征耦合,控制耦合和特征耦合,限制限制公共环境耦合的范围公共环境耦合的范围,完全不用完全不用内容耦合。内容耦合。48 1515、内聚的种类、内聚的种类(7种种)(1)偶然内聚)偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松:一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。散的,就叫做偶然内聚。(2)逻辑内聚)逻辑内聚:一个模块完成的任务在一个模块完成的任务在逻辑上逻辑上属于属于相同相同或
38、或相似相似的一类,则称为逻辑内的一类,则称为逻辑内聚。聚。(3)时间内聚:)时间内聚:一个模块包含的任务一个模块包含的任务必须在同一段时间内执行必须在同一段时间内执行,就叫时间内聚。,就叫时间内聚。(4)过程内聚)过程内聚:一个模块内的:一个模块内的处理元素是相关的处理元素是相关的,而且必须以,而且必须以特定次序执特定次序执行,则称为行,则称为过程内聚。过程内聚。(5)通信内聚)通信内聚:模块中所有元素都:模块中所有元素都使用同一个输入数据使用同一个输入数据和和(或或)产生同一个输出数据产生同一个输出数据,则,则称为通信内聚。即在称为通信内聚。即在同一个数据结构上操作同一个数据结构上操作。(6
39、)顺序内聚)顺序内聚:一个模块内的处理元素和:一个模块内的处理元素和同一个功能密切相关同一个功能密切相关,而且这些处理,而且这些处理必须顺必须顺序执行序执行,则称为顺序内聚。,则称为顺序内聚。(7)功能内聚:)功能内聚:如果模块内所有处理元素如果模块内所有处理元素属于一个整体属于一个整体,完成,完成一个单一的功能一个单一的功能,则称,则称为功能内聚。功能内聚是为功能内聚。功能内聚是最高程度的内聚最高程度的内聚。 高内聚:功能内聚高内聚:功能内聚 、顺序内聚、顺序内聚 中内聚:通信内聚中内聚:通信内聚 、过程内聚、过程内聚 低内聚:时间内聚低内聚:时间内聚 、逻辑内聚、偶然内聚、逻辑内聚、偶然内
40、聚49 1515、启发性规则、启发性规则(7条条)(1)改进软件结构提高模块独立性:)改进软件结构提高模块独立性:通过模块通过模块分解或合并分解或合并,降低耦合降低耦合提高内聚提高内聚。(2)模块规模应该适中)模块规模应该适中:过大的模块往往是由于分解不充分,过小的模块将导致:过大的模块往往是由于分解不充分,过小的模块将导致模块数目过多将使系统接口复杂。模块数目过多将使系统接口复杂。(3)深度、宽度、扇出和扇入都应适当)深度、宽度、扇出和扇入都应适当:u 深度:软件结构中深度:软件结构中控制的层数;控制的层数;u 宽度:软件结构内同一个层次上的宽度:软件结构内同一个层次上的模块总数的最大值模块
41、总数的最大值;u 扇出:一个模块扇出:一个模块直接控制直接控制(调用调用)的模块数目的模块数目;u 扇入:有多少个扇入:有多少个上级模块直接调用它上级模块直接调用它。50 1515、启发性规则、启发性规则(7条条)(4)模块的作用域应该在控制域之内:)模块的作用域应该在控制域之内:u模块的作用域:定义为受该模块内一个模块的作用域:定义为受该模块内一个判定影判定影响的所有模块的集合。响的所有模块的集合。u模块的控制域:是这个模块模块的控制域:是这个模块本身以及所有直接或间接从属于它本身以及所有直接或间接从属于它的模块的集合的模块的集合 。(5)力争降低模块接口的复杂程度。)力争降低模块接口的复杂
42、程度。(6)设计单入口单出口的模块。)设计单入口单出口的模块。(7)模块功能应该可以预测:)模块功能应该可以预测: 功能可预测:功能可预测:如果一个模块可以当做一个黑盒子,只要输入的数据相同就产生如果一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。同样的输出,这个模块的功能就是可以预测的。51 1616、层次图层次图(H图图)层次图层次图用来描绘用来描绘软件的层次结构。软件的层次结构。很适于在很适于在自顶向下自顶向下设计软件的过程中使用设计软件的过程中使用。与层次方框图的区别是:与层次方框图的区别是:层次方框图层次方框图描绘的是描绘的是数据结构数据
43、结构。52 1717、HIPO图图 HIPO图是图是 “层次图层次图+ 输入输入 / 处理处理/输出图输出图”的英文缩写。的英文缩写。 为了能使为了能使HIPO图具有图具有可追踪性可追踪性,在,在H图图(层次图层次图)里除了最顶层的方框之外,里除了最顶层的方框之外,每个方框都加了每个方框都加了编号编号。 和和H图中每个方框相对应,应该有一张图中每个方框相对应,应该有一张IPO图图描绘这个方框代表的模块的处理描绘这个方框代表的模块的处理过程。过程。53 1818、面向数据流的设计方法面向数据流的设计方法 面向数据流的设计方法可以面向数据流的设计方法可以把数据流图变换成软件结构把数据流图变换成软件
44、结构。通常所说的通常所说的结构结构化设计方法化设计方法(简称简称SD方法方法),也就是基于,也就是基于数据流的设计方法。数据流的设计方法。 1919、信息流有两种类型信息流有两种类型u变换流变换流u事务流事务流2020、变换分析变换分析 把具有把具有变换流特点变换流特点的的数据流图数据流图按预先确定的模式按预先确定的模式映射成映射成软件结构软件结构。54 2121、变换分析变换分析设计步骤设计步骤(1)复查基本系统模型复查基本系统模型:确保系统的:确保系统的输入数据输入数据和和输出数据输出数据符合实际符合实际。(2)复查并精化数据流图:确保数据流图给出了)复查并精化数据流图:确保数据流图给出了
45、正确的逻辑模型正确的逻辑模型,使数据流,使数据流图中图中每个处理每个处理都代表一个都代表一个相对独立的子功能相对独立的子功能。 (3)确定确定数据流图具有数据流图具有变换特性变换特性还是还是事务特性事务特性。(4)确定)确定输入流输入流和和输出流输出流的的边界边界,从而,从而孤立孤立出出变换中心。变换中心。55 2121、变换分析变换分析设计步骤设计步骤(5)完成完成“第一级分解第一级分解”。最顶层的控制模块协调下述从属的控制功能。最顶层的控制模块协调下述从属的控制功能。 输入信息处理输入信息处理控制模块控制模块Ca,协调协调对所有对所有输入数据的接收输入数据的接收; 变换中心控制变换中心控制
46、模块模块Ct,管理对内部形式的管理对内部形式的数据的所有处理操作数据的所有处理操作; 输出信息处理输出信息处理控制模块控制模块Ce,协调,协调输出信息的产生过程输出信息的产生过程。 56 2121、变换分析变换分析设计步骤设计步骤(6)完成完成“第第二二级分解级分解”。输入部分、输入部分、转换部分、输出部分分别转换部分、输出部分分别映射成接映射成接收模块、收模块、处理模块、输出模块。处理模块、输出模块。 从变换中心的从变换中心的边界开始边界开始沿沿输入通路向外移动输入通路向外移动,把输入通路中,把输入通路中每个处理每个处理映射成软件结构中映射成软件结构中Ca控制下的控制下的一个低层模块一个低层
47、模块; 然后沿然后沿输出通路向外移动输出通路向外移动,把输出通路中,把输出通路中每个处理每个处理映射成直接或间接受映射成直接或间接受模块模块Ce控制的控制的一个低层模块一个低层模块; 最后把最后把变换中心内变换中心内的的每个处理每个处理映射成受映射成受Ct控制的控制的一个处理模块一个处理模块。57 2121、变换分析变换分析设计步骤设计步骤(6)完成完成“第第二二级分解级分解” (7)使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化58 2222、事物分析事物分析59 2323、举例举例根据根据储蓄系统的数据流图储蓄系统的
48、数据流图利用利用面向数据流的设计方法面向数据流的设计方法设计其设计其软件结构软件结构60 2323、举例举例根据根据储蓄系统的数据流图储蓄系统的数据流图利用利用面向数据流的设计方法面向数据流的设计方法设计其设计其软件结构软件结构61 第五章第五章 总体设计总体设计 复习重点:复习重点: 总体设计的目的总体设计的目的 模块化模块化 模块独立及度量标准模块独立及度量标准 耦合、内聚及其种类耦合、内聚及其种类 启发性规则启发性规则 面向数据流的设计方法面向数据流的设计方法62 第六章第六章 详细设计设计详细设计设计1 1、总体设计的目的、总体设计的目的确定确定应该怎样具体地实现应该怎样具体地实现所要
49、求的系统所要求的系统。2 2、结构程序设计、结构程序设计u 经典的经典的结构程序设计:只允许使用结构程序设计:只允许使用顺序顺序、IF-THEN-ELSE型分支型分支和和DO-WHILE型循环这型循环这3种基本控制结构种基本控制结构;u 扩展的扩展的结构程序设计:如果除了上述结构程序设计:如果除了上述3种基本控制结构之外,还允种基本控制结构之外,还允许使用许使用DO-CASE型多分支结构和型多分支结构和DO-UNTIL型循环结构;型循环结构;u 修正的修正的结构程序设计:再加上允许使用结构程序设计:再加上允许使用LEAVE(或或BREAK)结构。结构。描述描述程序处理过程的工具程序处理过程的工
50、具叫程序设计工具叫程序设计工具,分为,分为图形图形、表格表格、和、和语言语言3 3类,必须提供对设计的无歧义的描述。包括:程序流程图类,必须提供对设计的无歧义的描述。包括:程序流程图(程序框图)、盒图(程序框图)、盒图(N-S(N-S图图) )、PADPAD图、判定表、判定树、过程设图、判定表、判定树、过程设计语言计语言( (伪码)。伪码)。3 3、过程设计工具、过程设计工具63 4 4、程序流程图、程序流程图程序流程图又称为程序流程图又称为程序框图程序框图,它是历史最悠久、使用最广,它是历史最悠久、使用最广泛描述过程设计的方法。也是用的泛描述过程设计的方法。也是用的最混乱最混乱的一种方法。的
51、一种方法。64 5 5、盒图、盒图(N-S(N-S图图) )出于要有一种出于要有一种不允许违背结构程序设计不允许违背结构程序设计精神的精神的图形工具图形工具的考虑,的考虑,Nassi和和Shneiderman提出了盒图,又称为提出了盒图,又称为N-S图。图。65 6 6、PADPAD图图是问题分析图是问题分析图(problem analysis diagram)的英文缩写,它用二的英文缩写,它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。比较容易。 66 7 7、判定表判定表判定表却能够清晰地表示判定表却能够清晰地
52、表示复杂的条件组合复杂的条件组合与与应做的动作之间应做的动作之间的的对对应关系。应关系。67 8 8、判定判定树树是是判定表的变种判定表的变种,用树形的方式清晰地表示,用树形的方式清晰地表示复杂的条件组合复杂的条件组合与与应应做的动作之间做的动作之间的的对应关系对应关系。画判定树时画判定树时分枝的次序分枝的次序可能对可能对最终画出的判定树的简洁程度最终画出的判定树的简洁程度有较有较大影响。大影响。9 9、过程设计语言过程设计语言过程设计语言过程设计语言(PDL)也称为也称为伪码伪码,它是用,它是用正文形式正文形式表示表示数据和处数据和处理过程理过程的的设计工具设计工具。伪代码的基本控制结构:伪
53、代码的基本控制结构:简单陈述句结构简单陈述句结构:避免复合语句。:避免复合语句。判定结构判定结构:IF_THEN_ELSE或或CASE_OF结构。结构。选择结构选择结构:WHILE_DO或或REPEAT_UNTIL结构结构 68 例题:某程序例题:某程序流程图流程图如下图如下图所示,请分别用所示,请分别用N-SN-S图和图和PADPAD图表示。图表示。69 a UNTIL x8jbice WHILE x5dx1x2x3x4fgh UNTIL x7x6xi=PAD图:图:70 x8ajx1bTFfx6TFx7ighCASE xix2x4x3x5cdeN-S图图:71 例题:例题:某某校制定了校制
54、定了教师的讲课课时津贴标准教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是5050元;元;对于一般的授课,则根据教师的职称来决定每课时津贴费:教授对于一般的授课,则根据教师的职称来决定每课时津贴费:教授3030元,副教元,副教授授2525元,讲师元,讲师2020元,助教元,助教1515元。元。请分别用请分别用判定表判定表、判定树判定树表表示津贴标准。示津贴标准。 72 1010、面向数据结构的设计方法面向数据结构的设计方法面向数据结构的设计方法的根据面向数据结构的设计方法的根据数据结构数据结构最终最终得
55、出得出对对程序处理过程序处理过程的描述程的描述。最适合在详细阶段使用。最适合在详细阶段使用。73 1111、JacksonJackson方法方法面面Jackson结构程序设计结构程序设计方法由方法由5个步骤个步骤组成:组成:(1) 分析并确定分析并确定输入数据输入数据和和输出数据输出数据的逻辑结构,用的逻辑结构,用Jackson图图描绘数据结构描绘数据结构。(2) 找出找出输入数据结构输入数据结构和和输出数据结构输出数据结构中有中有对应关系的数据单元对应关系的数据单元。(3) 用用下述规则下述规则从描绘从描绘数据结构数据结构的的Jackson图图导出描绘程序结构导出描绘程序结构的的Jackso
56、n图:图: 第一,为每对有第一,为每对有对应关系的数据单元对应关系的数据单元,按照它们在数据结构图中的层次,在程,按照它们在数据结构图中的层次,在程序结构图的序结构图的相应层次画一个处理框相应层次画一个处理框(层次不同时与图中层次低的那个对应层次不同时与图中层次低的那个对应); 第二,根据第二,根据输入数据输入数据结构中结构中剩余的每个数据单元剩余的每个数据单元所处的层次,在程序结构图的所处的层次,在程序结构图的相应层次分别为它们画上相应层次分别为它们画上对应的处理框对应的处理框; 第三,根据第三,根据输出数据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的结构中剩余的每个数据单元所
57、处的层次,在程序结构图的相应层次分别为它们画相应层次分别为它们画上对应的处理框上对应的处理框。 改进的改进的Jackson图规定在构成图规定在构成顺序结构的元素中不能有重复出现或选择出现的顺序结构的元素中不能有重复出现或选择出现的元素元素,因此可能需要,因此可能需要增加中间层次的处理框增加中间层次的处理框。 (4) 列出列出所有操作所有操作和和条件条件(包括分支条件和循环结束条件包括分支条件和循环结束条件),并且把它们,并且把它们分配到程序分配到程序结构图的适当位置结构图的适当位置。(5) 用用伪码表示程序伪码表示程序。74 1212、程序复杂程度的定量度量程序复杂程度的定量度量定量度量定量度
58、量程序程序复杂程度复杂程度: McCabe方法、方法、Halstead方法。方法。1313、McCabeMcCabe方法方法根据程序根据程序控制流的复杂程度控制流的复杂程度定量定量度量程序的复杂程度度量程序的复杂程度,这样度量出的结,这样度量出的结果称为程序的果称为程序的环形复杂度环形复杂度。为了突出表示程序的控制流,通常使用流图。为了突出表示程序的控制流,通常使用流图。75 1414、计算环形复杂度的方法计算环形复杂度的方法有了描绘程序控制流的有了描绘程序控制流的流图流图之后,可以用下述之后,可以用下述3种方法种方法中的任何中的任何76 第六章第六章 详细设计详细设计 复习重点:复习重点:
59、程序的程序的3 3种基本控制结构;种基本控制结构; 程序流程图、程序流程图、N-SN-S图图( (盒图盒图) )、PADPAD图的基本符号图的基本符号 会画程序流程图、会画程序流程图、N-SN-S图、图、PADPAD图和判定表、判定树图和判定表、判定树 计算环形复杂度的方法计算环形复杂度的方法77 第七章第七章 实现实现1 1、软件实现、软件实现通常把通常把编码编码和和测试测试统称为实现统称为实现。所谓编码:就是把所谓编码:就是把软件设计结果软件设计结果翻译成翻译成用某种程序设计语言用某种程序设计语言书写的程序书写的程序。源程序代码的源程序代码的逻辑简明清晰逻辑简明清晰、易读易懂易读易懂是好程
60、序的一个重要标准。是好程序的一个重要标准。测试的目的:就是在软件投入测试的目的:就是在软件投入生产性运行之前生产性运行之前,尽可能多地,尽可能多地发现软件中的发现软件中的错误错误。2 2、软件测试的目标、软件测试的目标测试测试是为了是为了发现程序中的错误发现程序中的错误而而执行程序的过程执行程序的过程;好的测试方案好的测试方案是极可能是极可能发现迄今为止尚未发现的错误的测试方案发现迄今为止尚未发现的错误的测试方案;成功的测试成功的测试是是发现了至今为止尚未发现的错误的测试发现了至今为止尚未发现的错误的测试。注意:注意:测试决测试决不能证明程序是正确的不能证明程序是正确的。即使经过了最严格的测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船用齿轮箱与传动装置维修考核试卷
- 电子汽车安全产品考核试卷
- 上海市浦东新区市级名校2025年高三年级月考(三)化学试题含解析
- 南京师范大学中北学院《珠宝玉石概论》2023-2024学年第二学期期末试卷
- 武汉航海职业技术学院《遗民文学研究》2023-2024学年第一学期期末试卷
- 内蒙古乌海市海勃湾区2025年初三开学摸底联考物理试题含解析
- 济南市莱芜地区2025年初三第一次模拟考试物理试题文试题含解析
- 金华市金东区2024-2025学年五下数学期末联考模拟试题含答案
- 武夷学院《发电厂电气部分A》2023-2024学年第二学期期末试卷
- 武汉学院《植物病虫害防治》2023-2024学年第二学期期末试卷
- 专家授课合同协议
- 护理临床带教老师培训
- 艾滋病宣传员知识培训
- 2024-2025学年广东省深圳市南山区四年级(上)期末数学试卷
- 海南琼海市旅游健康文化发展有限公司招聘笔试题库2025
- 风电项目合作框架协议
- 2025-2030中国具身智能行业研发创新策略与未来前景展望研究报告
- 2025年小学科学教材教法考试模拟测试卷及答案
- 《论语》(子路篇第十三)原文及翻译
- 学前儿童情感教育的家庭实践策略
- 2024年-GIS考试复习题库(含答案)
评论
0/150
提交评论