O documento discute a importância da qualidade do código-fonte para o desempenho e capacidade de aplicações. A qualidade do código impacta diretamente a performance, capacidade e manutenibilidade de software. Normas como ISO 9126 e 25010 estabelecem modelos para avaliação da qualidade de software.
Agenda Versão Final - CMG 14a. conferencia nacional
ISO 9126 e Qualidade de Software
1. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
17/05/2017
ADOLFO ERIC PETERSEN
Qualidade do Código Fonte na Performance e
Capacidade de Aplicação
2. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Performance e Capacidade
O gerenciamento de capacidade fornece análises preditivas que
permitem aos usuários simularem alterações nos componentes de
aplicativos e infraestrutura para ajudar a garantir que os objetivos de
tempo de resposta do aplicativo (performance) sejam atendidos assim
que o aplicativo for implantado no ambiente de produção.
O gerenciamento de capacidade fornece uma visão preditiva da
infraestrutura necessária para otimizar as operações de TI, incluindo
suporte para novos workloads e workloads que mudam ao longo do
tempo.
De forma tangível, esse insight preditivo não só ajuda a dimensionar
o os ambientes para os aplicativos como também ajuda a reduzir o
número de problemas de desempenho frequentemente incorridos na
implantação de um novo aplicativo ou release.
3. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Qualidade e Performance
A norma ISO/IEC 9126, ou conjunto de normas que tratam deste assunto no
âmbito da ISO, estabelece um modelo de qualidade com os seguintes
componentes:
•Desenvolvimento: Cuja qualidade afeta a qualidade do produto de software
gerado e é influenciado pela natureza do produto desenvolvido;
•Produto: Compreende os atributos de qualidade do produto (sistema) de
software. Estes atributos de qualidade podem ser divididos entre atributos
internos e externos. Estes se diferenciam pela forma como são aferidos (interna
ou externamente ao produto de software) e em conjunto compõem a qualidade
do produto de software em si;
•Qualidade em Uso: Consiste na aferição da qualidade do software em cada
contexto específico de usuário é também a qualidade percebida pelo usuário.
Fonte: https://www.iso.org/standard/22749.html
4. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Qualidade do Software
Qualidade em Uso: Capacidade de um produto de software de influenciar a
eficácia, produtividade, segurança e satisfação de usuários de modo a satisfazer
suas reais necessidades ao utilizar o produto de software para atingir suas metas
em contextos de uso especificados.
Qualidade Externa: capacidade de um produto de software de influenciar o
comportamento de um sistema para satisfazer necessidades explícitas e implícitas
quando o sistema que inclui o software for utilizado em condições especificadas.
Qualidade Interna: capacidade de um conjunto de atributos estáticos de um
produto de software de satisfazer necessidades explícitas e implícitas quando o
produto de software for utilizado em condições especificadas.
Atributo: propriedade inerente ou característica de uma entidade que pode ser
distinguida quantitativamente ou qualitativamente de forma humana ou
automática (ISO/IEC 15939)
5. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Qualidade do Software
6. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Funcionalidade: Capacidade do produto de software de prover funções que
atendam necessidades explícitas e implícitas, quando o software estiver sendo
utilizado sob condições especificadas.
Confiabilidade: Capacidade do produto de software de manter um nível de
desempenho especificado, quando usado em condições especificadas.
Usabilidade: Capacidade do produto de software de ser compreendido,
aprendido, operado e atraente ao usuário, quando usado sob condições
especificadas.
Eficiência: Capacidade do produto de software de apresentar desempenho
apropriado, relativo à quantidade de recursos usados, sob condições especificadas.
Manutenibilidade: Capacidade do produto de software de ser modificado. As
modificações podem incluir correções, melhorias ou adaptações do software
devido a mudanças no ambiente e nos seus requisitos ou especificações
funcionais.
Portabilidade: Capacidade do produto de software de ser transferido de um
Qualidade do Software
7. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Qualidade do Software
8. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Roger Pressman (Engenharia de Software. McGraw Hill, 2002) faz as
seguintes colocações sobre qualidade de software:
•"Definir explicitamente o termo qualidade de software, quando o mesmo
é dito“.
•"Criar um conjunto de atividades que irão ajudar a garantir que cada
produto de trabalho da engenharia de software exiba alta qualidade“.
•"Realizar atividades de segurança da qualidade em cada projeto de
software“.
•"Usar métricas para desenvolver estratégias para a melhoria de processo
de software e, como conseqüência, a qualidade no produto final“.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Qualidade do Software
9. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Qualidade do Software
10. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
ISO 9126 e 14598
11. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Systems and software Quality Requirements
and Evaluation (SQuaRE)
A ISO/IEC 25010 é uma norma
disponibilizada em 2011 para
qualidade de produto de software.
Define modelos de avaliação da
qualidade de software e sistemas.
Substituiu a Norma ISO/IEC 9126.
A norma ISO/IEC 25010 define as
características de qualidade que todos
os softwares devem ter. E cumprir o
que a norma determina, significa
alcançar um nível muito alto de
qualidade no software que será
entregue e surgiu com intuito de
substituir a ISO 9126 trazendo ainda
mais benefícios, tais como
compatibilidade e segurança.
Fonte: ISO/IEC 25010:2011 - Systems and software engineering --
Systems and software Quality Requirements and Evaluation (SQuaRE) --
System and software quality models
12. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Código COBOL – Exemplo
13. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Código Java – Exemplo
LDAP Injection é um ataque
usado para explorar aplicações
baseadas na web que
constroem declarações LDAP
com base na entrada do
usuário.
Quando um aplicativo não
consegue limpar
adequadamente a entrada do
usuário, é possível modificar
as declarações LDAP
utilizando um proxy local.
Isso pode resultar na execução
de comandos arbitrários como
a concessão de permissões
para consultas não
autorizadas, e modificação de
conteúdo dentro da árvore
LDAP.
As mesmas técnicas de
exploração avançadas
disponíveis no SQL Injection
pode ser igualmente aplicada
na LDAP Injection.
14. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
SQL – Impacto na Qualidade
Em geral, os prazos para desenvolvimento e manutenção de programas fazem com que o processo de codificação tenha seu foco na eficácia
(busca do resultado final), relegando sua eficiência (busca do resultado com a melhor qualidade) a um segundo plano (Reativo).
Existem estudos indicando que quase 80% dos problemas de performance em banco de dados são causados por códigos SQL mal elaborados e
que, em geral, um número pequeno de QUERIES, é responsável pela maior parte do consumo decorrente do uso do banco de dados.
Nesse contexto, surge a importância de um processo de inspeção continua para a codificação SQL e que seja capaz de apontar código
inadequado antes que seja promovido ao ambiente produtivo (Proativo).
15. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Conclusão
• O tipo de software que se usa pode fazer uma empresa ou quebra-la.
• Com o desenvolvimento de software suportando as operações corporativas, a
qualidade é algo que se deve estar levando muito a sério.
• O bom software é o meio para a previsibilidade (ou como se evita retrabalho),
produtividade e positividade na marca da empresa e nas relações com os
clientes.
• Não se faz necessário mencionar que, sendo capaz de maximizar a qualidade
do software da sua empresa cria-se um efeito dominó que faz um negócio ser
bem sucedido.
• Em contrapartida, a falta de qualidade de software pode causar grandes perdas
para as empresas.
• O fraco desenvolvimento de software ou design - desde questões como
lentidão e falhas até funcionalidade e aplicação inadequada, limita o
crescimento da empresa. Isso afeta negativamente a produtividade do pessoal,
perda de clientes e mancha a imagem da empresa no mercado.
16. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Questões
17. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Fim
OBRIGADO!!!!!