Ação Corretiva
Ação para eliminar a causa de uma não-conformidade identificada ou outra situação indesejável. [NBR ISO 9000]
Ação Preventiva
Ação para eliminar a causa de uma potencial não-conformidade ou outra situação potencialmente indesejável. [NBR ISO 9000]
Analisador de Código
Software que percorre um trecho de código, uma rotina ou um programa, com a finalidade de coletar métricas de complexidade ou de elaborar um grafo ou outra descrição da lógica do código percorrido.
Análise Crítica (Revisão de Software)
Avaliação profunda e global de um projeto, produto, serviço, processo ou informação com relação a requisitos, objetivando a identificação de problemas e a proposição de soluções. [Critérios de Excelência da Fundação para o Prêmio Nacional da Qualidade – FPNQ]
Atividade realizada para determinar a pertinência, a adequação e a eficácia do que está sendo examinado, para alcançar os objetivos estabelecidos, podendo incluir a determinação da eficiência. Pode desdobrar em análise crítica pela administração, análise crítica do projeto e desenvolvimento, análise crítica dos requisitos do cliente e análise crítica de não-conformidade. [NBR ISO 9000]
Análise Crítica de Requisitos (Inspeção de Requisitos)
Processo ou reunião durante o qual os requisitos para um sistema, item de hardware ou item de software são apresentados aos desenvolvedores, gerentes, usuários, clientes, ou outros interessados para comentários e aprovação. Aqui também estão incluídas análise crítica de sistema e análise crítica de software. [IEEE Std 610.12]
Análise Crítica pela Administração
Avaliação formal, pela alta administração, do estado e da adequação do sistema da qualidade, em relação à política da qualidade e seus objetivos.
Análise de Pontos por Função (Function Point Analysis)
Técnica de avaliação de um sistema, conhecida como FPA – Function Points Analysis, baseada na contagem das funções executadas pelos programas e seu respectivo impacto no desenvolvimento (classificadas por esforço e importância), ao invés de utilizar como base o número de linhas do código dos programas.
A técnica está baseada na visão externa do usuário, sendo portanto, independente da linguagem utilizada, permitindo calcular o esforço de programação e auxiliando o usuário final a melhorar o exame e avaliação de projetos.
Análise de Pontos por Função Cheios (Full Function Points Analysis)
Técnica de avaliação de um sistema, conhecida como FFP – Full Function Points Analysis, baseada nas funcionalidades entregues para o usuário, surgida como uma alternativa de mensuração mais exata (de forma a não gerar dúvidas, não sendo ambígua), com independência de domínio e propondo diferentes medidas para diferentes propósitos (considerando a visão do usuário e do desenvolvedor).
O método, como a Análise de Pontos por Função, também pode ser utilizado para mensurar estimativa de esforço de desenvolvimento, evolução da qualidade de software, gerenciamento de contratos de outsorcing, comparação de softwares especificados em diferentes linguagens, em termos de produtividade, qualidade e manutenção de custos.
Análise de Requisitos
Conjunto de atividades que permite identificar as necessidades do usuário 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.
Processo de estudar as necessidades do usuário para se chegar a uma definição dos requisitos de sistema, hardware ou software. [IEEE Std 610.12]
Análise Post-Morten
Análise do projeto após o final do mesmo.
ASQ - American Society for Quality
Entidade norte-americana que congrega profissionais interessados na engenharia da qualidade e na gestão da qualidade. Oferece diversas certificações profissionais, entre as quais a de engenheiro da qualidade (Certified Quality Engineer - CQE), engenheiro de confiabilidade (Certified Reliability Engineer - CRE), auditor da qualidade (Certified Quality Auditor - CQA), administrador da qualidade (Certified Quality Manager - CQM) e engenheiro da qualidade em software (Certified Software Quality Engineer - CSQE).
No Brasil, os exames para certificação são aplicados pela Associação Brasileira de Controle da Qualidade - ABCQ.
Auditoria da Qualidade
Exame sistemático e independente para determinar se as atividades da qualidade e seus resultados estão de acordo com as disposições planejadas, se estas foram implementadas com eficácia e se são adequadas à consecução dos objetivos.
Avaliação
Exame sistemático do grau em que um produto, processo ou serviço atende aos requisitos especificados.
Avaliação de Terceira Parte ou Independente
Avaliação feita por pessoa ou organismo reconhecido como independente das partes envolvidas.
CASE - Computer Aided Software Engineering
Ferramenta de apoio ao desenvolvimento de software. Em linhas gerais, apóia a execução de atividades do desenvolvimento do software de forma automatizada. Em alguns casos, implementa um ambiente relativamente refinado no qual várias atividades de especificação ou codificação são apoiadas por recursos computacionais. Neste caso, ferramentas CASE podem ser integradas em ambientes de desenvolvimento de software, apoiando parte das atividades previstas em um processo de desenvolvimento de software.
Dependendo do tipo de atividade suportada podem ser classificados em Lower CASE, provendo suporte à codificação, teste, depuração e manutenção do código ou Upper CASE, suportando diversas tarefas de análise e projeto de sistemas.
Certificação
Modo pelo qual uma terceira parte dá garantia escrita de que um produto, processo ou serviço está em conformidade com os requisitos especificados. [ABNT ISO/IEC GUIA 2]
Certificação de Software
Emissão de um certificado de conformidade de um software a um certo conjunto de normas ou especificações, comprovada por testes de conformidade e por testes de campo.
CMM - Capability Maturity Model
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. O CMM prevê cinco níveis de maturidade: inicial, repetível, definido, gerenciado e otimizado.
O modelo foi proposto por Watts S. Humphrey, a partir das propostas de Philip B. Crosby, e vem sendo aperfeiçoado pelo Software Engineering Institute - SEI da Carnegie Mellon University. [https://www.sei.cmu.edu/cmm/cmm.html]
CMMI - Capability Maturity Model Integration
Modelo para avaliação e melhoria da maturidade dos processos de uma organização, criado pelo Software Engineering Institute - SEI da Carnegie Mellon University como uma integração e evolução dos seguintes três modelos: SW-CMM – Capability Maturity Model for Software; SECM-EIA 731 – System Engineering Capability Model, e IPD-CMM – Integrated Product Development CMM. [https://www.sei.cmu.edu/cmm/cmm.html]
A versão 1.0 foi lançada em agosto de 2000, com plano do SEI de aposentar os três modelos precursores em 2003. O CMMI é um modelo alinhado com a Norma ISO/IEC 15504 e é apresentado em duas representações: uma por estágio (como o CMM) e outra contínua (semelhante à ISO/IEC15504).
Componente de Software (SC - Software Component)
Módulos de software independentes que se acoplam a um software ou sistema e que também podem ser reusados, como componentes, em outros programas de computador ou sistemas.
Confiabilidade
Capacidade do produto de software de manter um nível de desempenho especificado, quando usado em condições especificadas. [NBR ISO/IEC 9126-1]
Tem como subcaracterísticas: maturidade, tolerância a falhas, recuperabilidade e conformidade relacionada à confiabilidade.
Configuração
Relação entre versões de um objeto composto, ou seja, configuração é uma instância do sistema composta da união de uma versão específica de cada objeto componente.
Arranjo de um sistema computacional ou de seus componentes como definidos pelo seu número, natureza e interconexão de suas partes constituintes. [IEEE Std 610.12]
Controle de Versão
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.
CRM (Customer Relationship Management ) - Gestão do Relacionamento com o Cliente
Conjunto das atividades da função gerencial que visam à definição de estratégias de negócios voltadas para o entendimento e antecipação das necessidades dos clientes atuais e potenciais de uma empresa. A captura, processamento, análise e distribuição de dados para melhoria do relacionamento empresa cliente podem ser suportados por intermédio de produtos de software específico.
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 contábil desses custos permitemque 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 pré-estabelecidas.
Depurador Interativo
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 usuário como o analista de sistemas tenham uma compreensão comum das entradas, das saídas, dos componentes dos depósitos de dados. [Pressman R.S., Engenharia de Software, 1995]
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 por meio da documentação de teste construída pelo analista ou engenheiro de software responsável pelos testes.
Eficiência
Capacidade do produto de software de apresentar desempenho apropriado, relativo à quantidade de recursos usados, sob condições especificadas. [NBR ISO/IEC 9126-1]
Tem como subcaracterísticas: comportamento em relação ao tempo, utilização de recursos e conformidade relacionada à eficiência.
Engenharia da Informação
Caminho direcionado a dados para desenvolvimento de sistemas de informação, popularizado por James Martin, oposto à visão de direcionamento a processo de análise estruturada. [Marciniak J.J., Encyclopedia of Software Engineering]
Engenharia de Software
Disciplina que pode ser vista, de forma objetiva, como o estabelecimento e o uso dos princípios básicos da engenharia com a finalidade de desenvolver software de maneira sistemática e econômica, resultando em um produto confiável e eficiente. [Pressman R.S., Engenharia de Software, 1995]
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.
ERP (Enterprise Resource Planning) - Gestão Integrada
Sistema de Gestão baseado na análise do contexto organizacional, visando facilitar o fluxo de informações entre todos os departamentos da empresa e suas atividades, tais como fabricação, logística, finanças e recursos humanos.
Pode ser suportado por intermédio de produtos de software, onde um banco de dados único opera em uma plataforma comum que interage com um conjunto integrado de aplicações, consolidando todas as operações do negócio em apenas um ambiente computacional. Substitui o software departamental por um programa unificado que proporciona uma única visão da empresa em tempo real
Estimação da Confiabilidade
Procedimento de estimação da confiabilidade do software a partir de dados sobre erros ou falhas conhecidas e outros dados, tais como resultados de teste e número de horas de uso.
Estimativa de Custos
Previsão de custo monetário relativo ao processo de desenvolvimento e manutenção de software.
Estimativa de Esforço
Previsão de custo em homens-hora relativo ao processo de desenvolvimento e manutenção de software.
Estimativa de Tamanho
Previsão do tamanho físico relativo ao processo de desenvolvimento e manutenção de software.
Funcionalidade
Capacidade do produto de software de prover funções que atendam necessidades explícitas e implícitas, quando o software estiver sendo utilizado sob condições especificadas. [NBR ISO/IEC 9126-1]
Tem como subcaracterísticas: adequação, acurácia, interoperabilidade, segurança de acesso e conformidade relacionada à funcionalidade.
Garantia da Qualidade
Parte da gestão da qualidade focada em prover confiança de que os requisitos da qualidade serão atendidos. [NBR ISO 9000]
Gerência 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; e relatar a mudança a outras pessoas que possam ter interesse nela. O gerenciamento de configuração de software é um conjunto de atividades que foi desenvolvido para administrar as mudanças em todo o ciclo de vida do software.
Gerência de Projetos
Aplicação de conhecimentos, habilidades, ferramentas e técnicas, a fim de que as atividades do projeto estejam de acordo com os requisitos do mesmo. [PMI]
Gerência 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 serinterpretado 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, e forma a base para a estimativa, planejamento, execução e acompanhamento das atividades do projeto de software por meio do ciclo de vida do software. [Key Practices of the Capability Maturity Model, versão 1.1, Feb. 1993]
Gerência de Risco
Atividades coordenadas para direcionar uma organização em relação ao risco. A gerência de risco, geralmente inclui avaliação, tratamento, aceitação e comunicação de riscos. [Guide ISO 73 - Risk Management - Vocabulary - Guidelines for use in standards]
Gestão da Qualidade
Atividades coordenadas para dirigir e controlar uma organização, no que diz respeito à qualidade. [NBR ISO 9000]
Gestão de Conteúdo
Conjunto de técnicas, definições e procedimentos de ordem estratégica e tecnológica visando integração e automatização de todos os processos relacionados à criação, agregação, personalização, entrega e arquivamento de conteúdos de uma organização.
Gestão do Conhecimento
Arte de gerar valor a partir de bens intangíveis da organização [Sveiby, 1998], ou seja, sua função é gerar riqueza e valor a partir do gerenciamento de elementos que estão fora do contexto habitual de terra, capital e mão-de-obra, visão esta compartilhada por DRUCKER (1993).
Outra definição proposta é de uma estratégia que transforma bens intelectuais da organização - informações registradas e o talento dos seus membros - em maior produtividade, novos valores e aumento de competitividade [Murray, 1996]. Neste enfoque, tem a função de apoiar e orientar, a partir de um planejamento estratégico que inclui a informação e o conhecimento, a melhor forma de capitalizar o conhecimento organizacional.
Ou, ainda, uma visão, baseada no conhecimento dos processos de negócio da organização, para alavancar a capacidade de processamento de informações avançadas e tecnologias de comunicação, via translação da informação em ação por meio da criatividade e inovação dos seres humanos, para afetar a competência da organização e sua sobrevivência em um crescente de imprevisibilidade. [Malhotra, 1998]
Globalização de Software (G11N - Software Globalisation)
Trata de aspectos comerciais associados com o lançamento global de um produto de software, tais como integrar a localização em toda a companhia depois de apropriada internacionalização e desenho do produto.
GUI - Interface Gráfica com o Usuário
Processo interativo de projeto de interfaces com o usuário, ou seja, um modelo de projeto criado, implementado como protótipo, examinado pelos usuários e modificado, baseado em seus comentários. O jogo de ferramentas (toolkit) de interfaces com usuário ou sistema de desenvolvimento de interfaces com o usuário (User-Interface Development Systems – UIDS) oferecem módulos ou objetos que facilitam a criação de janelas, menus, interação de dispositivos, mensagens de erro, comandos e muitos outros elementos de um ambiente interativo.
Os sistemas de desenvolvimento de interfaces com o usuário (UIDS) combinam ferramentas CASE individuais para interação homem-computador com uma biblioteca de componentes de programa que possibilita que o desenvolvedor construa uma interface homem-computador rapidamente. O UIDS oferece componentes de programa que gerenciam dispositivos de entrada, validam entradas do usuário, manipulam condições de erro, processam undos e aborts, oferecem feedback visual, prompts e socorro, atualizam o display, gerenciam dados de aplicação, manipulam scrolling e editing, isolam a aplicação das funções de gerenciamento da tela e suportam características de customização para o usuário final. [Pressman R. S., Engenharia de Software, 1995]
Guia ABNT ISO/IEC GUIA 2
Termos gerais e suas definições relativas à normalização e atividades correlatas.
Guia ABNT ISO/IEC GUIA 25
Requisitos gerais para a capacitação de laboratórios de calibração e de ensaios.
IEC
International Electrotechnical Commission (Comissão Internacional de Eletrotécnica).
Principal organização global que prepara e publica padrões internacionais para todas as tecnologias elétricas, eletrônicas e correlatas. Estes servem como base para a padronização nacional e como referências em esboços de contratos internacionais.
Por intermédio de seus membros, a IEC promove a cooperação internacional em todas as questões de padronização eletrotécnica e de matérias relacionadas, tais como a avaliação de conformidade aos padrões, nas áreas de eletricidade, eletrônica e de tecnologias relacionadas.
Inspeção Formal
Técnica de revisão sistemática do software ou de alguns de seus componentes, executada sistematicamente ao final de cada fase do projeto, com o objetivo único de encontrar defeitos.
A inspeção formal é executada por uma equipe na qual cada membro tem papel pré-estabelecido. O projetista participa, mas não coordena a reunião. Todo o material gerado é lido, os defeitos anotados e uma estatística dos defeitos encontrados é mantida, para fins de posterior estudo da eficácia do procedimento.
Interface Homem-Computador
Mecanismo por meio do qual se estabelece um diálogo entre o programa e o ser humano. Se os fatores humanos tiverem sido levados em conta, o diálogo será harmonioso e um ritmo será estabelecido entre o usuário e o programa. Se os fatores humanos tiverem sido ignorados, o sistema quase sempre será visto como possuindo pouca usabilidade. [Pressman R.S., Engenharia de Software, 1995]
Internacionalização de Software (I18N - Software Internationalisation)
Processo de generalizar um produto de software de modo que possa ser usado em múltiplas línguas e convenções culturais sem necessidade de redesenho.
ISO
International Organization for Standardization (Organização Internacional de Normalização).
Rede dos institutos nacionais de normas de 146 países, composta por um membro de cada país, com uma secretaria central localizada em Genebra/Suíça, que coordena a rede. Trata-se de uma organização não-governamental, com membros dos setores governamental e privado.
ISO 8402
Quality management quality assurance – vocabulary.
A norma brasileira correspondente é a NBR ISO/IEC 8402:1994, substituída pela NBR ISO 9000:2000.
ISO 9000
Quality management systems – Fundamentals and vocabulary.
A norma brasileira correspondente é a NBR ISO 9000.
ISO 9000-3
Quality management and quality assurance standards – Part 3: Guidelines for the application of ISO 9001 to the development, supply and maintenance of software.
A norma brasileira correspondente é a NBR ISO 9000-3.
ISO 9000-4
Quality management and quality assurance standards – Part 4: Guide to dependability programme management
A norma brasileira correspondente é a NBR ISO 9000-4.
ISO 9001
Quality management systems – Requirements
É mais completa que as normas ISO 9002 e ISO 9003, da mesma série.
A norma brasileira correspondente é a NBR ISO 9001.
ISO 9002
Quality systems – Model for quality assurance in production, installation and servicing.
A norma brasileira correspondente é a NBR ISO 9002, substituída pela NBR ISO 9001:2000.
ISO 9003
Quality systems – Model for quality assurance in final inspection and testing.
A norma brasileira correspondente é a NBR ISO 9003, substituída pela NBR ISO 9001:2000.
ISO 9004
Quality management systems – Guidelines for performance improvements.
A norma brasileira correspondente é a NBR ISO 9004.
ISO/IEC 9126
Information technology - Software quality caracteristics and metrics.
A norma brasileira correspondente é a NBR ISO/IEC 9126.
ISO/IEC 9126-1
Software engineering – Product Quality – Part 1: Quality model.
A norma brasileira correspondente é a NBR ISO/IEC 9126-1.
ISO/IEC 12119
Information technology - Software packages - Quality requeriments and testing.
A norma brasileira correspondente é a NBR ISO/IEC 12119.
ISO/IEC 12207
Software Life Cycle Process.
A norma brasileira correspondente é a NBR ISO/IEC 12207.
ISO/IEC 13596
Information technology – Software product evaluation – Quality characteristics and guidelines for their use.
A norma brasileira correspondente é a NBR ISO/IEC 13596, substituída pela NBR ISO/IEC 9126-1
ISO/IEC 14598
Information technology – Software product evaluation.
Série formada por seis normas que tratam do processo de avaliação de um produto de software e complementam o modelo apresentado na norma ISO/IEC 9126. As seis normas brasileiras correspondentes são NBR ISO/IEC 14598-1 a 14598-6:
ISO/IEC 15504
Information technology – process assessment
Norma internacional para avaliação de processos, desenvolvida pelo ISO/IEC juntamente com o projeto SPICE (Software Process Improvement and Capability dEtermination), o que a torna conhecida também como Modelo SPICE.
ISO/IEC 17799
Information technology – Code of practice for information security management
A norma brasileira correspondente é a NBR ISO/IEC 17799.
JAD - Joint Application Design
Conjunto de sessões intensivas e mediadas entre usuários e analistas de um sistema, com o objetivo de explicitar os seus requisitos.
A técnica, desenvolvida nos anos setenta pela IBM do Canadá, voltou a ficar em voga com o uso do RAD - Rapid Application Development, metodologia que combina o JAD (para definir rapidamente a especificação do sistema) com o uso de ferramentas CASE e de metodologias de prototipação, para chegar a um produto final em menor tempo.
Lead Assessor
Certificação que qualifica um auditor a atuar na avaliação de empresas segundo as normas ISO 9000 e modelo CMM/CMMI.
A obtenção desse título depende da participação em cursos e da realização de um número de horas de auditoria, acompanhando auditores já certificados.
LOC - Linhas de Código
Métrica básica para código. A definição mais comum define um LOC como 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) presentes. [Marciniak J.J., Encyclopedia of Software Engineering]
Durante muito tempo, esta medida física foi a principal medida utilizada para medir tamanho de software foi a quantidade de linhas de código-fonte (SLOC – Source Lines Of Code). Há várias formas de contagem de SLOC – algumas voltadas às linhas de código propriamente ditas, outras voltadas às declarações e comandos de programação contidos em uma unidade de software.
Localização de Software (L10N - Software Localisation)
Processo de adaptação de um produto de software a uma linguagem internacional específica ou cultura, de modo que pareça natural àquela região particular. A verdadeira localização considera a linguagem, cultura, costumes e as características do local-alvo. Freqüentemente, envolve mudanças no sistema de escrita do software e pode mudar o uso do teclado, fontes, data, tempo e formatos monetários.
Manutenibilidade
Capacidade do produto de software de ser modificado. As modificações podem incluir correções, melhorias ou adaptações do software devido a mudanças no ambiente e nos seus requisitos ou especificações funcionais. [NBR ISO/IEC 9126-1]
Tem como subcaracterísticas: analisabilidade, modificabilidade, estabilidade, testabilidade e conformidade relacionada à manutenibilidade.
Medição
Uso de uma métrica para atribuir um valor (o qual pode ser um número ou categoria), obtido a partir de uma escala, a um atributo de uma entidade. [NBR ISO/IEC 9126-1]
Melhoria de Processos de Software (Software Process Improvement)
Uma abordagem da Qualidade de Software visando a melhoria dos processos de software nas organizações que desenvolvem e mantêm software. Utiliza modelos de referência de processos (PRM – Process Reference Models) tais como CMMI, ISO/IEC 15504 (SPICE) e mps, que compreendem níveis de capacidade (modelos contínuos) ou níveis de maturidade (modelos em estágios), e método de avaliação (ISO/IEC 15504).
Métrica
Método e escala de medição definidos. Incluem métodos para categorização de dados qualitativos, podendo ser internas ou externas, e diretas ou indiretas. [NBR ISO/IEC 9126-1]
Métricas de Complexidade
Grandezas coletadas por intermédio do exame da especificação, projeto ou codificação de um sistema e que refletem o seu tamanho e a sua complexidade lógica. Diversos modelos existem para relacionar métricas de complexidade com tempo ou esforço de desenvolvimento e com o número de defeitos embutidos no produto.
Modelo mps
O modelo mps foi criado no âmbito do Projeto mps Br – melhoria de processo do software brasileiro e é coordenado pela Sociedade SOFTEX. Compreende um Modelo de Referência para melhoria de processo de software (MR mps) e um Modelo de Negócios para melhoria de processo de software (MN mps). O MR mps está em conformidade com as normas ISO/IEC 12207 & AMDA – Processos do Ciclo de Vida do Software e ISO/IEC 15504 (SPICE) – Avaliação de Processos de Software, e é compatível com o CMMI. O MR mps é um modelo por estágios para melhoria de processos de software, que compreende sete níveis de maturidade (A é o mais alto e G é o mais baixo) e um método de avaliação (ISO/IEC 15504). O MN mps compreende um Modelo de Negócios Cooperado (MNC – pacote, para grupos de empresas) e um Modelo de Negócios Específico (MNE – personalizado, para uma empresa).
Não Conformidade
Não-atendimento de um requisito especificado.
A definição abrange afastamento ou ausência de uma ou mais características da qualidade, incluindo dependabilidade ou elemento do sistema da qualidade, em relação a requisitos especificados.
NBR ISO 8402
Gestão da qualidade e garantia da qualidade – Terminologia, Brasil.
Norma definida com o objetivo de esclarecer e padronizar termos utilizados na gestão da qualidade. Foi substituída pela NBR ISO 9000:2000.
NBR ISO 9000
Sistemas de gestão da qualidade – Fundamentos e vocabulário
Norma que descreve os fundamentos de sistemas de gestão da qualidade e estabelece a terminologia para estes sistemas.
Esta Norma cancela e substitui as NBR ISO 8402:1994, NBR ISO 9000-1:1994 e NBR ISO 9000-2:1994.
NBR ISO 9000-3
Normas de gestão da qualidade e garantia da qualidade - Parte 3: Diretrizes para a aplicação da NBR 9001 (ISO 9001) ao desenvolvimento, fornecimento e manutenção de software.
Estabelece diretrizes para aplicação da norma ISO 9001 às atividades de desenvolvimento, fornecimento e manutenção de software.
NBR ISO 9000-4
Normas para a gestão da qualidade e garantia da qualidade - Parte 4: Guia para gestão do programa de dependabilidade.
NBR ISO 9001
Sistemas de gestão da qualidade - Requisitos
Esta Norma especifica requisitos para um sistema de gestão da qualidade, quando uma organização necessita demonstrar sua capacidade para fornecer de forma coerente produtos que atendam aos requisitos do cliente e requisitos regulamentares aplicáveis, e pretende aumentar a satisfação do cliente por meio da efetiva aplicação do sistema, incluindo processos para melhoria contínua do sistema e a garantia da conformidade com requisitos do cliente e requisitos regulamentares aplicáveis.
NBR ISO 9002
Sistemas da qualidade – Modelo para garantia da qualidade em produção e instalação e serviços associados.
Foi substituída pela NBR ISO 9001:2000.
NBR ISO 9003
Sistemas da qualidade – Modelo para garantia em inspeção e ensaios finais
Foi substituída pela NBR ISO 9001:2000.
NBR ISO 9004
Sistemas de gestão da qualidade – Diretrizes para melhoria de desempenho
Esta Norma fornece orientação para um sistema de gestão da qualidade com objetivos mais amplos do que a NBR ISO 9001, especificamente no que tange à melhoria contínua do desempenho global de uma organização e sua eficiência, assim como à sua eficácia.
NBR ISO/IEC 9126
Tecnologia de informação – Avaliação de produto de software – Características de qualidade e diretrizes para o seu uso.
Norma que define as características da qualidade de software, para fins de sua avaliação. Será complementada com outras normas que definirão guias para avaliação do software, hoje na forma de drafts.
NBR ISO/IEC 9126-1
Engenharia de software – Qualidade de produto – Parte 1: Modelo de qualidade.
Substitui a norma NBR 13596.
Trata-se de uma parte da NBR ISO/IEC 9126 que descreve um modelo de qualidade do produto de software, composto de duas partes: a) qualidade interna e qualidade externa e b) qualidade em uso.
NBR ISO/IEC 12119
Tecnologia de informação – Pacotes de software – Testes e requisitos de qualidade.
Norma que estabelece os requisitos de qualidade para pacotes de software e instruções de como testar um pacote de software com relação aos requisitos estabelecidos.
NBR ISO/IEC 12207
Tecnologia de informação – Processos de ciclo de vida de software.
Norma que estabelece uma estrutura comum para os processos de ciclo de vida de software, com terminologia bem definida, que pode ser referenciada pela indústria de software. Essa estrutura cobre desde a concepção até a retirada do software do mercado e consiste dos processos para aquisição e fornecimento de produtos e serviços de software.
NBR ISO/IEC 13596
Tecnologia de informação – Avaliação de produto de software – Características de qualidade e diretrizes para o seu uso
Define seis características que descrevem, com um mínimo de sobreposição, qualidade de software. Estas características fornecem uma base para posterior refinamento e descrição de qualidade de software.
Foi substituída pela NBR ISO/IEC 9126-1.
NBR ISO/IEC 14598
Tecnologia de informação – Avaliação de produto de software.
NBR ISO/IEC 14598-1 - Tecnologia de informação - Avaliação de produto de software - Parte 1: Visão Geral Esta parte da NBR ISO/IEC 14598 é uma introdução às outras partes, fornecendo uma visão geral. Ela também explica o relacionamento entre a NBR ISO/IEC 14598 e o modelo de qualidade apresentado na ISO/IEC 9126.
NBR ISO/IEC 14598-2 - Engenharia de software- Avaliação de produto - Parte 2: Planejamento e gestão
NBR ISO/IEC 14598-3 - Engenharia de software- Avaliação de produto - Parte 3: Processo para desenvolvedores
NBR ISO/IEC 14598-4 - Engenharia de software- Avaliação de produto - Parte 4: Processo para adquirentes
NBR ISO/IEC 14598-5 - Tecnologia de informação - Avaliação de produto de software - Parte 5: Processo para avaliadores
NBR ISO/IEC 14598-6 - Engenharia de software- Avaliação de produto - Parte 6: Documentação de módulos de avaliação
NBR ISO/IEC 17799
Tecnologia de informação – Código de prática para a gestão da segurança da informação.
Fornece recomendações para gestão da segurança da informação para uso por aqueles que são responsáveis pela introdução, implementação ou manutenção da segurança em suas organizações.
Otimizador
Software, usualmente embutido no compilador que otimiza o código gerado a partir do exame do programa a ser compilado, eliminando redundâncias, código inacessível, etc.
Peer-review
Técnica de revisão de um produto, na qual um colega (peer) do projetista, programador ou analista revisa o produto desenvolvido, buscando encontrardefeitos ou oferecer sugestões de melhoria.
Plano de Testes
Plano que estabelece requisitos detalhados, critérios, metodologia geral, responsabilidades e planejamento geral para testes e avaliação de um sistema. [ISO 2382-20:1990]
Política da Qualidade
Intenções e diretrizes globais de uma organização relativas à qualidade, formalmente expressas pela alta direção. [NBR ISO 9000]
Pontos por Caso de Uso (Use Case Points)
Variação específica dos Pontos por Função para a medição da funcionalidade contida em casos de uso. [Karner, 1993]
Pontos por Função (Function Points)
Métrica internacional para dimensionar tamanho de produtos de software.
Essa métricade avaliação funcional foi desenvolvida em meados da década de 70 por A. J. Albrecht, que explorou o conceito de produto de um projeto de software em termos compatíveis com a teoria econômica, traduzindo a unidade de pontos de função, para medição tanto de produto de software quanto do seu projeto de desenvolvimento. [Albrecht, 1979]
Desde 1986, os Pontos por Função são mantidos por uma organização internacional sem fins lucrativos, o International Function Point Users Group – IFPUG. No Brasil, há suporte por parte do Brazilian Function Point Users Group – BFPUG.
Pontos por Função Cheios (Full Function Points)
Métrica desenvolvida para trabalhar com o tamanho funcional de diversos tipos de software e mensurar o tamanho do software baseado nas funcionalidades entregues para o usuário, possuindo uma visão de usuário mais abrangente que as outras métricas. [Calazans, 2003]
A abordagem Full Function Points foi proposta inicialmente, em 1997, como uma adaptação da métrica Pontos por Função para softwares real time. Em 1999, o grupo Common Software Measurement International Consortium - COSMIC propôs a evolução desta abordagem para COSMIC - FFP - V.2.1 (Cosmic Ponto de função cheio - V.2.1) como uma métrica totalmente independente de outras métricas. Atualmente o COSMIC está na V. 2.2, aprovada em 2003 como Padrão Internacional (ISO/IEC 19761:2003).
O COSMIC surgiu como uma alternativa de mensuração mais exata (de forma a não gerar dúvidas, não sendo ambígua), com independência de domínio e propondo diferentes medidas para diferentes propósitos (considerando a visão do usuário e do desenvolvedor).
Portabilidade
Capacidade do produto de software de ser transferido de um ambiente para outro. [NBR ISO/IEC 9126-1]
Tem como subcaracterísticas:adaptabilidade, capacidade para ser instalado, coexistência, capacidade para substituir e conformidade relacionada à portabilidade.
Processo
Conjunto de atividades inter-relacionadas ou interativas que transforma insumos (entradas) em produtos (saídas). [NBR ISO 9000]
Agrupamento em seqüência de todas as tarefas destinadas a obter um determinado resultado. É a combinação de atividades, 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 usuário).
Processos Fundamentais do Ciclo de Vida do Software
Aquisição - Define as atividades do adquirente, organização que adquire um sistema ou produto de software. Inicia-se com a definição da necessidade de adquirir um sistema, um produto ou um serviço de software. O processo continua com a preparação e emissão de pedido de proposta, seleção de fornecedor e gerência do processo de aquisição por meio da aceitação do sistema, produto ou serviço de software.
Desenvolvimento - Define as atividades do desenvolvedor, organização que define e desenvolve o produto de software. O processo contém as atividades para análise de requisitos, projeto, codificação, integração, testes, instalação e aceitação relacionadas aos produtos de software.
Define as atividades do fornecedor, organização que provê o produto de software ao adquirente. O processo pode ser iniciado tanto por uma decisão de preparar uma proposta para responder a um pedido de proposta de um adquirente, quanto pela assinatura e celebração de um contrato com o adquirente para fornecer o sistema, produto ou serviço de software. O processo continua com a determinação dos procedimentos e recursos necessários para gerenciar e garantir o projeto, incluindo o desenvolvimento e a execução dos planos de projeto até a entrega do sistema, produto ou serviço de software para o adquirente.
Manutenção - Define as atividades do mantenedor, organização que provê os serviços de manutenção do software, isto é, gerenciamento de modificações no software para mantê-lo atualizado e em perfeita operação. Este processo é ativado quando o produto de software é submetido a modificações no código e na documentação associada devido a um problema, ou à necessidade de melhoria ou adaptação. O objetivo é modificar um produto de software existente, preservando a sua integridade.
Operação - Define as atividades do operador, organização que provê serviço de operação de um sistema computacional no seu ambiente de funcionamento para seus usuários. O processo cobre a operação do produto de software e o suporte operacional aos usuários.
Processos de Apoio do Ciclo de Vida do Software
Auditoria- Processo sistemático, documentado e independente, para obter evidência da auditoria e avaliá-la objetivamente para determinar a extensão na qual os critérios de auditoria são atendidos. Auditorias internas, algumas vezes chamadas de auditorias de primeira parte, são conduzidas pela própria organização, ou em seu nome, para propósitos internos, e podem formar a base para uma autodeclaração de conformidade da organização. Auditorias externas incluem o que normalmente se denomina "auditoria de segunda" (conduzidas pelas partes que têm um interesse pela organização, tais como clientes, ou por outras pessoas em seu nome) ou de "terceira parte" (conduzidas por organizações externas, que fornecem certificados ou registro de conformidade com requisitos, tais como os da NBR ISO 9001 e NBR ISO 14001:1996). [NBR ISO 9000]
Documentação - Define as atividades para registrar informações produzidas por um processo ou atividade do ciclo de vida. O processo contém o conjunto de atividades que planeja, projeta, desenvolve, produz, edita, distribui e mantém aqueles documentos necessários a todos os interessados, tais como gerentes, engenheiros e usuários do sistema ou produto de software.
Garantia da Qualidade - Define as atividades para fornecer a garantia adequada de que os processos e produtos de software, no ciclo de vida do projeto, estejam em conformidade com seus requisitos especificados e sejam aderentes aos planos estabelecidos. A abrangência do processo inclui questões como garantia da qualidade do produto, do processo e do sistema de qualidade.
Gerência de Configuração - Define as atividades para a aplicação de procedimentos administrativos e técnicos, por todo o ciclo de vida do software, destinado a identificar e definir os itens de software que compõem um sistema, estabelecendo suas linhas básicas de composição; controlar as modificações e liberações dos itens; registrar e apresentar a situação dos itens e dos pedidos de modificação; garantir a completitude, consistência e correção dos itens; e controlar o armazenamento, a manipulação e distribuição dos itens de software.
Resolução de Problema - Define um processo para analisar e resolver os problemas (incluindo não-conformidades), de qualquer natureza ou fonte, que são descobertos durante a execução do desenvolvimento, operação, manutenção ou outros processos. O objetivo é prover os meios em tempo adequado e de forma responsável e documentada para garantir que todos os problemas encontrados sejam analisados e resolvidos e tendências sejam identificadas.
Revisão Conjunta - Define as atividades para avaliar a situação e produtos de uma atividade de um projeto, se apropriado. As revisões conjuntas são feitas tanto nos níveis de gerenciamento do projeto como nos níveis técnicos e são executadas durante a vigência do contrato.
Validação - Define as atividades para validação dos produtos produzidos pelo projeto de software. É um processo para determinar se os requisitos e o produto final (sistema ou software) atendem o uso específico proposto.
Verificação - Define as atividades para verificação dos produtos de software. É um processo para determinar se os produtos de software de uma atividade atendem completamente os requisitos ou condições impostas a eles.
Processos Organizacionais do Ciclo de Vida do Software
Gerência - Define as atividades genéricas que podem ser empregadas por quaisquer das partes que têm que gerenciar seu(s) respectivo(s) processo(s). O gerente é responsável pelo gerenciamento de produto, gerenciamento de projeto e gerenciamento de tarefa do(s) processo(s) aplicável(eis), tais como aquisição, fornecimento, desenvolvimento, operação, manutenção ou processos de apoio.
Infra-estrutura - Define as atividades para estabelecer e manter a infra-estrutura necessária para qualquer outro processo. A infra-estrutura pode incluir hardware, software, ferramentas, técnicas, padrões e recursos para o desenvolvimento, operação ou manutenção.
Melhoria - Define as atividades básicas que uma organização (isto é, adquirente, fornecedor, desenvolvedor, operador, mantenedor, ou o gerente de outro processo) executa para estabelecer, avaliar, medir, controlar e melhorar um processo do ciclo de vida do software.
Treinamento - Define as atividades para prover e manter pessoal treinado. A aquisição, o fornecimento, o desenvolvimento, a operação ou a manutenção de produtos de software é extremamente dependente de pessoal com conhecimento e qualificação. Portanto, é essencial que o treinamento de pessoal seja planejado e implementado com antecedência para que o pessoal treinado esteja disponível quando o produto de software for adquirido, fornecido, desenvolvido, operado ou mantido.
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) por meio de seus atributos (dados) e comportamento (operações), encapsulados e representados por intermédio de classes. Novas classes podem ser criadas a partir de classes existentes e organizadas por meio de um processo de classificação e hierarquização, explorando o conceito de herança. Cada objeto é instanciado a partir de 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 por sua classe/hierarquia de classes.
Os programas são construídos como organizadores da ativação de mensagens para os objetos fazendo com que as funcionalidades de um sistema sejam obtidas por meio da cooperação dos objetos.
Projeto da Interface com o Usuário
O processo global para projetar uma interface com o usuário inicia-se com a criação de diferentes modelos de função do sistema. Quatro diferentes modelos entram em cena quando uma HCI vai ser projetada. O engenheiro de software cria um modelo de projeto; um engenheiro humano estabelece um modelo de usuário, o usuário final desenvolve uma imagem mental que muitas vezes é chamada modelo do usuário ou de percepção do sistema e os implementadores do sistema criam uma imagem do sistema.[Pressman R. S., Engenharia de Software, 1995]
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. [Mark Paulk, 1995]
Prototipação
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 usuário 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.
Prova de Correção
Exame de uma especificação descrita segundo regras formais preestabelecidas, de modo a provar matematicamente a sua correção, por meio do uso de axiomas, teoremas e procedimentos algébricos.
QFD - Quality Function Deployment
Técnica de planejamento 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
Grau no qual um conjunto de características inerentes satisfaz a requisitos. [NBR ISO 9000]
Entidade pode ser uma atividade ou um processo, um produto, uma organização ou uma combinação desses.
Reengenharia de Software
Técnica de restruturaçã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 funcionalidades, especificações técnicas, prazo de entrega, garantia, que o cliente "requer" do produto.
Uma condição ou capacidade necessitada por um usuário, para resolver um problema ou alcançar um objetivo. [IEEE 83]
Necessidades ou expectativas que são expressas, geralmente, de forma implícita ou obrigatória. [NBR ISO 9000]
Reuso 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 reusabilidade e enfatizando aspectos de sua abrangência funcional e de independência de ambiente.
Software Customizado
Produto de software que engloba uma parte central genérica (kernel) que precisa ser adaptada para uso específico, ou seja, a função central é a mesma mas haverá um desenvolvimento direcionado para as necessidades do cliente.
Software Embarcado (ES- Embedded Software)
Produto em que o software, embora não esteja explicitamente visível para o usuário, é a parte fundamental de um equipamento. É, assim chamado, por ser comercializado "embutido" dentro de um hardware proprietário, em grande parte destinado às áreas industrial, de telecomunicações e bancária. São casos clássicos os softwares embarcados em aviões, automóveis e telefones celulares.
Pode ser classificado como embedded, um software complexo que instalado em um computador controla todo um ambiente de equipamentos mais sofisticados.
Software Modificado (MOTS - Modified off the Shelf Software)
Produto "customizável", ou seja, um software pacote adaptado pelo fornecedor para atender a necessidades específicas de determinados clientes. Esta situação é híbrida, pois normalmente ambas as partes, comprador e fornecedor, têm que realizar algum tipo de adaptação. O caso clássico é um software de gestão empresarial do tipo ERP.
Software Pacote (COTS - Commercial off the Shelf Software)
Produto de software pronto para o uso, que apresenta um conjunto de características funcionais e de qualidade pré-definidas pelo fornecedor, às quais os usuários se adaptam durante o uso. São casos clássicos as suítes de escritório, tais como os processadores de texto e planilhas eletrônicas.
Software sob Encomenda (FD - Partially to Fully Outsourced Software)
Produto de software desenvolvido a partir de um conjunto de requisitos obtidos pelo fornecedor junto ao cliente.
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 foi chamada de SPICE Trials); e disseminar a Norma no mercado. Como resultado, publicou-se a Norma ISO/IEC 15504.
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. [IEEE 83]
Validação de um software pelo comprador, pelo usuário 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 Integrado
Processo de testar um sistema integrado de hardware e software para verificar se o sistema satisfaz seus requisitos especificados. [IEEE 83]
Teste de Unidade
Verificação de um componente de um software, por meio 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 usuários.
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 por meio de suas interfaces, portanto testando sua funcionalidade.
Tick IT
Esquema para a avaliação e registro de sistemas da qualidade de atividades de desenvolvimento, fornecimento e manutenção de software.
Baseia-se no uso da norma ISO 9000-3 e de um guia, Tick IT Guide, para que os auditores apliquem adequadamente as normas ISO 9000.
No esquema Tick IT, os auditores são submetidos a critérios adicionais aos do Lead Assessor para serem certificados.
Essa iniciativa limita-se, por enquanto, à Grã-Bretanha e ainda não tem recebido aceitação unânime.
Usabilidade
Capacidade do produto de software de ser compreendido, aprendido, operado e atraente ao usuário, quando usado sob condições especificadas. [NBR ISO/IEC 9126-1]
Tem como subcaracterísticas: inteligibilidade, apreensibilidade, operacionalidade, atratividade e conformidade relacionada à usabilidade.
Validação
Comprovação, através do fornecimento de evidência objetiva, de que os requisitos para uma aplicação ou uso específicos pretendidos foram atendidos. [NBR ISO 9000]
Informações cuja veracidade pode ser comprovada com base em fatos obtidos por meio da observação, medição, ensaios ou outros meios constituem evidência objetiva.
Verificação
Comprovação, através de fornecimento de evidência objetiva, de que requisitos especificados foram atendidos. [NBR ISO 9000]
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 projetista ou programador apresenta 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.
[IEEE Std 610.12]