0% acharam este documento útil (0 voto)
68 visualizações5 páginas

Importância da Qualidade em Software

Resumo breve acerca de alguns conceitos e explicações relevantes da gerência e qualidade do software.

Enviado por

froshy amino
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
68 visualizações5 páginas

Importância da Qualidade em Software

Resumo breve acerca de alguns conceitos e explicações relevantes da gerência e qualidade do software.

Enviado por

froshy amino
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Resumo 1 - Gerência e Qualidade de Software

Engenharia de software

A qualidade do software como um produto, para as empresas, desempenha


um papel fundamental em seu desempenho econômico e de seus clientes, em
vista do grande impacto que é gerado no comércio e no mercado de trabalho,
pois a qualidade é uma característica que representa o grau de excelência do
produto em realizar as funções especificadas pelos clientes.

Logo, essa característica do software pode influenciar tanto positivamente


quanto negativamente a empresa que é responsável por desenvolve-lo, como
também seus consumidores, de forma que um programa desenvolvido com um
alto padrão de qualidade beneficia ambas as partes, configurando maior
lucratividade e visibilidade positiva para os desenvolvedores, além de um melhor
aproveitamento e satisfação dos clientes.

Contudo, de maneira antagônica, a falta de qualidade no produto articula


prejuízos, através dos custos gerados em disputas judiciais, devoluções e na
insatisfação dos consumidores para os desenvolvedores, além da perca
recursos, tempo e negócios por parte dos seus clientes, o que representa uma
diminuição significativa do lucro geral, causado pelo funcionamento inadequado
de um ou mais programas. Portanto os defeitos e falhas ocasionados pela má
qualidade podem ter impactos alarmantes no resultado final de certas atividades,
sendo o caso de alguns endereços eletrônicos de programas governamentais,
como o Enem, que apresenta tais problemas quase todos os anos, com o mau
funcionamento, o que afeta milhares de estudantes em todo o país.

Desta forma, a qualidade do software se apresenta como o desempenho


com que um sistema atende as especificações dos clientes, em relação às suas
expectativas, o custo-benefício e as necessidades dos usuários. Ademais, a
qualidade é alicerçada nas tecnologias utilizadas, no gerenciamento e na
capacitação dos desenvolvedores, além do processo pelo qual o sistema
passará. Nesse contexto, surgem os modelos de qualidade, que visam definir,
avaliar e medir característica de qualidade no software, como o ISO 25000 e sua
família de normas, que tratam dos requisitos de avaliação da qualidade de um
software, organizados de forma hierárquica com características,
subcaracterísticas e propriedades, sendo o último essencialmente influenciado
pela qualidade do processo e pode ser dividida em propriedades externas e
internas, as quais influenciarão a qualidade de uso do produto em determinado
ambiente e condições, com o objetivo de suprir satisfatoriamente as
necessidades do usuário com eficácia, eficiência e segurança.

Assim, percebe-se a importância e o impacto da qualidade do produto não


apenas para a área de informática, com os softwares, como também para
diferentes outras esferas de atuação, já que ela desempenha um papel
fundamental na comercialização e utilização de diversos sistemas, segregando
as consideradas boas práticas e empresas de desenvolvimento daquelas
taxadas como menos viáveis e com um serviço de menor qualidade.

O gerenciamento e qualidade de software são algumas das características


mais relevantes para a elaboração de um sistema, sendo alicerçadas pelos
processos, que tratam-se de um conjunto de atividades e interações
internamente relacionadas, os quais são muito referenciados na indústria de
software, que se atenta fortemente a esse aspecto no desenvolvimento de seus
programas, em vista do enorme grau de influência que o processo pode exercer
na qualidade do produto final e o impacto que isso pode gerar à todas as
empresas e organizações envolvidas. De maneira que, a norma ISO 12207 da
Engenharia de Software se apresenta como um dos pináculos referenciais para
a qualidade de software, definindo propósitos, resultados e atividades para cada
um dos processos necessários e que compõem o desenvolvimento dos
sistemas, a qual também pode ser empregada como base ou avaliação
comparativa dos mesmos.

Portanto, a norma é principalmente utilizada como uma referência


padronizada para determinados segmentos do processo, como a aquisição, o
fornecimento, o desenvolvimento, a operação, a manutenção e o descarte de
softwares para diversas industrias. Ademais, a ISO 12207, apesar de não definir
ordem ou obrigação de atividades, define grupos de processos compostos de
outros processos, como é o caso dos processos organizacionais habilitadores
de projetos, de gerencia técnica e técnicos, como também os de acordo, que
atuam essencialmente na contratação de softwares. Doravante, os processos
técnicos definidos pela norma possuem um mapeamento complexo, dividido
entre os processos que constituem os aspectos técnicos e os processos contidos
em todas as suas partes.

Nesse cenário, métodos ágeis para processos na criação de softwares


foram elaborados, como o Scrum de 1993, sendo um dos mais utilizados
atualmente, apesar de não ter sido proposto especificamente para o
desenvolvimento de software, mas sim como um framework para gerenciar
produtos complexos que podem ser utilizados em diversas áreas de atuação.

O Scrum também estabelece a transparência de resultados, a inspeção de


artefatos e a adaptação do processo como seus principais pilares, onde os
backlogs são os artefatos e os processos da Sprint são os eventos ou interações
do desenvolvimento. Esse método se inicia com o backlog do produto e sua lista
de requisitos necessários para a criação do produto, com a descrição, ordem,
estimativa e valor dos itens, para assim serem apresentados no planejamento
da Sprint com o time de desenvolvimento, a partir dessa reunião é feito o backlog
da Sprint e o que se espera dela, dessa maneira é possível dar início ao trabalho
de desenvolvimento, onde o Scrum define a ocorrência de uma reunião curta
diária, facilitando o planejamento. Para finalizar a sequência de processos, são
realizadas a retrospectiva e revisão da Sprint, a fim de debater as exatidões,
falhas, dificuldades e o background do processo.

Em contrapartida, o Extreme Programming [XP], outro método ágil para o


desenvolvimento de software, se articula em ciclos semanais com reuniões
periódicas entre a equipe de desenvolvimento e seus clientes, dando ênfase no
gerenciamento, diferentemente do Scrum que visa as atividades de
desenvolvimento, e sendo baseado na simplicidade, comunicação e feedback,
conferindo uma maior flexibilidade, transparência e interação entre as partes
constituintes do processo, porém é focado quase que exclusivamente à criação
de softwares, mesmo havendo a possibilidade de seu uso em outras esferas.
Além dele, o OpenUp também se mostra como uma grande opção para a
criação de sistemas, pois define um framework de processo de desenvolvimento
de software, possuindo um ciclo de vida estruturado e aspectos minimalistas,
ainda valorizando a colaboração entre a equipe. O aparecimento de
microincrementos nesse processo também é comum ao OpenUp, fornecendo
um ciclo de feedbacks curtos pela equipe comprometida, com o objetivo de
conferir decisões para a maior adaptação possível do desenvolvimento do
software. Outrossim, o ciclo de vida de tal método é dividido em quatro fases,
que são a concepção, elaboração, construção e transição.

A gestão da qualidade do software representa um dos fatores fundamentais


no resultado final do produto e impacta profundamente sua eficiência em suas
atribuições, e consequentemente a sua recepção no mercado. Tal
gerenciamento possui dois conjuntos de processos básicos, a garantia da
qualidade, para seguir os planos e cláusulas estabelecidas, e o controle da
qualidade, que tem como objetivo garantir o cumprimento dos objetivos de
qualidade, sendo pautado pela verificação e validação.

Nesse contexto, a garantia da qualidade atua tanto sobre a qualidade do


produto quanto do processo, através da análise dos artefatos e das atividades
de todos os processos, porém, ela não investiga o mérito e as necessidades de
um produto em exercer suas atribuições, mas apenas se o programa segue a
padronização definida, o que evidencia a preocupação com a qualidade.
Portanto, a equipe responsável pela análise da garantia da qualidade deve ser
independente, para evitar intervenções externas, necessitando de um canal de
comunicação com a alta gerência.

Desta forma, a garantia da qualidade se articula no planejamento das


atividades, avaliações de produtos e processos, gerenciamento e na resolução
de falhas ou problemas. Ademais, a equipe responsável por essa área ainda
pode ser indicada para o treinamento de outras equipes, como a de outros
desenvolvedores, além de atuar fortemente no planejamento do produto,
definindo padrões, atividades e procedimentos, visando a agilidade para se
distanciar da burocracia, onde o método Scrum pode ser utilizado.
Assim, apesar de tratar-se de um conjunto de processos que diferem do
controle da qualidade, ambos devem ser coordenados, como também podem ser
elaborados pelas empresas de maneira diferente para cada software,
adequando as atividades de acordo com as necessidades do projeto, ou usar
normas definidas, como a IEEE 730.

Todavia, os testes não são a única maneira de identificar falhas no


software, mas tratam-se de um dos componentes dos processos fundamentais
de verificação e validação, os quais são definidos como formas disciplinadas de
avaliar se determinados produtos satisfazem requisitos e necessidades
especificadas. A avaliação realizada pode ser caracterizada como estática ou
dinâmica, sendo a primeira feita sem executar o programa, como é o caso da
revisão, enquanto na dinâmica o programa é executado, como acontece no caso
dos testes.

Na implementação, algumas técnicas de integração contínua e


programação em pares realizam a verificação, mas além de verificar os
programas, há como verificar se testes tiveram exatidão ou se obtiveram uma
cobertura adequada. De maneira diferente, a validação busca analisar e apontar
se os produtos ou uma determinada quantidade de seus componentes atingem
o objetivo pretendido, ou seja, as necessidades dos stakeholders, tendo também
atuação nos testes, para determinar se os membros que compõem o processo
aprovam o software.

De forma geral, pode-se entender a diferença entre verificação e validação


como sendo que a verificação busca responder se o software elaborado está
certo, enquanto a validação buscar responder se está sendo construído o
software certo. Dentre as práticas de verificação, é possível citar os testes
automatizados e o Code Review, ou verificação de código, onde um código é
submetido em uma plataforma para alguns outros membros dos times
verificarem, o que também favorece a colaboração entre todos. Já para a
validação, o uso de desenhos que ilustrem o produto final, o planejamento escrito
e o feedback dos clientes são comuns.

Você também pode gostar