Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Rafael Targino rtargino@unicarioca.edu.br @rafatargino QUALIDADE DE SOFTWARE Unidade I - Introdução à Qualidade de Software 2 Qualidade de Software • O aspecto não repetitivo do desenvolvimento de software torna essa atividade difícil e em boa medida imprevisível. • Delimitar o escopo de um sistema não é trivial. • A volatilidade dos requisitos é lugar comum no desenvolvimento de software. Qualidade de Software • Necessidades do cliente nem sempre refletem as suas necessidades reais: – Usuário não conhece suas necessidades. – Essas necessidades podem mudar com o tempo – Usuários diferentes podem ter ambientes operacionais diferentes – Pode ser impossível consultar todos os usuários de um determinado sistema. 3 Qualidade de Software • Fatores que afetam o desenvolvimento e que influenciam no julgamento dos usuários: – Tamanho e complexidade do software; – Número de pessoas envolvidas no projeto; – Métodos, técnicas e ferramentas utilizadas; – Custo x benefício do sistema; – Custos associados à existência de erros; – Custos associados à detecção e remoção de erros; – Etc. Queremos Evitar Isso! 4 Erros, Defeitos e Falhas • Um erro (error) é uma diferença detectada entre o resultado de uma computação e o resultado correto ou esperado. Problema introduzido no software pelo programador • Um defeito (fault) é uma linha de código, bloco ou conjunto de dados incorretos, que provocam um erro observado. Problema encontrado no software pelos testadores. É decorrente de um erro. • Uma falha (failure) é um não funcionamento do software, possivelmente provocada por um defeito, mas também com outras causas possíveis. Problema ocorrido no software por um erro não detectado pelos testes. Erros, Defeitos e Falhas 5 Thomas Edison teve problemas de leitura em seu fonógrafo com um inseto em 1878 e em todos os defeitos industriais passou a denominá-los como bug. Curiosidades Curiosidades • Primeiro bug em computadores – 1947 – Os engenheiros que trabalhavam com a máquina Harvard Mark I, encontraram um inseto nos circuitos. Este inseto estava causando um erro nos cálculos da máquina. Ao ser encontrado, o inseto foi retirado e colado no livro de registro com a intenção de registrá-lo como o primeiro bug encontrado. 6 Formas de Detecção de Erros • Testes – Execução do programa em um ambiente controlado e verificação da saída produzida • Revisões – Inspeções – Walkthroughs • Métodos Formais – Software provado correto • Análise Estática – Detecta condições sujeitas a erros Engenharia de Requisitos A Q u a l i d a d e d o S o f t w a r e d e p e n d e d a Q u a l i d a d e d e s e u P r o c e s s o d e D e s e n v o l v i m e n t o 7 Qualidade do Produto x Qualidade do Processo • Uma das evoluções mais importantes no estudo da qualidade está em notar que a qualidade do produto é algo bom, mas que qualidade do processo de produção é ainda mais importante. •Conjunto de atividades, métodos, práticas e tecnologias que as pessoas usam para desenvolver e manter softwares •O processo adequado garante que o software será desenvolvido de maneira organizada, disciplinada e previsível. •O processo descreve formalmente e de forma organizada as atividades que devem ser seguidas para a obtenção segura de um produto de software. •A dificuldade está no gerenciamento do processo (existem vários modelos), que geralmente está dividido em fases. Processo de Desenvolvimento de SW 8 •Análise: Analista com usuários. • Requisitos. Interesses soluções para usuário • Projeto (design): Projetista usa a tecnologia • Requisitos tecnológicos tecnologia para usuário • Implementação: Programador usa L.P. • Escrita do código Lógica de programação • Testes: Testadores com programas / sistema • Buscar defeitos e falhas nos sistema. • Homologação ou Aceitação: Com usuários. • Usuário aprovar o sistema (Participar de tudo !!!) • Implantação: Instalação e treinamento • Entrega o sistema. • Fim do ciclo de desenvolvimento ANÁLISE PROJETO IMPLEMENTAÇÃO TESTES HOMOLOGAÇÃO IMPLANTAÇÃO Processo de Desenvolvimento de SW • A maior dificuldade esta na fase INICIAL, de entendimento do sistema - Requisitos – ALTO grau de ABSTRAÇÃO + Comunicação com pessoas • A segunda maior abrangência está na modelagem – ALTO Grau de ABSTRAÇÃO + domínio das técnicas • O erros de codificação em si, representam um % pequeno, mostrando que o foco do problema não é da Implementação. Onde estão os Defeitos? 9 Qualidade do ProdutoQualidade do Processo Qualidade de Software A Qualidade do Produto é o que buscamos. A Qualidade do Processo é o meio para conseguirmos. A Qualidade do produto é fortemente influenciada pela qualidade dos processos utilizados no seu desenvolvimento. Qualidade do Processo X Qualidade do Produto • NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE, A QUALIDADE NÃO ATUA COMO UMA FASE ESPECÍFICA – ELA ESTÁ EM TODAS AS FASES QUALIDADE É ATUAR EM TODAS AS FASES – VERIFICANDO CONFORMIDADE COM OS PADRÕES E DEFINIÇÕES A Qualidade é mais uma Fase no Processo de Desenvolvimento de Software? Concepção Requisitos Design Codificação Testes Implantação Qualidade 10 Evolução dos Conceitos de Qualidade A qualidade evolui de um perspectiva mais voltada para o produto para uma perspectiva voltada para o processo. Normas e Organismos Normativos • As normas internacionais de qualidade são criadas com base no trabalho de especialistas no mundo todo. • As normas oferecem uma base comum para julgar a qualidade de produtos e definir critérios em contratos e negociações. • Essas normas tornam-se a base para especificar produtos, organizar fornecimento de serviços e, mesmo, para elaborar legislação de vários países. 11 Organismos Normativos: ISO e IEC • ISO – International Organizational for Standardization. – Criada em 1945 para produzir “recomendações“. Ainda não eram normas internacionais. – Possuia 5 documentos em 1952, 57 em 1957 e 1400 em 1965 – Em dezembro de 2005, a ISO chegou a 14.941 documentos internacionais de padronização, cotando com quase 150 países participantes. • IEC – A Comissão Eletrotécnica Internacional (em inglês: International Electrotechnical Commission, IEC) é uma organização internacional de padronização de tecnologias elétricas, eletrônicas e relacionadas. Alguns dos seus padrões são desenvolvidos juntamente com a Organização Internacional para Padronização (ISO). • JTC1 – Comissão conjunta entre ISO e IEC para a definição de normas relacionadas a Tecnologia da Informação Organismos Normativos: ABNT • ABNT – A Associação Brasileira de Normas Técnicas (ABNT) é o órgão responsável pela normalização técnica no Brasil, fornecendo a base necessária ao desenvolvimento tecnológico brasileiro. – Trata-se de uma entidade privada e sem fins lucrativos e de utilidade pública, fundada em 1940. – Exemplos de Áreas de Conhecimento que fazem parte de estudos para elaboração e atualização dos padrões • Mineração e Metalurgia • Construção Civil • Computadores e Processamento de Dados • Café 12 Padrões De facto ou De jure? • Muitas vezes os padrões surgem espontaneamente, a partir de uma necessidade de um grupo de usuários ou como uma solução a um problema que foi amplamente adotada em preferência a outras possibilidades – De facto é uma expressão em latim, utilizada para designar um padrão conhecido e aplicado na prática, mas que não foi formalizado com um regulamento ou uma lei escrita. Padrões deste tipo são criados involuntariamente. – De jure é um expressãoem latim que se refere “à lei”. Um padrão deste tipo é criado de maneira formal, regulamentada. Os documentos criados por organismos como IEEE e ISO são considerados padrões de jure. Certificação de Qualidade • Um aspecto interessante da qualidade é que não basta que ela exista. • Ela deve ser reconhecida pelo cliente. • Por causa disso, é necessário que exista algum tipo de certificação oficial, emitida com base em um padrão – O selo do SIF de inspeção da carne – O selo da ABIC nos pacotes de café – A classificação em estrelas dos hotéis (hotéis com cinco estrelas são ótimos) – Os certificados de qualidade da série ISO 9000 13 Certificação de Qualidade • A Certificação em uma norma ou padrão é a emissão de um documento oficial indicando a conformidade com esta determinada norma ou padrão. • Embora uma empresa possa auto-avaliar-se ou ser avaliada por seus próprios clientes, o termo Certificação costuma ser aplicado apenas quando efetuado por uma empresa independente e idônea, normalmente especializada neste tipo de trabalho. – Exemplo, INMETRO Engenharia de Requisitos A Q u a l i d a d e d o S o f t w a r e p o s s u i v á r i a s v i s õ e s d e p e n d e n d o d e q u a l p a r t e i n t e r e s s a d a 14 Visões de Qualidade de Software Usuário Desenvolvedor Organização Facilidade de uso, desempenho, confiabilidade, preço.... Taxa de defeitos, facilidade de manutenção, conformidade em relação aos requisitos e aos padrões técnicos... Cumprimento do prazo, boa previsão de custo, boa produtividade.... Usuários e suas Preocupações • Funciona adequadamente sem imprevistos? Como por exemplo, efetuar débito em uma conta corrente com saldo insuficiente? • As funções requeridas estão disponíveis e são executadas eficientemente? • O software é seguro, ou seja, evita que pessoas ou sistemas não autorizados tenham acesso aos dados para leitura ou modificação? • O suporte técnico é confiável e atende com rapidez necessária? 15 Qualidade na Equipe de Desenvolvimento É um compromisso de todos!!! • Software de Qualidade • GARANTE A SEGURANÇA das transações, dos negócios e das pessoas envolvidas • MANTÉM A ALTA DISPONIBILIDADE dos serviços. Qualidade na Organização 16 • Esforços (recursos) pela qualidade nos mais diversos setores organizacionais já provaram que: • Os esforços na qualidade valem a pena • se paga em pouco tempo. O Custo com o Processo de Qualidade se paga? Orientações Gerais sobre a Gestão da Qualidade • Satisfação do Cliente. Entender, avaliar, definir e gerenciar as expectativas para que os requisitos do cliente sejam atendidos. Para isso, é necessária uma combinação de conformidade com os requisitos (para garantir que o projeto produza o que ele foi criado para produzir) e adequação ao uso (o produto ou serviço deve atender às necessidades reais). • Prevenção ao invés de Correção. A qualidade deve ser planejada, projetada e criada. O custo da prevenção dos erros é geralmente muito menor do que o custo de corrigir tais erros quando eles são encontrados pela inspeção ou durante o uso. 17 Orientações Gerais sobre a Gestão da Qualidade • Melhoria Contínua. O ciclo PDCA (planejar-fazer-verificar- agir) é a base para a melhoria da qualidade conforme definida por Shewhart e modificada por Deming. Além disso, as iniciativas de melhoria da qualidade tais como o Gerenciamento da qualidade total (GQT), Seis sigma e Lean seis sigma devem aprimorar a qualidade do gerenciamento do projeto e também a qualidade do produto do projeto. • Responsabilidade da Gerência. O sucesso exige a participação de todos os membros da equipe do projeto. Todavia, a alta direção, dentro dos seu escopo de responsabilidade pela qualidade, retém a responsabilidade pelo fornecimento dos recursos adequados, nas capacidades adequadas. Exercício: Dinâmica dos Aviões 18 1. Por que Qualidade é ter conformidade com os requisitos? • Por que se não atender ao que o usuário precisa (requisitos), o SW não terá atingido o seu objetivo e sem isso, não há qualidade. 2. Dentre as fases do processo de desenvolvimento, qual a que concentra maior % de defeitos (problemas)? • Requisitos (Levantamento e Análise), pois a má interpretação do que deseja o usuário implica em software que não atende ao que ele quer. • Erros na fase inicial, se propagados para as fases seguintes, tem maior custo de solução. 3. Quais os problemas, nessas fases iniciais? • O nível de abstração necessário é alto e os sistemas podem ser complexos 4. A qualidade deve ser então uma FASE adicional no processo de desenvolvimento? • NÃO, a qualidade deve ser aferida em TODAS as fases do processo. PERGUNTAS E RESPOSTAS 5. Quais as dificuldades em se prover qualidade no processo? • Ausência de procedimentos claros, até mesmo de um processo definido • Ausência de técnicas de desenvolvimento (análise, projeto e programação) • Ausência de registro das decisões e modelos (documentação) 6. Por que devemos nos preocupar com qualidade no processo? • Porque é através do processo que se gera o produto (PROCESSO MANUFATURADO). • Para garantir que os produtos desenvolvidos por aquele processo tenham as mesmas características (minimiza a subjetividade) PERGUNTAS E RESPOSTAS 19 7. Como a qualidade se reflete no processo? • Redução de custos (menos retrabalho e menos perdas) 8. Como a qualidade se reflete no produto? • Reaproveitamento de código • Código mais legível (entendimento de terceiros) • Facilidade de manutenção • Melhoria de uso para o Usuário 9. O custo para se implementar o gerenciamento da qualidade vale a pena? • Sim, o custo se paga, pois a qualidade no processo e no produto traz satisfação ao cliente e consequente aumento de participação no mercado (mais receitas). PERGUNTAS E RESPOSTAS 10. Na prática como se dá a aferição da qualidade no processo e no produto? • No processo através de revisões nos modelos e documentação, verificando se estão em conformidade com os requisitos, com os padrões da empresa e em conformidade com o modelo anterior. • No produto através de testes durante a fase de implementação (testes unitários e testes integrados) e durante a fase de testes (testes de sistema e homologação). PERGUNTAS E RESPOSTAS 20 11. Por que empresas buscam certificações de Qualidade? • Exigências de empresas que necessitar os serviços do fornecedor, como orgão governamental, empresa multinacional. • Organizar os processos da empresa para um crescimento, que traz em si a necessidade de certificação 12. O que garante uma certificação? • Que o fornecedor foi avaliado e julgado por um organismo certificador (ISO/IEC, NBR) 13. A certificação é para sempre? • NÃO, a empresa é avaliada de tempos em tempos 14.Existem certificações específicas para o processo e produto de software? • Sim, tanto para garantir um processo de qualidade, como para garantir um software de qualidade PERGUNTAS E RESPOSTAS Referências Bibliográficas • KOSCIANSKI, A. e SOARES, M. S. Qualidade de Software. NOVATEC. • PRESSMAN, R. S. Engenharia de Software. McGraw Hill, • Notas de Aula do Prof. David Zanetti, Qualidade de Software - Unicarioca
Compartilhar