问答题
.请详细阅读有关嵌入式构件设计方面的说明,回答下列问题。
【说明】
构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,己积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。
问答题
1. 请用200字以内文字说明获取构件的方法有哪几种、开发构件通常采用哪几种策略。并列举出两种主流构件标准。
【正确答案】基于构件的软件开发中,可以通过不同的途径来获取构件,主要包括以下4种方法:
(1)从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可复用的构件。
(2)通过遗留工程(Legacy Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件。
(3)从市场上购买现成的商业构件(Commercial Off-The-Shell,COTS)。
(4)开发新的符合要求的构件。
开发构件通常采取三种策略:
(1)分区(partitioning):指的是将问题情景的空间分割成几乎可以独立研究的部分。
(2)抽象(abstraction):是对在给定实践内执行指定计算的软/硬件单元的一种抽象。
(3)分割(segmentation);是将结构引入构件的行为,支持对行为性质进行时序推理。
当前主流构件标准有:
(1)CORBA:由OMG(对象管理集团)制定。
(2)COM/DCOM:由Microsoft制定。
(3)EJB:由SUN的Java企业Bean制定。
【答案解析】
问答题
2. 由于该公司已具备大量的成熟软件,王工程师此次的主要工作就是采用遗留工程方法,将具有潜在复用价值的软件提取出来,得到可复用的构件。因此,在设计软件时与原开发技术人员产生了重大意见分歧,主要分歧焦点在于大家对构件概念理解上的差异。请根据你对构件的理解,判断下表给出的有关构件的说法是否正确。
| 有关构件的6种说法 |
| 序号 | 关于构件的说明 | 正确:√ 不正确:× |
| 1 | 构件是系统中的一个封装了设计与实现,而只披露接口的可更换的部分 | (1) |
| 2 | 构件是解决软件复用的基础,复用的形式可分为垂直式复用和水平式复用。而水 平式复用的主要关键点在于领域分析,具有领域特征和相似性,受到广泛关注 | (2) |
| 3 | 构件构建在平台之上,平台提供核心平台服务,是构件实现与构件组装的基础。 构件组装通常采用基于功能的组装技术、基于数据的组装技术和基于配置的组装 技术 | (3) |
| 4 | 软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、 构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成 | (4) |
| 5 | 构件可分为硬件构件、软件构件、系统构件和应用构件。RTL(运行时库)属于 软件构件,由于RTL与应用领域相关,所以RTL应属于垂直式复用构件 | (5) |
| 6 | 硬件构件的功能被给定的硬件结构(如ASIC)预先确定,是不能修改的。同样, 软件构件的功能由在FPGA或者CPU上的软件确定的,也是不能修改的 | (6) |
【正确答案】(1)√ (2)× (3)× (4)√ (5)× (6)×
错误分析:
(2)“构件是解决软件复用的基础,复用的形式可分为垂直式复用和水平式复用。而垂直式复用的主要关键点在于领域分析,具有领域特征和相似性,受到广泛关注”。垂直式复用是与领域特性相关的,而水平式复用是一种公用的服务,不与某个特殊领域相关。
(3)“构件构建在平台之上,平台提供核心平台服务,是构件实现与构件组装的基础。构件组装通常采用基于功能的组装技术、基于数据的组装技术和面向对象的组装技术”。配置只是一种构件功能组合动态方法,而不是构件组装的技术。
(5)“构件可分为硬件构件、软件构件、系统构件和应用构件。RTL(运行时库)属于软件构件,由于RTL可适应多种应用领域,所以RTL与属于水平式复用构件”。RTL是C/C++语言为用户提供的一种运行时库,如数学库、stdio库等,它可服务于多种应用,而与领域需求无关,所以RTL不属于垂直式复用构件。
(6)硬件构件的功能被给定的硬件结构(如ASIC)预先确定,它是不能修改的。同样,软件构件的功能由在FPGA或者CPU上的软件确定的,我们将加载在软件构件上的软件称为作业。将作业分配给适当的可以执行该作业的硬件单元就创建了新的构件。软件构件的功能所以在构件的寿命期中可以修改。
【答案解析】
问答题
3. 王工程师的实施方案指出:本公司的大部分产品是为用户提供标准计算平台的,而此平台中的主要开发工作是为嵌入式操作系统研制板级支持软件(BSP)。为了提高BSP软件的复用,应首先开展BSP构件的开发,且构件架构应符合国外GENESYS规范定义的嵌入式系统架构风格。下图给出了架构风格定义的构件通用接口,其中:链接接口(LIF)是构件对外提供的功能服务接口;局部接口建立了构件及其局部环境的连接,如传感器、作动器或人机接口;技术相关接口(TDI)提供了查看构件内部、观察构件的内部变量的手段,如诊断等;技术无关接口(TII)用来在运行时配置、复位、重启构件的接口。现需要针对BSP中常用的RS-232串行驱动程序设计一个可复用的软构件,请说明该软构件四类接口的具体功能。
【正确答案】RS-232驱动程序主要完成对RS-232芯片的初始化,实现RS-232数据发送、接收和控制等功能。依据GENESYS规范定义的构件接口含义,RS-232驱动程序构件的接口定义如下:
【答案解析】