Taiichi
Ohno, criador do Sistema Toyota de Produção, escreveu “existe algo chamado
trabalho padrão, mas padrões devem ser alterados constantemente. Se você
considera o padrão como o melhor que pode fazer, não há avanço”, Ohno prossegue
dizendo que, se estabelecermos algo como a “melhor maneira possível, a
motivação do kaizen [melhoria contínua incremental] deixará de existir” (1982).
Extraído do Livro Desenvolvimento de Software com
SCRUM,
Aplicando Métodos Ágeis com Sucesso.
O Modelo Fabril
Até os anos
80, no Brasil, o processo de desenvolvimento de software caracterizou-se como
um processo artesanal. O foco era no fechamento do negócio, precisávamos ganhar
dinheiro e programar, custe o que custar. E o cliente? E o retorno do
investimento? E o diferencial competitivo no mercado? Pois esta pode ser uma
das razões que justificaram o investimento no sistema, na automação.
Este cenário
começa a mudar com o surgimento do conceito de FÁBRICA de SOFTWARE. Pois é, o
que a grande maioria encara como novidade, surgiu em meados da década de 80 e
só foi colocado em pratica em 1993 no mercado paulista.
Antes,
conceitos como gerenciamento de projetos e melhoria continua (qualidade), não
eram vistos como necessários. Com a inserção no mercado internacional, as
normas de qualidade passaram a ser adotadas, possibilitando a prestação de
serviço em um mercado globalizado.
Quando me
perguntam qual a metodologia que eu uso no processo de desenvolvimento de
software, eu respondo com outra pergunta: Você conhece as normas da ABNT?
Objetivos
das normas
Estabelecer
um idioma internacional, onde todas as empresas falem a mesma língua, no
tocante a gestão da qualidade.
…“facilitando
a compreensão mútua no comércio nacional e internacional”. (ABNT NBR ISO
9000:2005)
Começamos a
leitura da norma pelo item generalidades e podemos destacar o seu objetivo:
…“apoiar
organizações, de todos os tipos e tamanhos, na implementação e operação de
sistemas de gestão da qualidade EFICAZES”.
Nosso
primeiro questionamento: Gerir a qualidade ou gerir com qualidade? Será que uma
coisa depende da outra?
Neste ponto
gostaria de chama a atenção para dois pequenos termos mais com um significado
imenso:
- Eficaz
- Qualidade
Quanto ao
primeiro recorrendo ao dicionário encontramos os seguintes significados:
Eficaz: que
efetua o que promete ou o que se espera; que causa o resultado inicialmente
pretendido, dicionário Priberam. No Aurélio encontramos como significado,
aquele que produz o efeito esperado, que dá resultado.
Para
definirmos qualidade recorremos ao processo de formação das normas, buscando os
primeiros conceitos, em normas que atualmente já foram substituídas, mas que
fundamentaram todo o processo, num clima nostálgico.
Qualidade:
segundo antiga norma NBR ISO 8402 de 1993, que tratava da gestão da qualidade e
garantia da qualidade, registramos o seguinte:
“Qualidade
é a totalidade das características de uma entidade que lhe confere a capacidade
de satisfazer às necessidades explícitas e implícitas”.
Trazendo
estes conceitos para o nosso universo, o universo do desenvolvimento de
sistemas, da engenharia de software. Na relação comercial com nossos clientes,
que nos contrataram em busca de soluções tecnológicas que automatizem seus
processos produtivos, de controle, científicos, matemáticos, financeiros, e uma
série de outras atividades, que englobam as mais variadas áreas do conhecimento
e de negócio, o que eles esperam de nós?
Baseados no
significado do termo EFICAZ, poderíamos afirmar que o cliente quando nos
contrata, ele espera que os resultados inicialmente pretendidos sejam
atingidos, foco nas suas requisições no entendimento do negócio. Com relação ao
conceito de qualidade, que disponibilizemos ”a totalidade das características
de uma entidade que lhe confere a capacidade de satisfazer às necessidades
explícitas e implícitas”, superando as suas expectativas.
Chegamos a
conclusão que para mantermos uma relação saudável com o cliente de fato
precisamos implantar um sistema coerente que apoie os nosso processos interno
de produção, apoiados nas normas de qualidade, cada organização segundo as suas
características, tirando o máximo proveito da norma:
…“apoiar
organizações, de todos os tipos e tamanhos, na implementação e operação de
sistemas de gestão da qualidade EFICAZES”.
Quando nos
envolvemos em um projeto, em que momento nos lembramos desta definição:
“Qualidade
é a totalidade das características de uma entidade que lhe confere a capacidade
de satisfazer às necessidades explícitas e implícitas”?.
Olha o
Aurélio aí de novo, na definição do termo qualidade:
“Superioridade, excelência em qualquer coisa”…
Vamos
conhecer um pouco sobre a família ISO:
ABNT
NBR ISO/IEC 14102:2002
Tecnologia
de informação - Orientação para avaliação e seleção de ferramentas CASE
ABNT ISO/IEC TR 14471:2003
Tecnologia
da informação - Engenharia de software - Orientação para adoção de ferramentas
CASE
ABNT NBR ISO/IEC 9126-1:2003
Engenharia
de software - Qualidade de produto Parte 1: Modelo de qualidade
ABNT NBR ISO/IEC 14598-2:2003
Engenharia
de software - Avaliação de produto Parte 2: Planejamento e gestão
ABNT NBR ISO/IEC 14598-3:2003
Engenharia
de software - Avaliação de produto Parte 3: Processo para desenvolvedores
ABNT NBR ISO/IEC 14598-4:2003
Engenharia
de software - Avaliação de produto Parte 4: Processo para adquirentes
ABNT NBR ISO/IEC 14598-5:2001
Tecnologia de
informação - Avaliação de produto de software Parte 5: Processo para
avaliadores
ABNT NBR ISO/IEC 14598-6:2004
Engenharia
de software - Avaliação de produto Parte 6: Documentação de módulos de
avaliação
ABNT ISO/IEC TR 24774:2010
Engenharia
de software e de sistemas — Gerenciamento de ciclo de vida — Orientações para
descrição de processos
ABNT NBR ISO/IEC 25000:2008
Engenharia
de software - Requisitos e avaliação da qualidade de produtos de software
(SQuaRE) - Guia do SQuaRE
ABNT NBR ISO/IEC 25001:2009
Engenharia
de software - Requisitos e avaliação da qualidade de produto de software
(SQuaRE) - Planejamento e gestão
ABNT NBR ISO/IEC 25020:2009
Engenharia
de software - Requisitos e avaliação da qualidade de produto de software (SQuaRE)
- Guia e modelo de referência para medição
ABNT NBR ISO/IEC 25030:2008
Engenharia
de software - Requisitos e Avaliação da Qualidade de Produto de Software
(SQuaRE) - Requisitos de qualidade
ABNT NBR ISO/IEC 25051:2008
Engenharia
de software - Requisitos e avaliação da qualidade de produto de software
(SQuaRE) - Requisitos de qualidade de produto de software comercial de
prateleira (COTS) e instruções para teste
ABNT NBR ISO/IEC 25062:2011
Engenharia
de software — Requisitos e avaliação da qualidade de produto de software
(SQuaRE) — Formato comum da indústria (FCI) para relatórios de teste de
usabilidade
A
implantação do sistema de gestão da qualidade nos permite dirigir e controlar a
organização de maneira transparente e sistemática. Mas é preciso entendê-la
como um único organismo, visão holística, esta visão tem que ser clara para
quem a administra. E podemos começar com pequenos passos como a melhoria
continua, aferindo o desempenho, atendendo as necessidades de todos os
envolvidos, ou seja, mapeando os processos. O foco está na disciplina e na
gestão da qualidade.
Oito
princípios orientam a alta direção na implantação do processo de gestão da
qualidade. A norma frisa alta direção, pois existe a necessidade da conscientização
para a qualidade da diretoria, quem de fato decide ou não sobre a implantação.
Não nos deixemos enganar! Para implantarmos o sistema de gestão da qualidade, é
preciso que a alta direção esteja consciente da necessidade. Essa é a maneira mais
eficaz.
Os oito
princípios de gestão da qualidade são:
- Foco no cliente
- Liderança
- Envolvimento de pessoas
- Abordagem de processo
- Abordagem sistêmica para a gestão
- Melhoria contínua
- Abordagem factual para tomada de decisão
- Benefícios mútuos nas relações com os fornecedores
Foco
no cliente
Já paramos
para pensar na grande responsabilidade quando lidamos com os investimentos de
terceiros? Quando o cliente nos confia a automação de processos, o
desenvolvimento de um produto ou o fornecimento de qualquer bem que agregue
valor ao seu negócio. Qual o seu objetivo? Do esforço do investimento o que ele
espera? Aumentar o lucro? Reduzir seus custos? Ou a simples automação de
tarefas que aumente a sua produtividade? Que por consequência aumenta o seu
lucro e reduz os seus custos. Diversas são as possibilidades e cada uma,
relacionada com o ramo de atividade da organização. Porém o nosso foco deverá
sempre está voltado em atender as necessidades do cliente, agregando valor ao
seu negócio.
“Organizações
dependem de seus clientes e, portanto, convém que entendam as necessidades
atuais e futuras do cliente, os seus requisitos e procurem exceder as suas
expectativas”. (ABNT NBR ISO 9000:2005)
Novamente em
nosso universo, Pressman, em seu famoso livro Engenharia de Software,
“Qualidade
de software é a conformidade a requisitos funcionais e de desempenho
explicitamente declarados, a padrões de desenvolvimento claramente documentados
e a características implícitas que são esperadas de todo software
profissionalmente desenvolvido”.
Aumentou a
nossa responsabilidade…
Podemos
também dizer que qualidade é estar em conformidade com especificações, ou seja,
quando os produtos possuem as características que estão descritas no projeto,
catálogos ou listas de especificações.
Mais um
questionamento: Entendemos o que nos foi confiado a desenvolver?
Liderança
É função
precípua das lideranças manterem o ambiente interno voltado para os objetivos
organizacionais. Amadores cansam o mercado com seus engodos, gerando a falsa
impressão que realizaram algo de bom e produtivo para as empresas. O bom líder
deve focar:
- Na unidade de propósito
- No rumo da organização.
- Nos objetivos da organização.
Envolvimento
das Pessoas
A
valorização do quadro funcional: investimento na capacitação, valorizando todos
os profissionais que fazem parte da organização é uma prática fundamental para
o sucesso nos projetos. Pois elas são a essência da organização, e me refiro a
todo o quadro funcional, a todos os níveis hierárquicos. Um funcionário insatisfeito
pode gerar prejuízos para a organização. Lembro-me de uso caso contado por um
empresário argentino, onde um dos seus funcionários que trabalhava na
distribuição das correspondências estava insatisfeito com o seu salário, e teve
o pedido de reajuste salarial negado, adotou com procedimento jogar no lixo
todas as correspondências referentes a participação em licitação. Resumindo a
empresa teve grandes prejuízos, mas felizmente a atitude do funcionário foi
descoberta a tempo.
Abordagem
de Processo
A visão de
processo nos direciona ao sucesso, pois atingimos os resultados esperados com
mais eficiência. As atividades e os recursos fazem parte da visão. Todo é
processo, tudo tem que estar completamente mapeado, controlado, gerido.
Abordagem
sistêmica para gestão.
Os processos inter-relacionados na empresa dever ser identificados, entendidos e
gerenciados, contribuindo para realização dos objetivos da organização com
eficiência e eficácia.
Melhoria
contínua
Se
acreditarmos que não precisamos mudar mais nada na organização, alguma coisa
está muito errada. O conceito de melhoria continua faz parte do universo da
Qualidade, pois esta ligado ao desempenho global da organização, que deve ser
medido sistematicamente e só desta forma conseguiremos atingir permanentemente
os objetivos da organização.
Abordagem
factual para tomada de decisão
A base de
conhecimento da organização serve com parâmetro na tomada de decisão, aliamos a
análise dos dados e todas as informações disponíveis. Chega de levantar a ponta
do dedo e saber para onde o vento sopra.
“Decisões
eficazes são baseadas na análise de dados e informações”. (ABNT NBR ISO
9000:2005)
Benefícios mútuos nas relações com os fornecedores
Benefícios mútuos nas relações com os fornecedores
Uma relação
comercial só é boa quando as partes envolvidas usufruem dos seus benefícios.
Com foco no planejado atingindo os objetivos dos interessados, agregamos
valores ao negócio. Existe uma interdependência entre organização e fornecedor,
ou seja, um depende do outro para sobreviver no mercado.
“Qualidade é
a totalidade das características de uma entidade (produto) que lhe confere a
capacidade de satisfazer às necessidades explícitas (requisitos funcionais) e
implícitas (requisitos não funcionais)”. (Antiga norma ABNT NBR ISSO 8402)
O que o cliente espera quando nos contratam? Que o produto ou serviço contratado tenha ”a totalidade das características de uma entidade que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas”.
Segundo
Pressman, em seu famoso livro Engenharia de Software, “Qualidade de software é
a conformidade a requisitos funcionais e de desempenho explicitamente
declarados, a padrões de desenvolvimento claramente documentados e a
características implícitas que são esperadas de todo software profissionalmente
desenvolvido”. Poderia ser resumido em: …”a totalidade das características de
uma entidade que lhe confere a capacidade de satisfazer às necessidades
explícitas e implícitas”.
Aumentou a
nossa responsabilidade…
Podemos
também dizer que qualidade é estar em conformidade com especificações, ou seja,
quando os produtos possuem as características que estão descritas no projeto,
catálogos ou listas de especificações.
Devemos
sempre nos perguntar: Entendemos o que nos foi confiado a desenvolver?
Fechamos o conceito de qualidade, com definição mais antiga e que nos reporta ao tempo acadêmico: “Qualidade é a adequação ao uso”.
Fechamos o conceito de qualidade, com definição mais antiga e que nos reporta ao tempo acadêmico: “Qualidade é a adequação ao uso”.
Com base nos
conceitos acima, podemos avaliar a qualidade de um produto, verificando se ele
atendeu ou não as necessidades do cliente. Entregamos aquilo que o cliente nos
solicitou? Atendemos as suas expectativas?
Uma série de
questionamentos que embora não estejam explícitos nas normas, nos direciona a
satisfação do cliente, como por exemplo:
- Qual o objetivo do investimento no desenvolvimento do sistema?
- Existe alguma solução pronta?
- O que vale mais a pena desenvolver ou de fato comprar uma solução?
- O sistema tem como objetivo reduzir custos?
- O sistema tem como objetivo aumentar o lucro?
- O sistema tem como objetivo melhorar os processos internos automatizando?
- Quem vai usar o sistema?
- O que os envolvidos esperam do sistema?
- Como eles trabalham atualmente?
- Qual o impacto na rotina dos envolvidos?
- Levantamos todos os fluxos principais e alternativos do sistema?
- Foram identificados todos os atores primários e secundários do sistema?
- O ambiente operacional?
- Se o sistema vai interagir com outros sistemas?
- Se vamos consumir, gerar, ou seja, compartilhar informações com outros sistemas?
- Temos um layout aprovado pelo cliente?
- Conseguimos satisfazer as expectativas do cliente?
Ainda
seriamos capazes de sentarmos em frente ao computador e sairmos escrevendo
códigos feito um alucinado, sem nos preocupamos em entender o domínio do
negócio, os requisitos do cliente? Se a nossa resposta for sim, estamos com
sérios problemas, pois não percebemos a importância de conseguir um cliente e a
responsabilidade em mantê-lo.
Aprofundando mais um pouquinho, questiono ainda:
- Como fomos preparados para a vida profissional?
- O que aprendemos com aplicação prática no âmbito da qualidade?
Recordando as atividades na vida acadêmica, se não me falha a memória, aprendemos uma linguagem de programação, noções de orientação o objetos, noções de UML, banco de dados, noções sobre sistemas operacionais, mas nossa vida acadêmica é direcionada para desenvolvermos o senso ético e moral na vida profissional? O que isso tem há ver com a qualidade? Qualidade – Ética – Moral? (consulte: Código de Ética dos Engenheiros de Software).
Vamos supor
que aprendêssemos, antes de qualquer coisa, as normas de qualidade, em seguida
fossemos orientados a entender o domínio do negócio, passando em seguida para a
elicitação de requisitos, a análise orientada a objeto, a diagramação em UML,
ao desenho da arquitetura do sistema, o uso de ferramentas que automatizam os processos,
a documentação do sistema, enfim a entender e participar durante toda a vida
acadêmica de todo o ciclo de vida do sistema. Sem falar nas metodologias de
desenvolvimento como RUP, XP, SCRUM, ASD.
Voltando ao
tema, várias são as vantagens da implementação do sistema da gestão da
qualidade, destacando o aumento da credibilidade da organização frente ao
mercado consumidor, o aumento da competitividade do produto ou serviço no
mercado, a prevenção da ocorrência de deficiências e mitigação dos riscos
comerciais (reivindicações de garantia e responsabilidades pelo produto).
Outro
questionamento interessante: Qualidade se implanta?
Pensei em
iniciar este item como o seguinte título “Implantando a Qualidade”, mas preferi
fazer o questionamento “Qualidade se Implanta?”.
Qualidade
não deveria ser implantada, mas praticada, nas mais variadas atividades em
nossa vida profissional e também pessoal, quando a entendemos em sua essência,
ela passa a ser natural e não precisamos implantá-la porque trabalhamos sempre
com qualidade. É interessante o questionamento, pois se precisamos implantar a
qualidade é por que trabalhamos sem qualidade, ou seja, de forma errada ou
precária (sendo menos rigoroso, nível 1 CMM). A sistematização, a documentação
dos processos, e todas as atividades pertinentes à implantação da gestão da
qualidade seria a formalização do que se pratica.
Fatores que
motivam a organização a implantar um sistema de gestão da qualidade:
- É preciso a conscientização da alta administração, é o efeito chuveiro, só funciona de cima para baixo.
- Podemos afirmar que essa é a mais eficaz entre todas.
O interesse
por outros mercados no fornecimento de produtos e serviços, ou para órgãos ou
empresas governamentais nos levam por forças contratuais, a implantação dos
sistemas de gestão da qualidade. O tempo de maturação neste tipo de
conscientização é maior, mas normalmente se alcança por razões de sobrevivência
no mercado.
A agressiva
competitividade no mercado força a conscientização da alta administração, ou
seja, ou se adequa ao sistema de gestão da qualidade ou então morre.
Dançar
conforme a música, é o conceito do modismo, é a menos eficaz, normalmente não
se chega a alcançar o objetivo maior, que é a conscientização da alta
administração.
NBR ISO/IEC 9126
Começaremos
a partir deste post a versar sobre a NBR ISO/IEC 9126 e seus benefícios quando
aplicados de forma correta durante o ciclo de vida do sistema.
Segundo a
NBR ISO/IEC 9126 a especificação e avaliação da qualidade do produto de
software são fatores chave para garantir qualidade adequada. Isto pode ser
alcançado pela definição apropriada das características de qualidade, levando
em consideração o uso pretendido do produto de software. É importante que cada
característica relevante de qualidade do produto de software seja especificada
e avaliada utilizando, quando possível, métricas validadas ou amplamente
aceitas, como a APF.
A
especificação e validação passaram a ter como base o domínio do negócio e o
envolvimento do cliente. Nenhuma proposta comercial pode ser enviada para o
cliente sem a observação deste pré-requisito, o que reforça o transcrito na NBR
ISO/IEC 9126 “levando em consideração o uso pretendido do produto de software”,
ou seja, o domínio do negócio do cliente.
A NBR
ISO/IEC 9126 propõe o modelo de qualidade do produto de software, em duas
partes:
a) qualidade
interna e qualidade externa, e especifica 6 características.
b) qualidade
em uso, e especifica quatro características.
A
tabela abaixo mostra as seis características e suas variações em sub
características quando manifestadas externamente, o software é utilizado como
parte de um sistema computacional, e são resultantes de atributos internos do
software.
Características e subcaracterísticas proposta
pela NBR ISO/IEC 9126
Características
|
Sub características
|
Funcionalidade
|
|
Confiabilidade
|
|
Usabilidade
|
|
Eficiência
|
|
Manutenibilidade
|
|
Portabilidade
|
|
Para tornar
a norma eficiente e eficaz no seu uso e implantação, é preciso fazer valer o
seu uso dentro do processo de gestão de desenvolvimento de sistemas, fazendo
parte do conceito de “pronto” do produto. Para tornar o processo mais eficiente
e o uso efetivo da norma de qualidade, estrategicamente, a lista de
características e subcaracterísticas passaram a fazer parte, como ponto de
atenção, aos riscos do projeto de software em conjunto com os testes de
software. Passamos a encarar como riscos de projeto as funcionalidades quando
não estavam de acordo com o domínio do negócio, a confiabilidade, a
usabilidade, a eficiência, a manutenibilidade e a portabilidade.
Segundo a NBR ISO/IEC 9126 a qualidade do produto de software é especificada e avaliada em diferentes perspectivas pelos envolvidos com aquisição, requisitos, desenvolvimento, uso, avaliação, apoio, manutenção, garantia de qualidade e auditoria de software. Ela pode, por exemplo, ser utilizada por desenvolvedores, adquirentes, pessoal de garantia de qualidade e avaliadores independentes, particularmente os responsáveis por especificar e avaliar qualidade do produto de software. Exemplos de usos do modelo de qualidade definido nesta parte da NBR ISO/IEC 9126 são para:
Validar a
completitude de uma definição de requisitos;
- Identificar requisitos de software;
- Identificar objetivos de projeto de software;
- Identificar objetivos para teste de software;
- Identificar critérios para garantia de qualidade;
- Identificar critérios de aceitação para produtos finais de software.
Modelo de Qualidade para qualidade Externa e Interna, segunda NBR ISO/IEC 9126
“Esta seção
define o modelo de qualidade externa e interna. Ele categoriza os atributos de
qualidade de software em seis características (funcionalidade, confiabilidade,
usabilidade, eficiência, manutenibilidade e portabilidade) as quais são, por
sua vez, subdivididas em subcaracterísticas. As subcaracterísticas podem ser
medidas por meio de métricas externas e internas”. (NBR ISO/IEC 9126)
Uma
definição é atribuída para cada característica e para cada subcaracterísticas
do software que influencia a característica de qualidade. A capacidade do
software é determinada por um conjunto de atributos internos que podem ser
medidos, para cada característica e subcaracterísticas. Exemplos de métricas
internas são dados na ISO/IEC 9126-3.
As
características e subcaracterísticas podem ser medidas externamente pelo grau
da capacidade do sistema contendo o software. Exemplos de métricas externas são
dados na ISO/IEC 9126-2.
Funcionalidade segunda a Norma ISO 9126
“Capacidade
do produto de software de prover funções que atendam às necessidades explícitas
e implícitas, quando o software estiver sendo utilizado sob condições
especificadas”. (NBR ISO/IEC 9126)
A Norma ISO
define como funcionalidade do sistema as funções em uso que atendam aos
requisitos funcionais e não funcionais com base no domínio do negócio do
cliente, o que nos serviu como definição para elaboração do Backlog do Produto.
Adequação
“Capacidade
do produto de software de prover um conjunto apropriado de funções para tarefas
e objetivos do usuário especificados”. (NBR ISO/IEC 9126)
A Norma ISO
define como adequação as funcionalidades que atendam os objetivos do usuário.
Esta orientação contribui para elaboração da Sprint durante o seu planejamento.
Acurácia
“Capacidade
do produto de software de prover, com o grau de precisão necessário, resultados
ou efeitos corretos ou conforme acordados”. (NBR ISO/IEC 9126)
A Norma ISO
define como acurácia o grau de precisão e resultados corretos, atingidos com
base no domínio do negócio. A acurácia passou a fazer parte a cada entrega de
release, contribuindo para os três valores do Scrum: transparência, inspeção e
adaptação.
Interoperabilidade
“Capacidade
do produto de software de interagir com um ou mais sistemas especificados”.
(NBR ISO/IEC 9126)
A Norma
define como interoperabilidade a capacidade integração do sistema em desenvolvimento
com outros sistemas no ambiente em que ele irá operar, englobando sistemas
operacionais e sistemas que interagem com ele, porém fora da fronteira da
aplicação em desenvolvimento, mas com possiblidade de fornecimento de
informações.
Segurança de acesso
“Capacidade
do produto de software de proteger informações e dados, de forma que pessoas ou
sistemas não autorizados não possam lê-los nem modificá-los e que não seja
negado o acesso às pessoas ou sistemas autorizados”. (NBR ISO/IEC 9126)
Conformidade relacionada à
funcionalidade
“Capacidade
do produto de software de estar de acordo com normas, convenções ou
regulamentações previstas em leis e prescrições similares relacionadas à
funcionalidade”. (NBR ISO/IEC 9126)
Faz parte do
entendimento do domínio do negócio a imersão in totum nas peculiaridades do
negócio do cliente. A não observância da Norma, a empresa desenvolvedora, corre
o risco infringir a legislação que regulamenta o negócio do cliente.
Confiabilidade
segundo a Norma ISO 9126
“Capacidade do produto de software de manter um nível de desempenho especificado, quando usado em condições especificadas”. (NBR ISO/IEC 9126)
A Norma define como confiabilidade ao desempenho do sistema em produção.
Maturidade
“Capacidade do produto de software de evitar falhas decorrentes de defeitos no software”. (NBR ISO/IEC 9126)
A Norma
define como maturidade o nível de erros, defeitos e falhas identificados no
ciclo de vida de desenvolvimento. Os erros estão ligados a usabilidade do
sistema, pois são gerados pelas ações do usuário na operação do sistema. Os
defeitos do sistema estão ligados ao não entendimento do domínio do negócio, a
má qualidade da informação ou mesmo a sua omissão. As falhas segundo o padrão
IEEE ocorrem quando um programa não se comporta conforme o esperado ou
apresenta resultados diferentes do planejado. (1983) A observância destes
fatores contribuem para a qualidade e maturidade do sistema.
Tolerância a falhas
Tolerância a falhas
“Capacidade
do produto de software de manter um nível de desempenho especificado em casos
de defeito no software ou de violação de sua interface especificada”. (NBR
ISO/IEC 9126)
A Norma
define como tolerância a falhas de nível de desempenho especificado em casos de
defeitos no software ou da violação da sua interface. O Scrum contribui
para a tolerância a falhas do sistema a cada iteração na dinâmica da
arquitetura emergente do sistema, de acordo com as especificações, com base no
domínio do negócio.
Recuperabilidade
“Capacidade do produto de software de restabelecer seu nível de desempenho especificado e recuperar os dados diretamente afetados no caso de uma falha”. (NBR ISO/IEC 9126)
Recuperabilidade
“Capacidade do produto de software de restabelecer seu nível de desempenho especificado e recuperar os dados diretamente afetados no caso de uma falha”. (NBR ISO/IEC 9126)
A Norma define como recuperabilidade o reestabelecimento do desempenho e a garantia da integridade dos dados gerados na utilização do sistema.
Conformidade relacionada à confiabilidade
Capacidade
do produto de software de estar de acordo com normas, convenções ou
regulamentações relacionadas à confiabilidade. (NBR ISO/IEC 9126)
Usabilidade
segundo a Norma ISO 9126
“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)
O
envolvimento do Dono do Produto possibilita que o domínio do negócio seja
refletido no sistema em desenvolvimento, garantindo pela coautoria do
especialista a usabilidade do sistema.
Inteligibilidade
“Capacidade
do produto de software de possibilitar ao usuário compreender se o software é
apropriado e como ele pode ser usado para tarefas e condições de uso
específicas”. (NBR ISO/IEC 9126)
Item da
norma também garantida com o envolvimento do especialista do negócio.
Apreensibilidade
“Capacidade
do produto de software de possibilitar ao usuário aprender sua aplicação”. (NBR
ISO/IEC 9126)
A facilidade
de uso e apreensibilidade do sistema também é garantida pela participação do
Dono do Produto no ciclo de vida de desenvolvimento do sistema, refletindo na
sistematização o modus operandos do usuário final, tornando o sistema familiar
e fácil de operar.
Operacionalidade
“Capacidade
do produto de software de possibilitar ao usuário operá-lo e controlá-lo”. (NBR
ISO/IEC 9126)
O
envolvimento dos stakeholders torna mais fácil a adequação do sistema a este item
da Norma, garantindo a facilidade de operação e controle do sistema.
Atratividade
“Capacidade
do produto de software de ser atraente ao usuário”. (NBR ISO/IEC 9126)
Conformidade
relacionada à usabilidade
“Capacidade
do produto de software de estar de acordo com normas, convenções, guias de
estilo ou regulamentações relacionadas à usabilidade”. (NBR ISO/IEC 9126)
Eficiência
segundo a Norma ISO 9126
“Capacidade
do produto de software de apresentar desempenho apropriado, relativo à
quantidade de recursos usados, sob condições especificadas”.
Comportamento
em relação ao tempo
“Capacidade
do produto de software de fornecer tempos de resposta e de processamento, além
de taxas de transferência, apropriados, quando o software executa suas funções,
sob condições estabelecidas”.
Utilização de recursos
“Capacidade
do produto de software de usar tipos e quantidades apropriados de recursos,
quando o software executa suas funções sob condições estabelecidas”.
Conformidade relacionada à eficiência.
“Capacidade
do produto de software de estar de acordo com normas e convenções relacionadas
à eficiência".
Manutenibilidade
segundo a Norma ISO 9126
“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)
Analisabilidade
“Capacidade
do produto de software de permitir o diagnóstico de deficiências ou causas de
falhas no software, ou a identificação de partes a serem modificadas”. (NBR
ISO/IEC 9126)
Modificabilidade
“Capacidade
do produto de software de permitir que uma modificação especificada seja
implementada”. (NBR ISO/IEC 9126)
Estabilidade
“Capacidade
do produto de software de evitar efeitos inesperados decorrentes de
modificações no software”. (NBR ISO/IEC 9126)
Testabilidade
“Capacidade
do produto de software de permitir que o software, quando modificado, seja
validado”. (NBR ISO/IEC 9126)
Conformidade relacionada à Manutenibilidade
Capacidade
do produto de software de estar de acordo com normas ou convenções relacionadas
à manutenibilidade.
Portabilidade
segundo a Norma ISO 9126
“Capacidade
do produto de software de ser transferido de um ambiente para outro”. (NBR
ISO/IEC 9126)
A
arquitetura emergente no framework Scrum garante este item da Norma ISO.
Adaptabilidade
“Capacidade
do produto de software de ser adaptado para diferentes ambientes especificados,
sem necessidade de aplicação de outras ações ou meios além daqueles fornecidos
para essa finalidade pelo software considerado”. (NBR ISO/IEC 9126)
Capacidade
para ser instalado
“Capacidade
do produto de software para ser instalado em um ambiente especificado”. (NBR
ISO/IEC 9126)
Coexistência
“Capacidade
do produto de software de coexistir com outros produtos de software
independentes, em um ambiente comum, compartilhando recursos comuns”. (NBR
ISO/IEC 9126)
Capacidade
para substituir
“Capacidade
do produto de software de ser usado em substituição a outro produto de software
especificado, com o mesmo propósito e no mesmo ambiente”. (NBR ISO/IEC 9126)
Conformidade
relacionada à portabilidade
Capacidade
do produto de software de estar de acordo com normas ou convenções relacionadas
à portabilidade.
Modelo de
Qualidade para Qualidade em Uso segundo a Norma ISO 9126
Esta seção
define o modelo de qualidade para qualidade em uso. Os atributos de qualidade
em uso são categorizados em quatro características: eficácia, produtividade,
segurança e satisfação.
Qualidade em
uso é a visão da qualidade sob a perspectiva do usuário. A obtenção de
qualidade em uso é dependente da obtenção da necessária qualidade externa, a
qual, por sua vez, é dependente da obtenção da necessária qualidade interna.
Normalmente, são necessárias medidas em todos os três níveis, pois atender aos
critérios para medidas internas em geral não é suficiente para garantir o
atendimento aos critérios para medidas externas, e atender aos critérios para
medidas externas de sub-características em geral não é suficiente para garantir
o atendimento aos critérios para qualidade em uso.
Qualidade
em uso
“Capacidade
do produto de software de permitir que usuários especificados atinjam metas
especificadas com eficácia, produtividade, segurança e satisfação em contextos
de uso especificados”. (NBR ISO/IEC 9126)
Eficácia
“Capacidade do produto de software de permitir que usuários atinjam metas especificadas com acurácia e completitude, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Produtividade
“Capacidade do produto de software de permitir que seus usuários empreguem quantidade apropriada de recursos em relação à eficácia obtida, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Segurança
“Capacidade do produto de software de apresentar níveis aceitáveis de riscos de danos a pessoas, negócios, software, propriedades ou ao ambiente, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Satisfação
“Capacidade do produto de software de satisfazer usuários, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Subcaracterísticas podem ser medidas por métricas internas ou por métricas externas.
A correlação entre atributos internos e medidas externas nunca é perfeita e o efeito que um dado atributo interno tem sobre uma medida externa associada será determinado pela experiência e dependerá do contexto específico no qual o software será usado.
Do mesmo modo, propriedades externas (tais como: adequação, acurácia, tolerância a falhas ou comportamento em relação ao tempo) influenciarão a qualidade observada. Uma falha na qualidade em uso (por exemplo, o usuário não consegue terminar uma tarefa) pode ser relacionada a atributos de qualidade externa (por exemplo, adequação ou operabilidade) e a atributos internos associados que precisam ser modificados.
“Capacidade do produto de software de permitir que usuários atinjam metas especificadas com acurácia e completitude, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Produtividade
“Capacidade do produto de software de permitir que seus usuários empreguem quantidade apropriada de recursos em relação à eficácia obtida, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Segurança
“Capacidade do produto de software de apresentar níveis aceitáveis de riscos de danos a pessoas, negócios, software, propriedades ou ao ambiente, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Satisfação
“Capacidade do produto de software de satisfazer usuários, em um contexto de uso especificado”. (NBR ISO/IEC 9126)
Métricas de software
Atributos Externos e Internos
Constata-se que os níveis de certos atributos internos influenciam os níveis de alguns atributos externos, de modo que há tanto um aspecto externo quanto um aspecto interno na maioria das características. Por exemplo, a confiabilidade pode ser medida, externamente, observando-se o número de falhas, num dado período de tempo de execução, durante um experimento de uso do software e, internamente, inspecionando as especificações detalhadas e o código-fonte para avaliar o nível de tolerância a falhas. Os atributos internos são tidos como indicadores dos atributos externos.
Um atributo interno pode influenciar uma ou mais características e uma
característica pode ser influenciada por mais de um atributo (ver figura
A.1). Neste modelo, todos os atributos de qualidade do produto de
software são classificados numa estrutura hierárquica, em árvore, de
características e subcaracterísticas. O nível mais alto desta estrutura
consiste em características de qualidade e o nível mais baixo consiste
em atributos de qualidade de software. A hierarquia não é perfeita, pois
alguns atributos podem contribuir para mais de uma subcaracterística.Atributos Externos e Internos
Constata-se que os níveis de certos atributos internos influenciam os níveis de alguns atributos externos, de modo que há tanto um aspecto externo quanto um aspecto interno na maioria das características. Por exemplo, a confiabilidade pode ser medida, externamente, observando-se o número de falhas, num dado período de tempo de execução, durante um experimento de uso do software e, internamente, inspecionando as especificações detalhadas e o código-fonte para avaliar o nível de tolerância a falhas. Os atributos internos são tidos como indicadores dos atributos externos.
Fonte: NBR ISO/IEC 9126.
Subcaracterísticas podem ser medidas por métricas internas ou por métricas externas.
A correlação entre atributos internos e medidas externas nunca é perfeita e o efeito que um dado atributo interno tem sobre uma medida externa associada será determinado pela experiência e dependerá do contexto específico no qual o software será usado.
Do mesmo modo, propriedades externas (tais como: adequação, acurácia, tolerância a falhas ou comportamento em relação ao tempo) influenciarão a qualidade observada. Uma falha na qualidade em uso (por exemplo, o usuário não consegue terminar uma tarefa) pode ser relacionada a atributos de qualidade externa (por exemplo, adequação ou operabilidade) e a atributos internos associados que precisam ser modificados.
Métricas internas
Métricas
internas podem ser aplicadas a um produto de software não executável, tais como
uma especificação ou código fonte, respectivamente, durante o projeto e a
codificação. Convém que, no desenvolvimento de um produto de software, os
produtos intermediários sejam avaliados utilizando-se métricas internas, as
quais medem propriedades intrínsecas, incluindo aquelas que podem ser derivadas
de um comportamento simulado. O propósito básico destas métricas internas é
assegurar que a qualidade externa e a qualidade em uso requerida sejam
alcançadas; exemplos são encontrados na ISO/IEC 9126-3. Métricas internas
oferecem a usuários, avaliadores, executores de teste e desenvolvedores os
benefícios de poderem avaliar a qualidade do produto de software e considerar questões
relativas à qualidade bem antes do produto de software se tornar executável.
Métricas
internas medem atributos internos pela análise das propriedades estáticas dos
produtos de software intermediários ou preparados para entrega. Da mesma forma,
as métricas internas podem ser indicadoras de atributos externos.
Métricas Externas
Utilizam medidas de um produto de software derivadas de medidas do comportamento do sistema do qual o software é uma parte, através de teste, operação e observação do software executável ou do sistema. Antes de adquirir ou utilizar um produto de software, convém que ele seja avaliado utilizando-se métricas baseadas nos objetivos de negócio e relacionadas ao uso, exploração e gestão do produto num ambiente técnico e organizacional especificado.
Nenhum comentário :
Postar um comentário