TRATAMENTO DE DEAD CODES EM SOFTWARE DE USO AERONÁUTICO
|
|
- Davi Vidal Nobre
- 8 Há anos
- Visualizações:
Transcrição
1 TRATAMENTO DE DEAD CODES EM SOFTWARE DE USO AERONÁUTICO Renner Costa Martins 1, Sergio Roberto Matiello Pellegrino 2, Jony Santellano 3 1 ITA, Praça Marechal Eduardo Gomes, 50, São José dos Campos, São Paulo, Brasil, martins.renner@gmail.com 2 ITA, Praça Marechal Eduardo Gomes, 50, São José dos Campos, São Paulo, Brasil, pell@ita.br 3 ITA, Praça Marechal Eduardo Gomes, 50, São José dos Campos, São Paulo, Brasil, jony@ita.br Abstract: The objective of this paper is to propose a process for treatment of Dead Codes in software used on aircraft systems, attending the requirements of the aeronautical standard RTCA/DO-178B. Keywords: Dead Code, RTCA/DO-178B, Software embarcado de uso aeronáutico. 1. INTRODUÇÃO O tópico de interesse deste trabalho é a existência de Dead Codes, que é código fonte que não é percorrido pela execução normal do software e que não está associado a nenhum requisito da especificação. O padrão RTCA/DO- 178B, utilizado para desenvolvimento de software de uso aeronáutico, estabelece que a existência de Dead Codes em software aeronáutico não é permitida, devendo ser tratada apropriadamente [1]. A preocupação da RTCA/DO-178B é justificada pela falta de rastreabilidade inerente à existência de Dead Codes, que significa que pode haver problemas na especificação. Outra incerteza associada à Dead Codes é a existência de código fonte que não foi testado. Por esses e outros problemas associados, Dead Codes é o principal motivador deste trabalho. O objetivo deste trabalho é apresentar um processo para tratamento de Dead Codes em software aeronáutico, que tem como premissa atender os critérios do padrão RTCA/DO- 178B. A finalidade desse processo é dar maior base para que o desenvolvedor de software aeronáutico se assegure que as ocorrências de Dead Codes foram identificadas e tratadas adequadamente, dando maior confiança quanto ao cumprimento dos requisitos de aeronavegabilidade de um sistema aeronáutico onde o software é embarcado 2. O PADRÃO RTCA/DO-178B Criado na década de oitenta pela Radio Technical Commission for Aeronautics, Inc.(RTCA), o padrão RTCA/DO-178B estabelece os procedimentos necessários para que o fabricante de software embarcado de uso aeronáutico demonstre que seu produto foi construído atendendo aos critérios de aeronavegabilidade. A importância da RTCA/DO-178B no ambiente de certificação aeronáutica é atestada pela emissão da AC- 115B pelo FAA, que indica o padrão como meio aceito para a análise de software embarcado de uso aeronáutico dentro do processo de certificação [2]. Por ser uma autoridade de certificação de referência mundial, a diretriz do FAA foi seguida por diversas autoridades, como a EASA e a ANAC. Por sua importância na indústria de aviação, esse trabalho seguirá os critérios definidos pela RTCA/DO-178B para software embarcado de uso aeronáutico. A RTCA/DO-178B é a terceira versão do padrão, e se diferenciou das demais ao dar grande ênfase aos testes baseados em requisitos, que verificam se as funcionalidades previstas na especificação são atendidas. Em complemento aos testes baseados em requisitos, prevê-se também o uso dos testes de cobertura estrutural de código para verificar se todo o código foi percorrido durante a realização dos testes. Com isso ficou evidente a importância do processo de verificação de software dentro do ciclo de vida do produto, definido pela RTCA/DO-178B Processo de Verificação de Software O processo de Verificação de Software é a atividade responsável pela detecção e registro de erros, cuja remoção fica a cargo do processo de desenvolvimento de software. O cumprimento dessa etapa é realizado por revisões, análises, desenvolvimento e execução de casos de teste e seus procedimentos. Nas tarefas de revisão e análise, o software em questão terá seus requisitos, arquitetura e código fonte avaliados, principalmente quanto a sua precisão, completeza e reverificabilidade, isto é, sua capacidade de ser novamente analisado e produzir os mesmos resultados verificados anteriormente. Complementar à análise feita, o desenvolvimento dos casos de testes fornecem uma avaliação adicional da consistência e completeza dos requisitos de software previstos. Por fim, a execução dos procedimentos de testes demonstra que o software verificado cumpre com os requisitos necessários. O processo de verificação de software é composto essencialmente por atividades de revisão, análise e testes. Nesse contexto, pode-se afirmar que as atividades de testes têm dois objetivos principais: demonstrar que os requisitos foram funcionalmente atendidos pelo software desenvolvido; tratar do grau de confiança com que os erros, que poderiam resultar em condições de falha, foram detectados e removidos. Nota-se, desses dois objetivos, que 1 Serra Negra, SP - ISSN
2 Tratamento de Dead Codes em Software de uso Aeronáutico Renner Costa Martins, Sergio Roberto Matiello Pellegrino, Jony Santellano eles são complementares e que para se atender a um deles, deve-se também atender o outro. A Figura 1 mostra uma visão geral do processo de teste de software, que abrange três tipos de testes, cujos objetivos são: 1. Hardware/Software Integration Tests: verificar a correta operação do software em seu ambiente real de execução; 2. Software Integration Tests: verificar as relações entre os requisitos de software e sua implementação, dentro da arquitetura de software estabelecida; 3. Low-Level Tests: verificar a implementação dos requisitos funcionais de software, considerados de baixo nível, ou seja, aqueles que são mais detalhados quanto à funcionalidade desejada. A região identificada por Unimplemented Function indica que existem requisitos que não foram cobertos pelo código criado. Esse caso é normalmente identificado pela execução dos testes baseados em requisitos, e não pela análise de cobertura estrutural do código. Por sua vez, a região do código que não é sobreposta pela região dos requisitos, identificada na figura por Unspecified Function, trata dos trechos de código que não têm correspondência nos requisitos testados, que são identificados por uma análise estrutural do código [3]. Figura 2 Sobreposição de requisitos e implementação [3] Figura 1 Processo de Teste de Software [1] Além dos objetivos de cada tipo de teste mencionado, podemos verificar na Fig. 1 que o processo de testes de software envolve também a análise de cobertura dos testes realizados. Essa análise é representada na figura pelos itens Software Requirements Coverage Analysis e Software Structure Coverage Analysis, sendo esse último, que trata da cobertura estrutural de código, de grande relevância para esse trabalho Cobertura Estrutural de Código Dentro do processo de verificação de código a cobertura estrutural mede quanto da estrutura do software foi testada. Com essa medida, é possível saber se a execução dos testes de cobertura dos requisitos exercitou toda a estrutura do código e, assim, determinar o nível de qualidade do software analisado[1]. Na Figura 2 é exibido um esquema que ilustra o significado de cobertura estrutural de código e a sua relação com os requisitos de software. A área de sobreposição representa a identificação do código fonte exercitado pelos requisitos, sendo que esse código pode estar correto, representado na figura por Correct Function, ou não, representado na figura por Incorrect Function, caso não atenda aos requisitos testados nos casos de testes. A cobertura estrutural de código possibilita determinar se existem estruturas do código que não foram exercitadas pelos procedimentos de testes baseados nos requisitos. Essas estruturas identificadas podem ser resultado dos seguintes casos [1]: 1. Fornecer evidência que a estrutura de código foi verificada no grau requerido; 2. Fornecer meios para suportar a ausência de Dead Codes; 3. Estabelecer a robustez dos testes de cobertura de requisitos. Quanto à detecção de Dead Codes, a cobertura estrutural de código permite indicar com que extensão os casos de testes baseados em requisitos executaram o código e, por consequência, revelam os trechos de código que não foram executados. 3. DEAD CODES Em termos gerais, define-se Dead Code como qualquer parte do código fonte cuja existência não afeta a execução normal do programa. Há dois casos principais de Dead Code: 1. Código inútil: Código cuja execução não afeta o restante do programa; 2. Código não alcançável: código que nunca é alcançado pela execução do programa e, portanto, também nunca a afeta. Abaixo, segue a definição de Dead Code dada pela norma RTCA/DO-178B: Dead code - Executable object code (or data) which, as a result of a design error cannot be executed (code) or used (data) in an operational configuration of the target 2 Serra Negra, SP - ISSN
3 computer environment and is not traceable to a system or software requirement. An exception is embedded identifiers.[1] A partir do texto, observa-se que a definição de Dead Code, segundo a RTCA/DO-178B, se atém à definição de Código Não Alcançável e é com essa premissa que esse trabalho foi construído. Portanto, doravante, será referenciada por Dead Code qualquer ocorrência de código não alcançável em um programa Ocorrências de Dead Codes As ocorrências típicas de Dead Code encontram-se relacionadas ao uso das seguintes práticas: 1. Desvio incondicional; 2. Instrução de retorno; 3. Expressões de controle de fluxo; 4. Expressões de controle de fluxo com curto-circuito Desvio incondicional Dá-se o nome de desvio incondicional a qualquer instrução que tenha o objeto de direcionar o fluxo de execução do programa para um ponto não subseqüente à instrução. Expressões como goto, break, continue possuem essa característica e são fontes de possíveis Dead Codes. O exemplo ilustrado na Tabela 1 exibe uma ocorrência de Dead Code em um trecho de código em C que utiliza um desvio incondicional com o uso de uma instrução goto. No trecho, percebe-se que a linha 4 nunca será executada, já que na linha 2 há um desvio para a linha 6. Tabela 1 Dead Code com o uso de desvio incondicional goto rotulo;... printf("não passou por aqui\n");... rotulo: printf("a linha 3 não foi executada"); Instruções de retorno Uma instrução de retorno é utilizada em uma subrotina para retornar a execução de um programa para o ponto onde a subrotina foi chamada. Em linguagens como Ada, C, C++, C# e Java essa instrução é representada pela palavra reservada return. O mal uso de return pode resultar em Dead Codes, caso ele esteja colocado imediatamente antes de alguma outra expressão dentro de uma subrotina. A Tabela 2 exibe um exemplo de um trecho de código em C, onde a localização da expressão return resulta em uma ocorrência de Dead Code. Nesse exemplo, nota-se que a linha 6 nunca será executada, já que a cláusula return direciona a execução do programa para o ponto onde a subrotina soma foi chamada. Tabela 2 Dead Code com o uso de uma expressão return int soma(int x, int y) { int z; z=x+y; return z; printf("não passou por aqui\n"); } Expressões de Controle de Fluxo Expressões de controle de fluxo também são fontes de Dead Code, pois o uso incorreto das condições a serem avaliadas pode causar a execução de apenas algum, ou alguns, dos caminhos possíveis. O caso mais simples dessa ocorrência de Dead Codes é resultado do mal uso de expressões if. A Tabela 3 ilustra um código em Matlab que contém um Dead Code causado pelo uso inadequado da expressão if, graças a uma variável imutável estabelecida antes da execução do if. No caso citado, o if da linha 5 só é avaliado de uma maneira, true, já que a variável utilizar_vento foi definida com o valor 1. Tabela 3 Dead Code com o uso de expressões de controle de fluxo % utilizar_vento determina o uso do vento % caso utilizar_vento==0 -> Sem vento % caso utilizar_vento==1 -> Com vento utilizar_vento=1; if(utilizar_vento~=0) utilizar_vento=1; disp('>>> Dinamica Com Vento'); else disp('>>> Dinamica Sem Vento'); end; A ocorrência do caso descrito na Tabela 3 também se aplica ao uso de outras expressões de controle de fluxo, tais como while, for, switch, etc Expressões de Controle de Fluxo com Curto- Circuito O uso de múltiplas condições em expressões de controle de fluxo podem acarretar na avaliação de apenas uma delas, caso essa condição seja suficiente para a tomada de decisão em uma cláusula if, while, for, switch, etc. A esses casos dáse o nome de curto-circuito. A existência de curto-circuitos também é fonte de Dead Codes, porém de natureza um pouco diferente daquela apresentada na seção Nesses casos, a ocorrência de Dead Codes se dá em uma das condições da expressão de controle de fluxo, que não é avaliada. 3 Serra Negra, SP - ISSN
4 Tratamento de Dead Codes em Software de uso Aeronáutico Renner Costa Martins, Sergio Roberto Matiello Pellegrino, Jony Santellano A Tabela 4 apresenta um exemplo do Matlab de Dead Code com o uso de curto-circuito. Na linha 4, a expressão (a/b > 18.5) nunca será avaliada, pois na linha 3 a variável b é definida como 0, o que resolve a expressão (b ~= 0) && (a/b > 18.5) apenas com o primeiro termo, (b ~= 0). Tabela 4 Dead Code com o uso de expressões de controle de fluxo com curto-circuito %It doesn't make sense to evaluate the % relation on the right if the divisor, b, is zero. b=0; x = (b ~= 0) && (a/b > 18.5); 3.2. Ocorrências de Dead Codes Relacionadas à Execução do Software Uma observação importante deve ser feita a respeito das ocorrências de Dead Codes relacionadas ao uso de expressões de controle de fluxo, com ou sem curto-circuito: ambas foram demonstradas como dependentes da existência de algum trecho de código mal construído. Porém, essas ocorrências apresentadas também podem existir sem o trecho de código mal construído, pois podem surgir durante a execução do programa. Essa condição está relacionada principalmente ao conjunto dos requisitos do software, que podem possuir casos de testes que não percorrem algum trecho de código fonte, indicando-o como Dead Code. A detecção e eliminação de Dead Codes também devem levar em conta as ocorrências de código não executado, devido a falhas na especificação e em seus casos de testes resultantes. Essa situação será abordada mais adiante Problemas Relacionados A existência de Dead Code pode causar uma série de efeitos indesejáveis que diminuem a confiabilidade da qualidade do software quanto à sua aderência ao processo de desenvolvimento. Entre os problemas causados por Dead Codes, encontram-se: Recursos de disco rígido ocupados desnecessariamente: a existência de Dead Codes implica em códigos maiores do que o necessário. Esse aspecto, caso não seja realizado algum tipo de otimização do código, resulta em maior espaço ocupado pelo código objeto executável. Em alguns ambientes esse fator pode ser crítico e afetar o desempenho de algumas funcionalidades do programa. Recursos de memória ocupados desnecessariamente: da mesma forma que há a ocupação desnecessária de espaço em disco, há a ocupação desnecessária de recursos de memória. Já que Dead Codes resultam em código objeto executável de tamanho maior do que o necessário, o espaço ocupado pelo programa na memória também será maior. Novamente, essa situação é aplicável aos casos onde não foi feita nenhuma melhoria no código fonte durante a compilação e geração do programa executável. Comprometimento da legibilidade do código: boa legibilidade do código depende extremamente de boas práticas de codificação. Ou seja, é uma tarefa árdua e trabalhosa que exige muito tempo das pessoas envolvidas. Quanto mais complexo um programa, maior é a dificuldade que alguém terá para entender o código analisado. Especificamente, Dead Codes tornam essa tarefa ainda mais complicada, pois, além de aumentarem desnecessariamente a complexidade de algum software, não possuem ligação com o restante do código analisado. Manutenção do código é dificultada: no contexto de manutenção de software, Dead Codes adicionam trabalho desnecessário ao processo. Tempo e esforço serão gastos na análise e manutenção de código que não está ligado a nenhuma funcionalidade do programa e que, portanto, é inútil para sua execução. Possível fonte de erros na execução do software: Dead Codes traz também a condição de trechos de código que não foram testados. Dependendo das condições de execução e de possíveis alterações no projeto, Dead Codes podem passar à condição de Live Codes não testados, que são, na verdade, fonte de possíveis erros não identificados e tratados na fase correta do ciclo de desenvolvimento do software. Requisitos não rastreáveis: a existência de Dead Codes significa também a existência de código fonte que não tem ligação com nenhum requisito do software. Isso implica na possibilidade de requisitos não atendidos completamente, pois alguma funcionalidade do software deixou de ser executada devido à existência de uma condição de Dead Code. Devido a esses, e possíveis outros problemas, condições de existência de Dead Codes devem ser detectadas, analisadas e, finalmente, eliminadas Detecção Em essência, a detecção de Dead Code é um processo ligado à verificação de código. Esse processo envolve a análise crítica do código fonte do software para identificar trechos de código que não são executados em qualquer condição. Graças à grande variedade de casos de Dead Code, sua detecção pode envolver atividades de análise estática de código e de análise de cobertura estrutural de código. Isso é necessário porque alguns tipos de Dead Code têm sua existência dependente da execução do software. Isso significa que esses tipos de Dead Codes estão relacionados a um conjunto de requisitos, seus respectivos casos de testes e da forma como eles são atendidos durante a execução normal do software. Assim, parte da tarefa de detecção de Dead Codes, está relacionada ao campo de análise estática de código. Esse campo realiza a análise do software sem a necessidade de executá-lo, fornecendo informações úteis para a verificação da qualidade do software analisado. Normalmente, esse processo pode ser feito por inspeção, ou revisão, de código, porém, outra abordagem de análise estática correntemente utilizada é o uso de gráficos de controle de fluxo do software. Com essa abordagem, basta verificar os blocos de código que não possuem nenhuma ligação na estrutura 4 Serra Negra, SP - ISSN
5 montada para o programa para identificar os trechos que não são alcançáveis. Na seção 3.2, foram discutidos alguns casos de Dead Codes que podem ser detectados apenas pela análise do comportamento do software durante a sua execução. Essa tarefa pode ser realizada por instrumentação de código, que aponta os trechos de código que foram executados a partir do uso de algumas funcionalidades. A escolha dessas funcionalidades está ligada ao conjunto de requisitos do software e pela definição dos casos de testes que devem ser utilizados para verificá-los. Com isso, a detecção desses Dead Codes se torna um problema de análise de cobertura estrutural de código. Com a análise estrutural de código, são identificados todos os trechos de códigos percorridos pela execução dos casos de testes referentes aos requisitos do programa. Assim, identificam-se também os trechos de código que não foram executados pelos testes Eliminação A realização das análises estática e dinâmica do código fonte terão como resultado a identificação dos casos de Dead Codes existentes em um programa. Esses resultados possibilitam a eliminação desses casos sem danos à execução esperada do software, de acordo com a sua especificação. Entende-se por eliminação de Dead Codes o processo que pode tomar as seguintes abordagens: 1. Remoção do trecho de código identificado: o Dead Code identificado é removido do programa, deixando de existir. 2. Transformar o caso de Dead Code em um trecho de código executável: por meio de ajustes no código fonte, ou em algum processo do ciclo de desenvolvimento, o Dead Code passa a ser um trecho de código executável. A escolha da abordagem do processo de eliminação de Dead Codes está sujeito às características de cada caso, identificadas pela sua detecção. Não há uma única solução para todos os tipos de Dead Codes, e, por isso, deve ser feita uma análise mais profunda de cada caso para determinar como será feita a eliminação do Dead Code. 4. PROCESSO PARA TRATAMENTO DE DEAD CODES Nessa seção este trabalho propõe um processo para ser utilizado no tratamento de Dead Codes em software embarcado de uso aeronáutico. Para dar o tratamento adequado a Dead Codes, são abordadas as atividades necessárias para classificação, detecção, eliminação e registro de Dead Codes, que serão descritas nas próximas seções. Com isso pretende-se atender ao objetivo do trabalho que é propor um processo para tratamento de Dead Codes em software embarcado de uso aeronáutico Classificação A definição de Dead Codes tem como itens chaves a não rastreabilidade de uma funcionalidade a, pelo menos, um dos requisitos do software e a não execução dessa mesma funcionalidade, durante o funcionamento normal do programa. O primeiro item é de fácil análise e entendimento já que é coberto pela análise de rastreabilidade dos requisitos do software e é resultado de uma falha no processo de garantia dessa rastreabilidade. Porém, o segundo item gera algumas nuances quanto à sua definição, pois o fato de uma função não ser executada pode depender de dois fatores: a geração do software em si e a cobertura do código quanto a um requisito. A existência desses dois fatores motivou a criação, pelo autor deste trabalho, de uma classificação de Dead Codes, baseada na maneira em que ocorrem. A intenção deste trabalho, ao criar essa classificação, é direcionar as atividades de eliminação de Dead Codes de acordo com suas características. Com isso, as ocorrências de Dead Codes são classificadas em Dead Codes Estáticos ou Dinâmicos. A criação do software pode incorporar erros de programação, que façam surgir funções que não são executadas em nenhuma condição, independente dos requisitos exercitados. Mesmo que não haja nenhum erro no levantamento de requisitos, nas funcionalidades previstas e nas condições de uso do programa, a função analisada não será executada. Aos casos de Dead Codes surgidos nessas condições será dada a classificação de Dead Codes Estáticos, graças a sua natureza independente da execução do software. Em contrapartida, Dead Codes Dinâmicos são as ocorrências geradas pela falta de cobertura de uma função, seja por erro no levantamento de requisitos, ou na abordagem utilizada para cobertura estrutural de código aplicada. Essa classificação é dependente da execução do software, pois apenas dessa maneira é possível identificar a existência desses casos de Dead Codes. Apesar de suas naturezas divergentes, ambas as classificações são bastante interligadas, pois a existência de um caso de Dead Code Dinâmico pode estar ligada a existência de um caso de Dead Code Estático, e vice-versa Detecção Considerando o processo de detecção de Dead Codes Estáticos, é observado que a tarefa de inspeção do software, para realizar a sua análise estática, é bastante árdua. Essa dificuldade existe, pois quanto mais complexo e maior um programa, maior será a quantidade de elementos para serem analisados. Por esse motivo, a análise estática do software pode ser precedida por técnicas de análise de cobertura estrutural que analisa código fonte. Com isso pode-se dividir a tarefa de detecção de Dead Codes Estáticos em duas fases: Análise de cobertura estrutural de software: nessa etapa são detectados os casos de Dead Codes Dinâmicos, que, eventualmente, poderão ser classificados como Dead Codes Estáticos. 5 Serra Negra, SP - ISSN
6 Tratamento de Dead Codes em Software de uso Aeronáutico Renner Costa Martins, Sergio Roberto Matiello Pellegrino, Jony Santellano Análise estática do software: consiste em uma análise estática das funcionalidades identificadas durante a análise de cobertura estrutural, para verificar quais deles são Dead Codes Estáticos. Na segunda etapa, as funcionalidades que são candidatas à classificação de Dead Code recebem uma análise mais específica, por inspeção do código do software. Com essa análise, pretende-se checar os blocos de funcionalidades não percorridos pelos testes, identificados na primeira etapa, classificando-os definitivamente como Dead Code Estáticos. Como mencionado, o processo de detecção de Dead Codes Dinâmicos pode ser realizado pela análise do programa durante sua execução. As técnicas de análise de cobertura estrutural do software têm como objetivo detectar esses casos e podem ser implementadas por simples instrumentação de software, ou pelo uso de ferramentas adequadas para isso. Mesmo com a detecção de Dead Codes Dinâmicos, é importante realizar também a análise estática das funcionalidades identificadas para verificar se não se tratam de Dead Codes Estáticos. Novamente, a natureza diferenciada de cada um dos dois tipos de Dead Codes torna essa tarefa necessária. Ao se detectar um caso de Dead Code Dinâmico, foram identificadas apenas as características específicas surgidas pela execução do programa. Porém, essa identificação não remove a possibilidade do Dead Code detectado ser um caso de Dead Code Estático, e não Dinâmico. Portanto é necessário que seja feito uma inspeção mais específica para classificar o Dead Code detectado em Estático ou Dinâmico Eliminação Após a detecção e classificação de Dead Codes, é necessário tratar as ocorrências identificadas. O tratamento de Dead Codes implica na sua eliminação, seja por meio de remoção do trecho de código onde ele se encontra, ou por meio de ajustes no software que torne a funcionalidade alcançável pela sua execução. A eliminação de Dead Codes Estáticos é feita pelo desenvolvedor do software, de forma manual, por meio de uma reestruturação do programa afetado, ou pelo uso de alguma ferramenta de desenvolvimento de software, que permite tanto a sua identificação, quanto à sua eliminação automática. Para decidir se deve remover uma funcionalidade não executável, detectada estaticamente, o desenvolvedor deve fazer uma análise do software e verificar se a funcionalidade identificada é requerida por algum requisito. Caso exista algum requisito que é rastreável à ocorrência de Dead Code analisada, o software deve ser reestruturado para corrigir os erros que impedem que a funcionalidade identificada seja executada. Em caso contrário, o Dead Code Estático encontrado deve ser removido do programa. Como ocorre com Dead Codes Estáticas, a eliminação de Dead Codes Dinâmicos depende essencialmente de sua rastreabilidade a algum requisito do software. Porém, isso não basta para definir como eliminar a funcionalidade não executada. Caso o Dead Code Dinâmico esteja associado a algum requisito, é necessário averiguar se os testes de cobertura foram feitos de maneira correta, ou seja, se foram previstos todos os casos de testes necessários para a correta verificação do software quanto a sua cobertura estrutural. O resultado dessa averiguação é a correção dos testes de cobertura, se eles estiverem incorretos, ou a remoção do trecho de Dead Code Dinâmico identificada, se os casos de testes não precisarem de correções. Nos casos em que o Dead Code Dinâmico não possuir relação com os requisitos já estabelecidos, deve-se fazer uma avaliação para identificar possíveis requisitos faltantes. Nesse caso, para eliminar a funcionalidade não executável, adicionam-se os requisitos necessários, que não haviam sido previamente identificados e refaz-se o processo de verificação de software. É claro que a funcionalidade não executada deve ser eliminada, se não forem descobertos requisitos faltantes Processo Integrado O fluxo completo e integrado do processo de tratamento de Dead Codes encontra-se na Figura 3. Por esse fluxo, percebe-se para o tratamento de Dead Codes são seguidos quatro passos: detecção, classificação, eliminação e registro; sendo que ao final da etapa de registro, deve-se retornar às atividades de detecção de Dead Codes até que não seja detectado mais nenhum caso. O primeiro passo, que é o de detecção, identifica de modo preliminar Dead Codes, por meio da análise estrutural do software. Essa etapa é responsável por identificar a existência de algum tipo de Dead Code, seja ele estático ou dinâmico, pois a análise estrutural de software identifica a existência de ambos os tipos. Pode ser visto que, além da etapa de detecção, no fluxo apresentado são indicados o início e fim do processo de tratamento de Dead Codes. Fica claro que o processo de tratamento de Dead Codes é iterativo e sua finalização só ocorre quando a análise de cobertura estrutural do software não detectar mais nenhum trecho não executado do programa, indicando que não foi identificada mais nenhuma ocorrência de Dead Codes. Caso a etapa de detecção indique a existência de algum trecho não percorrido do software, o processo de tratamento de Dead Codes passa para a etapa de classificação. Essa etapa envolve necessariamente a inspeção da ocorrência de Dead Codes identificada para classificá-la em estática ou dinâmica. A etapa seguinte, que é a de eliminação do Dead Code, possui dois caminhos distintos seguidos de acordo com a classificação da ocorrência identificada. Em essência, a eliminação de Dead Codes Estáticos analisa a rastreabilidade do trecho identificado com relação aos requisitos do software. Observa-se que a diferença conceitual para a eliminação de Dead Codes Estáticos é que o processo de eliminação de Dead Codes Dinâmicos põe em cheque a análise de cobertura estrutural do software realizada. Além das atividades de classificação, detecção e eliminação, foi adicionada a etapa de registro da ocorrência de Dead Code identificada. Esse registro é importante, pois representa a evidência de que o processo de verificação de software foi seguido e que contemplou as ações necessárias para a identificação e tratamento de Dead Codes. É importante ressaltar que ao fim da etapa de registro da ocorrência e tratamento do Dead Code identificado, deve-se passar novamente pela etapa de detecção. Primeiramente, 6 Serra Negra, SP - ISSN
7 isso deve ser feito para garantir que todos os casos de Dead Codes foram tratados. Além disso, é importante retomar a atividade de detecção de Dead Codes para assegurar que o seu tratamento realmente o eliminou e não resultou em outras ocorrências inesperadas. 5. CONCLUSÃO O objetivo deste trabalho é propor um processo para tratamento de Dead Codes em software embarcado de uso aeronáutico. Para isso foi feito inicialmente um estudo sobre a ocorrência de Dead Codes em software embarcado de uso aeronáutico, que identificou suas principais características, ocorrências e problemas resultantes. Além disso, foi analisada a definição de Dead Codes pela RTCA/DO-178B e a exigência que esse padrão faz a respeito da eliminação de Dead Codes em software aeronáutico. A partir do conceito de Dead Codes, tem-se, como resultado prático deste trabalho, a construção de um processo de tratamento de funcionalidades não alcançáveis. Figura 3 Processo de Tratamento de Dead Codes Esse processo abrange a detecção, classificação, eliminação e registro de código não alcançável, com o intuito de guiar o processo de verificação de software quanto ao tema deste trabalho. É importante ressaltar que a classificação citada, foi criada nesse trabalho, com o objetivo de facilitar o tratamento dos Dead Codes identificados. Ao seguir esse fluxo proposto, o desenvolvedor de software terá executado todas as atividades necessárias para o completo tratamento de Dead Codes. Pelo que é exigido pela RTCA/DO-178B, pode ser visto que essa proposta pode ser utilizada dentro do processo de verificação de software, cujos registros apresentarão as evidências necessárias para que seja demonstrado que os Dead Codes existentes foram detectados, eliminados e registrados devidamente. Por último, a construção desse processo se baseou 7 Serra Negra, SP - ISSN
8 principalmente nas ocorrências de Dead Codes citadas anteriormente, suas características e em seus problemas relacionados. Com esse processo de tratamento de Dead Codes, atendeu-se ao objetivo do trabalho que é a construção de um processo para tratamento de Dead Codes em software embarcado de uso aeronáutico. REFERENCES [1] RTCA INC. Software considerations in Airborne Systems and equipment certification, RTCA/DO-178B. Washington, D.C., p. [2] FEDERAL AVIATION ADMINISTRATION Department of Transportation. Advisory Circular B: Radio Technical Commission for Aeronautic, Inc. Document RTCA/DO-178B. Washington, D.C., p. [3] CHILENSKI, J. J.; KURTZ, J. L. Object-Oriented Technology Verification Phase 3 Report: Structural Coverage at the Source-Code and Object-Code Levels. Final p. Disponível em: < >. Acesso em: 15 mai Tratamento de Dead Codes em Software de uso Aeronáutico Renner Costa Martins, Sergio Roberto Matiello Pellegrino, Jony Santellano 8 Serra Negra, SP - ISSN
definido por um documento de padronização. A Fig. 1 representa a organização dos Grupos de Processos juntamente com os documentos exigidos.
A GESTÃO DE PROJETOS EXISTENTE NA NORMA DO-178B Matheus da Silva Souza, matheusdasilvasouza@gmail.com Prof. Dr. Luiz Alberto Vieira Dias, vdias@ita.br Instituto Tecnológico de Aeronáutica Praça Marechal
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:
Leia maisGARANTIA DA QUALIDADE DE SOFTWARE
GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características
Leia maisISO/IEC 12207: Gerência de Configuração
ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que
Leia maisModelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
Leia maisENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva
ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA Elaboração em planos de Calibração Interna na Indústria Automotiva Joel Alves da Silva, Diretor Técnico JAS-METRO Soluções e Treinamentos
Leia maisVerificação é um processo para se determinar se os produtos, (executáveis ou
ATIVIDADES VV&T E A NORMA IEEE 1012 A qualidade do software está diretamente relacionada à satisfação do cliente, sendo assim, as empresas estão percebendo a importância em produzir software com qualidade.
Leia maisUnidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste
Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de
Leia maisFMEA - Análise do Tipo e Efeito de Falha. José Carlos de Toledo Daniel Capaldo Amaral GEPEQ Grupo de Estudos e Pesquisa em Qualidade DEP - UFSCar
FMEA - Análise do Tipo e Efeito de Falha José Carlos de Toledo Daniel Capaldo Amaral GEPEQ Grupo de Estudos e Pesquisa em Qualidade DEP - UFSCar FMEA - Análise do Tipo e Efeito de Falha 1 1 Introdução
Leia maisProjeto de Sistemas I
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o
Leia maisCHECK - LIST - ISO 9001:2000
REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisTeste de Software. Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br
Teste de Software Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br Qualidade Garantia de Qualidade Qualidade do processo Qualidade do produto Testes Estáticos Testes Dinâmicos Teste de software
Leia maisTÍTULO: UM ESTUDO CONCEITUAL SOBRE CERTIFICAÇÃO DE SOFTWARE EMBARCADO AERONÁUTICO
TÍTULO: UM ESTUDO CONCEITUAL SOBRE CERTIFICAÇÃO DE SOFTWARE EMBARCADO AERONÁUTICO CATEGORIA: EM ANDAMENTO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA INSTITUIÇÃO: FACULDADE ANHANGUERA
Leia mais3 Classificação. 3.1. Resumo do algoritmo proposto
3 Classificação Este capítulo apresenta primeiramente o algoritmo proposto para a classificação de áudio codificado em MPEG-1 Layer 2 em detalhes. Em seguida, são analisadas as inovações apresentadas.
Leia mais4 Segmentação. 4.1. Algoritmo proposto
4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisProcesso de Implementação de um Sistema de Gestão da Qualidade
3 Processo de Implementação de um Sistema de Gestão da Qualidade Não existe um jeito único de se implementar um sistema da qualidade ISO 9001: 2000. No entanto, independentemente da maneira escolhida,
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisUniversidade Paulista
Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen
Leia maisPós-Graduação em Gerenciamento de Projetos práticas do PMI
Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL
Leia maisTécnicas de Caixa Preta de Teste de Software
Técnicas de Caixa Preta de Teste de Software Na maioria de projetos de teste, o tempo para a realização dos mesmos sempre é curto e os números de testes a serem realizados nas aplicações são inúmeros.
Leia maisGuia Site Empresarial
Guia Site Empresarial Índice 1 - Fazer Fatura... 2 1.1 - Fazer uma nova fatura por valores de crédito... 2 1.2 - Fazer fatura alterando limites dos cartões... 6 1.3 - Fazer fatura repetindo última solicitação
Leia maisNa medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Leia mais3. O NIVEL DA LINGUAGEM DE MONTAGEM
3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também
Leia maisRoteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisCONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES
CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
Leia mais6. Pronunciamento Técnico CPC 23 Políticas Contábeis, Mudança de Estimativa e Retificação de Erro
TÍTULO : PLANO CONTÁBIL DAS INSTITUIÇÕES DO SISTEMA FINANCEIRO NACIONAL - COSIF 1 6. Pronunciamento Técnico CPC 23 Políticas Contábeis, Mudança de Estimativa e Retificação de Erro 1. Aplicação 1- As instituições
Leia maisFundamentos de Teste de Software
Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 3 Planejamento e Aula 8 do Projeto Aula 08 do Projeto SUMÁRIO INTRODUÇÃO... 3 ACOMPANHAMENTO DO PROJETO... 3 1. do Progresso...
Leia maisCHECK LIST DE AVALIAÇÃO DE FORNECEDORES Divisão:
4.2.2 Manual da Qualidade Está estabelecido um Manual da Qualidade que inclui o escopo do SGQ, justificativas para exclusões, os procedimentos documentados e a descrição da interação entre os processos
Leia maisResumo das Interpretações Oficiais do TC 176 / ISO
Resumo das Interpretações Oficiais do TC 176 / ISO Referência RFI 011 Pergunta NBR ISO 9001:2000 cláusula: 2 Apenas os termos e definições da NBR ISO 9000:2000 constituem prescrições da NBR ISO 9001:2000,
Leia maisDisciplina: Introdução à Informática Profª Érica Barcelos
Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados
Leia maisMRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior
MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de
Leia maisCapítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho
20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam
Leia maisEngenharia de Software
Engenharia de Software Roteiro Inspeção Defeitos dos Software Classificação dos Erros Técnica de Leitura Ad-hoc Checklist Exercício Inspeção Inspeção de Software Definição É um método de análise estática
Leia maisLISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE
Questionamento a alta direção: 1. Quais os objetivos e metas da organização? 2. quais os principais Produtos e/ou serviços da organização? 3. Qual o escopo da certificação? 4. qual é a Visão e Missão?
Leia maisGestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009
Gestão da Qualidade Políticas Manutenção (corretiva, preventiva, preditiva). Elementos chaves da Qualidade Total satisfação do cliente Priorizar a qualidade Melhoria contínua Participação e comprometimento
Leia maisAUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento
Leia maisManual de digitação de contas Portal AFPERGS
Manual de digitação de contas Portal AFPERGS 1 Sumário Acesso à função digitação de contas... 3 O que é a Função digitação de contas (DC)... 4 Como proceder na função digitação de conta médica (DC)...
Leia maisPROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às
Leia maisOPERADORES E ESTRUTURAS DE CONTROLE
OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em
Leia maisMinistério das Finanças Instituto de Informática. Departamento de Sistemas de Informação
Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS
Leia maisBanco de Interpretação ISO 9001:2008. Gestão de recursos seção 6
6 RSI 028 Pode ser interpretadado no item 6.0 da norma ABNT NBR ISO 9001 que o conceito de habilidade pode ser definido como Habilidades Técnicas e Comportamentais e que estas podem ser planejadas e registradas
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisMicrosoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos
Microsoft Access: Criar consultas para um novo banco de Vitor Valerio de Souza Campos Conteúdo do curso Visão geral: consultas são essenciais Lição: inclui sete seções Tarefas práticas sugeridas Teste.
Leia maisCalibração de Equipamentos
Vídeo Conferência Calibração de Equipamentos Instituto de Pesos e Medidas do Estado do Paraná Junho/2014 Diferença entre calibração e a verificação metrológica Calibração Estabelece o erro de medição e
Leia maisProgramação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.
Programação Funcional Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2015.1 1/13 1 Paradigmas de programação 2 Programação funcional 3 A Crise
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisDiretrizes para determinação de intervalos de comprovação para equipamentos de medição.
Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. De acordo com a Norma NBR 1001, um grande número de fatores influência a freqüência de calibração. Os mais importantes,
Leia maisArquitetura de Computadores I
Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno
Leia maisCapacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB
Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha
Leia maisSoftware. LMP Wizard. Manual do usuário MAN-PT-DE-LMPWizard-01.01_12
Software LMP Wizard LMP Wizard Manual do usuário MAN-PT-DE-LMPWizard-01.01_12 Introdução Obrigado por ter escolhido o software LMP Wizard. Para garantir o uso correto e eficiente, é imprescindível a leitura
Leia maisAnálise de Ponto de Função
Complemento para o Curso Análise de Ponto de Função FUNÇÕES DO TIPO DADO O termo Arquivo não significa um arquivo do sistema operacional, como é comum na área de processamento de dados. Se refere a um
Leia maisManual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Leia maisPrograma de Capacitação em Gestão do PPA Curso PPA: Elaboração e Gestão Ciclo Básico. Elaboração de Planos Gerenciais dos Programas do PPA
Programa de Capacitação em Gestão do PPA Curso PPA: Elaboração e Gestão Ciclo Básico Elaboração de Planos Gerenciais dos Programas do PPA Brasília, abril/2006 APRESENTAÇÃO O presente manual tem por objetivo
Leia maisManual Geral do OASIS
Manual Geral do OASIS SISTEMA DE GESTÃO DE DEMANDA, PROJETO E SERVIÇO DE TECNOLOGIA DA INFORMAÇÃO OASIS Introdução Esse manual tem como objetivo auxiliar aos usuários nos procedimentos de execução do sistema
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário
Leia maisQUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1
QUALIDADE DE SOFTWARE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 Objetivos Apresentar o processo de gerenciamento de qualidade e as atividades centrais da garantia de
Leia maisGerenciamento de Problemas
Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar
Leia maisFundamentos de Teste de Software
Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 3 Teste Estático SUMÁRIO INTRODUÇÃO... 3 1. Definição... 3 2. Custo Versus Benefício...
Leia maisRequisitos. Sistemas de Informações
Requisitos Sistemas de Informações Definindo o Sucesso do Software Clientes satisfeitos Eles estão satisfeitos quando você: Atende às expectativas Entrega no prazo Entrega no orçamento O Sucesso começa
Leia maisPara construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.
Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos
Leia mais5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação
36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas
Leia maisCES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA
CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA 2º SEMESTRE 2002 CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software Prof. Dr. Adilson Marques da Cunha Conceitos de Qualidade CES-32 / CE-230
Leia maisTópico: Plano e Estratégia. Controle interno e risco de auditoria
Tópico: Plano e Estratégia. Controle interno e risco de auditoria i Professor Marcelo Aragão Trabalhos de outros auditores ou especialistas Complexidade das transações Volume das transações Áreas importantes
Leia maisEngenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1
Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.
Leia maisANÁLISE DOS REQUISITOS NORMATIVOS PARA A GESTÃO DE MEDIÇÃO EM ORGANIZAÇÕES
V CONGRESSO BRASILEIRO DE METROLOGIA Metrologia para a competitividade em áreas estratégicas 9 a 13 de novembro de 2009. Salvador, Bahia Brasil. ANÁLISE DOS REQUISITOS NORMATIVOS PARA A GESTÃO DE MEDIÇÃO
Leia maisO Acordo de Haia Relativo ao Registro. Internacional de Desenhos Industriais: Principais características e vantagens
O Acordo de Haia Relativo ao Registro Internacional de Desenhos Industriais: Principais características e vantagens Publicação OMPI N 911(P) ISBN 92-805-1317-X 2 Índice Página Introdução 4 Quem pode usufruir
Leia mais1 - Considerações gerais 03 A - Introdução 03 A1 - Direitos 03 A2 - Garantia 04 A3 - Uso apropriado 04. 2 - Início de trabalho 05 A - Testes 05
Sumário 1 - Considerações gerais 03 A - Introdução 03 A1 - Direitos 03 A2 - Garantia 04 A3 - Uso apropriado 04 2 - Início de trabalho 05 A - Testes 05 3 - Características do produto 06 4 - Funcionamento
Leia maisMetodologia de Gerenciamento de Projetos da Justiça Federal
Metodologia de Gerenciamento de Projetos da Justiça Federal Histórico de Revisões Data Versão Descrição 30/04/2010 1.0 Versão Inicial 2 Sumário 1. Introdução... 5 2. Público-alvo... 5 3. Conceitos básicos...
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números
Leia maisa) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema
Simulado CTFL- BSTQB Tempo de duração: 60 minutos 1. Considerando as seguintes afirmações: I. 100% de cobertura de sentença (comando) garante 100% de cobertura de desvio II. 100% de cobertura de desvio
Leia maisPROFESSOR: CRISTIANO MARIOTTI
PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade
Leia maisAPLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2
APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 Renan J. Borges 1, Késsia R. C. Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí, PR Brasil renanjborges@gmail.com, kessia@unipar.br
Leia maisConceitos de Banco de Dados
Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir
Leia maisc. Técnica de Estrutura de Controle Teste do Caminho Básico
1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo
Leia maisDEMONSTRAÇÕES FINANCEIRAS COMBINADAS
24 DEMONSTRAÇÕES FINANCEIRAS COMBINADAS Os mercados de capitais na Europa e no mundo exigem informações financeiras significativas, confiáveis, relevantes e comparáveis sobre os emitentes de valores mobiliários.
Leia maisFATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios
FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito
Leia maisLevantamento, Análise e Gestão Requisitos. Aula 12
Levantamento, Análise e Gestão Requisitos Aula 12 Agenda Miscelâneas (Parte 3): Gerenciamento dos Requisitos Mutáveis Rastreabilidade de Requisitos Processo de Gestão de Mudanças Requisitos Estáveis e
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisCapítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Leia maisORIENTAÇÕES SOBRE O CONTEÚDO DO PROJETO
ORIENTAÇÕES SOBRE O CONTEÚDO DO PROJETO ESCOLHA DO TEMA - Seja cauteloso na escolha do tema a ser investigado. Opte por um tema inserido no conteúdo programático da disciplina pela qual teve a maior aptidão
Leia maisPdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006
TUTORIAL Servo-motor Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br
Leia maisDESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação
DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane
Leia maisVerificação e Validação
Verificação e Validação Patrícia Macedo Joaquim Filipe João Ascenso 2005/2006 EST, Setúbal Verificação e Validação Verificação Garante que o software cumpre as especificações Consistência interna Estamos
Leia maisENGENHARIA DE SOFTWARE I
ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis
Leia maisTOTVS BA Guia de Customização Linha Logix
TOTVS BA Guia de Customização Linha Logix Guia de Customização Sumário Título do documento 1. Objetivo... 3 2. Introdução... 3 3. Customização... 3 2 TOTVS BA Linha Logix Guia de Customização Projeto/Versão:
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisComputadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador
Leia maisComo agregar valor durante o processo de auditoria
QSP Informe Reservado Nº 55 Fevereiro/2006 Como agregar valor durante o processo de auditoria Tradução para o português especialmente preparada para os Associados ao QSP. Este guindance paper foi elaborado
Leia maisIFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
Leia mais