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

类型软件工程概论第四章软件设计课件.ppt

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

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

    特殊限制:

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

    关 键  词:
    软件工程 概论 第四 软件设计 课件
    资源描述:

    1、软件工程概论河南工程学院第四章 软件设计4.1 软件设计的概述4.2 软件设计的概念与原理4.3 软件设计的原则4.4 结构化设计的方法4.5 系统包装4.6 软件详细设计概述4.7 软件详细设计表示法第1页,共107页。软件工程概论河南工程学院学习目标 重点掌握软件设计的工具和方法 正确理解概要设计与详细设计的任务和目标,灵活运用相关的工具和方法 深刻理解软件结构设计的原则及详细设计的规范化第2页,共107页。软件工程概论河南工程学院 可将软件生命周期分为可将软件生命周期分为定义定义、开发开发及及维护维护三个阶段。三个阶段。可行性研究初步项目计划需求分析概要设计详细设计实现测试使用维护退役定

    2、义阶段开发阶段维护阶段第3页,共107页。软件工程概论河南工程学院软件设计的重要性1 软件开发阶段的第一步,其基本任务是回答“如何做?”它是在对系统信息、功能、行为和各种要求理解的基础上构建未来的系统。设计的决策影响软件实现的成功与否。第4页,共107页。软件工程概论河南工程学院软件设计的重要性2 是软件开发过程中用以保证质量的关键步骤。是整个软件工程和软件维护的基础。如果没有设计,只能建立一个不稳定的系统。第5页,共107页。软件工程概论河南工程学院软件设计的重要性3 软件需求分析阶段已经完全清楚了软件的 各种需求,较好地解决了要让所开发的软件“做什么”的问题,并已在软件需求规格说明和数据要

    3、求规格说明中详尽和充分的阐明了这些需求。下一步就要着手实现软件的需求,即要解决“怎么做”的问题。第6页,共107页。软件工程概论河南工程学院软件设计的重要性4 软件设计是开发阶段中重要的步骤,是软件开发过程中用以保证质量的关键步骤。软件设计提供了软件的表示,使软件的质量评价成为可能。同时,软件设计又是将用户要求准确地转化为最终的软件产品的唯一途径。第7页,共107页。软件工程概论河南工程学院软件设计的重要性 软件设计是后续开发步骤几软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统。如图所示,只要出现一些微小的变动,就会使得软件受创,而且难以测试。第8页,共107页。软件工程概论河南工

    4、程学院系统分析与需求分析的区别需求分析是一个项目的开端,也是项目建设的基石。是对用户需求的定义,对软件系统的描述。在以往建设失败的项目中,80是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。而项目的整体风险往往表现在需求分析不明确、业务流程不合理,用户不习惯或不愿意去用承建方的软件。作为第三方的监理公司,必须提醒承建方、客户方重视需求分析的重要性。系统分析的任务:将用户的业务逻辑转化为程序逻辑,计算时间和成本。根据开发人员的理论知识和实际的经验,人们会采用各种满足实际情况的系统分析、开发方法、步骤以及文档等等。一般情况下,在系统分析书中应该有以下内容(

    5、视项目而定):1、系统需求说明说明系统是一个什么样的系统,用市场上现有的系统来类比,用客户(或是我们自己)需要一个什么样的系统进行说明,力求完整。第9页,共107页。软件工程概论河南工程学院2、系统资源说明对系统所需要的软件、硬件资源进行说明。描述系统所需要的所有的成本(包括人员、时间、设备、系统、一次性投入资金、持续性投入资金这样的所有资源)。3、系统可行性分析对系统的实施中的资源进行分析,说明投入的合理性和必然性,对其中的所有不可预见性的投入进行合理的量化说明,来说明系统的实施的可行性。系统分析阶段就是要全面了解系统的商业需求和处理要求并制作书面文件,详细地定义信息系统的功能。这一阶段的最

    6、根本的目的就是解决系统要做什么的问题-What to do?系统分析准备系统分析准备在进行详细的系统开发前,开发人员必须先理解一些概念,包括方法一些概念,包括方法、模型、工具和技术。、模型、工具和技术。第10页,共107页。软件工程概论河南工程学院1模型:是对问题做出的一种抽象,它由一组图示符号和组织这些符号的规则组成。建模是问题域中定义软件解的一种方法。建模的目的主要是为了减少问题的复杂性。2.工具 系统开发工具是一些帮助生成模型或其它组件的软件。系统开发人员常用的是CASE工具,如Microsoft Visio、Rational Rose等。用了CASE工具,开发软件能更加规范,标准化,从

    7、而提高软件开发的效率。3.技术技术就是帮助分析员完成系统开发活动或任务的一组方法。有时一种技术适用于整个生命周期。常在开发过程中使用的技术有:项目管理技术、用户面谈技术、数据建模技术、结构化分析技术、软件测试技术、面向对象分析与设计技术等。4.系统开发方法第11页,共107页。软件工程概论河南工程学院方法是一组完成系统开发生命周期每一阶段活动的技术,它提供了完成每一步的详细指导。常用的方法有结构化方法和面向对象方法。本章主要以结构化方法为例。20世纪70年代出现了结构化的系统分析设计方法。结构化系统分析(Structured Analysis,简称SA),是一种简单实用,使用很广的方法。它往往

    8、是将一个复杂的系统分解、抽象成为多个简单的子系统;使用自顶向下逐层分解的方式,将一个复杂系统分解,抽象成为多个简单的子系统,如果某个子系统仍然复杂,将其进一步分解。第12页,共107页。软件工程概论河南工程学院目前作为针对“软件危机”的最佳对策,面向对象(OO)技术已经引起人们的普遍关注。而许多编程语言(C+、VB、VF、PB、Delphi等)也都推出了支持面向对象的新版本。面向对象方法的基本思想是,从现实世界客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题。面向方法强调直接以现实世界中的事物为中心来思考问题、认识问题,并根据这些事物

    9、的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。第13页,共107页。软件工程概论河南工程学院系统分析阶段的任务主要解决了系统“做什么”的问题,系统设计阶段要解决的任务则是系统“怎么做”的问题。系统分析员审查可行性研究报告、软件项目开发计划、软件需求规格说明书,提出候选的最佳推荐方案,用系统流程图(注意画法,见前面),组成系统物理元素清单,将成本效益分析、系统的进度计划,供专家审定,审定后即进入软件设计阶段。软件设计阶段的主要任务是要实现逻辑模型(DFD和DD等)向物理模型转换,即要解决“系统如何实现”问

    10、题,该阶段又可画分为概要设计和详细设计两个阶段。第14页,共107页。软件工程概论河南工程学院1 软件设计的概述 概要设计:面向逻辑功能的设计 详细设计:面向物理的设计第15页,共107页。软件工程概论河南工程学院 从工程管理的角度来看,软件设计分两步 概要设计,将软件需求转化为数据结构和软件的系统结构,并建立接口。详细设计,即过程设计。通过对结构表示进行细化,得到软件的数据结构和算法。4.1 软件设计的概述第16页,共107页。软件工程概论河南工程学院概要设计概要设计又称为总体设计或初步设计,概要设计又称为总体设计或初步设计,它的基本目的就是回答它的基本目的就是回答“概括地说,系统概括地说,

    11、系统应该如何实现应该如何实现?”这个问题。在总体设计阶这个问题。在总体设计阶段,应划分出组成系统的物理元素段,应划分出组成系统的物理元素程程序、文件、数据库、人工过程和文档等,序、文件、数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以并确定系统中每个程序由哪些模块组成以及这些模块相互间的关系。及这些模块相互间的关系。第17页,共107页。软件工程概论河南工程学院1.基本任务设计软件系统结构:采用某种设计方法,将一个复杂的系统按功能划分成模块。确定每个模块的功能。确定模块之间的调用关系。确定模块之间的接口,即模块之间传递的信息。评价模块结构的质量.第18页,共107页。软件工程概论

    12、河南工程学院第19页,共107页。软件工程概论河南工程学院4.1.1 概要设计的基本任务与过程 1 软件结构设计 2 数据结构的设计 3 编写概要设计文档 4 评审第20页,共107页。软件工程概论河南工程学院1 软件结构设计采用某种设计方法,将一个复杂的系统按功能分成模块确定每个模块的功能确定模块之间的层次(调用)关系确定模块之间的联结形式评价模块结构的质量第21页,共107页。软件工程概论河南工程学院2 数据结构及数据库设计数据结构设计 需求分析:确定数据结构特性 概要设计:加以细化 详细设计:规定具体的实现细节数据库设计 概念设计 逻辑设计 物理设计第22页,共107页。软件工程概论河南

    13、工程学院3 编写概要设计文档 概要设计说明书 数据库设计说明 用户手册 修订测试计划第23页,共107页。软件工程概论河南工程学院4 评审 任务 判断是否实现了需求中规定的功能、性能 设计的方案是否可行第24页,共107页。软件工程概论河南工程学院4.1.2 概要设计文档引言总体设计接口设计运行设计系统数据结构设计系统出错设计第25页,共107页。软件工程概论河南工程学院4.2 软件设计的概念与原理第26页,共107页。软件工程概论河南工程学院4.2.1 模块化1.1.定义定义所谓所谓模块模块,是指具有相对独立性的,由数据说明、执行语句是指具有相对独立性的,由数据说明、执行语句等程序对象构成的

    14、集合等程序对象构成的集合。程序中的每个模块都需要单独命名。程序中的每个模块都需要单独命名,通过名字可实现对指定模块的访问,通过名字可实现对指定模块的访问。在高级语言中,模块在高级语言中,模块具体表现为具体表现为函数、子程序、过程函数、子程序、过程等。等。一个模块具有输入一个模块具有输入/输输出出(接口接口)、功能、内部数据和程序代码四个特征、功能、内部数据和程序代码四个特征。模块化模块化是指将整个程序划分为若干个模块,每个模块用于实现是指将整个程序划分为若干个模块,每个模块用于实现一个特定的功能一个特定的功能。划分模块对于解决大型复杂的问题是非常。划分模块对于解决大型复杂的问题是非常必要的,可

    15、以大大降低解决问题的难度。必要的,可以大大降低解决问题的难度。第27页,共107页。软件工程概论河南工程学院例如,我们设C(x)为问题x所对应的复杂度函数复杂度函数,E(x)为解决问题x所需要的工作量函数工作量函数。对于两个问题问题P1和P2,如果:C(P1)C(P2)即问题P1的复杂度比P2高,则显然有:E(P1)E(P2)即解决问题P1比P2所需的工作量大。在人们解决问题的过程中,发现存在有另一个有趣的规律:C(P1+P2)C(P1)+C(P2)即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和。也就是说,对于一个复杂问题,将其分解成多个小问题分别解决比较容易。由此我

    16、们可以推出:E(P1+P2)E(P1)+E(P2)第28页,共107页。软件工程概论河南工程学院即将复杂问题分解成若干个小问题,各个击破,所需要的工作量小于直接解决复杂问题所需的工作量。模块化可以降低解决问题的复杂度,从而降低软件开发的工作量。模块化不但可以降低软件开发的难度,而且可以使程序结构清晰,增加易读性和易修改性。此外,模块化还有利于提高代码的可重用性及团队合作开发大型软件的可行性。第29页,共107页。软件工程概论河南工程学院模块化和软件成本的关系模块化和软件成本的关系 M 软件总成本 成本或工作量 最小成本区 接口成本 模块数目 第30页,共107页。软件工程概论河南工程学院4.2

    17、.2 抽象抽象是人类在解决复杂问题过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节软件系统进行模块设计时,可有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。在较低的抽象层次上,则采用过程化的方法。结构化程序中自顶向下、逐步求精的模块划分思想正是人类思维中运用抽象方法解决复杂问题的体现。此外,在程序设计中运用抽象的方法还能够提高代码的可重用性。第31页,共107页。软件工程概论河南工程学院功能分解法面向数据的分解法面向事件的分解法有外向内的分解法面向对象的分解法第32页,共107页。软件工程概论河南工程学院对于复杂的问题,经过抽象、概括,可

    18、以把握主要问题,暂时忽略事务的细微差别不同的抽象层次,对问题的概括成都不同,使用的专业程序也不一样软件工程中阶段性的工作成果及方法,是对抽象的思想的具体应用,是逐步趋于具体化,逐步求精的过程。第33页,共107页。软件工程概论河南工程学院4.2.3信息隐蔽信息隐蔽 信息隐蔽:在设计和确定模块时,使得一个模块包含的信息对于不需要这些信息的其它模块来说是不能访问的 也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。信息隐蔽的目的主要是为了提高模块的独立性,减少将一个模块中的错误扩散到其他模块的机会。第34页,共107页。软件工程概论河南工程学院4.2.4 模块的独立

    19、性 模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的联系最小且接口是简单的一般采用两个准则度量模块独立性。即模块间耦合和模块内聚第35页,共107页。软件工程概论河南工程学院 耦合是模块之间的互相连接的紧密程度的度量。内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。第36页,共107页。软件工程概论河南工程学院非直接非直接 数据数据 标记标记 控制控制 外部外部 公共公共 内容内容 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合模块间的耦合模块间的耦合第37页,共1

    20、07页。软件工程概论河南工程学院非直接耦合非直接耦合(NondirectCoupling)两个模块之间没有直接关系,它们之两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和间的联系完全是通过主模块的控制和调用来实现的。调用来实现的。非直接耦合的非直接耦合的模块独立性最模块独立性最强。强。第38页,共107页。软件工程概论河南工程学院数据耦合数据耦合(DataCoupling)一个模块访问另一个模块时,彼此之间一个模块访问另一个模块时,彼此之间是通过是通过简单数据参数简单数据参数(不是控制参数、不是控制参数、公共数据结构或外部变量公共数据结构或外部变量)来传递交换来传递交换输入、输

    21、出信息的(输入、输出信息的(“传值传值”)。)。main()main()int x,y;int x,y;printf(x+y=%d,sum(x,y);printf(x+y=%d,sum(x,y);/*主函数与主函数与sumsum函数之间即为函数之间即为数据耦合关系数据耦合关系*/sum(int a,int b)sum(int a,int b)int c;int c;c=a+b;c=a+b;return(c);return(c);第39页,共107页。软件工程概论河南工程学院标记耦合标记耦合(StampCoupling)一组模块通过数据结构(标记)传递一组模块通过数据结构(标记)传递记录信记录信

    22、息息,就是标记耦合。这个标记是某一数据结,就是标记耦合。这个标记是某一数据结构的子结构,而不是简单变量构的子结构,而不是简单变量(“传地址传地址”)。例如高级语言中的数组名,记录名,文。例如高级语言中的数组名,记录名,文件名等即为标记,其实传递的标记的地址件名等即为标记,其实传递的标记的地址.第40页,共107页。软件工程概论河南工程学院控制耦合控制耦合(ControlCoupling)如果一个模如果一个模块通过传送开块通过传送开关、标志、名关、标志、名字等控制信息,字等控制信息,明显地控制选明显地控制选择另一模块的择另一模块的功能,就是控功能,就是控制耦合。制耦合。标志变量第41页,共107

    23、页。软件工程概论河南工程学院外部耦合(外部耦合(ExternalCoupling)一组模块都访问一组模块都访问同一全局简单变量同一全局简单变量而不是而不是同一全局数据结构,而且不是通过参数表同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦传递该全局变量的信息,则称之为外部耦合。合。公共耦合(公共耦合(CommonCoupling)若一组模块都访问若一组模块都访问同一个公共数据环境同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。通

    24、信区、内存的公共覆盖区等。第42页,共107页。软件工程概论河南工程学院 公共耦合的复杂程度随耦合模块的个数增公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。共耦合和紧密公共耦合。第43页,共107页。软件工程概论河南工程学院内容耦合(Content Coupling)如果发生下列情形,两个模块之间就发生了内容耦合 (1)一个模块直接访问另一个模块的内部数据;(2)一个模块不通过正常入口转到另一模块内部;(3)两个模块有一部分程序代码重迭(只

    25、可能出现在汇编语言中);(4)一个模块有多个入口。第44页,共107页。软件工程概论河南工程学院 c 总结:数据耦合的程度最低,其次是控制耦合,再其次是公共耦合,程度最高的是内容耦合。第45页,共107页。软件工程概论河南工程学院模块内聚模块内聚内聚性内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。的内聚性要求

    26、模块的功能应明确、单一,即一个模块只做一件事情。在进行模块化设计时,耦合性和内聚性都是必须考虑的重要指标。但经在进行模块化设计时,耦合性和内聚性都是必须考虑的重要指标。但经实践证明,实践证明,保证模块的高内聚性比低耦合性更为重要保证模块的高内聚性比低耦合性更为重要,在软件设计时应将,在软件设计时应将更多的注意力集中在提高模块的内聚性上。更多的注意力集中在提高模块的内聚性上。模块的内聚性主要可划分为如模块的内聚性主要可划分为如上几种不同的类型。上几种不同的类型。巧合巧合 逻辑逻辑 时间时间 过程过程 通信通信 信息信息 功能功能内聚内聚 内聚内聚 内聚内聚 内聚内聚 内聚内聚 内聚内聚 内聚内聚

    27、第46页,共107页。软件工程概论河南工程学院偶然内聚(偶然内聚(CoincidentalCohesion)巧合内聚巧合内聚(偶然内聚偶然内聚)。当模块内各部分。当模块内各部分之间没有联系,或者即使有联系,这种之间没有联系,或者即使有联系,这种联系也很松散,联系也很松散,则称这种模则称这种模块为巧合内块为巧合内聚模块,它聚模块,它是内聚程度是内聚程度最低的模块。最低的模块。第47页,共107页。软件工程概论河南工程学院逻辑逻辑内聚(内聚(LogicalCohesion)这种模块把几种这种模块把几种相关的功能组合相关的功能组合在一起,每次被在一起,每次被调用时,由传送调用时,由传送给模块的判定参

    28、给模块的判定参数来确定该模块数来确定该模块应执行哪一种功应执行哪一种功能。能。第48页,共107页。软件工程概论河南工程学院时间内聚时间内聚(ClassicalCohesion)时间内聚又称为经典内聚。这种模块大时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模须在同一时间段内执行。例如初始化模块和终止模块。块和终止模块。第49页,共107页。软件工程概论河南工程学院过程内聚过程内聚(ProceduralCohesion)使用流程图做为工具设

    29、计程序时,把流使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块个模块,这三个模块都是过程内聚模块。第50页,共107页。软件工程概论河南工程学院通信内聚通信内聚(CommunicationCohesion)如果一个模块内所有处理元素都在同一如果一个模块内所有处理元素都在同一个数据结构上或各功能部分都使用了相个数据结构上或各功能部分都使用了相同的输入数据,或产生了相同的输出数

    30、同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。信内聚模块是通过数据流图来定义的。第51页,共107页。软件工程概论河南工程学院第52页,共107页。软件工程概论河南工程学院顺序内聚顺序内聚(SquenceCohesion)一个模块内的处理元素和同一个功能密一个模块内的处理元素和同一个功能密切相关,且必须顺序执行。切相关,且必须顺序执行。第53页,共107页。软件工程概论河南工程学院功能内聚:是最强的内聚功能内聚:是最强的内聚(FunctionalCohesion)一个模块中各个部分都是完成某一具体功能必不

    31、可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,不可分割的。则称该模块为功能内聚模块。第54页,共107页。软件工程概论河南工程学院4.3 软件结构设计原则(1)模块的分解,尽量做到“高内聚,低耦合”。分解是指把一个模块分解成若干个从属于它的下层模块。一般按功能分解,分解到成为一个小的功能单一的模块为止。一般一个模块内包含的语句在30-50条左右较好(指高级语言)。第55页,共107页。软件工程概论河南工程学院(2)模块的扇出和扇入 模块的扇出指一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内。模块的扇入是指一个模块的直接上级模块的个数。在设计中,扇入系数大,

    32、说明模块分解得好,通用性强,冗余度低。第56页,共107页。软件工程概论河南工程学院(3)模块的控制范围和判断作用范围 模块的控制范围:本身及其所有下级模块。模块的判断作用范围:被判断调用的模块。原则:A.对于任何一个内部存在判断调用的模块,它的判断作用的范围应该是其控制范围的一个子集。B.存在判断调用的模块,所在层次不要与那些属于判断作用范围的模块所在的层次相隔太远。第57页,共107页。软件工程概论河南工程学院ABCDEFG模块G中有一条判断调用D的语句,违反第1条原则第58页,共107页。软件工程概论河南工程学院ABCDEFG违反第2条原则第59页,共107页。软件工程概论河南工程学院A

    33、BCDEFG违反第2条原则第60页,共107页。软件工程概论河南工程学院ABCDEFG正确第61页,共107页。软件工程概论河南工程学院(4)力争降低模块接口的复杂程度 模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。接口复杂或不一致(即看起来传递的数据之间没有联系),是紧联结或低聚合的征兆,应该重新分析这个模块的独立性。(5)设计单入口单出口的模块(6)模块功能应该可以预测 模块的功能应该能够预测,但也要防止模块功能过分局限。第62页,共107页。软件工程概论河南工程学院4 软件系统设计技术 层次图和HIPO(=H层次图+IPO输入处理输

    34、出图)第63页,共107页。软件工程概论河南工程学院 改进的IPO图(表):IPO 表系统:_ 作者:_模块:_ 日期:_编号:_被调用:处理:调用:输出:输入:局部数据元素注释:第64页,共107页。软件工程概论河南工程学院结构图:结构化设计的主要思想是自顶向下地分解功能,以使分解后的功能可由系统的一个给定程序执行。结构图可以将程序功能有层次地组织起来,其中的每一个程序都执行一系列的功能。建立结构图的主要规则是:程序是分层的,模块按高内聚、低耦合的方式组织。(1)结构图的主要内容(如图3.2.5)(2)图3-10(书P44)第65页,共107页。软件工程概论河南工程学院4.4 结构化设计的方

    35、法结构化设计方法是已结构化分析产生的数据流图为基础,根据数据流图的特征,按一定的策略映射出软件的功能结构图的方法。第66页,共107页。软件工程概论河南工程学院4.4 结构化设计的方法面向数据流的设计方法(即结构化设计SD-与SA衔接)以需求分析阶段产生的DFD为基础,把信息流映射成软件结构,信息流的类型决定了映射的方法。信息流分为两种类型:变换流和事务流。(一)概念1.变换流2.事务流3.设计过程第67页,共107页。软件工程概论河南工程学院1.变换流外部表示内部表示信息输入流输出流变换流信息流时间参看图形,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经

    36、过加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流具有这些特征时,这种信息流称为变换流。信息流称为变换流。第68页,共107页。软件工程概论河南工程学院2.事务流T事务事务中心数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这种“以事务为中心的”的数据流,成为“事务流”。处理T称为事务中心,完成以下任务:接收输入数据;分析每个事务以确定它的类型;根据事务类型选取一条活动通路。第69页,共107页。软件工程概论河南工程学院精化数据流程图精化数据流程图流类型区分事务中心和数据接收通路区分输入和输出分支映射成事务结构映射成变换结构运用模块设计规则

    37、,精化软件结构导出接口描述和全程数据结构复查详细设计事务分析变换分析事务变换面向数据流的设计过程面向数据流的设计过程第70页,共107页。软件工程概论河南工程学院(二)变换分析1.复查基本系统模型 复查的目的是确保系统的输入数据和输出数据符合实际。2.复查并精化数据流程图3.确定数据流程图具有变换特性还是事务特性 只有当遇到有明显事务特性的信息流时,才采用事务分析方法,否则,一般都认为是变换流,采用变换分析的方法。第71页,共107页。软件工程概论河南工程学院4.确定输入流和输出流的边界,从而孤立出变换中心(1)检查“输入流”的边界 从输入的数据源开始,沿着每一个由数据源传入的数据流的移动方向

    38、进行跟踪分析,逐个分析它所经过的处理逻辑功能。如果仅是传入的数据流作形式上的转换,逻辑上没有进行实际的数据处理功能,则这些处理逻辑属于系统的“输入处理部分”。顺着传入的数据流的移动方向,一直跟踪到它被真正地处理为止。第72页,共107页。软件工程概论河南工程学院(2)检查“输出流”的边界 从输出结果的地方开始,逆着每一个传递出去的数据流,由外向里反方向跟踪,逐个分析它的处理逻辑功能,一直反方向跟踪到它被真正地产生出来为止。(3)得到变换中心 根据前两步的分析结果,画出一个闭环界线,在界线以内的就是变换中心。第73页,共107页。软件工程概论河南工程学院5.完成“第一级分解”CmCaCtCe第一

    39、级分解的方法第74页,共107页。软件工程概论河南工程学院 控制模块Cm是抽象出来的,它位于软件结构最顶层,协调控制下属模块。输入信息处理控制模块Ca,协调对所有输入数据的接收。变换中心控制模块Ct,管理对内部形式的数据的所有操作。输出信息处理控制模块Ce,协调输出信息的产生过程。第75页,共107页。软件工程概论河南工程学院6.完成“第二级分解”所谓第二级分解就是把数据流程图中的每个处理映射成软件结构中一个适当的模块。完成第二级分解的方法是,从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理逻辑映射成软件结构中Ca控制下的一个低层模块;然后沿输出通路向外移动,把输入通路中每个处理

    40、逻辑映射成直接或间接受模块Ce控制的一个低层模块;最后把变换中心内的每个处理映射成受Ct控制的一个模块。第76页,共107页。软件工程概论河南工程学院ADCBCmCaCBDA第二级分解的方法第77页,共107页。软件工程概论河南工程学院7.使用模块的设计原则,对第一次分割得到的软件结构进一步精化。为了得到一个易于实现、易于测试和易于维护的软件结构,根据软件设计的基本原则和其它启发性原则,对初步分割得到的模块进行再分解或合并。第78页,共107页。软件工程概论河南工程学院(三)事务分析 事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在由数据流程图到软件结构的映射方法不同。由事

    41、务流映射成的软件结构包括一个接收分支和一个发送分支。映射出接收分支接收分支结构的方法和变换分析映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接收流通路的处理逻辑映射成模块。发送分支发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据流程图中的每一个活动流通路映射成与它的特征相对应的结构。第79页,共107页。软件工程概论河南工程学院总控调度A_CTLB_CTLC_CTL接收通路C通路B通路A通路事务分析的映射方法第80页,共107页。软件工程概论河南工程学院(四)总结 对于一个大系统,常常把变换分析和事务分析应用到同一个数据流程图的不同部分,由此得到的子结构形成“构件

    42、”,可以利用它们构造完整的软件结构。一般说来,如果数据流不具有显著的事务特点,最后使用变换分析;反之,如果具有明显的事务中心,则应该采用事务分析技术。第81页,共107页。软件工程概论河南工程学院4.5 系统包装 将系统的功能按作业流程图顺序组织成若干个功能单元、部件,最后进行“实体化”组装,实现一个可以运作的软件系统第82页,共107页。软件工程概论河南工程学院4.5.1 把系统定义成若干个作业硬件分界线(反映系统的分布特性)处理方式分界线(反映系统的交互特性)周期分界线第83页,共107页。软件工程概论河南工程学院4.5.2 把作业定义成若干个作业步利用现有的软件包由于安全和保密的需要资源

    43、的限制等。第84页,共107页。软件工程概论河南工程学院4.5.3 定义程序和装配单元第85页,共107页。软件工程概论河南工程学院4.6 4.6 软件详细设计概述软件详细设计概述q 详细设计(又称过程设计)是对概要设计阶段建立的模型(即每个组成模块)再进行详细定义和说明。包括定义每一模块的详细功能、输入数据、使用文件及使用方式,确定输出内容及格式,模块实现的详细算法,每一模块的程序构成等。q详细设计的任务详细设计的任务具体主要有如下五点五点。(1)确定每个模块的具体算法。(2)确定每个模块的内部数据结构及数据库的物理结构。(3)确定模块接口的具体细节。(即确定模块接口的详细信息,包括模块之间

    44、的接口信息、模块与系统外部的接口信息及用户界面等。)第86页,共107页。软件工程概论河南工程学院(4)为每个模块设计一组测试用例。(5)编写文档,参加复审。详细设计阶段给出了程序的框架,它基本上决定了最终的程序代码的质量。结构化程序设计就是保证程序的简明易懂的重要技术。1结构化程序设计结构化程序设计 结构化程序设计的基本思路结构化程序设计的基本思路,是把一个复杂的问题分阶段分阶段进行,每个阶段处理的问题都在人们容易理解和处理的范围内,这也正是前面介绍的结构化方法的主体思想。结构程序设计是釆用釆用“自顶向下,逐步细化自顶向下,逐步细化”的设计方法和单入口单出的设计方法和单入口单出口的控制结构口

    45、的控制结构。结构程序设计使用三种基本控制结构:顺序、选择、循环顺序、选择、循环。流程图如下。第87页,共107页。软件工程概论河南工程学院这三种基本结构就可以实现任何单入口单出口的程序。但为了使用方便,还允许有DO_UNTIL和DO_CASE两种控制结构。有时为了提前从循环中跳出,还允许有BREAK结构。我们称只允许使用三种基本结构的为经典的结构化程序设经典的结构化程序设计计;除三种基本结构外,还可用DO_UNTIL和DO_CASE的为扩展的结构程序设扩展的结构程序设计计;若再加上BREAK则称为修正的结构程序设计修正的结构程序设计。第88页,共107页。软件工程概论河南工程学院2.2.详细设

    46、计可采用的工具详细设计可采用的工具 1 1).(.(传统的传统的)程序流程图程序流程图 程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号基本符号如图5.17所示。图3.2.10 程序流程图中的基本符号(a)一般处理框;(b)输入/输出框;(c)判断框;(d)流程线;(e)起止框(a)(b)(c)(d)(e)第89页,共107页。软件工程概论河南工程学院 程序流程图的主要优点主要优点在于对程序的控制流程描述直观、清晰,使用灵活,便于阅读和掌握,因此在20世纪40年代末到70年代初被普遍采用。但随着程序设计方法的发展,

    47、程序流程图的许多缺点逐渐暴露出来,这些缺点缺点主要体现在以下方面:(1)程序流程图中可以随心所欲地使用流程线,容易造成程序控制结构的混乱,与结构化程序设计的思想相违背。(2)程序流程图难以描述逐步求精的过程,容易导致程序员过早考虑程序的控制流程,而忽略程序全局结构的设计。(3)程序流程图难以表示系统中的数据结构。为此,人们宁可选择其他一些更有利于结构化设计的表达工具,NS图和PAD图就是其中的两种图形工具。第90页,共107页。软件工程概论河南工程学院 2 2).N.NS S图图 N NS S图又称为盒图,它是为了保证结构化程序设计而由图又称为盒图,它是为了保证结构化程序设计而由NassiNa

    48、ssi和和ShneidermanShneiderman共同提出的一种图形工具。共同提出的一种图形工具。在NS图中,所有的程序结构均使用矩形框矩形框表示,它可以清晰地表达结构中的嵌套及模块的层次关系。NS图中,基本控制结构的表示符号如图3.2.11所示。由于NS图中没有流程线,不可能随意转移控制,因而表达出的程序结构必然符合结构化程序设计的思想,有利于培养软件设计人员的良好设计风格。但当所描述的程序嵌套层次较多时,不仅影响可读性而且不易修改。第91页,共107页。软件工程概论河南工程学院图3.2.11 NS图中基本控制结构的表示符号顺序结构;(b)分支结构;(c)多分支CASE结构;(a)(d)

    49、while-do结构;(e)do-until结构;(f)调用模块A值1值2值nCASE 1部分CASE 2部分CASE n部分CASE条件(c)(b)S1S2IF条件TFS2S1(a)while循环条件while-do部分(d)until条件do-until部分(e)(f)A第92页,共107页。软件工程概论河南工程学院 3 3).PAD.PAD图图 PAD(Problem Analysis DiagramPAD(Problem Analysis Diagram,问题分析图,问题分析图)是继程序流程图和NS图后,由日立公司在20世纪70年代提出的又一种用于详细设计的图形表达工具。它只能用于结构

    50、化程序的描述。它只能用于结构化程序的描述。PADPAD图采用了易图采用了易于使用的树型结构图形符号于使用的树型结构图形符号,既利于清晰地表达程序结构,又利于修改。PAD图中所经常使用的基本符号基本符号如图5.19所示。第93页,共107页。软件工程概论河南工程学院图5.19 PAD中基本符号顺序结构;(b)分支结构;(c)多分支CASE结构;(a)(d)当型循环;(e);直到型循环;(f)对s的细化S1S2(a)S1S2(b)条件TFS1S2(c)CASE值1Sn值2值nSWHILE条件(d)SUNTIL条件(e)S1S2Sn(f)S第94页,共107页。软件工程概论河南工程学院 PAD图具有

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

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


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


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

    163文库