Muito se discute sobre a necessidade dos softwares terem maior qualidade. Hoje em dia, em virtude da Web, da necessidade de troca de informações, da segurança das informações, da necessidade de garantir que as informações estão sendo tratadas da maneira correta e com grande agilidade, vem sendo cada vez mais exigido dos Softwares que agreguem a máxima qualidade possível.
Anteriormente, preocupava-se em garantir uma maior qualidade de software para maiores clientes, ou clientes que representavam grande expressão financeira para a empresa que produzia o software. Atualmente, não importa o tamanho do cliente, pois a grande quantidade de ofertas de software e o próprio mercado estão encarregando-se de exigir esta maior qualidade. As empresas de software travam batalhas diárias para conseguir ficar até mesmo com o menor cliente existente.
Assim, através deste post tento descrever conceitualmente o que se entende por Qualidade de Software e o que vem sendo criado para tentar melhorar a Qualidade de Software.
A qualidade de software nada mais é do que a capacidade de um sistema satisfazer determinados requisitos, visando atender às necessidades e expectativas dos usuários (IEEE, 1990).
Entretanto, a qualidade de software não consiste apenas em avaliar se o produto de software atende às expectativas, mas também avaliar o processo de software.
O processo de software trata-se de um conjunto de atividades, pré-definidas, onde o resultado de sua execução gera o produto de software.
Assim, para cada situação, devem ocorrer medições para compararmos o software e o processo de software a algum valor para atingirmos um patamar de qualidade (PRESSMAN, 2001).
Os aspectos mais importantes que devem ser avaliados num software são: suas características operacionais, sua habilidade de passar por modificações e sua adaptação a novos ambientes.
Em razão destas necessidades é que foram criados os famosos modelos de maturidade de software. Atualmente, ouvimos falar muito de CMMI e MPS.BR, mas, outros anteriores que inclusive serviram como base para criar o CMMI e o MPS.BR são: ISO/IEC 9126, ISO/IEC 15504, ISO/IEC 12207, CMM, CMMI e MPS.Br (KALAIMAGAL; Srinivasan, 2008).
Cada um destes modelos de maturidade, também conhecidos como Modelos de Qualidade, possuem algumas particularidades importantes que auxiliam na busca da qualidade do processo e do produto de software. Alguns destes modelos chegam a ter recursos conteúdo suficiente até mesmo para orientar sobre como realizar as determinadas mudanças no processo de software e no produto de software para melhorar as suas qualidades.
Em breve, pretendo postar maiores detalhes sobre cada um destes modelos de maturidade e qualidade de software
Referências Bibliográficas:
IEEE, Institute of Electrical and Electronics Engineers: Standard for Software Configuration Management Plans, IEEE, 1990.
PRESSMAN, R. S. Software Engineering: A Practitioner’s Approach. 5th ed. New York: McGraw-Hill, 2001.
KALAIMAGAL, Sivamuni; Srinivasan, Rengaramanujam. A Retrospective on Software Component Quality Models. Nova York, v. 33, n. 6, p. 1-9, 2008.
Anteriormente, preocupava-se em garantir uma maior qualidade de software para maiores clientes, ou clientes que representavam grande expressão financeira para a empresa que produzia o software. Atualmente, não importa o tamanho do cliente, pois a grande quantidade de ofertas de software e o próprio mercado estão encarregando-se de exigir esta maior qualidade. As empresas de software travam batalhas diárias para conseguir ficar até mesmo com o menor cliente existente.
Assim, através deste post tento descrever conceitualmente o que se entende por Qualidade de Software e o que vem sendo criado para tentar melhorar a Qualidade de Software.
A qualidade de software nada mais é do que a capacidade de um sistema satisfazer determinados requisitos, visando atender às necessidades e expectativas dos usuários (IEEE, 1990).
Entretanto, a qualidade de software não consiste apenas em avaliar se o produto de software atende às expectativas, mas também avaliar o processo de software.
O processo de software trata-se de um conjunto de atividades, pré-definidas, onde o resultado de sua execução gera o produto de software.
Assim, para cada situação, devem ocorrer medições para compararmos o software e o processo de software a algum valor para atingirmos um patamar de qualidade (PRESSMAN, 2001).
Os aspectos mais importantes que devem ser avaliados num software são: suas características operacionais, sua habilidade de passar por modificações e sua adaptação a novos ambientes.
Em razão destas necessidades é que foram criados os famosos modelos de maturidade de software. Atualmente, ouvimos falar muito de CMMI e MPS.BR, mas, outros anteriores que inclusive serviram como base para criar o CMMI e o MPS.BR são: ISO/IEC 9126, ISO/IEC 15504, ISO/IEC 12207, CMM, CMMI e MPS.Br (KALAIMAGAL; Srinivasan, 2008).
Cada um destes modelos de maturidade, também conhecidos como Modelos de Qualidade, possuem algumas particularidades importantes que auxiliam na busca da qualidade do processo e do produto de software. Alguns destes modelos chegam a ter recursos conteúdo suficiente até mesmo para orientar sobre como realizar as determinadas mudanças no processo de software e no produto de software para melhorar as suas qualidades.
Em breve, pretendo postar maiores detalhes sobre cada um destes modelos de maturidade e qualidade de software
Referências Bibliográficas:
IEEE, Institute of Electrical and Electronics Engineers: Standard for Software Configuration Management Plans, IEEE, 1990.
PRESSMAN, R. S. Software Engineering: A Practitioner’s Approach. 5th ed. New York: McGraw-Hill, 2001.
KALAIMAGAL, Sivamuni; Srinivasan, Rengaramanujam. A Retrospective on Software Component Quality Models. Nova York, v. 33, n. 6, p. 1-9, 2008.
Parabéns Schumacher pela iniciativa! Eu já trabalho à 5 anos na área de qualidade como testadora e analista de testes. É muito legal ter um canal de comunicação para se trocar idéias sobre esse assunto!
ResponderExcluirOlá, Rita!
ResponderExcluirObrigado pelo incentivo!
Conto com a colaboração de pessoas iguais a você para gerar as polêmicas necessárias que nos levem a discutir e buscar cada vez mais a qualidade de nossos softwares e processos!
Abraço,
Marcelo Schumacher
Ae cara... recentemente estudei o ciclo de vida de desenvolvimento de segurança da Trustworthy Computing, um modelo de qualidade (para segurança) de desenvolvimento de SW adotado pela Microsoft para fazer tudo o veio depois do Windows 2000.
ResponderExcluirRealmente, como já conversamos, a qualidade de desenvolvimento é fundamental... Mas como colocar isso na mesma prioridade que o prazo de entrega do produto? Para nós, programadores, é fácil imaginar... mas na prática não é bem assim.
Eu considero hoje o maior dilema no desenvolvimento de software a batalha entre qualidade e cumprimento de prazos. Sim, o barato custa caro, mas até que ponto a qualidade pode ser deixada de lado em favor dos prazos estipulados (muitas vezes por negociadores incompetentes, infelizmetne)?
Abrço,
José Baronio.
E ae, Zeca.
ResponderExcluirNa minha opinião, falta de tempo é falta de prioridades. Se for prioritário aplicar qualidade o tempo necessário será alocado ao projeto, ao cronogra, ao contrato e à negociação com o cliente.
Se uma empresa deseja aplicar qualidade em seu processo de software ou produto de software, no momento em que fechar negócio com o cliente ao invés de dizer que leva 6 horas para desenvolver determinado recurso ela precisaria informar que precisa de 14 horas, negociando o cronograma com este tempo, fazendo, por exemplo, a seguinte distribuição:
- 4,7 horas de levantamento de requisitos e análise;
- 6 horas de desenvolvimento;
- 0,5 horas de teste unitário (teste do programador);
- 2 horas de teste integrado (Teste do testador);
- 0,5 horas para o Manual;
- 1 hora para gestão de configuração (base de dados, instaladores, check in e chek out de fontes)
Logo, cabe à empresa querer investir em qualidade. Agora, entendo que empresas menores que trabalham por entregas realizadas(empreitada) e não por horas trabalhadas ou contratadas tem dificuldades em aplicar isso. Mas, fica claro que é uma opção dela e que para garantir a qualidade ela realmente deveria dispor do devido tempo quando for realizar uma atividade.
Sacou?
Abraço,
Marcelo Schumacher
Schumacher,
ResponderExcluirParabéns pelo Blog.
Os assuntos abordados são de fundamental importância para os dias de hoje.
Vou procurar acompanhar o seu Blog, ajudando nas discussões, pois somente todos juntos conseguiremos encontrar soluções para melhorar cada vez mais os processos para Desenvolvimento de Software com Qualidade.
Abraço.
Marcio Silveira
marcio@deployinfo.com
Olá, Márcio.
ResponderExcluirObrigado pelo incentivo!
Conto com sua participação.
Abraço,
Marcelo Schumacher