列表

详情


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

【问题1】(共9分)
请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。
【问题2】(共6分)
由于该公司已具备大量的成熟软件,王工程师此次的主要工作就是采用遗留工程(Legacy Engineering)方法,将具有潜在复用价值的软件提取出来,得到可复用的构件。因此,在设计软件时与原开发技术人员产生了重大意见分歧,主要分歧焦点在于大家对构件概念理解上的差异。请根据你对构件的理解,判断表3-1给出的有关构件的说法是否正确,将答案写在答题纸上。
    
【问题3】(共10分)
王工程师的实施方案指出:本公司的大部分产品是为用户提供标准计算平台的,而此平台中的主要开发工作是为嵌入式操作系统研制板级支持软件(BSP)。为了提高BSP软件的复用,应首先开展BSP构件的开发,且构件架构应符合国外GENESYS规范定义的嵌入式系统架构风格。图3-1给出了架构风格定义的构件通用接口,其中:链接接口(LIF)是构件对外提供的功能服务接口;局部接口建立了构件和它的局部环境的连接,如传感器、作动器或人机接口;技术相关接口(TDI)提供了查看构件内部、观察构件的内部变量的手段,如诊断等;技术无关接口(TII)用来在运行时配置、复位、重启构件的接口。现需要针对BSP中常用的RS-232串行驱动程序设计一个可复用的软构件,请说明该软构件四类接口的具体功能。
    
图3-1 GENESYS规范定义的构件接口

参考答案: 【问题1】(9分)
获取构件的方法包括:
(1)从现有构件中获得符合要求的构件,直接使用或做适应性(flexibility)修改,得到可重用的构件;
(2)通过遗留工程(Legacy engineering),将具有潜在复用价值的构件提取出来,得到可重用的构件;
(3)从市场上购买现成的商业构件,即COTS(Commercial Off-The-Shell)构件;
(4)开发新的符合要求的构件。
开发构件的策略:
分区:指的是将问题情景的空间分割成几乎可以独立研究的部分;
抽象:是对给定时间内执行指定计算的软/硬件单元的一种抽象;
分割:是将结构引入构件的行为,支持对行为性质进行时序推理。
主流构件标准包括:CORBA、COM/DCOM/COM+、EJB(答出其中两种即可)。
【问题2】(6分)
(1)√        (2)×         (3)×       (4)√         (5)×        (6)×
【问题3】(10分)
局部接口:将RS-232芯片的外部中断向量连接到CPU,从RS-232芯片中读取寄存器的内容,将控制信息定稿RS-232芯片寄存器。
技术相关接口(TDI):诊断数据传输校验的错误。
链接接口(LIF):对RS-232芯片初始化,并向其发送数据与从芯片接收数据。
技术无关接口(TII):RS-232芯片或驱动构件复位和重启,重新配置传输速率。

详细解析:

构件组装
构件组装是指将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。构件组装技术大致可分为基于功能的组装技术、基于数据的组装技术和面向对象的组装技术。
(1)基于功能的组装技术
基于功能的组装技术采用子程序调用和参数传递的方式将构件组装起来。它要求库中的构件以子程序/过程/函数的形式出现,并且接口说明必须清晰。当使用这种组装技术进行软件开发时,开发人员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松耦合的功能模块。然后根据各模块的功能需求提取构件,对它进行适应性修改后再挂接在上述功能分解框架(framework)中。
(2)基于数据的组装技术
基于数据的组装技术首先根据当前软件问题的核心数据结构设计出一个框架,然后根据框架中各结点的需求提取构件并进行适应性修改,再将构件逐个分配至框架中的适当位置。此后,构件的组装方式仍然是传统的子程序调用与参数传递。这种组装技术也要求库中构件以子程序形式出现,但它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如Jackson系统开发方法。
(3)面向对象的组装技术
由于封装和继承特征,面向对象方法比其他软件开发方法更适合支持软件重用。在面向对象的软件开发方法中,如果从类库中检索出来的基类能够完全满足新软件项目的需求,则可以直接应用。否则,必须以类库中的基类为父类采用构造法或子类法生成子类。

上一题