系统架构设计师---2014年下午试题1分析与解答(试题三)

2014年下午试题1分析与解答

试题三

【说明】

构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,已积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。

【问题1】

请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。

基于构件的软件开发中,可以通过不同的途径来获取构件,主要包括以下4种方法:

(1) 从现有构件中获得符合要求的构件,直接使用或做适应性修改,得到可复用的构件;

(2) 通过遗留工程(Legacy Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件;

(3) 从市场上购买现成的商业构件,BPCOTS(Commercial Off-The-Shell)构件;

(4) 开发新的符合要求的构件。

开发构件通常采取3种策略:

(1) 分区(partitioning):指的是将问题情景的空间分割成几乎可以独立研究的部分;

(2) 抽象(abstraction):是对在给定实践内执行指定计算的软/硬件申.元的一种抽象;

(3) 分割(segmentation):是将结构引入构件的行为,支持对行为性质进行时序推理。

当前主流构件标准有:

(1) CORBA:由OMG(对象管理集团)制定;

(2) COM/DCOM:由Microsoft制定;

(3) EJB:由SUN的Java企业Bean制定。

本题考查软件构件(component)基本概念、提取构件需要采取的一般方法,通过一种简单的实例,重点考查考生对构件知识使用的掌握程度。

此类题B要求考生认真阅读题目对问题的描述,通过自己对构件知识的掌握的程度,采用总结、抽象和概括等的方式,从问题描述中发现问题的相关性,正确回答问题。

构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。从传统意义上来讲,构件就是一种可独立开发、具备独立功能的一类软件。它具备有独立性、可重用性、可组装性、可配置性等特点,构件没有大小之分,可通过将几个构件组装成一个新构件。

通常情况下,软件人员在从事开发时,在分析和论证的基础上,提炼出适合本项目需要的构件,这样可降低软件开发成本、缩短开发周期。软构件可通过多种途径获取,目前可主要归纳为以下四种方法:

(1) 修改已有构件:从现有构件中获得符合要求的构件,直接使用或做适应性修改,得到可复用的构件:

(2) 封装新构件:通过遗留工程(Legacy Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件;

(3) COTS构件:从市场上购买现成的商业软件(构件),通过处理形成满足自己需要的构件,BIJCOTS(Commercial Off-The-Shell)构件;

(4)新开发构件:针对项目需要,在分许、评估的基础上,开发新的符合要求的构件。

软件构件的幵发方法通常包括了分区(partitioning)、抽象(abstraction)和分割(segmentation)等三种。分区指的是将问题情景的空间分割成几乎可以独立研究的部分;抽象是对在给定实践内执行指定计算的软/硬件单元的一种抽象;分割是将结构引入构件的行为,支持对行为性质进行时序推理。通俗地说,分区就是在空间上对软件进行划分,保证构件在空间上具备独立特性,分割就是按软件程序的执行行为特征,按时间关系进行分解,保证构件在时间上具备独立特性,抽象就是按软件功能独立性进行分解和抽象。目前,基于构件的软件体系标准是由OMG(对象管理集团)制定的CORBA标准、由Microsoft公司制定COM/DCOM标准和由SUN的Java企业Bean制定EJB标准。

【问题2】

由于该公司已具备大量的成熟软件,王工程师此次的主要工作就是采用遗留工程 (Legacy Engineering)方法,将具有潜在复用价值的软件提取出来,得到可复用的构件。因此,在设计软件时与原开发技术人员产生了重大意见分歧,主要分歧焦点在于大家对构件概念理解上的差异。请根据你对构件的理解,判断表 3-1 给出的有关构件的说法是否正确,将答案写在答题纸上。

(1)√(2)×(3)×(4)√(5)×(6)×

本问题主要考查考生对构件基本知识的掌握程度,通过判断正确、错误的形式,考察考生对构件概念正确性理解。每个判断题正确的描述如下:

(1) “构件是系统中的一个封装了设计与实现,而只披露接口的可更换的部分”。此种描述是正确的。

(2) “构件是解决软件复用的基础,复用的形式可分为垂直式复用和水平式复用。而垂直式复用的主要关键点在于领域分析,具有领域特征和相似性,受到广泛关注”。垂直式复用是与领域特性相关的,而水平式复用是一种公用的服务,不予某个特殊领域相关。

(3) “构件构建在平台之上,平台提供核心平台服务,是构件实现与构件组装的基础。构件组装通常采用基于功能的组装技术、基于数据的组装技术和面向对象的组装技术等三种技术”。配置只是一种构件功能组合动态方法,而不是构件组装的技术。

(4) “软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成”。该描述是正确的。

(5) “构件可分为硬件构件、软件构件、系统构件和应用构件。RTL(运行时库)属于软件构件,由于RTL可适应多种应用领域,所以RTL与属于水平式复用构件”。RTL是C/C++语言为用户提供的一种运行时库,如数学库、stdio库等,它可服务于多种应用,而与领域需求无关,所以说RTL不属于垂直式复用构件。

(6) “硬件构件的功能被给定的硬件结构如ASIC预先确定,他是不能修改的。同样,软件构件的功能由在FPGA或者CPU上的软件确定的,我们将加载在软件构件上的软件称为作业。将作业分配给适当的可以执行该作业的硬件单元就创建了新的构件。软件构件的功能所以在构件的寿命期中可以修改”。

【问题3】

王工程师的实施方案指出:本公司的大部分产品是为用户提供标准计算平台的,而此平台中的主要开发工作是为嵌入式操作系统研制板级支持软件(BSP)。为了提高BSP软件的复用,应首先开展BSP构件的开发,且构件架构应符合国外GENESYS规范定义的嵌入式系统架构风格。图 3-1 给出了架构风格定义的构件通用接口,其中:链接接口 (LIF)是构件对外提供的功能服务接口;局部接口建立了构件和它的局部环境的连接,如传感器、作动器或人机接口;技术相关接口(TDI)提供了查看构件内部、观察构件的内部变量的手段,如诊断等;技术无关接口(TII)用来在运行时配置、复使、重启构件的接口。现需要针对BSP中常用的RS-232串行驱动程序设计一个可复用的软构件,请说明该软构件四类接口的具体功能。

RS-232驱动程序主要完成对RS-232芯片的初始化,实现RS-232数据发送、接收和控制等功能。依据GENESYS规范定义的构件接口含义,RS-232驱动程序构件的接口定义如下:

(1)链接接口

RS-232驱动构件的使用者是上层的操作系统或应用软件,本构件应该给他们提供串行接口的数据发送、数据接收服务(1分)。因此,链接接口至少包括以下功能服务:

• Send():处理机中的程序向RS-232芯片输出数据;

• Receive():处理机中的程序通过RS-232芯片从外部接收数据;

• Init232():初始化RS-232芯片。

(2) 局部接口

RS-232驱动构件的局部接口应该是RS-232芯片为编程提供的各类寄存器和CPU对外围芯片的支持,此接口与硬件紧密相关。就RS-232芯片而言,局部接口至少包括以下功能服务:

• Intconnect():将RS-232芯片的外部中断向量连接到CPU;

• Rcad():从RS-232芯片中读取寄存器的内容(包括控制、状态类寄存器和数据输入寄存器);

• Write():将控制信息或输出的数据写入RS-232芯片的相应寄存器。

(3) 技术相关接口

RS-232驱动构件的技术相关接口应该是RS-232驱动构件为维护人员提供的芯片诊断接口,此接口与硬件和应用紧密相关。就RS-232芯片使用而言,技术相关接口至少包括以下诊断功能服务:

• Datacheck():诊断数据传输校验的错误。

(4) 技术无关接口

RS-232驱动构件的技术无关接口应该是RS-232驱动构件为编程人员提供的芯片初始化或运行时的配置接口。技术无关接口至少包括以下功能服务:

• Reset():RS-232芯片或驱动构件复位;

• Restart():RS-232芯片或驱动构件重启动;

• Rateconfigure():配置、重新配置RS-232传输速率。

本问题要求考生根据自己掌握的构件基本知识,结合图3-1给出的一种构件接口要求,在分析题干的基础上,针对一个驱动实例,完成串行接口的驱动软构件的设计。

RS-232驱动程序是每个从事嵌入式软件开发人员都知道的一种软件,它主要完成对RS-232芯片的初始化,实现RS-232数据发送、接收和控制等功能。本题要求考生将这些功能(服务)有效地分解到图3-1定义的构件四类接口。如果考生具有一定实际经验,就可完成次设计。下面简要说明答题思路:

(1) 链接接口

RS-232驱动构件的使用者是上层的操作系统或应用软件,本构件应该给他们提供串行接口的数据发送、数据接收服务。因此,链接接口至少包括以下功能服务:

• Send():处理机中的程序向RS-232芯片输出数据;

• Receive():处理机中的程序通过RS-232芯片从外部接收数据;

• Init232():初始化RS-232芯片。

(2) 局部接口

RS-232驱动构件的局部接口应该是RS-232芯片为编程提供的各类寄存器和CPU对外围芯片的支持,此接口与硬件紧密相关。就RS-232芯片而言,局部接口至少包括以下功能服务:

• Intconnect():将RS-232芯片的外部中断向量连接到CPU;

• Read():从RS-232芯片中读取寄存器的内容(包括控制、状态类寄存器和数据输入寄存器);

• Write():将控制信息或输出的数据写入RS-232芯片的相应寄存器。

(3) 技术相关接口

RS-232驱动构件的技术相关接口应该是RS-232驱动构件为维护人员提供的芯片诊断接口,此接口与硬件和应用紧密相关。就RS-232芯片使用而言,技术相关接口至少包括以下诊断功能服务:

• DatacheckO:诊断数据传输校验的错误。

(4) 技术无关接口

RS-232驱动构件的技术无关接口应该是RS-232驱动构件为编程人员提供的芯片初始化或运行时的配置接口。技术无关接口至少包括以下功能服务:

• Reset():RS-232芯片或驱动构件复位;

• Restart():RS-232芯片或驱动构件重启动;

• Rateconfigure():配置、重新配置RS-232传输速率。

问题3的解答内容仅供参考,每一类接口提供的服务格式、分类等可以有差异,但对于RS-232驱动构件每种功能分类一致即可。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

国林哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值