书签 分享 收藏 举报 版权申诉 / 112
上传文档赚钱

类型第十章传统的软件开发方法课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2971800
  • 上传时间:2022-06-17
  • 格式:PPT
  • 页数:112
  • 大小:278.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第十章传统的软件开发方法课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第十 传统 软件 开发 方法 课件
    资源描述:

    1、第第 1 页页第十章第十章 传统的软件开发方法传统的软件开发方法 10.1 结构化开发方法概述结构化开发方法概述 10.2 系统分析与定义系统分析与定义 10.3 系统设计系统设计 10.4 系统编程系统编程 10.5 系统测试系统测试 10.6 系统维护系统维护第第 2 页页10.1 结构化开发方法结构化开发方法l基本思想:把一个复杂问题的求解过程基本思想:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。制在人们容易理解和处理的范围内。l基本要点:基本要点: 自顶向下自顶向下 逐步求精逐步求精 模块化设计模块化设计

    2、结构化编码结构化编码 主程序员组织主程序员组织 结构化设计结构化设计SD第第 3 页页“自顶向下自顶向下”l是将复杂的大问题,分解为小问题,找是将复杂的大问题,分解为小问题,找出问题的关键、重点所在,同时找出技出问题的关键、重点所在,同时找出技术难点来。然后用精确的思维定性、定术难点来。然后用精确的思维定性、定量地描述问题。量地描述问题。第第 4 页页“逐步求精逐步求精”l将现实世界的问题经抽象转化为逻辑空间或求将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相解空间的问题。复杂问题经抽象化处理变为相对较简单的问题。经几次抽象(精化)处理,对较简单的问题。经几次抽

    3、象(精化)处理,最后到求解域中只是非常简单的编程问题。求最后到求解域中只是非常简单的编程问题。求解(抽象)过程可以划分为若干个阶段,在不解(抽象)过程可以划分为若干个阶段,在不同阶段用不同工具来描述。实现细则在前期阶同阶段用不同工具来描述。实现细则在前期阶段可以不去管它。在每个阶段有不同的规划和段可以不去管它。在每个阶段有不同的规划和标准,产生出不同阶段的文档资料。标准,产生出不同阶段的文档资料。l求解问题不是一下子就用计算机语言却描述问求解问题不是一下子就用计算机语言却描述问题,而是分阶段;先用自然语言、题,而是分阶段;先用自然语言、DFD(数据(数据流程图)等工具一步步地去抽象、描述,最后

    4、流程图)等工具一步步地去抽象、描述,最后用计算机语言却实现。用计算机语言却实现。第第 5 页页模块化处理模块化处理l把程序划分为若干个模块,而每个模块把程序划分为若干个模块,而每个模块完成一个子功能,把这些模块汇总起来完成一个子功能,把这些模块汇总起来构成一个有机整体,完成指定的功能。构成一个有机整体,完成指定的功能。l模块化的目的是为了降低软件复杂度,模块化的目的是为了降低软件复杂度,使软件设计,调试和维护等操作变得简使软件设计,调试和维护等操作变得简易。易。第第 6 页页结构化编码结构化编码lSP编码的方法强调清晰简洁,它是一种编码的方法强调清晰简洁,它是一种构造程序的技术,有利于提高软件

    5、生产构造程序的技术,有利于提高软件生产率及降低软件维护代价。率及降低软件维护代价。l1966年年Bohm和和Jacopin就证明了只要用就证明了只要用三中基本结构,就足以表示所有形式的三中基本结构,就足以表示所有形式的程序控制结构。程序控制结构。l1978年年Kernihan和和Plauger对一些编码对一些编码风格进行归纳,提出了风格进行归纳,提出了16种具体方法。种具体方法。第第 7 页页主程序员组织主程序员组织l主程序员主程序员 组织负责人组织负责人,全权负责全权负责,包括解决技术包括解决技术难题难题,有时一些关键性技术问题有时一些关键性技术问题,主程序员应亲主程序员应亲自动手遍程去解决

    6、;他必须是技术高手,是程自动手遍程去解决;他必须是技术高手,是程序生产过程中的总体设计师。序生产过程中的总体设计师。l程序员程序员 按任务书要求编程;是程序生产线上按任务书要求编程;是程序生产线上的的“工人工人”。l测试工程师测试工程师 具有较高遍程水准和经验,负责具有较高遍程水准和经验,负责系统测试;是程序生产过程中的检验员。系统测试;是程序生产过程中的检验员。l文档人员文档人员 自始至终参加程序生产活动,负责自始至终参加程序生产活动,负责编写一切有关文档资料。编写一切有关文档资料。第第 8 页页结构化方法的体系结构结构化方法的体系结构l结构化方法的体系结构是结构化方法的体系结构是: 结构化

    7、分析(结构化分析(SAStructure Analysis) 结构化设计(结构化设计(SDStructure Design) 结构化程序设计(结构化程序设计(SPStructure Programing)第第 9 页页结构化分析结构化分析SAlSA方法是建立在自顶向下、逐步求精思方法是建立在自顶向下、逐步求精思想基础上的分析方法,它的要点是分解想基础上的分析方法,它的要点是分解和抽象:和抽象: 把复杂问题自顶向下逐层分解,再从分解出把复杂问题自顶向下逐层分解,再从分解出的对象中抽象出相对简单的子问题。的对象中抽象出相对简单的子问题。 经过一系列分解和抽象,到最底层的问题已经过一系列分解和抽象,

    8、到最底层的问题已经是很容易求解的了。经是很容易求解的了。第第 10 页页结构化设计结构化设计SDlSD方法是由方法是由IBM公司的公司的Constentine等等人花了十几年时间研究出来的一种程序人花了十几年时间研究出来的一种程序设计方法,发表于设计方法,发表于1974年。年。lSD是一种用于概要设计的方法,与是一种用于概要设计的方法,与SA方方法配合使用。法配合使用。l其目标:建立一个结构良好的软件系统。其目标:建立一个结构良好的软件系统。lSD方法的基础是数据流程图,因此也称方法的基础是数据流程图,因此也称为面向数据流的设计方法。为面向数据流的设计方法。第第 11 页页结构化程序设计结构化

    9、程序设计SPlSP的思想最早是由著名计算机科学家的思想最早是由著名计算机科学家E.W.Dijkstra提出的。提出的。l1966年年Bohm和和Jacopin证明了只用三种基本证明了只用三种基本结构就能实现任何一个入口,一个出口的程序;结构就能实现任何一个入口,一个出口的程序;l1977年年IBM公司的公司的Mills又进一步提出:又进一步提出:“程序程序应该只有一个入口和一个出口。应该只有一个入口和一个出口。l在长期程序设计的实践中,在长期程序设计的实践中,SP方法不断得以完方法不断得以完善,使之成为开发传统应用领域应用系统的主善,使之成为开发传统应用领域应用系统的主要方法之一。要方法之一。

    10、l 第第 12 页页10.2 软件需求定义软件需求定义l软件需求分析软件需求分析 就是明确软件系统将来达到的目标。就是明确软件系统将来达到的目标。l目标目标 规定项目必须满足的总目标;规定项目必须满足的总目标; 确定项目的可行性;确定项目的可行性; 拟定完成项目各个目标的策略,制定项目拟定完成项目各个目标的策略,制定项目资源成本和进度。资源成本和进度。第第 13 页页1、软件需求定义的任务、软件需求定义的任务l理解和表达用户要求,制定软件开发计理解和表达用户要求,制定软件开发计划,编写要求说明书。划,编写要求说明书。l收集、理解、明确用户的要求,明确系收集、理解、明确用户的要求,明确系统做什么

    11、?建立系统的逻辑模型,写出统做什么?建立系统的逻辑模型,写出开发计划和需求分析报告。开发计划和需求分析报告。第第 14 页页软件需求定义的工作流程软件需求定义的工作流程l 系统定义系统定义用户要求用户要求软件功能软件功能 范围范围功能说功能说明书明书软件计划软件计划软件定义软件定义软件功能软件功能费用、资源进度费用、资源进度第第 15 页页2、需求分析过程、需求分析过程l基本过程示意图基本过程示意图l沿数据流回溯沿数据流回溯l用户复查用户复查l细化数据流图细化数据流图l修改开发计划修改开发计划l书写文档资料书写文档资料l审查和复审审查和复审第第 16 页页需求分析的基本过程需求分析的基本过程l

    12、 用户用户分析员分析员程序员程序员软件开发计划软件开发计划软件需求说明书软件需求说明书分析追踪分析追踪数据流图数据流图用户复查用户复查细化数据细化数据流图流图无补充无补充修改修改需要分解需要分解不要分解不要分解有补充修改有补充修改交换意见交换意见作出贡献作出贡献第第 17 页页沿数据流回溯沿数据流回溯l通常从数据流图的输出端着手分析,要搞清楚:通常从数据流图的输出端着手分析,要搞清楚: 数据元素从哪儿来?数据元素从哪儿来? 每个输出数据元素又是从哪儿来的?每个输出数据元素又是从哪儿来的?l 有时对用户具体的数据元素还搞不清楚,则有时对用户具体的数据元素还搞不清楚,则需要和用户探讨、商量解决。需

    13、要和用户探讨、商量解决。l通常把分析过程中得到的有关部门数据元素信通常把分析过程中得到的有关部门数据元素信息记录到数据字典息记录到数据字典DD中。把对算法的简明描述中。把对算法的简明描述记录在记录在IPO(输入(输入|处理处理|输出图)图中。输出图)图中。l通过分析而补充的数据流、数据存储和处理,通过分析而补充的数据流、数据存储和处理,应该添加到应该添加到DFD的适当位置上。的适当位置上。第第 18 页页用户复查用户复查l经分析将在数据流图回溯过程中找出的经分析将在数据流图回溯过程中找出的数据元素,并由此定义的数据元素,并由此定义的DD和算法是否和算法是否正确?这只能由最有发言权的用户来复正确

    14、?这只能由最有发言权的用户来复查。查。l在复查过程中反映出新的问题,应及时在复查过程中反映出新的问题,应及时修改、补充修改、补充DFD、DD和和IPO图,并将对图,并将对系统的新认识及时记录下来。实际上,系统的新认识及时记录下来。实际上,追踪追踪DFD和复查系统的逻辑模型这两个和复查系统的逻辑模型这两个步骤是交替进行的循环过程。步骤是交替进行的循环过程。第第 19 页页细化数据流图细化数据流图l在反复循环的分析过程中,不断细化在反复循环的分析过程中,不断细化DFD(即把数据流图扩展到更低的层(即把数据流图扩展到更低的层次)。通过功能分解可以完成次)。通过功能分解可以完成DFD的细的细化,即将一

    15、些处理比较复杂的功能再划化,即将一些处理比较复杂的功能再划分为若干个子功能。分为若干个子功能。第第 20 页页修改开发计划修改开发计划l在分析过程中可能会不断地修改原拟定在分析过程中可能会不断地修改原拟定的开发计划,这是正常的。的开发计划,这是正常的。第第 21 页页书写文档资料书写文档资料l在软件生命周期的各个阶段,作为阶段成果的在软件生命周期的各个阶段,作为阶段成果的组成部分组成部分文档资料,其作用如何强调都不文档资料,其作用如何强调都不过份。本阶段应完成过份。本阶段应完成4份文档资料:份文档资料: 系统规格说明系统规格说明 描述目标系统的概貌、功能要求、描述目标系统的概貌、功能要求、性能

    16、、运行及将来可能提出的要求。性能、运行及将来可能提出的要求。 用户系统描述用户系统描述 从用户角度描述系统,类似一份用从用户角度描述系统,类似一份用户手册初稿。户手册初稿。 数据要求数据要求 包括包括DD、数据结构的层次框图等。、数据结构的层次框图等。 修改的开发计划修改的开发计划 包括成本估计、进度计划表、资包括成本估计、进度计划表、资源使用计划等。源使用计划等。第第 22 页页说明说明l需求说明书主要内容:需求说明书主要内容: 概述概述 开发系统的意义、目的、背景及技术术语;开发系统的意义、目的、背景及技术术语; 现性系统的概况现性系统的概况 业务流程、范围、存在的问题等;业务流程、范围、

    17、存在的问题等; 需求说明需求说明 功能描述功能描述 信息描述:信息描述:DFD、DD、DS、IPO、接口等、接口等 性能描述性能描述 运行环境运行环境 系统限制系统限制l用户系统描述用户系统描述 系统功能和性能的描述系统功能和性能的描述 使用系统的主要步骤和方法使用系统的主要步骤和方法 系统用户的责任等系统用户的责任等第第 23 页页审查和复审审查和复审l分析阶段最后一步是按结束标准对该阶分析阶段最后一步是按结束标准对该阶段的工作成果进行正式的技术审查和管段的工作成果进行正式的技术审查和管理审查。理审查。第第 24 页页3、需求分析的原则、需求分析的原则l1能够表达和理解问题的信息域能够表达和

    18、理解问题的信息域 l2要建立描述系统信息、功能和行为的要建立描述系统信息、功能和行为的模型模型l3能够对所建模型按一定形式进行分解能够对所建模型按一定形式进行分解 l4分清系统的逻辑视图和物理视图分清系统的逻辑视图和物理视图 第第 25 页页4、需求分析的图形工具、需求分析的图形工具l常用的描述工具常用的描述工具 数据流程图(数据流程图(DFD) 数据字典(数据字典(DD) 结构化语言结构化语言 判定表和判定树判定表和判定树第第 26 页页数据流图数据流图DFDl数据流图以图形的方式表达数据处理系数据流图以图形的方式表达数据处理系统中信息的变换和传递过程。它有四种统中信息的变换和传递过程。它有

    19、四种基本符号:基本符号:SPX X数据源及数据终点数据源及数据终点加工加工 对数据进行的加工或变换,指向加工的数据流对数据进行的加工或变换,指向加工的数据流是输入数据;离开的是输出数据。是输入数据;离开的是输出数据。数据流数据流 具有名字且有流向的数据具有名字且有流向的数据文件文件 存放数据的场所存放数据的场所第第 27 页页数据流图的结构数据流图的结构l一个实际问题的数据加工流程是非常复一个实际问题的数据加工流程是非常复杂的。如果绘制在一个平面图上就显的杂的。如果绘制在一个平面图上就显的太乱了。因此,通常采用分层次结构。太乱了。因此,通常采用分层次结构。把一个复杂的问题,分解为一些相互独把一

    20、个复杂的问题,分解为一些相互独立的子问题,再绘出分层立的子问题,再绘出分层DFD。第第 28 页页数据字典数据字典DD(Data Directory)lDD对数据流程图中出现的所有元素给出逻辑定对数据流程图中出现的所有元素给出逻辑定义。义。l内容内容 l 1) 数据流:编号、名称、简述、别名、构成、数据流:编号、名称、简述、别名、构成、来源、去向、流量来源、去向、流量l 2) 数据项目:编号、名称、简述、别名、类数据项目:编号、名称、简述、别名、类型、长度、位数型、长度、位数l 3) 数据文件:编号、名称、简述、别名、构数据文件:编号、名称、简述、别名、构成、关键字、存取要求成、关键字、存取要

    21、求l 4) 处理处理 编号、名称、简述、别名、处理条编号、名称、简述、别名、处理条件、件、I/O内容、处理逻辑内容、处理逻辑第第 29 页页结构化语言结构化语言l例如例如:l DO CASE l CASE 时间时间12 AND 时间时间18l R-rent=rent;第第 30 页页判定表判定表l判定表把加工逻辑表示的更加清楚。表判定表把加工逻辑表示的更加清楚。表中纵向各列给出的不同的条件,横向各中纵向各列给出的不同的条件,横向各行则表示在任何条件下相应的处理。行则表示在任何条件下相应的处理。条件条件 结结 帐帐 时时 间间 12点前点前 1218点点 18点后点后处理处理不收费不收费收半费收

    22、半费收全费收全费 第第 31 页页判定树判定树l判定树用来描述具有多个条件的数据加判定树用来描述具有多个条件的数据加工更容易被用户接受。树状的分枝表示工更容易被用户接受。树状的分枝表示多种不同的条件。多种不同的条件。结帐时间结帐时间=?1212点前点前 12181218点间点间 1818点后点后不收费不收费 收半费收半费 收全费收全费下一页第第 32 页页5、用于需求分析的软件工具、用于需求分析的软件工具l为保证软件需求的正确性和需求的一致为保证软件需求的正确性和需求的一致性,需要采用适当的软件工具支持需求性,需要采用适当的软件工具支持需求分析工作。软件工具应满足下列要求:分析工作。软件工具应

    23、满足下列要求: 必须有形式化的语法(可让计算机自动处理)必须有形式化的语法(可让计算机自动处理) 能够导出详细的文档能够导出详细的文档 必须提供分析(测试)规格说明书的不一致必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并能产生指明对完整性性和冗余性的手段,并能产生指明对完整性分析结果的报告。分析结果的报告。 能够改进通信状况能够改进通信状况第第 33 页页6、结构分析方法、结构分析方法(SA方法方法)l结构化分析方法的背景结构化分析方法的背景(形成形成) 早期无系统分析方法早期无系统分析方法(凭经验凭经验) 60年代美国的科学家提出一种理论年代美国的科学家提出一种理论: SP SD

    24、 SA 目前研究的新热点是目前研究的新热点是: OOP OOD OOA 即面向对象的程序设计技术即面向对象的程序设计技术(OO-Object Oriented )第第 34 页页SA的一般步骤的一般步骤l1建立当前系统的物理模型建立当前系统的物理模型l2建立当前系统的逻辑模型建立当前系统的逻辑模型 l3、建立目标系统的逻辑模型、建立目标系统的逻辑模型第第 35 页页三、系统设计(软件的设计)三、系统设计(软件的设计)l系统设计概述目标和任务设计方法和步骤文档设计复审 第第 36 页页软件设计流程图软件设计流程图 概要设计概要设计复审复审要求说明书要求说明书软件软件结构结构可接收可接收详细设计详

    25、细设计模块模块描述描述设计设计说明书说明书复审复审修改修改修改修改第第 37 页页1、软件设计概述、软件设计概述l目标和任务目标和任务 任务任务 依据分析结果,明确系统依据分析结果,明确系统“如何如何做?做?”, 建立实现方案。建立实现方案。 目标目标 提高软件系统的:提高软件系统的: 可维护性可维护性 可扩充、可修改可扩充、可修改 可理解性可理解性 对软件人员要易读易理解;对用户要对软件人员要易读易理解;对用户要易使用、易维护易使用、易维护 可靠性可靠性 包括正确性和健壮性包括正确性和健壮性第第 38 页页2、设计方法和步骤、设计方法和步骤l概要设计概要设计 定义系统的逻辑结构,包括:系统的

    26、模块定义系统的逻辑结构,包括:系统的模块划分、建立模块的层次结构、逻辑关系、设划分、建立模块的层次结构、逻辑关系、设计全局计全局DS及及DB;l详细设计详细设计 根据每个模块的功能描述,设计模块内部根据每个模块的功能描述,设计模块内部的实现算法、模块所需要的局部数据结构。的实现算法、模块所需要的局部数据结构。 第第 39 页页设计方法和步骤设计方法和步骤设计方法:设计方法:l概要设计方法概要设计方法 早期:模块化方法、功能分解法;早期:模块化方法、功能分解法; 典型:面向数据流、面向数据结构(典型:面向数据流、面向数据结构(SP)的)的 设计方法设计方法 近期:面向对象(近期:面向对象(OO)

    27、的设计方法)的设计方法l详细设计方法详细设计方法 主要是结构化程序设计方法主要是结构化程序设计方法l详细设计的表示工具详细设计的表示工具 图形工具和语言工具;图形工具和语言工具; 图形工具图形工具 程序流程图、程序分析图(程序流程图、程序分析图(PAD)和)和NS图图 语言工具语言工具 伪吗和程序设计语言(伪吗和程序设计语言(PDL)l 第第 40 页页文档资料文档资料l设计阶段要交付的文档是设计说明书。设计阶段要交付的文档是设计说明书。它可对编程和测试提供指南服务,还可它可对编程和测试提供指南服务,还可在系统交付使用后,为维护人员提供帮在系统交付使用后,为维护人员提供帮助。助。第第 41 页

    28、页3、软件设计原则、软件设计原则l要有分层的组织结构,便于对软件各个构件进要有分层的组织结构,便于对软件各个构件进行控制;行控制;l应形成具有独立功能特征的模块(模块化)应形成具有独立功能特征的模块(模块化)l应有性质不同、可区分的数据和过程描述(表应有性质不同、可区分的数据和过程描述(表达式)达式)l应使模块间和与外部环境间接口的复杂性尽量应使模块间和与外部环境间接口的复杂性尽量地减小地减小l应利用软件需求分析中得到的信息和可重复的应利用软件需求分析中得到的信息和可重复的方法。方法。第第 42 页页4、软件设计准则、软件设计准则 软件结构准则软件结构准则 模块化准则模块化准则 模块独立性准则

    29、模块独立性准则 模块的耦合性模块的耦合性 模块的内聚性模块的内聚性第第 43 页页软件结构准则软件结构准则l结构形态准则结构形态准则 即顶部宽度最小,中间宽度最大,底部宽度小于中即顶部宽度最小,中间宽度最大,底部宽度小于中间的宽度。换句话说,在顶部有较高的扇出数(一间的宽度。换句话说,在顶部有较高的扇出数(一个模块直接下属的子模块数),在底部有较高的扇个模块直接下属的子模块数),在底部有较高的扇入数(模块的直接上属模块的个数)。入数(模块的直接上属模块的个数)。l判断的影响范围应该是控制范围的一个子集判断的影响范围应该是控制范围的一个子集 影响范围影响范围 指在一个模块中有一个判别条件,所有指

    30、在一个模块中有一个判别条件,所有受该判别条件影响的模块的集合称为影响范围;受该判别条件影响的模块的集合称为影响范围; 控制范围控制范围 指一个模块本身及所有下属模块构成的指一个模块本身及所有下属模块构成的集合。集合。 第第 44 页页结构形态准则示意图结构形态准则示意图l 深度深度宽度宽度扇出扇出扇入扇入第第 45 页页模块化准则模块化准则l 软件分解为若个模块后软件分解为若个模块后,总的工作量减少,总的工作量减少,但并不是说,模块分解的越多,工作量但并不是说,模块分解的越多,工作量就一定越少。因为分解到一定程度后,就一定越少。因为分解到一定程度后,模块之间的接口工作量就上升,从而使模块之间的

    31、接口工作量就上升,从而使总的代价上升。总的代价上升。第第 46 页页5、模块独立性准则、模块独立性准则l模块独立性是指开发具有功能专一、模块之间模块独立性是指开发具有功能专一、模块之间无过多相互作用的模块。具有独立性的模块,无过多相互作用的模块。具有独立性的模块,开发容易、能减少错误的传播,使模块重组、开发容易、能减少错误的传播,使模块重组、分解方便,容易调试和维护。分解方便,容易调试和维护。l度量模块的独立性标准:度量模块的独立性标准: 内聚性内聚性 模块内部各部分之间联系紧密程度的度量;模块内部各部分之间联系紧密程度的度量; 藕合性藕合性 模块之间联系紧密程度的度量。模块之间联系紧密程度的

    32、度量。 显然,独立性强的模块,藕合性越小越好,内聚性显然,独立性强的模块,藕合性越小越好,内聚性越大越好。越大越好。第第 47 页页关于藕合的讨论关于藕合的讨论l设计时应:设计时应: 尽量使用数据藕合,尽量使用数据藕合, 少用控制藕合,少用控制藕合, 限制公用藕合的范围,限制公用藕合的范围, 完全不用内容藕合。完全不用内容藕合。第第 48 页页内聚性问题内聚性问题l一个程序主要由两部分组成:数据和对数据的一个程序主要由两部分组成:数据和对数据的加工处理。加工处理。l内聚性是指一个模块内部各种数据和各种处理内聚性是指一个模块内部各种数据和各种处理之间联系的紧密程度。之间联系的紧密程度。l它是模块

    33、执行任务的整体统一性的度量,是模它是模块执行任务的整体统一性的度量,是模块相对功能强弱的度量。块相对功能强弱的度量。l在理想的系统中,每个模块执行一个明确、单在理想的系统中,每个模块执行一个明确、单一的任务。但现实情况是一个模块往往执行若一的任务。但现实情况是一个模块往往执行若干个结合在一起的任务,这些任务组合方式不干个结合在一起的任务,这些任务组合方式不同就构成不同的内聚性。同就构成不同的内聚性。第第 49 页页内聚性问题的讨论内聚性问题的讨论l从使用角度分析,能否用一个短句完整从使用角度分析,能否用一个短句完整地描述该模块做什么;若这个短句是复地描述该模块做什么;若这个短句是复合句,或有若

    34、干个动词,则该模块是非合句,或有若干个动词,则该模块是非功能性模块。功能性模块。l在设计时,尽量采用功能性模块。在设计时,尽量采用功能性模块。第第 50 页页6、概要设计、概要设计l概要设计是为软件系统定义一个逻辑上一致的概要设计是为软件系统定义一个逻辑上一致的结构:进行模块划分,建立模块层次结构、调结构:进行模块划分,建立模块层次结构、调用关系,设计全局数据结构及数据库,设计系用关系,设计全局数据结构及数据库,设计系统接口及人机界面等。统接口及人机界面等。l概要设计的方法有许多种:概要设计的方法有许多种: 在早期有模块化方法、功能分解方法,这都是人们在早期有模块化方法、功能分解方法,这都是人

    35、们一般常用的方法;一般常用的方法; 在在60年代后期提出了面向数据流的设计方法、面向年代后期提出了面向数据流的设计方法、面向数据结构的设计方法;数据结构的设计方法; 近年来又提出面向对象的设计方法等。近年来又提出面向对象的设计方法等。第第 51 页页概要设计主要步骤概要设计主要步骤l1)精细化数据流程图,确定数据流程图)精细化数据流程图,确定数据流程图的类型;的类型;l2)指出各种信息流的流界;)指出各种信息流的流界;l3)将数据流程图映射为软件结构;)将数据流程图映射为软件结构;l4)精细化软件结构;)精细化软件结构;l5)开发接口描述和全程数据描述。)开发接口描述和全程数据描述。第第 52

    36、 页页数据流程图分类数据流程图分类l变换流变换流加工加工中心中心输入输入加工加工输出输出加工加工输入输出内部内部结果结果内部内部数据数据输入流输出流变换流加工结果第第 53 页页事物流事物流l 事物事物中心中心 T数据流数据流事物中心t1t1t2t2t3t3t4t4事物路径事物流事物流一个数据流经过某个加工后,有若干个平行的数据流流出,将这种变换称为事物流。当事物流中的事物流到事物中心后,事物中心分析每个事物,确定其类型;并根据事物类型选择一个事物路径继续进行处理。第第 54 页页变换分析技术变换分析技术l变换分析技术是从典型的变换型数据流变换分析技术是从典型的变换型数据流程图(程图(DFD)

    37、中推导出相应的结构图。)中推导出相应的结构图。l变换分析是一组设计步骤,可把变换分析是一组设计步骤,可把DFD映映射为一种标准结构。有了标准结构,再射为一种标准结构。有了标准结构,再根据软件结构度量、模块化度量、模块根据软件结构度量、模块化度量、模块独立性度量来精细改善结构图,从而得独立性度量来精细改善结构图,从而得到良好的软件结构。到良好的软件结构。第第 55 页页变换分析的步骤变换分析的步骤l确定确定DFD及其类型及其类型l确定输入流、中心加工、输出流的流界;确定输入流、中心加工、输出流的流界;l第一级分解;设计上层模块;第一级分解;设计上层模块;l第二级分解,设计中、下层模块;第二级分解

    38、,设计中、下层模块;l进一步精细化。进一步精细化。第第 56 页页事务分析技术事务分析技术l事务分析技术也是将相应的数据流程图事务分析技术也是将相应的数据流程图(DFD)映射为对应的的软件结构图。)映射为对应的的软件结构图。l事务分析的组设计步骤同变换分析:事务分析的组设计步骤同变换分析: 确定数据流图的类型确定数据流图的类型 确定流界确定流界 第第1级分解级分解 第第2级分解级分解 设计后处理设计后处理第第 57 页页7、详细设计方法、详细设计方法l详细设计是根据每个模块的功能设计其详细设计是根据每个模块的功能设计其逻辑描述、实现其法以及实现这些算法逻辑描述、实现其法以及实现这些算法的逻辑控

    39、制流程,并设计这些模块所需的逻辑控制流程,并设计这些模块所需的局部数据结构。的局部数据结构。l详细设计的方法主要是用结构程序设计详细设计的方法主要是用结构程序设计SP方法,详细设计的表示工具有图形工方法,详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、具和语言工具。图形工具有程序流程图、PAD图、图、NS图,语言工具有伪码和图,语言工具有伪码和 PDL等。等。第第 58 页页SP中的基本结构中的基本结构l顺序结构顺序结构l选择结构选择结构 IF THEN ELSE 结构结构 IF THEN 结构结构 IF OR IF ELSE 结构结构 CASE 结构结构l重复结构重复结构 当型

    40、结构当型结构 直到型结构直到型结构l出口结构出口结构第第 59 页页SP中的优点中的优点l自顶向下,逐步求精方法符合人们解决复杂问自顶向下,逐步求精方法符合人们解决复杂问题的普遍规律。题的普遍规律。l用先全局后局部,先整体后细节,先抽象后具用先全局后局部,先整体后细节,先抽象后具体的逐步求精过程开发的程序有清晰的层次结体的逐步求精过程开发的程序有清晰的层次结构,容易理解和阅读。构,容易理解和阅读。l不使用不使用GOTO语句,使程序静态结构和程序动语句,使程序静态结构和程序动态执行情况一致,容易理解和阅读,开发出的态执行情况一致,容易理解和阅读,开发出的程序容易修改和维护。程序容易修改和维护。l

    41、程序只采用三种基本结构,有确定的逻辑结构,程序只采用三种基本结构,有确定的逻辑结构,可读性好。可读性好。l共用模块可重用。共用模块可重用。第第 60 页页SP中的缺点中的缺点lSP方法是面向过程的设计方法,对于非方法是面向过程的设计方法,对于非数值应用问题,明显地数值应用问题,明显地“力不从心力不从心”。SP方法对大问题的描述有很大的局限性。方法对大问题的描述有很大的局限性。lSP方法的模块化设计的子程序、函数的方法的模块化设计的子程序、函数的可重用性很小。可重用性很小。l数据和过程的分离。程序员在编程时必数据和过程的分离。程序员在编程时必须随时考虑要处理的数据的格式须随时考虑要处理的数据的格

    42、式第第 61 页页四、程序编码四、程序编码l程序设计语言的特点程序设计语言的特点l选择语言选择语言l写程序的风格写程序的风格l程序设计方法论程序设计方法论第第 62 页页程序设计语言的特点程序设计语言的特点l软件工程师应该了解程序设计语言各方面的特软件工程师应该了解程序设计语言各方面的特点,以及这些特点对软件质量的影响,以便在点,以及这些特点对软件质量的影响,以便在一个特定的开发项目选择语言时,能够作出合一个特定的开发项目选择语言时,能够作出合理的选择。程序设计语言的特点是:理的选择。程序设计语言的特点是: 名字说明名字说明 类型说明类型说明 初始化初始化 程序对象的局部性程序对象的局部性 程

    43、序模块程序模块 循环控制结构循环控制结构 分支控制结构分支控制结构 异常处理异常处理 独立编译独立编译第第 63 页页选择语言选择语言l根据实际情况选择使用的程序设计语言。根据实际情况选择使用的程序设计语言。l程序设计语言分程序设计语言分“汇编语言汇编语言”和和“高级高级语言语言”;汇编语言的程序执行效率高,;汇编语言的程序执行效率高,但生产效率低;高级语言的程序执行效但生产效率低;高级语言的程序执行效率不如汇编语言,但编程效率则要高得率不如汇编语言,但编程效率则要高得多,同时还有可读性、可维护性好等优多,同时还有可读性、可维护性好等优点。点。l选择语言时,不仅要考虑理论上的标准,选择语言时,

    44、不仅要考虑理论上的标准,还必须同时考虑使用方面的各种限制。还必须同时考虑使用方面的各种限制。第第 64 页页写程序的风格写程序的风格l指程序员在编程时所表现出来的特点、指程序员在编程时所表现出来的特点、逻辑思路、结构等。可以体现在下列各逻辑思路、结构等。可以体现在下列各个方面:个方面: 源代码文件(程序内部的文档)源代码文件(程序内部的文档) 数据说明数据说明 语句构造语句构造 输入输入|输出输出 提高程序质量的技巧提高程序质量的技巧 效率效率第第 65 页页源代码文件(程序内部的文档)源代码文件(程序内部的文档) l包括程序中使用的标识符,适当的注释以及程包括程序中使用的标识符,适当的注释以

    45、及程序的视觉组织。序的视觉组织。l标识符标识符 命名要有一定的规则;用拼音或英文字命名要有一定的规则;用拼音或英文字符。符。l注释行注释行 通常在源程序中用大量篇幅(最多占到通常在源程序中用大量篇幅(最多占到1/3)加入注释行,在开发者和读者间进行钩通,)加入注释行,在开发者和读者间进行钩通,说明程序的功能、标识符的含义、主要算法等。说明程序的功能、标识符的含义、主要算法等。特别在维护阶段,对理解程序提供了指导。特别在维护阶段,对理解程序提供了指导。l程序书写格式程序书写格式 各控制结构的层次应呈锯齿形,各控制结构的层次应呈锯齿形,同一层次对齐,下一层退缩几格。同一层次对齐,下一层退缩几格。第

    46、第 66 页页数据说明数据说明l为使数据定义更容易看懂、更容易维护,为使数据定义更容易看懂、更容易维护,要建立一些指导原则:要建立一些指导原则: 数据说明顺序标准化,最好按照类型说明、数据说明顺序标准化,最好按照类型说明、公用变量、局部变量、文件说明的顺序;公用变量、局部变量、文件说明的顺序; 一个语句说明若干个变量时,名字最好按字一个语句说明若干个变量时,名字最好按字典排序;典排序; 对复杂的对复杂的DS,要加注释,说明固有特性。,要加注释,说明固有特性。第第 67 页页语句构造语句构造l语句构造的原则是:语句构造的原则是: 简单直接简单直接 不应追求效率而使代码复杂化;不应追求效率而使代码

    47、复杂化; 为了便于阅读和理解,不要一行写多个语句,为了便于阅读和理解,不要一行写多个语句,不同层次的语句应呈锯齿形;不同层次的语句应呈锯齿形; 不用复杂的测试条件,不用或少用不用复杂的测试条件,不用或少用“非条非条件件”; 避免使用大量嵌套循环及条件循环;避免使用大量嵌套循环及条件循环; 使用条件来简化表达式。使用条件来简化表达式。第第 68 页页输入输入/输出输出l在编码时要考虑下列在编码时要考虑下列I/O风格的规则:风格的规则: 对所有的输入数据进行检验对所有的输入数据进行检验 检查重要的输入项组合的合法性检查重要的输入项组合的合法性 保持输入格式的简单保持输入格式的简单 使用数据结束标记

    48、,不要要求用户指定数据的数目使用数据结束标记,不要要求用户指定数据的数目 明确提示交互式输入的请求,详细说明可用的选择明确提示交互式输入的请求,详细说明可用的选择或边界数值;或边界数值; 当程序设计语言对格式有严格要求时,保持输入格当程序设计语言对格式有严格要求时,保持输入格式一致式一致 设计良好的输出报表设计良好的输出报表 给所有的输出加标志给所有的输出加标志第第 69 页页提高程序质量的技巧提高程序质量的技巧 避免使用过于相似的变量名避免使用过于相似的变量名 变量名中尽量不含数字变量名中尽量不含数字 同一变量名不要具有多种意义同一变量名不要具有多种意义 显式说明所有变量显式说明所有变量 注

    49、意浮点运算的误差注意浮点运算的误差 注意整数运算的特点注意整数运算的特点 避免不必要的避免不必要的GOTO语句语句 尽量少用语句标号尽量少用语句标号第第 70 页页效率效率l程序运行时间程序运行时间 源程序的效率由算法的效源程序的效率由算法的效率决定,但写程序的风格也能对程序的率决定,但写程序的风格也能对程序的执行速度和存储器要求产生影响,可应执行速度和存储器要求产生影响,可应用下述规则:用下述规则: 写程序前先简化算术和逻辑表达式写程序前先简化算术和逻辑表达式 尽量避免使用多维数组,尽量避免使用指针尽量避免使用多维数组,尽量避免使用指针和复杂的表和复杂的表 使用时间短的算术运算使用时间短的算

    50、术运算 不要混合使用不同的数据类型不要混合使用不同的数据类型 尽量使用整数运算和布尔表达式尽量使用整数运算和布尔表达式第第 71 页页程序设计方法论程序设计方法论l通常有两种方法:自顶向下和自底向上通常有两种方法:自顶向下和自底向上 自顶向下(特点):自顶向下(特点): 程序可读性好程序可读性好 可靠性较高可靠性较高 自底向上(特点)自底向上(特点) 程序往往局部是优化的,系统整体结构较差;程序往往局部是优化的,系统整体结构较差; 可极早发现关键算法是否可行,可较好地避免较可极早发现关键算法是否可行,可较好地避免较大的返工。大的返工。第第 72 页页五、系统测试五、系统测试l软件测试概述软件测

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第十章传统的软件开发方法课件.ppt
    链接地址:https://www.163wenku.com/p-2971800.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库