APLICAO DA ABORDAGEM GQM PARA A DEFINIO DE UM PROCESSO DE ENGENHARIA DE REQUISITOS DE SOFTWARE EMBARCADO PROGRAMA DE PS-GRADUAO LATO SENSU ENGENHARIA DE SOFTWARE APLICAO DA ABORDAGEM GQM PARA A DEFINIO DE UM PROCESSO DE ENGENHARIA DE REQUISITOS DE SOFTWARE EMBARCADO Autores: Daniele Erica Damke Patrcia Freitas de Moraes Orientadora: Prof MSc. Claudia de Oliveira Melo 2008 DANIELE ERICA DAMKE PATRCIA FREITAS DE MORAES
Trabalho apresentado ao Programa de Ps- Graduao Latu Sensu em Engenharia de Software da Universidade Catlica de Braslia, como requisito para obteno do Ttulo de Especialista em Engenharia de Software. Orientadora: MSc. Claudia de Oliveira Melo.
BRASLIA 2008
Este trabalho dedicado a todas as pessoas que nos acompanharam na elaborao deste trabalho contribuindo para seu xito.
AGRADECIMENTOS
Agradecemos s empresas participantes da pesquisa e ao Prof Dr. Joo Alberto Fabro pela colaborao e apoio na pesquisa.
nossa orientadora Prof MSc. Claudia de Oliveira Melo e a todos os professores que nos orientaram nessa jornada.
Aos nossos amigos que incentivaram nossa caminhada.
Aos nossos companheiros pela compreenso dos momentos de ausncia durante a elaborao do trabalho.
A nossa famlia pelo incentivo e pelo crdito depositado em ns.
A todos que de alguma forma colaboram com as pesquisas e com o crescimento de um mercado de software de maior qualidade.
A Deus por sempre nos direcionar e iluminar, permitindo a concluso deste projeto.
Tudo d certo no final. Se no deu certo porque ainda no chegou o fim. RESUMO
O mercado de software embarcado vem crescendo exponencialmente nos ltimos anos. Apesar disso, o desenvolvimento deste tipo de software ainda uma rea que merece ateno dos pesquisadores devido a sua complexidade e a falta de tcnicas e ferramentas especficas para esse domnio de sistemas. Aliada a todas as dificuldades do desenvolvimento de sistemas embarcados o mercado nacional de desenvolvimento desse segmento de software composto em sua maioria por Micro e Pequenas Empresas (MPEs). O que de certa forma agrava o problema devido fato desse tipo de empresas possuir pouca informalidade em seus processos. Este trabalho realizou uma avaliao do processo de desenvolvimento de micro e pequenas empresas desenvolvedoras de software embarcado com o objetivo de definir um processo de engenharia de requisitos para sistemas embarcados.
Palavras-chave: Sistemas Embarcados, Micro e Pequenas Empresas, Processo de Requisitos. LISTA DE ILUSTRAES Figura 1 - Onde esto os processadores? (Tennenhouse 2000) ............................................... 19 Figura 2 Modelo de Processo ISO/IEC 12207 (Calsalvara, et al. 2000).................................. 31 Figura 3 - Inter-relao entre os elementos de um modelo de processo de software (Weber 2002) ................................................................................................................................... 33 Figura 4 - Grfico das Baleias do RUP (Kruchten 2003)............................................................ 37 Figura 5 - Grfico das Baleias do IPProcess (Barros, Bione, et al. 2005) .................................. 39 Figura 6 - Grfico Y do Modelo UPES ....................................................................................... 41 Figura 7 - Causas de Retrabalho (Gastaldo 2003)..................................................................... 43 Figura 8 Classificao de Requisitos No-Funcionais (Sommerville 1998)............................. 46 Figura 9 - Balanceamento da Equipe de ER (Hofmann 2001) ................................................... 50 Figura 10 - Fluxo de Trabalho da Disciplina de Requisitos (RUP 2001)..................................... 52 Figura 11 - Decomposio do processo de desenvolvimento de sistemas embarcados (Graaf 2003) ................................................................................................................................... 59 Figura 12 - Processo de Especificao de Requisitos (Lattemann 1997) .................................. 60 Figura 13 - Interao indireta entre o piloto e um caso de uso do TRCS (Nars 2002) ............... 61 Figura 14 - Os principais construtores da tcnica de caso de uso (Nars 2002).......................... 63 Figura 15 - Interao indireta entre o piloto e um caso de uso do TRCS (Nars 2002) ............... 64 Figura 16 - Envolvidos do desenvolvimento de sistemas embarcados (Graaf 2003) ................. 64 Figura 17 - Fases da Abordagem GQM (Berghout e Solligen 1999) ......................................... 70 Figura 18 Modelo de Avaliao GQM (Laboratory s.d.) .......................................................... 74 Figura 19 - Relao entre os Elementos do Modelo GQM......................................................... 96 Figura 20 - Tela Inicial do ProReqSE....................................................................................... 106 Figura 21 Fluxo da Atividade Definir Viso ........................................................................... 109 Figura 22 Fluxo da Atividade Encontrar e Resumir Requisitos ............................................. 113 Figura 23 Fluxo da Atividade Detalhar Requisitos ................................................................ 115 Figura 24 Fluxo da Atividade Revisar Requisitos................................................................. 117 LISTA DE TABELAS Tabela 1 - Componentes do SPEM........................................................................................... 32 Tabela 2 - Comparativo das Caractersticas de ER em Processos de....................................... 42 Tabela 3 - Melhores Prticas da ER (Hofmann 2001)................................................................ 48 Tabela 4 Definio das palavras-chave da linguagem de especificao PLanguage (Gastaldo 2003) ................................................................................................................................... 55 Tabela 5 Questes de Definio dos Objetivos da Medio (Laboratory s.d.) ........................ 72 Tabela 6 - Abstract Sheets (Berghout e Solligen 1999) ............................................................. 73 Tabela 7 - Questes Iniciais da Fase de Planejamento............................................................. 78 Tabela 8 - Equipe GQM............................................................................................................. 78 Tabela 9 Modelo de Definio dos Objetivos da Medio (Laboratory s.d.)............................ 80 Tabela 10 - Objetivo do Negcio ............................................................................................... 80 Tabela 11 - Pontos de Verificao............................................................................................. 81 Tabela 12 - Contextualizao da Empresa................................................................................ 83 Tabela 13 - Contextualizao do Software ................................................................................ 84 Tabela 14 - Contextualizao da Equipe de Requisitos............................................................. 85 Tabela 15 - Entendimento dos Requisitos Funcionais e No-Funcionais................................... 87 Tabela 16 Identificao e Registro das Necessidades, Expectativas e Restries do Cliente 89 Tabela 17 - Modo de Especificao dos Requisitos................................................................... 91 Tabela 18 Definio e Manuteno dos Requisitos Funcionais e No Funcionais............... 91 Tabela 19 - Rastreabilidade dos Requisitos............................................................................... 92 Tabela 20 Anlise dos Requisitos........................................................................................... 93 Tabela 21 Reviso dos Planos e Produtos de Trabalho ......................................................... 94 Tabela 22 - Identificao das Interfaces do Sistema.................................................................. 95 Tabela 23 - ndices dos Pontos de Verificao.......................................................................... 99 Tabela 24 - Comparativo das Caractersticas de ER em Processos de................................... 120
LISTA DE ABREVIAES CI Circuitos Integrados DBL Desenvolvimento Baseado em Componentes EPF Eclipse Process Framework Composer ER Engenharia de Requisitos EUA Estados Unidos da Amrica GQM Goal /Question / Metric Intel Corp. Intel Corporation IpProcess Processo de Desenvolvimento de Soft-Ip ISO/IEC International Organization for Standardization / International Electrotechnical Commission JAD Joint Application Development/Design MDA Model Driven Architecture MPE Micro e Pequena Empresa MPS.BR Programa de Melhoria de Software Brasileiro NASA National Aeronautics and Space Administration OMG Object Management Group PLanguage Planning Language PU Processo Unificado RUP Rational Unified Process RUPSE Rational Unified Process for Sytem Engineering SE Sistemas Embarcados SPEM Software Process Engineering Metamodel UC Caso de Uso UML Unified Model Language UPES Unified Process for Embedded System SUMRIO AGRADECIMENTOS .................................................................................................................. 4 RESUMO..................................................................................................................................... 6 LISTA DE ILUSTRAES .......................................................................................................... 7 LISTA DE TABELAS ................................................................................................................... 8 LISTA DE TABELAS ................................................................................................................... 8 LISTA DE ABREVIAES.......................................................................................................... 9 SUMRIO.................................................................................................................................. 10 1. INTRODUO ...................................................................................................................... 14 1.1 Motivao e Contexto ...................................................................................................... 14 1.2 Objetivos.......................................................................................................................... 15 1.3 Resultados Esperados..................................................................................................... 16 1.4 Metodologia ..................................................................................................................... 16 1.5 Organizao do Trabalho................................................................................................. 17 2. SISTEMAS EMBARCADOS.................................................................................................. 18 2.1 Definio.......................................................................................................................... 19 2.1.1 Caractersticas de Sistemas Embarcados ............................................................. 20 2.2 Dificuldades na Evoluo dos Sistemas Embarcados...................................................... 23 2.2.1 Dificuldades Acadmicas....................................................................................... 23 2.2.2 Dificuldades no Projeto.......................................................................................... 24 2.3 Consideraes Finais ...................................................................................................... 27 3. PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE................................................... 29 3.1 Processo.......................................................................................................................... 29 3.2 Modelo de Processo de Software .................................................................................... 30 3.2.1 Elementos do Modelo de Processo deSoftware..................................................... 31 3.3 Modelagem de Processo ................................................................................................. 33 3.4 Modelos de Processos de Desenvolvimento de Software................................................ 35 3.4.1 Processo Unificado................................................................................................ 35 3.4.2 Rational Unified Process........................................................................................ 36 3.5 Modelos de Processo de Desenvolvimento de Software Embarcado............................... 37 3.5.1 RUPSE.................................................................................................................. 37 3.5.2 IPProcess.............................................................................................................. 38 3.5.3 Processo Unificado para Sistemas Embarcados (UPES)....................................... 40 3.6 Consideraes Finais do Captulo ................................................................................... 41 4. REQUISITOS ........................................................................................................................ 43 4.1 Conceitos Bsicos ........................................................................................................... 44 4.1.1 Requisitos.............................................................................................................. 44 4.1.2 Requisitos Funcionais x Requisitos No-Funcionais.............................................. 45 4.1.3 Engenharia de Requisitos...................................................................................... 46 4.1.4 Processo de ER Tradicional .................................................................................. 50 4.1.5 Gerncia de Requisitos ......................................................................................... 52 4.1.6 Envolvidos no Processo de Engenharia de Requisitos .......................................... 53 4.1.7 Revises de Requisitos ......................................................................................... 53 4.2 Requisitos em Sistemas Embarcados.............................................................................. 53 4.2.1 Requisitos No Funcionais .................................................................................... 53 4.2.2 Requisitos de Hardware x Requisitos de Software................................................. 56 4.2.3 Inveno de Requisitos ......................................................................................... 56 4.3 Processo de ER para Sistemas Embarcados................................................................... 57 4.3.1 Contexto das Empresas Desenvolvedoras de SE.................................................. 57 4.3.2 Processos de Desenvolvimento de SE Sob o Ponto de Vista da ER..................... 58 4.3.3 Metodologias para Especificao dos Requisitos em SE....................................... 61 4.3.4 Envolvidos no Processo de ER para SE................................................................ 64 4.3.5 Modelos de Documentos para Especificao dos Requisitos em SE..................... 65 4.3.6 Gerenciamento de Requisitos em SE.................................................................... 66 4.3.7 Outros Aspectos Importantes no Processo de ER para SE ................................... 66 4.4 Consideraes Finais ...................................................................................................... 67 5. ABORDAGEM GQM.............................................................................................................. 68 5.1 O Mtodo Goal Question Metric (GQM) ........................................................................... 68 5.1.1 Planejamento......................................................................................................... 70 5.1.2 Definio ............................................................................................................... 71 5.1.3 Coleta.................................................................................................................... 74 5.1.4 Interpretao ......................................................................................................... 75 5.1.5 Captura de Experincias........................................................................................ 76 5.2 Consideraes Finais do Captulo ................................................................................... 76 6. AVALIAO DO PROCESSO DE ENGENHARIA DE REQUISITOS PARA O DESENVOLVIMENTO DE SISTEMAS EMBARCADOS ...................................................... 77 6.1 Aplicao do GQM........................................................................................................... 77 6.1.1 Planejamento......................................................................................................... 78 6.1.2 Definio ............................................................................................................... 79 6.1.3 Elaborao das Questes e Mtricas .................................................................... 82 6.1.4 Coleta.................................................................................................................... 97 6.1.5 Interpretao ......................................................................................................... 97 6.1.6 Captura de Experincias...................................................................................... 102 6.2 Consideraes Finais .................................................................................................... 102 7. DEFINIO DO PROCESSO DE ENGENHARIA DE REQUISITOS PARA O DESENVOLVIMENTO DE SISTEMAS EMBARCADOS .................................................... 104 7.1 Processo de Engenharia de Requisitos para Sistemas Embarcados ProReqSE......... 104 7.1.1 Papis ................................................................................................................. 107 7.1.2 Atividades............................................................................................................ 108 7.1.3 Produtos de Trabalho .......................................................................................... 117 7.1.4 Diretrizes ............................................................................................................. 119 7.1.5 Listas de Verificao............................................................................................ 119 7.1.6 Conceitos ............................................................................................................ 120 7.2 Comparao do ProReqSE com Outros Processos....................................................... 120 7.3 Consideraes Finais .................................................................................................... 121 8. CONSIDERAES FINAIS DO TRABALHO ...................................................................... 122 8.1 Concluso...................................................................................................................... 122 8.2 Trabalhos Futuros.......................................................................................................... 123 REFERNCIAS....................................................................................................................... 124 APNDICE A RESPOSTA DO QUESTIONRIO DE AVALIAO DOS PROCESSOS DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS .................................................... 128 APNDICE B LISTA DE VERIFICAO I ............................................................................ 134 APNDICE C LISTA DE VERIFICAO II ........................................................................... 138 APNDICE D LISTA DE VERIFICAO III .......................................................................... 142 APNDICE E LISTA DE PRIORIZAO.............................................................................. 146 APNDICE F DOCUMENTO DE REFERNCIA CRUZADA................................................ 148 APNDICE G DOCUMENTO DE ESPECIFICAO SUPLEMENTAR ................................ 152
Pgina 14 1. INTRODUO 1.1 Motivao e Contexto Aplicaes de software embarcado esto cada vez mais presentes em nosso cotidiano. Em geral so sistemas extremamente crticos para o sucesso do negcio e muitas vezes para a segurana e bem-estar humanos, como as aplicaes de medicina, telecomunicaes e aviao. O projeto deste tipo de sistemas complexo, pois apresenta restries severas em relao s funcionalidades e implementao, dentre elas: a reao a eventos externos em tempo real; adaptao a limites de tamanho e peso; gerenciamento de consumo de potncia sem perda de desempenho; baixa disponibilidade de memria; satisfao a requisitos de confiabilidade e segurana e ; adequao a restries de oramento. Alm disso, o projeto de sistemas embarcados bastante caro para as empresas por envolver equipes especializadas e multidisciplinares (hardware digital, hardware analgico, software, teste), e abordar conceitos pouco estudados pela computao de propsitos gerais. A diminuio dos custos de produo, o avano da fabricao de hardware e software e a necessidade crescente do mercado possibilitaram o desenvolvimento de complexas aplicaes de software embarcado ad hoc. Por outro lado, o aumento de complexidade e criticidade destas aplicaes refletiram-se no processo de desenvolvimento destes sistemas, sendo necessria uma maior nfase na verificao e validao de suas atividades. A evoluo das ferramentas especficas para desenvolvimento de softwares embarcados auxilia o processo, entretanto, as estratgias de desenvolvimento adotadas nem sempre resultam em uma soluo de qualidade satisfatria. Estudos com mais de 450 desenvolvedores de sistemas embarcados identificaram alguns fatores que contribuem para o aumento do nmero de projetos fracassados (atrasados ou cancelados): mudana na especificao, especificao incompleta, complexidade da aplicao e quantidade insuficiente de desenvolvedores (Carro 2002). A avaliao e identificao das deficincias de estratgias que auxiliam o desenvolvimento de requisitos no-funcionais como previsibilidade, confiabilidade, desempenho, tamanho reduzido, criticidade e suporte a tempo real tornam-se objeto de estudo para melhoria da qualidade das solues. Pgina 15 Outro ponto que deve ser ressaltado o crescimento e sucesso da indstria brasileira de desenvolvimento de software. Para que o setor torne-se realmente competitivo nacional e internacionalmente necessrio que haja um incentivo as empresas para a que os produtos e servios oferecidos atendam aos padres de qualidade internacionalmente exigidos (Softex s.d.). No entanto, o setor de desenvolvimento de software brasileiro composto em sua grande maioria por micro e pequenas empresas (MPEs) (MCT 2002). Devido a restries de custos e investimentos a principal caracterstica dessa parcela do mercado brasileiro a informalidade das prprias empresas e de seus processos (J. C. Hauck 2004). Assim, de vital importncia a pesquisa e o incentivo para que esse tipo de empresas possa melhorar seus processos com o intuito de adequar-se s normas nacionais e internacionais de desenvolvimento de software e melhorar a qualidade dos produtos e servios oferecidos no mercado (Softex s.d.). Para que isso acontea, necessrio que os processos da empresa estejam corretamente definidos, documentados e institucionalizados com cada uma das atividades da organizao representadas em um modelo (J. C. Hauck 2004). Segundo Hauck, A institucionalizao do processo de desenvolvimento proporciona s organizaes um desenvolvimento estruturado de seus projetos de forma que diversas pessoas possam desempenhar mais de uma funo e o resultado final do produto atinja os mesmo nveis de qualidade independente de quem o desenvolveu. 1.2 Objetivos Este projeto baseia-se em estudos das reas de sistemas embarcados, processos de desenvolvimento e de engenharia de requisitos para sistemas embarcados e GQM Neste contexto, esta proposta de pesquisa tem como objetivo definir e aplicar uma avaliao do processo de engenharia de requisitos de MPEs desenvolvedoras de Sistemas Embarcados (SE). Com base nessa avaliao e nas caractersticas especficas deste tipo de software, o trabalho pretende sugerir um processo de engenharia de requisitos mais efetivo e aderente realidade das MPEs desenvolvedoras de software embarcado. Logo, o desenvolvimento de cada atividade caracterizado por meio dos seguintes objetivos especficos: Elaborar reviso bibliogrfica: consiste na pesquisa, seleo e estruturao de informaes para construo do referencial terico da monografia. Definir o Programa de Medies (GQM): planejar (definir a equipe GQM, escolher a rea de melhoria e preparar os envolvidos), definir (documentar os objetivos, questes e mtricas), coletar os dados e interpret-los em relao s mtricas definidas, gerando os resultados da medio. Pgina 16 Propor e documentar ajustes em um processo de engenharia de requisitos: tomando como base na disciplina de Requisitos do OpenUP, os resultados do GQM e as definies do programa de melhoria de software brasileiro (MPS.Br). Para a definio da avaliao foi selecionada a metodologia Goal/Question/Metrics (GQM) (Basili e Rombach 1994), que tem se apresentado um mecanismo eficiente no planejamento e definio de objetivos de medio e avaliao. Utilizada em diversos objetos de pesquisa na rea de Engenharia de Software e adotada como uma importante ferramenta de avaliao de qualidade de software, a principal caracterstica de GQM a adaptabilidade para avaliao de qualquer tipo de problema. Logo, o mtodo ser aplicado nas MPEs participantes da avaliao.
1.3 Resultados Esperados So esperado os seguintes resultados do trabalho: Identificar as principais limitaes dos atuais processos de engenharia de requisitos de software embarcado com base na aplicao do mtodo GQM em MPEs nacionais. Proposio de um processo de engenharia de requisitos que visa diminuio da complexidade e dos custos, alm do aumento da efetividade no desenvolvimento de sistemas embarcados, com base na pesquisa realizada. Este processo levar em considerao as caractersticas prprias deste tipo de sistema como: o Resposta em tempo real, resposta a eventos sncronos, tamanho e custo reduzidos, segurana e confiabilidade, ambientes inspitos, previsibilidade, portabilidade, limites de tamanho e peso, gerenciamento de consumo de potncia sem perda de desempenho, baixa disponibilidade de memria. 1.4 Metodologia Este projeto classificado como pesquisa aplicada e qualitativa por gerar conhecimentos para aplicao prtica dirigida soluo de problemas do desenvolvimento de um tipo especfico de software (Oliveira s.d.). A pesquisa ser avaliada em um conjunto exclusivo de empresas cujos dados sero analisados indutivamente pelos pesquisadores e de acordo com a abordagem de estudo. Quanto aos fins, esse trabalho uma pesquisa metodolgica por elaborar um instrumento de captao da realidade, definindo formas para atingir o objetivo de estudo. Quanto aos meios, essa pesquisa ser bibliogrfica - baseada em livros, artigos cientficos, redes eletrnicas e documental. Pgina 17 1.5 Organizao do Trabalho Este trabalho composto de sete captulos organizados da seguinte forma: O captulo 2 descreve conceitos relacionados a sistemas embarcados, alm da exposio de suas caracterticas e dos problemas de seu desenvolvimento. O captulo 3 discorre sobre a elaborao de processos de desenvolvimento de software e sobre os elementos que os compem. So descritos ainda os principais processos de desenvolvimento de software tradicionais e especficos para sistemas embarcados. O captulo 4 apresenta os principais processos de engenharia de requisitos tradicionais e especificos para sistemas embarcados. O captulo 5 descreve o mtodo GQM, suas fases e os produtos gerados. O captulo 6 apresenta todo o processo de elaborao e aplicao do programa de medies. O captulo 7 descreve a adaptao do processo de engenharia de requisitos do processo unificado as caractersticas dos sistemas embarcados. O captulo 8 apresenta as concluses desta monografia, destacando as contribuies desta pesquisa e os trabalhos futuros. Pgina 18
2. SISTEMAS EMBARCADOS A tecnologia da computao tem se tornado onipresente no dia-a-dia da populao. Softwares embarcados hoje controlam a comunicao, os transportes, os sistemas mdicos, entre outros (Henzinger 2007). Embora apenas recentemente os sistemas embarcados tenham se mostrado extremamente populares no cotidiano das pessoas, esta categoria de sistemas surgiu e foi reconhecida nos Estados Unidos no incio da dcada de 60 em um computador-guia do projeto Apollo denominao do conjunto de misses espaciais coordenadas pela NASA (National Aeronautics and Space Administration) com o objetivo de levar o primeiro homem lua (Wolf 2001). Com a evoluo dos microprocessadores e a diminuio de seus custos de produo, os sistemas embarcados tornaram-se universais, pois esto presentes em muitos dispositivos, desde os mais simples, como eletrodomsticos, at dispositivos complexos como os de naves espaciais. Entretanto, a maioria desses sistemas no percebida pelas pessoas, pois como o prprio nome insinua, esto embutidos dentro de outros sistemas utilizados no dia-a-dia (Barreto 2006). Em 2000 Tennenhouse (Tennenhouse 2000), na ocasio vice-presidente e diretor de pesquisas da Intel Corporation (Intel Corp) , publicou um artigo no qual mostrava que 80% de todos os processadores fabricados no mundo eram usados em sistemas embarcados (Figura 1). Os 20% restantes eram divididos em aplicaes desktop (2%), aplicaes robticas (6%) e sistemas automotivos (12%). Neste contexto, no resta outra sada para as pesquisas em Cincia da Computao seno seguir a mesma direo dos processadores e investir uma boa parcela de seu capital intelectual neste novo espao de pesquisa. Pgina 19
Figura 1 - Onde esto os processadores? (Tennenhouse 2000) As aplicaes mais comuns do mercado de processadores embarcados so telefones celulares, brinquedos, eletrodomsticos e outros equipamentos eletrnicos. Estes produtos so projetados sob restries de recursos tais como energia consumida, utilizao de memria, tamanho do circuito integrado, desempenho, resposta em tempo real, e, principalmente, custo. No custo deve ser includo, alm dos componentes de hardware, o desenvolvimento do hardware e de software aplicativo (Barbiero 2006). Contudo, medida que aumenta a quantidade e variedade de tais produtos, h um acrscimo em sua complexidade, devido integrao de mais componentes de software e hardware ao sistema. E, aliado a isso, ainda existe uma srie de restries como aquelas citadas no pargrafo anterior. A unio destes aspectos torna o projeto de sistemas embarcados um desafio constante, visto que todas estas caractersticas devem ser levadas em considerao durante o desenvolvimento (Graaf 2003). Este captulo abordar, na seo 2.1, a definio e as caractersticas de sistemas embarcados. J a seo 2.2 apresentar as dificuldades na evoluo deste tipo de sistema. Por fim, a seo 2.3 descreve as consideraes finais do captulo. 2.1 Definio Definir sistemas embarcados no uma tarefa trivial. Segundo (Marwedel 2003), sistemas embarcados podem ser definidos como sistemas eletrnicos de processamento de informao embutidos em um produto de forma transparente para o usurio. Como j foi Pgina 20 descrito anteriormente, este tipo de sistema composto de sistemas micro processados que no aparecem como funcionalidade final de um produto, ou seja, esto completamente encapsulados ou dedicados ao dispositivo ou sistema que ele controla, portanto, so invisveis do ponto de vista do usurio (Wolf 2001). Lee (E. Lee, Embedded Software 2002) ressalta, no entanto, que sistemas embarcados no se resumem a software em um pequeno dispositivo. Ao contrrio da computao tradicional, sua principal caracterstica no a transformao de dados, mas preferencialmente a interao com o mundo fsico. Um software cuja principal caracterstica a interao com o mundo real deve, por necessidade, adquirir algumas propriedades de tal mundo. Ou seja, ele gasta tempo, consome energia e no finaliza nunca (a menos que falhe). Alm disso, so softwares que implementam um conjunto de tarefas pr-definidas, geralmente com requisitos especficos que so utilizados para acrescer ou otimizar funcionalidades (Barreto 2006). Em linhas gerais, os processos e componentes que compem os sistemas embarcados so muito parecidos com a computao de propsito geral. No entanto, na computao tradicional, o objetivo principal atender a funcionalidades com desempenho cada vez maior. J na computao embarcada o interesse est voltado para interfaces com o ambiente, como sensores e atuadores, e algoritmos de controle, de modo a satisfazer severas restries, como, requisitos temporais, de consumo de energia e memria, mobilidade, tamanho, peso, segurana, confiabilidade, tempo de entrega dentre outras (Barreto 2006). 2.1.1 Caractersticas de Sistemas Embarcados A seguir so apresentadas algumas caractersticas comuns em sistemas embarcados, segundo (Marwedel 2003). Vale lembrar que os sistemas no necessariamente possuem todas estas caractersticas, mas devem ter muitas delas para serem considerados embarcados. 2.1.1.1 Acoplado ao ambiente fsico Freqentemente, sistemas embarcados so conectados ao ambiente fsico atravs de sensores que coletam informaes sobre este espao e atuadores que controlam este ambiente. 2.1.1.2 Confivel Sistemas embarcados tm que ser confiveis. Muitos sistemas embarcados so de segurana crtica, ou seja, so sistemas cujas falhas podem gerar conseqncias catastrficas, colocando em risco at mesmo vidas humanas. Sistemas de controle de Pgina 21 estaes de energia nuclear so exemplos de sistemas de extrema segurana crtica que so, ao menos em parte, controlados por software. Confiabilidade , entretanto, importante tambm em outros sistemas como carros, trens, avies etc. Uma razo chave para ser de segurana crtica que estes sistemas so diretamente conectados ao ambiente e tm um impacto imediato neste ambiente. Um sistema considerado confivel deve abranger os seguintes aspectos (Pradhan 1996): Confiabilidade: probabilidade de que um sistema no v falhar; Manutenibilidade: a probabilidade de que uma falha no sistema possa ser reparada dentro de uma certa janela de tempo; Disponibilidade: probabilidade de que o sistema esteja disponvel. Os dois aspectos anteriores (confiabilidade e manutenibilidade) devem ser altos para garantir a alta disponibilidade; Segurana no funcionamento (safety): probabilidade de que uma falha no sistema no cause nenhum dano; Segurana no uso (security): propriedade de que dados confidenciais continuem confidenciais e que comunicaes autnticas estejam garantidas. 2.1.1.3 Eficiente Sistemas embarcados devem ser eficientes. Para garantir esta eficincia, algumas caractersticas devem ser levadas em considerao: Energia: muitos sistemas embarcados so mveis, ou seja, obtm energia de baterias. Se por um lado os requisitos computacionais esto evoluindo rapidamente (especialmente para aplicaes multimdia) e os usurios esto esperando que suas baterias durem cada vez mais. Por outro, a tecnologia das baterias no tem acompanhado a mesma velocidade de evoluo. Sendo assim, a energia eltrica disponvel para os sistemas embarcados deve ser usada com muita eficincia; Tamanho do cdigo: todo o cdigo que rodar em um sistema embarcado deve ser armazenado com o sistema. Normalmente, no h discos rgidos onde o cdigo pode ser armazenado. Portanto, o tamanho do cdigo deve ser o mnimo possvel; Eficincia em tempo de execuo: o mnimo de recursos deve ser usado para implementar as funcionalidades requeridas. A fim de reduzir o consumo de Pgina 22 energia, freqncia de clock e voltagens preciso ser o menor possvel. Ou seja, apenas os componentes necessrios devem estar presentes; Peso: todos os sistemas portveis devem ter baixo peso; Custo: para a produo de sistemas em massa, principalmente os eletrnicos destinados ao consumo, competitividade no mercado uma caracterstica essencial. 2.1.1.4 Dedicado aplicao Estes sistemas so dedicados a uma determinada aplicao. Por exemplo, um processador que rode um software de controle de carro, sempre rodar este software. No deve haver a possibilidade de executar um jogo ou um programa de planilhas no mesmo processador. Isto no indicado devido a duas razes: aplicaes adicionais diminuiriam a segurana do sistema e execut-las s seria vivel caso os recursos (como memria) estivessem sem uso. 2.1.1.5 Interface dedicada A maioria dos sistemas embarcados no usa teclados, mouses e monitores grandes de computadores para sua interface com o usurio. Ao invs disso, existem interfaces com o usurio dedicadas que consistem de botes de presso, volantes, pedais, etc. Ademais, muitas das atividades executadas por estes sistemas so autnomas e grande parte de suas interaes so com outros sistemas, ao invs de humanos. Por isso, o usurio dificilmente nota que o processamento de informaes envolvido. Por este motivo, a nova era da computao tambm foi caracterizada como disappearing computer. 2.1.1.6 Restrio de Tempo Real Muitos sistemas embarcados devem suportar restries de tempo real. Neste caso, no completar um processamento dentro da janela de tempo esperada pode resultar em uma perda significativa na qualidade provida pelo sistema (por exemplo, se a qualidade de udio ou vdeo for afetada) ou em uma ameaa ao usurio (por exemplo, se carros, trens ou avies no operarem da maneira prevista). 2.1.1.7 Hbrido Muitos sistemas embarcados so sistemas hbridos no sentido de inclurem partes analgicas e digitais. As partes analgicas usam valores contnuos de sinal em tempos contnuos, ao passo que partes digitais usam valores discretos de sinais em tempos discretos. Pgina 23 2.1.1.8 Reativo Tipicamente, sistemas embarcados so sistemas reativos, ou seja, esto em interao contnua com seu ambiente e executam em um ritmo determinado por este ambiente (Berg, 1995, apud Marwedel, 2003, p.4). Os sistemas reativos so aqueles que permanecem em um determinado estado, esperando uma entrada. Para cada entrada, eles efetuam alguns processamentos e geram uma sada e um novo estado. Portanto, autmatos so modelos muito bons para tais sistemas. Funes matemticas, as quais descrevem os problemas resolvidos pela maioria dos algoritmos, podem ser um modelo inapropriado. 2.2 Dificuldades na Evoluo dos Sistemas Embarcados Ainda que as oportunidades paream ilimitadas, a evoluo dos softwares embarcados no tem conseguido acompanhar o potencial oferecido pelas tecnologias emergentes de hardware e de comunicao (Henzinger 2007). Nas subsees seguintes so apresentadas algumas das dificuldades encontradas no estudo e no projeto de sistemas embarcados. 2.2.1 Dificuldades Acadmicas Apesar de se mostrar um assunto extremamente interessante e com grandes possibilidades de estudo, os sistemas embarcados so pouco representados academicamente e em discusses pblicas (Ryan, 1995, apud Marwedel, 2003, p.4). Na academia, um dos problemas de ensinar a projetar sistemas embarcados o equipamento necessrio para tornar o tpico interessante e prtico. Alm disso, sistemas embarcados reais so muito complexos e, portanto, difceis de ensinar (Marwedel 2003). Por outro lado, sistemas embarcados no aparecem como uma disciplina central no currculo de Cincia da Computao e nem no de Engenharia Eltrica. Na prtica, engenheiros eltricos freqentemente elaboram arquiteturas de softwares e cientistas da computao tm que lidar com restries fsicas. Ou seja, o projeto de sistemas embarcados est relacionado aos dois currculos. No entanto, existe uma barreira, iniciada na ainda academia, que separa estes dois mundos. E a indstria busca desesperadamente por engenheiros que possuam conhecimentos suficientes nos dois campos (Henzinger 2007). Se em um extremo tem-se o fato de que as pesquisas em cincia da computao ignoraram por muito tempo os sistemas embarcados, pois utilizavam abstraes que de certa forma no levavam em conta as caractersticas fsicas. No outro, tem-se a comprovao de que o projeto de sistemas embarcados vai alm do conhecimento Pgina 24 tradicional dos engenheiros eltricos, uma vez que o clculo e o software so partes integrantes dos sistemas embarcados (Henzinger 2007). Segundo Lee (E. Lee, Embedded Software 2002), do ponto de vista do software, sistemas embarcados eram muito pequenos e retrgrados com uso de suas tcnicas peculiares como programao em linguagem assembly, e muito limitado pelos custos de hardware. Conseqentemente, o projeto destes sistemas no foi beneficiado pela valiosa abstrao do desenvolvimento do sculo XX. Tais sistemas no utilizam recursos como modelagem orientada a objetos, polimorfismo e gerenciamento automtico de memria (E. Lee, Embedded Software 2002). As melhores tecnologias com seu uso desregrado de memria, camadas de abstrao, algoritmos elaborados e otimizaes estatsticas no pareciam aplicveis. E como os resultados das pesquisas no resolviam os problemas dos sistemas embarcados, o problema no era, portanto, interessante aos olhos dos pesquisadores (E. Lee, Whats Ahead for Embedded Software? 2000). No entanto, estas deficincias tm se transformando em oportunidades. Os pesquisadores esto comeando a reconstruir suas pesquisas de maneira que possam adequ-las aos problemas reais e diferenciados expostos pelos sistemas embarcados. E o problema mais urgente , justamente, como adaptar as tcnicas de software existentes para enfrentar os desafios do mundo fsico (E. Lee, Whats Ahead for Embedded Software? 2000). 2.2.2 Dificuldades no Projeto 2.2.2.1 Dificuldades Tecnolgicas O nmero crescente de aplicaes resultou na necessidade de se construir tecnologias que suportem o projeto de sistemas embarcados. As tecnologias e ferramentas disponveis atualmente ainda possuem limitaes significativas, dentre elas a demanda por melhores linguagens de especificao, ferramentas de gerao de cdigo a partir das especificaes, verificadores de tempo, sistemas operacionais de tempo real, tecnologias de baixo custo de energia e tcnicas de projeto para sistemas confiveis (Marwedel 2003). Estas vises distintas entre as tcnicas modernas de software e as necessidades dos sistemas embarcados no uma novidade. Remontando-se s razes da computao nota-se que as interfaces com o mundo real somente comearam a se estender recentemente, depois dos teclados e monitores. A computao tem suas origens na transformao de dados, no na interao com sensores, atuadores ou mesmo humanos. Entretanto, softwares em uma rede de sistemas embarcados sero formados, certamente, por componentes que operaro de maneira concorrente e em tempo real, com grande freqncia interagindo remotamente (E. Lee, Whats Ahead for Embedded Software? 2000). Pgina 25 Ademais, o projeto de sistemas embarcados extremamente complexo, por envolver conceitos at agora pouco analisados pela computao de propsitos gerais. Questes como portabilidade e limite de consumo de potncia sem perda de desempenho, baixa disponibilidade de memria, necessidade de segurana e confiabilidade, possibilidade de funcionamento em uma rede maior, interao constante com o mundo real e o curto tempo de projeto tornam o desenvolvimento de sistemas computacionais embarcados uma rea em si (Wolf 2001). Portanto, os desafios da pesquisa so enormes, uma vez que os prazos de entrega dos sistemas cada vez menor, o custo e a complexidade desse tipo de sistemas extremamente alta, no sendo confivel a utilizao de metodologias de desenvolvimento com solues ad hoc. Paradoxalmente, as tecnologias de engenharia de software no possuem caractersticas especficas para lidar com requisitos de memria, energia ou tempo real. Uma das principais caractersticas dos sistemas embarcados, no entanto, o fato de interagirem com o mundo real e, deste modo, no operarem em um ambiente estritamente controlado. Em conseqncia, este tipo de sistema apresenta caractersticas extremamente complexas, como: reao a eventos externos em tempo real; concorrncia sistemas embarcados raramente interagem com um nico processo fsico. Eles devem reagir, simultaneamente, a estmulos provenientes da rede e de uma variedade de sensores e, ao mesmo tempo, reter controle temporrio sobre os atuadores; vivacidade (liveness) esta uma caracterstica crtica, pois os programas no podem terminar ou ficar bloqueado enquanto esperam a ocorrncia de eventos que nunca acontecero; heterogeneidade uma caracterstica intrnseca dos sistemas embarcados. Eles misturam estilos de computao e tecnologias de implementao. Primeiro porque tais sistemas so, freqentemente, uma mistura de hardware e software, por isso, softwares embarcados interagem com hardwares projetados especificamente para interagir com eles. Sistemas embarcados tambm so heterogneos no estilo de manipulao. Eles interagem com eventos ocorrendo irregularmente no tempo (alarmes, comandos do usurio, gatilhos de sensores, etc.) e regularmente no tempo (amostras de sensores de dados e sinais de controle de atuadores); reatividade reagem continuamente com o ambiente na velocidade do ambiente. Sistemas reativos tm restries de tempo-real e so freqentemente de Pgina 26 segurana crtica, no sentido que falhas podem resultar na perda de vidas humanas. E eles nunca terminam e devem ser capazes de se adaptarem s mudanas. Tais sistemas esto sempre sendo redesenhados enquanto operam e no podem falhar; dentre outros j citados adaptao a limites de tamanho e peso; gerenciamento de consumo de potncia sem perda de desempenho; baixa disponibilidade de memria; satisfao a requisitos de confiabilidade e segurana e adequao a restries de oramento. A partir do exposto, nota-se que outro grande desafio no desenvolvimento de sistemas embarcados o atendimento de seus requisitos no-funcionais, ou seja, aqueles cuja preocupao no com a funcionalidade do sistema. Independente do tipo de software, a especificao dos requisitos no-funcionais j prejudicada pelo fato das tcnicas adequadas para sua identificao e classificao no serem amplamente difundidas. Em sistemas embarcados este complicador ainda maior, dada a imensa quantidade de requisitos no-funcionais a serem analisados. 2.2.2.2 Dificuldades do Negcio Alm das dificuldades tcnicas, algumas dificuldades advindas do negcio tambm surgiram recentemente no projeto de sistemas embarcados, as quais os novos processos de desenvolvimento devem considerar (Sangiovanni-Vincentelli 2004): crescimento dos custos de engenharia no recorrente, elevando os custos da produo de um circuito integrado (CI); simultnea presso para a reduo do tempo de entrega (time-to-market) de um produto, e sua crescente complexidade; alterao de um modelo de negcio vertical para um modelo horizontal, onde a responsabilidade da produo de um novo projeto distribuda entre companhias distintas. Dado o exposto, nota-se que projetar um sistema embarcado uma tarefa rdua. E o aumento das conexes, com a internet e entre os prprios dispositivos, introduz complicaes significativas como a possibilidade de baixar mdulos que reconfiguram dinamicamente o sistema. Alm disso, os consumidores demandam funcionalidades cada dia mais elaboradas, que aumentam muito a complexidade do software. O fato que tais sistemas no podem mais ser projetados por um nico engenheiro dedicado a construir dezenas de quilobytes de cdigo assembly (E. Lee, Whats Ahead for Embedded Software? 2000). Por outro lado, softwares embarcados freqentemente encapsulam o conhecimento do domnio, especialmente quando necessrio processar dados de sensores ou controlar atuadores. At mesmo programas muito pequenos podem conter algoritmos altamente Pgina 27 sofisticados, o que requer um profundo conhecimento do domnio e das tecnologias de suporte, como as de processamento de sinal. 2.2.2.3 Fracasso nos projetos Um estudo realizado por (Carro 2002) com mais de 450 desenvolvedores de sistemas embarcados identificaram alguns fatores que contribuem para o aumento do nmero de projetos fracassados (atrasados ou cancelados): mudana na especificao; especificao incompleta; complexidade da aplicao; quantidade insuficiente de desenvolvedores, e tecnologias especficas para a aplicao de softwares embarcados. Para resolver todas estas questes, as tcnicas de projeto de software existentes no so apropriadas. Em parte porque so recentes, em outra, porque no levam em considerao as caractersticas especficas de sistemas embarcados. As tecnologias de desenvolvimento existentes no avaliam adequadamente o impacto em sistemas embarcados e nem so customizveis a ponto de servirem a tais propsitos (Graaf 2003). Por fim, em decorrncia do conhecimento do domnio requerido: sistemas embarcados so projetados, freqentemente, por engenheiros treinados classicamente no domnio em que trabalham. Os engenheiros de tais sistemas raramente so cientistas da computao, possuindo, portanto, pouco conhecimento de teoria da computao, concorrncia, projeto orientado a objetos, sistemas operacionais e semntica (E. Lee, Whats Ahead for Embedded Software? 2000). Na realidade, segundo (E. Lee, Whats Ahead for Embedded Software? 2000) discutvel se outras disciplinas da engenharia teriam muito pouco a oferecer ao projeto de sistemas embarcados atualmente, devido a sua viso diferenciada a respeito da questo temporal e do uso desregrado de recursos de hardware. Mas estas disciplinas sero essenciais na medida em que os softwares embarcados forem se tornando cada vez mais complexos, modulares, adaptativos e conectveis. 2.3 Consideraes Finais Apesar de serem muitas so as dificuldades enfrentadas no desenvolvimento de sistemas embarcados, este trabalho limitar-se- a entender e avaliar os processos atuais de Engenharia de Requisitos deste tipo de sistema. O produto final deste estudo consistir na Pgina 28 elaborao de um processo que se adapte de maneira adequada a este domnio de software. Sendo assim, o captulo seguinte abordar conceitos de processo de desenvolvimento de software, tanto para sistemas tradicionais quanto para sistemas embarcados, bem como tcnicas para a modelagem de processos.
Pgina 29 3. PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O desenvolvimento de software de alta qualidade no uma tarefa trivial desde o surgimento da indstria de software. No incio os sistemas eram desenvolvidos sem a utilizao de mtodos sistemticos e praticamente sem nenhuma documentao (ad hoc). O sucesso e a qualidade dos softwares dependiam diretamente dos profissionais envolvidos em seu desenvolvimento (Farias 2006). Com o passar dos anos e com o aumento da complexidade dos sistemas, esse cenrio comeou a se modificar. Tornou-se evidente a necessidade de definir e utilizar mtodos sistemticos e ferramentas que guiassem o desenvolvimento de software, o que levou ao surgimento da engenharia de software (Pimentel 2007). Os processos de desenvolvimento surgiram como parte da engenharia de software. Seu principal objetivo assegurar a qualidade no desenvolvimento de sistemas em todas as suas etapas, para isso eles servem de guia para a execuo de atividades, definem quais produtos sero desenvolvidos e quando, coordenam as mudanas necessrias, e auxiliam o acompanhamento do progresso do desenvolvimento do software (Pimentel 2007). Este captulo aborda conceitos relacionados aos processos de desenvolvimento de software. Sua organizao do realizada da seguinte forma: na seo 3.1 ser apresentada uma breve descrio de processos de desenvolvimento de software. A seo 3.2 evidencia alguns modelos de processos e os itens que os compem. A seo 3.3 apresenta as fases e o fluxo de modelagem de um processo . Nas sees 3.4 e 3.5 so relatados processos de desenvolvimento de software tradicionais e especficos para o desenvolvimento de sistemas embarcados. Finalmente, a seo 3.6 descreve as consideraes finais do captulo. 3.1 Processo Diversas etapas so executadas durante o processo de desenvolvimento de software. As atividades que as compem iniciam com a identificao das necessidades do usurio, prosseguem com seu refinamento e finalizam com a disponibilizao do software para sua utilizao pelo usurio final. Esse conjunto de atividades que recebe dados de entrada realiza um processamento que adiciona valor a esses dados e produz uma sada de valor a um cliente especifico chamado de processo (Gonalvez 2000). Pressman (Pressman 2006) afirma que um processo de software caracterizado por um pequeno nmero de atividades que so aplicadas a qualquer tipo de projeto independente de seu tamanho e custo, e por um conjunto de tarefas. Este conjunto de tarefas composto de colees de atividades de engenharia de software; que podem ser adaptadas s necessidades da equipe e s caractersticas do projeto de software; marcos Pgina 30 de projeto, produtos de trabalho e pontos de garantia da qualidade. Suas atividades podem ser adaptadas s necessidades da equipe e s caractersticas do projeto de software. Segundo Weber (Weber 2002), os processos de software tm o seu principal enfoque nos processos tcnicos e gerenciais relacionados ao desenvolvimento de software cujo objetivo : planejar, monitorar, gerenciar, executar, controlar e melhorar atividades relacionadas a software. Dessa forma, a correta definio do conjunto de processos das atividades da empresas, agrupados, documentados e institucionalizados subsidiam a gerao de produtos com altos nveis de qualidade (J. C. Hauck 2004). 3.2 Modelo de Processo de Software Conforme Feiler (Feiler e Humphrey 1993), o modelo de processo uma representao abstrata da arquitetura, projeto ou definio do processo de software, que descreve, em diferentes nveis de detalhes, uma organizao dos elementos de um processo e prov definies da maneira como devem ser realizadas a avaliao e a melhoria de processo. Um modelo de processo composto de grupos de processos e de sub-modelos que variam de acordo com as abordagens de diferentes autores. Acua em (Acua, et al. 2000) define que um processo composto basicamente de dois sub-processos inter-relacionados e dois sub-modelos: o processo de produo, que consiste na construo e na manuteno do software; e o gerenciamento do processo, que responsvel por estimar, planejar e controlar os recursos necessrio para executar o processo de produo, alm dos sub- modelos de gerenciamento do processo e do prprio modelo de processo. A ISO/IEC 12207 (International Organization for Standardization / International Electrotechnical Commission) uma norma que define e classifica com maior nvel de detalhe o grupo de processos que compem um modelo de processo de software, abrangendo todo o ciclo de vida do software desde a concepo at sua descontinuidade (Calsalvara, et al. 2000). Os processos da ISO/IEC 12207 so agrupados de acordo com seu principal objetivo no ciclo de vida do projeto de forma que sua estrutura seja flexvel, modular e adaptvel conforme as necessidades de cada organizao (Calsalvara, et al. 2000). A Figura 2 ilustra o modelo de processos da norma ISO/IEC 12207. Pgina 31
Figura 2 Modelo de Processo ISO/IEC 12207 (Calsalvara, et al. 2000) O modelo de processo da norma ISO/IEC 12207 composto de trs tipos de processos: Processos Fundamentais: So processos diretamente relacionados produo do software em si. Processos de Apoio: servem como ferramenta de auxlio aos processos fundamentais. Os processos de apoio so de fundamental importncia para o suporte a continuidade e a qualidade dos processos fundamentais. Processos Organizacionais: Viabilizam a manuteno dos demais processos da organizao e sub-existem dentro das organizaes independente de projetos especficos. O objetivo do modelo de processo apresentado pela ISO/IEC 12207, e tambm por outros modelos de processo e de melhoria de processo, que seja fornecida uma estrutura para que todos os envolvidos com o desenvolvimento do software utilizem uma linguagem comum na definio dos processos da organizao (Calsalvara, et al. 2000). 3.2.1 Elementos do Modelo de Processo deSoftware Os elementos que compem o modelo de processo de software oferecem aos seus envolvidos um melhor entendimento de seu papel na organizao, das funes desempenhadas no processo de desenvolvimento da empresa e de suas atividades ao Pgina 32 longo de todo o ciclo de desenvolvimento (Weber 2002). Visando representar de forma grfica as caractersticas e os componentes de modelagem de um processo de desenvolvimento a OMG criou o SPEM Metamodel (OMG 2005). O SPEM um profile da notao UML que foi proposto pela OMG (Object Management Group) para a descrio de processos de desenvolvimento de software e de seus componentes. A proposta inicial da OMG limita-se a definir o conjunto mnimo de processo que modela os elementos necessrios para descrever qualquer processo de desenvolvimento de software, sem adicionar modelos especficos ou condies para qualquer rea especfica ou disciplina, como gerenciamento de projeto ou anlise. Segundo o SPEM, um modelo de processos inclui os elementos de processo definido na Tabela 1 (OMG 2005): Tabela 1 - Componentes do SPEM Esteretipo/Conceito Descrio (Adicionar a descrio das figurinhas) Notao (colocar as figurinhas) Fase tempo entre os maiores milestones do projeto. Entre a execuo das fases objetivos e metas so definidos, artefatos so criados ou complementados e decises so tomadas para a mudana de fase.
Disciplina uma coleo de atividades na qual est relacionada uma maior rea de conhecimento.
Atividade Etapa de um processo que produz alteraes de estado externamente visveis no produto de software. Uma atividade pode ser representada por uma entrada, uma sada e um ou mais artefatos.
Papel uma funo dentro do processo, ou seja, um grupo de responsabilidades,
Pgina 33 privilgios e habilidades que so requeridas para a execuo de terminada atividade; Produto de Trabalho um artefato consumido, produzido ou alterado durante a execuo de uma atividade. So os subprodutos do processo, as entradas e sadas de uma atividade durante o processo;
Orientaes So documentos que provem um maior detalhe de informaes sobre os diversos detalhes do processo.
Documento um tipo de produto de trabalho que representa um arquivo texto.
Modelo UML um tipo de produto de trabalho que representa um arquivo texto.
A Figura 3 demonstra como os elementos de um modelo se inter-relacionam para formar um processo de desenvolvimento de software (J. C. Hauck 2004):
Figura 3 - Inter-relao entre os elementos de um modelo de processo de software (Weber 2002) 3.3 Modelagem de Processo Pgina 34 A modelagem de um processo uma estrutura que descreve como identificar, documentar e institucionalizar as atividades envolvidas na construo de produtos de software. As pesquisas na rea de modelagem de processos propem diversos paradigmas para sua execuo, no entanto, duas formas de modelagem de processos so amplamente utilizadas atualmente: a modelagem descritiva, que basicamente descreve o processo que est sendo analisado e a modelagem prescritiva, que propem um modelo de processos ideal para a organizao que est sendo analisada (J. C. Hauck 2002) (Mcchesney 1995). Para que seja possvel documentar, institucionalizar ou at mesmo propor melhorias em um processo necessrio que haja o entendimento das atividades, papis envolvidos e de todos os artefatos produzidos na execuo do processo. A modelagem descritiva uma ferramenta utilizada para identificar como as atividades de desenvolvimento so executadas e quais as caractersticas envolvidas nos processos de desenvolvimento da organizao levando em conta o contexto na qual ela est inserida (Weber 2002). A obteno do modelo descritivo detalha formalmente como as atividades so realizadas no momento em que a avaliao do processo est sendo executada sem interferncia direta na forma como elas so ou devem ser feitas. Possibilitando uma viso real do processo atual que permite uma futura anlise para identificao de erros ou proposio de melhorias (Mcchesney 1995). Aps a avaliao dos processos das organizaes em muitos casos so constatadas identificaes de erros e proposio de melhorias, pois o processo modelado no atende a recomendao de normas de padronizao e melhoria de processos. Nesse caso necessrio reformular ou readequar suas atividade e papis. A modelagem prescritiva contempla os modelos prescritos aps a avaliao dos processos institucionalizados nas organizaes, pois descrevem como o software deveria ser desenvolvido (J. C. Hauck 2002). A modelagem de processos prescritiva pode ser executada de forma manual baseadas em normas, padres, melhores prticas ou metodologias, ou de forma automtica apoiada por ferramentas com modelos de processos automticos (Mcchesney 1995). Diversas so as classificaes de modelagem de processos de software que so propostas na literatura, no entanto, as etapas da modelagem de processos so customizadas de acordo com a realidade vivenciada pelas empresas desenvolvedoras de software. No caso das MPEs, que so o foco deste trabalho, na maioria dos casos os processos de desenvolvimento no so documentados e nem conhecidos pelos participantes da equipe. Dessa forma, necessrio que seja realizada uma avaliao inicial da cultura e do processo existente na organizao seguida da etapa de elicitao (J. C. Hauck 2002). Aps essas fases modelos prescritos so sugeridos tomando como base os Pgina 35 processos avaliados e a literatura que trata a padronizao de processos. Aps a prescrio do modelo, a documentao e a disseminao do processo devem ser realizadas (J. C. Hauck 2004). Essa mesclagem das caractersticas da modelagem descritiva e prescritiva gera um modelo de processo hbrido que utiliza as melhores caractersticas dos dois modelos com o objetivo de definir um processo de desenvolvimento otimizado que atinja altos nveis de qualidade levando em conta o contexto no qual a organizao est inserida (J. C. Hauck 2002). 3.4 Modelos de Processos de Desenvolvimento de Software 3.4.1 Processo Unificado O processo unificado (PU) o produto final de trs dcadas de trabalho. Seu desenvolvimento partiu do Objectory Process (1987), via Rational Objectory Process (1997) at o Rational Unified Process (RUP)(1998). Neste percurso o processo sofreu as mais diversas influncias, sendo as abordagens de maior impacto as adotadas pela Ericsson e Rational. O PU surgiu com o objetivo de definir um processo de desenvolvimento de software visando construo de sistemas orientados e a objetos (Larman 2004). Ele combina as melhores prticas estudadas por Booch, Jacobson e Rumbaugh e tem como base a Unified Modeling Language (UML). Entretanto, as caractersticas que o torna realmente nico podem ser resumidas em trs aspectos: dirigido a caso de uso, centrado na arquitetura e iterativo e incremental (Jacobson, Boock e Rumbaugh 1999). No PU o caso de uso (UC) o ponto central do desenvolvimento.Ele captura os requisitos funcionais do sistema e fora os engenheiros de software a pensarem em termo do valor para o usurio e no apenas nas funcionalidades que o sistema deve possuir. Alm disso, os UCs dirigem todo o projeto de desenvolvimento de software desde seu projeto, at sua implementao e testes (Jacobson, Boock e Rumbaugh 1999). A arquitetura de software no PU descreve as diferentes vises do sistema que est sendo construdo. Ela incorpora os aspectos estticos e dinmicos mais significantes para o sistema e reflete alm dos casos de uso, as necessidades da empresa e do cliente. A arquitetura tambm influenciada por fatores como a plataforma de software em que o sistema executar, os blocos reusveis disponveis, consideraes de implantao, sistemas legados e requisitos no-funcionais (Jacobson, Boock e Rumbaugh 1999). Os casos de uso e a arquitetura devem ser desenvolvidos em paralelo e so interligados na medida em que o produto deva possuir funo e estrutura. A funo corresponde ao UC e a estrutura arquitetura. Se por um lado os casos de uso, quando Pgina 36 realizados, devem estar de acordo com arquitetura definida. Por outro, a arquitetura deve permitir a realizao de todos os casos de uso (Jacobson, Boock e Rumbaugh 1999). Alm de usar a UML e ser baseado em casos de uso, arquitetura e desenvolvimento iterativo e incremental, o PU baseado em componentes. E para que esta abordagem funcione necessrio um processo que leve em considerao ciclos, fases, fluxos de trabalho, mitigao de riscos, controle de qualidade, gerenciamento de projetos e controle de configurao. O PU estabelece uma framework que integra todas estas diferentes caractersticas em um nico modelo de processos customizvel (Jacobson, Boock e Rumbaugh 1999). 3.4.2 Rational Unified Process Construdo com base no PU o RUP um processo de engenharia de software lanado no mercado em 1996 para dar suporte s atividades relacionadas ao ciclo de vida do processo de desenvolvimento (Barros, Esmeraldo e Silva, Uma Metodologia de Desenvolvimento Baseada em Componentes Aplicada Modelagem de Sistemas Embarcados 2006) (Kruchten 2003). Ele descreve todos os artefatos, atividades e papis, fornece diretrizes e inclui modelos para a maioria dos artefatos (Larman 2004). O principal objetivo do RUP garantir a produo de softwares de alta qualidade que atenda s necessidades dos usurios dentro de um oramento e de um cronograma previsto (Kruchten 2003). Assim como estabelecido no PU, trs princpios bsicos fundamentam o RUP: orientao a casos de uso, arquitetura e iterao. O RUP utiliza uma abordagem baseada em fases e disciplinas e atribui tarefas e responsabilidades dentro de uma organizao desenvolvedora de software (Kruchten 2003). A Figura 4 ilustra as duas dimenses abordadas pelo RUP: Pgina 37
Figura 4 - Grfico das Baleias do RUP (Kruchten 2003) O eixo horizontal representa o tempo e mostra os aspectos do ciclo de vida do processo medida que se desenvolve. Representa os aspectos dinmicos do processo e descrito por meio de fases, iteraes e marcos. O eixo vertical representa as disciplinas, que agrupam as atividades de maneira lgica, por natureza, representa os aspectos estticos do processo e descrito por meio de componentes, disciplinas, atividades, fluxos de trabalho, artefatos e papis. Segundo Kruchten (Kruchten 2003), o RUP pode ser utilizado em diversos tipos de projetos e em empresas de pequeno, mdio e grande porte, devido a sua flexibilidade e facilidade de configurao. 3.5 Modelos de Processo de Desenvolvimento de Software Embarcado Conforme descrito no Captulo 02 (Sistemas Embarcados), os problemas do desenvolvimento de software tradicional so diferentes dos problemas de desenvolvimento de sistemas embarcados no qual um conjunto mais amplo de requisitos compe o produto final (Barros, et al. 2005). O ponto crucial do desenvolvimento de sistemas embarcados a determinao dos muitos desafios da integrao entre software e hardware. Para isso, diversos modelos de processos para sistemas embarcados foram propostos na literatura. A sees seguintes apresentam alguns desses modelos. 3.5.1 RUPSE Lanado no mercado em 2001, o Rational Unified Process for Systems Engineering (RUPSE) uma ferramenta que oferece s organizaes desenvolvedoras de software uma estrutura de suporte para facilitar a definio do ciclo de vida de engenharia de sistemas (M. Cantor 2003) (Cantor, Rational Unified Process for Sytem Enginerring - Anlise e Design de Pgina 38 Requisitos 2003). Diferente do RUP, que foca no suporte ao desenvolvimento de software, o RUPSE foca no suporte Engenharia de Sistemas (M. Cantor 2003). O RUPSE oferece suporte ao desenvolvimento de sistemas em grande escala, compostos de software, hardware, trabalhadores e componentes de informaes (M. Cantor 2003). Ele fornece solues que inclui um modelo de arquitetura que permite a abordagem de um conjunto diferente de perspectivas (lgicas, fsicas, informao etc.) (M. Cantor 2003) Segundo Cantor (M. Cantor 2003), o RUPSE determina projetos que: 1. Necessitem de diversas equipes com desenvolvimento simultneo devido a seu tamanho. 2. Desenvolvam simultaneamente hardware e software. 3. Sejam complexos o suficiente para possurem problemas de implementao arquiteturalmente significativos. Tanto no RUP como no RUPSE, diversos papis so envolvidos no processo de desenvolvimento, esses papis so desenvolvidos por pessoas que compem a equipe de desenvolvimento como analistas de requisitos, arquitetos, projetistas, desenvolvedores entre outros. Alm disso, o ciclo de vida, as iteraes e as disciplinas do RUPE so herdadas do RUP. No entanto, para suportar a especificao de novas vises da engenharia de sistemas, o RUPSE inclui novos artefatos, atividades e funes, altera a estrutura de desenvolvimento do RUP (estrutura 4+1) e utiliza no s a UML 2.0, mas tambm seus esteretipos (Cantor, Rational Unified Process for Sytem Enginerring - Anlise e Design de Requisitos 2003). A especificao do sistema no RUPSE estuda como se espera que o sistema execute em um determinado contexto. Ou seja, so analisadas caractersticas como as funcionalidades do sistema que so externamente visveis, os servios fornecidos e as medidas de eficcia que devem ser atendidas. Dessa forma, realizada uma anlise da viso e da misso da empresa e da funo do sistema nesse contexto (M. Cantor 2003). A anlise do ambiente no qual o sistema est envolvido modelada em diagramas de contexto que estabelecem seu escopo, limites, servios, atributos e comunicaes com outras entidades. Esses diagramas utilizam esteretipos da linguagem UML para sua representao grfica (M. Cantor 2003). 3.5.2 IPProcess O Processo de Desenvolvimento de Soft-Ip (IPProcess) surgiu da necessidade de criao de uma metodologia que resolvesse os problemas especficos do desenvolvimento Pgina 39 de software embarcado (Barros, Esmeraldo e Silva, Uma Metodologia de Desenvolvimento Baseada em Componentes Aplicada Modelagem de Sistemas Embarcados 2006). Para isso, a abordagem de desenvolvimento baseados em componente (DBC) e a utilizao de disciplinas na atribuio de tarefas e responsabilidade dentro de uma organizao foram unificadas em um modelo de desenvolvimento de sistemas embarcados embarcado (Barros, et al. 2005). Dessa forma, o IPProcess prope a utilizao de tcnicas da Engenharia de Software na modelagem de sistemas de software iniciando em uma descrio de hardware em alto nvel que permite a deteco de erros na fase de Projeto enfocando a qualidade no final da implementao (Barros, et al. 2005). A Figura 5 ilustra a arquitetura do IPProcess sob a perspectiva de fases e disciplinas (Barros, et al. 2005):
Figura 5 - Grfico das Baleias do IPProcess (Barros, Bione, et al. 2005) As fases do processo so representadas no eixo horizontal e so decompostas seqencialmente ao longo do tempo: especificao funcional, arquitetura, projeto RTL e prototipao fsica (Barros, et al. 2005). As duas fases iniciais descrevem o entendimento do problema (o que deve ser feito) e sua modelagem (como deve ser feito) utilizando a notao UML e a UML Real Time. O processo de implementao efetivamente iniciado na fase de Projeto RTL, pelo fato de que necessrio um perodo de tempo para a discusso exaustiva das funcionalidades, dos requisitos e das possveis arquiteturas que sero utilizadas. A seguir ser descrito um breve resumo de cada uma das fases do IPProcess (Barros, Esmeraldo e Silva, Uma Metodologia de Desenvolvimento Baseada em Componentes Aplicada Modelagem de Sistemas Embarcados 2006): 4. Concepo: Tem como objetivo definir o escopo do sistema (ou componente) encontrando, entendendo e definindo seus requisitos funcionais e no-funcionais. Pgina 40 5. Arquitetura: Nesta fase so definidos os componentes da arquitetura e suas interfaces e construda um prova arquitetural que demonstra que a arquitetura est estvel e suporta os requisitos identificados na fase de concepo. 6. Projeto : O propsito dessa fase o desenvolvimento de um modelo de simulao baseado na arquitetura do sistema que utilizado para realizar a verificar dos componentes da arquitetura. 7. Prototipao Fsica: Nesta fase so construdos os prottipos fsicos que garantam que o sistema pode ser disponibilizado para seus usurios finais. O IPProcess composto pelas seguintes disciplinas (Barros, et al. 2005): 8. Requisitos: A disciplina de requisitos possui um maior esforo de execuo na fase de concepo, com isso, as principais atividades da disciplina so a anlise do problema, o entendimento das necessidades dos usurios e a definio de interfaces externas levando em conta os objetivos e as necessidades dos usurios. Os artefatos produzidos na disciplina de requisitos so o Documento de Viso, o Glossrio, o Documentos de Requisitos do Usurio, o Modelo de Caso de Uso e o Documento de Especificao de Requisitos 9. Anlise e Projeto: O principal objetivo da disciplina de anlise e projeto a elaborao do projeto da arquitetura do sistema e associao de funcionalidades aos seus componentes, portanto, grande parte do esforo dessa disciplina se concentra na fase de arquitetura do sistema. 10. Verificao Funcional: Esta disciplina do IPProcess visa validar se os requisitos foram implementados de forma correta e encontrar defeitos no modelo de simulao, para isso, um plano de verificao elaborado juntamente com a execuo dos testes. 11. Prototipao FPGA: O principal propsito desta disciplina transformar o modelo de simulao em um prottipo fsico e validar se os requisitos foram corretamente implementados nesse prottipo. 3.5.3 Processo Unificado para Sistemas Embarcados (UPES) Outro modelo de processos que leva em considerao as caractersticas especficas dos sistemas embarcados o Processo Unificado para Sistemas Embarcados (UPES). O UPES norteia o desenvolvimento de sistemas embarcados desde a concepo dos requisitos at a efetiva implementao do sistema (Riccobene, et al. 2007). Pgina 41 O UPES baseia-se na abordagem MDA (Model Driven Architecture), onde a aplicao gerada automaticamente por meio de modelos UML (Unified Model Language). Seu ciclo de desenvolvimento em Y ilustrado na Figura 6 (Riccobene, et al. 2007). Em um lado o processo PU tradicional utilizado na definio de um modelo executvel da aplicao, em outro lado disponibilizada a plataforma de hardware modelada em uma linguagem prpria para sistema embarcados (UML 2.0 e suas extenses) (Riccobene, et al. 2007). A interseco entre os dois lados une o mapeamento do modelo da aplicao considerando o modelo da plataforma (Riccobene, et al. 2007). Essa juno realizada por meio da elaborao de um modelo de mapeamento que refina os requisitos de entrada em termos de diagramas de componentes e de construo (Riccobene, et al. 2007). Application Model Platform Model Mapping Model Embedded System Platform Model
Figura 6 - Grfico Y do Modelo UPES Os componentes de hardware so mapeados diretamente no modelo de plataforma e os componentes de software implementados como tarefas que usam servios providos pelo modelo de aplicao (Riccobene, et al. 2007). O Processo de Engenharia de Requisitos deste modelo foca especificamente no Processo Unificado Tradicional, dessa forma, no foi includo nesse modelo nenhuma adaptao para o contexto de sistemas embarcados. 3.6 Consideraes Finais do Captulo Este captulo aborda, conceitos relacionados a processos de desenvolvimento de software e seus modelos apresentados na literatura, alm de tcnicas de modelagem de processos, suas fases e componentes. Para finalizar, so descritos alguns processos de desenvolvimento de software tradicionais e especficos para sistemas embarcados. Pgina 42 A Tabela 2 apresenta uma anlise comparativa dos processos de desenvolvimento de sistemas embarcados que visa avaliar a efetiva abrangncia das caractersticas desejadas em um processo de engenharia de requisitos (ER). Tabela 2 - Comparativo das Caractersticas de ER em Processos de Desenvolvimento de Sistemas Embarcados Caracterstica do Processo de ER RUP SE IPProcess UPES 1. H um processo de Engenharia de Requisitos definido? S 1 S S 2. A atividade de levantamento de requisitos realizada? S S S 3. A atividade de especificao se preocupa somente com o que ser desenvolvido? S S S 4. A atividade de design tratada separada da especificao? N 2 S S 5. O processo de engenharia de requisitos possui caractersticas especificas do desenvolvimento de sistemas embarcados S N N 6. O processo de engenharia de requisitos possui a mesma estrutura dos processos tradicionais? N S S
Conforme foi observado na descrio do captulo e no comparativo da Tabela 2, os processos de desenvolvimento de software embarcado se assemelham aos processos tradicionais. Em muitos deles, o maior enfoque dado no projeto software ficando a engenharia de requisitos sem adequaes necessrias ao desenvolvimento desse tipo de sistemas. Dessa forma, identificado como oportunidade de pesquisa, o estudo das adaptaes necessrias aos processos existentes para que o processo de engenharia de requisitos possa atender as caractersticas especficas do software embarcado. O captulo seguinte ir apresentar um detalhamento dos processos de requisitos dos processos de desenvolvimento propostos na literatura. Sero abordados conceitos relacionados aos processos de requisitos tradicionais e especficos para o desenvolvimento de sistemas embarcados Pgina 43 4. REQUISITOS Um dos maiores desafios no processo de desenvolvimento de software ainda atender as expectativas dos usurios. Entender os requisitos de um problema est entre as tarefas mais difceis enfrentadas por um Engenheiro de Software (Pressman 2006). Por mais bem definido e otimizado que seja o sistema necessrio esforo, ateno e experincia por parte da equipe de projeto para entregar ao cliente o que ele deseja e, realmente, precisa. O ponto de partida na concepo de sistemas, sejam eles embarcados ou no, a definio de seus requisitos funcionais e no-funcionais. De acordo com (Hofmann 2001), requisitos deficientes ainda so a maior causa de falhas nos projetos de software. Capers Jones descobriu, por meio de pesquisas realizadas com centenas de organizaes, que a engenharia de requisitos deficiente em mais de 75% das empresas (Jones, 1996, apud Hofmann, 2001, p. 58.Um estudo realizado por (Gastaldo 2003) demonstrou que cerca de 50% do retrabalho referente ao processo de desenvolvimento de software ocorre nas fases iniciais de elicitao, anlise e documentao de requisitos, conforme Figura 7.
Causas de Retrabalho Entendimento do Requisito Projeto Detalhado Interno Codificao Especificao dos Requisitos do Cliente Falta de Especif icao Especificao dos Requisitos Internos Garantia Verif icao de Documento Antecipao de Projeto Teste Integrado Produto/Servio de Terceiros Procedimento de Testes Cliente
Figura 7 - Causas de Retrabalho (Gastaldo 2003) Segundo Gastaldo (Gastaldo 2003), grande parte das causas do retrabalho relacionada aos requisitos no-funcionais de desempenho. Sua pesquisa revelou que por no serem levados em considerao desde o incio do projeto, estes requisitos acabam no Pgina 44 sendo atendidos. Em conseqncia de mudanas de estratgia a fim de inserir um requisito no-funcional no projetado, h aumento de custo e prazo de entrega. Em sistemas embarcados a situao no tem se mostrado diferente. Conforme citado no captulo 2 mudanas na especificao do software e especificaes incompletas esto entre as maiores causas de fracasso nos projetos. Diante deste contexto, a Engenharia de Requisitos tem se tornado cada vez mais necessria para resolver os problemas encontrados nas organizaes com relao definio de sistemas. Elaborar um processo que preencha as lacunas existentes nas fases de elicitao, anlise, documentao e validao de requisitos, especialmente os no-funcionais, uma tarefa de grande importncia para o sucesso dos projetos de sistemas embarcados. Na seo 4.1 sero apresentados os conceitos bsicos relacionados a requisitos de software. A seo 4.1.3 descrever os aspectos de requisitos para sistemas embarcados. Na seo 4.3 podem ser encontradas algumas caractersticas importantes no processo de Engenharia de Requisitos para sistemas embarcados. J a seo 4.4 abordar as consideraes finais do captulo. 4.1 Conceitos Bsicos Nas sees seguintes so apresentados alguns conceitos julgados importantes no contexto este estudo. Vale destacar que no foram descritos todos os conceitos relacionados Engenharia de Requisitos, mas apenas aqueles considerados fundamentais para o bom entendimento da pesquisa. 4.1.1 Requisitos Um requisito definido como uma propriedade que o sistema deve apresentar a fim de resolver algum problema do mundo real (IEEE 2001). J Sommerville (Sommerville 1998) entende requisitos como sendo descries de como os sistemas devem se comportar, informaes sobre o domnio de aplicaes, restries sobre o funcionamento do sistema, ou especificaes de propriedades ou atributos do sistema. Ainda segundo ele, os requisitos so definidos durante os primeiros estgios do desenvolvimento de sistemas como uma especificao do que deve ser implementado. Conforme (Sommerville 1998) um requisito pode descrever: 1. Uma funcionalidade em nvel de usurio (ex.: o processador de texto Word deve incluir um revisor de escrita); Pgina 45 2. Uma propriedade bem geral (ex.: o sistema deve garantir que nenhuma informao pessoal estar disponvel sem autorizao); 3. Uma restrio especfica no sistema (ex.: o sistema deve checar a chegada de mensagens 10 vezes por hora); 4. Como realizar algum clculo (ex.: o clculo do salrio deve ser feito de acordo com a frmula = (remunerao + comisso) descontos); 5. Uma restrio no desenvolvimento do sistema (ex.: o sistema deve ser desenvolvido em C++). Sendo assim, requisitos invariavelmente contm uma mistura de informaes de problemas, declaraes de comportamento e propriedades do sistema e restries de projeto e construo. Isto pode causar dificuldades porque as restries de projeto e construo podem conflitar com outros requisitos. Contudo, esta uma realidade da Engenharia de Requisitos, ento, o Processo de Engenharia de requisitos deve incluir atividades para encontrar e resolver os problemas encontrados (Sommerville 1998). 4.1.2 Requisitos Funcionais x Requisitos No-Funcionais Segundo (IEEE 2001), os requisitos podem variar em seu objetivo e no tipo de propriedades que representam, podendo, desta forma, ser classificados em: Requisitos Funcionais: so aqueles que expressam funes ou servios que um software deve ou pode ser capaz de executar ou fornecer. As funes ou servios so, em geral, processos que utilizam entradas para produzir sadas (Cysneiros 2001). Requisitos No-Funcionais: so requisitos que colocam restries sobre o produto em desenvolvimento, sobre o processo de desenvolvimento, e tambm, especificam restries externas ao produto (Figura 8). Normalmente so determinados pela natureza e tamanho do sistema no qual o software est inserido. Pgina 46
Figura 8 Classificao de Requisitos No-Funcionais (Sommerville 1998) A distino entre este dois tipos de requisitos nem sempre muito clara. Parte da razo advm para o fato de que os requisitos no-funcionais esto sempre relacionados a um requisito funcional (Chung 1999). De uma maneira geral, pode-se dizer que um requisito funcional expressa algum tipo de transformao que tem lugar no software, enquanto um requisito no-funcional expressa como essa transformao ir se comportar ou que qualidades especficas ela dever possuir (Cysneiros 2001). 4.1.3 Engenharia de Requisitos A Engenharia de Requisitos (ER), uma subrea da Engenharia de Software, estuda o processo de definio dos requisitos que o software dever atender. O processo de definio de requisitos uma interface entre os desejos e necessidades dos clientes e a posterior implementao desses requisitos em forma de software (Silva, Implantao de Melhoria no Processo Engenharia de Requisitos na Empresa Frmula Informtica 2004). Segundo (Sommerville 1998), a ER um termo relativamente novo que foi inventado para cobrir todas as atividades envolvidas no descobrimento, documentao e construo de uma srie de requisitos para um sistema baseado em computao. O uso do termo Engenharia implica que tcnicas sistemticas e repetidas devem ser usadas para assegurar que os requisitos do sistema so completos, consistentes, relevantes etc. Pgina 47 A ER a primeira e mais importante atividade de cunho tcnico no desenvolvimento de um software (Kondo, Estudo de Requisitos do Software Embarcado no Segmento da Telemedicina 2006). No entanto, ela trata de conhecimentos no apenas tcnicos, mas tambm gerenciais, organizacionais, econmicos e sociais (Silva, Implantao de Melhoria no Processo Engenharia de Requisitos na Empresa Frmula Informtica 2004). A ER ajuda os engenheiros de software a compreenderem melhor o problema que trabalharo para resolver, ou seja, o que o cliente quer, como os usurios finais vo interagir com o software e qual o impacto do software sobre o negcio (Pressman 2006). As atividades da ER so realizadas no apenas pelos engenheiros de software, conhecidos tambm como engenheiros de sistema ou analistas, mas tambm por outros interessados (gerentes, clientes e usurios finais). Todos podem e devem participar da ER para garantir que o sistema a ser construdo refletir o desejo dos interessados. Afinal de contas, projetar e construir um software elegante que resolva o problema errado no serve s necessidades de ningum. Essa a razo pela qual importante entender o que o cliente deseja antes de comear a projetar e construir um sistema baseado em computador (Pressman 2006). Pesquisas realizadas at o momento sugerem que para grandes sistemas de hardware/software, aproximadamente 15% do oramento total gasto em atividades de ER (Sommerville 1998). Para sistemas pequenos, que normalmente so apenas software, o custo com requisitos normalmente menor, cerca de 10% do total do oramento (Sommerville 1998). O custo com requisitos no baixo, no entanto, as conseqncias de requisitos errados so ainda maiores: 1. O sistema pode ser entregue fora do prazo e com custo superior ao estimado inicialmente; 2. O cliente e os usurios finais podem no ficar satisfeitos com o sistema. Podendo no utilizar algumas funcionalidades ou mesmo decidirem deixar o sistema de lado por completo; 3. O sistema pode ser de uso no confivel, com erros regulares e com desastres interrompendo a operao normal; 4. Se o sistema continuar em uso, o custo de evoluo e manuteno normalmente so altos. Pgina 48 Vale destacar, ainda, que o custo para consertar erros de requisitos , normalmente, muito menor do que consertar erros em estgios posteriores do processo de desenvolvimento. Corrigir problemas de requisitos podem demandar um retrabalho no projeto, implementao e teste do sistema. Conseqentemente, os custos sero altos. Estima-se que o custo para corrigir erros de requisitos pode ser 100 vezes maior do que corrigir um simples erro de programa (Sommerville 1998). 1.1.1.1 Melhores Prticas na ER De acordo com os estudos de Hofmann (Hofmann 2001), projetos de sucesso tm uma correta combinao de conhecimento, recursos e processos. A Tabela 3 resume a relao entre estes trs elementos. Esta tabela apresenta as sugestes de melhores prticas, de acordo com cada uma das reas foco (conhecimento, recursos ou processo), o custo de execuo desta prtica (em termos de introduo da prtica e de sua aplicao) e os benefcios esperados da realizao de tais prticas. Tabela 3 - Melhores Prticas da ER (Hofmann 2001) rea Foco Melhores Prticas Custo de Introduo Custo de Aplicao Benefcios Chaves Envolver clientes e usurios durante a ER Baixo Moderado Melhor entendimento das reais necessidades Identificar e consultar todas as origens de requisitos Baixo a Moderado Moderado Aprimoramento da cobertura dos requisitos Conhecimento Atribuir as atividades de ER a gerentes de projetos e membros da equipe habilidosos Moderado a Alto Moderado Performance mais previsvel Alocar de 15 a 30% do total de esforo do projeto para as atividades de ER Baixo Moderado a Alto Manter uma alta qualidade de especificao do incio ao fim do projeto Prover modelos e exemplos de especificao Baixo a Moderado Baixo Aperfeioar a qualidade da especificao Recursos Manter um bom relacionamento com os envolvidos Baixo Baio a Moderado Satisfazer melhor as necessidades dos clientes Processos Priorizar requisitos Baixo Baixo a Moderado Foco da ateno nas necessidades mais importantes dos clientes Pgina 49 Desenvolver modelos complementares juntamente com os prottipos Baixo a Moderado Moderado Eliminar inconsistncias e ambigidades na especificao Manter a matriz de rastreabilidade Moderado Moderado Explicitar a ligao entre requisitos e produtos de trabalho
Usar reviso por pares, cenrios e walkthroughs para validar e verificar os requisitos Baixo Moderado Especificao mais acurada e alta satisfao do cliente Segundo o estudo realizado por Hofmann (Hofmann 2001), a interao com os envolvidos tem um papel decisivo do incio ao fim dos projetos de sucesso em ER. Os times de mais sucesso sempre abarcam seus clientes e usurios no processo de ER e, alm disso, mantm um excelente relacionamento com todos os envolvidos. Ainda de acordo com as pesquisas de Hofmann (Hofmann 2001), a participao dos usurios o fator mais importante para o sucesso da ER. Alm disso, boas equipes de ER tambm identificam as fronteiras do domnio da aplicao e dos principais envolvidos. E para validar seu entendimento do domnio da aplicao eles identificam e consultam todo tipo de fonte de requisitos: examinam artefatos de sistemas, materiais do sistema atual e dos anteriores etc. Outro fator de grande importncia, segundo (Hofmann 2001), a escolha da equipe de requisitos. necessrio escolher membros com habilidades no domnio da aplicao, na tecnologia a ser utilizada e no processo de ER. Tambm indispensvel a escolha de gerentes de projetos capacitados para a ER. E, quando julgarem necessrio, consultar especialistas do domnio e envolvidos, a fim de aumentarem o conhecimento da equipe. Projetos considerados de sucesso tambm alocam uma significativa parcela de recursos para a ER. Conforme apresentado na Figura 9, Hofmann estima que 28% do total de recursos do projeto alocado para as atividades de ER. Alm disso, a equipe costuma ser distribuda de maneira balanceada: 11% do esforo de projeto para elicitao, 10% para modelagem e 7% para validao e verificao. Para facilitar seu trabalho, normalmente as equipes utilizam modelos e exemplos de documentos de especificao elaborados em projetos anteriores (Hofmann 2001). Pgina 50 Balanceamento da Equipe de ER 72% 11% 7% 10% 28% Outras atividades Elicitao Modelagem Validao e Verificao
Figura 9 - Balanceamento da Equipe de ER (Hofmann 2001) Por fim, Hofmman (Hofmann 2001) destaca que a orientao dos projetos de sucesso so dadas por requisitos priorizados pelos envolvidos. Isto permite que a equipe decida quais requisitos devem ser investigados, quando e com que nvel de detalhe. Alm disso, indispensvel manter a matriz de rastreabilidade dos requisitos. Este artefato permite o rastreamento de um requisito de sua origem at sua implementao. Ademais, equipes de sucesso validam e verificam, repetidamente, seus requisitos com mltiplos envolvidos, utilizando tcnicas como reviso por pares, cenrios e walkthroughs (Hofmann 2001). 4.1.4 Processo de ER Tradicional No existe um processo nico que seja bom para todas as organizaes. Cada organizao deve desenvolver o seu prprio processo, que deve ser apropriado para o tipo de sistema que desenvolve, sua cultura organizacional, o nvel de experincia e habilidade das pessoas envolvidas na ER. Existem vrias formas de se organizar o processo de ER e eles no podem ser transferidos de uma empresa para outra. Para definir um bom processo de ER as organizaes precisam abarcar pessoas que estejam realmente envolvidas na ER, e, caso julguem necessrios, podem solicitar ajuda de consultores externos a fim de obterem uma perspectiva mais objetiva do que aquela dos envolvidos no processo (Sommerville 1998). Poucas organizaes tm um processo de requisitos explicitamente definido e padronizado. Muitos dos padres de ER desenvolvidos at o momento envolvem apenas Pgina 51 sadas de processo, como estrutura de documentos de requisitos. Uma descrio do processo completo deve incluir quais atividades so realizadas, a estrutura ou agendamento destas atividades, quem responsvel por atividade, as entradas e sadas destas atividades e as ferramentas utilizadas para suportar a ER (Sommerville 1998). De maneira geral, o processo de ER realizado por meio da execuo de sete funes distintas: concepo, levantamento, elaborao, negociao, especificao, validao e gesto. importante notar que algumas dessas funes de ER ocorrem em paralelo e que todas so adaptadas s necessidades do projeto. Todas tentam definir o que o cliente deseja e servem para estabelecer uma fundao slida para o projeto e a construo do produto que o cliente receber (Pressman 2006). No RUP a disciplina que descreve o processo de ER designada apenas como Requisitos. O fluxo de trabalho desta disciplina (Figura 10) exibe as chamadas habilidades- chaves necessrias para a execuo eficiente do gerenciamento de requisito, sendo elas: Analisar o Problema, Compreender as Necessidades do Envolvidos, Definir o Sistema, Gerenciar o Escopo do Sistema, Refinar a Definio do Sistema e Gerenciar Requisitos Mutveis. O fluxo de trabalho exibido em ordem lgica e seqencial, embora seja aplicado em ordem diferente, conforme a necessidade no decorrer do projeto. Pgina 52
Figura 10 - Fluxo de Trabalho da Disciplina de Requisitos (RUP 2001) 4.1.5 Gerncia de Requisitos A Gerncia de Requisitos consiste no processo de gerenciar mudanas nos requisitos do sistema. Afinal, os requisitos de um sistema sempre mudam para refletir as necessidades de mudanas solicitadas pelos envolvidos, as mudanas do negcio no qual o sistema dever ser instalado, mudanas nas leis e regulamentaes, etc (Sommerville 1998). Estas mudanas devem ser gerenciadas para garantir que estejam dentro do oramento e do prazo estipulados. As principais atividades da gerncia de requisitos so o controle da mudana e a avaliao do impacto da mudana. Neste sentido, a gerncia de requisitos exige que a rastreabilidade dos requisitos seja armazenada (Sommerville 1998). Ou seja, ligaes entre os requisitos, as fontes de requisitos e o projeto do sistema devem ser rastreadas e guardadas, de maneira que estejam disponveis no momento de avaliar o impacto e controlar as mudanas do sistema. Pgina 53 4.1.6 Envolvidos no Processo de Engenharia de Requisitos Os envolvidos no processo de ER so as pessoas ou organizaes afetadas pelo sistema e que tm uma influncia direta ou indireta nos requisitos deste sistema (Sommerville 1998). Os envolvidos incluem usurios finais do sistema, gerentes e outros envolvidos no processo organizacional influenciados pelo sistema, engenheiros responsveis pelo desenvolvimento e manuteno do sistema, clientes, etc. 4.1.7 Revises de Requisitos Revises dos requisitos configuram-se como a tcnica mais utilizada na validao de requisitos (Sommerville 1998). Elas incluem um grupo de pessoas que lem e analisam os requisitos em busca de possveis problemas. Algumas das tcnicas utilizadas para este fim so: a inspeo, o walkthrough e a reviso por pares. A inspeo consiste na leitura passo a passo do documento, a reviso feita confrontando-o com uma lista de itens que define o escopo da reviso (lista de verificao). A equipe de inspeo do projeto geralmente composta de quatro pessoas sendo que uma delas atua no papel de moderador. J o walkthrough consiste na leitura passo a passo do documento revisado em uma reunio formal na qual o profissional que elaborou o documento participa. A principal diferena dos dois mtodos a maneira como a reviso conduzida, enquanto a inspeo baseada em uma lista de verificao o walkthrough simula a execuo do programa (Drias 2001). Outra tcnica de reviso a reviso por pares. Neste mtodo duas pessoas revisam o produto com o objetivo de discutir pontos crticos a fim de obter benefcios dos pontos de vista divergentes (Drias 2001).
4.2 Requisitos em Sistemas Embarcados Sistemas embarcados possuem caractersticas bem especficas no que diz respeito a seus requisitos. Nas sees seguintes so abordados alguns destes aspectos. 4.2.1 Requisitos No Funcionais Conforme j foi citado no captulo 2, este tipo de sistema deve obedecer a restries severas no que diz respeito a requisitos temporais, de peso, tamanho, mobilidade, segurana, confiabilidade, consumo de energia e memria. Nota-se, portanto, que um dos maiores desafios no desenvolvimento de sistemas embarcados o atendimento de seus Pgina 54 requisitos no-funcionais, ou seja, aqueles cuja preocupao no especificamente com a funcionalidade do sistema (Sommerville 1998). No entanto, os requisitos no funcionais citados anteriormente no se configuram como os nicos complicadores do domnio de sistemas embarcados. Um estudo publicado por (Nars 2002) destaca, ainda, que softwares embarcados possuem propriedades como: 1. Estarem, com freqncia, embutidos em sistemas muito maiores e complexos; 2. Estarem acoplados a um hardware, de maneira que sensores e atuadores so os responsveis por controlar as atividades; 3. Normalmente, a parte fsica do sistema j est estabelecida, devendo-se adaptar o software ao hardware existente; Existe, ainda, a demanda do mercado por produtos de baixo custo e curto prazo de desenvolvimento (Yamaura 2003). Ou seja, estes softwares, alm de possurem caractersticas extremamente complexas, devem garantir uma rpida entrega e produtos de altssima qualidade (S. K. Lee 2007). Ademais, muitos destes produtos so dirigidos inovao, como no caso de celulares, carros e avies. E neste caso, ser o primeiro a lanar um produto no mercado garante um lucro superior. Mas isto somente possvel caso o retorno do investimento exceda os custos de desenvolvimento e produo (Puschnig 2004). Aliado a estas caractersticas tm-se o fato de que os requisitos no funcionais so geralmente subjetivos, uma vez que podem ser vistos, interpretados e conceituados de forma diferente por diferentes pessoas. Apesar dos requisitos funcionais tambm serem afetados por pontos de vista variados, nos no funcionais este problema potencializado. Isto ocorre devido ao fato dos requisitos no funcionais serem, por natureza, mais abstratos, alm de normalmente serem especificados de maneira mais breve e vaga (Cysneiros 2001). Ademais, requisitos no funcionais freqentemente interagem entre si, j que na tentativa de satisfazer um requisito pode-se prejudicar ou ajudar a satisfazer outros. Lidar com os requisitos no-funcionais no uma tarefa fcil, mas seu tratamento vital para a construo de sistemas embarcados. Outro aspecto importante no que diz respeito a requisitos no funcionais o fato de serem descobertos ou tratados tardiamente no projeto. E um dos motivos dos requisitos no-funcionais no serem definidos e analisados logo no incio do projeto o fato de no serem cobertos pela maioria dos mtodos de Engenharia de Requisitos (Sommerville 1998). Pgina 55 A explicao para isto a dificuldade para definir tal tipo de requisitos, e Sommerville (Sommerville 1998) apontou algumas destas causas: 1. Algumas restries somente so descobertas na fase de projeto; 2. Certas restries so altamente subjetivas, sendo determinadas, apenas, por avaliaes empricas; 3. Os requisitos no-funcionais tendem a estar relacionados com mais de um requisito funcional, dificultando a explicitao desta dependncia; 4. Os requisitos no-funcionais tendem a conflitar e contradizer uns aos outros; 5. De uma maneira geral, no existem regras definidas para expressar os requisitos no-funcionais. Buscando resolver estes problemas, Gilb (Gilb 1989) sugere a utilizao de um mtodo para especificao de requisitos no-funcionais denominado PLanguage. A PLanguage ou Planning Language (Gilb 1989)permite a medio e o teste da qualidade dos requisitos no-funcionais especificados e possui benefcios como facilidade de aprendizado e flexibilidade, alm de ser compacta e prevenir omisses atravs de um conjunto consistente de parmetros de qualidade que podem ser utilizados nas especificaes (Gastaldo 2003). Sua forma de apresentao composta por um conjunto de palavras-chave nas quais os requisitos devem ser especificados. Seu formato, atributos e conceitos so apresentados na Tabela 4 (Gastaldo 2003). Tabela 4 Definio das palavras-chave da linguagem de especificao PLanguage (Gastaldo 2003) Palavras-Chave Descrio Tipo Etiqueta, rtulo, identificador persistente e nico do requisito Descrio Descrio simples e breve do conceito principal ou significado geral do requisito Stakeholder Envolvidos/Afetados pelo requisito Escala Escala usada para quantificar o requisito Mtrica Processo ou mtodo para medir escalas dos requisitos Mtodo Mtodo para medir a escala Freqncia Freqncia para medio Responsvel Pessoas/Departamento responsvel por fazer as medies Pgina 56 Registro Onde/Quando as medidas devem ser reportadas Nvel Mnimo O nvel mnimo requerido para evitar falhas Plano Nvel para obter sucesso exigido Nvel Sucesso Como prolongar, aumentar, alongar o sucesso Nvel Desejado Nvel desejvel de sucesso que no pode ser atingido atravs dos mtodos atuais Histrico Resultados anteriores para comparao (histrico) Tendncia Tendncia histrica Histrico de Sucesso O melhor resultado obtido Definio Definio oficial do termo Autoridade Pessoa, grupo ou nvel de autorizao Como pode ser visto na Tabela 4, o formato da PLanguage claro para qualquer integrante do projeto. A utilizao deste mtodo tem como objetivo resolver os problemas de falta de tcnicas para o levantamento de requisitos, falta de detalhamento e clareza nas especificaes, confuso entre requisitos funcionais e no-funcionais e a falta de formatao e apresentao. Alm disso, o PLanguage ainda tem a vantagem de os testes poderem ser feitos com base na prpria especificao, eliminando o trabalho da elaborao de um documento de especificao e outro de testes (Gastaldo 2003). 4.2.2 Requisitos de Hardware x Requisitos de Software Outro ponto importante, no que se refere aos requisitos em sistemas embarcados, a difcil separao, durante a modelagem de requisitos, entre o hardware e o software, uma vez que esto profundamente acoplados e so altamente interativos (Nars 2002). Os softwares de sistemas embarcados normalmente controlam componentes de hardware que esto dentro dos limites do prprio sistema em desenvolvimento (Nars 2002). 4.2.3 Inveno de Requisitos comum, na Engenharia de Software, a assertiva de que os fornecedores de requisitos muitas vezes no sabem ou no conseguem expressar o que esperam do sistema. Em sistemas embarcados esta uma realidade com a qual os engenheiros de software devem lidar com freqncia ainda maior, visto que so responsveis pela construo de celulares, eletrodomsticos, carros e avies de ltima gerao. E criar novos Pgina 57 produtos requer a inveno de novos requisitos, requisitos estes que nem mesmo os envolvidos sabem ainda quais so. E papel dos engenheiros de requisitos inventar alguma coisa melhor (Robertson, Eureka! Why Analysts Should Invent Requirements 2002). Isto exige, alm de criatividade, um profundo conhecimento, por parte da equipe, a cerca do domnio do negcio (Puschnig 2004).
4.3 Processo de ER para Sistemas Embarcados Se, conforme apontado por (Sommerville 1998) poucas organizaes tm um processo de requisitos explicitamente definido e padronizado, processos de ER especficos para sistemas embarcados so ainda mais difceis de encontrar. A literatura sobre o assunto restrita, de maneira que no foi possvel encontrar sequer uma fonte que definisse um processo completo de ER para sistemas embarcados. O nico estudo que se aproximou do procurado foi um inventrio publicado por (Graaf 2003). Diante desta dificuldade a presente seo foi dividida de acordo com os assuntos abordados nas diversas fontes consultadas. Tendo sido descritas, em cada tpico, as prticas mais comuns utilizadas durante o processo de ER para softwares embarcados. 4.3.1 Contexto das Empresas Desenvolvedoras de SE Um estudo bastante abrangente em relao ao desenvolvimento de softwares embarcados foi publicado por Graaf (Graaf 2003). De acordo com este inventrio realizado em trs pases europeus, envolvendo sete companhias e um instituto de pesquisa, a maioria das companhias que desenvolve softwares embarcados no os vende. Eles vendem, na realidade, telefones celulares, CD players e outros produtos. O software nestes produtos constitui apenas uma parte, certamente importante, do produto como um todo. No entanto, quanto mais transparente e acoplado ao hardware ele for, mais invisvel ele ser do ponto de vista do produto (Henzinger 2007). Na realidade, os softwares somente so visveis atravs dos aprimoramentos nas funes e na performance dos produtos (Henzinger 2007). Alm disso, grande parte das empresas possui um desenvolvimento dirigido ao hardware, ou seja, apenas quando o hardware j est em um estgio avanado de desenvolvimento que o software comea a ser desenvolvido (Graaf 2003). Isto significa que o software deve, necessariamente, adaptar-se ao hardware construdo. Este aspecto revelou-se um problema, na medida em que muitas dificuldades que poderiam ser resolvidas no domnio do hardware acabam solucionadas pelo software (Graaf 2003). E esta Pgina 58 situao pode ser agravada com a freqncia cada vez maior do modelo de negcios horizontal, onde a responsabilidade da produo de um novo projeto distribuda entre companhias distintas (Sangiovanni-Vincentelli 2004). O software assume, assim, o papel de integrador dos diversos componentes. Outra conseqncia, observada por (Graaf 2003), deste desenvolvimento orientado ao hardware que em algumas companhias os arquitetos de software no eram sequer envolvidos nas decises de projeto em nvel de sistema. Os desenvolvedores de softwares embarcados sentiram que isto estava se tornando um problema srio e, em funo disto, muitas companhias esto mudando, de maneira que os arquitetos de software esto cada dia mais envolvidos nas decises em nvel de sistema. Dado o contexto em os softwares embarcados esto inseridos, no de se surpreender que o ele seja, hoje, a parte mais cara e menos confivel das aplicaes de sistemas embarcados (Henzinger 2007). 4.3.2 Processos de Desenvolvimento de SE Sob o Ponto de Vista da ER De acordo com as pesquisas de (Graaf 2003), o modelo mais comum de processo de desenvolvimento de sistemas embarcados utiliza uma abordagem top-down. Ou seja, nestes modelos as refinaes de requisitos e arquitetura so realizadas em vrias iteraes subseqentes, partindo do nvel de sistemas at chegar ao nvel de componente. A Figura 11 apresenta este modelo. Pgina 59 Requisitos Arquitetura Requisitos Arquitetura Requisitos Arquitetura Requisitos Arquitetura Requisitos Arquitetura Requisitos Arquitetura Requisitos Arquitetura ... ... Projeto de Arquitetura Sistema Subsistema Componente Anlise de Requisitos Requisitos Arquitetura
Figura 11 - Decomposio do processo de desenvolvimento de sistemas embarcados (Graaf 2003) J a metodologia de especificao de requisitos elaborada por (Lattemann 1997) consiste de cinco passos. Em cada passo as caractersticas relevantes do sistema para aquele passo so adicionadas especificao de requisitos, conforme representado na Figura 12. Pgina 60 Requisitos Requisitos Projeto (Refinado) Sistema Controlador Requisitos Projeto (Alto Nvel) Componente Requisitos Componente Requisitos ... Especificao de Requisitos ... Componente Especificao de Requisitos Realizao e Implementao Software de Controle
Figura 12 - Processo de Especificao de Requisitos (Lattemann 1997) Neste processo (Lattemann 1997) defende que primeiro devem ser descritos os requisitos do sistema como um todo, sem considerar os possveis erros e falhas. Para facilitar esta etapa (Lattemann 1997) sugere que o sistema seja dividido em componentes e que sejam criadas conexes entre estes. A prxima etapa a especificao dos requisitos do controlador, definindo-se as interfaces entre hardware e software. Depois construdo o projeto em alto nvel e, por fim, este projeto refinado, podendo-se partir para a realizao e implementao. Neste ponto, a abordagem de especificao de requisitos elaborada por (Lattemann 1997) no se distancia muito do processo genrico desenhado por (Graaf 2003). Pois, apesar de no utilizarem os mesmos termos, em ambos o sistema divido em sistemas menores e a especificao refinada em etapas. Pgina 61 Por outro lado o processo de elicitao e especificao de requisitos utilizado por (Nars 2002) toma como base a tcnica de caso de uso e possui 7 etapas principais, conforme ilustrado na Figura 13. Definir Sistema Elaborar Documentos Descrever os Casos de Uso Criar Modelo de Casos Uso Encontrar Atores Sistema Definir Requisitos de Qualidade Encontrar Casos de Uso
Figura 13 - Interao indireta entre o piloto e um caso de uso do TRCS (Nars 2002) O primeiro passo desta abordagem a definio do sistema, que tem por objetivo restringir o escopo e entender o sistema a ser construdo. A segunda etapa consiste na especificao dos requisitos de qualidade, onde devem ser definidas explicitamente as restries do sistema. Daqui em diante o processo de (Nars 2002) muito se assemelha aos processos tradicionais de ER: so encontrados os atores, os casos de uso, construdo o modelo de caso de uso e so elaborados os documentos do sistema. O diferencial desta abordagem o fato de (Nars 2002) defender para encontrar os casos de uso o adequado trabalhar baseado em funes e no em atores. Alm de proporcionar maior flexibilidade, esta tcnica permite que se encontre com maior habilidade todos os casos de uso funcionais do sistema. Nars (Nars 2002) ressalta ainda que muito cuidado deve ser tomado a fim de identificar apenas o que necessrio para o sistema em especificao, pois, no domnio de softwares de controle de sistemas embarcados um grande desafio levantar apenas as funcionalidades do sistema a ser construdo, dada a alta interatividade entre ele e os demais sistemas envolvidos. Alm disso, (Nars 2002) aconselha que seja utilizado um processo iterativo e progressivo de refinamento. Como pode ser visto, diferentemente das abordagens de (Lattemann 1997) e (Graaf 2003), Nars (Nars 2002) no divide a especificao de requisitos em subsistemas ou separa as especificaes de hardware e software. Pelo contrrio, Nars defende a especificao do sistema como todo, dada a difcil separao de hardware e software no contexto de sistemas embarcados (Nars 2002). 4.3.3 Metodologias para Especificao dos Requisitos em SE Pgina 62 De acordo com (Graaf 2003) a UML ainda no uma prtica comum, mas muitas empresas j tm considerado sua possibilidade de aplicao na ER. Mesmo no tendo adotado a UML como padro, muitos projetos utilizaram diagramas para representar requisitos cujas formas, em sua maioria, lembravam o estilo de diagrama da UML ou outras notaes. Ainda segundo (Graaf 2003), as construes mais utilizadas pelas companhias foram os casos de uso. No entanto, alguns projetos chegaram a usar diagramas de seqncia para realizar os casos de uso, outros aplicaram diagrama de classes para modelar o domnio. Mas em muitos casos a interpretao das notaes UML no estava muito clara. Neste aspecto, (Puschnig 2004) defendem a utilizao da tcnica de caso de uso, pois de acordo com suas pesquisas, a modelagem por casos de uso foi de grande valia para o entendimento inicial do sistema, por parte dos especialistas, mesmo quando estes modelos ainda eram incompletos ou incorretos, uma vez que serviam como base para as discusses. Apesar dos inmeros benefcios apontados pela literatura em relao utilizao de casos de uso, (Nars 2002) ressalta que a aplicao desta tcnica em um caso real da indstria de sistemas embarcados revelou certa confuso pelas seguintes razes: a tcnica de caso de uso carente de definies apropriadas para a adaptao a sistemas embarcados, falta uma clara definio do processo de aplicao prtica da tcnica de caso de uso e as relaes entre requisitos e casos de uso no claras o suficiente. Buscando resolver estas questes, (Nars 2002) no apenas props, mas aplicou em um sistema do ramo avinico, algumas adaptaes na tcnica de caso de uso a fim de adequ-la ao universo de sistemas embarcados, conforme descrito na seo 2.2.2 No entanto, antes de definir o processo de elicitao e especificao de requisitos baseado em casos de uso, (Nars 2002) esclarece como so interpretados os principais construtores da tcnica de caso de uso ao adaptar esta tcnica ao domnio de sistemas embarcados. Tomando como base os principais construtores da tcnica de caso de uso Figura 14 o autor destaca que: Pgina 63
Figura 14 - Os principais construtores da tcnica de caso de uso (Nars 2002) mais apropriado considerar como sistema a composio de ambos, hardware e software, visto que muito difcil separ-los durante a modelagem de requisitos; Um ator representa o papel de uma entidade externa e no a prpria entidade externa, ressaltando-se que uma entidade pode ser qualquer coisa, humana ou no (outros sistemas, software ou hardware, uma tempestade, um pssaro, etc.); Um ator est situado fora da fronteira do sistema a ser modelado; Um ator deve interagir diretamente com o sistema a ser modelado; Um caso de uso pode ser iniciado internamente pelo sistema, no sendo necessria a interveno de um ator. Esta adaptao visa atender peculiaridade de que em softwares de controle de sistemas embarcados a maioria das funes de controle realizada sem que haja uma entrada externa; Um caso de uso pode descrever funcionalidades internas de um sistema e no apenas seu comportamento externo; Muitas vezes durante a elicitao de requisitos os autores sentiram a necessidade de modelar uma interao temporria entre uma ator e um caso de uso. Em um avio, por exemplo, o piloto o ator responsvel por controlar todo o hardware do avio, no entanto, caso se esteja modelando apenas o sistema de controle do reverso (designado TRCS) do avio, o piloto realizar a interao atravs de outros sistemas do avio. Para resolver esta questo foi criada a ligao indireta entre caso de uso e ator, conforme pode ser observado na Figura 15. Pgina 64
Figura 15 - Interao indireta entre o piloto e um caso de uso do TRCS (Nars 2002) 4.3.4 Envolvidos no Processo de ER para SE Outro complicador comum no desenvolvimento de sistemas embarcados a participao de muitos envolvidos, e isto ainda mais notrio durante a ER. A Figura 16 apresenta os envolvidos encontrados com mais freqncia no processo de ER de acordo com o inventrio de Graaf (Graaf 2003). Segundo (Graaf 2003), na primeira fase da ER o cliente determina os requisitos funcionais e no funcionais, e, dependendo do domnio do produto, estes requisitos so negociados entre o cliente e as reas de marketing e venda ou mesmo diretamente com os desenvolvedores. Ou seja, o Engenheiro de Requisitos no aparece no momento da negociao. Requisitos dos Envolvidos Envolvidos Fornecedores Engenharia de Requisitos Sistemas Legados Reguladores Padres Contexto Clientes/Usurios Marketing Fabricao Manuteno
Figura 16 - Envolvidos do desenvolvimento de sistemas embarcados (Graaf 2003) Um estudo realizado por (Puschnig 2004) identificou que, para o sucesso da ER do domnio de SEs, alm do ncleo da equipe de desenvolvimento formada por engenheiros de requisitos, analista de processo, programadores, etc., necessrio o envolvimento de Pgina 65 especialistas de diferentes domnios. Isto se faz necessrio em virtude do pouco conhecimento que os envolvidos muitas vezes possuem acerca do sistema a ser desenvolvido. A soluo encontrada, portanto, foi o envolvimento de especialistas nas mais diversas reas. Em sua maioria, os especialistas requisitados estavam associados a uma rea especfica de conhecimento: desenvolvedores, professores, gerentes, engenheiros de produo, consultores e fornecedores. Os engenheiros de software e os especialistas trabalhavam em conjunto, de maneira que os primeiros possuam uma concepo do sistema como um todo, ao passo que os segundos tinham o conhecimento detalhado de um ou mais aspectos tcnicos. No entanto para definir qual especialista ser necessrio e em que momento dever ser requisitado necessrio, em primeiro lugar, estabelecer as fronteiras do sistema. Com tantas pessoas envolvidas no projeto fica complicado gerenciar os diferentes requisitos provenientes de todas estas fontes. Esta caracterstica marcante, especialmente, em projetos grandes (Graaf 2003). Ademais, normalmente muitos dos especialistas requisitados no esto situados em um mesmo local e nem esto disponveis a todo o momento, visto que podem estar alocados em mais de um projeto. Portanto, papel do gerente de projeto prover os arranjos necessrios para garantir o efetivo e eficiente envolvimento dos membros do projeto (Puschnig 2004). 4.3.5 Modelos de Documentos para Especificao dos Requisitos em SE Segundo (Graaf 2003), as companhias estudadas normalmente especificavam seus requisitos em linguagem natural, registrando as informaes em processadores de texto. Normalmente utilizam modelos para estruturar os documentos, assim teriam um guia do que devia ser levantado. No entanto, nem todos os projetos de uma mesma companhia utilizavam os modelos, de maneira que podiam ser encontrados diferentes modelos de documentos dentro de um mesmo projeto. Como nos softwares embarcados as propriedades no funcionais so, geralmente, de grande importncia, a expectativa era de que os modelos desenvolvidos pelas empresas estudadas por (Graaf 2003) reservassem uma seo apenas para requisitos no funcionais, mas no foi o que se observou. Alguns projetos ainda chegaram a especificar caractersticas como restries de tempo-real em documentos separados, mas de maneira geral, estes e outros requisitos como consumo de energia e memria no eram explicitamente especificados e projetados. Pgina 66 4.3.6 Gerenciamento de Requisitos em SE Outro complicador destacado por (Graaf 2003) o fato de muitas companhias construrem projetos em cima de projetos anteriores. Ou seja, estes projetos reutilizavam as especificaes de requisitos, mesmo para o desenvolvimento de uma nova linha de produto. Conseqentemente, deixar a documentao de requisitos consistente uma tarefa rdua, pois para deixar todos os produtos e documentos do desenvolvimento consistentes, preciso analisar precisamente o impacto de novas caractersticas. No entanto, os projetos estudados freqentemente no explicitavam as relaes entre requisitos, ento a anlise de impactos era muito difcil. Rastrear os requisitos era difcil por que as relaes (por exemplo, entre requisitos e componentes arquiteturais) eram muito complexas para serem especificadas manualmente e as ferramentas de gerenciamento de requisitos disponveis no pareciam resolver este problema, apesar de algumas verses customizadas funcionarem em alguns casos. Esta rastreabilidade um aspecto essencial do gerenciamento de requisitos, visto que entender os riscos associados ao impacto do software em seu ambiente fundamental para assegurar a dependabilidade e a segurana no funcionamento de sistemas embarcados. Infelizmente, a anlise de risco de sistemas embarcados tem sido negligenciada e apenas recentemente tem recebido ateno da comunidade de engenharia de software (Hewett 2005). 4.3.7 Outros Aspectos Importantes no Processo de ER para SE O estudo realizado por (Puschnig 2004) em dois projetos da Daimler Chrysler revelou outros dois aspectos, ainda no abordados at o momento, que se mostraram de grande importncia para o sucesso da ER no domnio de sistemas embarcados: Orientao a objetivos: abordagens orientadas a objetivos so comuns na literatura, mas em sistemas altamente inovadores como os embarcados esta abordagem essencial para descrever apropriadamente o sistema. To importante quanto a orientao a objetivos a utilizao de camadas de abstrao, visto que muito difcil solicitar aos especialistas que discorram sobre suas ideais de maneira mais abstrata. Revises: as revises revelaram-se uma maneira de completar a especificao de requisitos e de elevar os requisitos a um nvel confivel e maduro. Uma conseqncia das revises, no entanto, a quantidade de Pgina 67 tempo gasta em cada uma, visto que segundo suas pesquisas, os autores chegaram a despender um dia inteiro ou at mais em cada reviso. Entretanto, as revises aparecem como uma oportunidade para capturar e consolidar os requisitos com a ajuda dos especialistas, ou seja, mais uma chance de realizar um trabalho efetivo e de exercitar a sinergia. (Puschnig 2004) sugerem que durante as revises sejam executadas as seguintes tarefas: coleta dos comentrios gerais sobre a compreenso, estruturao e apresentao do documento de especificao inspecionado. Estes comentrios devem ser consolidados e de acordo com a relevncia deve ser feito um ranking, de maneira que possam ser negociados e documentados. Como sada desta etapa deve ser gerado um relatrio de reviso com os comentrios e a concordncia de todos os envolvidos. 4.4 Consideraes Finais Conforme exposto neste captulo, sistemas embarcados no possuem processos definidos e institucionalizados para ER. Alm disso, as abordagens para a levantamento e especificao de requisitos apresentadas mostraram-se inadequadas para o contexto deste tipo de sistema. De maneira que estes processos no conseguiram resolver ou minimizar as dificuldades no desenvolvimento de softwares embarcados. O captulo a seguir apresentar a abordagem GQM. Este mtodo ser utilizado na elaborao dos objetivos, questes e mtricas da avaliao a ser submetida s empresas participantes do programa de medies. A gerao dos indicadores a partir das informaes coletadas nesta pesquisa permitir a criao de um processo que melhor se adapte realidade das MPEs desenvolvedoras de softwares embarcados. Pgina 68 5. ABORDAGEM GQM Conforme descrito no Captulo 03, o aumento dos custos e da complexidade de desenvolvimento de sistemas aliados a necessidade de ampliao da competitividade das organizaes, tem levado a uma exigncia cada vez maior pela qualidade dos softwares produzidos (Farias 2006) Alm da dificuldade de se desenvolver software com qualidade a identificao dos problemas que ocorrem durante o desenvolvimento do produto de baixa qualidade um ponto extremamente custoso para as empresas. Para melhorar a qualidade dos sistemas desenvolvidos necessrio entender os recursos, processos e os produtos e seus impactos na organizao. Isso requer que a empresa capture conhecimento do desenvolvimento de software (por meio da aplicao de programas de medies ou utilizao de bases de conhecimento) e o aplique no planejamento,. controle e melhoramento de seus processos e de seus projetos (Wangenheim e Ruhe 1999). A abordagem GQM um mtodo de especificao de programas de medio de software que permite que as informaes obtidas sejam utilizadas para acompanhamento do alcance dos objetivos traados para o programa (Goethert e Fischer 2003). Este captulo aborda conceitos relacionados ao mtodo GQM. A seo 5.1 descreve o modelo GQM e seus nveis, e identifica suas fases. As sees 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5 descrevem em detalhes as fases do modelo GQM, suas atividades e os produtos gerados. Por fim, a seo 5.2 descreve as consideraes finais do captulo. 5.1 O Mtodo Goal Question Metric (GQM) A metodologia GQM foi originalmente concebida durante as dcadas de 70 e 80 por Victor Basili e David M. Weiss, posteriormente foi estendida e formalizada por Rombach e sua equipe (Basili e Rombach 1994). Proposta com o objetivo de avaliar defeitos em projetos no Centro Espacial da NASA, a metodologia GQM tem expandido sua utilizao para um grande contexto de aplicaes na rea de Engenharia de Software, principalmente por se adaptar facilmente para a avaliao de qualquer tipo de problema (Basili e Rombach 1994) (Kopanas, Sylaidis e Nakakis 1997). Andrade e Souza , por exemplo, propem a definio de um modelo de mtricas que avalie processos de software (Anquetil, Oliveira e Souza 2005). Soligen e Bergouth (Berghout e Solligen 1999), apresentam estudos para utilizao do GQM na definio de um modelo de mtricas, alm de vrias outras propostas de utilizao da metodologia (Anquetil, Oliveira e Souza 2005) (Basili e Rombach 1994). Pgina 69 O principal objetivo da metodologia GQM fornecer e caracterizar um melhor entendimento dos processos, produtos, recursos e ambiente para estabelecer bases para comparaes com trabalhos futuros ou at mesmo com metas (ndices) de mercado (Anquetil, Oliveira e Souza 2005). Portanto, podemos defini-la como uma abordagem sistemtica que define e integra objetivos a modelos de processo, produtos e servios sob a perspectiva de qualidade baseada em necessidades especficas dos projetos e das organizaes atravs de um programa de medies (Gladcheff, Sanches e da Silva 2001). O GQM amplamente citado na literatura como um mecanismo eficiente utilizado para planejar e definir objetivos da medio e avaliar produtos e processos de software, pois uma abordagem de mensurao que orientada pela avaliao orientada a objetivos (Gladcheff, Sanches e da Silva 2001) (Ramos 2004).O princpio da metodologia GQM a definio de um ou mais objetivos que servem de rota para a definio de questes que orientam a elaborao de mtricas para avaliao dos objetivos especificados (Anquetil, Oliveira e Souza 2005). O modelo GQM parte do princpio que a implementao de metas operacionais e mensurveis para melhoria de software deve seguir uma abordagem top- down, no entanto a interpretao dos dados coletados durante a avaliao deve seguir a abordagem bottom-up (Wangenheim e Ruhe 1999). Portanto, a abordagem estabelece que primeiramente os objetivos devem ser traados para que posteriormente sejam definidas suas questes e mtricas para avaliao. Sendo assim, pode-se subdividir o processo em trs nveis distintos (Basili e Rombach 1994): Conceitual (Goal): Definio do objetivo (produto, processo ou servio) para uma variedade de questes, propsito da aplicao do GQM (ex.: melhorar, caracterizar ou controlar), foco de qualidade (caractersticas de qualidade), ponto de vista (interessados na aplicao do GQM) e ambiente (contexto para aplicao do resultado). Operacional (Question): Definio do conjunto de questes em linguagem natural propostas para caracterizar a forma de avaliao para um objetivo especfico definido no nvel conceitual. Quantitativo (Metric): Definio do conjunto de mtricas associadas a cada questo que especificam em termos quantitativos e avaliveis as informaes que se deseja obter durante a avaliao. Pgina 70 Segundo (Anquetil, Oliveira e Souza 2005) apud (Berghout e Solligen 1999), a implantao do modelo GQM realizada em quatro fases, que sero descritas nas sees a seguir. A Figura 17 ilustra as os dados produzidos em cada uma das fases do modelo GQM: Figura 17 - Fases da Abordagem GQM (Berghout e Solligen 1999)
5.1.1 Planejamento Nesta fase so realizados estudos e definies iniciais para introduo do programa de avaliao. Suas principais atividades so a coleta de todas as informaes necessrias para o incio da avaliao, a designao, o treinamento e a motivao da equipe que ir participar do GQM, a seleo da rea a ser melhorada, a identificao dos projetos que iro participar da aplicao do mtodo, a identificao de quando e como os dados sero coletados e a criao do Plano de Projeto. A fase de planejamento pode ser subdividida em quatro sub-fases (Laboratory s.d.): 4. Definio da equipe GQM: Alguns pontos devem ser levados em considerao quando a equipe definida: a equipe deve ser capaz de definir objetivos e melhorias orientada pelo planejamento do projeto, o planejamento da coleta de dados deve ser elaborada e a equipe deve ser treinada para a interpretao dos dados. 5. Seleo da rea de melhoria: Nessa fase diversas reas processos ou produtos de software devem ser selecionadas. A escolha da rea de melhoria deve ser realizada levando em considerao o negcio, os objetivos, os custos, o tempo os riscos e a qualidade da avaliao. Outros detalhes como problemas que podem ocorrer durante o processo de avaliao, influncias externas, pessoas, processos e produtos envolvidos e conhecimento prvio das pessoas que esto Pgina 71 envolvidas no projeto sobre o processo de medio devem ser levados em conta na elaborao da lista de seleo. 6. Seleo do projeto e definio da equipe de projeto: A equipe GQM deve alinhar a equipe de projetos selecionada para a medio, com o objetivo de mant-los cientes dos princpios do GQM enfatizando suas principais caractersticas. 7. Elaborao do Plano de Projeto: o Plano de Projeto elaborado por meio de informaes da equipe de projeto, o documento deve possuir: o Programa de Medies: Breve descrio do Plano de Projetos. o Introduo: Apresenta uma viso geral do programa de medies e contm uma descrio de como os objetivos de melhoria so traduzidos em objetivos de projetos de desenvolvimento de software. o Programao (cronograma): Descrio completa das tarefas planejadas, quais formulrios sero utilizados e que momento sero aplicados, resultados que devem ser obtidos e os custos e benefcios esperados. o Organizao: Define os objetivos da organizao que so relevantes no programa de medies. o Gerenciamento dos Processos: Contm os procedimentos de comunicao, as prioridades e descries das atividades de controle de riscos. o Treinamento e Promoo: Define como ser o processo de treinamento e de divulgao do programa de medies. 5.1.2 Definio Nesta etapa so definidos e documentados os objetivos, questes, mtricas e hipteses. A definio do programa de medies composta das seguintes dimenses (Gladcheff, Sanches e da Silva 2001): Objeto de Estudo: O que ser analisado. Objetivo: Envolve quatro aspectos o propsito da anlise (determinar, caracterizar, melhorar ou controlar alguma caracterstica do objeto de medida), foco de qualidade (qual atributo do objeto ser avaliado), ponto de vista (identifica Pgina 72 quais os interessados pelo resultado da pesquisa), e contexto (em qual ambiente est localizado). Questes: Conjunto de perguntas que expressam a forma de se obter informaes em uma linguagem natural cujas respostas devem estar de acordo com os objetivos. Mtricas: Conjunto de medidas que especificam em termos quantitativos e avaliveis, as informaes que se deseja obter durante as avaliaes. A fase de definio pode ser subdividida em nove sub-fases (Laboratory s.d.): 8. Definio dos Objetivos da Medio: Nesta fase os objetivos da medio devem ser formalmente definidos e estruturados. A Tabela 5 define algumas questes relevantes na definio dos objetivos de medio: Tabela 5 Questes de Definio dos Objetivos da Medio (Laboratory s.d.) Qual? o objeto que ser avaliado. Por qu? entender, controlar e melhorar o objeto de medio. Qual aspecto? qual o foco da qualidade ser avaliado no objeto de medio. Quem? as pessoas que avaliam o objeto de medio. Contexto. o ambiente no qual o objeto de medio ser avaliado. 9. Definio do Modelo de Processos de Software: Nesta etapa podem ser utilizados modelos de processos de software existentes ou podem ser criados novos modelos. O modelo proposto deve ser completo e consistente de acordo com as definies do processo de medies. 10. Entrevistas GQM: A comunicao entre os perfis interessados na medio essencial para o sucesso do programa. A extrao de informao dos membros do projeto comumente realizada, por meio de entrevistas individuais que podem ser guiadas por diagramas chamados abstract sheets que estruturam as informaes a serem coletadas de forma que a equipe possua um ponto inicial para o refinamento das questes e mtricas conforme descrito a seguir (Berghout e Solligen 1999) (Ramos 2004) e ilustrado na Tabela 6: Pgina 73 o Foco da qualidade: coleta e formalizao das possveis mtricas a serem utilizadas na medio do objeto selecionado. o Linhas de base das hipteses: coleta e formalizao dos envolvidos no programa mtricas da sua opinio sobre os possveis resultados de cada uma da mtricas registradas (nesse caso comum utilizar percentuais). o Fatores de variao: coleta e formalizao dos fatores que podem influenciar os resultados da medio. o Impacto nas linhas de base das hipteses: formalizao do impacto e influncia dos fatores de variao nos resultados das mtricas registradas. Definio da dependncia entre os fatores de variao e as mtricas. Tabela 6 - Abstract Sheets (Berghout e Solligen 1999) Objeto Propsito Foco da qualidad e Ponto de vista Foco da qualidade Fatores de variao Linha de base Impacto nas linhas de base 11. Definio de Questes e Hipteses: As questes a serem definidas devem prover a correta interpretao dos objetivos relacionados. Para isso as questes devem ser definidas em um nvel intermedirio, no extremamente abstrato e nem extremamente detalhado. As hipteses de reposta devem ser determinadas durante essa fase. Tanto as questes como as hipteses de respostas devem ser examinadas e se necessrio reformuladas para refletir os objetivos propostos. 12. Definio de Mtricas: Nesta fase necessrio encontrar uma forma quantitativa de responder as questes e representar os objetivos definidos. Para a completa diminuio de erros as mtricas elaboradas devem ser revisadas em relao a sua completude e consistncia em relao do modelo da avaliao conforme exemplificado na Figura 18: Pgina 74
Figura 18 Modelo de Avaliao GQM (Laboratory s.d.) 13. Elaborao do Plano GQM: Nesse documento so formalizados os objetivos, as mtricas e as hipteses do programa de medies definidos nas fases anteriores. O Plano GQM deve conter todas as informaes necessrias para coleta e interpretao de dados. 14. Elaborao do Plano de Medies: Este documento mais especifico e refinado que o Plano GQM, ele deve conter definies formais e textuais das medies que sero efetuadas, como, por exemplo, quais as pessoas que iro realizar a coleta dos dados, ferramentas utilizadas e a data de realizao das coletas. O Plano GQM tambm deve conter possveis resultados da avaliao. 15. Elaborao do Plano de Anlise: Este documento deve simular uma interpretao dos dados antes do incio da medio. O Plano de Anlise deve conter valores de mtricas, grficos e fluxogramas que esto de acordo com o Plano QGM. 16. Reviso: Nessa fase todos os documentos de aplicao do GQM devem ser revisados por todos os membros da equipe, e todos devem concordar com as definies e deliberaes. Aps essa fase a aplicao do GQM deve ser iniciada. 5.1.3 Coleta Nesta fase so coletados os dados de avaliao, por meio do preenchimento dos questionrios elaborados pela equipe GQM. Os dados da pesquisa so validados atravs da Pgina 75 verificao de no ocorrncia de erros, consistncia e completude dos questionrios preenchidos. A fase de coleta pode ser subdividida em trs sub-fases (Laboratory s.d.): Aguardar o Perodo de Prova: Antes da efetiva aplicao questionrios, dos procedimentos e ferramentas de coleta de dados um perodo de proposio da medio deve ser executado. Para isso uma sesso de abertura de coleta de dados deve ser organizada, na qual os participantes da reunio (equipe de projeto) devem avaliar a aprovar formalmente os planos de medio, os formulrios, as ferramentas e os procedimentos de coleta. Base de Mtricas: Nessa fase os formulrios de coleta de dados devem ser preenchidos pelos participantes da avaliao. A equipe GQM responsvel por acompanhar a coleta dos dados, agrupar e verificar a corretude dos dados coletados. Armazenamento dos dados coletados: Alm das repostas coletadas nas avaliao, devem ser armazenadas as datas e atividades executadas por cada membro da equipe e o intervalo de tempo gasto para a sua execuo. 5.1.4 Interpretao Os dados obtidos na fase de coleta so analisados quantitativamente ou qualitativamente e concluses so extradas pela equipe de avaliao atravs da anlise destes dados. Nesta fase as questes a serem avaliadas so respondidas com base na anlise dos dados obtidos utilizando a abordagem bottom-up. Os pontos de melhoria so identificados a aes para melhoria so determinadas. A fase de interpretao pode ser subdividida em trs sub-fases (Laboratory s.d.): Preparao das Sesses de Feedback: O Plano GQM contm todas as informaes necessrias para a elaborao das sesses de feedback. A equipe GQM deve preparar todo o material da sesso de feedback que deve ser capaz de apoiar a anlise e interpretao de dados, a definio da concluso e a sua traduo em aes corretivas. Resultados das Medies: Aps a sesso de feedback a equipe GQM deve elaborar um relatrio da reunio contendo suas observaes relevantes, concluses e aes corretivas que foram formuladas durante as sesses de feedback. Pgina 76 Anlise de Custo e Benefcio do Programa de Medies: A obteno dos objetivos do GQM um fator essencial para o programa de medies. Entretanto, avaliar os custos/benefcios estimados importante do ponto de vista econmico e deve ser executado ao final da fase de interpretao. 5.1.5 Captura de Experincias Os resultados da interpretao dos dados e as informaes do prprio programa de medies so organizados em modelos e so armazenados em bases de experincia para sua disponibilizao em projetos futuros. 5.2 Consideraes Finais do Captulo Este captulo apresentou conceitos relacionados ao mtodo GQM. Foram detalhadas as fases de planejamento, descrio, coleta, interpretao e captura de experincias. Em cada uma das fases descritas foram identificadas as atividades executadas e os produtos gerados. Como podemos perceber na descrio do captulo, o modelo GQM uma ferramenta que propicia a construo de programas que visam realizar a medio de qualquer objeto de interesse. Dessa forma o modelo ser utilizado na avaliao das caractersticas do desenvolvimento de sistemas embarcados. O captulo 6 descrever em detalhes a elaborao do programa de medies dos processos de desenvolvimento de sistemas embarcados de MPEs. Pgina 77 6. AVALIAO DO PROCESSO DE ENGENHARIA DE REQUISITOS PARA O DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Nos captulos 02, 03 e 04 foram expostas as principais caractersticas dos sistemas embarcados, dos processos de desenvolvimento tradicionais e dos processos de desenvolvimento especficos para sistemas embarcados, alm de processos de engenharia de requisitos para sistemas embarcados. O captulo 5 apresentou a importncia da utilizao das mtricas para a avaliao de produtos, processos e servios de software, bem como a descrio de modelos de avaliao que podem ser usadas para melhorar e entender um software a ser avaliado. Neste captulo ser apresentado o modelo de avaliao do processo de engenharia de requisitos baseado na abordagem Goal-Question-Metric (GQM). O objetivo da elaborao desse modelo permitir o melhor entendimento do processo de engenharia de requisitos de sistemas embarcados (SE) em MPEs brasileiras, de forma a gerar indicadores que alimentem uma nova proposta de processo de Engenharia de requisitos para SE. A organizao do captulo realizada da seguinte forma: na seo 6.1.1 so apresentados o planejamento realizado para a seleo da metodologia de avaliao, a definio das equipes avaliadora e avaliadas, alm da descrio do processo de comunicao e treinamento dos participantes. A seo 6.1.2 descreve a o modelo de avaliao GQM do processo de engenharia de requisitos do desenvolvimento de SEs. A seo 6.1.4 descreve os procedimentos de medio, assim como a coleta dos questionrios respondidos pelos participantes. As sees 6.1.5 e 6.1.6 apresenta a interpretao das informaes coletadas e a captura de experincias do programa de medies. Finalmente, a seo 6.2 descreve as consideraes finais do captulo. 6.1 Aplicao do GQM Apesar de existirem muitos paradigmas para a definio de objetivos e escopo de avaliaes de software, optou-se pela utilizao do GQM por ter se apresentado como um excelente mecanismo para o planejamento e definio de avaliaes (Ramos 2004). De acordo com o mtodo GQM, para que algo possa ser medido de maneira eficaz necessrio, em primeiro lugar, traar os objetivos da medio a fim de que sirvam como um guia para a criao das questes e, posteriormente, das mtricas. Sendo assim, tomando-se como base a metodologia GQM, a avaliao foi dividida em quatro etapas planejamento, definio, coleta e interpretao. Pgina 78 6.1.1 Planejamento Na fase de planejamento so realizados estudos e definies iniciais para introduo do programa de avaliao. nessa fase que se determina os objetivos de negcio de alto nvel de interesse. Com base nas definies do captulo 5, a fase de planejamento do programa de medies foi iniciada com a realizao de reunies para discusso de questionamentos relacionados ao objetivo e ao foco da avaliao. Duas questes iniciais foram levantadas durante as discusses, conforme descrito na Tabela 7. Tabela 7 - Questes Iniciais da Fase de Planejamento Questes Iniciais Respostas Qual ser o objetivo principal da avaliao? Anlise dos problemas que ocorrem no processo de engenharia de requisitos de sistemas embarcados. Quem ser o pblico alvo da avaliao? MPEs brasileiras que atuam no setor de desenvolvimento de sistemas embarcados. O primeiro questionamento foi respondido por meio da anlise do foco da pesquisa realizada na rea de sistemas embarcados, na qual um dos principais desafios o atendimento a rgidas restries de tempo, peso, tamanho, mobilidade, segurana, confiabilidade, consumo de energia e memria (Sommerville 1998). Outro grande obstculo a ser ultrapasso a adaptao do software ao hardware e sua separao na modelagem de seus requisitos (Nars 2002). No que diz respeito segunda questo, as MPEs foram selecionadas como pblico alvo da avaliao devido sua efetiva participao no crescimento do mercado brasileiro de desenvolvimento de software e a falta de formalizao de seus processos. Segundo pesquisas realizadas pelo Ministrio da Cincia e Tecnologia em 2001 (MCT 2002), as MPEs destacam-se no cenrio nacional com a participao de 60% da mo de obra efetiva do setor de desenvolvimento de software, onde aproximadamente 70% conhecem algum modelo de qualidade (ISO/IEC122007, ISO 9000 ou CMMI), mas apenas 20% delas utilizam algum desses modelos. Aps a definio do objetivo e do pblico alvo, o prximo passo foi a seleo das equipes participantes do programa de medies. A Tabela 8 apresenta as equipes avaliadora e avaliadas: Tabela 8 - Equipe GQM Pgina 79 Equipe de Definio e Coordenao Papel rea de Atuao Orientadora Definio de Processos Pesquisadora Requisitos Pesquisadora Requisitos Equipes Avaliada Papel rea de Atuao Respondente Desenvolvimento de Sistemas de Segurana Respondente Desenvolvimento de Sistemas Agrrios Os participantes das equipes avaliadas so funcionrios de empresas desenvolvedoras de sistemas embarcados para os mais diversos fins, como desenvolvimento de sistemas agrrios e sistemas de segurana. A diversidade dos objetivos do produto final foi propositalmente considerada, pois desta forma a avaliao poder comparar os resultados e at mesmo as dificuldades encontradas em cada um dos segmentos das organizaes participantes do programa. Desta forma, a avaliao torna-se mais isenta e imparcial, sem desvios causados pelo domnio de negcio de uma determinada empresa. Levando em considerao a distribuio geogrfica das MPEs avaliadas, foi acordado que a iterao entre as equipes avaliadora e avaliada seria realizada por e-mail. Devido a essa caracterstica, foi necessria a elaborao da avaliao em um formato que proporcionasse ao usurio facilidade na seleo das respostas de cada questo. Alm disso, uma seo de ajuda foi elaborada com o objetivo de melhorar a compreenso do questionrio. Visto que a pesquisa proposta um programa de medies que no possui o objetivo de melhoria de processo de determinada empresa, no foram avaliados projetos especficos e nenhum dos Planos do modelo GQM foi elaborado. Diante desse contexto, a prxima atividade realizada no programa de medies a definio do objetivos de negcio e de seus sub-objetivos. 6.1.2 Definio Pgina 80 Conforme exposto no captulo 5, a definio dos objetivos e sub-objetivos do programa de avaliao deve ser executado etapas. Nessa pesquisa dividimos a fase de definio em trs macro-atividades: identificar os objetivos da avaliao, identificar sub-objetivos; identificar entidades e atributos relacionados aos sub-objetivos (questes e mtricas). Na primeiro passo, os objetivos da medio devem ser formalmente definidos e estruturados. Conforme descrito no prembulo da seo, o objetivo da avaliao foi um ponto extremante discutido no incio do programa. Logo, nessa fase da avaliao a formalizao deste objetivo foi realizada. A Tabela 9 foi utilizada como ferramenta de apoio na formalizao do objetivo da pesquisa. Tabela 9 Modelo de Definio dos Objetivos da Medio (Laboratory s.d.) Diretrizes Descries Respostas Analisar: o objeto sob medio processo de engenharia de requisitos Com o propsito de: entender, controlar e melhorar o objeto de medio. adequar Com respeito a: foco da qualidade do objeto de medio. aplicabilidade Do ponto de vista de: as pessoas que medem o objeto Equipe de desenvolvimento No contexto: o ambiente que as medies acontecero. Das MPEs desenvolvedoras de sistemas embarcados. A Tabela 10 descreve o objetivo do negcio definido com base nas caractersticas identificadas na tabela acima. Tabela 10 - Objetivo do Negcio Adequar a aplicabilidade do processo de gerenciamento de requisitos de MPEs desenvolvedoras de sistemas embarcados sob o ponto de vista da equipe de desenvolvimento. Uma vez definido o objetivo do programa de medies, o prximo passo a identificao detalhada do que se quer saber ou aprender (sub-objetivos). Ao responder o que necessrio e o que se quer saber, os pontos influenciados ou gerenciados pelo objetivo de avaliao sero identificados. Pgina 81 Para facilitar o entendimento e a elaborao da avaliao os sub-objetivos identificados no programa de medies no seguiram o padro estipulado pelo mtodo GQM descrito no captulo 5. Ou seja, os sub-objetivos foram convertidos para pontos de verificao (classificaes) que classificam as questes e mtricas elaboradas na pesquisa. Os pontos identificados no programa de medies so relacionados as principais caractersticas e dificuldades relatadas na literatura sobre o processo de engenharia de requisitos de sistemas embarcados e at mesmo dos sistemas tradicionais, conforme relatado nos captulos 2 e 3. Logo, eles possuem seu foco em todas as atividades que so executadas durante o processo de engenharia de requisitos considerando que os requisitos funcionais e no-funcionais devem ser levantados e analisados nesse processo. Outros aspectos analisados na identificao dos pontos de verificao foram os resultados esperados do processo de Gerncia de Requisitos do nvel G do programa de Melhoria de Processo do Software Brasileiro MPS.BR. Eles estabelecem os resultados a serem obtidos com a efetiva implementao do processo de Gerncia de Requisitos. A Tabela 11 apresenta todos os pontos de verificao identificados no programa de medies. Tabela 11 - Pontos de Verificao Pontos de Verificao 1. Contextualizao da empresa. 2. Contextualizao do software. 3. Contextualizao da equipe de requisitos. 4. O entendimento dos requisitos (funcionais e no-funcionais) obtido junto aos fornecedores de requisitos? 5. As necessidades, expectativas e restries do cliente, tanto do produto quanto de suas interfaces, so identificadas e registradas? 6. Os requisitos de software so aprovados? 7. Um conjunto definido de requisitos do cliente especificado a partir das necessidades, expectativas e restries identificadas? 8. Um conjunto de requisitos funcionais e no-funcionais do produto e dos componentes do produto que descrevem a soluo do problema a ser resolvido, definido e mantido a partir dos requisitos do cliente? 9. utilizado algum mtodo, modelo ou linguagem para especificao dos requisitos (funcionais e no-funcionais)? 10. estabelecida a rastreabilidade bidirecional entre os requisitos e os produtos de trabalho? Em caso positivo, esta rastreabilidade mantida? Pgina 82 11. Interfaces internas e externas do produto e de cada componente do produto so definidas? 12. Os requisitos so analisados para assegurar que sejam necessrios, corretos, testveis e suficientes para balancear as necessidades dos interessados com as restries existentes? 13. considerada e avaliada a dependncia entre os requisitos? 14. considerada e validada a viabilidade dos itens de software atenderem seus requisitos alocados? 15. So feitas revises nos planos e produtos de trabalho do projeto visando identificar e corrigir inconsistncias em relao aos requisitos? 16. As mudanas nos requisitos so gerenciadas ao longo do tempo? Cada um dos pontos descritos na Tabela 11 foram detalhados na etapa de planejamento, por meio da elaborao de questes que provem a correta interpretao dos pontos de verificao e dos objetivos relacionados. 6.1.3 Elaborao das Questes e Mtricas A prxima etapa do modelo GQM a definio das questes e mtricas relacionadas aos pontos de verificao. Seguindo as definies do captulo 5, as questes foram elaboradas em um nvel intermedirio de abstrao, pois elas serviro como guia para a elaborao de suas mtricas. Para isso, cada questo foi definida com opes de respostas numeradas que permitem a interpretao quantitativa de suas respectivas mtricas. As sees seguintes apresentaro as questes mtricas definidas neste programa de medies. 6.1.3.1 Ponto de Verificao 1 A contextualizao da empresa um aspecto de vital importncia para a avaliao, visto que necessrio conhecer o ambiente no qual as equipes avaliadas esto inseridas. Para isso, foram definidas trs questes cujas respostas so descritivas e no possuem mtricas correlacionadas, portanto, no esto de acordo com as definies do modelo GQM e no geram respostas quantitativas. De acordo com a Tabela 12, o objetivo das questes definidas para o primeiro ponto de verificao conhecer o ramo de atuao das empresas avaliadas, seu tempo de experincia no mercado e sua quantidade de funcionrios. Essa informaes foram contempladas a fim de garantir que todos os participantes da avaliao possuem um de seus segmentos de atuao na rea de desenvolvimento de sistemas embarcados. Alm disso, o ramo de atuao e o tempo de experincia das empresas auxiliam tambm na Pgina 83 identificao da criticidade dos sistemas desenvolvidos, o que pode impactar na necessidade de um maior enfoque na definio dos requisitos funcionais e no-funcionais dentro do processo de engenharia de requisitos. Por fim, a quantidade de funcionrios da empresa visa identificar seu enquadramento como MPE. Tabela 12 - Contextualizao da Empresa Ponto de Verificao (PVn) Questo (QTn) QT01. Qual o domnio de negcio da empresa? QT02. H quanto tempo a empresa atua neste domnio de negcio? PV01. Contextualizao - A empresa QT03. Qual o nmero de funcionrios da empresa? 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 84 6.1.3.2 Ponto de Verificao 2 Este ponto de verificao visa esclarecer o contexto do software desenvolvido pelas empresas que participam da avaliao. Suas questes identificam de onde vm os requisitos do software (cliente interno ou externo) e caractersticas de portabilidade e integrao. Os indicadores gerados a partir destas questes permitiro reflexes acerca das restries s quais o software pode estar submetido como plataforma, interface com outros sistemas, padres e linguagens de desenvolvimento. A Tabela 13 descreve as questes, suas opes de resposta e as mtricas associadas contextualizao do software. Tabela 13 - Contextualizao do Software Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) (0) Componente de um produto especfico da prpria empresa (cliente interno). (1) Componente de um produto especfico de outra empresa (cliente externo). (2) Um produto da empresa (cliente interno). QT04. O software embarcado desenvolvido pela empresa ... (3) Um produto da empresa desenvolvido sob encomenda (cliente externo). ndice de caracteriza o do software
Frmula: M4 = x, onde x E A / A= {0, 1, 2, 3} (0) No possui integrao com outros sistemas. (1) Possui integrao com outros sistemas da prpria empresa. (2) Possui integrao apenas com sistemas de outros fabricantes. QT05. O software embarcado desenvolvido pela empresa possui integrao com outros sistemas? (3) Possui integrao com sistemas da prpria empresa e de outros fabricantes. Nvel de integrao exigido pelo software
Frmula: M5 = x, onde x E A / A= {0, 1, 2, 3} (0) O software dedicado a uma plataforma especfica da empresa. PV02. Contextualiza o O software QT06. O software embarcado desenvolvido pela empresa deve executar em (0) O software dedicado a uma plataforma especfica de outro fabricante. Nvel de portabilidade exigido pelo software
ndice de contextualizao do software
Frmula 1 : MT2 = M4 + M5 + M6
1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 85 (1) O software executa em diferentes plataformas da prpria empresa. (2) O software executa em diferentes plataformas de outro fabricante. (3) O software executa em diferentes plataformas da prpria empresa e de outro fabricante.
executar em diferentes plataformas? (4) O software executa em plataformas de diferentes fabricantes. Frmula: M6 = x, onde x E A / A = {0, 1, 2, 3, 4}
6.1.3.3 Ponto de Verificao 3 A contextualizao da equipe de requisitos avalia a existncia, tamanho, conhecimento, nvel de dedicao e formao acadmica da equipe responsvel pelo levantamento de requisitos. O entendimento destas caractersticas auxiliar na modelagem do processo de engenharia de requisitos, de maneira que se possa definir o nvel de detalhamento, a quantidade e a designao dos papis, artefatos e atividades adequados ao desenvolvimento de softwares embarcados em MPEs. A Tabela 14 descreve as questes, as opes de resposta e as mtricas associadas ao ponto de verificao descrito nesta seo. Tabela 14 - Contextualizao da Equipe de Requisitos Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) (0) O software no um componente do produto. Ele o prprio produto da empresa. (1) No existe separao entre as equipes do produto e do software. O levantamento realizado em conjunto, no mesmo processo. PV03. Contextualiza o A Equipe de Requisitos QT07. No caso do software ser um componente de um produto da prpria empresa ou de outro fabricante, existe uma equipe separada para o levantamento dos requisitos do (2) No existe separao entre as equipes. Mas os levantamentos do produto e do software so realizados em momentos distintos e por processos distintos. Nvel de especializa o da equipe e do processo de levantamento de requisitos.
Frmula: M7 = x, onde x E A / A= {0, 1, 2, 3, 4} ndice de contextualizao da equipe de requisitos.
Frmula 1 : MT3 = M7 + M8 + M9 + M10 + M11 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 86 (3) Existe uma equipe separada, responsvel pelo levantamento dos requisitos do software. O processo de levantamento o mesmo do produto. requisitos do software? (4) Existe uma equipe separada para o levantamento dos requisitos do software. O processo de levantamento distinto daquele utilizado para o produto.
(0) No existe uma equipe separada. (1) At 20% da equipe de projeto. (2) De 20 a 30% da equipe de projeto. (3) De 30 a 40% da equipe de projeto. QT08. Caso exista uma equipe separada para os requisitos do software, qual o seu tamanho, em relao ao tamanho total da equipe responsvel pelo projeto? (4) Acima de 40% da equipe de projeto. Tamanho da equipe de requisitos em relao equipe de projeto.
Frmula: M8 = x, onde x E A / A= {0, 1, 2, 3, 4} (0) No existe uma equipe separada. (1) Os membros da equipe de requisitos tambm desempenham outros papis ao longo do projeto. QT09. Caso exista uma equipe separada para os requisitos do software, seus membros so dedicados a esta atividade? (2) Os membros da equipe de requisitos so dedicados a esta atividade. Nvel de dedicao da equipe de requisitos.
Frmula: M9 = x, onde x E A / A= {0, 1, 2} (0) Os membros da equipe no possuem formao em Cincia da Computao (ou reas afins) e nem conhecimento da Engenharia de Requisitos.
QT10. Qual a formao acadmica dos membros da equipe de requisitos (mesmo que no exista uma equipe separada para tal)? (1) Os membros da equipe no possuem formao em Cincia da Computao (ou reas afins), mas possuem conhecimento da Engenharia de Requisitos. Nvel de formao da equipe de requisitos (Nvel de conheciment o da Engenharia de requisitos e rea de formao da equipe).
1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 87 (2) Os membros da equipe possuem formao em Cincia da Computao (ou reas afins), mas no tm conhecimento da Engenharia de Requisitos. (3) Os membros da equipe possuem formao em Cincia da Computao (ou reas afins), e possuem conhecimento superficial da Engenharia de Requisitos.
(4) Os membros da equipe possuem formao em Cincia da Computao (ou reas afins), e possuem conhecimentos profundos da Engenharia de Requisitos.
Frmula: M10 = x, onde x E A / A= {0, 1, 2, 3, 4} (0) A equipe de requisitos no possui conhecimento do negcio. (1) A equipe de requisitos tem conhecimento superficial do negcio.
QT11. Qual o nvel de conheciment o da equipe de requisitos no que diz respeito ao negcio do software a ser desenvolvido ? (2) A equipe de requisitos tem conhecimentos aprofundados do negcio. Nvel de conheciment o da equipe no negcio do software a ser desenvolvido.
Frmula: M11 = x, onde x E A / A= {0, 1, 2}
6.1.3.4 Pontos de Verificao 4 e 9 O modo como os requisitos so levantados, os nveis de detalhe e de especializao do responsvel pelo levantamento de requisitos so aspectos que avaliam se o entendimento dos requisitos funcionais e no-funcionais obtido juntos aos fornecedores de requisitos, conforme descrito na Tabela 15. A resposta dessas questes gera indicadores que auxiliam na definio dos papis, do nvel de detalhamento dos artefatos e das tcnicas de levantamento de requisitos que melhor se adaptem as caractersticas dos tipos de empresa e sistemas definidos nesse estudo. Tabela 15 - Entendimento dos Requisitos Funcionais e No-Funcionais Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) PV04. O entendimento QT12. Nvel de (0) Os requisitos no so levantados Nvel de entendimento Nvel de entendimento 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 88 (1) Os requisitos so levantados informalmente (conversa informal). (2) Os requisitos so recebidos j levantados. entendimento dos requisitos. (3) Os requisitos so levantados por meio de reunies formais. dos requisitos.
Frmula: M12 = x, onde x E A / A= {0, 1, 2, 3} (0) Os requisitos no so levantados. (1) Os requisitos so levantados pela equipe de implementao. (1) Os requisitos so levantados pelo gerente de projetos. (2) Os requisitos so levantados pelos arquitetos ou projetistas. QT13. Nvel de especializa o da equipe de levantamento de requisitos nesta atividade. (3) Os requisitos so levantados pela equipe de requisitos. Nvel de especializa o da equipe de levantamento de requisitos nesta atividade.
Frmula: M13 = x, onde x E A / A= {0, 1, 2, 3} (0) As necessidades do cliente no so identificadas. (1) As necessidades do cliente so identificadas. (2) As necessidades do cliente e as restries do sistema so identificadas. dos requisitos (funcionais e no-funcionais) obtido junto aos fornecedores de requisitos? QT14. Nvel de detalhe do levantamento de requisitos. (3) As necessidades do cliente, as restries do sistema e as integraes com outros sistemas/dispositivos so identificadas. Nvel de detalhe do levantamento de requisitos.
Frmula: M14 = x, onde x E A / A= {0, 1, 2, 3} dos requisitos funcionais e no- funcionais
Frmula 1 : MT4 = M12 + M13 + M14 (0) Os requisitos funcionais e no-funcionais no so especificados. PV09. utilizado algum mtodo, modelo ou linguagem para especificao dos requisitos (funcionais e no-funcionais)? QT20. Qual o nvel de utilizao de mtodos/mod elos no levantamento /especifica o dos requisitos (1) Os requisitos funcionais e no-funcionais so levantados/ especificados sem utilizao de tcnicas auxiliares. Nvel de utilizao de mtodos/mod elos no levantamento /especifica o dos requisitos (funcionais e ndice de utilizao de ferramentas de apoio.
Frmula 1 : 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 89 no-funcionais)? requisitos (funcionais e no- funcionais)? (2) Os requisitos funcionais e no-funcionais so levantados/especificados formalmente com o auxlio de tcnicas auxiliares (checklist, brainstorm e etc.). (funcionais e no- funcionais).
Frmula: M20 = x, onde x E A / A= {0, 1, 2} MT9 = M20 6.1.3.5 Pontos de Verificao 5 e 6 A compreenso de como realizada a aprovao dos requisitos, a identificao e o registro das necessidades, expectativas e restries do cliente necessria para a correta definio dos artefatos a serem gerados no processo de engenharia de requisitos e dos elementos que o comporo. Alm disso, o registro e aprovao apropriada das informaes levantadas assegura que nenhum requisito seja ignorado ou entendido de forma inadequada. A Tabela 16 apresenta as questes e mtricas relacionadas a este ponto de verificao. Tabela 16 Identificao e Registro das Necessidades, Expectativas e Restries do Cliente Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) (0) Os requisitos no so levantados. (1) Os requisitos so acordados informalmente (verbalmente, telefone) mas no so registrados. (2) Os requisitos so acordados e registrados informalmente (ex: e-mail, documento desestruturado). (3) Os requisitos so acordados e registrados em documentos estruturados (ex: atas de reunio). QT15. Qual o nvel de formalizao dos requisitos? (4) Os requisitos so acordados e registrados formalmente (ex: documento de especificao de requisitos). Nvel de formalizao dos requisitos.
Frmula: M15 = x, onde x E A / A= {0, 1, 2, 3, 4} PV05. As necessidades, expectativas e restries do cliente, tanto do produto quanto de suas interfaces, so identificadas e registradas? QT16. Qual o nvel de formalizao (0) As necessidades, expectativas e restries do cliente no so levantadas. Nvel de formalizao do Nvel de identificao e registro das necessidades, expectativas e restries do cliente.
Frmula 1 : MT5 = M15 + M16 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 90 (1) As necessidades, expectativas e restries do cliente so levantadas informalmente e no so registradas. (2) As necessidades, expectativas e restries do cliente so levantadas e registradas em documentos informais (e-mail). (3) As necessidades, expectativas e restries do cliente so levantadas e registradas em atas de reunio.
do detalhamento do levantamento /especifica o de requisitos? (4) As necessidades, expectativas e restries do cliente so levantadas e registradas em documentos formais do processo (Ex. Documento de Viso). detalhamento da levantamento /especifica o de requisitos.
Frmula: M16 = x, onde x E A / A= {0, 1, 2, 3, 4}
(0) Os requisitos no so levantados. (1) Os requisitos so acordados informalmente (verbalmente, telefone) mas no so registrados. (2) Os requisitos so acordados e registrados informalmente (ex: e-mail, documento desestruturado). (3) Os requisitos so acordados e registrados em documentos estruturados (ex: atas de reunio). PV06. Os requisitos de software so aprovados? QT17. Qual o nvel de formalizao dos requisitos? (4) Os requisitos so acordados e registrados formalmente (ex: documento de especificao de requisitos). Nvel de aprovao dos requisitos.
Frmula: M17 = x, onde x E A / A= {0, 1, 2, 3, 4} Nvel de aprovao dos requisitos.
Frmula 1 : MT6 = M17 6.1.3.6 Ponto de Verificao 7 Outro assunto que foi ressaltado na avaliao o modo como os requisitos so especificados, uma vez que uma das principais causas de falha do desenvolvimento de software o levantamento deficiente de seus requisitos (Hofmann 2001). Conseqentemente, necessrio que os mesmos sejam identificados a partir das necessidades do cliente, que so refinadas em caractersticas e posteriormente em 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 91 requisitos do sistema. A Tabela 17 apresenta as questes e mtricas definidas para este ponto de verificao. Tabela 17 - Modo de Especificao dos Requisitos Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) (0) Os requisitos so diretamente levantados/definidos. (1) As necessidades so refinadas somente em nvel de caractersticas. (2) As necessidades so refinadas diretamente em nvel de requisitos. (2) As caractersticas so diretamente levantadas e refinadas em nvel de requisitos. PV07. Um conjunto definido de requisitos do cliente especificado a partir das necessidades, expectativas e restries identificadas? QT18. Qual o nvel de refinamento dos requisitos funcionais? (3) As necessidades so refinadas em nvel de caractersticas e posteriormente de requisitos. Nvel de refinamento dos requisitos funcionais.
Frmula: M18 = x, onde x E A / A= {0, 1, 2, 3} Nvel de refinamento dos requisitos funcionais.
Frmula 1 : MT7 = M18 6.1.3.7 Pontos de Verificao 8 e 14 Para garantir que o sistema atenda a todos os seus requisitos necessrio que haja um mapeamento (ligao, dependncia) entre os requisitos funcionais e no funcionais, de maneira que no sejam definidos requisitos inviveis para a estrutura fsica do sistema. Alm disso, as restries referentes aos requisitos no-funcionais e sua relao com os requisitos funcionais so caractersticas marcantes no desenvolvimento de sistemas embarcados. Dessa forma a Tabela 18 define questes, suas opes de resposta e mtricas que avaliam o relacionamento entre os requisitos funcionais e no-funcionais tanto na sua identificao como manuteno, bem como, a sua viabilidade de implement-los. Tabela 18 Definio e Manuteno dos Requisitos Funcionais e No Funcionais Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) PV08. Um conjunto de requisitos QT19. Qual o nvel de entendimento (0) Os requisitos no- funcionais no so identificados. Nvel de definio e manuteno Nvel de definio e manuteno dos 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 92 (1) Os requisitos no- funcionais so identificados, mas no so definidos e mantidos a partir dos requisitos funcionais identificados. (2) Os requisitos no- funcionais so identificados e so definidos a partir dos requisitos funcionais identificados. (3) Os requisitos no- funcionais so identificados e so definidos e mantidos a partir dos requisitos funcionais identificados. funcionais e no-funcionais do produto e dos componentes do produto que descrevem a soluo do problema a ser resolvido, definido e mantido a partir dos requisitos do cliente? dos requisitos no- funcionais? (4) Os requisitos no- funcionais so identificados e so definidos e mantidos a partir dos requisitos funcionais identificados e comparados aos prprios requisitos funcionais levantados. dos requisitos funcionais e no- funcionais.
Frmula: M19 = x, onde x E A / A= {0, 1, 2, 3, 4} requisitos funcionais e no- funcionais.
Frmula 1 : MT8 = M19 (0) A viabilidade dos requisitos funcionais e no- funcionais no avaliada. (1) A viabilidade dos requisitos funcionais avaliada. (1) A viabilidade dos requisitos no-funcionais avaliada. PV14. considerada e validada a viabilidade dos itens de software atenderem seus requisitos alocados? QT26. Qual o nvel de anlise da viabilidade dos requisitos? (2) A viabilidade dos requisitos funcionais e no- funcionais avaliada. Nvel de anlise da viabilidade dos requisitos.
Frmula: M26 = x, onde x E A / A= {0, 1, 2} Nvel de anlise da viabilidade dos requisitos.
Frmula 1 : MT14 = M26 6.1.3.8 Pontos de Verificao 10 e 13 A rastreabilidade um mecanismo que facilita a avaliao dos impactos de mudanas nos sistemas, por meio do mapeamento da dependncia entre seus requisitos, planos de projeto e produtos de trabalho. A rastreabilidade horizontal estabelece a dependncia entre os requisitos e a rastreabilidade vertical permite o mapeamento das necessidades, caractersticas e requisitos levantados at o nvel de decomposio mais baixo do produto (Softex s.d.). Dessa forma, os pontos de verificao descritos na Tabela 19 visam determinar como as empresas participantes da avaliao tratam a rastreabilidade e a dependncia de seus requisitos. Tabela 19 - Rastreabilidade dos Requisitos Ponto de Questo Opes de Resposta (A) Mtrica da Mtrica do 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 93 Verificao (PVn) (QTn) Questo (Mn) Ponto de Verificao (MTn) (0) A rastreabilidade entre os requisitos e os produtos de trabalhos no elaborada. (1) A rastreabilidade entre os requisitos de trabalho elaborada. PV10. estabelecida a rastreabilidade bidirecional entre os requisitos e os produtos de trabalho? Em caso positivo, esta rastreabilidade mantida? QT21. Qual o nvel de rastreabilidad e dos requisitos? (2) A rastreabilidade entre os requisitos e os produtos de trabalhos elaborada e mantida conforme o andamento do projeto. Nvel de rastreabilidad e dos requisitos.
Frmula: M21 = x, onde x E A / A= {0, 1, 2} Nvel de rastreabilidade dos requisitos.
Frmula 1 : MT10 = M21 (0) A dependncia entre os requisitos no avaliada. (1) A dependncia entre os requisitos funcionais avaliada. (1) A dependncia entre os requisitos no-funcionais avaliada. PV13. considerada e avaliada a dependncia entre os requisitos? QT25. Qual o nvel de anlise da dependncia entre os requisitos? (2) A dependncia entre os requisitos funcionais e no- funcionais avaliada. Nvel de anlise da dependncia entre os requisitos.
Frmula: M25 = x, onde x E A / A= {0, 1, 2} Nvel de anlise da dependncia entre os requisitos.
Frmula 1 : MT13 = M25 6.1.3.9 Ponto de Verificao 12 As questes e mtricas relacionadas este ponto de verificao so descritas na Tabela 20, elas tm como objetivo analisar quais so os papis envolvidos na realizao dos testes e como so executadas as validaes dos requisitos. Dessa forma ser possvel adaptar as estratgias de teste ao contexto das empresas avaliadas, sem perder o foco da integridade do sistema. Tabela 20 Anlise dos Requisitos Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) (0) Os requisitos no so testados pela equipe de desenvolvimento nem validados pelo cliente? PV12. Os requisitos so analisados para assegurar que sejam necessrios, corretos, testveis e suficientes para QT23. Qual o nvel de anlise de erros nos requisitos? (1) Os requisitos so testados pela equipe de desenvolvimento e no so validados pelo cliente. Nvel de anlise de erros nos requisitos.
Frmula: ndice de corretude dos requisitos.
Frmula 1 : MT12 = M23 + M24 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 94 (1) Os requisitos so validados pelo cliente e no so testados pela equipe de desenvolvimento.
(2) Os requisitos so testados pela equipe de desenvolvimento e validados pelo cliente. M23 = x, onde x E A / A= {0, 1, 2} (0) Os requisitos no so testados. (1) Os requisitos so testados unitariamente e/ou integralmente pela equipe de desenvolvimento sem a utilizao de casos de testes. (2) Os requisitos so testados unitariamente pela equipe de desenvolvimento com a utilizao de casos de testes. (2) Os requisitos so testados integralmente pela equipe de desenvolvimento com a utilizao de casos de testes. suficientes para balancear as necessidades dos interessados com as restries existentes? QT24. Qual o nvel de corretude dos testes de requisitos? (3) Os requisitos so testados unitariamente e integralmente pela equipe de desenvolvimento com a utilizao de casos de testes. Nvel de corretude dos testes de requisitos.
Frmula: M24 = x, onde x E A / A= {0, 1, 2, 3} M24 6.1.3.10 Pontos de Verificao 15 e 16 Outro ponto que merece ateno o acompanhamento das mudanas nos requisitos do projeto. Alteraes nos requisitos esto entre os pontos que mais acarretam falhas nos projetos de desenvolvimento de sistemas embarcados (Carro 2002), portanto, eles devem ser gerenciados ao longo do processo. Neste sentindo, fundamental garantir que os planos e produtos de trabalho .do projeto estejam sendo revisados, a fim de que reflitam os requisitos definidos. Estes artefatos sero importantes para a tomada de decises em relao ao projeto e para futuras manutenes no sistema. Tais aspectos so facilmente atendidos quando se realiza a rastreabilidade dos requisitos e produtos de trabalho. Sendo assim, os indicadores gerados a partir das mtricas apresentadas na Tabela 21 permitem analisar estes aspectos nas empresas avaliadas. Tabela 21 Reviso dos Planos e Produtos de Trabalho Ponto de Verificao Questo (QTn) Opes de Resposta (A) Mtrica da Questo Mtrica do Ponto de 1 :Interpretao - Quanto maior o valor de MTn, melhor o ndice/nvel. Pgina 95 (PVn) (Mn) Verificao (MTn) (0) No so realizadas revises dos planos e produtos de trabalho. (1) So realizadas revises e correes dos planos e produtos de trabalho durante o processo de desenvolvimento do sistema. (1) So realizadas revises e correes dos planos e produtos de trabalho durante o processo de manuteno do sistema. PV15. So feitas revises nos planos e produtos de trabalho do projeto visando identificar e corrigir inconsistncias em relao aos requisitos? QT27. Qual o nvel de anlise de revises e correes dos produtos de trabalho? (2) So realizadas revises e correes dos planos e produtos de trabalho durante o processo de desenvolvimento e manuteno do sistema. Nvel de anlise de revises e correes dos produtos de trabalho.
Frmula: M27 = x, onde x E A / A= {0, 1, 2} Nvel de anlise de revises e correes dos produtos de trabalho.
Frmula 1 : MT15 = M27 (0) Os requisitos funcionais e no-funcionais no so mantidos. (1) Os requisitos funcionais so mantidos ao longo do tempo (1) Os requisitos no- funcionais so mantidos ao longo do tempo. PV16. As mudanas nos requisitos so gerenciadas ao longo do tempo? QT28. Qual o nvel de anlise de manutenes nos requisitos funcionais e no- funcionais? (2) Os requisitos funcionais e no-funcionais so mantidos ao longo do tempo. Nvel de anlise de manutenes nos requisitos funcionais e no- funcionais.
Frmula: M28 = x, onde x E A / A= {0, 1, 2} Nvel de anlise de manutenes nos requisitos funcionais e no- funcionais.
Frmula: MT16 = M28
6.1.3.11 Ponto de Verificao 11 A identificao e o registro dos usurios e dos sistemas que interagem com o software em desenvolvimento auxilia na definio da sua arquitetura e de seus protocolos de comunicao, alm de facilitar a obteno de requisitos ainda no levantados A Tabela 22 apresenta as questes, opes de respostas e mtricas relacionadas a esse ponto de verificao. Tabela 22 - Identificao das Interfaces do Sistema Ponto de Verificao (PVn) Questo (QTn) Opes de Resposta (A) Mtrica da Questo (Mn) Mtrica do Ponto de Verificao (MTn) PV11. Interfaces internas e QT22. Qual o nvel de (0) Os atores do sistema no so definidos. Nvel de identificao Nvel de identificao de Pgina 96 (1) Os atores do sistema so definidos, mas no so registrados. (2) Os atores do sistema so definidos e registrados em documentos informais (Ex.: e-mail). (3) Os atores do sistema so definidos e registrados em documentos estruturados (Ex. Ata de reunio). externas do produto e de cada componente do produto so definidas? identificao de interfaces? (4) Os atores do sistema so definidos e registrados em documentos formais (ex: documento de viso). de interfaces.
Frmula: M22 = x, onde x E A / A= {0, 1, 2, 3, 4} interfaces.
Frmula 1 : MT11 = M22 Outros aspectos foram avaliados para este objetivo de medio, como, o modo de elaborao dos cenrios operacionais e a anlise de viabilidade de operao e manuteno dos softwares embarcados. No entanto, ao realizar a interpretao dessas questes, considerou-se que esses pontos no fazem parte do processo de engenharia de requisitos, e conseqentemente no so relacionados ao objetivo da medio. A Figura 19 apresenta a relao entre o objetivo de medio, os itens de verificao, e suas questes.
Figura 19 - Relao entre os Elementos do Modelo GQM Pgina 97 Por fim foi realizada a reviso do questionrio que a ltima atividade prevista na fase de definio do modelo GQM. Aps finalizar sua elaborao, os pesquisadores e a orientadora efetuaram uma reviso formal que apontou melhorias no questionrio. Alm disso, a avaliao foi submetida a anlise de todos os participantes, que puderam sugerir novas modificaes. 6.1.4 Coleta Conforme descrito no captulo 5, a fase de coleta do modelo GQM caracterizada pela obteno das respostas do questionrio de avaliao. O procedimento de coleta de dados foi definido considerando o contexto das equipes respondentes, com o objetivo de maximizar a eficincia e eficcia da avaliao. Sendo assim, a obteno das respostas foi realizada manualmente, por meio do preenchimento de planilhas Excel. A primeira atividade dessa fase a validao dos procedimentos e das ferramentas de coleta. Dada a distncia entre os participantes do programa de medies no foi realizada uma reunio formal para sua validao. No entanto, como descrito na seo anterior, o questionrio foi submetido a toda equipe para sugestes de melhorias que foram incorporadas. Aps as correes para aprimoramento do questionrio, assumiu-se que o mesmo atendia aos objetivos do programa de medies. Por conseguinte, foi iniciada a segunda atividade desta fase que consiste na distribuio do questionrio a fim de coletar as respostas para formao da base de mtricas. Durante a fase de coleta ocorreram alguns problemas de comunicao com os participantes da avaliao no envio e recebimento dos questionrio. Como o prazo para finalizar o programa de medies era exguo no foi possvel extend-lo, de maneira que a interpretao foi realizada com a resposta de apenas um questionrio. Os dados coletados foram conferidos em relao a sua completude e armazenados para posterior interpretao. A planilha com as respostas do participante da avaliao est disponvel no APNDICE A. 6.1.5 Interpretao Conforme definido no captulo 5, a fase que sucede a coleta dos dados do programa de medies a interpretao das informaes obtidas. Para execuo desta etapa o trabalho foi dividido em trs atividades: anlise das informaes coletadas, clculo dos dados quantitativos e interpretao dos ndices calculados. Pgina 98 6.1.5.1 Anlise das Informaes Dessa forma, aps o recebimento do questionrio respondido pelo participante da avaliao foi realizada uma anlise para verificar a coerncia entre as respostas. Outro aspecto identificado na anlise das respostas foi a inexatido do questionrio. Uma das preocupaes no momento de elabor-lo foi mant-lo o mais legvel possvel devido ao fato de profissionais de diversas reas participarem da pesquisa. Dessa forma, foi excluda a utilizao de termos tcnicos da rea de informtica e foi elaborada uma seo de ajuda para cada uma das questes. No entanto, pde-se perceber na anlise que as respostas de determinadas questes poderiam ser interpretadas de uma maneira por profissionais de engenharia de software e de outra por outros tipos de profissionais. Por exemplo: Na segunda questo do primeiro ponto de verificao especificado na Tabela 16 verificado o nvel de formalizao do levantamento/especificao de requisitos Quando questionados se a especificao de requisitos era registrada em documentos formais, no foi levado em considerao o nvel detalhe dos requisitos neste documento. Desta forma, a partir da resposta informada, no se consegue obter o grau de entendimento desejado sob o ponto de vista da Engenharia de Requisitos. Visto que o documento utilizado pelo participante formal, mas pode no conter o nvel de detalhe exigido para um documento de especificao de requisitos. Devido escassez de tempo para finalizao deste estudo optou-se em continuar a interpretao dos dados obtidos. Visto que a elaborao do processo de engenharia de requisitos para MPEs desenvolvedoras de softwares embarcados utilizar, alm das mtricas obtidas no programa de medies, o embasamento terico encontrado na literatura. 1 : ndice do Ponto de Verificao (Mn). 2 : ndice da Questo (MTn). Pgina 99 6.1.5.2 Clculo dos Dados Quantitativos Em conformidade com as definies do captulo 5, a interpretao dos dados coletados foi realizada na direo bottom-up. Ou seja, a partir dos ndices coletados em cada questo foram calculados os dados quantitativos por ponto de verificao. A Tabela 23 apresenta cada um desses ndices. Tabela 23 - ndices dos Pontos de Verificao Mtrica da Questo (Mn) ndice 1
Mtrica do Ponto de Verificao (MTn) ndice 2
M04. ndice de caracterizao do software. M04 = 2 M05. Nvel de integrao exigido pelo software. M05 = 3 M06. Nvel de portabilidade exigido pelo software. M06 = 0 M2. ndice de criticidade do contexto do software. MT2 = 5 M07. Nvel de especializao da equipe e do processo de levantamento de requisitos. M07 = 2 M08. Tamanho da equipe de requisitos em relao equipe de projeto. M08 = 0 M09. Nvel de dedicao da equipe de requisitos. M09 = 0 M10. Nvel de formao da equipe de requisitos (Nvel de conhecimento da Engenharia de requisitos e rea de formao da equipe). M10 = 3 M11. Nvel de conhecimento da equipe no negcio do software a ser desenvolvido. M11 = 2 MT3. ndice de contextualizao da equipe de requisitos. MT3 = 7 M12. Nvel de entendimento dos requisitos. M12 = 2 M13. Nvel de especializao da equipe de levantamento de requisitos nesta atividade. M13 = 3 M14. Nvel de detalhe do levantamento de requisitos. M14 = 3 MT4. Nvel de entendimento dos requisitos funcionais e no-funcionais. MT4 = 8 M20. Nvel de utilizao de mtodos/modelos no levantamento/especificao dos requisitos (funcionais e no- funcionais). M20 = MT9. ndice de utilizao de ferramentas de apoio. MT9 = 1 M15. Nvel de formalizao dos requisitos. M15 = 3 MT5. Nvel de identificao e registro das necessidades, MT5 = 6 Pgina 100 M16. Nvel de formalizao do detalhamento da levantamento/especificao de requisitos. M16 = 3 expectativas e restries do cliente.
M17. Nvel de aprovao dos requisitos . M17 = 4 MT6. Nvel de aprovao dos requisitos. MT6 = 4 M18. Nvel de refinamento dos requisitos funcionais. M18 = 2 MT7. Nvel de refinamento dos requisitos funcionais. MT7 = 2 M19. Nvel de Definio e Manuteno dos Requisitos Funcionais e No-Funcionais. M19 = 2 MT8. Nvel de definio e manuteno dos requisitos funcionais e no-funcionais. MT8 = 2 M26. Nvel de anlise da viabilidade dos requisitos. M26 = 1 MT14. Nvel de anlise da viabilidade dos requisitos. MT14 = 1 M21. Nvel de rastreabilidade dos requisitos. M21 = 1 MT10. Nvel de rastreabilidade dos requisitos. MT10 = 1 M25. Nvel de anlise da dependncia entre os requisitos. M25 = 1 MT13. Nvel de anlise da dependncia entre os requisitos. MT13 = 1 M23. Nvel de anlise de erros nos requisitos. M23 = 1 M24. Nvel de corretude dos testes de requisitos. M24 = 1 MT12. ndice de corretude dos requisitos. MT12 = 2 M27. Nvel de anlise de revises e correes dos produtos de trabalho. M27 =1 MT15. Nvel de anlise de revises e correes dos produtos de trabalho. MT15 = 1 M28. Nvel de anlise de manutenes nos requisitos funcionais e no-funcionais. M28 = 2 MT16. Nvel de anlise de manutenes nos requisitos funcionais e no-funcionais. MT16 = 2 M22. Nvel de identificao de interfaces. M22 = 3 MT11. Nvel de identificao de interfaces. MT11 = 3 6.1.5.3 Interpretao dos ndices Calculados A empresa participante da avaliao uma MPE com 6 funcionrios que atua no desenvolvimento de hardware criptogrfico h 3 anos. Os softwares embarcados desenvolvidos so dedicados a uma plataforma prpria e compem um produto da empresa. No entanto, possuem integraes no somente com sistemas da empresa, mas tambm com sistemas de outros fabricantes. Como o software desenvolvido parte de um produto da empresa avaliada, os requisitos do software so levantamentos/criados internamente. As mtricas obtidas no ponto de verificao que avalia a contextualizao do software (Tabela 23, item 0) revelaram que seu nvel de portabilidade no alto, no entanto seu ndice de integrao com outros sistemas, inclusive de outros fabricantes, critico. Logo, o contexto no qual o software est inserido de mdia criticidade. J os ndices de contextualizao da equipe de requisitos mostraram que no exista na empresa uma equipe especfica para o levantamento de requisitos. No entanto, apesar Pgina 101 do software ser apenas um componente de um produto, seu levantamento de requisitos realizado por um processo a parte. Embora a formao dos responsveis pelo levantamento seja em computao ou reas afins, estes no possuem conhecimentos aprofundados sobre a Engenharia de Requisitos. Em compensao, possuem conhecimentos arraigados acerca do negcio para o qual o software est sendo desenvolvido. O ndice final do ponto de verificao descrito no item 0 da Tabela 23 posiciona a equipe em um nvel intermedirio de contextualizao. A empresa apresentou um excelente nvel de entendimento dos requisitos funcionais e no funcionais (Tabela 23, item 0). No entanto, o estudo revelou que o levantamento dos requisitos realizado pelos arquitetos e projetistas do sistema, de maneira que a equipe de desenvolvimento recebe os requisitos prontos para implementao. E este levantamento realizado sem a utilizao de nenhum mtodo, modelo ou linguagem especfica (Tabela 23, item 0). Apesar de terem mostrado um bom ndice na identificao e registro das necessidades, expectativas e restries do cliente (Tabela 23, item 0), a pesquisa exps que o registro destas informaes no realizado em um documento especfico para esse fim. No entanto, essas informaes so acordadas e registradas em documentos estruturados, por exemplo, atas de reunio. J o ndice de aprovao dos requisitos propriamente ditos revelou que os mesmos so acordados e registrados formalmente em documentos como o de especificao de requisitos (Tabela 23, item 0). Com relao ao item 0 da Tabela 23, que analisa o nvel de refinamento dos requisitos funcionais, o ndice encontrado revelou que as necessidades do cliente no so refinadas gradualmente. Dessa maneira, as necessidades do cliente so levantadas e refinadas no nvel de requisitos sem a preocupao de identificar as caractersticas do sistema. No item 0 da Tabela 23 o clculo dos dados quantitativos revelou que os requisitos no-funcionais so identificados a partir dos requisitos-funcionais, no entanto, no so mantidos ao longo do tempo. Alm disso, so realizados somente estudos de viabilidade dos requisitos funcionais (item 0 da Tabela 23). O ndice que mede a dependncia entre os requisitos mostrou que esta avaliada somente entre os requisitos funcionais, desconsiderando os no-funcionais (item 0 da Tabela 23). J a rastreabilidade dos requisitos apesar de ser elaborada, no mantida ao longo do projeto (item 0 da Tabela 23). Pgina 102 No que diz respeito corretude dos requisitos foi identificado que estes so testados pela equipe de desenvolvimento sem a utilizao de roteiros de testes mas no so validados pelo cliente (item 0 da Tabela 23). J os dados quantitativos referentes ao as revises dos produtos de trabalho denunciaram que a sua reviso e correo realizada durante o processo de desenvolvimento do software mas no durante sua manuteno (item 0 da Tabela 23). Por outro lado, as mudanas dos requisitos funcionais e no funcionais so mantidas ao longo do tempo (item 0 da Tabela 23). importante ressaltar que essa manuteno dos requisitos no-funcionais no leva em considerao os requisitos funcionais relacionados, conforme interpretao do item 0 da Tabela 23. Vale destacar tambm que as manutenes mais freqentes na empresa consistem na gerao de verses especializadas do produto que no substituem os requisitos originais. Por fim, podemos identificar por meio dos valores calculados que as interfaces do sistema so representadas com a utilizao de atores, no entanto, isto registrado em documentos sem uma estrutura especfica para tal, como atas de reunies (item 0 da Tabela 23). 6.1.6 Captura de Experincias Como o estudo realizado possui apenas cunho cientfico e foco do trabalho limita-se a propor adequaes no processo de engenharia de requisitos do OpenUP, a captura de experincias no foi realizada. 6.2 Consideraes Finais Apesar do estudo no ter sido realizado conforme o planejamento inicial, a avaliao da organizao participante comprovou que muitas das dificuldades no desenvolvimento de sistemas embarcados encontradas na literatura realmente ocorrem no cotidiano das MPEs que desenvolvem este tipo de software. Como verificado na interpretao do programa de medies os requisitos no- funcionais no recebem o tratamento adequado s caractersticas dos softwares embarcados. Uma vez que no realizada a anlise de viabilidade nem identificada a dependncia e rastreabilidade destes requisitos. Em conseqncia disso, quando realizada a manuteno dos requisitos no possvel analisar a coerncia entre eles. Outro fato comprovado que os profissionais que realizam o levantamento/especificao dos requisitos no possui conhecimento especializado, alm de no serem dedicados exclusivamente a estas tarefas. E talvez, por esse motivo no sejam elaborados documentos adequados ao levantamento/especificao de requisitos, no sejam Pgina 103 utilizadas tcnicas ou ferramentas de apoio a estas atividades e o refinamento dos requisitos nveis de no seja executado respeitando os nveis de necessidade, caracterstica e requisitos. Embora no identificado na literatura pesquisada, outros aspectos como a no utilizao de roteiros na execuo dos testes do software e a falta de revises dos produtos de trabalho na fase de manuteno foram encontrados durante a avaliao. Aps a execuo do programa de medies, todas as deficincias identificadas serviro de base para proposio de adequaes no processo de engenharia de requisitos do PU a fim de adapt-lo ao contexto das MPEs desenvolveras de software embarcado. Esta atividade ser descrita em detalhes no captulo 7.
Pgina 104
7. DEFINIO DO PROCESSO DE ENGENHARIA DE REQUISITOS PARA O DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Este captulo apresentar a elaborao do processo de engenharia de requisitos para o desenvolvimento de sistemas embarcados. Para isso foram utilizadas as informaes levantadas nos captulos 02, 03 e 04, os indicadores gerados no programa e medies descrito no captulo 06 e o contexto das MPEs brasileiras que constroem esse tipo de software. A organizao do captulo realizada da seguinte forma: a seo 7.1 apresenta a elaborao do Processo de Engenharia de Requisitos para Sistemas Embarcados detalhada em termo dos elementos do processo (Papis, Tarefas, Produtos de Trabalho, Diretrizes, Listas de Verificaes e Conceitos). Na seo 7.2 apresentada uma comparao do ProReqSE com outros processos para sistemas embarcados. A seo 7.3 descreve as consideraes finais do captulo. 7.1 Processo de Engenharia de Requisitos para Sistemas Embarcados ProReqSE O Processo de Engenharia de Requisitos para Sistemas Embarcados (ProReqSE) foi modelado por meio da ferramenta Eclipse Process Framework Composer (EPF) (Foudation 2008). O EPF uma ferramenta visual de modelagem de processos que utiliza como base o Software Process Engineering Metamodel (SPEM) e possibilita a importao de bibliotecas de processos a fim de personaliz-las de acordo com o domnio da aplicao. O ProReqSE utilizou como base a biblioteca do Open UP. O Basic Unified Process foi criado pela IBM e rebatizado de Open Unified Process (OpenUP) em maro de 2006. O OpenUp uma simplificao do RUP que se adapta realidade de pequenas equipes. O fato de o EPF ser uma ferramenta freeware e o OpenUP uma biblioteca aberta foram aspectos fortemente considerados no momento de escolha da ferramenta e do modelo de processo a ser utilizado na elaborao do ProReqSE. A meta era melhorar a qualidade dos processos atuais sem onerar os custos para sua adoo. Afinal, quanto menores as dificuldades para implementao do ProReqSE, maiores sero suas chances de aceitao. Da mesma maneira que o OpenUP, o ProReqSE um processo elaborado para aplicao em equipes pequenas e co-localizadas que buscam uma abordagem simplificada para a especificao de seus produtos. Esta abordagem foi mantida devido ao curto prazo normalmente exigido para o desenvolvimento de sistemas embarcados, conforme descrito no captulo 02, e ao contexto das MPEs. Este tipo de empresa possui equipes bastante Pgina 105 reduzidas, de maneira que um membro, normalmente, assume mais de um papel dentro do processo, o que demanda, portanto, um processo leve, gil e eficiente. Outros dois pontos foram considerados na definio das principais caractersticas do ProReqSE: a informalidade dos processos de desenvolvimento das micro e pequenas empresas brasileiras e a formao multi - disciplinar das equipes de desenvolvimento de sistemas embarcados. Dessa forma, o ProREqSE : Personalizvel: de maneira que as empresas possam adequ-lo s suas necessidades de acordo com sua cultura e nvel de formalizao; Completo: permite que o processo de engenharia de requisitos seja efetivamente utilizado para atingir seus objetivos sem a necessidade de complementaes; Mnimo: de forma que seu foco atingido com a utilizao de poucos elementos. Conforme os processos de requisitos tradicionais citados nos captulos 3 e 4, o ProReqSE define um conjunto de atividades cujo objetivo a compreenso, o refinamento, a documentao e a verificao das necessidades do cliente de forma a construir um software embarcado adequado. Para, isso foram definidas as seguintes atividades: definir viso, encontrar e resumir requisitos e detalhar requisitos. As atividades devero ser executadas na seqncia em que foram citadas acima, ou seja, primeiro deve ser definida a viso do sistema e posteriormente os requisitos devem ser resumidos e finalmente detalhados. Estas atividades possuem artefatos de entrada e sada os quais foram denominados produtos de trabalho. Alm disso, elas devem ser executadas pelos papis definidos no processo. Embora os papis do ProReqSE exijam conhecimento especfico de Engenharia de Requisitos e grande parte das empresas avaliadas no captulo 06 no possuam equipes com este conhecimento, tal aspecto no ser de grande relevncia, visto que o ProReqSE foi elaborado de forma a apoiar todo o processo de engenharia de requisitos. Para isso foram definidos modelos de documentos (templates), diretrizes de trabalho, listas de verificaes e conceitos especficos da engenharia de requisitos. O primeiro ponto a ser destacado em relao ao processo definido a abrangncia de sua aplicao. Apesar da dificuldade na separao dos requisitos de hardware e software no domnio de sistemas embarcados, descritas na seo 4.4.3, o ProReqSE optou por manter a distino entre estes dois componentes do sistema. Dessa forma, o ProReqSE abordar o processo de engenharia de requisitos de sistemas embarcados visando a construo de seu software. Dois so os motivos que levaram a esta deciso: a falta de Pgina 106 conhecimento, por parte da equipe desenvolvedora do processo, em relao engenharia de hardware; as diferentes necessidades demandadas pelos dois processos de desenvolvimento dificilmente uma tcnica ou modelo para levantamento e especificao de requisitos de software seria aplicvel ao hardware. No entanto, o ProReqSE no deixou de levar em considerao esta intrnseca ligao entre os dois componentes do sistema ao definir os elementos do processo. A ferramenta EPF permite a publicao de um guia eletrnico do processo criado. Este guia visa facilitar de maneira significativa o entendimento e a institucionalizao do processo nas empresas, visto que pode ser publicado em uma rea pblica, permitindo o acesso de todos os envolvidos. A Figura 20 ilustra a pgina inicial do Guia Eletrnico de Processos do ProReqSE:
Figura 20 - Tela Inicial do ProReqSE Pgina 107 As sees a seguir apresentaro em detalhes os elementos que compem o ProReqSE, bem como, as justificativas de sua utilizao no domnio de sistemas embarcados e MPEs. 7.1.1 Papis Segundo as melhores prticas da ER descritas na seo 1.1.1.1 do captulo 4, atribuir as atividades de ER a membros habilidosos melhora a performance do desenvolvimento tornando-o mais previsvel. Dessa forma, os papis definidos no o ProReqSE levam em considerao as habilidades dos profissionais que devem assumi-los, alm destas habilidades estarem diretamente relacionadas as atividades que cada papel executa. Os papis definidos no ProReqSE so: Analista: representa os interesses dos clientes e dos usurios finais cujo objetivo recolher as informaes dos envolvidos para entender o problema a ser resolvido, capturar seus requisitos e definir suas prioridades. O analista o papel principal da ER, ele executa todas as atividades do processo e o responsvel pela elaborao da maioria dos produtos de trabalho. Dada sua importncia no processo, foram listadas, a seguir, as habilidades e os conhecimentos exigidos do profissional que pretenda assumir este papel: o Habilidade em identificar e entender os problemas e oportunidades; o Habilidade de articular as necessidades que esto associadas com os principais problemas a serem resolvidos ou com a oportunidade de ser realizada; o Habilidade de colaborar efetivamente com toda a equipe em sesses colaborativas de trabalho (como workshops, sesses de JAD e outras tcnicas); o Boa capacidade de comunicao verbal e escrita; o Conhecimento dos domnios de negcio e de tecnologia ou a capacidade de absorver e compreender rapidamente tal informao. Arquiteto: responsvel por fornecer apoio tomada de decises, balancear os interesses dos envolvidos, os riscos tcnicos e assegurar que as decises sejam comunicadas, validadas e seguidas de forma eficaz. Visto que o arquiteto possui um papel secundrio no processo, ele no responsvel pela execuo de nenhuma atividade e nem pela elaborao dos produtos de trabalho. Pgina 108 Desenvolvedor: responsvel por fornecer apoio tomada de decises relacionadas implementao. Assim como o arquiteto, no responsvel pela realizao de nenhuma atividade e nem pela confeco de produtos de trabalho. Envolvidos: representam os grupos de envolvidos que precisam ser satisfeitos pelo projeto. um papel que pode ser assumido por qualquer pessoal materialmente afetada pelo resultado do projeto. Da mesma maneira que o desenvolvedor e arquiteto no executa atividades especficas dentro do processo e nem elabora produtos de trabalho. Gerente de Projetos: conduz o planejamento do projeto, coordena as interaes com os envolvidos e mantm a equipe de projeto focada em alcanar os objetivos do projeto. 7.1.2 Atividades Conforme citado anteriormente, o ProReqSE foi dividido em quatro atividades, onde cada uma delas possui uma seqncia de tarefas a serem seguidas para atingir o objetivo da atividade. Os itens seguintes detalham as atividades e suas respectivas tarefas: Definir Viso: definir a viso para o futuro sistema, ou seja, descrever o problema a ser resolvido e as caractersticas do sistema de acordo com as solicitaes dos interessados. Vale ressaltar que neste momento no h separao entre hardware e software. A viso deve ser elaborada para o sistema como um todo. O fluxo de execuo da atividade Definir Viso ilustrado na Figura 21. Pgina 109
Figura 21 Fluxo da Atividade Definir Viso Conforme apresentado na Figura 21 esta atividade subdividida nas seguintes tarefas: o Identificar os Envolvidos: devem ser identificados todos os envolvidos com o desenvolvimento do sistema, como tomadores de deciso, clientes, usurios em potencial, parceiros, especialistas de domnio, analistas de mercado e outras partes interessadas. Devem ser determinados os perfis dos potenciais ou atuais usurios do sistema que se encaixem no papel de ator. Alm disso, importante que informaes iniciais sobre os usurios-chave e seu ambiente sejam registradas no documento de viso. Esta tarefa foi definida observando as caractersticas dos sistemas embarcados definida na seo 4.3.4 de que esse tipo de sistemas normalmente possui muitos envolvidos em seu desenvolvimento e que estes so os responsveis por criar os requisitos do software. Para que o processo de requisitos atinja seu objetivo no desenvolvimento de software necessrio que estes profissionais estejam envolvidos no projeto desde a sua concepo. Pgina 110 o Obter Acordo em Relao ao Problema a ser Resolvido: para evitar qualquer mal-entendido durante o processo de desenvolvimento do software importante que todos os envolvidos estejam de acordo com a definio do problema a ser resolvido, bem como com a terminologia a ser utilizada durante o projeto. Aps formular o problema esta informao deve ser registrada na seo correspondente do Documento de Viso, j a terminologia adotada deve ser documentada em um Glossrio. Esta uma tarefa fundamental no processo de sistemas embarcados dada quantidade de interessados envolvidos no desenvolvimento e a complexidade do sistema a ser desenvolvido. Tcnicas sugeridas para executar esta etapa: brainstorm, workshops, entrevistas e sesses de JAD. o Capturar o Vocabulrio Comum: de grande importncia que se trabalhe junto aos interessados para criar um glossrio que defina acrnimos, abreviaes e termos tcnicos e negociais relevantes. Afinal, cada projeto tem sua terminologia especfica e todos na equipe devem entend-la bem, a fim de que a comunicao entre os envolvidos seja realizada de maneira efetiva. Vale ressaltar que este glossrio deve ser continuamente refinado e expandido ao longo do projeto. No domnio de sistemas embarcados muito comum a presena de equipes multidisciplinares, portanto, primar por uma comunicao efetiva de fundamental importncia para o sucesso do projeto. Quanto maior a equipe e sua diversidade, maior ser a necessidade de se manter um glossrio atualizado do sistema. o Obter Solicitaes dos Interessados: deve ser utilizado o mtodo mais apropriado para capturar informaes. Foi desenvolvida uma diretriz para guiar esta tarefa, nesta diretriz so descritas vrias tcnicas, sendo que cada uma aplicvel a uma situao em particular ou a um certo tipo de interessado. Dado o contexto de sistemas embarcados, o ideal, o encontro presencial com todos os envolvidos, visto que isso reduz as chances da equipe de projeto entender as necessidades de maneira inadequada. Qualquer requisito capturado durante esta tarefa deve ser registrado na Lista de Priorizao das Necessidades. Pgina 111 No contexto de sistemas embarcados nem sempre existe um cliente final participando do desenvolvimento do sistema, alm do que muitas vezes os envolvidos possuem pouco conhecimento acerca do sistema desenvolvido. Para suprimir essas dificuldades, o ProReqSE utiliza a soluo proposta por Puschnig, descrita na seo 4.3.4, que sugere o envolvimento de especialistas de domnio. Associado a isso o ProReqSE sugere o uso de sees de JAD na execuo dessa tarefa. o Definir as Fronteiras do Sistema: Encontrar e definir a linha que divide a soluo e o mundo real que a cerca. Essa tarefa consiste em identificar as interfaces bem como as informaes de entrada e sada compartilhadas entre os usurios, sistemas, mquinas (ex: sensores, atuadores e hardware) e qualquer elementos do ambiente que interagem com o sistema (ex: pssaros e tempestades). Esta uma tarefa importante na definio dos requisitos de sistemas embarcados visto que este tipo de software normalmente possui um grande nmero de integraes. Alm disso, a definio das fronteiras do sistema impacta diretamente na sua arquitetura. Outra caracterstica que deve ser considerada na execuo desta tarefa que os sistemas embarcados possuem tipos de interfaces diferentes dos sistemas tradicionais. A diretriz Encontrar e Resumir Atores e Caso de Uso auxilia a identificao das interfaces do sistema que so registradas nos modelos de caso de uso. o Identificar as Restries do Sistema: o objetivo desta tarefa identificar todas as restries que possam impactar no projeto. Os principais tipos de restries dos sistemas embarcados so: polticas (normas, regulamentos, restries de regulamentao e padres legais), econmicas (oramento, licenas), ambientais (execuo em ambientes inspitos), fsicas (tamanho e peso), tcnicas (plataformas, tecnologias processador, memria), viabilidade (prazo, alocao de recursos) e sistema (compatibilidade de solues, suporte a sistemas operacionais, ambientes, restries de tempo real e gerenciamento de consumo de potncia sem perda de desempenho). fundamental importncia que essas restries sejam identificadas de forma adequada, pois em tarefas posteriores elas sero refinadas em requisitos no-funcionais. Este aspecto extremamente crtico em Pgina 112 sistemas embarcados dado que os requisitos no-funcionais so tratados tardiamente gerando impactos no produto final. o Identificar os requisitos de qualidade: o objetivo desta tarefa identificar todos os requisitos de qualidade que possam impactar no projeto. Aqui devem ser considerados aspectos como performance, usabilidade, confiabilidade, portabilidade, escalabilidade, manutenibilidade, reusabilidade, interoperabilidade, testabilidade, correo, consistncia, compatibilidade, complexidade, i internacionalizao (Fernandes 2005). fundamental importncia que esses requisitos sejam identificados de forma adequada, pois em tarefas posteriores sero refinados em requisitos no-funcionais. Este aspecto extremamente crtico em sistemas embarcados dado que os requisitos no-funcionais so tratados tardiamente gerando impactos no produto final. o Definir as Caractersticas do Sistema: refinar as necessidades do envolvidos, indicando os recursos e as capacidades que o sistema deve possuir para atend-las. Nessa tarefa as caractersticas so registradas no documento de viso. o Obter Concordncia: nesta tarefa os envolvidos devem revisar a viso do projeto a fim de garantir consentimento, determinar qualidade e identificar as mudanas requisitadas. Como o desenvolvimento de sistemas embarcados normalmente muito complexo e conta com a participao de diversos envolvidos, importante que a viso do projeto seja revisada e acordada. Esta tarefa apoiada pela Lista de Verificao de Viso. Encontrar e Resumir Requisitos: O propsito desta atividade identificar e capturar requisitos funcionais e no-funcionais para o sistema. Estes requisitos formam a base da comunicao e concordncia, entre os interessados e a equipe de desenvolvimento, a respeito do que o sistema deve fazer para atender as necessidades dos envolvidos. O seu objetivo entender os requisitos em um alto nvel de abstrao para que seja possvel determinar o escopo do sistema. Esta atividade pode ser realizada dividindo-se o sistema em componentes menores e construindo-se conexes entre eles. Posteriormente sero realizadas analises para detalhar os requisitos prioritrios para implementao. Pgina 113 As tarefas da atividade Encontrar e Resumir Requisitos so ilustradas na Figura 22:
Figura 22 Fluxo da Atividade Encontrar e Resumir Requisitos Esta atividade subdividida nas seguintes tarefas: o Obter Informaes: esta tarefa executada com o apoio de diversas tcnicas de obteno de requisitos, como: brainstorming, JAD, questionrios, wokshops dentre outras. Outra alternativa a utilizao de documentaes de outros sistemas com caractersticas semelhantes ao que est sendo desenvolvido. No desenvolvimento de sistemas embarcados, a participao de especialistas de domnio de vital importncia para definio de seus requisitos, uma vez que esse tipo de sistemas possui caractersticas especficas. Conforme descrito do captulo 4, a identificao e consulta de todas as origens dos requisitos e o envolvimento de clientes, usurios e especialistas durante a Engenharia de Requisitos melhoram respectivamente a cobertura dos requisitos e o entendimento das reais necessidades. A partir deste momento interessante que se comece a separar, explicitamente, o hardware do software. As atividades e tarefas seguintes Pgina 114 devem ser aplicadas apenas aos requisitos de software, ou seja, aqueles diretamente ligados ao aplicativo a ser desenvolvido. o Encontrar os Casos de Uso: tomando como base as tcnicas elaboradas por (Nars 2002), a principal estratgia para descobrir os casos de uso o fato de se trabalhar baseado em funes e no em atores. Alm de proporcionar maior flexibilidade, esta tcnica permite que se encontre com maior habilidade todos os casos de uso funcionais do sistema. Para executar esta tarefa so sugeridos trs passos: identificar as maiores funcionalidades do sistema, nomear cada caso de uso e descrev-los brevemente. No domnio de sistemas embarcados os tipos de funcionalidades mais comumente encontradas so: as de inicializao do sistema, monitorao de sensores e reporte de informaes de status (Nars 2002). Muito cuidado deve ser tomado durante esta tarefa a fim de identificar apenas o que necessrio para o sistema em especificao. No domnio de sistemas embarcados um grande desafio levantar apenas as funcionalidades do sistema a ser construdo, dada a alta interatividade entre ele e os demais sistemas envolvidos. o Identificar e Capturar os Termos do Domnio: o propsito desta tarefa assegurar que os termos ambguos ou especficos do domnio esto claramente definidos no glossrio e que esto sendo utilizados de forma consistente. o Identificar e Capturar os Requisitos Suplementares: o objetivo desta tarefa obter os requisitos no-funcionais relevantes para o sistema, por meio da interao com os envolvidos. Outro instrumento de apoio so as restries identificadas na atividade anterior, que so refinadas em requisitos suplementares. o Identificar as Dependncias entre os Requisitos: esta tarefa foi definida especificamente para o domnio de sistemas embarcados, onde os requisitos no-funcionais tendem a estar relacionados com mais de um requisito funcional. Esta relao pode ser de dependncia, colaborao ou prejuzo. Buscando apoiar a especificao deste relacionamento, o ProReqSE sugere a utilizao de um documento denominado Documento de Referncia Cruzada. Alm disso este produto de trabalho ser extremamente til na anlise de impacto das mudanas no sistema. Esta Pgina 115 tarefa baseia-se nas melhores prticas da ER definidas na seo 1.1.1.1 e nos conceitos de rastreabilidade definidos no item 4.3.6. o Obter Concordncia: Esta tarefa visa conduzir revises nos requisitos junto aos envolvidos para garantir consistncia dos requisitos (funcionais e no-funcionais) com o documento de viso, determinar qualidade e identificar solicitaes de mudanas. Essa tarefa apoiada pelas listas de verificao modelo de caso de uso e de viso. o Atualizar a Lista Priorizao de Necessidades: Revisar os requisitos de acordo com as necessidades dos envolvidos para que os mesmos sejam priorizados na Lista de Priorizao de Necessidades, conforme descrito na seo 1.1.1.1 do captulo 04. Detalhar Requisitos: Esta atividade visa descrever os requisitos em detalhes, de acordo com sua priorizao, para permitir a iniciao do desenvolvimento. O fluxo da atividade Detalhar Requisitos ilustrado na Figura 23:
Figura 23 Fluxo da Atividade Detalhar Requisitos
o Detalhar os Casos de Uso: para executar esta tarefa sugere-se a utilizao de um processo iterativo e progressivo de refinamento. O primeiro passo consiste em elaborar uma descrio breve do caso de uso, depois devem ser definidos e numerados os fluxos de eventos e, por fim, identificar as os requisitos no resolvidos, com o objetivo de esclarec-los. No item 7.1.3 foi definido um modelo para a especificao de caso de uso a fim de apoiar a execuo desta tarefa. No entanto, caso se deseje elaborar um documento prprio, o detalhamento de caso de uso deve possuir no mnimo: o fluxo principal; como e quando o caso de uso comea e termina; quando o caso de uso ir interagir com os atores e o que ser trocado entre eles; o que o sistema precisa fazer para executar o caso de uso; quando e como o caso de uso precisar de dados armazenados no sistema ou necessitar armazenar dados no sistema; eventos excepcionais; pr-condies e ps-condies. Pgina 116 As especificaes de caso de uso devem ser detalhadas de acordo com sua priorizao, a Diretriz Detalhar Caso de Uso apia este trabalho. O nvel de detalhe varia de acordo com as necessidades do projeto e a complexidade do caso de uso. A diretriz Nvel de Abstrao dos Casos de Uso auxilia a discusso sobre diferentes nveis de detalhe que podem ser aplicados aos casos de uso. As particularidades dos casos de uso so definidas na Especificao de Caso de Uso e nos Diagramas de Seqncia de Cenrios Operacionais. o Detalhar Requisitos Suplementares: Os requisitos no-funcionais devem ser detalhados no documento Especificao Suplementar de Requisitos, de acordo com a diretriz Requisitos Suplementares. Conforme descrito no captulo 4, requisitos no-funcionais so crticos para o desenvolvimento de sistemas embarcados. O ProReqSE, portanto, sugere a utilizao de um mtodo denominado PLanguage (Gilb 1989). Este mtodo auxilia o levantamento de requisitos no-funcionais, evita a ocorrncia de problemas como a falta de clareza e detalhamento de sua especificao e a confuso entre os requisitos funcionais e no- funcionais. Alm disso, com a utilizao da PLanguage os testes de requisitos no-funcionais podem ser executados com base na prpria especificao, eliminando a necessidade de elaborao de um documento de testes. O documento de especificao suplementar ir agregar a tabela de especificao da PLanguage. o Detalhar Termos do Glossrio: Nesta tarefa todos os termos ambguos ou especficos do domnio, utilizados nas especificaes de caso de uso e no documento de especificao suplementar de requisitos, devem ser revisados e refinados conforme a necessidade. Revisar Requisitos: Esta atividade visa revisar todos os produtos de trabalho elaborados nas atividades e tarefas anteriores com o objetivo de validar o entendimento dos requisitos e garantir sua concordncia com as expectativas dos envolvidos. As tarefas da atividade Revisar Requisitos so ilustrados na Figura 24:
Pgina 117 Figura 24 Fluxo da Atividade Revisar Requisitos o Revisar Documentos: Aps a elaborao da viso do sistema e do detalhamento dos requisitos funcionais e no funcionais o ProReqSE sugere a execuo de uma reviso em todos os produtos de trabalho gerados, como, Documento de Viso, Glossrio, Especificao de Caso de Uso, Especificao Suplementar, Documento de Referncia Cruzada dentre outros. Essas verificaes podero ser executados, por meio de um dos trs mtodos de reviso descritos no captulo 04: inspeo, walkthrough ou reviso por pares. As listas de verificao iro guiar a execuo das revises. Os resultados dessa atividade devem ser registradas nestes documentos de forma que se possa construir uma base histrica dos erros cometidos em projetos passados. o Obter Concordncia: Conduzir uma reviso nos requisitos, especificao de caso de uso e especificao suplementar de requisitos, com os envolvidos relevantes a fim de garantir sua qualidade e consistncia com o documento de viso e identificar solicitaes de mudana. 7.1.3 Produtos de Trabalho Conforme definido nos captulos 03 e 04, os Produtos de Trabalho so informaes produzidas, modificados ou utilizados pelas atividades do processo. Para facilitar o entendimento, a elaborao dos produtos de trabalho e a melhoria da qualidade da especificao foram definidos modelos (templates) destes documentos. O ProReqSE sugere a utilizao de poucos artefatos devido a seu direcionamento s MPEs e a cultura das equipes de desenvolvedoras de software embarcado. No entanto, estes artefatos podem ser acrescidos, suprimidos ou customizados de acordo com a necessidade de cada projeto. Os modelos de documentos dos produtos de trabalho definidos ou customizados pelo ProReqSE, para o domnio especifico de sistemas embarcados, so disponibilizados nos APNDICES E,F e G. O ProReqSE fornece os seguintes produtos de trabalho: Documento de Viso: Este artefato fornece uma base de alto nvel, s vezes contratual, para os requisitos tcnicos mais detalhados que so visveis para os envolvidos. Captura a essncia do sistema descrevendo as restries do projeto Pgina 118 e os requisitos de alto nvel que do ao leitor uma viso geral do sistema de uma perspectiva dos requisitos comportamentais. Especificao de Caso de Uso: Este artefato captura a seqncia das aes executadas por um sistema que tenham um resultado de valor observvel para aqueles que interagem com o sistema. O principal diferencial da especificao de caso de uso utilizada pelo ProReqSE a definio de tipos de atores especficos do domnio de sistemas embarcados, descritos na tarefa Definir as Fronteiras do Sistema. Especificao Suplementar: Este artefato captura e detalha todos os requisitos do sistema que no so especificados nos casos de uso, incluindo requisitos de atributos de qualidade e requisitos funcionais globais. O maior diferencial da Especificao Suplementar do ProReqSE a utilizao da tabela de especificao da PLanguage. Glossrio: O objetivo do glossrio fornecer um vocabulrio comum acordado por todos os envolvidos. Ajuda pessoas de diferentes grupos funcionais a alcanar uma compreenso mtua do sistema. O objetivo no registrar todos os termos possveis, mas somente aqueles que no esto claros, so ambguos ou pertencem a domnios especficos. Lista de Priorizao das Necessidades: O objetivo deste artefato priorizar as necessidades dos envolvidos a fim de guiar a seqncia do detalhamento, projeto e implementao do sistema. Modelo de Caso de Uso: Este artefato captura um modelo das funes desejadas do sistema e de seu ambiente, e serve como um contrato entre o cliente e os desenvolvedores. O principal diferencial do modelo de caso de uso utilizado pelo ProReqSE a definio de tipos de atores especficos do domnio de sistemas embarcados. Documento de Referncia Cruzada: A finalidade deste documento manter a rastreabilidade e a concorrncia (dependncia, prejuzo ou colaborao) entre os elementos do projeto. O ProReqSE sugere que seja feita a rastreabilidade entre necessidades, caractersticas, requisitos funcionais, requisitos no-funcionais. Contudo, outros elementos do projeto podem ser rastreados. Diagrama de Seqncia de Cenrios Operacionais: Este documento visa representar a seqncia temporal da execuo de cada um dos cenrios dos casos de uso. De maneira que a concorrncia entre os fluxos possa ser tratada a Pgina 119 fim de definir a correta seqncia a ser obedecida durante a execuo. Por exemplo: identificar qual exceo deve ser priorizada caso duas excees sejam lanadas no mesmo momento. 7.1.4 Diretrizes As diretrizes so guias que buscam facilitar a execuo das tarefas que compe as atividades definidas do ProReqSE e conseqente a elaborao de seus produtos de trabalho. Estes itens so de vital importncia para o processo dado o contexto das equipes desenvolvedoras de sistemas embarcados. As diretrizes disponibilizadas no ProReqSE so: o Armadilhas de Requisitos; o Detalhar Casos de Uso; o Encontrar Caso de Uso; o Encontrar e Resumir Atores e Caso de Uso; o Escrever Requisitos Adequadamente; o Formato dos Casos de Uso; o Modelo de Caso de Uso; o Realizar a Reviso dos Requisitos; o Requisitos Suplementares; o Tcnicas para Obteno de Requisitos. 7.1.5 Listas de Verificao Conforme definido no captulo 04, as listas de verificao visam garantir a qualidade e a completude dos produtos gerados em cada uma das atividades do processo de engenharia de requisitos para sistemas embarcados, bem como, a alta satisfao do cliente. O ProReqSE utiliza as Listas de Verificao definidas a seguir na atividade Revisar Requisitos: o Lista de Verificao de Ator; o Lista de Verificao de Bons Requisitos; o Lista de Verificao de Casos de Uso; o Lista de Verificao de Modelos de Caso de Uso Disponvel no APNDICE C; Pgina 120 o Lista de Verificao de Requisitos Suplementares Disponvel no APNDICE D; o Lista de Verificao de Viso Disponvel no APNDICE B; 7.1.6 Conceitos O objetivo dos conceitos definir de forma detalhada termos e tcnicas freqentemente utilizados na Engenharia de Requisitos. Da mesma forma que as diretrizes, este elemento do processo auxilia as equipes de desenvolvimento de sistemas embarcados, uma vez que estas no possuem conhecimentos especficos de Engenharia de Requisitos. Os conceitos fornecidos pelo ProReqSE so: o Ator; o Atributos de Requisitos; o PLanguage; o Caracterstica; o Caso de Uso; o Modelo de Caso de Uso; o Rastreabilidade; o Requisitos; o Requisitos Arquiteturalmente Significantes; o Requisitos Suplementares. 7.2 Comparao do ProReqSE com Outros Processos Conforme foi observado nos captulos 03, os processos de desenvolvimento de software embarcado se assemelham muito aos processos tradicionais. Apesar destes processos serem especficos para o domnio de sistemas embarcados eles do maior enfoque ao projeto do software. A Tabela 24 descreve as diferenas bsicas entre os processos de sistemas embarcados apresentados na literatura e o ProReqSE. Tabela 24 - Comparativo das Caractersticas de ER em Processos de Desenvolvimento de Sistemas Embarcados Caracterstica do Processo de ER RUP SE IPProcess UPES ProReqSE 1. H um processo de Engenharia de Requisitos definido? S S S S 2. A atividade de levantamento de requisitos realizada? S S S S Pgina 121 3. A atividade de especificao se preocupa somente com o que ser desenvolvido? S S S S 4. A atividade de design tratada separada da especificao? N S S S 5. O processo de engenharia de requisitos possui caractersticas especificas do desenvolvimento de sistemas embarcados S N N S 6. O processo de engenharia de requisitos possui a mesma estrutura dos processos tradicionais? N S S S O comparativo do ProReqSE com outros processos de desenvolvimento de sistemas embarcados evidencia os valores que foram agregados no processo elaborado. A separao do tratamento dos requisitos e do projeto de software e a insero de tarefas, atividades, papis, conceitos, diretrizes e listas de verificao especificas para este domnio so caractersticas que reforam essa afirmao. 7.3 Consideraes Finais As atividades do processo proposto devem ser executadas durante as fases do desenvolvimento do software, no entanto, nada impede que alguma atividade ou tarefa seja executada mais de uma vez ou seja quebrada com o intuito de adequar os artefatos gerados. importante que os produtos gerados a partir do processo de engenharia de requisitos dem subsdios execuo dos processos subseqentes, de forma que o produto final atinja seus objetivos. Neste captulo foi descrito o processo de engenharia de requisitos para sistemas embarcados (ProReqSE) criado a partir da avaliao, detalhada no captulo 06, do referencial terico, exposto nos captulos 02, 03 e 04 e do conhecimento prtico na rea de Engenharia de Requisitos. O captulo seguinte apresenta as concluses e trabalhos futuros relativos ao estudo desenvolvido. Pgina 122
8. CONSIDERAES FINAIS DO TRABALHO 8.1 Concluso No presente trabalho foi apresentada uma proposta de processo de engenharia de requisitos para sistemas embarcados. Esta proposta foi elaborada com base nos resultados de uma avaliao do processo de desenvolvimento de micro e pequenas empresas desenvolvedoras de sistemas embarcados e estudos sobre processos de desenvolvimento, processo de requisitos, software embarcado e GQM. A linha de pesquisas de sistemas embarcados que vem crescendo muito nos ltimos anos devido evoluo, no apenas dos microprocessadores, mas tambm de outros componentes de hardware. Conseqentemente, a quantidade de produtos no mercado compostos de sistemas embarcados aumentou de forma significativa. No entanto, o software utilizado nesses produtos no tem conseguido acompanhar essa evoluo. Inmeras dificuldades foram encontradas durante o desenvolvimento do trabalho, dentre elas a escassez no s de profissionais da rea de cincia da computao com conhecimento em software embarcado, mas tambm de material de apoio pesquisa sobre processos de desenvolvimento e processos de requisitos para esse domnio de sistemas. Contudo, esses obstculos tornaram-se incentivos realizao do trabalho. Outro empecilho encontrado foi a carncia de micro e pequenas empresas desenvolvedoras de software embarcado que estivessem dispostas a participar da pesquisa. Alm disso, o fato dos pesquisadores envolvidos neste estudo no vivenciarem o contexto do desenvolvimento de sistemas embarcados dificultou a elaborao do programa de medies utilizado na avaliao. O nvel de detalhe das questes, os termos a serem utilizados no questionrio e a definio das mtricas de cada ponto de verificao possivelmente no tenham sido definidos de forma que pudessem avaliar precisamente as deficincias e os pontos fortes do processo de requisitos das empresas participantes. Mesmo tendo contatado trs empresas que confirmaram a sua participao na pesquisa, apenas uma delas respondeu ao questionrio. Isso prejudicou a pesquisa pela falta amostras mas serviu como prova de conceito inicial para o GQM idealizado. Apesar disso, a juno dos resultados obtidos na avaliao com as caractersticas do desenvolvimento de software embarcado identificadas nas pesquisa serviram como subsidio elaborao do ProReqSE. O perfil dos profissionais envolvidos no desenvolvimento de software embarcado geralmente voltado para a rea de engenharia, esta uma caracterstica que dificultou a Pgina 123 elaborao dos papis do ProReqSE, pois as habilidades dos envolvidos no condizem com as habilidades requeridas. Esse problema foi solucionado com a elaborao de diretrizes e a definio dos conceitos que do suporte a execuo das atividades do ProReqSE. Por fim, a combinao do uso do GQM na avaliao do processo de requisitos existente nas MPEs desenvolvedoras de software e a utilizao de conceitos da literatura de sistemas embarcados demonstrou uma boa aplicabilidade na definio do ProReqSE. 8.2 Trabalhos Futuros Este projeto foi pioneiro na Universidade Catlica de Braslia na rea de sistemas embarcados. Como o trabalho abordou apenas o processo de Engenharia de Requisitos de Micro e Pequenas Empresas desenvolvedoras de software, existem diversas oportunidades para dar continuidade a essa linha de pesquisa: Ampliar a pesquisa abordando outros processos do desenvolvimento de software. Refinar a avaliao elaborando outras questes, pontos de verificao e mtricas. Aplicar a avaliao coletando informaes em uma maior quantidade de empresas com mais respondentes. Refinar o ProReqSE com a sugesto de novas adequaes. Elaborar um processo completo de desenvolvimento de software embarcado. Implantar o processo em uma ou mais MPEs. Obter e armazenar indicadores que avaliem a eficincia do ProReqSE e sugira melhorias. Conseguir parceria de empresas ou instituies que trabalhem com o desenvolvimento de software embarcado. Adequar o ProReqSE de maneira que possa estar aderente a modelos de melhoria de processo de software. Pgina 124 REFERNCIAS
Acua, A., M. Ferre, M. Lpes, e L. Mate. The Software Process: Modeling, Evaluatio and Improvement. World Scientific Publishing Company, 2000. Anquetil, N., K. M. Oliveira, e K. D. Souza. Uso do GQM para avaliar implantao de processo de manuteno de software. IV Simpsio Brasileiro de Qualidade de Software, 2005. Barbiero, A. A. Ambiente de Suporte ao Projeto de Sistemas Embarcados. Curitiba: Universidade Federal do Paran, 2006. Barreto, R.S. Sistemas Embarcados: o novo boom da Informtica? Sociedade Brasileira de Computao, 2006. Barros, E., G. Esmeraldo, e A. L. M. Silva. Uma Metodologia de Desenvolvimento Baseada em Componentes Aplicada Modelagem de Sistemas Embarcados. Workshop de Desenvolvimento Baseado em Componentes (WDBC), 2006. Barros, E., J. Bione, M. Lima, e F. Santos. IpProcess: A Development Process for Soft Ip- Core with Prototiping in FPGA. Forum on Specification & Design Language, 2005. Basili, V., e H. Rombach. Goal Question Metric Paradim. Encyclopedia of Software Engineering. New York: John Riley and Sons, 1994. Berghout, E., e R. Solligen. The Goal Question Metric Method: A practical Guide for Quality Improvement of Software Development. London: MCGraw Hill, 1999. Calsalvara, A., C. A. F. Machado, S. S. Reinehr, e R. C. Burnett. Norma NBR ISO/IEC 12207. 2000. Cantor, M. Rational Unified Process for System Engineering - Introduo RUPSE. The Rational Edge, 2003. Cantor, M. Rational Unified Process for Sytem Enginerring - Anlise e Design de Requisitos. The Rational Edge, 2003. Carro, L. and Wagner, F.R. Sistemas Computacionais Embarcados. Vol. 56. Academic Press, 2002. Chung, L., Nixon, B., Yu, E. and Mylopoulos,J. Non-Functional Requirements in Software Engineering. Kluwer Academic Publishers, 1999. Cysneiros, L. M. Requisitos No Funcionais: Da Elicitao ao Modelo Conceitual. PUC/RJ, 2001. Drias, E. S. Replicao de Estudos Empricos em Engenharia de Software. Edio: Matemticas e Computao Instituto de Cincias. ICMC - USP, 2001. Farias, T. M.M. Aplicao de Padres ao Processo de Desenvolvimento de Software RUP. Trabalho de Concluso de Curso - Universidade de Pernambuco, 2006. Pgina 125 Feiler, P. H., e W. S. Humphrey. Software process development and enactment: concepts anddefinitions. Second International Conference on the Continuous Software Process Improvement (IEEE Computer Society), 1993: 28 - 40. Fernandes, D. B. Anlise de Sistemas Orientada ao Sucesso: Por que os projetos atrasam? Cincia Moderna, 2005. Foudation, Eclipse. Eclipse Process Framework. http://www.eclipse.org/epf (acesso em 01 de 05 de 2008). Gastaldo, D.L. e Midorikawa, E.T. Processo de Engenharia de Requisitos Aplicado a Requisitos No-Funcionais de Desempenho Um Estudo de Caso. 2003. Gilb, T. A Planning Language. Edio: ACM Press. International Conference on APL. 1989. 169-177. Gladcheff, A. P., R. Sanches, e D. M. da Silva. Um Instrumento de Avaliao de Qualidade de Software Educacional: como elabor-lo. Simpsio Brasileiro de Engenharia de Software - VIII Workshop de Qualidade de Software, 2001. Goethert, W., e M. Fischer. Deriving Enterprise-BasedMeasure Using the Balanced Scorecard and Goal-Driven Measurement Techniques. Software Engineering Institute, 2003. Gonalvez, J. E. L. As empresas so grandes colees de processos. Revista de Administrao de Empresas, Jan/Mar 2000: 6-19. Graaf, B. and Lormans, M. and Toetenel, H. Embedded Software Engeneering: The State of the Practice. IEEE Software, 2003: 61-69. Hauck, J. C. Modelagem e Aplicao de um Processo de Software em uma Microempresa. Relatrio Tcnico, UNIVALI, So Jos, 2002. Hauck, J. C. R. Desenvolvimento de um Sistema de Software para Gerncia de Manuais de Processos de Software em Micro e Pequenas Empresas. Trabalho de Concluso de Curso, 2004. Henzinger, T. e Sifakis, J. The Discipline Of Embedded Systems Design. IEEE Computer Magazine 40 (2007): 32-40. Hewett, R. e Seker, R. A Risk Assessment Model of Embedded Software Systems. IEEE International Conference on Man and Cybernetics Systems 4 (2005): 3238- 3243. Hofmann, H.F. e Lehner, F. Requirements Engineering as a Success Factor in Software Projects. Vol. 18. 4 vols. 2001. IEEE. SWEBOK - A Project of the Software Engineering Coordinating Committee. 2001. Jacobson, I., G. Boock, e J. Rumbaugh. The Unified Software Development Process. Addison - Wesley, 1999. Kondo, M.N.S., Silva, J.R., Hira, A.Y. e Zuffo, M.K. Estudo de Requisitos do Software Embarcado no Segmento da Telemedicina. Escola Politcnica da USP, 2006. Pgina 126 Kopanas, V., V. Sylaidis, e I. Nakakis. GQM-based improvement of embedded, real-time software development practices. Eighth IEEE International Workshop on incorporating Computer Aided Software Engineering, 1997: 105-115. Kruchten, P. Introduo ao RUP - Rational Unified Process. Rio de Janeiro: Cincia Moderna, 2003. Laboratory, Software Measurement. GQM Method. http://ivs.cs.uni-magderburg.de/sw- eng/us/java/GQM/link2.shtml (acesso em 10 de 2007). Larman, C. Utilizando UML e Padres. So Paulo: Bookman, 2004. Lattemann, F. e Lehmann, E. A. Methodological Approach to the Requirement Specification of Embedded Systems. Proceedings of the 1st International Conference on Formal Engineering Methods (ICFEM97), 1997: 183. Lee, E.A. Embedded Software. Vol. Vol 56. Academic Press, 2002. Lee, E.A. Whats Ahead for Embedded Software? IEEE Computer, 2000: 19-26. Lee, S., Ko, H., Jo, D., Jeong, J., Kim, K. Reusable SW Requirements Development Process: Embedded SW Industry Experiences. Proceedings of the 2007 Australian Software Engineering Conference (ASWEC07), 2007: 147-158. Marwedel, P. Embedded System Design. Springer, 2003. Mcchesney, R. T. Toward a Classification Scheme for Software Process Modelling Aproaches. Information and Software Technology, 1995. MCT, Ministrio da Cincia e Tecnologia. Qualidade e Produtividade no Setor de Software Brasileiro. Comunicao Pessoal, 2002. Nars, E., McDermid, J. e Bernat, G. Eliciting and Specifying with Use Cases for Embedded Systems. Proceedings of the Seventh International Workshop on Object-Oriented Real-Time Dependable Systems (WORDS 2002), 2002: 350-357. Oliveira, M. S. Orientaes Metodolgicas para Monografia Latu Sensu. OMG, Object Management Group. Software Process Engineering Metamodel Specification. 2005. Pimentel, A. R. Uma Abordagem para Projeto de Software Orientado a Objetos Baseado na Teoria de Axiomtico. Tese de Doutorado - Universidade Tecnolgica Federal do Paran, Maio 2007. Pradhan, D. K. Fault-Tolerant System Design. New Jersey: Prentice Hall, 1996. Pressman, R. S. Engenharia de Software. 5 edio. Mc Graw Hill, 2006. Puschnig, A. e Kolagari, R.T. Requirements Engineering in the Development of Innovative Automotive Embedded Systems. Proceedings of the 12th International Requirements Engineering Conference (RE04), 2004: 328-333. Ramos, C. Avaliao de Sistemas Legados. Dissertao de Mestrado - Universidade Catlica de Braslia - UCB, 2004. Pgina 127 Riccobene, E., P. Scandurra, A. Rosti, e S. Bocchio. Designing a Unified Process for Embedded Systems. Edio: IEEE Computer Society. Fourth International Workshop on Model-Based Methodologies for Pervasive and Embedded Software MOMPES07, Maro 2007: 77 - 90. Robertson, J. Eureka! Why Analysts Should Invent Requirements. IEEE Software, 2002: 20-22. RUP. Site RUP. Wthreex. 2001. http://www.wthreex.com/rup/process/workflow/requirem/co_req.htm (acesso em 02 de 02 de 2008). Sangiovanni-Vincentelli, A., Carloni, L., De Bernardinis, F., and Sgroi, M. Benefits and challenges for platform-based design. 2004. Silva, C.A.L.B., Silva, M.A.L.R. e Costa, O.L.P. Implantao de Melhoria no Processo Engenharia de Requisitos na Empresa Frmula Informtica. VI Simpsio Internacional de Melhoria de Processos de Software (SIMPROS 04), 2004. Softex. Melhoria de Processo de Software Brasileiro - Guia Geral Verso 1.2. http://www.softex.br/mpsbr/ (in portuguese) (acesso em 15 de 11 de 2007). Sommerville, I. e Kotonya, G. Requirements Engineering. Wiley, 1998. Tennenhouse, D. Proactive Computing. 5 edio. Vol. 3. 2000. Wangenheim, C. G. V., e G. Ruhe. Anlise de Custo Benefcio de Mensurao Baseada em GQM Um Estudo de Caso Replicado. Procedigs of X Conferncia Internacional de Qualidade de Software, 1999. Weber, S. Um Estudo de Caso em uma Microempresa de Software para o Desenvolvimento de um Modelo de Processo de Software. Universidade Federal de Florianpolis - UFSC, 2002. Wolf, W. Computers as Components: Principles of Embedded Computing System Design. McGraw-Hill, 2001. Yamaura, T., Miyazaki, H. e Onoma, A.K. A New Defining Approach for Software Requirement Specifications. Proceedings of the IEEE Workshop on Software Technologies for Future Embedded Systems (WSTFES03), 2003: 13-16. Pgina 128 APNDICE A RESPOSTA DO QUESTIONRIO DE AVALIAO DOS PROCESSOS DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS
Questionrio de Avaliao dos Processos de Desenvolvimento de Sistemas Embarcados
Equipe Responsvel pela Avaliao: Cludia de Oliveira Melo Daniele Erica Damke Patrcia Freitas de Moraes
Equipe Avaliada: Latenter Criptografia e Segurana Digital Thiago de Castro Martins Engenheiro de Desenvolvimento
1. Contextualizao - A empresa Questes Respostas 1.1 Qual o domnio de negcio da empresa? Desenvolvimento de hardware criptogrfico 1.2 H quanto tempo a empresa atua neste domnio de negcio? 3 anos 1.3 Qual o nmero de funcionrios da empresa? 6 Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
2. Contextualizao - O software Questes Respostas 2.1 O software embarcado desenvolvido pela empresa ... (2) Um produto da empresa (cliente interno). 2.2 O software embarcado desenvolvido pela empresa possui integrao com outros sistemas? (3) Possui integrao com sistemas da prpria empresa e de Pgina 129 outros fabricantes. 2.3 O software embarcado desenvolvido pela empresa deve executar em diferentes plataformas? (0) O software dedicado a uma plataforma especfica da empresa. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
3. Contextualizao - A Equipe de Requisitos Questes Respostas 3.1 No caso do software ser um componente de um produto da prpria empresa ou de outro fabricante, existe uma equipe separada para o levantamento dos requisitos do software? (2) No existe separao entre as equipes. Mas os levantamentos do produto e do software so realizados em momentos distintos e por processos distintos. 3.2 Caso exista uma equipe separada para os requisitos do software, qual o seu tamanho, em relao ao tamanho total da equipe responsvel pelo projeto? (0) No existe uma equipe separada. 3.2 Caso exista uma equipe separada para os requisitos do software, seus membros so dedicados a esta atividade? (0) No existe uma equipe separada. 3.4 Qual a formao acadmica dos membros da equipe de requisitos (mesmo que no exista uma equipe separada para tal)? (3) Os membros da equipe possuem formao em Cincia da Computao (ou reas afins), e possuem conhecimento superficial da Engenharia de Requisitos. 3.5 Qual o nvel de conhecimento da equipe de requisitos no que diz respeito ao negcio do software a ser desenvolvido? (2) A equipe de requisitos tem conhecimentos aprofundados do negcio. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
4. O entendimento dos requisitos (funcionais e no-funcionais) obtido junto aos fornecedores de requisitos? Questes Respostas 4.1 Qual o nvel de entendimento dos requisitos? (2) Os requisitos so recebidos j levantados. 4.2 Qual o nvel de especializao da equipe de levantamento de requisitos nesta atividade? (3) Os requisitos so levantados pelos arquitetos ou projetistas. 4.3 Qual o nvel de detalhe do levantamento de requisitos? (3) As necessidades do cliente, as restries do sistema e as Pgina 130 integraes com outros sistemas/dispositivos so identificadas. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
5. As necessidades, expectativas e restries do cliente, tanto do produto quanto de suas interfaces, so identificadas e registradas? Questes Respostas 5.1 Qual o nvel de formalizao dos requisitos? (3) Os requisitos so acordados e registrados em documentos estruturados (ex: atas de reunio). 5.2 Qual o nvel de formalizao do detalhamento do levantamento/especificao de requisitos? (3) As necessidades, expectativas e restries do cliente so levantadas e registradas em atas de reunio. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
6. Os requisitos de software so aprovados? Questes Respostas 6.1 Qual o nvel de formalizao dos requisitos? (4) Os requisitos so acordados e registrados formalmente (ex: documento de especificao de requisitos). Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
7. Um conjunto definido de requisitos do cliente especificado a partir das necessidades, expectativas e restries identificadas? Questes Respostas 7.1 Qual o nvel de refinamento dos requisitos funcionais? (2) As caractersticas so diretamente levantadas e refinadas em nvel de requisitos. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
8. Um conjunto de requisitos funcionais e no-funcionais do produto e dos componentes do produto que descrevem a soluo do problema a ser resolvido, definido e mantido a partir dos requisitos do cliente? Pgina 131 Questes Respostas 8.1 Qual o nvel de entendimento dos requisitos no-funcionais? (2) Os requisitos no-funcionais so identificados e so definidos a partir dos requisitos funcionais identificados. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
9. utilizado algum mtodo, modelo ou linguagem para especificao dos requisitos (funcionais e no- funcionais)? Questes Respostas 9.1 Qual o nvel de utilizao de mtodos/modelos no levantamento/especificao dos requisitos (funcionais e no- funcionais)? (1) Os requisitos funcionais e no- funcionais so levantados/ especificados sem utilizao de tcnicas auxiliares. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
10. estabelecida a rastreabilidade bidirecional entre os requisitos e os produtos de trabalho? Em caso positivo, esta rastreabilidade mantida? Questes Respostas 10.1 Qual o nvel de rastreabilidade dos requisitos? (1) A rastreabilidade entre os requisitos de trabalho elaborada. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
11. Interfaces internas e externas do produto e de cada componente do produto so definidas? Questes Respostas 11.1 Qual o nvel de identificao de interfaces? (3) Os atores do sistema so definidos e registrados em documentos estruturados (Ex. Ata de reunio). Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
12. Os requisitos so analisados para assegurar que sejam necessrios, corretos, testveis e suficientes para balancear as necessidades dos interessados com as restries existentes? Questes Respostas Pgina 132 12.1 Qual o nvel de anlise de erros nos requisitos? (1) Os requisitos so testados pela equipe de desenvolvimento e no so validados pelo cliente. 12.2 Qual o nvel de corretude dos testes de requisitos? [Favor informar a opo que mais se aplica sua realidade] Dvidas Acredito que haja algum erro nas alternativas de resposta da questo 13.2
13. considerada e avaliada a dependncia entre os requisitos? Questes Respostas 13.1 Qual o nvel de anlise da dependncia entre os requisitos? (1) A dependncia entre os requisitos funcionais avaliada. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo]
14. considerada e validada a viabilidade dos itens de software atenderem seus requisitos alocados? Questes Respostas 14.1 Qual o nvel de anlise da viabilidade dos requisitos? (1) A viabilidade dos requisitos funcionais avaliada. Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
15. considerada e avaliada a viabilidade da operao e da manuteno do sistema? Questes Respostas 15.1 Qual o nvel de anlise da viabilidade de operao e manuteno dos sistemas? (1) A viabilidade de operao do sistema avaliada. Dvidas Por "manuteno" deve-se entender a manuteno do produto final (hardware + software) ou a atualizao do software embarcado?
16. So feitas revises nos planos e produtos de trabalho do projeto visando identificar e corrigir inconsistncias em relao aos requisitos? Questes Respostas 16.1 Qual o nvel de anlise de revises e correes dos produtos de trabalho? (1) So realizadas revises e correes dos planos e produtos de trabalho durante o processo de desenvolvimento do sistema. Pgina 133 Dvidas [Favor digitar aqui suas dvidas e comentrios em relao a questo, caso existam]
17. As mudanas nos requisitos so gerenciadas ao longo do tempo? Questes Respostas 17.1 Qual o nvel de anlise de manutenes nos requisitos funcionais e no-funcionais? (2) Os requisitos funcionais e no- funcionais so mantidos ao longo do tempo. Dvidas As manutenes mais freqentes no meu negcio consistem na gerao de verses especializadas do produto. Neste caso, evidentemente os requisitos so passveis de sofrerem alteraes. No entanto, estes novos requisitos NO substituem os originais. Em termos de um sistema de controle de revises, isso seria o equivalente a um "branch".
Comentrios [Favor digitar aqui seus comentrios, crticas e sugestes em relao ao questionrio]
Pgina 134
APNDICE B LISTA DE VERIFICAO I PROCESSO DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Logotipo da Empresa Lista de Verificao do Documento de Viso <Sigla do Projeto> - <Nome do Projeto> Lista de Verificao do Documento de Viso: <Nome do Documento> Verso <X> Data: 18/3/2008 1. IDENTIFICAO [Descrever informaes gerais sobre a reviso tcnica sendo realizada: Projeto: Sigla e nome do projeto ao qual o(s) produto(s) sendo revisados pertencem; Nome do Revisor: Nome da pessoa responsvel pela reviso; Data da Reviso: Data da realizao da reviso; Tempo de durao da reviso: Tempo gasto, em horas e minutos, com a atividade de reviso tcnica do produto.]
Projeto <Sigla do Projeto> - <Nome do Projeto> Nome do Revisor
Data da Reviso <dd/MM/AAAA> Tempo de Durao da Reviso <X> horas e <X> minutos 2. OBJETIVO [Descrever o objetivo da reviso e listar os produtos a serem revisados.]
Propsito da Reviso Revisar o documento Viso identificando desvios relativos aos requisitos de alto nvel que representam o escopo do sistema e a rastreabilidade entre esses requisitos. Produtos a serem revisados Verso <Viso> <X>
Pgina 135
3. ITENS DE VERIFICAO [Listar os critrios para reviso dos produtos, enfatizando: o Fatores crticos para a qualidade do produto(s); o Principais defeitos historicamente identificados no(s) produto(s); o Fatores do(s) produto(s) que so base para realizao de outras atividades.
Criar uma seo e tabela de reviso para cada produto a ser revisado.] 3.1. VISO - <VERSO DO PRODUTO> [A lista de itens de verificao descreve: No: Nmero seqencial do item de reviso; Descrio do Item: Descrio do que deve ser revisado; Situao: situao do produto revisado em relao ao item a ser revisado: o OK: Produto(s) em conformidade com o item. o NOK: Produto(s) no conforme com a descrio do item. Ou seja, produto com defeito em relao ao item; o NA: Item no aplicvel para o produto em reviso. Observaes e Defeitos: o Quando situao OK: Campo deve permanecer em branco; o Quando situao NOK: Campo deve descrever o defeito encontrado, relatando inclusive a localizao do defeito no produto (nmero de pgina, seo, etc); o Quando situao NA: Campo deve descrever o motivo pelo qual o item de reviso no se aplica ao produto sendo de revisado. Gravidade: Gravidade dos defeitos encontrados; o Alta: Defeitos que inviabilizem a compreenso do produto ou que caracterizam o produto como no aderente aos seus objetivos, como: Produto no atende aos requisitos, idias impossveis de serem realizadas, produto que cause impacto em outro produto j homologado, ausncia de informaes importantes no documento, etc. o Mdia: Defeitos que dificultam a compreenso do produto, porm este permanece adequado ao seu objetivo, como: erros de ortografia e gramtica, poluio visual, mau encadeamento de idias, etc. o Baixa: Defeitos relevantes que no afetam a compreenso ou adequao do produto aos seus objetivos, como: Detalhes de apresentao, cores, tamanhos de fontes, etc.
Pgina 136
Situao No Descrio do Item OK NOK NA Observaes e Defeitos Gravidade Geral 1 O documento foi elaborado com base na ltima verso do modelo disponvel? 2 As informaes do documento (nome, verso, autor, sigla e nome do projeto, etc) foram devidamente registradas nas propriedades deste?
3 A verso do documento foi incrementada e a descrio da elaborao ou alterao foi registrada no histrico de revises do documento?
4 A capa do documento foi atualizada com o nome e verso do documento, sigla e nome do projeto e marca do cliente?
5 O cabealho do documento foi atualizado com o nome do documento e marca do cliente? 6 O rodap do documento foi atualizado com a sigla e o nome do projeto? 7 O sumrio do documento foi atualizado? Requisitos 8 O Problema est identificado e registrado de maneira clara? 9 Os usurios do sistema esto identificados? 10 As necessidades dos interessados esto identificadas? As colunas esto preenchidas corretamente? O nvel de prioridade est definido para cada necessidade?
11 As sentenas que nomeiam as Caractersticas esto descritas de acordo com o padro indicado no documento Viso e no Processo de Gerenciamento e Engenharia de Requisitos?
12 A descrio de cada Caracterstica est clara? Basicamente, deve-se descrever como o recurso ser percebido pelo usurio externamente, em alto nvel. O pblico alvo deste texto so pessoas com formaes heterogneas e o objetivo que todas entendam o sistema.
13 Existem restries impostas? Caso afirmativo, o entendimento est claro o suficiente? 14 Os requisitos de documentao esto registrados? (1) Gravidade: Alta, Mdia, Baixa. [Descrever todos defeitos de ortografia e gramtica encontrados em qualquer seo do produto. Os defeitos de ortografia e gramtica no so classificados quanto gravidade, pois todos devem obrigatoriamente ser corrigidos. N o : Nmero seqencial do defeito Localizao do Defeito: Nmero de pgina, pargrafo ou seo do produto na qual localizado o defeito. Descrio do Defeito: Descrio do defeito de ortografia e gramtica, sugere-se copiar o trecho de texto e destacar o defeito com cor de fonte diferente ou negrito. ]
Pgina 137
Defeitos de Ortografia e Gramtica No Localizao do Defeito Descrio do Defeito
[Identificar sugestes de melhoria no produto revisado. No h necessidade de implementao de todas as sugestes, ficando a cargo do Autor do produto decidir quanto sua implementao. N o : Nmero seqencial da Sugesto Descrio da Sugesto: Descrio da sugesto de melhoria no produto revisado ]
Sugestes de Melhoria No Descrio da Sugesto
Pgina 138
APNDICE C LISTA DE VERIFICAO II
PROCESSO DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Logotipo da Empresa Lista de Verificao de Especificao de Caso de Uso <Sigla do Projeto> - <Nome do Projeto> Lista de Verificao de Especificao de Caso de Uso: <Nome do Documento> Verso <X> Data: 18/3/2008 1. IDENTIFICAO [Descrever informaes gerais sobre a reviso tcnica sendo realizada: Projeto: Sigla e nome do projeto ao qual o(s) produto(s) sendo revisados pertencem; Nome do Revisor: Nome da pessoa responsvel pela reviso; Data da Reviso: Data da realizao da reviso; Tempo de durao da reviso: Tempo gasto, em horas e minutos, com a atividade de reviso tcnica do produto.]
Projeto <Sigla do Projeto> - <Nome do Projeto> Nome do Revisor
Data da Reviso <dd/MM/AAAA> Tempo de Durao da Reviso <X> horas e <X> minutos 2. OBJETIVO [Descrever o objetivo da reviso e listar os produtos a serem revisados.]
Propsito da Reviso Revisar o Caso de Uso identificando desvios relativos ao detalhamento de requisitos funcionais e rastreabilidade. Produtos a serem revisados Verso <Nome da Especificao> <X>
Pgina 139
3. ITENS DE VERIFICAO [Listar os critrios para reviso dos produtos, enfatizando: o Fatores crticos para a qualidade do produto(s); o Principais defeitos historicamente identificados no(s) produto(s); o Fatores do(s) produto(s) que so base para realizao de outras atividades.
Criar uma seo e tabela de reviso para cada produto a ser revisado.] 3.1. CASO DE USO <NOME DO CASO DE USO> - <VERSO DO PRODUTO> [A lista de itens de verificao descreve: No: Nmero seqencial do item de reviso; Descrio do Item: Descrio do que deve ser revisado; Situao: situao do produto revisado em relao ao item a ser revisado: o OK: Produto(s) em conformidade com o item. o NOK: Produto(s) no conforme com a descrio do item. Ou seja, produto com defeito em relao ao item; o NA: Item no aplicvel para o produto em reviso. Observaes e Defeitos: o Quando situao OK: Campo deve permanecer em branco; o Quando situao NOK: Campo deve descrever o defeito encontrado, relatando inclusive a localizao do defeito no produto (nmero de pgina, seo, etc); o Quando situao NA: Campo deve descrever o motivo pelo qual o item de reviso no se aplica ao produto sendo de revisado. Gravidade: Gravidade dos defeitos encontrados; o Alta: Defeitos que inviabilizem a compreenso do produto ou que caracterizam o produto como no aderente aos seus objetivos, como: Produto no atende aos requisitos, idias impossveis de serem realizadas, produto que cause impacto em outro produto j homologado, ausncia de informaes importantes no documento, etc. o Mdia: Defeitos que dificultam a compreenso do produto, porm este permanece adequado ao seu objetivo, como: erros de ortografia e gramtica, poluio visual, mau encadeamento de idias, etc. o Baixa: Defeitos relevantes que no afetam a compreenso ou adequao do produto aos seus objetivos, como: Detalhes de apresentao, cores, tamanhos de fontes, etc.
Situao No Descrio do Item OK NOK NA Observaes e Defeitos Gravidade Geral
Pgina 140
1 O documento foi elaborado com base na ltima verso do modelo disponvel? 2 As informaes do documento (nome, verso, autor, sigla e nome do projeto, etc) foram devidamente registradas nas propriedades deste?
3 A verso do documento foi incrementada e a descrio da elaborao ou alterao foi registrada no histrico de revises do documento?
4 A capa do documento foi atualizada com o nome e verso do documento, sigla e nome do projeto e marca do cliente?
5 O cabealho do documento foi atualizado com o nome do documento e marca do cliente? 6 O rodap do documento foi atualizado com a sigla e o nome do projeto? Requisitos 7 A descrio do DEC est clara e completa? Relata em poucas palavras o objetivo de negcio do Documento de Especificao de Caso de Uso e cita suas funcionalidades? Voc entendeu o objetivo do DEC sem precisar ler os seus fluxos de eventos?
8 Verifique se o Caso de Uso se encontra na lista ou Modelo de Casos de Uso existente no DRS. 9 Procure termos vagos e pea esclarecimento (algum, s vezes, usualmente, freqentemente). 10 Todos os atores que interagem com o DEC foram relacionados? 11 Verificar, para cada um dos passos do DEC, onde pode ocorrer uma validao de Regra de Negcio. Se ocorrer isso, incluir no final do passo a indicao para a Regra que est no documento de Regras de Negcio.
12 Todos os atributos de entrada e de sada e regras relacionadas esto especificados? Exemplos: 1. Campos que devero ser apresentados para o usurio. 2. Campos que devero ser informados pelo usurio. 3. Regras de negcio que estabeleam atributos de entrada ou sada.
13 A obrigatoriedade dos atributos de entrada est especificada? 14 Os atributos que sero selecionados a partir de uma lista de valores esto evidenciados? (Ex: O Ator seleciona a UF a partir de uma lista)
15 Os valores das listas ou domnios especficos do sistema esto documentados no DEC? 16 Conferir se o texto das mensagens referenciadas no DEC est apropriado para o negcio. Evitar mensagens longas demais ou mensagens curtas que no dizem nada.
17 Se o DEC possui integraes, os requisitos destas (parmetros, regras) esto documentados? Padres e Formas 18 O nome do DEC deve estar no infinitivo do verbo Rejeitar..., Receber.... 19 Todos os documentos de referncias foram listados no item referncia. (Outros Casos de Uso, Glossrio, Viso, etc.)
20 Se algum dos itens do template do Documento de Especificao de Casos de Uso no tiver informao, esses itens no podem ser removidos. Informar para o item referente a seguinte frase: No se aplica.
Pgina 141
(1) Gravidade: Alta, Mdia, Baixa.
[Descrever todos defeitos de ortografia e gramtica encontrados em qualquer seo do produto. Os defeitos de ortografia e gramtica no so classificados quanto gravidade, pois todos devem obrigatoriamente ser corrigidos. N o : Nmero seqencial do defeito Localizao do Defeito: Nmero de pgina, pargrafo ou seo do produto na qual localizado o defeito. Descrio do Defeito: Descrio do defeito de ortografia e gramtica, sugere-se copiar o trecho de texto e destacar o defeito com cor de fonte diferente ou negrito. ]
Defeitos de Ortografia e Gramtica No Localizao do Defeito Descrio do Defeito
[Identificar sugestes de melhoria no produto revisado. No h necessidade de implementao de todas as sugestes, ficando a cargo do Autor do produto decidir quanto sua implementao. N o : Nmero seqencial da Sugesto Descrio da Sugesto: Descrio da sugesto de melhoria no produto revisado ]
Sugestes de Melhoria No Descrio da Sugesto
Pgina 142
APNDICE D LISTA DE VERIFICAO III PROCESSO DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Logotipo da Empresa Lista de Verificao de Especificao Suplementar <Sigla do Projeto> - <Nome do Projeto> Lista de Verificao de Especificao Suplementar: <Nome do Documento> Verso <X> Data: 18/3/2008 1. IDENTIFICAO [Descrever informaes gerais sobre a reviso tcnica sendo realizada: Projeto: Sigla e nome do projeto ao qual o(s) produto(s) sendo revisados pertencem; Nome do Revisor: Nome da pessoa responsvel pela reviso; Data da Reviso: Data da realizao da reviso; Tempo de durao da reviso: Tempo gasto, em horas e minutos, com a atividade de reviso tcnica do produto.]
Projeto <Sigla do Projeto> - <Nome do Projeto> Nome do Revisor
Data da Reviso <dd/MM/AAAA> Tempo de Durao da Reviso <X> horas e <X> minutos 2. OBJETIVO [Descrever o objetivo da reviso e listar os produtos a serem revisados.]
Propsito da Reviso Revisar a Especificao de Requisitos no Funcionais identificando desvios relativos ao detalhamento do requisito e rastreabilidade. Produtos a serem revisados Verso <Nome da Especificao> <X>
Pgina 143
3. ITENS DE VERIFICAO [Listar os critrios para reviso dos produtos, enfatizando: o Fatores crticos para a qualidade do produto(s); o Principais defeitos historicamente identificados no(s) produto(s); o Fatores do(s) produto(s) que so base para realizao de outras atividades.
Criar uma seo e tabela de reviso para cada produto a ser revisado.] 3.1. REQUISITO NO FUNCIONAL <NOME DO REQUISITO NO FUNCIONAL> - <VERSO DO PRODUTO> [A lista de itens de verificao descreve: No: Nmero seqencial do item de reviso; Descrio do Item: Descrio do que deve ser revisado; Situao: situao do produto revisado em relao ao item a ser revisado: o OK: Produto(s) em conformidade com o item. o NOK: Produto(s) no conforme com a descrio do item. Ou seja, produto com defeito em relao ao item; o NA: Item no aplicvel para o produto em reviso. Observaes e Defeitos: o Quando situao OK: Campo deve permanecer em branco; o Quando situao NOK: Campo deve descrever o defeito encontrado, relatando inclusive a localizao do defeito no produto (nmero de pgina, seo, etc); o Quando situao NA: Campo deve descrever o motivo pelo qual o item de reviso no se aplica ao produto sendo de revisado. Gravidade: Gravidade dos defeitos encontrados; o Alta: Defeitos que inviabilizem a compreenso do produto ou que caracterizam o produto como no aderente aos seus objetivos, como: Produto no atende aos requisitos, idias impossveis de serem realizadas, produto que cause impacto em outro produto j homologado, ausncia de informaes importantes no documento, etc. o Mdia: Defeitos que dificultam a compreenso do produto, porm este permanece adequado ao seu objetivo, como: erros de ortografia e gramtica, poluio visual, mau encadeamento de idias, etc. o Baixa: Defeitos relevantes que no afetam a compreenso ou adequao do produto aos seus objetivos, como: Detalhes de apresentao, cores, tamanhos de fontes, etc.
Situao No Descrio do Item OK NOK NA Observaes e Defeitos Gravidade Geral
Pgina 144
1 O documento foi elaborado com base na ltima verso do modelo disponvel? 2 As informaes do documento (nome, verso, autor, sigla e nome do projeto, etc) foram devidamente registradas nas propriedades deste?
3 A verso do documento foi incrementada e a descrio da elaborao ou alterao foi registrada no histrico de revises do documento?
4 A capa do documento foi atualizada com o nome e verso do documento, sigla e nome do projeto e marca do cliente?
5 O cabealho do documento foi atualizado com o nome do documento e marca do cliente? 6 O rodap do documento foi atualizado com a sigla e o nome do projeto? Requisitos 7 Existem requisitos de Usabilidade? Esto claramente especificados? 8 Existem requisitos de Confiabilidade? Esto claramente especificados? 9 Existem requisitos de Desempenho? Esto claramente especificados? 10 Existem requisitos de Suportabilidade? Esto claramente especificados? 11 Existem Restries de Projeto? Esto claramente especificados? 12 Existem outros Requisitos de Produto? Esto claramente especificados? 13 Os requisitos suplementares foram detalhados por meio do preenchimento da tabela da Planguage? (1) Gravidade: Alta, Mdia, Baixa. [Descrever todos defeitos de ortografia e gramtica encontrados em qualquer seo do produto. Os defeitos de ortografia e gramtica no so classificados quanto gravidade, pois todos devem obrigatoriamente ser corrigidos. N o : Nmero seqencial do defeito Localizao do Defeito: Nmero de pgina, pargrafo ou seo do produto na qual localizado o defeito. Descrio do Defeito: Descrio do defeito de ortografia e gramtica, sugere-se copiar o trecho de texto e destacar o defeito com cor de fonte diferente ou negrito. ]
Defeitos de Ortografia e Gramtica No Localizao do Defeito Descrio do Defeito
[Identificar sugestes de melhoria no produto revisado. No h necessidade de implementao de todas as sugestes, ficando a cargo do Autor do produto decidir quanto sua implementao. N o : Nmero seqencial da Sugesto
Pgina 145
Descrio da Sugesto: Descrio da sugesto de melhoria no produto revisado ]
Sugestes de Melhoria No Descrio da Sugesto
Pgina 146 APNDICE E LISTA DE PRIORIZAO
PROCESSO DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Logotipo da Empresa Lista de Priorizao <Sigla do Projeto> - <Nome do Projeto> Lista de Priorizao: <Nome do Documento> Verso <X> Data: 18/3/2008
Lista de Priorizao: <Nome do Documento>
Histrico da Reviso Data Verso Descrio Autor <dd/mmm/aa> <x.x> <detalhes> <nome>
ndice Analtico 1. Introduo 147 1.1. Priorizao das Necessidades do Cliente 147
Pgina 147 Lista de Priorizao: <Nome do Documento>
1. INTRODUO [A introduo da lista de priorizao fornece uma viso da priorizao que deve ser seguida no desenvolvimento nas necessudades do sistema. Ela deve incluir as necessidades do cliente e o seu respectivo nvel de prioriza]. 1.1. PRIORIZAO DAS NECESSIDADES DO CLIENTE [Esta subseo fornece a priorizao de cada uma das necessidades do cliente. Para cada necessidade identificar sua priorizao na tabela a seguir] Necessidade Prioridade [Necessidade 1]. [Nvel de Prioridade da Necessidade Listada, pode ser:
1: Prioridade Baixa 2: Prioridade Mdia 3:Prioridade Alta [Necessidade 2]. [Nvel de Prioridade da Necessidade Listada, pode ser:
1: Prioridade Baixa 2: Prioridade Mdia 3:Prioridade Alta [Necessidade 3]. [Nvel de Prioridade da Necessidade Listada, pode ser:
1: Prioridade Baixa 2: Prioridade Mdia 3:Prioridade Alta
Pgina 148 APNDICE F DOCUMENTO DE REFERNCIA CRUZADA PROCESSO DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Logotipo da Empresa Referncia Cruzada <Sigla do Projeto> - <Nome do Projeto> Lista de Priorizao: <Nome do Documento> Verso <X> Data: 18/3/2008
Documento de Referncia Cruzada: <Nome do Documento>
Histrico da Reviso Data Verso Descrio Autor <dd/mmm/aa> <x.x> <detalhes> <nome>
ndice Analtico 1. Introduo Erro! Indicador no definido. 2. Referncia Cruzada Erro! Indicador no definido. 2.1. Necessidades X Caractersticas Erro! Indicador no definido. 2.2. Caractersticas X Requisitos Funcionais Erro! Indicador no definido. 2.3. Requisitos Funcionais X Requisitos Funcionais Erro! Indicador no definido. 2.4. Requisitos Funcionais X Requisitos No Funcionais Erro! Indicador no definido. 2.5. Requisitos No - Funcionais X Requisitos No - Funcionais Erro! Indicador no definido. 2.6. Outros X Outros Erro! Indicador no definido. 3. Glossrio Erro! Indicador no definido.
Pgina 149 Documento de Referncia Cruzada: <Nome do Documento>
1. INTRODUO [Descrever os objetivos do documento e outras informaes relevantes para o entendimento do seu contedo.] 1.1. REFERNCIA CRUZADA [Descrever tantas referncias cruzadas quantas forem necessrias. As referncias cruzadas sugeridas so de Necessidades X Caractersticas, Caractersticas X Requisitos Funcionais, Requisitos Funcionais X Requisitos Funcionais, Requisitos Funcionais X Requisitos No-Funcionais e Requisitos No Funcionais X Requisitos No - Funcionais]. 1.1.1. NECESSIDADES X CARACTERSTICAS Caractersticas Os relacionamentos permitidos so: D Dependncia C Colaborao P - Prejudica C R T 0 0 1
C R T 0 0 2
. . .
C R T N N N
Necessidades NCD001 NCD002 ... NCDNNN
1.1.2. CARACTERSTICAS X REQUISITOS FUNCIONAIS Requisitos Funcionais Os relacionamentos permitidos so: D Dependncia C Colaborao P - Prejudica R F C 0 0 1
R F C 0 0 2
. . .
R F C N N N
Caractersticas CRT001 CRT002 ... CRTNNN
1.1.3. REQUISITOS FUNCIONAIS X REQUISITOS FUNCIONAIS Os relacionamentos permitidos so: Requisitos Funcionais
Pgina 150 so: D Dependncia C Colaborao P - Prejudica R F C 0 0 1
R F C 0 0 2
. . .
R F C N N N
Requisitos Funcionais RFC001 RFC002 ... RFCNNN
1.1.4. REQUISITOS FUNCIONAIS X REQUISITOS NO FUNCIONAIS Requisitos No- Funcionais Os relacionamentos permitidos so: D Dependncia C Colaborao P - Prejudica R N F 0 0 1
R N F 0 0 2
. . .
R N F N N N
Requisitos Funcionais RFC001 RFC002 ... RFCNNN
1.1.5. REQUISITOS NO - FUNCIONAIS X REQUISITOS NO - FUNCIONAIS Requisitos No- Funcionais Os relacionamentos permitidos so: D Dependncia C Colaborao P - Prejudica R N F 0 0 1
R N F 0 0 2
. . .
R N F N N N
Requisitos No-Funcionais RNF001 RNF002 ... RNFNNN
1.1.6. OUTROS X OUTROS Outros Os relacionamentos permitidos so: D Dependncia C Colaborao P - Prejudica O T R 0 0 1
O T R 0 0 2
. . .
O T R N N N
Outros
Pgina 151 OTR001 OTR002 ... OTRNNN
1.2. GLOSSRIO [Descrever os termos e siglas usados no documento.]
Pgina 152 APNDICE G DOCUMENTO DE ESPECIFICAO SUPLEMENTAR
PROCESSO DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Logotipo da Empresa Documento de Especificao Suplementar <Sigla do Projeto> - <Nome do Projeto> Documento de Especificao Suplementar: <Nome do Documento> Verso <X> Data: 18/3/2008
Documento de Especificao Suplementar: <Nome do Documento>
Histrico da Reviso Data Verso Descrio Autor <dd/mmm/aa> <x.x> <detalhes> <nome>
Pgina 153 6.1. <Requisito de Suportabilidade Um> 155 7. Restries de Projeto 155 7.1. <Restrio de Projeto Um> 156 8. Outros Requisitos do produto 156 8.1. Padres Aplicveis 156 8.2. Requisitos do Sistema 156 8.3. Requisitos Ambientais 156 9. Componentes Comprados 156 10. Interfaces 156 10.1. Interfaces de Usurio 156 10.2. Interfaces de Hardware 156 10.3. Interfaces de Software 156 10.4. Interfaces de Comunicaes 157 11. Requisitos de Licenciamento 157
Pgina 154 Documento de Especificao Suplementar: <Nome do Documento> 1. INTRODUO [A introduo da Especificao Suplementar deve fornecer uma viso geral de todo o documento. Ela deve incluir a finalidade, o escopo, as definies, os acrnimos, as abreviaes, as referncias e a viso geral desta Especificao Suplementar.] A Especificao Suplementar captura os requisitos de sistema que no so capturados imediatamente nos Casos de Uso do Modelo de Casos de Uso. Entre os requisitos esto includos: Requisitos legais e reguladores, incluindo padres de aplicativo. Atributos de qualidade do Sistema a ser criado, incluindo requisitos de usabilidade, confiabilidade, desempenho e suportabilidade. Outros requisitos, como Sistemas operacionais e ambientes, requisitos de compatibilidade e restries de design. ] 1.1. DEFINIES, ACRNIMOS E ABREVIAES [Esta subseo deve fornecer as definies de todos os termos, acrnimos e abreviaes necessrias adequada interpretao da Especificao Suplementar. Essas informaes podem ser fornecidas mediante referncia ao Glossrio do projeto.] 1.2. REFERNCIAS [Esta subseo deve fornecer uma lista completa de todos os documentos mencionados em qualquer outra parte da Especificao Suplementar. Cada documento deve ser identificado por ttulo, nmero do relatrio (se aplicvel), data e organizao de publicao. Especifique as fontes a partir das quais as referncias podem ser obtidas. Essas informaes podem ser fornecidas por um anexo ou outro documento.] 1.3. FUNCIONALIDADE [Esta seo descreve os requisitos funcionais do sistema que so expressos no estilo de linguagem natural. Normalmente, ela organizada por recurso, mas mtodos de organizao alternativos como, por exemplo, organizao por usurio ou organizao por subsistema, tambm podem ser apropriados. Entre os requisitos funcionais podem estar includos conjuntos de recursos, capacidades e segurana]. 1.3.1. <REQUISITO FUNCIONAL UM> [A descrio do requisito deve ser feita aqui.] 1.4. USABILIDADE [Esta seo deve incluir todos os requisitos que afetam a usabilidade. Estes so alguns exemplos]: especifique o tempo de treinamento necessrio para que usurios normais e usurios com conhecimentos avanados se tornem produtivos em operaes especficas especifique perodos de tempo mensurveis para tarefas tpicas ou especifique requisitos que estejam em conformidade com os padres comuns de usabilidade. ] 1.4.1. <REQUISITO DE USABILIDADE UM> [A descrio do requisito.]
Pgina 155 1.5. CONFIABILIDADE [Os requisitos de confiabilidade do sistema devem ser especificados aqui. Abaixo, algumas sugestes]: Disponibilidade - especifique a porcentagem de tempo disponvel (xx.xx%), as horas de uso, o acesso manuteno, as operaes de modo degradado etc. Tempo Mdio entre Falhas (MTBF) - normalmente especificado em horas, mas tambm poder ser especificado em termos de dias, meses ou anos. Tempo Mdio para Reparo (MTTR) - quanto tempo o sistema poder ficar sem funcionar aps uma falha? Exatido - especifique a preciso (resoluo) e exatido (atravs de algum padro conhecido) necessrias na sada dos sistemas. Taxa mxima de erros ou defeitos - geralmente expressa em termos de erros/KLOC (thousands of lines of code, milhares de linhas de cdigo) ou de erros/ponto de funo. Taxa de erros ou defeitos - categorizados em termos de erros pouco importantes, importantes e crticos: o(s) requisito(s) deve definir o que se entende por um erro "crtico" (ex: perda total de dados ou total incapacidade de usar determinadas partes da funcionalidade do sistema). ] 1.5.1. <REQUISITO DE CONFIABILIDADE UM> [A descrio do requisito.] 1.6. DESEMPENHO [As caractersticas de desempenho do sistema devem ser descritas nesta seo. Inclua tempos de resposta especficos. Quando aplicvel, faa referncia, por nome, aos Casos de Uso relacionados]. Tempo de resposta de uma transao (mdio, mximo) Taxa de transferncia (ex: transaes por segundo) Capacidade (ex: o nmero de clientes ou de transaes que podem ser acomodados pelo sistema) Modos de degradao (o modo aceitvel de operao quando o sistema tiver sido degradado de alguma maneira) Utilizao de recursos: memria, disco, comunicaes etc.] 1.6.1. <REQUISITO DE DESEMPENHO UM> [A descrio do requisito.] 1.7. SUPORTABILIDADE [Esta seo indica todos os requisitos que aprimoraro a suportabilidade ou manutenibilidade do sistema que est sendo criado, incluindo padres de codificao, convenes de nomeao, bibliotecas de classes, acesso manuteno e utilitrios de manuteno.] 1.7.1. <REQUISITO DE SUPORTABILIDADE UM> [A descrio do requisito.] 1.8. RESTRIES DE PROJETO [Esta seo deve indicar todas as restries de design referentes ao sistema que est sendo criado. As restries de design representam decises de design que foram impostas e devem ser obedecidas. Entre os exemplos desse tipo de restrio esto linguagens de software, requisitos de processo de software, uso prescrito de ferramentas de desenvolvimento, restries de design e de arquitetura, componentes comprados, bibliotecas de classes etc.]
Pgina 156 1.8.1. <RESTRIO DE PROJETO UM> [A descrio do requisito deve ser feita aqui.] 1.9. OUTROS REQUISITOS DO PRODUTO [Em um nvel superior, liste padres aplicveis, requisitos de hardware ou de plataforma, requisitos de desempenho e requisitos ambientais.] 1.9.1. PADRES APLICVEIS [Liste todos os padres com os quais o produto dever estar em conformidade. Entre eles, podero estar includos padres legais e reguladores, padres de comunicaes (TCP/IP, ISDN), padres de conformidade com plataformas (Windows, UNIX etc) e padres de qualidade e de segurana (ISO, CMMI).] 1.9.2. REQUISITOS DO SISTEMA [Defina todos os requisitos do sistema necessrios para suportar o aplicativo. Entre eles, podero estar includos os sistemas operacionais de host e as plataformas de rede suportadas, configuraes, memria, perifricos e software fornecido.] 1.9.3. REQUISITOS AMBIENTAIS [Descreva os requisitos ambientais quando necessrio. Para sistemas baseados em hardware, as questes ambientais podero incluir temperatura, choques, umidade, radiao etc. Para aplicativos de software, os fatores ambientais podem incluir condies de uso, ambiente do usurio, disponibilidade de recursos, problemas de manuteno, e recuperao e tratamento de erros.] 2. COMPONENTES COMPRADOS [Esta seo descreve todos os documentos comprados a serem usados no sistema, quaisquer restries de utilizao ou de licenciamento aplicveis e quaisquer padres associados de compatibilidade/interoperabilidade ou de interface.] 3. INTERFACES [Esta seo define as interfaces que devem ser suportadas pelo aplicativo. Ela deve conter especificidades, protocolos, portas e endereos lgicos adequados, entre outros, para que o software possa ser desenvolvido e verificado em relao aos requisitos de interface.] 3.1. INTERFACES DE USURIO [Descreva as interfaces de usurio que devero ser implementadas pelo software.] 3.2. INTERFACES DE HARDWARE [Esta seo define todas as interfaces de hardware que devem ser suportadas pelo software, incluindo a estrutura lgica, os endereos fsicos, o comportamento esperado, etc.] 3.3. INTERFACES DE SOFTWARE [Esta seo descreve as interfaces de software com outros componentes do sistema de software. Podero ser componentes comprados, componentes reutilizados de outro aplicativo ou componentes que esto sendo desenvolvidos para subsistemas fora do escopo desta SRS, mas com os quais esse aplicativo de software deve interagir.]
Pgina 157 3.4. INTERFACES DE COMUNICAES [Descreva todas as interfaces de comunicaes com outros sistemas ou dispositivos como, por exemplo, redes locais, dispositivos seriais remotos etc.] 4. REQUISITOS DE LICENCIAMENTO [Esta seo define todos os requisitos de imposio de licenciamento ou outros requisitos de restrio de utilizao que devem ser exibidos pelo software.] 5. DETALHAMENTO DOS REQUISITOS NO-FUNCIONAIS [Esta seo define os atributos de qualidade de todos os requisitos no-funcionais. O objetivo da seo gerar uma especificao completa de todos os requisitos no-funcionais do sistema. Cada um dos requisito no-funcionais identificados deve ser especificado em uma tabela.] 5.1. <REQUISITO NO-FUNCIONAL UM> Palavras-Chave Descrio Tipo [Etiqueta, rtulo, identificador persistente e nico do requisito]. Descrio [Descrio simples e breve do conceito principal ou significado geral do requisito]. Stakeholder [Envolvidos/Afetados pelo requisito]. Escala [Escala usada para quantificar o requisito]. Mtrica [Processo ou mtodo para medir escalas dos requisitos]. Mtodo [Mtodo para medir a escala]. Freqncia [Freqncia para medio]. Responsvel [Pessoas/Departamento responsvel por fazer as medies]. Registro [Onde/Quando as medidas devem ser reportadas]. Nvel Mnimo [O nvel mnimo requerido para evitar falhas]. Plano [Nvel para obter sucesso exigido]. Nvel Sucesso [Como prolongar, aumentar, alongar o sucesso]. Nvel Desejado [Nvel desejvel de sucesso que no pode ser atingido atravs dos mtodos atuais]. Histrico [Resultados anteriores para comparao (histrico)]. Tendncia [Tendncia histrica]. Histrico de Sucesso [O melhor resultado obtido]. Definio [Definio oficial do termo]. Autoridade [Pessoa, grupo ou nvel de autorizao].