欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新实用软件工程(第2版)第6章[赵池龙]PPT课件.ppt

    • 资源ID:56696855       资源大小:1.15MB        全文页数:72页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新实用软件工程(第2版)第6章[赵池龙]PPT课件.ppt

    实用软件工程实用软件工程(第第2 2版版)第第6 6章章 赵池赵池龙龙 第第6 6章章 软件设计软件设计本章导读本章导读软件需求是软件设计的基础,软件设计是软件需求是软件设计的基础,软件设计是软件开发的核心。软件开发的核心。本章首先讨论软件设计概论和软件设计原本章首先讨论软件设计概论和软件设计原理,然后介绍软件架构设计和软件详细设计,理,然后介绍软件架构设计和软件详细设计,重点是论述面向过程、面向数据和面向对象重点是论述面向过程、面向数据和面向对象的三种详细设计方法,以及软件设计的属性的三种详细设计方法,以及软件设计的属性和度量。最后介绍和度量。最后介绍IT企业的软件设计文档和企业的软件设计文档和设计管理文档编写的参考指南。设计管理文档编写的参考指南。原理原理1:抽象:抽象(1)控制抽象控制抽象面向过程设计面向过程设计,通过控制抽象,通过控制抽象(控制流程和接口控制流程和接口),对软件进行分解,达到降低软件复杂度的目的。对软件进行分解,达到降低软件复杂度的目的。面向对象设计面向对象设计,通过数据抽象和控制抽象,实现使,通过数据抽象和控制抽象,实现使数据和控制溶为一体,构成一个完整的对象。数据和控制溶为一体,构成一个完整的对象。(2)过程抽象过程抽象将数据处理抽象成函数或方法,获得最终的执行结将数据处理抽象成函数或方法,获得最终的执行结果,而不必去关心它们的内部实现细节。果,而不必去关心它们的内部实现细节。(3)数据抽象数据抽象在数据库建模和面向对象建模时,使用数据抽象,在数据库建模和面向对象建模时,使用数据抽象,设计出数据库的表及字段,或设计出类及类的属性。设计出数据库的表及字段,或设计出类及类的属性。原理原理2:分解:分解将一个软件分解成许多小模块将一个软件分解成许多小模块(代码行在代码行在200400之间之间),不同模块负责不同的功能。,不同模块负责不同的功能。(1)在架构设计中,将软件系统在架构设计中,将软件系统分解分解为子为子系统和模块;系统和模块;(2)在详细设计中,将子系统和模块在详细设计中,将子系统和模块分解分解成类和接口。成类和接口。原理原理3:低耦合高内聚:低耦合高内聚模块在系统中不能孤立存在,每个模块具有一定的模块在系统中不能孤立存在,每个模块具有一定的功能,他们共同完成系统的总功能,这样模块之间就功能,他们共同完成系统的总功能,这样模块之间就必然会存在联系或依赖。必然会存在联系或依赖。对于低内聚的模块,通过对于低内聚的模块,通过重新分解,重新分解,来提高模块来提高模块内部的紧凑性,使其成为高内聚模块,从而降低块间内部的紧凑性,使其成为高内聚模块,从而降低块间联系,提高模块的独立性。联系,提高模块的独立性。对于高耦合的模块,通过对于高耦合的模块,通过重新组合重新组合,将联系紧密,将联系紧密的部分组合成新的模块,使其成为低耦合模块,从而的部分组合成新的模块,使其成为低耦合模块,从而提高模块的可维护性。提高模块的可维护性。模块耦合程度由低到高的分级如下:模块耦合程度由低到高的分级如下:(1)数据耦合数据耦合(或参数传递耦合或参数传递耦合),属于低级别耦合。,属于低级别耦合。例如,模块间通过参数传递或数据结构来访问。例如,模块间通过参数传递或数据结构来访问。(2)控制耦合控制耦合,属于中级别耦合。例如,操作系统中,属于中级别耦合。例如,操作系统中的进程调度程序,通过就绪进程的优生级来调度。那么的进程调度程序,通过就绪进程的优生级来调度。那么调度程序与进程之间的耦合,就是控制耦合。调度程序与进程之间的耦合,就是控制耦合。(3)外部耦合外部耦合(或共用耦合或共用耦合),它属于高级别耦合。例,它属于高级别耦合。例如,模块间共享全局变量,或共同访问全局数据区中的如,模块间共享全局变量,或共同访问全局数据区中的数据项,就是共用耦合。数据项,就是共用耦合。(4)内容耦合内容耦合,它属于最高级别耦合。例如,一个模,它属于最高级别耦合。例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合。就是内容耦合。耦合可发生在软件设计、软件编程之中。耦合可发生在软件设计、软件编程之中。原理原理4:封装:封装封装是将信息隐藏在一个实体中,使其内部细封装是将信息隐藏在一个实体中,使其内部细节对外部不可见。节对外部不可见。封装是实现封装是实现“低耦合高内聚低耦合高内聚”的技术手段之一。的技术手段之一。要进行正确的封装,必须遵守下列原则:要进行正确的封装,必须遵守下列原则:(1).实体间相互隐藏内部实现;实体间相互隐藏内部实现;(2).尽量减少全局的共享数据。尽量减少全局的共享数据。原理原理5:接口和实现分离:接口和实现分离接口和实现分离的思想起源很早。上世纪五十接口和实现分离的思想起源很早。上世纪五十年代,就出现了年代,就出现了“子程序和函数子程序和函数”的概念,人们在的概念,人们在实现和调用它们的时候,就运用了这种思想。实现和调用它们的时候,就运用了这种思想。将接口和实现分离开来,对外只提供接口,隐将接口和实现分离开来,对外只提供接口,隐藏具体实现。接口与实现的分离,保证了实现的藏具体实现。接口与实现的分离,保证了实现的独立变化,降低了模块间的耦合。独立变化,降低了模块间的耦合。*6.3软件架构设计软件架构设计当对象、类、构件、组件等概念出现并成熟之后,当对象、类、构件、组件等概念出现并成熟之后,软件概要设计(总体设计软件概要设计(总体设计/系统设计),就改名为架构系统设计),就改名为架构设计。设计。1.架构设计基本概念架构设计基本概念(1)(1)系统系统 系统是部件的系统是部件的集合集合,以完成某项特定的功能。,以完成某项特定的功能。(2)(2)架构架构 架构是描述系统中架构是描述系统中部件间相互关系部件间相互关系及及部件与环境间部件与环境间相互关系相互关系的基本的基本框架框架。架构就是使用别人搭好的架构就是使用别人搭好的舞台舞台,你来做表演。,你来做表演。1.架构设计基本概念架构设计基本概念(续续)(3)系统架构系统架构系统架构是实体、实体属性以及实体关系的系统架构是实体、实体属性以及实体关系的集合集合。(4)软件架构软件架构软件架构是软件部件、部件属性以及它们之间相互软件架构是软件部件、部件属性以及它们之间相互作用的作用的集合集合,以描述软件系统的基本属性和限制条件。,以描述软件系统的基本属性和限制条件。架构及软件架构尚处在发展期,对于其定义,学术架构及软件架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的视点也会造界尚未形成一个统一的意见,而不同角度的视点也会造成对软件架构的不同理解。成对软件架构的不同理解。1.1.架构设计基本概念架构设计基本概念(续续)(5)架构视图架构视图架构视图,是指从一个特定的视角对系统或系统的架构视图,是指从一个特定的视角对系统或系统的一部分进行描述。一部分进行描述。架构可以用不同的架构视图进行描述,架构可以用不同的架构视图进行描述,例如逻辑视图用于描述系统功能,进程视图用于描述系例如逻辑视图用于描述系统功能,进程视图用于描述系统并发,物理视图用于描述系统部署。统并发,物理视图用于描述系统部署。(6)架构视点架构视点架构视点描述如何创建和使用架构视图架构视点描述如何创建和使用架构视图,包含名称、,包含名称、涉众、关注点、建模规则等信息。涉众、关注点、建模规则等信息。(7)软件架构建模软件架构建模软件架构建模,是与软件架构定义和管理相关的分软件架构建模,是与软件架构定义和管理相关的分析、设计、文档化、评审等析、设计、文档化、评审等活动活动。1.架构设计基本概念架构设计基本概念(续续)(8)软件架构建模的目的:软件架构建模的目的:a.捕获早期的捕获早期的设计决策设计决策。设计决策将影响到后续。设计决策将影响到后续设计、开发、部署、维护和演变。设计、开发、部署、维护和演变。b.捕获软件捕获软件运行环境运行环境。c.为底层实现为底层实现提供限制条件提供限制条件。d.为开发团队的结构组成为开发团队的结构组成提供依据提供依据。e.设计系统满足可靠性、可维护性、其他性能等。设计系统满足可靠性、可维护性、其他性能等。f.方便开发团队间的交流。方便开发团队间的交流。1.架构设计基本概念架构设计基本概念(续续)(9)软件架构应描述以下问题:软件架构应描述以下问题:a.软件系统中软件系统中包含了哪些包含了哪些子系统子系统/部件。部件。b.每个子系统每个子系统/部件都部件都完成哪些功能完成哪些功能。c.子系统子系统/部件对外提供或使用外部的部件对外提供或使用外部的哪些接口哪些接口。e.子系统子系统/部件间的部件间的依赖关系依赖关系,以及对实现和测试的,以及对实现和测试的影响。影响。f.系统是系统是如何部署如何部署的。的。软件架构不包括硬件、网格以及物理平台的设计。软件软件架构不包括硬件、网格以及物理平台的设计。软件架构只描述创建软件所需要的各种环境,而不是详细描架构只描述创建软件所需要的各种环境,而不是详细描述整个系统。述整个系统。2.软件架构风格软件架构风格(模式模式)定义定义1:模式模式(pattern)是表示周境、动机、解决方案三个方是表示周境、动机、解决方案三个方面关系的一个面关系的一个规则规则,模式描述了一个在某种周境下不断,模式描述了一个在某种周境下不断重复发生的问题重复发生的问题,以及该问题解决方案的核心所在,模,以及该问题解决方案的核心所在,模式既是一个事物(式既是一个事物(thing)又是一个过程)又是一个过程(process),不,不仅描述该事物本身,而且提出了通过怎样的过程来产生仅描述该事物本身,而且提出了通过怎样的过程来产生该事物。该事物。定义定义2:模式就是解决某一类问题的模式就是解决某一类问题的方法论方法论。你把解决某类。你把解决某类问题的方法总结归纳到理论高度,那就是模式。问题的方法总结归纳到理论高度,那就是模式。模式模式1 1:数据流模式:数据流模式数据流系统的特点是包含两个或多个数数据流系统的特点是包含两个或多个数据处理的部件,数据处理部件将输入转换据处理的部件,数据处理部件将输入转换为输出。典型的数据流系统包括:为输出。典型的数据流系统包括:a.批处理程序批处理程序b.管道管道/过滤器程序过滤器程序数据处理部件以顺序的方式依次处理数数据处理部件以顺序的方式依次处理数据,前一个处理部件的输出作为下一个处据,前一个处理部件的输出作为下一个处理部件的输入。这种形式也称为管道,如理部件的输入。这种形式也称为管道,如图图6-2、6-3所示。所示。数据流模式数据流模式数据处数据处理理1数据处数据处理理2数据处数据处理理3数据处理数据处理1子处理子处理 B子处理子处理 A模式模式2:调用返回模式:调用返回模式调用返回系统的特点是包含一个主控制器,调用返回系统的特点是包含一个主控制器,由它来控制操作的调用。典型的调用返回系由它来控制操作的调用。典型的调用返回系统包括:统包括:a.主程序主程序/子程序子程序b.远程过程调用系统远程过程调用系统主程序主程序/子程序系统是经典的系统架构,子程序系统是经典的系统架构,例如例如C程序和程序和C+程序都有一个主程序来控程序都有一个主程序来控制系统的执行,如图制系统的执行,如图6-4所示。所示。调用返回模式调用返回模式主程序主程序子程序子程序1子程序子程序2子程序子程序3模式模式3:虚拟机模式:虚拟机模式虚拟机系统执行规定的语言符号,为其它的虚拟机系统执行规定的语言符号,为其它的技术提供一个语义层。虚拟机结构通常由四个技术提供一个语义层。虚拟机结构通常由四个主要部件组成:解释引擎、包含主要部件组成:解释引擎、包含“伪程序伪程序”的内的内存、解释引擎控制状态、程序的执行状态。存、解释引擎控制状态、程序的执行状态。典型的虚拟机系统包括:典型的虚拟机系统包括:a.工作流系统工作流系统b.游戏程序游戏程序c.大型大型ERP模式模式4:共享数据模式:共享数据模式共享数据系统以一个或多个数据库共享数据系统以一个或多个数据库/数据数据仓库为中心进行组织,其它部件可以从中读仓库为中心进行组织,其它部件可以从中读写存储的数据。共享数据系统还提供并发访写存储的数据。共享数据系统还提供并发访问、容错处理、访问权限控制等功能。问、容错处理、访问权限控制等功能。典型的共享数据系统包括:典型的共享数据系统包括:a.数据库数据库b.知识库知识库c.源代码控制程序源代码控制程序模式模式5:信息系统模式:信息系统模式现代信息系统平台模式,主要考虑现代信息系统平台模式,主要考虑B/S模式。模式。B/S模式的三层:表示层(模式的三层:表示层(presentation),业务),业务层(层(business),和数据存储层(),和数据存储层(dataaccess)。)。B/S模式的优点:模式的优点:a.架构简化了客户端。它无需象架构简化了客户端。它无需象C/S模式那样在模式那样在不同的客户机上安装不同的客户应用程序,而只需安不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。装通用的浏览器软件。b.简化了系统的开发和维护。简化了系统的开发和维护。c.使用户的操作变得更简单。使用户的操作变得更简单。d.特别适用于网上信息发布特别适用于网上信息发布。模式模式6:数据库设计模式:数据库设计模式第三者插足模式。第三者插足模式。列变行模式。列变行模式。四个原子化模式。四个原子化模式。用视图进行数据处理模式。用视图进行数据处理模式。6.4软件详细设计软件详细设计软件详细设计,又称为软件实现设计。若在概要软件详细设计,又称为软件实现设计。若在概要设计中将软件系统划分为各个不同的子系统,则详设计中将软件系统划分为各个不同的子系统,则详细设计就是各个细设计就是各个子系统的实现设计子系统的实现设计。若在概要设计。若在概要设计中将软件系统划分为各个不同的模块,则详细设计中将软件系统划分为各个不同的模块,则详细设计就是各个就是各个模块的实现设计模块的实现设计。若在概要设计中将软件。若在概要设计中将软件系统划分为各个不同的部件,则详细设计就是各个系统划分为各个不同的部件,则详细设计就是各个部件的实现设计部件的实现设计。本节分别介绍面向过程、面向数据和面向对象三本节分别介绍面向过程、面向数据和面向对象三种详细设计方法,重点是说明这种详细设计方法,重点是说明这三种详细设计方法三种详细设计方法的实质的实质、各自的描述工具及其、各自的描述工具及其相互之间的关系相互之间的关系。详细设计的任务与步骤详细设计的任务与步骤 1.1.基本任务基本任务 回答的关键问题:回答的关键问题:“怎样具体地实现这个系怎样具体地实现这个系统统”。主要任务是设计出程序的。主要任务是设计出程序的“蓝图蓝图”,”,供程供程序员日后根据这个蓝图编写出实际的程序代码。序员日后根据这个蓝图编写出实际的程序代码。2.2.基本步骤基本步骤 a.a.确定确定模块如何实现模块如何实现 b.b.编写编写详细设计说明书详细设计说明书 c.c.制定制定单元测试计划单元测试计划 d.d.评审评审详细设计详细设计6.4.1面向过程详细设计面向过程详细设计面向过程详细设计,实质上就是面向过程详细设计,实质上就是面向算法面向算法分析设计,是其他各种详细设计的基础。分析设计,是其他各种详细设计的基础。一般而言,面向过程详细设计的描述工具一般而言,面向过程详细设计的描述工具有下列四种:有下列四种:1.流程图流程图(Flowchart)流程图是用图形化的方式,表示程序中一流程图是用图形化的方式,表示程序中一系列的操作以及操作执行的顺序,其表示元系列的操作以及操作执行的顺序,其表示元数如表数如表6-2所示。所示。流程图流程图(Flowchart)名称名称图图例例说说明明终结终结符符 表示流程的开始和表示流程的开始和结结束束(数据源数据源/潭潭)处处理理 表示程序的表示程序的计计算步算步骤骤或或处处理理过过程程(具体具体算法算法),在方框内填写,在方框内填写处处理的理的名称或程序名称或程序语语句句判断判断 表示表示逻辑逻辑判断或判断或分支分支,用于决定,用于决定执执行后行后续续的路径,在菱形框内填写判的路径,在菱形框内填写判断的条件断的条件输输入入/输输出出 获获取待取待处处理的信息(理的信息(输输入入),),记录记录或或显显示已示已处处理的信息(理的信息(输输出出)连线连线 连连接其它的符号,表示接其它的符号,表示执执行行顺顺序或序或数据数据流向流向【例【例6-1】使用流程图,描述并打印使用流程图,描述并打印N的阶乘,如图的阶乘,如图6-6所示。所示。2.N-S图图(Nassi-SchneidermanDiagram)N-S图是流程图的另一种表达形式,由图是流程图的另一种表达形式,由Nassi和和Schneiderman提出,简称提出,简称N-S图。图。与流程图对应的三种结构与流程图对应的三种结构(顺序、分支、循顺序、分支、循环环),用图形表示。如图,用图形表示。如图6-7所示。所示。3.程序设计语言程序设计语言PDL程序设计语言也称程序设计语言也称结构化英语结构化英语或或伪代码伪代码,它使,它使用结构化编程语言的风格描述程序算法,但不遵循用结构化编程语言的风格描述程序算法,但不遵循特定编程语言的语法。程序设计语言允许你在比源特定编程语言的语法。程序设计语言允许你在比源代码更高的层次上进行设计。代码更高的层次上进行设计。【例【例6-3】使用程序设计语言描述打印使用程序设计语言描述打印N的阶乘的阶乘读入读入N置置F的值为的值为1,置,置M的值为的值为1当当M=N时,执行:时,执行:使使F=F*M使使M=M+1打印打印F4.决策表决策表(DT)决策表以紧凑的形决策表以紧凑的形式描述复杂的逻辑。式描述复杂的逻辑。决策表与决策表与if-else、switch-case语句类语句类似,将条件判断与执似,将条件判断与执行的动作联系起来。行的动作联系起来。决策表通常分成四决策表通常分成四个区域,如右图个区域,如右图6-9所示。所示。条条件件条条件件选选择择动动作作动动作作选选择择【例【例6-4】条件对应于一个变量、关系或预测,其可能的组合条件对应于一个变量、关系或预测,其可能的组合在条件选择中列出。动作是一个函数或操作。动作选择当条件在条件选择中列出。动作是一个函数或操作。动作选择当条件满足时所执行的动作,如右图满足时所执行的动作,如右图6-10所示。所示。条件条件不能打印不能打印红红灯灯闪闪不能不能识别识别打印机打印机动动作作检查电检查电源源线线检查检查打印机数据打印机数据线线检查检查是否安装是否安装驱动驱动程序程序检查检查墨盒墨盒检查检查是否卡是否卡纸纸5.日本的日本的PAD PAD PAD是问题分析图(是问题分析图(Problem Analysis DiagramProblem Analysis Diagram)的英文缩写,由日立公司发明,已经得到推广。的英文缩写,由日立公司发明,已经得到推广。PAD PAD图有以下优点:图有以下优点:a.a.使用使用PADPAD图设计出来的程序必然是结构化的程序;图设计出来的程序必然是结构化的程序;b.PAD b.PAD图所描述的程序结构非常清晰;图所描述的程序结构非常清晰;c.PAD c.PAD图表现的程序逻辑易读、易懂、易记;图表现的程序逻辑易读、易懂、易记;d.d.容易将容易将PADPAD图转换成程序;图转换成程序;e.PAD e.PAD图还可以描述数据结构;图还可以描述数据结构;f.PAD f.PAD图支持自顶向下、逐步求精方法的使用。图支持自顶向下、逐步求精方法的使用。6.4.2面向数据详细设计面向数据详细设计面向数据设计,它以实体面向数据设计,它以实体-关系模型为基础,按照关系模型为基础,按照一定的规则将概念数据模型一定的规则将概念数据模型CDM转换成能被某种数据转换成能被某种数据库管理系统接受的物理数据模型库管理系统接受的物理数据模型PDM,创建物理上的,创建物理上的数据库表、索引和视图,并且用存储过程和触发器来数据库表、索引和视图,并且用存储过程和触发器来实现各种业务规则。实现各种业务规则。实践证明,凡是用存储过程能实现触发器功能的地实践证明,凡是用存储过程能实现触发器功能的地方,就坚决用存储过程,而不用触发器,因为过多的方,就坚决用存储过程,而不用触发器,因为过多的触发器不但影响数据库的运行性能,而且可能导致数触发器不但影响数据库的运行性能,而且可能导致数据库系统崩溃。据库系统崩溃。面向数据详细设计面向数据详细设计面向数据详细设计,实质上就是面向元数据详面向数据详细设计,实质上就是面向元数据详细设计。元数据是数据库和数据仓库中的重要概细设计。元数据是数据库和数据仓库中的重要概念,元数据是关于数据的数据,组织数据的数据,念,元数据是关于数据的数据,组织数据的数据,领导数据的数据,管理数据的数据。领导数据的数据,管理数据的数据。在详细设计时,对于这些元数据,都要用图形、在详细设计时,对于这些元数据,都要用图形、数据字典或文字进行数据字典或文字进行详细描述详细描述。对存储过程中的。对存储过程中的算法,也要进行算法,也要进行详细设计详细设计。因此,面向数据详细。因此,面向数据详细设计的描述工具,主要是概念数据模型设计的描述工具,主要是概念数据模型CDM、物理数据模型物理数据模型PDM和存储过程。和存储过程。80%以上的工以上的工作,可以在作,可以在CDM上完成。上完成。面向数据详细设计面向数据详细设计 在图在图6-116-11中,需要说明中,需要说明2 2点。点。(1 1)图书图书与与图册图册关系的理解与处理。关系的理解与处理。实体实体“图书图书”与实体与实体“图册图册”之间的关系,是一对多之间的关系,是一对多关系。这种处理的好处是:读者预借或者借阅,只是直关系。这种处理的好处是:读者预借或者借阅,只是直接与图册打交道,而不直接与图书打交道,从而防止了接与图册打交道,而不直接与图书打交道,从而防止了极少数读者将别人的图册偷来冒称自已的图册还书。极少数读者将别人的图册偷来冒称自已的图册还书。(2 2)多对多关系的理解与处理。)多对多关系的理解与处理。实体实体“读者读者”与实体与实体“图册图册”之间的关系,是多对多之间的关系,是多对多关系,这种多对多的复杂关系,是通过两个实体关系,这种多对多的复杂关系,是通过两个实体“预约预约记录记录”和和“借阅记录借阅记录”来简化的。而实体来简化的。而实体“图书图书”与实与实体体“作者作者”之间的多对多关系,是通过实体之间的多对多关系,是通过实体“图书作者图书作者”来简化的。来简化的。面向数据详细设计面向数据详细设计由于由于CASE工具工具PowerDesigner具有正向和逆向的具有正向和逆向的双向功能,所以既可以从双向功能,所以既可以从CDM生成生成PDM,又可以从,又可以从PDM生成生成CDM。由此可见,数据模型设计,也可以从。由此可见,数据模型设计,也可以从PDM开始进行。开始进行。在详细设计时,对于图在详细设计时,对于图6-12中物理数据模型中的表中物理数据模型中的表名和字段名,以及在此基础上产生的索引名、视图名、名和字段名,以及在此基础上产生的索引名、视图名、存储过程名都要进行详细定义与解释,对存储过程中的存储过程名都要进行详细定义与解释,对存储过程中的算法也要具体说明。同时,还要对算法也要具体说明。同时,还要对数据库的表结构与系数据库的表结构与系统的录入界面及输出报表之间的关系,作出详尽的描述统的录入界面及输出报表之间的关系,作出详尽的描述。6.4.3面向对象详细设计面向对象详细设计软件系统的架构设计完成后,软件系统的架构设计完成后,利用利用UML的描述工具:的描述工具:类图、顺序图、状态图、部类图、顺序图、状态图、部件图、部署图,分别将架构中的部件件图、部署图,分别将架构中的部件(组件组件/构件构件)进行实现设计,直到可以编程为止;进行实现设计,直到可以编程为止;在实现设计中,对类类的属性定义、类在实现设计中,对类类的属性定义、类的方法算法、接口说明、接口实现、类之的方法算法、接口说明、接口实现、类之间的关系、对象与消息之间的关系、实体间的关系、对象与消息之间的关系、实体之间的状态转换,均要详细说清楚。之间的状态转换,均要详细说清楚。*6.4.4软件详细设计方法总结软件详细设计方法总结运用详细设计的描述工具,将架构内的构件,设计运用详细设计的描述工具,将架构内的构件,设计成编程实现的兰图,就是详情设计。成编程实现的兰图,就是详情设计。对于对于B/S的系统,的系统,“面向数据方法用在数据库服务器面向数据方法用在数据库服务器层次上系统的设计与实现,面向对象方法用在除数据库层次上系统的设计与实现,面向对象方法用在除数据库服务器层次之外的其他层次上系统的设计与实现,面向服务器层次之外的其他层次上系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现过程方法用在其他两种方法本身内部函数的设计与实现”。这三种方法是互相帮助、取长补短、彼此有关的。这三种方法是互相帮助、取长补短、彼此有关的。一般而言,对于一个大型信息系统的建设,由于其分析、一般而言,对于一个大型信息系统的建设,由于其分析、设计、实现、测试、维护的重点是数据库服务器上的数设计、实现、测试、维护的重点是数据库服务器上的数据,所以在实施的过程中,在宏观上仍然要遵守据,所以在实施的过程中,在宏观上仍然要遵守“五个五个面向面向”的实施理论,即:的实施理论,即:“面向流程分析、面向数据设计、面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理面向对象实现、面向功能测试、面向过程管理”。*6.5软件属性和度量软件属性和度量6.5.1设计属性设计属性软件架构的设计属性,表现在它们的可用性和软件架构的设计属性,表现在它们的可用性和可管理性上。可管理性上。1可用性可用性可用性是系统正常运行时间的概率,即:可用性是系统正常运行时间的概率,即:可用性可用性=平均正常工作时间平均正常工作时间/(平均正常工作时间(平均正常工作时间+平均修复时间)平均修复时间)影响可用性的因素影响可用性的因素1.1.不充分的测试。不充分的测试。2.2.更改管理问题。更改管理问题。3.3.缺少在线监视和分析。缺少在线监视和分析。4.4.操作错误。操作错误。5.5.弱编码。弱编码。6.6.与外部服务或应用程序的交互。与外部服务或应用程序的交互。7.7.不同的操作条件(使用级别更改、峰值重载)。不同的操作条件(使用级别更改、峰值重载)。8.8.异常事件(安全性失败、广播风暴)。异常事件(安全性失败、广播风暴)。9.9.硬件故障(硬盘、控制器、网络设备、服务器、电源、内存和硬件故障(硬盘、控制器、网络设备、服务器、电源、内存和 CPUCPU)。)。10.10.环境问题(电源、冷却、火、洪水、灰尘、自然灾害)。环境问题(电源、冷却、火、洪水、灰尘、自然灾害)。提高可用性的办法提高可用性的办法 (1)(1)使用群集。使用群集。集群包括至少将两个系统连接到一起,使两个服集群包括至少将两个系统连接到一起,使两个服务器能够像一台机器那样工作或者看起来好像一台机器。务器能够像一台机器那样工作或者看起来好像一台机器。集集是高可用性的关键技术,因为它在出现失败时,集集是高可用性的关键技术,因为它在出现失败时,提供即时故障转移应用程序服务。提供即时故障转移应用程序服务。(2)(2)使用网络负载平衡。使用网络负载平衡。“网络负载平衡网络负载平衡”(NLB)”(NLB),它通过检测某服务器失败,它通过检测某服务器失败后,能自动将通信量重新分发给仍然运行的服务器。后,能自动将通信量重新分发给仍然运行的服务器。提高可用性的办法提高可用性的办法(续续)(3)(3)使用服务级别协议。使用服务级别协议。定义期望的服务级别。这样的服务级别协议应包括这定义期望的服务级别。这样的服务级别协议应包括这样的细节:样的细节:“该应用程序应每周该应用程序应每周 7 7 天、每天天、每天 24 24 小时小时运行,年可用性为运行,年可用性为 99.9%”99.9%”。(4)(4)提供实时的监视。提供实时的监视。连续监视操作工作负荷和连续监视操作工作负荷和失败数据,对于发现趋势和失败数据,对于发现趋势和改善服务至关重要。改善服务至关重要。(5)使用数据备份使用数据备份。(6)检查所有安全计划检查所有安全计划。安全性是指确保应用程序服务只对有资格的用户可安全性是指确保应用程序服务只对有资格的用户可用。安全性还意味着保护应用程序使用的所有分布式组用。安全性还意味着保护应用程序使用的所有分布式组件和资源。件和资源。2.可管理性可管理性(1)可靠性)可靠性软件可靠性是指应用程序能在多大程度上,在不发软件可靠性是指应用程序能在多大程度上,在不发生失败的情况下,准确地提供在原始规范中定义的服务:生失败的情况下,准确地提供在原始规范中定义的服务:可靠性可靠性=小时数小时数/失败次数失败次数例如,假设预期应用程序提供的可靠性为:每天例如,假设预期应用程序提供的可靠性为:每天24小时操作,每小时操作,每30天发生一次失败(大约每天发生一次失败(大约每720小时失小时失败一次)。测试表明应用程序运行败一次)。测试表明应用程序运行1800小时中发生两小时中发生两次失败,所以,次失败,所以,可靠性可靠性=1800/2=900小时小时软件可靠性的一个重要概念,是当软件发生失败时,软件可靠性的一个重要概念,是当软件发生失败时,软件仍可用并继续执行的程度。软件仍可用并继续执行的程度。2.可管理性可管理性(续续)(2)(2)可维护性可维护性 可移植性可移植性:软件系统能否在不同的硬件、操作系统上运行。:软件系统能否在不同的硬件、操作系统上运行。可修改性可修改性:添加新功能或修改现有功能的难易程度。可修改:添加新功能或修改现有功能的难易程度。可修改性差的系统有以下表现:性差的系统有以下表现:a.a.脆弱。修改脆弱的软件系统将破坏现有的功能。脆弱。修改脆弱的软件系统将破坏现有的功能。b.b.僵化。软件系统难以用简单的方式进行修改。僵化。软件系统难以用简单的方式进行修改。c.c.重复。重复代码散布各个角落,使之难于修改。重复。重复代码散布各个角落,使之难于修改。易理解性易理解性:只有理解原有的系统才能对它进行修改。:只有理解原有的系统才能对它进行修改。可调试性可调试性:支持多级的在线调试。:支持多级的在线调试。2.可管理性可管理性(续续)(3)其它属性其它属性文化适应性文化适应性:是否提供多语言版本支:是否提供多语言版本支持,提供对不同文件差异的支持。持,提供对不同文件差异的支持。可测试性可测试性:软件可以有效的测试。:软件可以有效的测试。易用性易用性:提供友好的人机界面。:提供友好的人机界面。危险性危险性:系统对现实世界不会带来灾:系统对现实世界不会带来灾难。难。6.5.2设计度量设计度量设计度量是指评估和量化软件设计的结构、质量等设计度量是指评估和量化软件设计的结构、质量等方面的属性,用于项目的质量控制和进度控制。方面的属性,用于项目的质量控制和进度控制。1.面向过程设计的度量面向过程设计的度量(1)内聚度量内聚度量利用数据切片对功能内聚进行度量。内聚度量利用数据切片对功能内聚进行度量。内聚度量SFC则是超级胶合数据与所有数据的比值:则是超级胶合数据与所有数据的比值:SFC的值越大,内聚程度越高。的值越大,内聚程度越高。参数及符号说明:参数及符号说明:SFC:strongfunctionalcohesion(强功能强功能性内聚性内聚)P:procedureSA:sliceabstraction(切片抽取切片抽取)SG(SA(p):(表示位于所有表示位于所有SA(p)数据切片数据切片上的数据符号集合上的数据符号集合)Tockens(p):表示过程:表示过程p的数据符号集合。的数据符号集合。1.面向过程设计的度量面向过程设计的度量(续续)(2)耦合度量耦合度量耦合度耦合度F反映了模块与模块之间、模块与全局数据之间、模块反映了模块与模块之间、模块与全局数据之间、模块与环境之间的关联,与环境之间的关联,F的值越大,耦合度越高。计算公式为:的值越大,耦合度越高。计算公式为:F=1/(i1+q1i2+u1+q2u2+g1+q3g2+w+r)其中:其中:i1=输入数据参数的个数输入数据参数的个数i2=输入控制参数的个数输入控制参数的个数u1=输出数据参数的个数输出数据参数的个数u2=输出控制参数的个数输出控制参数的个数g1=全局变量用于数据的个数全局变量用于数据的个数g2=全局变量用于控制的个数全局变量用于控制的个数w=被调用模块的个数被调用模块的个数r=调用该模块的模块个数调用该模块的模块个数q1,q2,q3=21.面向过程设计的度量面向过程设计的度量(续续)(3)复杂度度量复杂度度量程序复杂度反映出其可靠性和可维护性,从复杂度程序复杂度反映出其可靠性和可维护性,从复杂度的分析中可以找到系统潜在的不可靠的区域。的分析中可以找到系统潜在的不可靠的区域。复杂度与复杂度与程序的大小无关,只取决于程序的判断分支结构程序的大小无关,只取决于程序的判断分支结构。从图。从图论出发,复杂度度量公式为:论出发,复杂度度量公式为:v=e-n+2p其中:其中:e=图形顶点数图形顶点数n=边数边数p=相连部件的数量相连部件的数量2.面向对象设计的度量面向对象设计的度量目前广泛被采用的面向对象的度量标准,是由目前广泛被采用的面向对象的度量标准,是由Chidamber和和Kemerer提出的,简称为提出的,简称为CK度量套件。度量套件。CK度量套件中提出了度量套件中提出了6个设计度量:个设计度量:度量度量1:每个类的加权方法(每个类的加权方法(WeightedMethodsPerClass,WMC)设设M1,Mn是类是类C的方法,的方法,并且并且M1,Mn的复的复杂度分别为杂度分别为C1,Cn。那么。那么2.面向对象设计的度量面向对象设计的度量(续续)度量度量2:继承树的深度(继承树的深度(DepthofInheritanceTree,DIT)指一个类到根类的深度,如果涉及多重继承,指一个类到根类的深度,如果涉及多重继承,取深度的最大值。取深度的最大值。DIT值反映了一个类受其父类的影值反映了一个类受其父类的影响程度的大小。一个类的响程度的大小。一个类的DIT值越大,它所继承的方值越大,它所继承的方法越大,要预测它的行为越困难。法越大,要预测它的行为越困难。度量度量3:子类数量(子类数量(NumberofChildren,NOC)NOC指一个类的直接子类的数量。一个类的子指一个类的直接子类的数量。一个类的子类越多,其复用性越高。类越多,其复用性越高。NOC值越大,该类的被正值越大,该类的被正确抽象的可能性越低,对子类的影响就越大,需要确抽象的可能性越低,对子类的影响就越大,需要对该类进行更多的测试。对该类进行更多的测试。2.面向对象设计的度量面向对象设计的度量(续续)度量度量4:对象类间的耦合(对象类间的耦合(Couplingbetweenobjectclasses,CBO)CBO指与一个类相耦合的类的数量。类间耦合越高,指与一个类相耦合的类的数量。类间耦合越高,其模块化程度和复用性越差。一个类的其模块化程度和复用性越差。一个类的CBO值越大,对值越大,对设计的其它部分的更改越敏感,其可维护性越差,需要设计的其它部分的更改越敏感,其可维护性越差,需要进行的测试更多。进行的测试更多。度量度量5:类的响应(类的响应(ResponseForaClass,RFC)RFC指一个类的消息响应集合的势。一个类的消息指一个类的消息响应集合的势。一个类的消息响应集合是指当一个类的对象接收到一个消息时,可能响应集合是指当一个类的对象接收到一个消息时,可能会被执行的方法的集合。会被执行的方法的集合。RFC值越大,类的复杂度越高,值越大,类的复杂度越高,测试和调试工作量越大。测试和调试工作量越大。2.面向对象设计的度量面向对象设计的

    注意事项

    本文(最新实用软件工程(第2版)第6章[赵池龙]PPT课件.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开