Provavelmente, se é programador, já se deparou com algum termo informático que não conhecia ou que não sabia o significado.
Por isso, criamos uma pequena listagem com algum termos informáticos mais comuns relacionados com projectos de software.
Photo by Mimi Thian on Unsplash
Lista de termos informáticos relacionados com desenvolvimento de software
Acção Correctiva
Ação realizada para eliminar um problema, não conformidade ou situação indesejada a fim de evitar sua repetição.
Acção Preventiva
Ação realizada evitar a ocorrência de um possível problema, não-conformidade ou defeito.
Agile
Modelo de desenvolvimento de software focado nas pessoas.
Não há processos definidos, guias ou instituto certificador.
A motivação e o cliente são aspectos primordiais nos métodos ágeis, todavia, praticar Agile é mais uma questão de cultura do que guias e processos.
Análise Crítica de Projeto
Análise completa e sistemática de um projeto a fim de avaliar sua capacidade de atender os requisitos para a qualidade, identificar problemas, se houver, e propor o desenvolvimento de soluções.
Análise de Pontos por Função
Técnica de estimativa de sistemas, também conhecida como FPA – Function Point Analysis, baseada na identificação das funções executadas pelos programas, ao invés de utilizar como base o volume ou a complexidade do código dos programas.
A técnica está baseada na visão externa do utilizador, sendo portanto, independente da linguagem utilizada, permitindo calcular o esforço de programação e auxiliando o utilizador final a melhorar o exame e avaliação de projetos.
Análise de Requisitos
Conjunto de atividades que permite identificar as necessidades do utilizador de modo a obter uma definição clara das características (requisitos) de um sistema.
Essas características descrevem o sistema em termos de funcionalidades, desempenho esperado, restrições de projeto, níveis de qualidade esperados, interface com outros elementos do sistema.
Auditoria
Verificação sistemática e independente, para determinar se as atividades da qualidade e seus resultados estão de acordo com o planeado, se foram implementadas com eficácia e se são adequadas.
Photo by Freestocks.org from StockSnap
Certificação
Modo pelo qual uma organização independente dá garantia escrita de que um produto, processo ou serviço está em conformidade com os requisitos especificados.
CMMI – Capability Maturity Model Integration
Modelo para avaliação da maturidade dos processos de software de uma organização e para identificação das práticas chave que são requeridas para aumentar a maturidade desses processos.
Fiabilidade
Conjunto de atributos que evidenciam a capacidade do software de manter seu nível de desempenho sob condições estabelecidas durante um período de tempo estabelecido.
Tem como sub características: maturidade, tolerância a falhas e capacidade de recuperação.
Configuração
Relação entre versões de um objeto, ou seja, configuração é uma instância do sistema composta da união de uma versão específica de cada objeto componente.
Reparação de um sistema ou dos seus componentes como definidos pelo seu número, natureza e interligações de suas partes constituintes.
Controle de Versões
Procedimento de gestão do ciclo de vida de um produto.
Consiste na identificação formal de modificações solicitadas ou efetuadas e no seu agrupamento, de modo a que fiquem incorporadas, todas elas, em uma determinada configuração do produto, num certo momento.
Essa configuração recebe o nome de versão.
Custos da Qualidade
Custos relacionados com as perdas em função da qualidade insuficiente de processos, produtos ou serviços (custos da não-conformidade) ou com os investimentos em atividades que eliminem falhas ou elevem a qualidade de processos, produtos ou serviços (custos da conformidade).
A identificação e a apropriação contabilização desses custos permite que o administrador possa fazer uma análise do nível de qualidade de sua produção e possa tomar decisões para melhorar esse nível.
Declaração de Conformidade
Declaração, emitida pelo fornecedor ou pelo produtor de um software, assegurando que este opera em conformidade com certas normas ou especificações preestabelecidas.
Depurador Interactivo
Software para apoio a testes, cuja função é permitir a visualização passo a passo da execução de uma rotina ou programa e do comportamento de seus elementos antes, durante e após a execução.
Dicionário de Dados
Listagem organizada de todos os elementos de dados que são pertinentes ao sistema, com definições precisas e rigorosas, de forma que tanto o utilizador como o analista de sistemas tenham uma compreensão comum das entradas, das saídas, dos componentes dos depósitos de dados.
Driver de Teste
Software que permite a ativação de determinadas partes do software (módulos) com o intuito de testá-las.
Normalmente, utilizam-se massas de teste previamente definidas e produzem resultados do teste, que podem ser verificados através da documentação de teste construída pelo analista ou engenheiro de software responsável pelos testes.
Photo by Christina @ wocintechchat.com on Unsplash
Eficiência
Conjunto de atributos que evidenciam o relacionamento entre o nível de desempenho do software e a quantidade de recursos usados, sob condições estabelecidas.
Tem como sub características: comportamento em relação ao tempo e comportamento em relação aos recursos.
Engenharia da Informação
Popularizada por James Martin, está direcionada para os dados e para desenvolvimento de sistemas de informação, oposta na visão do encaminhamento de dados e no processo de análise estruturada.
Entidade Certificadora
Órgão que realiza a certificação de conformidade, a partir da existência da garantia adequada de que um produto, processo ou serviço, devidamente identificado, está em conformidade com uma norma ou outro documento normativo especificado.
Garantia da Qualidade
Conjunto de atividades planeadas e sistemáticas, implementadas no sistema da qualidade e demonstradas como necessárias para prover confiança adequada de que uma entidade atenderá os requisitos para a qualidade.
Gestão de Projetos
Processo que tem início antes do trabalho técnico, prossegue à medida que o software se desenvolve do modelo conceitual para o modelo computacional e encerra somente quando o software se torna obsoleto.
Gestão de Requisitos
Estabelecimento e manutenção de um entendimento/acordo com o cliente sobre os requisitos para o projeto de software.
Este acordo refere-se aos requisitos do sistema alocados para o software.
O cliente pode ser interpretado como o grupo de engenharia do sistema, o grupo de marketing, outra organização interna, ou um cliente externo.
O acordo compreende requisitos técnicos e não técnicos.
O acordo forma a base para a estimativa, planeamento, execução e acompanhamento das atividades do projeto de software através do ciclo de vida do software.
Gestão de Configuração (Software Configuration Management – SCM)
Atividade abrangente que é aplicada em todo o processo de engenharia de software, podendo ser vista como uma atividade de garantia da qualidade de software.
Uma vez que uma mudança pode ocorrer a qualquer tempo, as atividades de SCM são desenvolvidas para:
- identificar a mudança;
- controlar a mudança;
- garantir que a mudança esteja sendo adequadamente implementada;
- relatar a mudança a outras pessoas que possam ter interesse nela.
A gestão da configuração de software é um conjunto de atividades que foi desenvolvido para administrar as mudanças em todo o ciclo de vida do software.
Gestão da Qualidade
Todas as atividades da função de gestão que determinam a política da qualidade, os objetivos e as responsabilidades, e os implementam por meios tais como:
- planeamento da qualidade,
- controle da qualidade,
- garantia da qualidade
- melhoria da qualidade dentro do sistema da qualidade.
Gestão de Configuração
Atividade técnica em informática baseada em gestão que é aplicada ao longo de todo o ciclo de vida do software que tem por objetivo garantir a integridade do produto sendo desenvolvido, mantendo um histórico de todos os itens sob controle.
Basicamente, é composta de quatro tarefas: identificação da configuração, controle da configuração, balanço da configuração e auditoria da configuração.
ISO
International Organization for Standardization (Organização Internacional de Normalização).
ISO 9001
Quality systems – Model for quality assurance in design, development, production, installation and servicing.
Norma internacional da série ISO 9000.
Modelo para garantia da qualidade em projetos, desenvolvimento, produção, instalação e serviços associados.
É mais completa que as normas ISO 9002 e ISO 9003, da mesma série.
ISO/IEC 12207
Information technology – Software life cycle process.
ISO/IEC 15504
Information technology – Software process assessment.
Norma internacional para avaliação de processos de software, desenvolvida pelo projeto SPICE (Software Process Improvement and Capability dEtermination), o que a torna conhecida também como Modelo SPICE.
Define um modelo de referência com processos e níveis de capacidade, orientações sobre como utilizá-lo para melhoria contínua ou determinação da capacidade, e um modelo exemplo compatível .
Lead Appraiser
Avaliador oficial SEI.
Responsável por avaliações oficiais CMMI. Há também o High Maturity Lead Appraiser, que é o avaliador que pode realizar avaliações CMMI 4 e CMMI 5.
Photo by Mimi Thian on Unsplash
Medição de Linhas de Código (LOC)
É a métrica de código mais básica.
A definição mais comum de LOC estabelece que qualquer linha do programa que não seja comentário ou linha em branco, independente do número de sentenças (lógicas ou operações) estão presentes naquela linha.
Melhoria de Processos de Software (Software Process Improvement)
Uma abordagem (SPI) para melhoria das organizações que desenvolvem e mantêm software.
É baseada na melhoria da capacidade de processos fundamentais para organizações de software.
Utiliza como referência um modelo de processo, como por exemplo, o CMM e a ISO/IEC 15504-SPICE.
Métrica de Qualidade de Software
Método e uma escala quantitativa que podem ser usados para determinar o valor que uma particularidade (feature) recebe em um produto de software específico.
MPS.Br
Modelo de melhoria de processos de software brasileiro muito similar e aderente ao CMMI porém com algumas diferenças como 7 níveis e novas áreas de processo (chamado pelo MPS.Br apenas por processo).
Peer-review
Técnica de revisão de um produto, na qual um colega (peer) do arquitecto ou do programador revisa o produto desenvolvido, procurando encontrar erros ou oferecer sugestões de melhoria.
Política da Qualidade
Intenções e directrizes globais de uma organização relativas à qualidade, formalmente expressas pela alta administração.
Processo
Conjunto de recursos e atividades inter-relacionadas que transformam entradas em produtos (saídas).
Agrupamento em sequência de todas as tarefas destinadas a obter um determinado resultado.
É a combinação de equipamentos, instalações, mão-de-obra, métodos, técnicas, ferramentas, procedimentos e outros fatores, com a finalidade de elaborar um produto ou alcançar um resultado preestabelecido.
Processo de Software
Conjunto de atividades, métodos, práticas e transformações que as pessoas empregam para desenvolver e manter software e os produtos associados (por exemplo, planos de projeto, documentos de projeto/design, código, casos de teste, manual do utilizador).
Programação Orientada a Objetos
Técnica de programação que enfatiza a descrição dos conceitos envolvidos com o domínio do problema (objetos) através de seus dados e operações, encapsulados e representados através de classes.
Cada objeto é criado como pertencendo a uma classe.
A utilização de um objeto, e sua eventual mudança de estado, se dá a partir de mensagens enviadas a ele, representadas pelas operações encapsuladas na classe.
Novas classes podem ser criadas a partir de classes existentes e organizadas através de um processo de classificação e hierarquização, explorando o conceito de herança.
Os programas são construídos como organizadores da ativação de mensagens para os objetos, desta forma fazendo com que as funcionalidades de um sistema sejam obtidas através da cooperação dos objetos.
Projeto de Software
Envolve tipicamente análise, especificação, projeto (design), desenvolvimento, teste e/ou manutenção dos componentes de software e da documentação associada.
Prototipagem
Método de desenvolvimento que prevê a execução de vários ciclos de análise, especificação e codificação de um sistema.
No primeiro ciclo, gera-se um produto simplificado em pouco tempo, de modo que o utilizador possa examiná-lo e refinar as suas demandas.
Nos ciclos seguintes, o produto é aperfeiçoado e novas funções são sucessivamente implementadas, até se chegar ao produto final.
QFD – Quality Function Deployment
Técnica de planeamento e de especificação de requisitos que consiste em reuniões com técnicos e clientes, nas quais são elaboradas matrizes em que se cruzam informações sobre “o que” é desejado (requisitos) e “como” implementar.
É composta por quatro etapas – projeto, componentes, processo e produção, sendo gerada a cada etapa uma matriz, a partir da matriz anterior.
As matrizes explicitam relações, conflitos, níveis de dificuldade, estágio tecnológico.
Por seu formato peculiar, a matriz do QFD é conhecida como “casa da qualidade”.
Qualidade
Totalidade de características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas.
Entidade pode ser uma atividade ou um processo, um produto, uma organização ou uma combinação desses.
Reengenharia de Software
Técnica de reestruturação ou modificação de um código existente, ou de desenvolvimento de um novo código, preservando-se inalterada a especificação ou o projeto do software.
Requisitos
Necessidades básicas do cliente, geralmente explicitadas como condição de negócio no contrato com o fornecedor.
São características, tais como especificações técnicas, prazo de entrega, garantia, que o cliente “requer” do produto.
Uma condição ou capacidade necessitada por um utilizador, para resolver um problema ou alcançar um objetivo.
Requisitos para a Qualidade
Expressão das necessidades ou sua tradução num conjunto de requisitos, explicitados em termos quantitativos ou qualitativos, com o objetivo de definir as características de uma entidade a fim de permitir sua realização e seu exame.
Reutilização de Código
Técnica de utilização de um programa, de uma rotina ou de uma biblioteca de rotinas em mais de uma aplicação, ou em diferentes implementações de uma aplicação. Para tal, o código deve ser escrito prevendo-se a sua reutilização e enfatizando aspectos de sua abrangência funcional e de independência de ambiente.
SPICE – Software Process Improvement and Capability dEtermination
Projeto estabelecido em junho de 1993 pela ISO/IEC JTC1/SC7 (Subcomitê de Engenharia de Software) com três objetivos principais:
- auxiliar o desenvolvimento de uma Norma Internacional para avaliação de processos de software;
- coordenar e analisar utilizações desta futura Norma para subsidiar revisões antes de sua publicação como norma (esta atividade é chamada de SPICE Trials);
- e disseminar a futura norma no mercado.
A norma desenvolvida é a ISO/IEC 15504 que está publicada atualmente com relatório técnico da ISO/IEC. Já foram realizadas duas fases do SPICE Trials, com dados sobre cerca de 100 utilizações da futura norma e a fase 3 está em andamento.
Six Sigma
Modelo para melhoria de processos com base em dados e fatos. Utiliza o método DMAIC e é largamente usado por toda industria.
É pouco utilizado em TI, normalmente é praticado nas organizações de alta maturidade.
Photo by Studio Republic on Unsplash
Tipos de testes Informáticos
Teste de Aceitação
Teste formal conduzido para determinar se um sistema satisfaz ou não seus critérios de aceitação e para permitir ao cliente determinar se aceita ou não o sistema.
Validação de um software pelo comprador, pelo utilizador ou por terceira parte, com o uso de dados ou cenários especificados ou reais.
Pode incluir testes funcionais, de configuração, de recuperação de falhas, de segurança e de desempenho.
Teste de Campo
Verificação de um software ou um trecho de software durante a sua utilização real (em campo), de modo a detectar, confirmar ou examinar falha ou erro relatado.
Teste de Integração
Técnica sistemática para a construção da estrutura de programa, realizando-se ao mesmo tempo, testes para descobrir erros associados a interfaces.
O objetivo é, a partir dos módulos testados no nível de unidade, construir a estrutura de programa que foi determinada pelo projeto.
O teste de integração cuida das questões associadas aos duplos problemas da verificação e construção de programas.
Teste de Sistema
Processo de testar um sistema integrado de hardware e software para verificar se o sistema satisfaz seus requisitos especificados.
Teste de Unidade
Verificação de um componente de um software, através de teste funcional, desenvolvido a partir da especificação das funções previstas para o componente, ou de teste estrutural, desenvolvido a partir da descrição da estrutura do componente.
Teste de Usabilidade
Verificação e homologação individual do uso por um conjunto de utilizadores.
Teste Funcional
Teste conduzido para demonstrar a operacionalidade das funções que foram especificadas.
O teste funcional (ou caixa-preta) é realizado olhando-se o software apenas através de suas interfaces, portanto testando sua funcionalidade.
Tipos de Analises Informáticas
Validação
Confirmação, por exame e fornecimento de evidência objetiva, de que os requisitos específicos para um uso pretendido são atendidos.
Informações cuja veracidade pode ser comprovada com base em fatos obtidos através da observação, medição, ensaios ou outros meios constituem evidência objetiva.
Verificação
Confirmação, por exame e fornecimento de evidência objetiva, do atendimento aos requisitos especificados.
Processo de avaliação de um sistema (ou componente) com o objetivo de determinar se o produto de uma dada fase do desenvolvimento satisfaz às condições impostas no início dessa fase.
Walkthrough Estruturado
Técnica de análise estática na qual um engenheiro ou programador apresentam aos membros do grupo de desenvolvimento e outros profissionais interessados uma parte de documentação ou código, e os participantes fazem perguntas e comentários sobre possíveis erros, violação de padrões de desenvolvimento ou sobre outros problemas