ISO para Software IEC 9126

ISO/IEC 9126 é uma norma ISO para qualidade de produto de software, que se enquadra no modelo de qualidade das normas da família 9000. A norma brasileira correspondente é a NBR ISO/IEC 9126 (Norma está cancelada e foi substituída pela ISO/IEC 25000).

Índice [esconder]
1 Modelo de Qualidade de Software
2 Modelo de Qualidade da Norma ISO 9126
2.1 Funcionalidade
2.2 Confiabilidade
2.3 Usabilidade
2.4 Eficiência
2.5 Manutenibilidade
2.6 Portabilidade
3 Ver também
4 Bibliografia
Modelo de Qualidade de Software[editar | editar código-fonte]
A qualidade de um sistema de software pode ser entendida de diversas formas e utilizando diferentes abordagens.

A norma ISO/IEC 9126, ou conjunto de normas que tratam deste assunto no âmbito da ISO, estabelece um modelo de qualidade com os seguintes componentes:

Processo de desenvolvimento, cuja qualidade afeta a qualidade do produto de software gerado e é influenciado pela natureza do produto desenvolvido;
Produto, compreendendo os atributos de qualidade do produto (sistema) de software. Estes atributos de qualidade podem ser divididos entre atributos internos e externos. Estes se diferenciam pela forma como são aferidos (interna ou externamente ao produto de software) e em conjunto compõem a qualidade do produto de software em si;
Qualidade em uso que consiste na aferição da qualidade do software em cada contexto específico de usuário. Esta é, também, a qualidade percebida pelo usuário.
Modelo de Qualidade da Norma ISO 9126[editar | editar código-fonte]
A norma 9126 se foca na qualidade do produto de software, propondo Atributos de Qualidade, distribuídos em seis características principais, com cada uma delas divididas em sub-características, conforme podemos ver na figura abaixo:

ISO-9126-geral.png

No nível mais alto temos as características de qualidade e nos quadros abaixo as suas sub-características. Cada característica/sub-característica compõe um Atributo de Qualidade do software.

Note que em todas as características temos uma sub-categoria com o nome de Conformidade. A conformidade é utilizada para avaliar o quanto o software obedece aos requisitos de legislação e todo o tipo de padronização ou normalização aplicável ao contexto.

Funcionalidade[editar | editar código-fonte]
A capacidade de um software prover funcionalidades que satisfaçam o usuário em suas necessidades declaradas e implícitas, dentro de um determinado contexto de uso.

Suas sub-características são:

Adequação, que mede o quanto o conjunto de funcionalidades é adequado às necessidades do usuário;
Acurácia (ou precisão) representa a capacidade do software de fornecer resultados precisos ou com a precisão dentro do que foi acordado/solicitado;
Interoperabilidade que trata da maneira como o software interage com outro(s) sistema(s) especificados;
Segurança mede a capacidade do sistema de proteger as informações do usuário e fornecê-las apenas (e sempre) às pessoas autorizadas
, Segurança também pode estar dirigida em, processar gerar e armazenar as informações.
Conformidade trata da padronização, politicas e normas de um projeto.
Confiabilidade[editar | editar código-fonte]
O produto se mantém no nível de desempenho nas condições estabelecidas.

Suas sub-características são:

Maturidade, entendida como sendo a capacidade do software em evitar falhas decorrentes de defeitos no software;
Tolerância a Falhas representando a capacidade do software em manter o funcionamento adequado mesmo quando ocorrem defeitos nele ou nas suas interfaces externas;
Recuperabilidade que foca na capacidade de um software se recuperar após uma falha, restabelecendo seus níveis de desempenho e recuperando os seus dados;
Usabilidade[editar | editar código-fonte]
A capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário.

Note que este conceito é bastante abrangente e se aplica mesmo a programas que não possuem uma interface para o usuário final. Por exemplo, um programa batch executado por uma ferramenta de programação de processos também pode ser avaliado quanto a sua usabilidade, no que diz respeito a ser facilmente compreendido, aprendido, etc. Além disto, a operação de um sistema é uma interface Humano-Computador (ver IHC) sujeita às avaliações de usabilidade.

Suas sub-características são:

Inteligibilidade que representa a facilidade com que o usuário pode compreender as suas funcionalidades e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicas;
Apreensibilidade identifica a facilidade de aprendizado do sistema para os seus potenciais usuários;
Operacionalidade é como o produto facilita a sua operação por parte do usuário, incluindo a maneira como ele tolera erros de operação;
Atratividade envolve características que possam atrair um potencial usuário para o sistema, o que pode incluir desde a adequação das informações prestadas para o usuário até os requintes visuais utilizados na sua interface gráfica;
Eficiência[editar | editar código-fonte]
O tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software.

Suas sub-características são:

Comportamento em Relação ao Tempo que avalia se os tempos de resposta (ou de processamento) estão dentro das especificações;
Utilização de Recursos que mede tanto os recursos consumidos quanto a capacidade do sistema em utilizar os recursos disponíveis;
Manutenibilidade[editar | editar código-fonte]
A capacidade (ou facilidade) do produto de software ser modificado, incluindo tanto as melhorias ou extensões de funcionalidade quanto as correções de defeitos, falhas ou erros.

Suas sub-características são:

Analisabilidade identifica a facilidade em se diagnosticar eventuais problemas e identificar as causas das deficiências ou falhas;
Modificabilidade caracteriza a facilidade com que o comportamento do software pode ser modificado;
Estabilidade avalia a capacidade do software de evitar efeitos colaterais decorrentes de modificações introduzidas;
Testabilidade representa a capacidade de se testar o sistema modificado, tanto quanto as novas funcionalidades quanto as não afetadas diretamente pela modificação;
Portabilidade[editar | editar código-fonte]
A capacidade do sistema ser transferido de um ambiente para outro.

Como “ambiente”, devemos considerar todo os fatores de adaptação, tais como diferentes condições de infra-estrutura (sistemas operacionais, versões de bancos de dados, etc.), diferentes tipos e recursos de hardware (tal como aproveitar um número maior de processadores ou memória). Além destes, fatores como idioma ou a facilidade para se criar ambientes de testes devem ser considerados como características de portabilidade.

Suas sub-características são:

Adaptabilidade, representando a capacidade do software se a adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações);
Capacidade para ser Instalado identifica a facilidade com que pode se instalar o sistema em um novo ambiente;
Coexistência mede o quão facilmente um software convive com outros instalados no mesmo ambiente;
Capacidade para Substituir representa a capacidade que o sistema tem de substituir outro sistema especificado, em um contexto de uso e ambiente específicos. Este atributo interage tanto com adaptabilidade quanto com a capacidade para ser instalado;

A ISO/IEC 15504, também conhecida como SPICE, é a norma ISO/IEC que define processo de desenvolvimento de software. Ela é uma evolução da ISO/IEC 12207 mas possui níveis de capacidade para cada processo assim como o CMMI.

A ISO/IEC 12207 é a norma ISO/IEC que define processo de desenvolvimento de software.

A norma internacional ISO/IEC 12207 [1] tem como objetivo principal estabelecer uma estrutura comum para os processos de ciclo de vida e de desenvolvimento de softwares visando ajudar as organizações a compreenderem todos os componentes presentes na aquisição e fornecimento de software e, assim, conseguirem firmar contratos e executarem projetos de forma mais eficaz.

Origem: Wikipédia, a enciclopédia livre.

Minhas observações: Aqui se descreve sucintamente uma explicação resumidíssima a respeito de ISO para software, as regras e normas compõe centenas de páginas, mas dá para ter uma ideia de como é difícil obter uma certificação ISO para seu software, mas ao tentar caminhar para isso em seu desenvolvimento você pode conseguir outras certificações menos exigentes. Mas quando seu cliente, principalmente indústria buscar certificação ISO a empresa, dependendo do software e banco de dados que essa empresa utiliza a ISO não o certifica, até nisso é importante alguns requisitos básicos no software para a empresa conseguir certificação. Foi numa situação assim que me obriguei a adaptar meu software para que me cliente conseguisse a certificação e mais, a renovação nesse caso é a cada 2 anos e todo o processo passa por testes e novas exigências.

Eu prezo muito por duas coisas que faz total diferença no ato da venda e principalmente na pós venda. Se chama Ergonomia e Usabilidade.

Suas sub-características são:
Adaptabilidade, representando a capacidade do software se a adaptar a diferentes ambientes sem a necessidade de ações adicionais

Singularidade tecnológica: os seres humanos serão dominados pelas máquinas?
http://www.tecmundo.com.br/futuro/50264-singularidade-tecnologica-os-seres-humanos-serao-dominados-pelas-maquinas-.htm