免费智能真题库 > 历年试卷 > 系统分析师 > 2018年上半年 系统分析师 下午试卷 论文
  第2题      
  知识点:   构件管理   复用   构件   内聚   软件复用   软件构件   软件构件管理

 
论软件构件管理及其应用
软件构件是软件复用的重要组成部分,为了达到软件复用的目的,构件应当是高内聚的,并具有稳定的对外接口。同时为了使构件更切合实际、更有效地被复用构件应当具备较强的适应能力,以提高其通用性。而存在大量的、可复用构件是有效使用复用技术的前提。对大量构件进行有效管理,以方便构件的存储、检索和提取,是成功复用构件的必要保证。
 
问题:2.1   请围绕“软件构件管理及其应用”论题,依次从以下三个方面进行论述。
1.简要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.详细说明构件管理中常见的构件获取方法,以及构件组织分类的常见方法。
3.结合你具体参与管理和开发的实际项目,说明在项目中如何获取和组织构件,以及如何进行构件组装。
 
 
 
 

   知识点讲解    
   · 构件管理    · 复用    · 构件    · 内聚    · 软件复用    · 软件构件    · 软件构件管理
 
       构件管理
        对大量的构件进行有效的管理,以方便构件的存储、检索和提取,是成功重用构件的必要保证。构件管理的内容包括构件描述、构件分类、构件库组织、人员及权限管理和用户意见反馈等。
        构件模型是对构件本质的抽象描述,主要是为构件的开发与构件的重用提供依据;从管理的角度出发,也需要对构件进行描述,例如,实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模型共同组成了对构件的完整描述。
               构件的组织
               为了给使用者在查询构件时提供方便,同时也为了更好地重用构件,必须对收集和开发的构件进行分类,并置于构件库的适当位置。构件的分类方法及相应的库结构对构件的检索和理解有极为深刻的影响。因此,构件库的组织应方便构件的存储和检索。
               可重用技术对构件库组织方法的要求是:
               (1)支持构件库的各种维护动作,如增加、删除以及修改构件,尽量不要影响构件库的结构。
               (2)不仅要支持精确匹配,还要支持相似构件的查找。
               (3)不仅能进行简单的语法匹配,而且能够查找在功能或行为方面等价或相似的构件。
               (4)对应用领域具有较强的描述能力和较好的描述精度。
               (5)库管理员和用户容易使用。
               目前,已有的构件分类方法可以归纳为三大类,分别是关键字分类法、刻面分类法和超文本组织方法。
               (1)关键字分类法(keyword classification):根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。每个概念用一个描述性的关键字表示。不可分解的原子级关键字包含隶属于它的某些构件。当加入构件时,库管理员必须对构件的功能或行为进行分析,在浏览上述关键字分类结构的同时将构件置于最合适的原子级关键字之下。如果无法找到构件的属主关键字,可以扩充现有的关键字分类结构,引进新的关键字,但库管理员必须保证新关键字有相同的领域分析结果作为支持。
               (2)刻面分类法(faceted classification):定义若干用于刻画构件特征的“面”(facet),每个面包含若干概念,这些概念描述构件在面上的特征。刻面可以描述构件执行的功能、被操作的数据、构件应用的语境或任意其他特征。描述构件的刻面的集合称为刻面描述符(facet descriptor),通常,刻面描述被限定不超过7或8个刻面。
               关键字分类法和刻面分类法都是以数据库系统作为实现背景的。尽管关系数据库可供选用,但面向对象数据库更适于实现构件库,因为其中的复合对象、多重继承等机制与表格相比更适合描述构件及其相互关系。
               (3)超文本方法(hypertext classification):与基于数据库系统的构件库组织方法不同,它基于全文检索技术。其主要思想是:所有构件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览式检索。超文本是一种非线性的网状信息组织方法,它以节点为基本单位,链作为节点之间的联想式关联。超文本组织方法为构造构件和重用构件提供了友好、直观的多媒体方式。由于网状结构比较自由、松散,因此,超文本方法比前两种方法更易于修改构件库的结构。
               构件分类
               如果把软件系统看成是构件的集合,那么从构件的外部形态来看,构成一个系统的构件可分为5类:
               (1)独立而成熟的构件。独立而成熟的构件得到了实际运行环境的多次检验,该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。例如,数据库管理系统和操作系统等。
               (2)有限制的构件。有限制的构件提供了接口,指出了使用的条件和前提,这种构件在装配时,会产生资源冲突、覆盖等影响,在使用时需要加以测试。例如,各种面向对象程序设计语言中的基础类库等。
               (3)适应性构件。适应性构件进行了包装或使用了接口技术,把不兼容性、资源冲突等进行了处理,可以直接使用。这种构件可以不加修改地使用在各种环境中。例如ActiveX等。
               (4)装配的构件。装配的构件在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,使用胶水代码(glue code)就可以进行连接使用。目前一些软件商提供的大多数软件产品都属这一类。
               (5)可修改的构件。可修改的构件可以进行版本替换。如果对原构件修改错误、增加新功能,可以利用重新“包装”或写接口来实现构件的替换。这种构件在应用系统开发中使用得比较多。
               人员及权限管理
               构件库系统是一个开放的公共构件共享机制,任何使用者都可以通过网络访问构件库,这在为使用者带来便利的同时,也给系统的安全性带来了一定的风险,因此有必要对不同使用者的访问权限作出适当的限制,以保证数据的安全。
               一般来讲,构件库系统可包括5类用户,即注册用户、公共用户、构件提交者、一般系统管理员和超级系统管理员。他们对构件库分别有不同的职责和权限,这些人员相互协作,共同维护着构件库系统的正常运作。同时,系统为每一种操作定义一个权限,包括提交构件、管理构件、查询构件及下载构件。每一用户可被赋予一项或多项操作权限,这些操作权限组合形成该人员的权限,从而支持对操作的分工,为权限分配提供了灵活性。
 
       复用
        软件复用是指将已有的软件及其有效成分用于构造新的软件或系统。构件技术是软件复用实现的关键。
 
       构件
        为了达到门户站点的基本要求,一个企业的网站应当由以下构件组成:
        (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系统)的数据与企业的数据库,企业与协作企业(如供应商)间交换的数据,企业与银行间交换的数据,企业与认证中心之间的认证数据,企业与其他商务中介交换的电子数据。
        由于企业商务逻辑的处理过程是一个从市场、销售、采购到客户服务的整体,所以必须将商务逻辑处理过程中所涉及到的数据集成到一起,因此构造数据层的任务是:实现电子商务系统与企业内部和外部信息系统之间的网络互联,并确保安全的网络环境,基于应用服务器平台的商务应用系统与企业内部数据的共享。
 
       内聚
        内聚是指模块内部各元素之间联系的紧密程度,例如一个完成多个功能的模块的内聚度就比完成单一功能的模块的内聚度低。内聚度越低,模块的独立性越差。内聚性有以下几种类型:
        (1)偶然内聚:指一个模块内的各个处理元素之间没有任何联系。
        (2)逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
        (3)时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
        (4)通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。
        (5)顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
        (6)功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
        耦合性和内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性。
 
       软件复用
        软件复用是指利用已有软件的各种有关知识构造新的软件,以缩减软件开发和维护的费用。复用是提高软件生产力和质量的一种重要技术。
        软件复用的主要思想是,将软件看成是由不同功能的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具。这样,如果完成各种工作的组件被建立起来以后,编写某一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。
        早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决策、架构、需求、设计、代码和文档等一切有关方面。
        由于面向对象方法的主要概念及原则与软件复用的要求十分吻合,所以该方法特别有利于软件复用。
 
       软件构件
        构件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户直接操作的细节进行封装,同时对各种业务逻辑规则进行实现,用于处理用户的内部操作细节,这个封装体就常常被称作构件。对我们而言,构件就是实现了某些功能的,有输入、输出接口的黑匣子。
        对于构件,应当按可复用的要求进行设计、实现、打包、编写文档。构件应当是内聚的,并具有相当稳定的公开接口。有的构件具有广泛的可复用性,可复用到众多种类的应用系统中。有的构件则只在有限的特定范围内被复用。
        构件有不同的含义。有人采用大型的定义,即一个构件是相关工作成品的一个集合,把所有种类的工作成品(如文档、指南、计划、测试、代码)都看成是可复用构件。MS、UML、OMG使用“构件”一词指一个封装的代码模块或大粒度的运行的模块。
 
       软件构件管理
        软件构件是软件系统的一个物理单元,它驻留在计算机中而不是只存在于系统分析员的脑海里。像数据表、数据文件、可执行文件、动态链接库、文档等都可以被称为构件。构件有几个基本属性:
        (1)构件是可独立配置的单元,因此构件必须自包容。
        (2)构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节。
        (3)构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互。
        (4)构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应与其有区别,在任何环境中,最多仅有特定构件的一份副本。
        可以看出,构件沿袭了对象的封装特性,但同时并不局限于一个对象,其内部可以封装一个或多个类、原型对象甚至过程,其结构是灵活的。构件突出了自包容和被包容的特性,这就是在软件生产线上作为零件的必要特征。
        软件构件要想在实际工作中得到有效利用,还离不开软件平台的支持。这个软件平台包括构件的运行支撑环境、构件开发/组装环境、构件管理环境和基于构件的开发方法以及开发过程等。在这个软件平台上,用户可以按照自己的需求,选择适合的基础服务模块或高级服务模块,按照一定管理模式搭建出一个基础的框架。这个框架承载的就是软件构件模块。基础框架和软件构件模块,共同构成了基础框架平台。例如,微软公司的COM就利用Windows系统注册表配合几种唯一标识构件的方式,实现了构件的登记、注销、定位。CORBA规范中有接口池、实现池等规范定义,配合应用登记管理的机制,也能对应用构件实施管理。
   题号导航      2018年上半年 系统分析师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第2题    在手机中做本题