Qual o caminho a seguir quando um sistema não cumpre as funções necessárias?

A demanda por qualidade de software tem motivado a comunidade de software para o desenvolvimento de modelos para a qualidade. Um software de qualidade � f�cil de usar, funciona corretamente, � de f�cil manuten��o e mant�m a integridade dos dados para evitar poss�veis falhas, fora ou n�o, do seu controle. Para o desespero de seus usu�rios as falhas se apresentam sem avisos pr�vios, gerando um impacto econ�mico e social muitas vezes irremedi�vel.

Os custos resultantes de defeitos ou erros provocados por falha de softwares, tanto para as empresas de softwares como para usu�rios, poderiam ser catastr�ficos, bancos poderiam perder milh�es de d�lares e clientes veriam seus dinheiros sumirem. Em 1991 aconteceu uma pane no sistema telef�nico da Calif�rnia e de toda a costa, motivo? A modifica��o de apenas tr�s das milh�es de linhas de c�digo introduziu um bug. Este � um exemplo que demonstra de quanto dependemos das maquinas e de seus softwares. A tecnologia da Informa��o e comunica��o transversa lizam cada vez mais todos os n�veis das atividades humanas, tornando assim a import�ncia da qualidade de software.

A qualidade � hoje o grande motivador em todas as �reas de atividade humana, todos querem oferecer e receber produtos e servi�os com qualidades.

Um software de qualidade oferece seguran�a de pessoas, disponibiliza servi�os essenciais (home banking, telefonia, etc), gera competitividade das empresas, etc. A qualidade de um software deve estar em conformidade com especifica��es e padr�es de desenvolvimento, h� necessidades expl�citas e objetivos propostos por aquelas pessoas que produzem software, garantindo que, tanto o produto do software quanto um bom processo de desenvolvimento, atinjam n�veis de qualidade mantendo sempre as necessidades dos usu�rios.

O que � qualidade?

Segundo Herman G. Weinberg �A qualidade � relativa. O que � qualidade para uma pessoa pode ser falta de qualidade para outra.

A defini��o de qualidade pode parecer simples e at� trivial. Contudo se observada mais detalhadamente pode se perceber sua complexidade.

Um dos principais desafios enfrentados pelos profissionais de qualidade e teste de software est� em definir o que � qualidade no contexto do produto atual. Analisando ent�o as vari�veis dispon�veis para o caso em concreto, tais como: or�amento, tempo e prazo.

Visando estabelecer uma vis�o comum entre todos os membros da equipe e seus usu�rios � necess�rio que sejam vencidas as dificuldades de comunica��o entre os transmissores e os receptores da mensagem.

O que � qualidade de software?

Para ajudar nessa quest�o, a International Organization Standardization - ISO e a International Electrotechnical Comission-IEC, que s�o organismos normalizadores com import�ncia internacional reconhecida no setor de software, se uniram para editar normas internacionais conjuntas. A norma internacional ISO/IEC, define qualidade de software como A totalidade de caracter�sticas de um produto de software que lhe confere a capacidade de satisfazer necessidades expl�citas e impl�citas.

Necessidades expl�citas s�o aquelas definidas no requisito proposto. Esses requisitos devem definir as condi��es em que o produto deve ser utilizado e dizer seus objetivos, fun��es e desempenho esperado. S�o, portanto, fatores relativos � qualidade do processo do desenvolvimento do produto que s�o percebidos somente pelas pessoas que trabalharam no seu desenvolvimento.

Necessidades impl�citas s�o aquelas que, embora n�o expressas no documento do produtor, s�o necess�rias para o usu�rio. Est�o englobados em esta classe os requisitos que n�o precisam ser declarados por serem �bvios, mas que pela gravidade de suas consequ�ncias devem ser levados em considera��o (ex: mesmo em condi��es n�o previstas de erro ou m� opera��o, um sistema de administra��o hospitalar n�o pode provocar a morte de pacientes).

Retenha talentos e aumente a produtividade dos seus programadores

Saiba mais DevMedia Plataforma empresarial

As necessidades impl�citas tamb�m s�o chamadas de qualidade em uso e devem permitir aos usu�rios atingir metas com efetividade, produtividade, seguran�a e satisfa��o em seu uso di�rio.

Sobre a ISO e IEC: a International Organization Standardization - ISO � uma organiza��o n�o-governamental, estabelecida em 1947, e que coordena o trabalho de �rg�os de 127 pa�ses membros para promover a padroniza��o de normas t�cnicas em �mbito mundial. A IEC, fundada em 1906, conta com a participa��o de mais de 50 pa�ses e publica normas internacionais relacionadas com eletricidade, eletr�nica e �reas relacionadas.

Qualidade

Est� claro que produzir software de qualidade � uma meta essencial e b�sica da Engenharia de Software, que oferece m�todos, t�cnicas e ferramentas. O necess�rio mesmo � que o software seja confi�vel, eficaz e siga os padr�es exigidos pelo contexto.

Freeman �[Freeman 87] apresenta uma distin��o entre qualidade b�sica e qualidade extra.

Em qualidade b�sica ele lista: funcionalidade, confiabilidade, facilidade de uso, economia e seguran�a de uso. Em qualidade extra ele lista: flexibilidade facilidade de reparo, adaptabilidade, facilidade de entendimento, boa documenta��o e facilidade de adicionar melhorias. Essas prioridades v�o depender muito de cada caso e do custo de cada uma dessas qualidades.

A sociedade pressiona o setor de software para que a caracter�stica qualidade seja preponderante.

Qualidade e Requisitos

Segundo Crosby [1992] �A qualidade � a conformidade aos requisitos�. Esta defini��o nos � bastante interessante, pois evidencia qual o caminho a seguir para julgar a qualidade de um software.

Partindo deste pressuposto � necess�rio considerar tr�s fatores para a correta verifica��o da conformidade aos requisitos proposta por Crosby.

Defini��o de Conformidade

Para a correta verifica��o da qualidade torna-se necess�rio uma pr�via defini��o das margens de precis�o dos resultados esperados. Tornando poss�vel a medi��o em graus de qualidade do produto final.

Metodologia de Observa��o dos Resultados

� necess�rio ter em mente que a medida observada pode conter margens de erros. Existem diversos fatores que podem corromper os dados utilizados na observa��o.

Conciliar os interesses dos diversos Stakeholders

A qualidade est� intimamente ligada aos requisitos e estes requisitos s�o definidos por algu�m, logo a qualidade depende das escolhas que este algu�m fez.

Muitos desenvolvedores de software devem conciliar, resolver ou minimizar os problemas organizacionais do cliente que contratou o desenvolvimento do produto.

Requisitos de software

Os requisitos do software s�o as descri��es sobre o comportamento, as funcionalidades e especifica��es do software.

Todos os requisitos do software devem ser registrados no documento de requisitos que deve ser conciso e consistente para fornecer informa��es claras ao leitor.

Para a correta especifica��o de requisitos � necess�rio que os mesmos sejam precisos, completos, consistentes e tenham controle de rastreabilidade e Modificabilidade.

Seguindo a divis�o tradicional os requisitos podem ser classificados em requisitos funcionais e n�o-Funcionais.

Guia Completo: Levantamento de Requisitos

Qualidade de software na vis�o do usu�rio

Os desenvolvedores de software n�o podem menosprezar o papel do usu�rio/cliente, n�o podendo se esquecer das necessidades impl�citas do uso.

Cada cliente pode ter desejos e necessidades diferentes em rela��o ao mesmo tipo de produto.

A pergunta � qual o interesse dos usu�rios de software?

Os usu�rios est�o mais interessados no uso do software, na sua funcionalidade, no desempenho e nos efeitos que o uso possa produzir na sua empresa, organiza��o, etc. O cliente valoriza que o software responda �s suas necessidades. A qualidade interna tem que responder �s quest�es externas que o cliente venha a questionar. Por exemplo:

  • As fun��es X est�o dispon�veis e s�o executadas eficientemente?
  • Funciona corretamente em imprevistos, como, por exemplo, efetuar d�bito em uma conta com saldo negativo?
  • O software � seguro, ou seja, evita que pessoas ou sistemas n�o autorizados tenham acesso aos dados para modificar?
  • � f�cil de usar ou requer muito treinamento?
  • � f�cil de integrar com outros sistemas existentes?
  • Aceita trabalhar com arquivos de outros sistemas ou enviar dados para outros sistemas?

� importante considerar que o cliente � quem est� � frente. Ele tem poder de participa��o no processo externo do seu produto. Hoje o mercado � mais competitivo, aumentando a oferta de produtos, e o cliente est� mais consciente do seu poder. Esta mudan�a no mercado, maior globaliza��o, leva a exigir melhor qualidade de produtos e processos para atender a esse novo cliente.

Qualidade de processo e produto: � poss�vel medir a qualidade de software?

O controle de qualidade surge ent�o como uma necessidade: inicialmente s�o feitas verifica��es, logo em seguida adotam-se t�cnicas e crit�rios bem definidos, em alguns casos chega-se a verifica��o de 100% dos produtos para elimina��o daqueles produzidos com defeitos; certifica-se a qualidade do produto com um custo bem alto. Como alternativa busca-se melhorar o processo de produ��o para se adquirir maior confian�a na qualidade do produto final.

A engenharia de software tem como objetivo a melhoria da qualidade do seu produto com propostas e modelos de desenvolvimento, m�todos e t�cnicas para aplica��o nas diversas fases de desenvolvimento. � importante a avalia��o da qualidade de software nas duas vis�es, processo e produto, � aqui que se direciona o esfor�o.

O principal problema com que se defronta a engenharia de software � a dificuldade de se medir a qualidade. H� de se considerar que o software n�o se desgasta, por tanto, tal m�todo de medi��o de qualidade n�o pode ser aproveitado.

A ISO/IEC fornece um modelo de prop�sito geral (Tabela 1) o qual define seis amplas categorias de caracter�sticas de qualidade de software que s�o subdivididas em sub caracter�sticas.

O modelo proposto pela ISO/IEC 9126(NBR13596) tem como objetivo servir de refer�ncia b�sica na avalia��o de produto de software.

Caracter�sticas Sub-Caracter�sticas Significado
Funcionalidade: O conjunto de fun��es satisfaz as necessidades expl�citas e impl�citas para a finalidade a que se destina o produto? Adequa��o Prop�e-se a fazer o que � apropriado?
Acur�cia Gera resultados corretos ou conforme acordados?
Interoperabilidade � capaz de interagir com os sistemas especificados?
Seguran�a de acesso Evita acesso n�o autorizado, acidental ou deliberado a programas de dados?
Conformidade Est� de acordo com normas e conven��es previstas em leis e descri��es similares?
Usabilidade: � f�cil usar o software? Inteligibilidade � f�cil entender os conceitos utilizados?
Apreensibilidade � f�cil apreender a usar?
Operacionalidade � f�cil de operar e controlar a opera��o?
Efici�ncia: Os recursos e os tempos utilizados s�o compat�veis com o n�vel de desempenho requerido para o produto? Comportamento em rela��o aos recursos Quanto recurso utiliza?
Comportamento em rela��o ao tempo Qual � o tempo de resposta e de processamento?
Manutenibilidade: H� facilidade para corre��es, atualiza��es e altera��es? Analisibilidade � f�cil encontrar uma falha quando ocorre?
Modificabilidade � f�cil modificar e remover defeitos?
Estabilidade H� grandes riscos de bugs quando se faz altera��es?
Estabilidade � f�cil adaptar a outros ambientes sem aplicar outras a��es ou meios al�m dos fornecidos para esta finalidade no software considerado?
Portabilidade: � poss�vel utilizar o produto em diversas plataformas com pequeno esfor�o de adapta��o? Adaptabilidade � f�cil adaptar a outros ambientes sem aplicar outras a��es ou meios al�m dos fornecidos para esta finalidade no software considerado?
Capacidade para ser instalado � f�cil instalar em outros ambientes?
Capacidade para substituir � f�cil substituir por outro software?
Conformidade Est� de acordo com padr�es ou conven��es de portabilidade?

Tabela 1. Modelo proposto pela ISO/IEC 9126(NBR13596)

Considera��es pr�ticas para garantir a Qualidade do Produto

Para se garantir a qualidade de um produto durante seu desenvolvimento existe um conjunto de m�todos e t�cnicas que devem ser implementadas durante todo o processo. Nesta se��o, consta uma breve defini��o de algumas dessas atividades.

Identifica��o de Defeitos

Conhecer os conceitos de erro, defeito e falha � o requisito b�sico para se construir um processo de garantia de qualidade. � preciso saber identificar o problema, antes de investigar sua proveni�ncia e, desta forma, saber corrigi-lo.

  • Erro: Trata-se de um engano de um indiv�duo.
  • Defeito: Defici�ncia mec�nica ou algor�tmica que se ativada pode levar a uma falha. Na tabela 2 h� a defini��o dos tipos de defeitos encontrados.
  • Falha: Evento not�vel onde o sistema viola suas especifica��es.

Quanto antes a presen�a do defeito for revelada, menor o custo de corre��o do defeito e maior a probabilidade de corrigi-lo corretamente. A solu��o � introduzir atividades de VV&T ao longo de todo o ciclo de desenvolvimento.

Informa��o Estranha Informa��o desnecess�ria.
Fato Incorreto Informa��o que n�o � verdadeira para as condi��es especificadas.
Inconsist�ncia Informa��es conflitantes
Ambiguidade Informa��o pass�vel de ter m�ltiplas interpreta��es
Omiss�o Informa��o necess�ria n�o inclu�da

Tabela 2. Tipos de Defeitos

Valida��o, Verifica��o e Testes (VV&T)

As atividades de VV&T atuam na garantia de qualidade, assegurando que o software cumpra as especifica��es definidas e atenda �s necessidades de seus usu�rios. Defini��es:

  • Valida��o: Avalia um sistema ou componente para determinar se ele satisfaz os requisitos para ele especificados. �Estamos construindo o produto certo?�. O software deve atender �s necessidades dos usu�rios.
  • Verifica��o: Avalia um sistema ou componente para determinar se os produtos de uma dada atividade de desenvolvimento satisfazem as condi��es impostas no in�cio desta atividade. �Estamos construindo certo o produto?� Os artefatos constru�dos devem estar de acordo com a especifica��o do software.

Os principais m�todos de Valida��o e Verifica��o s�o:

  • Est�tica: Revis�es de Software (Revis�es aos Pares, Inspe��es de Software, entre outros). Denomina-se est�tica, pois n�o envolve a execu��o do produto, mas apenas leitura de artefatos, como c�digo.
  • Din�mica: Testes de Software (Testes de unidade, de integra��o, do software, entre outros).

Revis�es de Software

S�o processos ou atividades para leitura de um artefato de software visando assegurar que ele cumpre sua especifica��o e atende �s necessidades de seus usu�rios. Tem por objetivo realizar valida��o e verifica��o est�tica de artefatos de software. Pode ser aplicada a qualquer artefato produzido ao longo do processo de desenvolvimento de software.

Tipos de Revis�es

  • Inspe��es de Software: mais focadas em encontrar defeitos.
  • Walkthroughs: s�o mais apropriados para atividades de brainstorming, para explorar alternativas de projeto e resolu��o de problemas.

Testes de Software

Processo de executar um programa ou sistema com o objetivo de revelar a presen�a de erros; ou, falhando nesse objetivo, aumentar a confian�a sobre o programa. Envolve todo um processo de planejamento, fases de teste, etc., que necessitaria de um outro artigo para aprofundar este assunto.

Conclus�o

Os desenvolvedores fazem os softwares, mas os clientes s�o os que v�o us�-los. Por isso, h� a necessidade urgente de sistematizar formas de evitar os custos elevados consequente dos defeitos dos softwares e dos erros n�o intencionais dos usu�rios. Isto s� ser� poss�vel se forem priorizadas algumas caracter�sticas de qualidade de software: usabilidade, confiabilidade, funcionalidade e manutenibilidade. Sendo esses, os requisitos essenciais do produto de software exigidos pelos compradores e atendidos pelos vendedores. Assim veremos resultados positivos tendo softwares de qualidade e mais �teis.

No Brasil ainda existem empresas de software que n�o utilizam t�cnicas para melhorar a qualidade de seus produtos, por isso aquelas empresas que desenvolvem software de qualidade s�o mais competitivas, o que favorece a abertura de mercados externos para os softwares brasileiros e beneficiando o mercado interno que acabar� por exigir software melhores e a menor pre�o.

N�o resta a menor d�vida que ainda restam muitos esfor�os em melhoria da qualidade de software. Por isso, � fundamental ter seu foco n�o apenas no produto (fazer software melhor), mais principalmente no processo (fazer melhor o software) e no cliente (fazer software mais f�cil de usar).

Saiu na DevMedia!

  • Entre de cabe�a no REST: Voc� j� deve ter notado que o prazo para o lan�amento de uma aplica��o nem sempre corresponde a complexidade dos seus requisitos. Por esse motivo, � cada vez mais importante que o desenvolvedor saiba como criar e consumir APIs. Veja como nesta s�rie.

Bibliografia

  • � Freeman, P. A., (1987) �Software Perspectives: The System is the Message�, Addison-Wesley, Reading, Massachusetts.
  • Koscianski,Andr�,VILLAS-BOAS, Andr�, R�GO,Claudete M., "et al" Guia para Utiliza��o das Normas sobre Avalia��o de Qualidade de Produto de Software - ISO/IEC e ISO/IEC.
  • Kalinowski, Marcos (2006), �Qualidade de Software�. Pires, Almir, �Qualidade de Software�.
  • ISO/IEC DIS 14598-Information Technology Evaluation of software product Part5:Process for evaluators.
  • Silva, G. Nelma, �Qualidade de software - Uma necessidade�.
  • Sampaio do Prado, Julio, �Qualidade do Software com base em Requisitos�
  • Rocha, Maldonado, Weber.(2001)� Qualidade de software: Teoria e Pr�tica�
  • Tsukumo, A.,Rego,C. Salviano,C., Gl�ucia, F., Bento de Carvalho,M. Colombo,R. �Qualidade de Software: Vis�es de Produtos e Processos de Software� �rea de Tecnologia para Avalia��o de Qualidade de Software: Funda��o Centro tecnol�gico para Inform�tica.

Saiba mais sobre Engenharia de Software ;)

  • Guias de Engenharia de Software: Encontre aqui os Guias de estudo sobre os principais temas da Engenharia de Software. De metodologias �geis a testes, de requisitos a gest�o de projetos!
  • Engenharia de Software para programadores: Ter boas no��es sobre engenharia de Software pode alavancar muito sua carreira e a sua forma de programar. Descubra nesse guia tudo o que um programador precisa saber sobre a ci�ncia que existe por tr�s dos c�digos.
  • Requisitos, Modelagem e UML: Neste guia voc� encontrar� o conte�do que precisa para saber como eliciar requisitos, gerenci�-los e modelar o software com as principais t�cnicas do mercado. Abaixo, confira os posts que te auxiliar�o ao longo desse aprendizado.
  • Guia de Scrum: Com o aumento das exig�ncias dos clientes e prazos cada vez mais curtos, encontrar op��es para possibilitar o projeto, implementa��o e implanta��o de um sistema com mais qualidade e em menos tempo � fundamental. Veja a Guia Completa sobre Scrum!

Confira outros conte�dos:

Plano PRO

  • Forma��o FullStack completa
  • Projetos reais
  • Professores online
  • Exerc�cios gamificados
  • Certificado de autoridade

Qual o caminho a seguir quando um sistema não cumpre as funções necessárias?

Por Devmedia Em 2008

O que fazer quando um sistema não cumpre as funções necessárias?

Quando um sistema não cumpre com as suas funções necessárias é preciso avaliar o porquê disso, fazendo então as avaliações necessárias para tal, reavaliando as etapas anteriores, e colocando em prática as adaptações das alterações, caso não atenda realmente o objetivo deve procurar um outro que atenda todos os ...

Quais são os 5 componentes de um sistema de informação?

Um sistema de informação é composto por cinco componentes, que são: recursos de software, recursos de hardware, recursos de rede, recursos de dados e recursos humanos.

Quais são os três componentes básicos dos sistemas de informação?

Um sistema possui três componentes ou funções básicos em interação: Entrada - envolve a captação e reunião de elementos que entram no sistema; • Processamento - processos de transformação que convertem insumo (entrada) em produto; • Saída - transferência de elementos produzidos na transformação até seu destino final.

O que significa a etapa saída nos sistemas de informações?

A saída envolve a etapa na qual a informação propriamente dita é emitida, é a etapa que realmente interessa ao usuário do sistema. A realimentação (feedback) é uma saída usada para fazer ajustes ou modificações nas atividades de entrada ou no processamento.