Vous êtes sur la page 1sur 12

TERASE: Template para Especificao de Requisitos de Ambiente em Sistemas Embarcados

Luiz Eduardo Galvo Martins, Roberto de Souza Jnior, Hermano Peixoto de Oliveira Jr., Cecilia Sosa Arias Peixoto Faculdade de Cincias Exatas e da Natureza Universidade Metodista de Piracicaba (UNIMEP) Piracicaba SP Brasil {lgmartin,rsouzao,cspeixot}@unimep.br, hermano_peixoto@directnet.com.br

Abstract
This paper presents a template for environmental requirements specification in embedded systems, called TERASE. There is a lack of requirements specification templates that address the particularities of the embedded systems development. With TERASE embedded system engineers can improve their environmental requirements specification, as well as the communication process between hardware and software engineers. An empirical study was conducted to evaluate the template proposed. The goal of the empirical study was to apply and evaluate the results obtained with TERASE, from the point of view of the embedded system practitioner. The embedded system analyzed during the experiment was a datalogger used to capture and store temperature reading. It was adopted in-vitro modality for the experiment.

1. Introduo
O software de sistema embarcado tem particularidades que o distingue dos demais tipos de software. Uma vez em operao, dificilmente ser possvel atualiz-lo em campo devido a questes fsicas ou econmicas [10]. O software tem que ser distribudo sem falhas operacionais que possam gerar responsabilidade civil e prejuzos imagem do fabricante. Por exemplo, considere uma mquina domstica de fazer po, vendida em escala global por grandes multinacionais da linha branca. No vemos atualizaes de software com novas receitas distribudas aos consumidores, nem atualizaes de

software, os conhecidos service packs. Muitas vezes, nem possvel identificar quem so os consumidores. O que aconteceria em caso de po queimado ou cru e alguns incndios espalhados pelo mundo? Certamente um grave dano marca. Este cenrio mostra a importncia da Engenharia de Software como um dos elementos garantidores da qualidade do produto. O software de um sistema embarcado tem que ser slido como uma rocha, no jargo tcnico rock-solid. Desenvolvedores de sistemas embarcados normalmente so engenheiros sem formao em Cincia da Computao. Isso fcil de compreender, pois a programao de sistemas dessa natureza necessita de conhecimento especializado na plataforma de hardware do sistema e em especificaes de natureza muito tcnica. Por exemplo, para programar o software embarcado de um decodificador de TV digital (HDTV), o engenheiro tem que conhecer o hardware necessrio e toda a norma relativa ao processo de codificao e transmisso da informao, as quais so escritas para um pblico com formao em engenharia eltrica. Em geral, o engenheiro de sistemas embarcados no faz uso das melhores prticas de Engenharia de Software, especialmente no que diz respeito aos requisitos e projeto do software [10]. Recentemente, praticantes da rea de sistemas embarcados comearam a se movimentar em busca de mtodos e tcnicas da Engenharia de Software [1][3], em uma tentativa de aproveitar e adaptar o que j existe, e buscar novas tcnicas que sejam aderentes s particularidades do desenvolvimento desse tipo de sistema.

Neste artigo ser apresentado um template para especificao de requisitos de ambiente em sistemas embarcados, denominado TERASE. Este template tem a finalidade de facilitar a especificao dos requisitos no-funcionais que iro delinear o ambiente fsico (hardware) no qual o software embarcado ser implementado. Em sistemas embarcados, o software a ser implementado precisa estar totalmente alinhado com o hardware que o suportar. Os programadores deste tipo de software precisam saber exatamente quais pinos do processador sero utilizados, qual tipo de dado tratado em cada pino, e quais os dispositivos de entrada ou sada esto associados aos pinos do processador (esses dispositivos normalmente so sensores e atuadores do sistema). Embora existam alguns templates para especificao de requisitos difundidos na comunidade de Engenharia de Software, por exemplo os templates IEEE Std 830-1998 [2] e Volere [6], eles so muito genricos e no tratam adequadamente as exigncias de requisitos para sistemas embarcados, principalmente no que se refere aos requisitos no-funcionais que definem o ambiente de um sistema embarcado. O template apresentado neste artigo foi proposto pelo Grupo de Pesquisa em Engenharia de Software Aplicada a Sistemas Embarcados e Automao Industrial da UNIMEP. Um estudo experimental foi realizado com o objetivo de avaliar os benefcios e dificuldades de utilizao do template proposto. Nesse estudo, que ocorreu dentro de um contexto real de desenvolvimento de sistemas embarcados (em uma empresa da rea de eletrnica industrial da regio de Campinas, Brasil), participou um engenheiro de controle e automao, que utilizou o template para fazer a especificao dos requisitos de ambiente de um sistema datalogger para captura e armazenamento de temperatura ambiente. Os resultados deste experimento sero relatados e discutidos ao longo deste artigo. O restante deste artigo est organizado da seguinte forma: na seo 2 apresentada uma breve caracterizao de sistemas embarcados; a seo 3 apresenta o TERASE, mostrando sua estrutura e os cartes de especificao propostos; na seo 4 explicado o formato do experimento realizado, bem como o perfil do participante do experimento, os materiais e tratamentos empricos adotados; na seo 5 so apresentados e discutidos os resultados do experimento; e na seo 6 apresenta-se a concluso final do trabalho.

A definio de sistema embarcado controversa, dada a variedade de aplicaes para tais sistemas e do tipo de tecnologia empregada. difcil conseguir uma definio geral. No entanto, existe um conjunto de caractersticas que so comuns maioria dos sistemas embarcados, independentemente do tipo de aplicao e tecnologia subjacente. Essas caractersticas so arroladas a seguir [4][5]: Sistemas embarcados so sistemas computacionais que acompanham algum produto manufaturado (tipicamente um dispositivo eletromecnico) para realizar uma tarefa especfica (controlada via software); O software desenvolvido para um hardware especfico, normalmente com alto grau de acoplamento; Interagem fortemente com sensores e atuadores1, processando dados obtidos pelos sensores, e enviando sinais para os atuadores (que interferem com o equipamento no qual o sistema embarcado est acoplado); Tendem a interagir mais com sensores e atuadores do que diretamente com seres-humanos; O microcontrolador/processador o componente central, que ir executar o software embarcado; Requisitos no-funcionais importantes: baixo consumo de energia, alta confiabilidade e alto desempenho; Costumam ser produzidos em grande escala (vendas na ordem de dezenas ou centenas de milhares de unidades), embarcados em um bem de consumo .

A Figura 1 apresenta uma ilustrao do contexto geral dos sistemas embarcados, utilizando-se de uma viso em camadas (anis). O anel externo representa o ambiente fsico ou equipamento a ser controlado, no qual variveis de ambiente (grandezas fsicas) normalmente so monitoradas e controladas (por exemplo: temperatura, presso, velocidade, umidade, luminosidade, torque, acelerao etc.).

2. Caracterizao de Sistemas Embarcados

Um atuador um dispositivo fsico que interfere com o ambiente ou com o objeto fsico controlado (exemplos: motor eltrico, vlvula pneumtica etc.).

Figura 1. Contexto geral de sistemas embarcados O anel intermedirio representa os sensores e atuadores, que so utilizados como ponte entre o ambiente fsico e o microcontrolador (uC). O anel interno representa o uC, componente central do sistema embarcado, responsvel pela execuo dos softwares de monitoramento e controle do sistema. A Figura 2 ilustra um uC tpico utilizado em desenvolvimento de sistemas embarcados de pequeno porte. O uC, diferentemente dos microprocessadores de finalidade geral, integram no mesmo chip, alm da CPU, perifricos que so muito utilizados no processamento de sinais analgicos e digitais. Perifricos que normalmente esto integrados no uC so: conversor A/D (analgico/digital), conversor D/A (digital/analgico), memrias ROM, RAM e EEPROM, relgio, temporizador etc.
Pinos do

uC
Cristal oscilador

Figura 2. Esquemtico de um C tpico [8]

3. TERASE: Template para Especificao de Requisitos de Ambiente em Sistemas Embarcados


O template proposto tem como finalidade geral oferecer uma contribuio para a melhoria da especificao de requisitos de sistemas embarcados. No entanto, o TERASE foi elaborado para auxiliar particularmente na especificao dos requisitos de ambiente em sistemas embarcados. Os requisitos de ambiente de um sistema embarcado envolvem dois

aspectos principais. (i) As variveis do ambiente fsico onde o sistema ir atuar (por exemplo: temperatura, presso, fora, velocidade, umidade etc.). O ambiente fsico pode ser um espao como uma sala fechada, o interior de uma caldeira, a superfcie de uma mquina etc. (ii) Os dispositivos fsicos que sero instalados no ambiente e interagiro com o software embarcado (direta ou indiretamente), exemplos desses dispositivos so sensores de temperatura, presso, fora etc., e os atuadores (motores eltricos, vlvulas pneumticas, inversores de freqncia etc.). Os requisitos de ambiente do sistema embarcado so requisitos nofuncionais da maior importncia, esses requisitos normalmente so definidos pelas equipes que projetam o hardware do sistema embarcado. As equipes de desenvolvimento de software embarcado recebem as especificaes de hardware, e precisam de informaes detalhadas sobre as variveis do ambiente e os dispositivos fsicos, que faro a captura e envio dos sinais controlados pelo sistema. TERASE funciona como um facilitador na comunicao entre as equipes de hardware e software. Os sistemas focalizados pelo TERASE so aqueles construdos com processamento baseado em microcontroladores. Portanto, aplica-se a sistemas embarcados voltados linha de eletrodomsticos e produtos de pequeno e mdio porte em que um ou mais microcontroladores so utilizados para a execuo do software. Sistemas embarcados microcontrolados possuem entradas e sadas (E/S) bem definidas, que so geradas por componentes eletrnicos, como sensores, teclados, memrias, relgios, botes, leds, displays e atuadores (entre outros). Os componentes de entrada enviam dados ou sinais de controle para o uC, e os componentes de sada recebem dados ou sinais de controle do uC. Uma especificao completa destes componentes, bem como as variveis de ambiente associadas a eles, essencial durante a especificao dos requisitos do sistema embarcado. Tambm essencial a especificao cuidadosa do relacionamento entre os componentes de E/S e o uC adotado. Uma especificao completa dos requisitos que compem o ambiente fsico ou a planta de um sistema embarcado deve incluir:

Variveis do Ambiente/Planta; Dispositivos de Entrada; Dispositivos de Sada; Microcontrolador.

Para cada um destes itens foi elaborado um carto de especificao de requisitos. Os cartes orientam e facilitam o registro das informaes, assegurando que

os requisitos no-funcionais relacionados ao ambiente do sistema embarcado sero elicitados e especificados. Para cada campo-conceito do carto, foi oferecida uma explicao de seu significado, com o intuito de facilitar o preenchimento dos cartes (apresentada a seguir).

3.1 Variveis do Ambiente/Planta


Os cartes de especificao devem manter um registro detalhado dos requisitos de ambiente do sistema embarcado a ser desenvolvido. A Figura 3 apresenta o carto de especificao para as variveis de ambiente/planta do sistema embarcado. Cada varivel de ambiente deve ser completamente especificada utilizando-se o carto proposto. Toda varivel de ambiente deve estar associada a um dispositivo fsico (ex: um sensor).

Medio direta: um valor obtido diretamente do ambiente, por meio de algum dispositivo (sensor, boto etc.) que possibilite a comunicao com o microcontrolador; o Equao: um valor obtido indiretamente, que ser resultado de alguma operao matemtica; todas as variveis independentes da equao devem ser especificadas; Dispositivo fsico associado: nome do dispositivo fsico que possibilita a interface da varivel do ambiente com o microcontrolador. o

3.2 Dispositivos de Entrada e Sada (E/S)


Para a especificao dos requisitos dos dispositivos de E/S foi criado um carto nico, que cobre os principais aspectos da especificao desses dispositivos. Dispositivos de entrada normalmente incluem teclado, sensor, boto, memria, relgio, calendrio, entre outros. Dispositivos de sada normalmente incluem memria, leds, displays, atuadores entre outros dispositivos. O mesmo carto pode ser usado para detalhar um dispositivo de entrada e de sada (eventualmente um mesmo dispositivo pode ser de entrada e sada, ex: uma memria EEPROM). A Figura 4 apresenta o carto de especificao de dispositivo de E/S.

Figura 3. Carto de especificao para varivel de ambiente/planta Os campos que compem o carto para a especificao das variveis do ambiente/planta so: Identificador: um rtulo numrico ou mnemnico que identifica a varivel de forma nica dentro do ambiente de sistema embarcado; Nome da Varivel: um nome que tenha um significado reconhecvel pelos stakeholders dentro do ambiente do sistema embarcado; Tipo (E/S): uma identificao se a varivel ser tratada como uma entrada (E) para o microcontrolador, ou uma sada (S) resultante do processamento efetuado pelo microcontrolador; Tipo (D/A): uma identificao se a varivel do tipo digital ou analgica; Conceito: uma explicao conceitual sobre a varivel do ambiente/planta; Unidade: unidade de medida adotada para significar a varivel, acompanhada de sua simbologia mais conhecida; Domnio: faixa de valores permitida, com os limites mnimo e mximo aceitos pelo sistema; Forma de Obteno

Figura 4. Carto de especificao para dispositivo de entrada/sada Cada dispositivo de E/S deve ser especificado em um carto. Os campos que compem o carto so: Identificador: um rtulo numrico ou mnemnico que identifica o dispositivo de E/S de forma nica dentro do ambiente de sistema embarcado; Nome do dispositivo: uma especificao do modelo e fabricante do dispositivo;

Varivel de E/S associada: nome da varivel do ambiente/planta associada ao dispositivo de E/S; Finalidade: uma especificao do papel deste dispositivo no contexto do sistema embarcado; Tipo de sinal o Analgico: especificao do tipo de sinal eltrico utilizado (tenso, corrente ou resistncia) e a faixa de valores suportada pelo dispositivo; o Digital: especificao do nmero de bits fornecido pelo dispositivo; Forma de comunicao com o microcontrolador: especificao do protocolo de comunicao suportado (I2C, Serial, Paralelo, CAN etc.); Pino do microcontrolador associado: especificao do pino do microcontrolador que receber os valores de E/S do dispositivo; Taxa de aquisio: quantidade de aquisies (leituras) feitas dentro de um intervalo de tempo; Resoluo: a sensibilidade do dispositivo, deve indicar a menor variao de intensidade da grandeza medida que pode ser detectada pelo dispositivo; Proteo: uma descrio das condies que oferea uma proteo eltrica para os dispositivos envolvidos; Offset: o limite mximo permitido para o desvio do valor de sada do dispositivo, deve ser descrito em valor percentual, especificar os limites acima e abaixo da curva ideal; Histerese: especificao da funo que modela a histerese do dispositivo.

(por exemplo: mquinas industriais, veculos etc.). A Figura 5 apresenta o carto de especificao para o uC. Os campos que compem o carto de especificao dos requisitos do uC esto explicados seguir. Identificador: um rtulo numrico ou mnemnico que identifica o microcontrolador de forma nica dentro do ambiente de sistema embarcado; Nome do dispositivo: uma especificao do modelo e fabricante do dispositivo; Freqncia de clock: indicao da freqncia de relgio em que o microcontrolador dever operar; Formas de comunicao: descrio das possveis formas de comunicao suportada pelo microcontrolador (I2C, SPI, Serial, Paralela, CAN etc.); Memria de programa: quantidade de memria de programa suportada pelo microcontrolador; Memria de dados: quantidade de memria de dados suportada pelo microcontrolador; Conversor A/D: especificao da taxa de aquisio e tamanho da palavra de dados: Conversor D/A: especificao da taxa de aquisio e tamanho da palavra de dados; Associao pino/dispositivo/varivel: uma especificao do pino do microcontrolador usado, indicando o dispositivo e a varivel de ambiente/planta associados ao pino; ao indicar o dispositivo fsico associado ao pino do microcontrolador, deve-se considerar a necessidade de algum mecanismo extra para garantir a segurana do microcontrolador.

As variveis de ambiente e dispositivos fsicos esto vinculadas pelos campos dispositivo fsico associado e varivel associada, nos cartes de varivel de ambiente e dispositivos fsicos, respectivamente.

3.3 Microcontrolador
Devido a importncia da especificao do microcontrolador para sistemas embarcados, um carto foi criado especialmente para este dispositivo. Em sistemas de pequeno porte normalmente os engenheiros utilizam apenas um nico uC. caso de sistemas embarcados que vem embutido em eletrodomsticos. Porm, sistemas maiores podem exigir vrios uCs, neste caso cada uC deve ser especificado em um carto

Figura 5. Carto de especificao para microcontrolador

O quadro de associaes do carto pode ser estendido para quantos pinos forem necessrios. Este quadro fundamental, pois nele que sero identificados os pinos do uC que devero ser utilizados, e esta informao posteriormente ser essencial para os programadores do software embarcado.

organizao que atua na rea de eletrnica e automao industrial da regio de Campinas (SP, Brasil). A especificao tcnica do datalogger est descrita a seguir: Tipo de Display ............. : LCD (1 linha x16 colunas) Sensor de Temperatura . : LM35 Faixa de Temperatura ... : + 2 C a +50 C Resoluo ...................... : 1 C Intervalo de Aquisio .. : 1 a 120 min. Alimentao .................. : 1 Bateria Alcalina 9V Comunicao ................ : RS232 Status Luminoso (leds) .. : Aquisitando/Falha Microcontrolador .......... : PIC16F628 O objetivo deste experimento foi colocar em prtica o template proposto para especificao de requisitos de ambiente de sistemas embarcados, proporcionando, a partir desta experincia, uma primeira avaliao do template. Os resultados do experimento iro apontar possveis ajustes e melhorias a serem promovidas no template. Durante o experimento buscou-se analisar trs caractersticas do template (que foram as variveis dependentes observadas durante o experimento): Adequao da abrangncia: verificao se as variveis tcnicas contempladas no template cobriam os principais componentes que constituem o ambiente fsico (hardware) de um sistema embarcado; Facilidade de uso: verificao se as explicaes fornecidas para o preenchimento dos cartes, bem como o lay-out dos mesmos, eram fceis de compreender e utilizar; Utilidade prtica: verificao do quo til o template se apresentou para o engenheiro de sistema embarcado, aferindo-se o quanto a especificao dos requisitos do ambiente ficou bem documentada utilizando-se o template.

4. O Experimento Realizado
Nesta seo apresentado um relato do experimento realizado para avaliar o template proposto. Neste relato destaca-se o contexto em que o experimento ocorreu, os participantes envolvidos, os materiais e o tratamento experimental adotado.

4.1

Contexto

Neste experimento foi escolhido um sistema embarcado para ter seus requisitos de ambiente especificados, usando-se o template proposto. O sistema em questo foi um datalogger, que realiza de forma autnoma a coleta e armazenamento de leituras de temperatura em um ambiente. As leituras de temperatura ocorrem dentro de um perodo de tempo pr-determinado pelo usurio, por exemplo a cada 30 segundos. As leituras ficam armazenadas em uma memria EEPROM, e depois podem ser transferidas para um computador convencional.

As hipteses investigadas no experimento foram assim definidas: (a) O template proposto tem abrangncia adequada para a especificao dos requistos de ambiente de sistemas embarcados; (b) O template proposto fcil de utilizar por engenheiro de sistemas embarcados; (c) O template proposto tem utilidade prtica para a especificao de requistos de ambiente em sistemas embarcados.

Figura 6. Fotografia do datalogger especificado no experimento O experimento foi realizado em maio de 2009, classificando-se como um estudo na modalidade invitro [7], pois o mesmo foi executado de forma controlada, por um profissional selecionado de uma

4.2

Participante

no tiveram nenhum tipo de interao com o engenheiro durante uso e aplicao do template. Etapa II: especificao dos requisitos do ambiente do sistema datalogger utilizando-se o template proposto. Nesta etapa o engenheiro utilizou os cartes de especificao do template, de acordo com o entendimento que obteve advindo do descritivo dos itens do template e da compreenso que obteve analisando os cartes de especificao. Foram preenchidos quinze (15) cartes de especificao no total, dois (2) foram para variveis de ambiente, doze (12) para dispositivos fsicos e um (1) para o microcontrolador (vide Figura 7, 8 e 9). Etapa III: avaliao do template, realizada pelo engenheiro de sistema embarcado participante do experimento. Quando o engenheiro participante recebeu o template de especificao de requisitos, conjuntamente foi enviado um questionrio de avaliao, que deveria ser respondido pelo engenheiro logo aps o trmino da etapa de especificao. O engenheiro respondeu o questionrio e o enviou para os proponentes do template. Cabe ressaltar que o questionrio foi respondido sem a presena dos proponentes do template, dando maior liberdade para o respondente. Os resultados do questionrio so comentados na seo 5. Depois que o engenheiro entregou o questionrio para os proponentes do template, estes interagiram diretamente com o engenheiro, colhendo outras percepes que o engenheiro teve sobre o template durante o experimento realizado. As Figuras 7, 8 e 9 apresentam alguns cartes de especificao de requisitos de ambiente, preenchidos pelo engenheiro de sistema embarcado que participou do experimento. A Figura 7 ilustra a especificao da varivel de ambiente temperatura.

Neste experimento participou um engenheiro de controle e automao, com sete (7) anos de experincia em manuteno de inversores de freqncia e equipamentos industriais com eletrnica embarcada, com atuao em diversas indstrias de mdio e grande porte do territrio nacional. O engenheiro participante tinha bons conhecimentos e experincia em especificao de hardware, e estava iniciando projetos de equipamentos eletrnicos baseados em microcontroladores. O participante havia recentemente (um ms antes do experimento) terminado de projetar e implementar um datalogger para leitura e armazenamento de temperatura ambiente, com perspectivas, no mdio prazo, de lan-lo como produto no mercado brasileiro.

4.3

Materiais

Os materiais utilizados para realizao do estudo experimental foram: Carto de especificao de variveis de ambiente/planta; Carto de especificao de dispositivos de E/S; Carto de especificao do uC; Texto de apoio explicando os campos previstos nos cartes (conforme apresentado na seo 3); Questionrio de avaliao do template.

4.4

Tratamento Experimental

O experimento foi conduzido executando-se trs etapas: (I) apresentao do template para o engenheiro de sistema embarcado; (II) especificao dos requisitos de ambiente do sistema datalogger, em que o engenheiro utilizou-se do template proposto; (III) avaliao do template, realizada pelo engenheiro de sistema embarcado participante do experimento. A execuo de cada uma das etapas comentada a seguir. Etapa I: apresentao do template para o engenheiro de sistema embarcado. Nesta etapa foi oferecida uma rpida explicao para o engenheiro sobre o template, explicando-se sua finalidade e apresentando os modelos de cartes de especificao. Foi solicitado ao engenheiro que fizesse uma leitura do descritivo de cada item do template (que acompanhava os cartes), e que depois ele utilizasse os cartes de especificao para documentar os requisitos de ambiente do datalogger. Os proponentes do template

Figura 7. Carto de especificao de varivel de ambiente preenchido pelo engenheiro de sistema embarcado

Na Figura 8, o carto de especificao de requisitos apresenta um dispositivo de entrada do sistema embarcado, que um sensor de temperatura identificado como LM35D. No campo pino do microcontrolador informado que o pino AN0 (que o pino 2 do microcontrolador) ser usado para receber o valor analgico das temperaturas capturadas pelo sensor. Isto indicar para o programador do software embarcado, que este o pino que ele dever referenciar no programa para tratar a temperatura lida pelo sensor. No campo tipo do sinal foi informado que este dispositivo receber um sinal analgico, correspondente a um valor de tenso eltrica.

ambiente vinculadas, ficaram registradas no carto. Essas informaes formam um conjunto de requisitos no-funcionais do sistema embarcado, fundamental para os projetistas e programadores do software.

Figura 8. Carto de especificao de dispositivo de E/S preenchido pelo engenheiro de sistema embarcado A Figura 9 apresenta o carto de especificao de requisitos do microcontrolador adotado para o datalogger. O microcontrolador adotado foi da famlia PIC, modelo PIC16F877A (fabricado pela Microchip Technology Inc.), com freqncia de clock de 4 MHz, conversor A/D de 10 bits ( o tamanho da palavra de dados que o conversor disponibilizar na memria do microcontrolador), este um dado importante para o programador do software embarcado. O carto tambm apresenta as formas de comunicao previstas que o microcontrolador utilizar no sistema embarcado (neste caso, I2C e SPI para comunicao com a memria EEPROM, e RS232 para comunicao serial com um computador externo ao datalogger). Tambm foi informado que estava previsto o uso da interrupo de tempo TMR0 (timer zero), para controlar de forma precisa a taxa de aquisio das leituras de temperaturas. O quadro de associaes apresentado na Figura 9 mostra a riqueza de informaes que o carto possibilitou registrar. Todas as associaes do microcontrolador, indicando os pinos usados, a ligao destes com os dispositivos de E/S e as variveis de Figura 9. Carto de especificao do microcontrolador preenchido pelo engenheiro de sistema embarcado

5 Discusso dos Resultados


Os resultados do experimento foram analisados a partir de dois pontos de vistas. O primeiro ponto de vista foi o do engenheiro de sistema embarcado que participou do experimento, e respondeu ao questionrio de avaliao que lhe foi passado. O questionrio consistia de sete (7) perguntas simples e diretas sobre a experincia de uso do template (vide Quadro 1). O segundo ponto de vista foi o dos proponentes do template, que fizeram uma anlise detalhada dos cartes de especificao preenchidos pelo engenheiro de sistema embarcado.

5.1 Anlise dos Resultados do Experimento


Do ponto de vista do engenheiro evidenciou-se uma avaliao positiva quanto ao uso do template. Pelas

respostas do questionrio de avaliao, ficou claro que o usurio do template considerou o mesmo com boa cobertura tcnica, fcil de usar e muito til como instrumento de especificao de requisitos de ambiente (vide Quadro 1). No entanto, do ponto de vista dos proponentes do template, uma srie de consideraes sobre ajustes e melhorias foram apontadas. Dividiremos esta discusso em duas partes, s quais denominaremos: evidncias positivas quanto ao uso do template; e evidncias negativas quanto ao uso do template. Evidncias Positivas quanto ao Uso do Template (pontos fortes): O template demonstrou-se de fcil utilizao, o experimento evidenciou que todos os modelos de ficha de especificao foram utilizados sem dificuldades; A abrangncia do template demonstrou-se suficiente, pois no experimento no houve registro de ausncia de item relevante no template; A estrutura proposta para o template, dividindo-o em trs cartes de especificao (variveis de ambiente, dispositivos de entrada/sada, e microcontrolador), se mostrou adequada, pois no experimento no houve registro de inconvenincia, ausncia ou confuso quanto ao uso dos cartes propostos; O relacionamento entre as fichas de especificao (varivel -> dispositvo de E/S -> Microcontrolador) se mostrou adequado, pois todos os campos que estabeleciam relacionamentos entre os cartes foram preenchidos adequadamente pelo engenheiro de sistemas embarcados; ademais no houve registro de confuso ou mal-entendido quanto ao uso desses campos de relacionamentos. Quadro 1 Resultado do questionrio respondido pelo engenheiro de sistema embarcado

Evidncias Negativas quanto ao Uso do Template (pontos fracos, que merecem ajustes futuros): O datalogger que foi utilizado como sistema embarcado, e teve os requisitos de ambientes especificados, apresentava 8 variveis de ambiente (uma varivel analgica [temperatura] e sete variveis binrias [5 botes de comandos, e 2 leds indicadores de estado]), no entanto o engenheiro considerou como varivel de ambiente apenas a temperatura; Recomendao: verificar o texto explicativo do template, e explicitar a necessidade da especificao das variveis binrias (digitais) do ambiente. O projetista tratou a temperatura como sendo duas variveis diferentes, uma para a aquisio da temperatura (varivel de entrada) e outra para o envio a um computador externo, via porta serial RS232 (varivel de sada), sendo que de fato a temperatura era apenas uma nica varivel de ambiente (varivel de entrada); aparentemente houve confuso entre varivel de ambiente e dispositivo de entrada ou sada; Recomendao: explicitar no texto explicativo do template que o conceito de varivel de ambiente independe dos dispositivos de entrada ou sada; explicitar que uma mesma varivel pode, eventualmente, estar associada a um dispositivo de entrada e de sada. No preenchimento dos cartes de especificao dos dispositivos de entrada e sada, alguns campos no foram preenchidos pelo engenheiro; Recomendao: diferenciar e indicar quais so os campos opcionais e obrigatrios do template. No preenchimento das fichas de especificao dos dispositivos de entrada e sada, para alguns dispositivos a comunicao utilizada foi do tipo paralela, que no estava prevista no campo formas de comunicao com o microcontrolador; Recomendao: adicionar o tipo paralela como uma das formas de comunicao previstas com o microcontrolador. No preenchimento das fichas de especificao dos dispositivos de entrada ou sada, h um campo para indicar o pino do microcontrolador ao qual o dispositivo associa-se, porm para alguns dispositivos mais de um pino estavam associados (exemplo: display LCD, memria EEPROM, RTC e porta serial); Recomendao: prever no texto explicativo do template e nos cartes de especificao, que mais de um pino do

microcontrolador pode estar dispositivo de entrada e sada.

associado

ao

Em alguns dispositivos de entrada e sada, houve confuso quanto a indicao da varivel de ambiente associada (por exemplo display LCD, memria EEPROM); essa confuso est associada ao fato de que alguns dispositivos, como os exemplificados, podem no ter uma nica varivel de ambiente associada; Recomendao: explicitar no texto explicativo do template que um dispositivo de entrada ou sada pode ter mais que uma varivel de ambiente associada; o conjunto de variveis deve ser obrigatoriamente indicado no campo varivel associada. Sobre a especificao dos botes presentes na interface com o usurio, que estariam associados s variveis de entrada, no campo varivel associada o engenheiro anotou I/O (isto ocorreu para todos os botes); no campo nome do dispositivo o engenheiro tratou cada boto como sendo teclado; Recomendao: explicitar no texto explicativo do template que no campo varivel associada do carto de especificao de dispositivos de entrada ou sada, deve-se anotar o identificador correspondente utilizado no carto de especificao de varivel do ambiente; disponibilizar no carto de especificao de dispositivos de entrada ou sada os tipos de dispositivos de E/S mais utilizados em sistemas embarcados; Sobre a especificao dos LEDs presentes na interface com o usurio, que estariam associados s variveis de sada, no campo varivel associada o engenheiro anotou I/O (isto ocorreu para todos os LEDs); no campo nome do dispositivo o engenheiro tratou cada LED como sendo um status; Recomendao: idem anterior. O engenheiro, por iniciativa prpria, apresentou a lista de relacionamentos Pino do microcontrolador - Dispositivos de E/S Varivel em ordem crescente pelo nmero do pino do microcontrolador, e ao lado do nmero anotou o mnemmico correspondente (de acordo com o datasheet do microcontrolador, por exemplo: RB2, RD1, AN0 etc.); Recomendao: explicitar no texto explicativo do template, que na ficha de especificao do microcontrolador, os relacionamentos envolvendo Pino Disposisito Varivel devem ser apresentados em ordem crescente pelo nmero dos pinos (pois isto facilita encontrar um relacionamento de um pino do microcontrolador especificado no carto); explicitar

a necessidade de identificar os pinos do microcontrolador pelo nmero e pelo mnemmico indicado no datasheet.

5.2 Integrao do TERASE com outros Templates


TERASE focaliza um aspecto especfico do domnio de sistemas embarcados, que so os requisitos de ambiente fsico do sistema. Templates como o VOLERE e o IEEE STD 830-1998 indicam a necessidade da captura de vrios requisitos nofuncionais, entre eles os requisitos operacionais e ambientais do sistema, e as caractersticas fsicas do produto [2][6]. No entanto, esses templates no instrumentalizam o engenheiro de requisitos com modelos especficos para a captura desses requisitos no-funcionais (e de fato este no o propsito desses templates). Assim, TERASE pode ser utilizado como um instrumento particular para a especificao de requisitos de ambiente em sistemas embarcados, dentro da estrutura geral oferecida, por exemplo, pelo template Volere.

Template Volere (edio 14)


1. Finalidade do Projeto 2. Stakeholders . .

Requisitos No-Funcionais
13 Requisitos Operacionais e Ambientais

T E R A S E . . 27. Idias para Solues Figura 10. Integrao do TERASE com o template

Volere
A Figura 10 ilustra em que seo do template Volere o TERASE pode ser agregado, integrando-se a um template genrico e oferecendo os recursos apropriados para a especificao dos requisitos ambientais de sistemas embarcados. Dessa forma, engenheiros de sistemas embarcados contaro com um instrumento mais adequado para produzir uma especificao de requisitos mais completa de seus sistemas. TERASE pode facilmente ser integrado a templates de finalidade geral, enriquecendo-os na seo que trata dos requisitos no-funcionais.

5.3 Conformidade do TERASE em Relao Recomendao IEEE Std 830-1998


O IEEE Std 830-1998 um documento que apresenta um conjunto de recomendaes para a criao e manuteno de uma boa especificao de requisitos de software. De acordo com as recomendaes do IEEE Std 830-1998, uma boa especificao de requisitos de software deve ser: Correta; No-ambgua; Completa; Consistente; Classificada por importncia; Verificvel; Modificvel; Rastrevel.

A proposta de TERASE ser um template para especificao de requisitos de ambiente em sistemas embarcados, mas que deve ser utilizado em conjunto com outros templates de especificao de requisitos. TERASE no enderea a especificao de requisitos funcionais, mas sim requisitos no-funcionais para sistemas embarcados, particularmente os requisitos do ambiente fsico do sistema (constitudo por sensores, atuadores, componentes de interface com o usurio, e a interface destes componentes com o microcontrolador do sistema). Assim, TERASE auxilia na criao de uma boa especificao de requisitos de sistemas embarcados, contribuindo principalmente em relao aos atributos no-ambigidade, completitude, consistncia, verificao e rastreabilidade. TERASE auxilia para que a especificao torne-se no-ambgua na medida em que fora uma especificao detalhada dos componentes fsicos do sistema (principalmente quanto especificao das caractersticas tcnicas dos componentes). Auxilia na completitude, pois leva o especificador a identificar todas as variveis de ambiente do sistema, bem como todos os componentes de entrada, sada e processamento do sistema embarcado (e suas interfaces de comunicao). Contribui para aumentar a consistncia interna da especificao de requisitos, pois os cartes de especificao exigem um alto nvel de detalhamento das informaes, fazendo com que possveis conflitos de especificao tornem-se extremamente reduzidos. TERASE ainda contribui para tornar a especificao de requisitos verificvel. O carter quantitativo exigido

em alguns campos dos cartes de especificao, como resoluo, taxa de aquisio, offset e histerese, contribuem de forma significativa para a verificao do atendimento dos requisitos relacionados aos componentes de entrada e sada do sistema embarcado. TERASE tambm contribui para um tipo especial de rastreabilidade, caracterstico em sistemas embarcados, que o rastreio das variveis de ambiente do sistema at os pinos de IO do microcontrolador, passando pelos componentes intermedirios do sistema (por exemplo: sensores, botes, memrias, atuadores etc.). Os cartes de especificao possuem campos que garantem este tipo especial de rastreabilidade. importante lembrar que em sistemas embarcados os clientes de um produto, na maioria das vezes, so engenheiros ou tcnicos que conhecem bem as caractersticas tcnicas das variveis envolvidas no sistema, e que utilizam um linguajar tcnico para informar os requisitos do sistema, por exemplo: resoluo e taxa de aquisio de um sensor; caractersticas de consumo de energia de um dispositivo display; caractersticas de sinais eltricos de um motor (tenso, corrente e resistncia) etc. TERASE foi concebido levando-se em conta este perfil tcnico dos stakeholders em sistemas embarcados.

6. Concluso
Uma das grandes dificuldades enfrentadas atualmente no desenvolvimento de sistemas embarcados, est relacionada a problemas de comunicao entre as equipes de hardware e software envolvidas na construo de tais sistemas [1][3]. Os engenheiros de software precisam receber uma especificao precisa do ambiente fsico no qual o software embarcado ser implantado. Essa especificao feita pelos engenheiros de hardware. Se houver falha no processo de comunicao entre as equipes de hardware e software, certamente isto trar impactos no cronograma e no custo final de desenvolvimento do sistema embarcado. TERASE um instrumento que pode facilitar a especificao de requisitos de ambiente em sistemas embarcados, e contribuir para tornar mais confivel a comunicao entre as equipes de hardware e software alocadas no desenvolvimento de sistemas embarcados. Embora existam alguns templates de especificao de requisitos bem definidos que auxiliam as equipes de desenvolvimento na documentao dos requisitos do sistema, por exemplo, os templates sugeridos em IEEE STD 830-1998 e o template Volere, esses templates so muito genricos e no atendem adequadamente as

especificidades das equipes que desenvolvem sistemas embarcados. Neste artigo apresentamos o template TERASE, que uma proposta para atender as necessidades dos engenheiros de sistemas embarcados no que se refere especificao dos requisitos do ambiente fsico (hardware) do sistema embarcado. Este template integra-se facilmente aos templates de finalidade geral. O experimento reportado neste artigo apresentou resultados promissores sobre o template de especificao de requisitos proposto. As hipteses investigadas foram confirmadas pelo engenheiro de sistema embarcado participante do experimento, embora a equipe proponente do template tenha identificado uma srie de ajustes que precisam ser promovidos no mesmo. O experimento na modalidade in-vitro demonstrou-se adequado para o tipo de aplicao e avaliao desejadas, devendo ser mantido para os prximos estudos empricos a serem realizados. Os resultados obtidos com o experimento realizado apresentam indcios dos benefcios que os engenheiros de sistemas embarcados podem conseguir adotando um template de especificao de requisitos aderente s particularidades dos sistemas embarcados. Os resultados positivos oriundos desse experimento tm estimulado o grupo de pesquisa responsvel pelo TERASE a revisar e expandir o mesmo. O template apresentado est sendo expandido para cobrir tambm os requisitos de rede de comunicao em sistemas embarcados distribudos, caractersticos da rea de sistemas embarcados automotivos [9][11], que um nicho de mercado com forte demanda de desenvolvimento de software embarcado. TERASE apresenta indcios de que pode oferecer uma contribuio importante para a etapa de especificao de requisitos em sistemas embarcados. Com isso, diminuir a escassez de recursos especficos da Engenharia de Requisitos voltados para esse tipo de sistemas.

[4] Noergaard, T. Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers, Elsevier, 2005. [5] Oliveira, A. S. e Andrade, F. S. Sistemas Embarcados: Hardware e Firmware na Prtica, Editora rica, 2006. [6] Robertson, J. and Robertson, S. Volere Requirements Specification Template, Edition 14, January/2009. Disponvel em http://www.volere.co.uk. [7] Travassos, G.H. and Barros, M.O. Contributions of In Virtuo and In Silico Experiments for the Future of Empirical Studies in Software Engineering, Workshop Series on Empirical Software Engineering, WSESE, ESERNET, 2003. [8] Corteletti, D. Introduo Programao de Microcontroladores Microchip PIC, Dossi Tcnico, SENAI-RS, Centro Tecnolgico de Mecatrnica, 2006. [9] Weber M. and Weisbrod, J. Requirements Engineering in Automotive Development: Experiences and Challenges. IEEE Software, January/February 2003. p.16-24. [10] Broy, M. Requirements Engineering for Embedded Systems, (FEmSys97) Workshop on Formal Design of Safety Critical Embedded Systems, Germany, 1997. [11] Pretschner, A.; Broy, M.; Krger, I. H. and Stauner, T. Software Engineering for Automotive Systems: A Roadmap. Proceedings of the Future of Software Engineering (FOSE07), IEEE Computer Society, 2007.

7. Referncias
[1] Graaf, B.; Lormans, M. and Toetenel, H. Embedded Software Engineering: The State of the Practice, IEEE Software, 2003. [2] IEEE Std 830-1998 IEEE Recommended Practice for Software Requirements Specifications, IEEE Computer Society, 1998. [3] Liggesmeyer, P. and Trapp, M. Trends in Embedded Software Engineering, IEEE Software, May/June 2009. pp. 19 25.

Vous aimerez peut-être aussi