系统设计课件_第1页
系统设计课件_第2页
系统设计课件_第3页
系统设计课件_第4页
系统设计课件_第5页
已阅读5页,还剩186页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章系统设计7.1概述7.2系统平台设计7.3拓扑结构和计算模式设计7.4软件结构设计7.5详细设计7.6数据库设计第7章系统设计7.1概述7.1概述7.1.1系统设计的任务和特点在信息系统开发中,突出信息系统特征的业务、管理、决策等因素已经在前续阶段中被消融和解决,到了系统设计阶段,信息系统的设计与一般软件系统的设计已经没有太大的区别,软件工程对软件设计的思想、方法、技术和过程完全适应于信息系统的设计。因此,信息系统的设计也就基本等同于软件系统的设计。7.1概述7.1.1系统设计的系统设计的任务是,为实现信息系统需求模型所规定的功能和性能要求,考虑信息系统实现环境,通过对信息系统分析模型的综合分析和细化,确定出信息系统的设计模型。与系统分析相比,系统设计具有以下特点:(1)设计性。设计不同于分析,设计是根据系统的要求,得出实现系统的方案。所以,系统设计是根据需求确定系统方案的过程。(2)具体化。相对于系统分析的概念性而言,系统设计不能停留在概念层次上,必须具体化、细致化。系统设计的任务是,为实现信息系统需求(3)复杂性。系统设计涉及到具体细节,工作量大、头绪繁多,一般要比系统分析多出近乎5倍的工作量,因此,设计人员必须认真对待。(4)往复性。一个成熟的设计方案并不是一次完成的,而需要经过多次的迭代反复才能够完成。(3)复杂性。系统设计涉及到具体细节7.1.2系统设计的主要工作1.平台设计信息系统平台是信息系统开发和运行的环境,包括网络、计算机、相关设备、支撑软件和系统软件等。平台设计需要根据信息系统设计要求,通过对技术和市场的综合分析,确定出网络结构、设备选型和软件平台方案。7.1.2系统设计的主要工作2.结构设计在设计工作中,需要确定信息系统的拓扑结构、计算模式和软件结构。3.详细设计详细设计是对软件结构中确定出的各个子系统内部的设计,需要分析和确定每一个子系统中的用例设计、设计类和接口。4.界面设计界面设计是对人和外部系统与信息系统之间交互界面的设计。它包括输入界面、输出界面和混合界面的设计。2.结构设计5.数据库设计数据库是信息系统存储和管理数据的主要技术手段,数据库设计的任务是根据给定的信息系统应用需求和系统环境,设计出合理的数据库结构。数据库设计需要经过概念设计、逻辑设计和物理设计等步骤。

5.数据库设计7.1.3信息系统设计模型和软件模型信息系统设计模型是对信息系统设计方案的抽象描述,它要完整描述信息系统设计的内容,并具有简明、抽象、概括和规范等特点。信息系统设计模型包括平台模型、拓扑计算模型(拓扑结构和计算模式)、软件模型、界面模型和数据库模型等内容(见图7.1)。在此,我们先简要介绍软件模型。7.1.3信息系统设计模型和软件模型图7.1信息系统设计模型图7.1信息系统设计模型软件模型的构成见图7.2。软件系统是软件模型的顶层视图,它由子系统、设计类、用例设计和接口构成。系统中的绝大部分设计类和用例设计均处在子系统中,但对系统具有重要意义的少数用例设计和设计类也可能不包括在子系统中,而直接属于软件系统。

软件模型的构成见图7.2。软件系统是图7.2软件模型图7.2软件模型子系统处于中间层,它是软件模型设计中的一种抽象机制。一个软件系统由多个子系统构成。子系统本身有不同的抽象层次,处在高层的子系统又包含多个子系统,低层子系统又包含设计类、用例设计和接口。设计类是类在设计阶段的形态,是对概念类的细化,也是对所实现的系统中类的抽象。设计类要描述类的详细属性、操作、方法和关系,还应该反映可见性、导航、操作的参数、主动性等特性。子系统处于中间层,它是软件模型设计中用例设计表示对用例的设计结果。根据一个用例分析可以追踪到一个具体的用例。用例设计是对用例分析的设计,由用例设计可以追踪到一个用例分析,又可以通过用例分析追踪到一个用例(见图7.3)。对于一个没有分析模型的系统,由用例设计直接可以追踪到一个具体的用例。用例设计表示对用例的设计结果。根据一图7.3用例设计到用例分析和用例的跟踪图7.3用例设计到用例分析和用例的跟踪用例设计包括用例的设计类图和交互图。设计类图反映一个用例中的设计类所呈现的静态结构。与分析类图相比较,设计类图更详细、更具体。设计类图所反映的设计类之间的关系应该能够被所采用的程序设计语言所支持。例如,如果所采用的语言不支持多重继承,在设计类图中就应该把多重泛化转化为单继承。另外,在设计类图中还应该表示出类之间关联的导航关系。设计类图可以追踪到分析类图,以及所设计的用例。用例设计包括用例的设计类图和交互图。通过交互图,可描述在实现一个用例过程中各个设计类之间的消息联系过程。一般先从参与者向系统发送一些消息开始启动一个用例,边界类接收参与者发送来的消息,并向其它对象发送消息,启动其它对象操作的执行。经过各个对象之间消息的传递和对象操作的执行,实现用例的功能,最后返回给参与者所要的执行结果。因为要表现对象之间消息的执行顺序,所以交互图宜采用顺序图,而不要采用协作图。通过交互图,可描述在实现一个用例过程接口是设计类或子系统对外所能够提供的操作。接口并不涉及到对设计类或子系统操作的实现。接口也是设计类或子系统对外所提供的操作视图,其它设计类或子系统通过接口来与提供接口的设计类发生关系。接口的实现如图7.4所示。

接口是设计类或子系统对外所能够提供的图7.4接口的实现图7.4接口的实现7.2系统平台设计7.2.1网络设计信息系统一般都是集成式、综合性系统,网络把系统的各个部分连接到一起以形成一体化系统,网络在系统设计中占有很重要的地位。但是网络本身又是一个十分庞大和复杂的技术领域,对一个信息系统的网络设计不是只言片语能够描述清楚的。7.2系统平台设计7.2.1网络设计网络设计主要包括网络需求分析、网络结构设计和网络详细设计三部分内容。1.网络需求分析网络需求分析是通过对所开发的信息系统的规模、系统所覆盖业务的地域分布、计算机设备、网络服务等方面需求的分析,为确定网络总体结构、网络详细设计提供依据。网络需求分析需要调查和分析以下几方面的内容。网络设计主要包括网络需求分析、网络结1)信息系统的特征对网络的需求网络设计需要考虑信息系统的类型和特征。例如,办公自动化系统需要提供能够集成办公设备和办公环境的信息网络,以构成一体化的企业办公系统,这种系统就不需要与企业生产过程系统、 CAD/CAM系统进行集成。而企业建立的CIMS系统就必须考虑与生产过程、CAD/CAM的集成。因此,不同类型的信息系统对网络的结构和布局有不同的要求。1)信息系统的特征对网络的需求2)信息系统拓扑结构和计算模式对网络的需求信息系统拓扑结构和计算模式是设计网络总体结构的依据。因此,需要了解信息系统的总体结构和分布模式。例如,采用单机模式的信息系统就不需要进行网络设计,而采用客户机/服务器模式的信息就必须进行网络设计。2)信息系统拓扑结构和计算模式对网3)信息系统业务所覆盖的地理分布了解信息系统业务所覆盖的地理分布,主要包括:信息系统用户的数量以及用户的具体位置;子系统之间的距离和各个用户之间的距离;在一幢楼、一层楼、一个办公室中的用户组;一些特殊的需求或限制,例如在网络覆盖的地域范围内是否有道路、山丘、建筑物等,电缆布线是否有禁区等。3)信息系统业务所覆盖的地理分布4)网络服务需求了解信息系统对网络服务的具体需求,主要包括:数据库访问方式和数据存储分布模式的需求;文件传输和存取需求;电子邮件和远程通信需求;企业网与社会网、因特网的互连需求等。5)信息类型和信息量信息类型指信息系统所处理和传输的信息种类,通常包括文字、语音、图形、图像以及它们的综合信息形式。信息量指信息系统所收集、存储和传输的信息量。4)网络服务需求6)性能需求性能需求主要指信息系统对网络的效率、速度、可靠性、安全性等性能要求。2.网络结构设计网络结构设计的主要任务是根据网络需求分析的结果,设计出能够满足信息系统需要、结构合理、易于扩充、性能价格比高的系统网络总体结构。系统网络总体结构可以采用单级、二级和多级结构。

6)性能需求1)单级结构对于规模较小、地域相对集中的小型系统,可以采用单级网络结构。单级结构一般采用一个小型局域网,各部分之间可以采用集线器、网桥连接,如果在局域网中还有异构网络,可以采用网关。2)二级结构对于分布地域范围较广、管理复杂的中型系统,可以采用二级网络结构。二级网络结构一般由高速主干网和多个局域网构成。主干网可以选择FDDI、交换网、ATM或快速以太网等技术。1)单级结构3)多级结构对于跨地区、跨省、跨国的大型或超大型系统,则需要采用多级网络结构。在多级网络结构中,一般顶层采用社会公用网或专用广域网,二级和三级则为骨干网和主干网,最下一级为局域网。3)多级结构3.网络详细设计网络详细设计包括网络节点设计、网络设备选型、网络布线设计、网络操作系统选择、网络管理设计等内容。1)网络节点设计网络节点设计指通过网络需求分析,详细确定每一个网络节点的具体位置、设备类型和连网设备,并绘制出网络节点分布图,以便根据网络节点分布图进行设备选型和网络布线设计。3.网络详细设计2)网络设备确定及选择需要详细确定整个网络系统所需要的服务器、路由器、集线器、网关、网桥、网卡、网线等网络设备。还需要根据网络的功能和性能需求,确定各个网络设备的性能指标。例如,服务器需要多大存储容量、多高速度;根据系统的安全性、可靠性要求确定是选择双服务器系统、磁盘镜像技术,还是采用单服务器。2)网络设备确定及选择3)网络布线设计根据网络节点设计的结果和具体地理分布,要进行细致的网络布线设计。目前网络布线一般对网络系统、电话系统、监控系统采用统一布线方式,这种布线方式叫做结构化布线。结构化布线设计需要由低层向高层逐层进行布线设计。首先在办公室确定网络设备位置和插座位置;再确定每个楼层的水平布线;然后确定楼层的垂直布线;最后确定主干网线的布线。3)网络布线设计4)网络操作系统选择网络操作系统是网络的核心软件。一般在大型网络系统中并不一定只选择一个统一的网络操作系统。有时可能会采用多个网络操作系统。目前可供选择的网络操作系统有UNIX、WindowsNT、NetWare、OS2等,可根据系统需要进行选择。5)网络管理设计对网络系统需要进行有效管理。一般大型网络系统采用一个网络管理中心、多个网管分中心的方式。网络管理设计需要确定网络管理结构、网络管理软件、网络管理职责和人员等。4)网络操作系统选择7.2.2物理设备设计除了网络系统之外,信息系统还包括大量的计算机和相关信息设备等物理设备,根据需要正确地选择物理设备也是平台设计的一个主要内容。1.物理设备的基本类型信息系统的物理设备一般包括以下类型:1)计算机系统计算机系统有多种形式。按规模和性能分有巨型机、大型机、中型机、小型机、工作站和微型机;按用途分有通用机和专用机。7.2.2物理设备设计2)相关I/O设备每一个计算机系统都有各自的I/O(输入/输出)设备,除了计算机系统所配置的I/O设备之外,根据需要,不同类型的信息系统还需要配置一些特殊的I/O设备。相关的I/O设备有共享打印机、扫描仪、绘图仪、条码阅读器、IC卡读写器、磁卡读写机、数字照相机、投影仪、专用键盘、声光传感器等。3)多媒体设备多媒体设备有触摸屏、图像摄取仪、声/视卡、图像处理卡、音箱、功率放大器、摄像机、录像机、解压卡等。2)相关I/O设备4)办公设备办公信息系统还要配置大量的办公自动化设备。一般办公自动化设备有会议系统、复印机、碎纸机等。5)电源系统电源系统有不间断电源、稳压器等。6)机房设备机房设备有电力系统、布线系统、安全系统、消防系统、照明设备、制冷设备、清洁设备等。

4)办公设备2.物理设备设计物理设备设计是根据信息系统的设计要求,确定信息系统物理设备方案。所设计的物理设备方案在能够充分满足信息系统功能需要的前提下,还应该满足系统的效率、可靠性、安全性和适应性等性能要求,并具有较高的性价比。2.物理设备设计7.2.3软件平台设计软件平台是信息系统开发和运行所需的集成软件系统。设计和选择高效、实用、方便、功能齐全的软件平台,对信息系统开发有着十分重要的意义。目前,可供选择的软件平台很多,软件平台设计就需要系统分析员根据实际开发的需要,充分考虑各种软件平台的性能和适应范围,并结合开发队伍对软件平台的使用经验,选择出有效的软件平台。7.2.3软件平台设计1.操作系统操作系统是计算机系统中最重要的系统软件。目前主要的大型操作系统有UNIX、WindowsNT、OS/2、Macintosh等;在微机上运行的桌面操作系统有Windows95、Windows98、WindowsME、WindowsXP等。这些操作系统各有其适应面和优缺点,应根据需要进行选择。1.操作系统2.支撑软件支撑软件是协助人们开发和维护软件的工具和环境软件。编辑程序、数据库系统、集成开发环境等都属于支撑型软件,如VisualBasic、Delphi、PowerBuilder、Oracle、Java等。支撑软件主要包括以下几方面软件:1)数据库管理系统DBMS在数据库服务器上的DBMS对数据库实施集中管理,可以并发地处理多个客户机发来的数据处理请求。常见的数据库管理系统有SQL-Server、Oralce、Sybase、Informix、DB2等,系统分析员可以根据自己的需要进行选择。2.支撑软件2)客户端开发软件客户端开发软件十分丰富,系统开发人员可以根据设计需要进行选择,选择客户端开发软件要考虑继承性。常见的客户端开发软件有PowerBuilder、VisualBasic、VisualC++、Delphi、VisualFoxpro、Java等。3)中间件协议和软件在网络设计中已经确定了网络操作系统和网络传输协议中间件。还要进一步确定的中间件有:(1)数据库中间件。通过数据库中间件,可允许客户在异构数据库上调用基于SQL的服务。数据库中间件有ODBC、DRDA、IDAPI、RDA、ORACLE-GLUE等。2)客户端开发软件(2)事务处理中间件。通过事务处理中间件,可允许客户在多个事务服务器上调用服务。事务处理监视器允许不同的服务器控制其本地资源,并在需要访问本地资源时与其它事务处理监视器进行合作。事务处理监视器保证服务器内和服务器之间的所有活动的完整性。这方面的标准包括TUXEDO的ATMI、ENCINA的RPC和X/Open的TXRPC等。(3)群件中间件。通过群件中间件,客户可以在多个群件服务器上调用服务。目前群件中间件有电子邮件方面的PAPI及LotusNotesAPI等。

(2)事务处理中间件。通过事务处理3.CASE平台采用CASE开发环境可以保证信息系统开发质量,提高开发效率,保证文档的一致性,减轻开发人员的工作负担。CASE平台与所支持的系统开发方法有直接联系,有支持结构化方法的CASE、支持原型化方法的CASE、支持OO方法的CASE和支持多种方法的综合CASE环境。开发小组应该根据所采用的开发方法来选择合适的CASE环境。3.CASE平台7.3拓扑结构和计算模式设计7.3.1信息系统拓扑结构设计拓扑结构设计需要确定信息系统的节点和节点的结构。节点是信息系统中一个在逻辑分布上相对独立的处理实体,一个节点一般要包括一台独立的计算机和外围设备。节点可以是人机交互的客户机,也可以是业务管理、数据库管理、Web管理的服务器。7.3拓扑结构和计算模式设计7.3.1信息系节点设计应该确定节点数目、节点的作用和节点的类型。节点是根据应用需要来设置的。在一个地域分布的业务领域中,业务处理工作将聚集在一些相对集中的业务处理点上。例如,在一个大型企业中,职能科室的各个工作岗位就是该企业的业务处理点。一个大型商场中的销售台、收款台、会计室、采购室就是该商场的业务处理点。组织中的业务处理点是设置信息系统节点的主要候选对象。设计人员需要对信息系统所覆盖的业务范围中的所有业务处理点逐一进行分析,以确定系统节点。节点设计应该确定节点数目、节点的作用在考虑所要设置的节点时,同时就要一并考虑该节点的作用和类型。节点的作用应该根据需要而定,例如“图书计划”、“图书采购”、“图书销售”、“书库管理”、“数据库管理”等就是书店系统中几个节点的作用。节点的类型一般需要根据采用的计算模式而定。例如,采用客户机/服务器模式中的节点就有客户机和服务器两种类型,而采用应用服务器模式的系统中,节点可以分为客户机、应用服务器和数据库服务器这几种形式。在考虑所要设置的节点时,同时就要一并下面给出书店信息系统分布结构设计实例。书店信息系统是一个中小规模的信息系统,业务比较简单,总店分布区域也不大。经过分析,该系统的计算模式采用客户机/服务器模式;整个系统设置七个节点:计划采购节点、书库节点、销售节点、结算节点、事务处理节点、系统管理节点和数据库服务器节点。数据库服务器是中心节点,所以书店信息系统的拓扑结构呈星型结构(见图7.5)。下面给出书店信息系统分布结构设计实例。图7.5书店信息系统拓扑结构图7.5书店信息系统拓扑结构7.3.2信息系统计算模式设计选择哪一种计算模式应该根据应用需要而定,不能盲目追求先进和时新。例如,客户机/服务器模式可以满足要求,就不一定要采用应用服务器模式。另外,对于复杂的大型系统,采用某一种计算模式可能并不能满足应用要求,有时需要多种计算模式并存。书店信息系统的计算模式采用客户机/服务器模式(见图7.6)。7.3.2信息系统计算模式设计图7.6书店信息系统计算模式图7.6书店信息系统计算模式7.4软件结构设计7.4.1概述信息系统的软件结构是由信息系统软件的各子系统按照确定的关系构成的结构框架。子系统是对软件分解的一种中间形式,也是组织和描述软件的一种方法。由多个子系统构成信息系统软件,每一个子系统又包括多个用例设计、设计类和接口。7.4软件结构设计7.4.1概述软件结构设计是把软件分解成为多个子系统,并确定出由各子系统及其接口构成的软件结构。软件结构一般呈现出层次结构模式,而且常见为四层结构(见图7.7)。软件结构设计是把软件分解成为多个子系图7.7软件系统的四层结构模式图7.7软件系统的四层结构模式应用层是信息系统软件所在的层次,它的作用是直接服务于信息系统的应用领域。应用层又分为专用应用层和通用应用层。专用应用层中的子系统直接面向具体应用;通用应用层中的子系统可以被专用应用层的多个子系统所引用,具有通用性。在应用层中的子系统被称为应用子系统。中间件层放置支撑系统运行的有关中间件,像通信工具、数据库引擎、分布对象机制等。系统软件层则放置操作系统、低层协议等系统软件。在中间件和系统软件层中的子系统被称为系统子系统。应用层是信息系统软件所在的层次,它7.4.2应用子系统设计1.识别应用子系统识别应用子系统的原型是信息系统逻辑结构中的分析包。可以把逻辑结构中每一个分析包作为一个初步的应用子系统,在此基础上,再对各子系统进行分析和优化,以确定应用子系统。这样,图6.11~图6.14中的各分析包就可以直接作为书店信息系统软件结构中的初步应用子系统。例如,图6.13中的“入库”和图6.14中的“售书处理”两个分析包可以作为被识别的两个初步应用子系统,见图7.8。7.4.2应用子系统设计图7.8设计模型可以跟踪到分析模型图7.8设计模型可以跟踪到分析模型2.优化应用子系统通过分析包识别出的初步应用子系统并不能作为最终确定的应用子系统,还需要进行优化处理。从设计角度看,进行优化的理由有三。首先,分析包没有考虑系统的效率、安全性、可靠性、适应性等非功能性需求,也没有考虑系统的实现环境以及系统的拓扑结构和计算模式。第二,应用子系统应该具有合适的规模。如果初步应用子系统规模过大,就需要进行分解。2.优化应用子系统相反,对规模过小的初步应用子系统又要进行合并,使最后所确定的应用子系统都具有合适的规模。第三,应用子系统应该具有高内聚、低偶合的特性,即子系统内部的要素之间的联系应该尽量地密切,而子系统之间的联系尽可能小。下面我们以图6.13的“入库”分析包识别为初步的“入库”应用子系统和图6.14的“售书处理”分析包识别为初步的“售书处理”应用子系统为例,进行分析优化。相反,对规模过小的初步应用子系统又要进行合并,使最后首先分析“入库”应用子系统。第一,规模分析。从图5.7(a)可以看出,“入库”分析包可以跟踪到“编辑入库信息”、“查询入库信息”和“输出入库信息”三个用例,它要完成对应的三项功能。这样“入库”作为一个应用子系统规模过大,应该对其进行分解。我们把它分解成为对应上述三个功能的“编辑入库信息”、“查询入库信息”和“输出入库信息”三个应用子系统。第二,应用分析。“编辑入库信息”、“查询入库信息”和“输出入库信息”三个应用子系统都属于专用子系统,首先分析“入库”应用子系统。第一,它们都要访问数据库服务器上的“入库图书”数据表,应该设置“入库管理”通用子系统来对数据库进行专门管理。第三,节点分布分析。设计中确定的子系统应该在一个节点上,如果一个子系统可能跨几个节点,就需要对该子系统进行分解。“编辑入库信息”、“查询入库信息”和“输出入库信息”三个专用子系统处在书库节点上,而“入库管理”通用子系统处在数据库服务器节点上。对“入库”子系统优化的结果如图7.9所示。它们都要访问数据库服务器上的“入库图书”数据表,应图7.9优化的“入库”子系统图7.9优化的“入库”子系统图7.10优化的“售书处理”子系统图7.10优化的“售书处理”子系统7.4.3系统子系统设计软件结构设计的第二步工作是确定中间件。中间件设计与系统的应用要求和系统环境有关。例如,如果系统采用浏览器模式,就需要选择Web浏览器作为中间件;如果系统具有分布处理要求,就需要选择DCOM、CORBA或Java.rmi等具有分布对象处理能力的中间件。另外,还需要根据数据处理的要求,选择合适的数据库系统。7.4.3系统子系统设计软件结构设计的第三项工作是确定系统软件层所采用的软件系统,一般包括操作系统、网络协议等。例如操作系统采用WindowsNT,网络协议采用TCP/IP等。现在我们讨论书店图书管理系统中售书处理部分的软件结构设计(见图7.11)。在专用层设置“售书处理”的顶层子系统,接下来又分出“开书单”、“出售图书”、“收书款”三个子系统,这三个子系统都处在专用应用层。软件结构设计的第三项工作是确定系统软图7.11书店信息系统中“售书处理”的软件结构图7.11书店信息系统中“售书处理”的软件结构7.4.4确定子系统间的接口当子系统之间存在依赖关系时,子系统之间就存在确定接口。子系统接口定义了外部子系统对本子系统可进行的访问操作集。这些操作由子系统内部的类来提供,或着由子系统中的其它子系统提供。可以通过子系统之间存在的关系来发现子系统之间的接口。如果子系统A依赖子系统B,则子系统B应该向子系统A提供接口(见图7.12)。图7.11售书处理的软件结构中专用应用层和通用应用层几个子系统之间的接口描述见图7.13。7.4.4确定子系统间的接口图7.12根据依赖关系确定接口图7.12根据依赖关系确定接口图7.13图书销售子系统之间的接口图7.13图书销售子系统之间的接口7.5详细设计7.5.1用例设计1.概述子系统可以跟踪到分析包,分析包可以跟踪到用例。图7.14反映了子系统、分析包和用例的跟踪关系。因为一个子系统能够完成它所跟踪的用例的功能,所以详细设计的第一项工作便是对子系统所跟踪的用例进行设计。用例设计包括两个含义:一是用例设计的工作,二是描述用例设计的结果。7.5详细设计7.5.1用例设计图7.14子系统、分析包和用例的对应关系图7.14子系统、分析包和用例的对应关系一个用例规定了参与者与信息系统一次完整的交互过程,通过交互实现赋予用例的功能。从系统角度来看,完成一次用例的功能,实现该用例所规定的交互操作,实际上是信息系统中若干个类中的对象,通过操作的执行和相互之间消息发送来实现用例的功能。因此,要设计一个用例,首先需要确定该用例所涉及到的所有类,以及这些类相互之间的关系,再确定为实现该用例的功能,这些类中的对象都要执行哪些操作,相互之间存在怎样的消息联系。因此,用例设计的工作包括确定参与的设计类,绘制类图,确定类对象之间的消息联系等项工作。一个用例规定了参与者与信息系统一次完2.用例设计的工作1)确定设计类用例设计的第一项工作是确定该用例所涉及到的所有设计类。由用例设计可以追踪到用例分析,在对用例分析时,分析员已经确定了用例所涉及到的所有概念类。因此,可以把用例分析确定的概念类作为初步设计类。然后根据设计的需要,再对初步设计类进行分解和调整,成为最终的设计类。2.用例设计的工作2)设计类图在确定了用例的设计类之后,接下来应该通过类图反映所提取的各个设计类之间的相互关系。因为还没有对每一个设计类进行详细分析,所以现在所确定的设计类图是简化的设计类图。3)绘制顺序图为了完成赋予用例的功能,用例的一次交互处理要通过用例中的各个类中的对象操作的相互配合来完成。可以通过顺序图来反映各个对象之间的消息交互过程。2)设计类图3.用例设计过程下面我们以“售书处理”为例,讨论用例设计过程。1)确定子系统和设计类“售书处理”是一个用例,但该用例被分解成为图7.10所示的处在三个节点上的八个子系统,即售书节点上的“售书处理”、“开书单”和“出售图书”三个子系统,结算节点上的“收书款”子系统,在数据库服务器上的“书目管理”、“架存图书管理”、“售出图书管理”和“职工管理”四个子系统。3.用例设计过程在第6.4节对“售书处理”用例所提取的八个概念类的基础上,可以确定各个子系统的设计类。“售书处理”子系统中有“售书界面”、“产生待售图书”和“待售图书”三个设计类。“开书单”子系统的设计是“开书单”和“打印进程”。“收书款”子系统的设计类是“收款界面”和“收书款”。“出售图书”子系统中有“出售图书界面”、“出售图书”和“一致性检查”三个设计类。除此之外,在数据库服务器节点中,“书目”属于“书目管理”子系统,“架存图书”属于“架存图书管理”子系统,“售出图书”属于“售出图书管理”子系统,“职工”属于“职工管理”子系统。在第6.4节对“售书处理”用例所提2)分析用例设计类图通过以上分析,绘制出图7.15所示的“售书处理”用例设计类图。在“售书处理”子系统中,“售书界面”类与“产生待售图书”控制类之间存在关联关系。当“售书界面”类接收一个要出售图书的书号和册数时,就给“产生待售图书”类发送一个消息,启动“产生待售图书”类的“产生待售图书对象”操作,产生一个待售图书对象,记入“待售图书”类中。2)分析用例设计类图图7.15“售书处理”用例设计类图图7.15“售书处理”用例设计类图书单打印出来后,售书员把书单交给读者,读者持书单到收款台交款。收款员启动“收款界面”输入书单上的书单号,“收款界面”把书单号通过消息发给“收书款”类,该类从“待售图书”类中取出该书单的图书信息,并在界面上显示书款金额,收款员接收读者书款,并在“待售图书”类的对应对象中把“交款标记”设为“T”。书单打印出来后,售书员把书单交给读者付款之后,读者又把书单拿回到售书员面前,“售书界面”类又进入“出售图书”子系统中的“出售图书界面”类,由该界面给售书员提供一个出售图书信息界面。售书员输入所出售图书的书单号,然后启动“出售图书”类,由该类在“售出图书”类中建立已售出图书的对象,而从“待售图书”类中把对应的对象删除掉。“书目”类与“架存图书”和“售出图书”之间是泛化关系。付款之后,读者又把书单拿回到售书员面3)绘制顺序图由于“售书处理”涉及到四个子系统,其彼此控制也具有相对独立性,因此,下面我们分别绘制“产生待售图书”、“开书单”、“收书款”和“出售图书”四个子系统的顺序图。(1)“产生待售图书”的顺序图(见图7.16)。“售书界面”接收售书员输入的读者所要购买图书的书号和册数,同时给该读者产生一个书单号。3)绘制顺序图图7.16"产生待售图书"顺序图图7.16"产生待售图书"顺序图(2)“开书单”的顺序图(见图7.17)。售书员按售书界面上的“开书单”功能按钮启动开书单功能。“售书界面”对象给“开书单”子系统的“开书单”类的对象发送“打印书单”消息,同时把所要打印书单的“书单号”也一并发送过去。“开书单”对象接收到这个消息后,给“售书处理”子系统的“待售图书”对象发送“取待售图书信息”消息,取出对应书单号的所有待售图书信息。“开书单”对象根据取到的信息生成书单,并启动“打印进程”打印出书单。售书员把打印出来的三联书单交给读者,让读者上收款台交书款。(2)“开书单”的顺序图(见图7(3)“收书款”的顺序图(见图7.18)。收款员接收到读者拿来的书单,按书单号交给“收款界面”对象,该对象接着给“收书款”对象发送“收书款”的消息。“收书款”对象接收到这个消息后,给“售书处理”子系统中的“待售图书”对象发送消息,取出这个书单号的待售图书信息,并把“待售图书”对象中的交款标记设为“T”。付完款之后,收款员自己留存一联书单,给另外两联书单上盖章并交给读者,收书款结束。(3)“收书款”的顺序图(见图7图7.17“开书单”顺序图图7.17“开书单”顺序图图7.18收书款顺序图图7.18收书款顺序图(4)“出售图书”的顺序图(见图7.19)。“出售图书界面”对象接收售书员扫描进的书单号,给“出售图书”对象发送“出售图书”消息。“出售图书”对象接收到这个消息后,从“待售图书”类中取出该“书单号”的所有对象,并把这些对象从“待售图书”类中删除掉。然后给“架存图书管理”子系统发送消息,修改架存图书数量。最后通过“售出图书管理”子系统在售出图书数据表中记录所售出的图书数据。(4)“出售图书”的顺序图(见图图7.19“出售图书”顺序图图7.19“出售图书”顺序图(5)一致性检查。“一致性检查”的作用是检查“待售图书”类中所有无用的对象,并将其删除掉。“一致性检查”的顺序图见图7.20。(5)一致性检查。“一致性检查”的图7.20“一致性检查”顺序图图7.20“一致性检查”顺序图7.5.2设计类的设计用例设计中识别出了大量的设计类,接下来要详细地设计所识别出来的每一个设计类。系统分析得出的概念类是设计类的基础,但设计类不完全等同于概念类。其一,设计类是概念类的细化和分解。在系统分析中确定的一个概念类到系统设计时,可能对应着一个设计类,也可能被分解成为了多个设计类。其二,由于在设计中要考虑系统的非功能性需求,因此,在设计时可能会产生出许多为了满足系统的非功能性需求的新的设计类,这些类根本没有对应的概念类。其三,设计着眼于实现。7.5.2设计类的设计1.不同类型设计类的设计1)边界类的设计边界类承担信息的输入和输出以及信息的界面组织等任务。边界类是用户界面设计在系统中的实体性体现,用户界面设计涉及到人机工程、审美和操作方便性等方面的知识和要求(第8章将介绍界面设计)。边界类设计依赖于信息系统所采用的实现环境和设计语言。边界类在可视化的设计语言中一般表现为框架《Form》、窗口《Windows》和控件《Controls》等形式。1.不同类型设计类的设计所以对设计类的设计必须考虑所有实现细节。设计类的设计工作包括属性设计、操作设计、关系设计和其它设计。本节将以图7.15中除“售书界面”和“收款界面”两个边界类和“打印进程”控制类之外的所有类为例讨论设计类的设计(两个边界类的设计到第8章再进行讨论,而“打印进程”是系统层应提供的功能)。所以对设计类的设计必须考虑所有实现细2)实体类的设计实体类的信息一般要在系统中长久存放,因此,实体类的设计要与数据库技术或文件技术联系起来。应用型软件几乎全部采用数据库技术,仅有效率要求极高的系统软件可能采用文件技术。信息系统属于应用型系统,一般对实体类采用数据库技术。数据库有关系数据库、对象数据库和对象–关系数据库等形式。最直接的方式是采用面向对象数据库,但面向对象数据库目前还不够成熟。2)实体类的设计3)控制类的设计控制类为系统的处理逻辑而设计,具有动态性。一般根据以下需要来设置控制类:第一,事务处理。信息系统存在大量的事务处理,一个用例就是对一个事务的处理。在处理具体事务过程中,涉及到边界类和实体类,而在处理的关键环节和交汇点上就应该设置控制类。例如,在“售书处理”中的“产生待售图书”、“开书单”、“收书款”和“出售图书”等控制类都是在事务处理的关键环节上设置的。3)控制类的设计第二,性能要求。为了实现系统的效率、可靠性、安全性和适应性的要求,需要设置控制类。例如,“一致性检查”就是为了正确性要求而设置的控制类。第三,分布处理。当处理被分布到不同的网络节点上时,在各个节点上就需要设置单独的控制类来实施处理。第二,性能要求。为了实现系统的效率、2.属性设计在6.5.2“属性分析”一节中,我们已经详细介绍了属性的概念和确定属性的方法。属性设计是对属性分析的深入和细化,与属性分析相比较,属性设计应该着重强调以下几个方面:第一,补充属性分析时没有考虑到的属性。属性分析主要反映类的重要属性,一般不考虑涉及实现细节的有关属性,到属性设计时就要把这些属性补充全面。第二,确定属性的全部内容,其中包括属性名、可视性、范围、类型、初始值等。第三,尽量采用信息系统所采用的程序设计语言的语法规范来描述。2.属性设计图7.15的“产生待售图书”、“开书单”等控制类没有属性,因此,我们仅设计“书目”、“架存图书”、“待售图书”和“售出图书”这几个类的属性。在分析时,已经确定的属性见图7.21。其中,“书目”类的属性有书号、书名、作者、出版社编号、单价、出版日期和图书类别;“架存图书”的属性有架位和架存册数;“待售图书”的属性有书单号、销售册数、折扣率、交款标记和售书员;“售出图书”的属性有售出册数、折扣率、售出日期和售书员。对这些类的属性进行设计的结果见图7.22。图7.15的“产生待售图书”、“开书图7.21“书目”等类在分析时确定的属性图7.21“书目”等类在分析时确定的属性图7.22“书目”等类的属性设计图7.22“书目”等类的属性设计3.操作设计操作设计的任务是确定各个类应该提供的操作。确定类操作的根据有以下四个方面:(1)概念类的职责。概念类职责定义了该类应该具有的功能,类的这些功能就需要分解到各个操作中来实现。(2)概念类的非功能性需求。系统的效率、可靠性、安全性等非功能性需求,常常要落实到类的一些操作上来,通过设置某些操作来实现这些需求。3.操作设计(3)设计类的接口。设计类的接口是设计类对外提供的操作功能,这些功能均需要通过设计类所提供的操作来实现。(4)类所参与的用例设计。一个类可能要参与多个用例设计,在每一个用例设计中,该类都起着确定的作用,承担着确定的角色,这些作用最终都要落实到类的操作上。这就需要逐一分析类在每一个用例设计中所承担的角色。(3)设计类的接口。设计类的接口是对操作的描述应该注意以下两个方面:(1)详尽全面。应该反映操作名、输入参数、返回参数以及可视性。(2)尽可能采用所用的编程语言的语法格式来描述,这样到实现时就无须再进行格式转换。下面我们讨论“售书处理”用例中类的操作设计。1)实体类的操作设计“书目”是一个实体类,应该设置write(bookNo,bookInformation)操作给书目对象中写内容,read(bookNo):bookInformation从给定书号的书目对象中读书目信息。对操作的描述应该注意以下两个方面:图7.23“书目”等实体类的操作设计图7.23“书目”等实体类的操作设计图7.24“书目”等实体类的操作设计图7.24“书目”等实体类的操作设计2)控制类的操作设计“售书处理”用例共涉及到“产生待售图书”、“开书单”、“收书款”、“出售图书”和“一致性检查”等五个控制类,这些控制类全部没有属性,仅有操作,下面我们确定这几个类的操作。2)控制类的操作设计图7.25“售书处理”用例的控制类操作设计图7.25“售书处理”用例的控制类操作设计4.方法设计由于操作设计只确定各个操作的名称和参数,因此,操作设计仅是操作的外部特征设计。每一个操作都需要采用一定的数据结构、算法和流程,并采用一段程序代码来实现。确定操作的内部数据结构、算法和流程的设计被称为方法设计。方法设计包括数据结构设计、算法设计和流程设计。方法设计需要立足于采用的程序设计语言。数据结构设计应该采用所选用的程序设计语言能够提供的数据结构;算法设计要根据操作所实现的功能而定;流程设计的结果可以用程序流程图或活动图来描述。4.方法设计图7.26产生待售图书流程图图7.26产生待售图书流程图5.状态设计对象在其生命周期中,会存在多种状态,认识和识别对象在生命周期中所处的各种状态,以及状态之间的切换条件,是全面把握对象的关键。一般用状态图来描述类中对象的状态。图7.27所示是书店图书类所处的几种状态。5.状态设计图7.27书店图书类状态图图7.27书店图书类状态图7.5.3关系设计不同的面向对象程序设计语言对关系的支持程度是不一样的。例如,C++支持多重继承,而Java就不支持多重继承。有些程序设计语言支持关联,有些不支持关联。本节主要讨论在不过多地考虑程序设计语言的情况下实现对象关系的一般方法。7.5.3关系设计1.关联关系设计1)二元关联的实现二元关联存在一对一、一对多、多对多三种形式,其关联的实现方法也有差异。(1)一对一二元关联。一对一二元关联可通过单向导航和双向导航来实现。①单向导航。要实现一对一关联的单向导航,可以只在导航源的类中增加另一个类的关键属性。例如,图7.28(a)描述“系”和“系主任”两个类是一对一的关联关系,单向从“系”导航到“系主任”类。在“系”中增加“主任编号”就实现了两个类之间的单向导航(见图7.28(b))。1.关联关系设计图7.28一对一关联单向导航的实现图7.28一对一关联单向导航的实现②双向导航。一对一关联的双向导航需要关联的两个类中分别增加对方的关键属性。例如,图7.29(b)是对图(a)中双向导航的实现。(2)一对多二元关联。两个存在一对多关联关系的类,其导航方向肯定是由多重性为多的类导航到多重性为一的类,而不会相反。在多重性为多的一方类中增加另一个类的关键属性就实现了关联的导航关系。例如,图7.30(b)是对图(a)中一对多单向导航的实现。②双向导航。一对一关联的双向导航需图7.29一对一关联双向导航的实现图7.29一对一关联双向导航的实现图7.30一对多关联单向导航的实现图7.30一对多关联单向导航的实现(3)多对多二元关联。多对多二元关联的实现需要在两个类之间增加一个新类,用另外两个类中的关键属性作为这个类的属性。例如,图7.31(a)中,“课程”和“教师”两个类之间存在多对多的关联关系。为了实现这两个类之间的双向关联,需要在它们之间增加一个“授课”类,并把“课程”和“教师”两个类的关键属性“课程编号”和“教师编号”作为“授课”类的属性。这样把两个多对多的二元关联就转化成为三个类中两两之间的一对多的关联,其导航关系分别是从“授课”类到另外两个类(见图7.31(b))。(3)多对多二元关联。多对多二元图7.31多对多关联的实现图7.31多对多关联的实现(4)关联类的二元关联。存在关联类的二元关联可以分下面几种情况分别处理。①多对多关联。存在关联类多对多的二元关联,需要转化成为两个类分别与所关联类的一对多的关联,在关联类除了保留原有属性之外,再增加另外两个类的关键属性。图7.32(a)中,“书店”和“出版社”两个类之间存在多对多关联,它们的关联类是“订书”。把这个关联分成为图(b)的两个一对多的二元关联,在“订书”类中增加“书店编号”和“出版社编号”两个属性。(4)关联类的二元关联。存在关联类的图7.32关联类二元多对多关联的实现图7.32关联类二元多对多关联的实现②一对多关联。带有关联类的一对多二元关联实现有如下两种方法。第一种方法是按照一对多无关联类的方法,先实现两个类的关联。然后,再建立关联类与多方类的关联。图7.33(a)中,“系”和“教师”之间存在一对多关联,“考核”是关联类。先在“教师”类中增加“系名”属性,实现“系”和“教师”两个类的单向关联关系。再在关联类“考核”中增加“教师编号”属性,与“教师”类建立起一对一的单向关联(见图7.33(b))。第二种方法是取消关联类,把关联类中的属性增加到多重性为多的类中。通过这种方法从图7.33(a)可以得出图7.33(c)。把“考核”类中的“考核时间”和“考核结果”两个属性增加到“教师”类中。②一对多关联。带有关联类的一对多图7.33关联类二元一对多关联的实现图7.33关联类二元一对多关联的实现③一对一关联。实现一对一的有关联类的关联有如下三种方法。第一种方法是仍然保持这三个类。如果是单向关联,则在导航源类中增加导航目标类的关键属性,在关联类中增加导航源的关键属性。例如,图7.34(a)中,“系主任”与“系”两个类之间是一对一的单向导航关联。实现时,在“系主任”类中增加“系”类的关键属性“系名”,在关联类“管理”类中增加“系主任”类的关键属性“主任编号”(见图7.34(b))。如果是双向导航,在两方都增加对方的关键属性,在关联类中增加其它两个类任意一个的关键属性。③一对一关联。实现一对一的有关联类第二种办法是把关联类合并到其中任意一个类中,成为二元无关联类的关联,见图7.34(c)。第三种办法是把三个类合成为一个类,见图7.34(d)。第二种办法是把关联类合并到其中任意一图7.34关联类二元一对一关联的实现图7.34关联类二元一对一关联的实现2)三元关联的实现我们假定存在关联类,然后讨论三元关联的实现,这有以下三种方法。(1)维持法。该方法是维持三元关联关系不变,三个存在关联关系的类保持不变,给关联类中增加其它三个类的关键属性。例如,图7.35(a)中,“教师”、“班级”和“课程”存在“授课”的三元关联,图(b)是对图(a)中这种关系的实现。2)三元关联的实现图7.35维持法实现三元关联图7.35维持法实现三元关联(2)降元法。降元法是把三元关联首先转化为三个有关联关系的类并分别与关联类的二元关联,再按二元关联的方法实现其关联关系。例如,可以把图7.35(a)的三元关联转化为图7.36的三个二元关联,然后按二元关联的方法实现关联。(3)简并法。在三元关联中,如果其中一个类的多重性为1,其它两个为多,则可以用简并法让这个类与关联类形成二元关联,关联性不变。例如,图7.37(b)是用简并法对图7.37(a)的三元关联的实现。(2)降元法。降元法是把三元关联首图7.36降元法实现三元关联图7.36降元法实现三元关联图7.37简并法实现三元关联图7.37简并法实现三元关联2.组成关系设计一般面向对象程序设计语言都直接提供对组成关系的支持。在定义整体类时,把其部分对象作为整体类的成员,这样就构成了整体与部分的组成关系。因此组成关系的设计十分简单。3.泛化关系设计所有面向对象程序设计语言都提供继承支持,因此泛化关系本身就被面向对象程序设计语言所支持。但有些语言仅支持单继承,不支持多继承,因此,对设计模型中的多继承要进行必要处理。一种方法是把多继承转化成为单继承,另一种方法是用接口来实现多继承。下面我们介绍用接口来实现多继承的方法。2.组成关系设计图7.38是一个多继承的例子。“汽车”继承了“陆上交通工具”和“机动交通工具”两个类(见图7.38(a))。为了让“汽车”能够具有“陆上交通工具”和“机动交通工具”的特性,首先定义“陆上交通工具”和“机动交通工具”的接口,然后在“汽车”类中实现这两个接口,这样就让“汽车”类拥有了“陆上交通工具”和“机动交通工具”的操作(见图7.38(b))。图7.38是一个多继承的例子。“汽车图7.38接口实现多继承图7.38接口实现多继承7.5.4类的优化通过分析和设计所确定的类还需要进一步地进行优化。对类进行优化的原则是使类能够明确地表示事物实体,并具有相对独立性、一致性和适中的规模。在数据库设计中,一般根据规范原则检查关系的优劣,如果一个关系符合范式规约,就可以说该关系是规范的。否则就需要对该关系进行优化处理,通过对关系的分解使其满足范式要求。7.5.4类的优化规范的类将满足三级规范要求。一级规范要求在类中不存在重复的属性项;二级规范是在满足一级规范的基础上,类中不存在对主键属性部分依赖的属性;三级规范则要求在满足二级规范的基础上,在类中不存在传递依赖关系。下面我们分三步对由图7.39“图书订单”所产生的“图书订单”类(见图7.40)进行优化。规范的类将满足三级规范要求。一级规图7.39书店信息系统的图书订单图7.39书店信息系统的图书订单1.一级规范一级规范要求在类中不存在重复的属性。在类中如果存在重复的属性,则需要把所有重复的属性从类中抽取出来,构成一个新类。在图7.40“图书订单”类中,从“计划单序号”到“实际到货日期”8个属性都是重复的。为了符合一级规范的要求,需要把这些属性从“图书订单”类中提取出来,形成新的“订单图书”类(见图7.41)。订单图书是本订单所订购的图书,它是图书订单的有机构成部分,因此,“订单图书”类与“图书订单”类是组成关系。在一个订单中最多可以有20种图书,多重性标为1...20。1.一级规范图7.40初步的“图书订单”类图7.41一级规范后的“图书订单”类图7.40初步的“图书订单”类图7.41一级规范后2.二级规范二级规范要求在类中不存在部分依赖关系的属性,要把不完全依赖关键属性的非关键属性从类中提取出来。在图7.41中,“订单图书”类的关键属性是“订单号”和“书号”,但是“书名”、“作者”、“单价”三个属性则仅依赖“书号”关键属性,存在部分依赖关系,所以需要进行优化。二级规范后的“图书订单”类见图7.42。2.二级规范3.三级规范三级规范要求消除在类的属性中存在的传递依赖关系。在“图书订单”类中,“出版社编号”依赖“订单号”,但是从“出版社名称”到“账号”6个属性仅依赖“出版社编号”,并不直接依赖“订单号”,这是典型的传递依赖关系,需要消除。三级规范之后的“图书订单”类见图7.43。3.三级规范图7.42二级规范后的“图书订单”类图7.42二级规范后的“图书订单”类图7.43三级规范后的“图书订单”类图7.43三级规范后的“图书订单”类4.进一步优化图7.43中“图书订单”的属性仍然偏多,并且“合计”和“总计”两个属性属于派生属性,可以去掉。可以把几个费用属性独立出来形成一个新的“订单费用”类,作为“图书订单”类的部分类。这样优化之后的类图见图7.44。4.进一步优化图7.44“图书订单”优化类图图7.44“图书订单”优化类图7.6数据库设计7.6.1概述数据库是信息系统的基础和核心,数据库设计的质量将直接关系到信息系统开发的成败和优劣。在信息系统中,数据库设计是指根据业务需求、信息需求和处理需求,确定信息系统中的数据库结构、数据操作和数据一致性约束的过程。其中,数据库结构分外模式、模式和内模式三级结构。外模式也称用户模式或子模式,是用户所看到的数据视图。7.6数据库设计7.6.1概述模式是综合所有外模式得出的一致的公共数据视图。内模式描述数据的物理结构和存储方式,是数据在数据库系统中的内部表示。数据库设计的基本过程可分为需求分析、概念设计、逻辑设计和物理设计四个步骤,见图7.45。需求分析的主要工作是调查和分析用户的业务活动、信息和处理的需求,以及各种约束条件,形成数据库设计的需求说明。在信息系统开发中,一般并不就数据库设计专门进行需求分析,而是在业务分析(见第4章)和需求分析(见第5章)中进行考虑。模式是综合所有外模式得出的一致的公共图7.45数据库设计的基本过程图7.45数据库设计的基本过程数据库设计的方法与信息系统所采用的开发方法存在着密切的关系,同时还与所采用的数据库模型(包括层次模型、网状模型、关系模型、对象模型等)有关。由于本教材主要介绍采用面向对象方法开发信息系统,同时考虑到关系模型是迄今最为成熟的数据库模型,因此,我们主要讨论采用面向对象方法和关系模型的数据库设计工作。数据库设计的方法与信息系统所采用的7.6.2概念设计数据库的概念设计是针对现实世界,通过对其中信息实体的收集、分类、聚集和概括,建立数据库概念结构的过程。概念结构也叫概念数据模型(ConceptualDataModel),它应该反映现实世界中组织的业务模式、信息结构、信息间的相互制约关系,以及对信息存储、查询和加工的处理要求等。概念数据模型是对数据的抽象描述,它应该独立于具体的数据处理的细节和数据库管理系统。7.6.2概念设计概念设计一般分为局部视图设计和全局视图集成两个步骤。首先从各部门或用户的角度设计出反映局部实体联系的局部视图(外模式),然后把各局部视图集成为能够反映组织全貌的全局视图(模式)。传统方法通常采用实体联系图(ER图)作为概念设计的工具,同时用ER图描述概念数据模型。如果采用UML建模,则可以直接用系统分析和系统设计得到的类图作为概念数据模型。概念设计一般分为局部视图设计和全局视下面我们分别介绍采用这两种方法所进行的概念设计。1.ER概念设计1)局部视图设计局部视图设计也被称为外模式设计,其任务是从用户角度设计出能反映局部现实空间数据关系的局部概念结构。局部视图设计的第一步工作是划分局部视图的范围。局部视图范围通常是根据部门、用户或用户所处的角度来进行自然划分。下面我们分别介绍采用这两种方法所进行的概念设计。局部视图设计的第三步工作是实体分析。实体分析包括实体属性分析和实体关系分析,并用ER图描述实体-关系分析的结果。在图7.46中,我们给出书店图书销售管理中读者选书的局部视图。由读者从书架的架存图书中上把自己所需要的图书选出来,作为待售图书。架存图书和待售图书与书目存在多对一的关联关系。局部视图设计的第三步工作是实体分析图7.46读者选书的ER图图7.46读者选书的ER图2)全局视图设计全局视图也被称为全局概念结构,它是完整表示一个信息系统的合理、一致的数据库概念结构。全局视图设计需要逐一地把各个局部视图综合成为最终的全局视图。在综合过程中,需要进一步对实体和关系是否作为最终数据存储进行确认,并消除各局部视图之间存在的冲突,得出合理、一致的全局视图。2)全局视图设计局部视图是从实际业务出发,描述业务过程中各实体以及实体相互之间的关系。但是这并不意味着局部视图中的所有实体都将作为数据存储在数据库中。例如,图7.46中的“读者”实体,因为是由读者从书架上选书,为了反映实际业务过程中的选书情况,“读者”作为一个实体出现在ER图中。但读者具有动态性强和流动量大的特点,读者信息的获取又需要很大的工作量,并且读者信息在书店信息系统中存储也没有太大的实际意义。考虑到这一点,在全局数据库概念结构中,就不需要再出现“读者”实体。局部视图是从实际业务出发,描述业务过消除冲突之后的全局视图是概念上不存在矛盾的概念数据库结构,但它并不一定是合理的概念数据库结构。一个好的全局视图,除了能够准确、全面反映用户的功能需求外,还应该满足实体个数尽可能少、实体的属性尽可能少、实体间的联系无冗余等条件。为了保证其合理性,还需要对全局视图进行优化。图7.47给出了书店图书销售的全局概念结构。消除冲突之后的全局视图是概念上不存在图7.47书店图书销售全局概念数据库结构(ER)图7.47书店图书销售全局概念数据库结构(ER)2.UML概念设计UML与ER有本质区别。UML比ER使用范围要宽广得多,它是一种标准的建模语言,可被用来进行软件和信息系统开发的全过程建模,而ER模型仅用在数据库的概念设计阶段。UML与ER都可以用来建立数据库概念模型,但两者的机理完全不同。ER模型通过实体和关系的分析构建起数据库的概念模型,并把这个模型作为数据库逻辑设计的基础。为了能够设计出合理、一致的数据库结构,需要从现实空间抽取出客观实体,这些实体将作为所设计的数据库中的数据。ER模型仅是为了进行数据库概念设计而采用的一种有效的建模工具。2.UML概念设计在ER看来,应用型数据库系统的重点是数据库结构,而数据库结构设计的基础是数据库的概念结构,因此,数据库概念设计是整个应用型数据库系统开发的重点和难点,并占有十分重要的地位。UML是用于面向对象方法从事系统开发的全程建模语言,可以用于业务分析、需求描述、设计、实现、测试等系统开发的各个环节。在UML看来,信息系统开发重心是建立能够反映企业内在规律、客观事物的内在关系,以及需求特点的信息系统模型。信息系统模型是一个复杂体,它要能够反映不同角度、不同方面、不同时段的信息系统。在ER看来,应用型数据库系统的重点由于UML基于面向对象方法,要保持方法的一致性,最好选择面向对象数据库。但是,面向对象数据库目前并没有成熟的产品,即便是采用面向对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论