Baixe o app para aproveitar ainda mais
Prévia do material em texto
TRABALHO I – QUALIDADE DE SOFTWARE Brasília - DF 2013 Pró-Reitoria de Graduação Curso Gestão da Tecnologia da Informação Disciplina – Qualidade de Software Autor: Johnathan Lemes UC-10064887 Qualidade de Software Introdução Esse trabalho tem o intuito de explicar os aspectos da qualidade de software, produto de software, processo de software e das 11 características importantes de qualidade de software do modelo de Mc call. 1.1.Qualidade Qualidade é um conceito relativo. Diversos aspectos são levados em conta. Qualidade está fortemente relacionada à conformidade com os requisitos. Segundo a NBR ISO 8402, o conceito de qualidade é "A totalidade das características de uma entidade que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas". As necessidades explícitas são aquelas expressas na definição formal de requisitos propostos pelo cliente. Esses requisitos definem as condições em que o produto ou serviço devem ser utilizados bem como seus objetivos, funções e o desempenho esperado. Já as necessidades implícitas são aquelas que, embora não expressas pelo cliente nos documentos de requisitos, são necessárias para o usuário. Estão incluídos nessas classes tanto os requisitos que não precisam ser declarados por serem óbvios como aqueles requisitos que não são percebidos como necessários no momento que o produto foi desenvolvido, mas que pela gravidade de suas consequências devem ser atendidos. Exemplo: Um exemplo de qualidade é uma Lamborghini, que é construída artesanalmente por técnicos altamente especializados seguindo seus padrões e modelos de processo. 1.2 Qualidade de Software Podemos afirmar que a qualidade de software é uma área de conhecimento em engenharia de software e seu objetivo é garantir a qualidade do software através da definição e normatização de processos de desenvolvimento. Segundo [Pressman95] Uma definição de qualidade de software que se encaixa é: “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” Pressman (2005) faz as seguintes colocações sobre qualidade de software: "Definir explicitamente o termo qualidade de software, quando o mesmo é dito";(PRESSMAN, 2005, p. 193) "Criar um conjunto de atividades que irão ajudar a garantir que cada produto de trabalho da engenharia de software exiba alta qualidade"; (PRESSMAN, 2005, p. 193) "Realizar atividades de segurança da qualidade em cada projeto de software";(PRESSMAN, 2005, p. 193) "Usar métricas para desenvolver estratégias para a melhoria de processo de software e, como consequência, a qualidade no produto final"; (PRESSMAN, 2005, p. 193) Exemplo: Um exemplo de software faltando algumas características de qualidade e o graduação on-line da católica desenvolvido pela totvs, nele falta umas das características mais relevantes que é a usabilidade, ele e um pouco complicado de se entender você precisa passar por várias etapas para poder navegar nele, já no antigo bastava colocar sua matricula e senha, e já navegaria no graduação. 1.3. Qualidade do produto de software Existem várias propostas de definição para qualidade de produto. Crosby (1979) afirma: “Qualidade é conformidade com os requisitos”. Essa definição foi utilizada na manufatura, porém serve para engenharia de software. Além disso, menciona que é preciso definir qualidade dessa forma, principalmente porque a qualidade deve ser gerenciada. Qualidade de produto de software deve estar em conformidade com os requisitos funcionais e de desempenho declarados explicitamente, padrões de desenvolvimento claramente documentados e as características implícitas que são esperadas de todo software desenvolvido profissionalmente. Por necessidades explícitas, pode-se entender requisitos do usuário; necessidades implícitas relacionam-se, por exemplo, com a performance de execução do sistema ou até mesmo com o cumprimento do cronograma e o orçamento do desenvolvimento do produto. As definições de qualidade podem variar em alguns aspectos, porém o aspecto que se refere à satisfação do cliente ou usuário não deve ser esquecido. Exemplo: Tecnologias de previsão do tempo e de localização via satélite, por exemplo, são utilizadas no campo para aumentar a produtividade da lavoura e a eficiência de maquinas colheitadeiras. Um claro exemplo é o programa de agricultura de precisão, Fieldstar e o conceito de agricultura de precisão são novos métodos de gerenciamento agrícola, ou seja, toda a área será mapeada pelos computadores de bordo mostrando assim o que está deficiente quanto aos nutrientes da terra (N, P, Sn) e quando for aplicar os produtos para corrigir podemos aplicá-los com taxa variável e totalmente automática, tendo assim menor desperdício do produto, ou seja, tudo com precisão. (Tecnologias no campo, UFRA). 1.4. Qualidade de Processo de Software A qualidade de processos de software são um conjunto de atividades, métodos, práticas e tecnologias documentados, compreendidos e seguidos que se utilizam um modelo de processo para desenvolver softwares aumentando a qualidade do produto e diminuindo o retrabalho tendo maior produtividade e reduzindo o tempo de desenvolvimento obtendo maior precisão. Aplicar o PDCA, P(planejar), D(executar), C(verificar), A(Ajustar) para constante melhora nos processos. Exemplo: 2.0 Manutenibilidade É a Facilidade com que um sistema ou componente de software pode ser modificado para se corrigir falhas, melhorar desempenho (ou outros atributos), ou ser adaptado a mudanças no ambiente. (IEEE 610.12, 1990) O que fazer? Utilizar modelos de softwares institucionalizado, ou seja todos conhecerem o modelo de processo, implementar uma metodologia institucionalizada, documentação interna e externa, definir padrões de desenvolvimento, padronizar ferramentas, banco de dados, artefatos, interfaces, institucionalizar um modelo de processo e um modelo de qualidade ,definir um estilo de programação como a forma de um programa é escrito (uso de comentários, escolha de nomes para variáveis e constantes, uso de identação, entre outros). Fazer a modularização do software, verificar e validar, fazer testes e manter um controle de configuração. Exemplo: 2.1. Flexibilidade É a capacidade de atender um requisito sem alterar o modificar o software, são caminhos alternativos que o software atende. O que fazer? Par que o software possua flexibilidade tem que especificar no levantamento de requisito essa funcionalidade, escolher uma arquitetura que atenda esse requisito de flexibilidade, uma metodologia especificada para a documentação, implementar uma parametrização, e testar a funcionalidade. Exemplo: O eclipse é um software que tem essa funcionalidade ele roda em várias plataformas como, Windowns, Linux e no Mac OS. 2.3. Testabilidade É a capacidade que o software apresenta em testa-lo, fazendo casos de teste. O que fazer? A testabilidade pode ser incorporada nos vários estágios do desenvolvimento de software, especificar a funcionalidade, possuir independência funcional, fazer uma modularização funcional (particionamento do software) ter documentação interna e externa caixa branca, ter um histórico dos erros conhecidos e padronizar os artefatos. Exemplo: 2.4. Portabilidade É a capacidade do software ser executado em vários ambientes distintos especificados sem sofrer alterações. O que fazer? Identificar e especificar os requisitos dos ambientes alvos, especificar as arquiteturas dos ambientes alvos compatíveis, selecionar ferramentas para todos os ambientes alvos como linguagem de programação, banco de dados, arquitetura de rede e etc. Escolher aquelas ferramentas que atendam todos os ambientes, implementar e testar as diferenças dos ambientes, implementar a parametrização. Exemplo: O eclipse é um software que pode ser executado em várias plataformas.2.5. Reusabilidade É a possibilidade de usar diversos artefatos ou parte dos artefatos em uma aplicação seguinte. O que fazer? Identificar os artefatos já produzidos que vão ser reutilizados, avaliar o aproveitamento do reuso, aproveitar integralmente ou pequenas modificações, manter uma biblioteca de reuso, documentada e testada, buscar s artefatos candidatos e verificar se vão ser utilizados, montar uma matriz de rastreabilidade entre artefatos e sistemas. Exemplo: 2.6 Interoperabilidade É a capacidade do sistemas operar com outro sistema ou recurso quase ao mesmo tempo um passado informação ao outro. O que fazer? Implementar a compatibilidade entre os dois sistemas, implementar a comunicação entre eles padronizar uma interface. Exemplo: O Workbench e o são softwares com essa funcionalidade você pode modelar o banco através do workbench e dar comandos para acessar, alterar, excluir e listar utilizando o eclipse. 2.7 Corretitude É a capacidade de produzir resultados corretos e esperados, medida na qual o software cumpre sua especificação e objetivos previstos. O que fazer? Aplicar testes, validar os requisitos e simular os resultados. Exemplo: 2.8 Confiabilidade É a probabilidade do software operar sem ocorrência de falhas entregando os resultados esperados. O que fazer? Validar sempre os dados de entrada e saída, manter a integridade dos dados, não deixar os dados se perderem, não deixar os dados serem modificados, quando executar uma operação, se não tiver sucesso não trazer resultados inesperados, implementar o roll back. Criticar os dados, validar os dados e fazer back-up dos dados. Exemplo: O workbench é um software que traz os resultados esperados sem perca de dados. 2.9 Eficiência, É a quantidade mínima de recursos computacionais e de código exigida para que um programa execute sua função. O que fazer? Comparar os recursos distintos (banco, fremework, linguagem), identificar os requisitos de performance e identificar ferramentas que melhor se adaptam em termo de exigir os recursos para cada operação. Exemplo: 3.0 Integridade É a capacidade na qual o acesso ao software ou aos dados por pessoas não autorizadas pode ser controlado. O que fazer? Especificar e implementar controle de acesso (perfis), fazer uma segregação funcional e de dados, não deixar perder os dados dos usuários, fazer copias de segurança, fazer um espelhamento, Exemplo: 3.1 Usabilidade É o esforço do usuário para aprender a operar, preparar a entrada e interpretar a saída de um programa de software. O que fazer? Observar o ambiente operacional ver como o usuário trabalha, deve ter uma lógica, estrutura, sequencia mais próxima possível da realidade do usuário, o usuário compreender o processo saber em que lugar ele estar (navegação). Elaborar o diagrama de controle do software, implementar trilhas e implementar padrões de interface visual para o aplicativo e para a organização. Exemplo: O Bizagi process modeler e um software de modelagem bem fácil de se usar ele tem essa funcionalidade a complexidade dele e bem simples. 3.2 Conclusão A Qualidade de software engloba uma série de características e cada uma tem um papel importantíssimo para se atingir um padrão de qualidade eficiente e eficaz para os produtos ou serviços prestados para garantir, a qualidade e a satisfação do cliente. 3.3 Bibliografia Garantia da qualidade de software http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx#ixzz2dkxIBqFK Qualidade de Software http://www.almbrasil.com.br/o-que-e-qualidade-de-software/#sthash.9CmNPcUh.dpuf Engenharia de Software-Roger S.Pressman 3 ed. [Pressman95] R.S. Pressman, , Software Engineering: A Practitioner’s Approach,terceira edição, McGrawHill, 1995. Engenharia de Software – Pressman 6 ed. R.S.Pressman. Engenharia de Software: sexta edição, 2006. Processos de Software http://www.devmedia.com.br/processos-de-software/21977#ixzz2e5UvfDK7 Tecnologia no campo –UFRA http://www.ebah.com.br/content/ABAAAAQMwAI/tecnologia-no-campo
Compartilhar