免费智能真题库 > 历年试卷 > 软件设计师 > 2016年上半年 软件设计师 上午试卷 综合知识
  第32题      
  知识点:   系统总体结构设计   构件   软件体系结构   数据仓库   体系结构
  关键词:   构件   软件体系结构   数据仓库   数据        章/节:   软件工程基础知识       

 
软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干个其他构件数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。以下关于该风格的叙述中,不正确的是(32)。(33)不属于仓库风格。
 
 
  A.  支持可更改性和可维护性
 
  B.  具有可复用的知识源
 
  C.  支持容错性和健壮性
 
  D.  测试简单
 
 
 

 
  第42题    2021年上半年  
   41%
采用面向对象方法进行系统设计时,不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。即:依赖于抽象..
  第22题    2021年上半年  
   53%
模块A通过非正常入口转入模块B内部,则这两个模块之间是( )耦合。
  第33题    2016年上半年  
   35%
软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干个其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库..
   知识点讲解    
   · 系统总体结构设计    · 构件    · 软件体系结构    · 数据仓库    · 体系结构
 
       系统总体结构设计
        系统总体结构设计是要根据系统分析的要求和组织的实际情况对新系统的总体结构形式和可利用的资源进行大致设计,这是一种宏观、总体上的设计和规划。下面介绍系统总体设计的主要内容。
               系统结构设计原则
               为保证总体结构设计顺利完成,应遵循以下几条原则。
               (1)分解-协调原则。整个系统是一个整体,具有整体目的和功能,但这些目的和功能的实现又是由相互联系的各个组成部分共同工作的结果。解决复杂问题的一个很重要的原则就是把它分解成多个小问题分别处理,在处理过程中根据系统总体要求协调各部门的关系。
               (2)自顶向下的原则。首先抓住系统总的功能目的,然后逐层分解,即先确定上层模块的功能,再确定下层模块的功能。
               (3)信息隐蔽、抽象的原则。上层模块只规定下层模块做什么和所属模块间的协调关系,但不规定怎么做,以保证各模块的相对独立性和内部结构的合理性,使得模块与模块之间层次分明,易于理解、实施和维护。
               (4)一致性原则。要保证整个软件设计过程中具有统一的规范、统一的标准和统一的文件模式等。
               (5)明确性原则。每个模块必须功能明确、接口明确,消除多重功能和无用接口。
               (6)模块之间的耦合尽可能小,模块的内聚度尽可能高。
               (7)模块的扇入系数和扇出系数要合理。一个模块直接调用其他模块的个数称为模块的扇出系数;反之,一个模块被其他模块调用时,直接调用它的模块个数称为模块的扇入系数。模块的扇入、扇出系数必须适当。经验表明,一个设计得好的系统的平均扇入、扇出系数通常是3或4,一般不应超过7,否则会引起出错概率的增大。但菜单调用型模块的扇入与扇出系数可以大一些,公用模块的扇入系数可以大一些。
               (8)模块的规模适当。过大的模块常常使系统分解得不充分,其内部可能包含了若干部分的功能,因此有必要进一步把原有的模块分解成若干功能尽可能单一的模块。但分解也必须适度,因为过小的模块有可能降低模块的独立性,造成系统接口的复杂性。
               子系统划分
               1)子系统划分的原则
               为了便于今后的系统开发和系统运行,子系统的划分应遵循以下几点原则。
               (1)子系统要具有相对独立性。子系统的划分,必须使得子系统的内部功能、信息等各方面的凝聚性较好。子系统独立可以减少子系统间的相互影响,有利于多人分工开发不同的模块,从而提高软件产品的生产率,保证软件产品的质量,同时也增强了系统的可维护性和适应性。
               (2)子系统之间数据的依赖性尽量小。子系统之间的联系要尽量减少,接口要简单明确。一个内部联系强的子系统对外部的联系必然很少,所以在划分的时候,应将联系较多者列入子系统内部,而剩余的一些分散、跨度比较大的联系,就成为这些子系统间的联系和接口。这样划分的子系统,将来调试、维护和运行都是非常方便的。
               (3)子系统划分的结果应使数据冗余较小。如果把相关的功能数据分布到各个不同的子系统中,则会有大量的原始数据需要调用,大量的中间结果需要保存和传递,大量的计算工作将要重复进行,从而使得程序结构紊乱,数据冗余,不仅给编码带来很大的困难,而且系统的工作效率也大大降低。
               (4)子系统的设置应考虑今后管理发展的需要。子系统的设置仅依靠上述系统分析的结构是不够的,因为现存的系统由于各种原因,很可能没有考虑到一些高层次管理决策的要求。
               (5)子系统的划分应便于系统分阶段实现。信息系统的开发是一项较大的工程,它的实现一般要分批进行,所以子系统的划分应能适应这种分期分批的实施。另外,子系统的划分还必须兼顾组织结构的要求。
               (6)子系统的划分应考虑到各类资源的充分利用。一个适当的子系统划分应该既考虑有利于各种设备资源在开发过程中的搭配使用,又考虑到各类信息资源的合理分布和充分使用,以减少系统对网络资源的过分依赖,减少输入、输出和通信等设备压力。
               2)子系统结构设计
               子系统结构设计的任务是确定划分后的子系统模块结构,并画出模块结构图。在进入这个过程中必须考虑以下几个问题。
               (1)每个子系统如何划分成多个模块。
               (2)如何确定子系统之间、模块之间传送的数据及其调用关系。
               (3)如何评价并改进模块结构的质量。
               (4)如何从数据流图导出模块结构图。
               系统模块结构设计
               1)模块的概念
               模块是组成系统的基本单位,它的特点是可以组合、分解和更换。系统中的任何一个处理功能都可以看成是一个模块。根据功能具体化程度的不同,模块可以分为逻辑模块和物理模块。在系统逻辑模型中定义的处理功能可视为逻辑模块。物理模块是逻辑模块的具体化,可以是一个计算机程序、子程序或若干条程序语句,也可以是人工过程的某项具体工作。
               一个模块应具备以下4个要素。
               (1)输入和输出。模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那里取得输入,进行加工后再把输出返回给调用者。
               (2)处理功能。指模块把输入转换成输出所做的工作。
               (3)内部数据。指仅供该模块本身引用的数据。
               (4)程序代码。指用来实现模块功能的程序。
               前两个要素是模块外部特性,反映了模块的外貌。后两个要素是模块的内部特性。在结构化设计中,主要考虑的是模块的外部特性,对其内部特性只做必要了解,具体的实现将在系统实施阶段完成。
               2)模块结构图
               为了保证系统设计工作的顺利进行,结构设计应遵循以下原则。
               (1)所划分的模块其内部的凝聚性要强,模块之间的联系要少,即模块具有较强的独立性。
               (2)模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。
               (3)整个系统呈树状结构,不允许网状结构或交叉调用关系出现。
               (4)所有模块(包括后继IPO图)都必须严格地分类编码并建立归档文件。
               模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,并不关心模块的内部。
               模块结构图是结构化设计中描述系统结构的图形工具。作为一种文档,它必须严格地定义模块的名字、功能和接口,同时还应当在模块结构图上反映出结构化设计的思想。
               数据存储设计
               信息系统的主要任务是从大量的数据中获得管理所需要的信息,这就必须存储和管理大量的数据。因此,建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
               数据结构组织和数据库或文件设计,就是要根据数据的不同用途、使用要求、统计渠道和安全保密性等来决定数据的整体组织形式、表或文件的形式,以及决定数据的结构、类别、载体、组织方式、保密级别等一系列的问题。
               一个好的数据结构和数据库应该充分满足组织的各级管理要求,同时还应该使后继系统的开发工作方便、快捷、系统开销(如占用空间、网络传输频度、磁盘或光盘读写次数等)小、易于管理和维护。
               在建立了数据的整体结构之后,剩下的就是要确定数据的资源分布和安全保密性。其中,数据资源的分布是针对分布数据库系统而言的,而安全保密属性的定义则是针对某些特殊信息,例如财务数据等而言的。
               (1)数据资源分布。如果所规划和设计的系统是在网络环境之下,那么数据库设计必须考虑整个数据资源在网络各节点(包括网络服务器)上的分配问题。
               (2)数据的安全保密。一般数据库软件都提供定义数据安全保密性的基本功能。系统所提供的安全保密功能一般有8个等级(0-7级),4种不同方式(只读、只写、删除、修改),而且允许用户利用这8个等级的4种方式对每一个表自由地进行定义。
 
       构件
        为了达到门户站点的基本要求,一个企业的网站应当由以下构件组成:
        (1)应用服务器(Application Server)。主要用于企业较大规模电子商务应用的开发、发布和管理,同时实现与企业原有系统的集成。
        (2)工作流和群件服务器。主要用于使工作人员和商业伙伴能通过Internet共享资源、协同工作。
        (3)内容管理子系统。简化企业网站的产品管理、提高效率,并将相应的、经过筛选的内容发送给最终用户。
        (4)目录服务器。企业使用它来管理防火墙内外的用户、资源和控制安全权限,同时为用户的通信和电子商务提供一个通道。
        (5)性能优化工具。改善网站服务质量,包括流量管理、动态数据缓存、网络动态负载(Load Balancing)、知识管理等。
        (6)邮件和消息服务器。使企业和服务提供者能为所有员工、合作伙伴和客户社区提供商业级的通信架构。
        (7)个性化信息服务。在实时分析用户数据的基础上提供一对一的交易平台。通过对用户行为的更好理解,企业更跟踪、分析和理解网站用户。
        (8)搜索引擎。用户提供更广泛的资源。
        (9)安全服务器。包括数据安全、应用安全和交易完全。其基本内容有用防火墙阻止对网络的非授权访问,在安全和个人的角色授权的基础上,只需一次登录就可以访问网站的所有应用,通过提供一种对在线交易的每一方的可信任的授权方式,帮助客户、合作伙伴和员工访问Internet应用。
        (10)网站服务器(Web Server)。将各种网站的信息发布给用户。
        以上是通常构建网站所需要的构件,企业可针对自己的特点以及网站规模大小,应用的类型等自行选择。
        在网站结构的实现上,通常在逻辑上将网站分为三层:表示层、应用逻辑层、数据层。这种结构使得网站具有较好的可扩充性,将表示层与业务功能的实现分离开来,能够更灵活地适应业务的发展。网站不需要对业务逻辑组件进行任何变动,就能够适用新出现的表示形式和客户端。例如,为了使用户更方便地在网站上购物,网站调整了页面格局和页面风格。由于网站结构层次分明,只需要改动网站表示层,业务逻辑层和数据连接层则不需要改变。
        (11)表示层和相关技术。表示层用于为最终用户提供一个友好的用户界面,接受用户提交的事件,并将处理的结果返还给用户。这一层作为应用的前端和“窗口”,决定了用户对网站优劣的评价和总体印象。
        网站从总体上说是独立于客户端的,客户端包括基于浏览器的HTML客户端、给予Java的客户端、传统的C/C++应用、Power Builder客户端以及VB客户端。
        在表示层除了使用最基本的HTML语言外,通常还利用JavaScript Internet脚本语言,以及Java Internet程序开发语言。JavaScript程序运行在客户端,能够完成用户事件获取、数据提交前的合法性校验、错误检查和实现动画效果等。而利用Java开发的JavaServlet程序运行于服务器端,负责实现与业务逻辑层的交互,从业务逻辑层获得数据,并将用户提交的信息传给业务逻辑层,而基于Java语言的JSP程序,则实现数据的动态显示,它将JavaServlet程序获得的数据形成相应的HTML页面传给客户端。
        为了适应电子商务的各种需求,新的表示层技术不断发展。如XML(可扩展标记语言)和RDF(资源描述框架)等都是当前最新的、对表示层产生重大影响的技术。XML通过一种结构化的文本方式来表述数据;RDF提供一种统一的、可互操作的方法通过Internet在程序间交换元数据。
        (12)商务逻辑与实现。商务逻辑层是电子商务系统的核心,也是系统建造过程中的重点和难点。商务逻辑层包括商务应用程序、支持平台(包括商务服务层、商务支持层和基础支持层)。
        支持层向上层(商务应用层)提供的服务主要包括:表达、商务支持、运行支持、开发与集成服务。构成支持平台的技术产品至少应当包括:Web服务器、商务支持软件、集成与开发工具、计算机主机、网络及其他系统软件(如操作系统、管理工具软件等)。
        通常,Web服务器、商务支持软件、部分集成开发环境被集成到一个被称为“应用服务器”的软件包里,所以商务逻辑层在物理上可以简化为以下三个部门:应用软件(实现商务逻辑);应用服务器(为应用软件提供软件支持平台)和其他支持软件;计算机主机及网络(为应用软件提供硬件支持平台)。
        构造商务逻辑层的任务是为选择合适的应用服务器和其他支持软件,开发实现商务逻辑的应用软件系统。
        (13)数据层及实现。构造数据层的关键是开发电子商务与外部系统、内部资源系统的接口,完成系统集成。
        数据层的数据源主要包括:相关信息系统(如ERP系统)的数据与企业的数据库,企业与协作企业(如供应商)间交换的数据,企业与银行间交换的数据,企业与认证中心之间的认证数据,企业与其他商务中介交换的电子数据。
        由于企业商务逻辑的处理过程是一个从市场、销售、采购到客户服务的整体,所以必须将商务逻辑处理过程中所涉及到的数据集成到一起,因此构造数据层的任务是:实现电子商务系统与企业内部和外部信息系统之间的网络互联,并确保安全的网络环境,基于应用服务器平台的商务应用系统与企业内部数据的共享。
 
       软件体系结构
        随着嵌入式技术的发展,特别是在后PC时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系。如下图所示,这个体系自底向上由3部分组成,分别是嵌入式操作系统、支撑软件和应用软件。
        
        嵌入式系统的软件体系结构
        嵌入式操作系统(Embedded Operating System, EOS)由操作系统内核、应用程序接口、设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
        嵌入式系统中的支撑软件由窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。支撑软件一般用于一些浅度嵌入的系统中,如智能手机、个人数字助理等。
        嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的。
 
       数据仓库
        传统数据库在联机事务处理(OLTP)中获得了较大的成功,但是对管理人员的决策分析要求却无法满足。因为管理人员希望对组织中的大量数据进行分析,了解组织业务的发展趋势,而传统的数据库中只能保留当前的管理信息,缺乏决策分析所需要的大量的历史信息。为了满足管理人员的决策分析需要,在数据库基础上产生了能满足决策分析需要的数据环境——数据仓库(Data Warehouse,DW)。
        虽然数据仓库是从数据库发展而来的,但是二者在许多方面有相当大的差异,二者的比较情况如下表所示。
        
        数据仓库与数据库比较
               数据仓库的基本特性
               数据仓库有这样一些重要的特性:面向主题的、数据是集成的、数据是相对稳定的、数据是反映历史变化的。
                      面向主题的
                      数据仓库中数据是面向主题进行组织的。从信息管理的角度来看,主题就是一个较高的管理层次上对信息系统中数据按照某一具体的管理对象进行综合、归类所形成的分析对象。从数据组织的角度来看,主题就是一些数据集合,这些数据集合对分析对象进行了比较完整的、一致的数据描述,这种数据描述不仅涉及数据自身,还涉及数据间的联系。例如,企业中的客户、产品和供应商等都可以作为主题来看待。
                      数据仓库的创建使用都是围绕主题实现的,因此,必须了解如何按照决策分析来抽取主题,所抽取的主题应该包含哪些数据内容,这些数据应该如何组织。在进行主题抽取时,必须按照决策分析对象进行。例如,在企业销售管理中的管理人员所关心的是本企业哪些产品销售量大、利润高?哪些客户采购的产品数量多?竞争对手的哪些产品对本企业产品构成威胁?根据这些管理决策分析对象,就可以抽取“产品”“客户”等主题。
                      数据是集成的
                      数据仓库的集成性是指根据决策分析的要求,将分散于各处的原数据进行抽取、筛选、清理、综合等集成工作,使数据仓库中的数据具有集成性。
                      数据仓库所需要的数据不像业务处理系统那样直接从业务发生地获取数据。如在线事务处理系统(OLPT)、企业业务流程重组(BRP)以及基于因特网的电子商务(EC)中的数据是与业务处理联系在一起的,只为业务的日常处理服务,而不是为决策分析服务。这样,数据仓库在从业务处理系统那里获取数据时,并不能将原数据库中的数据直接加载到数据仓库中,而要进行一系列的数据预处理。即从原数据库中挑选出数据仓库所需要的数据,然后将来自不同数据库中的数据按某一标准进行统一,如将数据源中数据的单位、字长与内容统一起来,将源数据中字段的同名异义、异名同义现象消除,然后将源数据加载到数据仓库,并将数据仓库中的数据进行某种程度的综合,进行概括和聚集的处理。
                      数据是相对稳定的
                      数据仓库的数据主要是供决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时间的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据经过集成输入到数据仓库中。因为数据仓库只进行数据查询操作,所以在DBMS中的完整性保护、并发控制在数据仓库管理中都可以省去。但是,由于数据仓库的查询数据量往往很大,所以对数据查询提出了更高的要求,需要采用复杂的索引技术。
                      数据是反映历史变化的
                      数据仓库中数据的相对稳定是针对应用来说的,数据仓库的用户进行分析处理时是不进行数据更新操作的。但并不表明在从数据集成输入数据仓库开始到最终被删除的整个数据生存周期中,所有的数据仓库数据是永远不变的。数据仓库的数据是反映历史变化的,这主要表现在如下三个方面:
                      (1)数据仓库随时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉OLTP数据库中变化的数据,追加到数据仓库中去。
                      (2)数据仓库随时间变化不断删除旧的数据内容。
                      (3)数据仓库中包含大量的综合数据,这些数据有很多信息与时间有关,如数据经常按时间段进行综合,或隔一定的时间进行抽样等等,这些数据要随时间不断地进行重新综合。
               数据仓库的数据模式
               典型的数据仓库具有为数据分析而设计的模式,使用OLAP工具进行联机分析处理。因此数据通常是多维数据,包括维属性、度量属性。包含多维数据的表称为事实表,事实表通常很大。例如,一个表sales记录了零售商店的销售信息,其中每个元组对应一个商品售出记录,这是一个非常典型的事实表的例子。表sales的维包括售出的是何种商品(用商品标识表示)、商品售出的日期、商品售出的地点、哪个顾客购买该商品等等。度量属性包括售出商品的数量和金额。
               为了减少存储要求,维属性通常是一些短的标识,作为参照其他表的外码。例如,事实表sales含有属性item_key、time_key、branch_key和location_key,以及度量属性units_sold和dollars_sold。其中,属性item_key是一个参照维表item的外码,表item含有商品名称、商品的品牌、商品所属类别等属性;属性time_key是一个参照维表time的外码,表time含有日、月、季和年的属性;属性branch_key是一个参照维表branch的外码,表branch含有出售商品的分销商的名称、分销商的类型属性;属性location_key是一个参照维表location的外码,表location含有销售地点的街道、城市、省份、国家等属性。由此得到一个事实表、多维表以及从事实表到多维表的参照外码的模式称为星型模式,如下图所示。
               
               数据仓库的星型模式示例
               更复杂的数据仓库设计可能含有多级维表,例如维表item含有属性supplier_key,作为参照给出供应商的细节信息的另一个维表supplier的外码;维表location含有属性city_key,作为参照给出城市的细节信息的另一个维表city的外码。这种模式称为雪花模式,如下图所示。
               
               数据仓库的雪花模式示例
               复杂的数据仓库设计可能含有不止一个事实表,下图模式中含有Sales和Shipping两个事实表,共享location、item、time和branch维表。这种模式称为事实星型模式。
               
               数据仓库的事实星型模式示例
               数据仓库的体系结构
               数据仓库通常采用三层体系结构,底层为数据仓库服务器、中间层为OLAP服务器,顶层为前端工具。底层的数据仓库服务器一般是一个关系数据库系统,数据仓库服务器从操作型数据库或外部数据源提取数据,对数据进行清理、转换、集成等,然后装入数据仓库中。中间层的OLAP服务器的实现可以是关系型OLAP,即扩充的关系型DBMS,提供对多维数据的支持;也可以是多维的OLAP服务器,它是一种特殊的服务器,直接支持多维数据的存储和操作。顶层的前端工具包括查询和报表工具、分析工具、数据挖掘工具等。
               从结构的角度看有三种数据仓库模型:企业仓库、数据集市和虚拟仓库。
               企业仓库收集跨越整个企业的各个主题的所有信息。它提供全企业范围的数据集成,数据通常都来自多个操作型数据库和外部信息提供者,并且是跨越多个功能范围的。它通常包含详细数据和汇总数据。企业数据仓库可以在传统的大型机上实现,例如UNIX超级服务器或并行结构平台。它需要广泛的业务建模,可能需要多年的时间来设计和建造。
               数据集市包含对特定用户有用的、企业范围数据的一个子集。它的范围限于选定的主题,例如一个商场的数据集市可能限定于它的主题为顾客、商品和销售。包括在数据集市中的数据通常是汇总的。通常,数据集市可以在低价格的部门服务器上实现,基于UNIX或Windows NT/2000/XP。实现数据集市的周期一般是数周,而不是数月或数年。但是,如果它的规划不是企业范围的,从长远讲,可能会涉及很复杂的集成。根据数据的来源不同,数据集市分为独立的和依赖的两类。在独立的数据集市中,数据来自一个或多个操作型数据库或外部信息提供者,或者是一个特定部门或地区本地产生的数据。在依赖数据集市中,数据直接来自企业数据仓库。
               虚拟仓库是操作型数据库上视图的集合。为了有效地处理查询,只有一些可能的汇总视图被物化。虚拟仓库易于建立,但需要操作型数据库服务器具有剩余能力。
 
       体系结构
        RPR的体系结构如下图所示。RPR采用了双环结构,由内层的环1和外层的环0组成,每个环都是单方向传送。相邻工作站之间的跨距包含传送方向相反的两条链路。RPR支持多达255个工作站,最大环周长为2000km。
        
        RPR体系结构
   题号导航      2016年上半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第32题    在手机中做本题