Details
Nothing to say, yet
Big christmas sale
Premium Access 35% OFF
Details
Nothing to say, yet
Comment
Nothing to say, yet
The concern for software quality is inevitable, as low quality has negative impacts on both customers and software companies. Examples of software failures, such as Oracle and the WannaCry attack, highlight the importance of quality. Different stakeholders have varying views on quality, making it a complex concept. Quality can be defined through various approaches, such as transcendental, product-based, process-based, user-based, and value-based. The ISO 9000 standards help define quality characteristics. Factors affecting software quality include technology, developer skills, project management, and the development process. Preventing and evaluating quality, as well as resolving failures, are important steps in achieving high-quality software. The ISO 25.000 standards define quality characteristics and consider different perspectives. Quality of the product, quality of use, and quality in use are interconnected. The quality of software is related to functional adequacy, efficiency, co Aula 1. Projeto de Software. A preocupação com a qualidade é inevitável no desenvolvimento de software. A baixa qualidade tem impactos negativos para os clientes de uma empresa de software. O cliente perde negócios se o sistema sair do ar ou com frequência perde vendas. O cliente perde dados. Uma falha no software geralmente perde-se informações importantes. O cliente perde tempo. Um software de baixa qualidade atrasa as operações. Precisa ser reiniciado frequentemente. O cliente perde dinheiro. A má qualidade de software leva a perdas financeiras para a empresa. Porém, com a má qualidade uma empresa de software também tem impactos negativos. Aumento de custos devido a maior necessidade de suporte, devolução de dinheiro da compra ou pagamento de multas. Processos judiciais. O cliente pode pedir indenização pelas perdas ocorridas. Perda de imagem, reputação, perda de clientes. Esses impactos ficam evidentes nas empresas quanto se realiza análise quantitativa dos prejuízos gerados pelas falhas de software. Aqui nós temos alguns exemplos. Exemplos. Oracle. Atualiza Java, mas experts dizem que falhas continuam. O governo americano advertiu para perigosa falha no programa Java. Segundo especialistas, a atualização não protege os PCs contra ataques. Então isso aqui é um exemplo de falha de software. Uma atualização do software Java para navegação web sem proteção contra ataque de hackers. Exemplo 2. Ataque na WannaCry. É mesmo sem precedentes. Exemplos de falhas de software. Infectou 300 mil computadores em quatro dias usando uma brecha do Windows. Próximo exemplo. Exemplos de falhas de software. Explosão Ariane em 5 de 1996 devido à reutilização de componente de software. Este componente gerou exceção por erro. Assim ocorreu uma falha no sistema inicial. Prejuízo de 500 milhões de dólares. Outra falha. Exemplos de falhas ainda. Overdose de radioterapia mata pacientes de câncer nos Estados Unidos. Em 2000 no Panamá, 28 pacientes receberam overdose de raios gama para o tratamento de câncer. 5 morreram e 15 desenvolveram sérias complicações. Isso ocorreu porque um software que dosava a radiação falhou. Com base nesses exemplos conclui-se que é importante ter qualidade do software para evitar falhas de maneira proativa. Mas é improvável que um software não tenha defeitos. Ter qualidade é atender corretamente os requisitos. Mas o que acontece se um software não atende a todas as necessidades dos stakeholders? Será que a qualidade varia de acordo com a necessidade do usuário? Esse aspecto é importante porque um stakeholder pode ter uma visão de qualidade bem diferente do outro. Para entender o que é qualidade é importante se ater a cinco abordagens propostas por David Garvin. 1. Na visão transcendental qualidade é o que se conhece, mas não se define. Exemplo, uma obra de arte sabe-se que tem valor, mas não se sabe porquê. 2. Baseada em produto, a qualidade são características inerentes ao produto. Quanto maior ou menor o valor dessas características, melhor o produto. Por exemplo, memória de um computador visa-se maior capacidade. 3. Baseado em processo manufatura, a qualidade é conformidade à especificação. Isso envolve um processo adequado a um controle de qualidade, reduzindo custos e sem erros. 4. Baseado na visão do usuário, se um produto ou serviço atende suas expectativas, então tem qualidade. 5. Baseado em valor, a qualidade é considerada em termos de custo e preço, ponderando o valor percebido pelo consumidor. Qual a definição de qualidade? Os Gurus da Qualidade Feigenbaum, Armando ou Armand Feigenbaum Composição total das características de marketing, engenharia e manutenção de um produto ou serviço, por meio das quais o mesmo produto ou serviço, quando em uso, atenderá as especificações à expectativa do cliente. Joseph Moses Duran Adequação ao uso do cliente por meio de percepção das suas necessidades e aperfeiçoamentos introduzidos a partir de patamares já alcançados. Ausência de deficiências, ou seja, quanto menos defeitos, melhor a qualidade. Crosby, Philip Crosby Conformidade com as exigências do consumidor. Denning, W. Edwards Denning É o resultado da perseguição às necessidades dos clientes, estabilidade e baixa variabilidade dos processos. Kaoru Ishikawa É o que realmente traz satisfação ao cliente. Obviamente está falando da qualidade. É realmente o que traz satisfação ao cliente, adquirida por meio da rápida percepção das suas necessidades, adequação ao uso dos produtos e homogeneidade destes. Gineshi Taguchi Falta de qualidade de um produto é a perda monetária mínima imposta à sociedade a partir do instante que o produto é entregue ao consumidor. Agora vamos falar de qualidade sobre a ISO 9000. Grau no qual um conjunto de características inerentes satisfaz a requisitos. Nota 1. O termo qualidade pode ser usado com adjetivos tais como má, boa ou excelente. Nota 2. Inerente ao contrário de atributo significa a existência de alguma coisa, especialmente como característica permanente. Pelos conceitos apresentados, fica mais fácil responder a pergunta colocada inicialmente. Além disso, podemos definir o que é qualidade. Um produto ou serviço de qualidade é aquele que atende perfeitamente, de forma confiável, de forma acessível, de modo seguro e no tempo certo às necessidades dos clientes. Falcone 1992 A qualidade de software está mais associada à visão do usuário e à visão da manufatura especificação. Segundo a norma IEEE 610, qualidade é o grau em que o sistema, componente ou processo atende os requisitos especificados e as expectativas e as necessidades dos clientes ou do usuário. Mas não é fácil desenvolver um software com alta qualidade, sendo difícil descrever as especificações precisas. E ainda existem diversos stakeholders que têm diferentes pontos de vista que são divergentes. É difícil medir algumas características no desenvolvimento de software. Exemplo, a manutenibilidade. A manutenibilidade é definida pela norma brasileira 5.462 da ABNT como a capacidade de um item ser mantido ou recolocado em condições de executar suas funções requeridas, sob condições de uso especificadas, quando a manutenção é executada sob condições determinadas e mediante procedimentos e meios prescritos. No projeto de desenvolvimento de software, a manutenibilidade tem elevado o grau de subjetividade. Ao desenvolver um software, existem alguns fatores que afetam a sua qualidade. De acordo com Sanderville, 2011, menciona que a qualidade de um software está relacionada a Tecnologia empregada para o desenvolvimento. Memória, processador, linguagens de programação ajudam a melhorar a qualidade do software. Qualidade das pessoas desenvolvedoras. Quanto mais capacitadas, melhor será o desenvolvimento. Gerência do projeto. Em termos de custos, tempo e cronograma afetam diretamente a qualidade. Qualidade do processo. Usar procedimentos e técnicas corretas levam a um software melhor. A qualidade do processo está diretamente relacionada aos demais fatores. Não adianta ter tecnologia de ponta se o processo não executar corretamente. A capacidade das pessoas também precisa ser explorada no processo, assim como o controle de custos e tempo. É importante se preocupar com estes fatores para desenvolver um software de alta qualidade. Porém, empresas de software têm custos. Prevenção. Evitar problemas de qualidade. Avaliação. Controlar a qualidade do produto, garantir a qualidade desejada. Resolver falhas. Resolver não conformidades. Como definir o grau de qualidade? Como avaliar o grau de qualidade? O que especificar a qualidade de software? Como especificar para a qualidade de software? A família de normas ISO 25.000 ajuda a definir características de qualidade de um software ou um sistema computacional. Modelo de qualidade considera diferentes visões de qualidade. Qualidade do produto. Qualidade de uso. Cumpre as necessidades e atinja metas do usuário. A qualidade do processo influencia a qualidade do produto. A qualidade do produto tem propriedades internas e externas. Internas. Dentro do produto, não são visíveis ao usuário, eles apenas percebem. Exemplo, quantidade de código de linhas de código. Externas. São visíveis pelos usuários. Exemplo, peças e componentes. Aqui tem um esquema onde você tem a qualidade que está relacionada com essas propriedades internas e externas. Ou seja, a qualidade do processo influencia as propriedades internas e externas. E a qualidade do processo depende das propriedades internas e externas. As propriedades em si, as propriedades internas, influenciam as propriedades externas. E as propriedades externas dependem das propriedades internas. Ou seja, tudo isso é qualidade do produto. A qualidade do produto influencia a qualidade de uso. A qualidade de uso está relacionada ao ambiente usuário que depende do contexto de uso. Pessoas diferentes com opiniões diferentes de software. Então, o fluxo fica maior agora. Então, em vez da qualidade do processo depender apenas das propriedades internas e externas, também passa a ter, então, a influência da qualidade de uso. Ou seja, de acordo com a maneira como você usa esse equipamento, também influencia essa qualidade. E, ou seja, a qualidade em uso depende também das propriedades internas e externas. Ou seja, os contextos de uso, medidas de qualidade em uso. A qualidade do software está relacionada com adequação funcional. Quanto o produto provê funções conforme solicitado pelos stakeholders. Então, também está relacionado a eficiência de execução. Desempenho, dada a qualidade de recursos, processador, rede de memória. Está relacionada também a compatibilidade. Quanto o produto compartilha informações com outros produtos. Está relacionada com usabilidade. Quanto é fácil usar. Está relacionada com confiabilidade. Maturidade no funcionamento, tolerância a falhas. Também está relacionada a segurança, proteção de informações. Está relacionada a manutenibilidade. Quanto é fácil fazer manutenção. Está relacionada a portabilidade. Colocar o produto em vários ambientes. Está relacionada a qualidade de uso do software. Está relacionada também a eficácia, atingir o objetivo de satisfação do usuário. E eficiência, atingir o objetivo de satisfação do usuário com menos recursos. Satisfação do usuário, que é utilidade, confiança, prazer e conforto. Ausência de riscos. Mitigação de riscos econômicos. Saúde, segurança e ambientais. E cobertura, que é flexibilidade de uso. A qualidade é entendida de maneira diferente entre os usuários. Isso dificulta a determinação das características de qualidade importantes para o desenvolvimento do software. Assim, é importante a implantação de procedimentos sólidos para a gestão do projeto de software. Com isso, minimiza oportunidades de falhas. A aplicação de gestão de projetos para melhorar a qualidade de software é fundamental e com é alvo de nossas aulas. Fim da aula 1.