Unidade 03completa
Unidade 03completa
Unidade 03completa
GERENCIAMENTO DE QUALIDADE
DE SOFTWARE - PADRÕES, NORMAS
E MODELOS
2
• O objetivo principal da gerência de qualidade é obter assertividade
e produtividade durante a execução de nossas atividades.
http://blogdoscursos.com.br/wp-content/uploads/5-
ti/2013/10/CAPA3.jpg http://www.go2web.com.br/fotos/30072014_113122_qualidade-software.png
3
• Na área de Engenharia de Software, Roger Pressman (2011) define qualidade
como “Conformidade a requisitos funcionais e de desempenho explicitamente
declarados, a padrões de desenvolvimento claramente documentados e a
características implícitas que são esperadas de todo software profissionalmente
desenvolvido”.
https://www.prosystemnet.com.br/wp-content/uploads/2018/02/noticia_113917.jpg
4
TOTAL QUALITY MANAGEMENT (TQM)
https://www.6sigma.us/wp-
content/uploads/2017/02/TQM-new-768x576.jpg
5
Os seguintes elementos-chave do TQM podem ser resumidos em:
6
QUALIDADE DE SOFTWARE
7
GARANTIA E CONTROLE DA QUALIDADE DE SOFTWARE
https://www.researchgate.net/profile/Wilma_Araujo/publication/240972026/figure/fig1/AS:46
4585326108677@1487777181916/Figura-1-Relacao-entre-sistema-de-gestao-garantia-e- 8
controle-da-qualidade.png
Controle de qualidade é voltada para o monitoramento de resultados
específicos do projeto, ou seja, a detecção de defeitos, executada pelo
uso de técnicas que incluem revisões por pares, teste e análise de
tendências, entre outras.
https://www.researchgate.net/profile/Wilma_Araujo/publication/24097202
6/figure/fig1/AS:464585326108677@1487777181916/Figura-1-Relacao-
entre-sistema-de-gestao-garantia-e-controle-da-qualidade.png
9
PADRÕES, NORMAS E MODELOS DE QUALIDADE DE
SOFTWARE
https://isomaisfacil.com/wp-
content/uploads/2016/11/Normas.png https://avanziquimica.com.br/wp-
content/uploads/2019/06/Selo-de-
10
qualidade.png
A tabela a seguir apresenta algumas normas ISO aplicadas à
qualidade de software, focadas em produto ou processo de software.
https://microio.pt/wp-
https://www.primecontrol.com.br/wp-content/uploads/2016/08/mps-br-636x375.gif
content/uploads/2017/07/CMMI-L2-566x372.jpg
12
O principal propósito do CMMI é fornecer diretrizes baseadas em
melhores práticas para a melhoria dos processos e habilidades
organizacionais, cobrindo o ciclo de vida de produtos e serviços
completos, nas fases de concepção, desenvolvimento, aquisição,
entrega e manutenção.
https://microio.pt/wp-content/uploads/2017/07/CMMI-L2-566x372.jpg
13
CMMI
14
TABELA 17 – ÁREAS-CHAVE DE PROCESSOS DE ENGENHARIA DE SOFTWARE QUE
UTILIZAM O MODELO CMMI
15
FONTE: O autor
MELHORIA DE PROCESSO DE SOFTWARE BRASILEIRO (MPS.BR)
https://www.primecontrol.com.br/wp-content/uploads/2016/08/mps-br-636x375.gif
16
O MPS.BR é dividido em sete níveis de maturidade, processos e
atributos.
Mostrar esta figura na hora que estou gravando para eu
poder explica-la.
18
FONTE: Antonioni (2007)
COMPARAÇÃO CMMI
E MPS.BR
20
Unidade 3 - TÓPICO 2
MÉTODOS ÁGEIS
Prof. Anelice Cajado Aguiar
Nesta videoaula, discutiremos o TÓPICO 2 da Unidade 3
do livro de estudos da disciplina de Engenharia e Projeto de
Software sobre MÉTODOS ÁGEIS.
23
• A indústria de software, a partir da metade de década de 1990,
observando a burocratização e a demora no desenvolvimento,
inflexibilidade e falta de qualidade no software, repensou e
discutiu a possibilidade de criar uma metodologia que usasse
uma forma ágil de desenvolver, diminuindo os custos e
minimizando erros no software.
• Em 2001, surgiram, pelo manifesto ágil que traz as principais
regras, princípios e práticas das metodologias ágeis.
https://miro.medium.com/max/1313/0*boSsDk34JXd8M0yj.gif
https://encrypted-
tbn0.gstatic.com/images?q=tbn%3AANd9GcQYU3ehXbBgFOuIpyfjuyb2AYJWN2ovh41gH1
Ua6VAsWlhyoJc6
24
O manifesto contém quatro principais valores:
https://s3.amazonaws.com/blog-geek-midia/wp-
content/uploads/2019/12/20213352/productivity-1995786_1280-
750x410.jpg
25
A equipe que criou o “Manifesto de Desenvolvimento Ágil” de
Software partiu da seguinte premissa, ou seja, se neste trabalho
passaram a valorizar:
• Indivíduos e interações mais que processos e ferramentas.
• Software funcionando mais que documentação abrangente.
• Colaboração com o cliente mais que negociação de contratos.
• Responder à mudança mais que seguir um plano.
https://lh3.googleusercontent.com/proxy/WgSFi5ouuk3ik4bn6roCAC4ue3ypEvYOqXO7bxp7VlkU4X04sHwteSUWx
LygRRoeJNWTpKehRISnqUOL6oFQdGqD5AsVEUoBsLiExdk9PFPu1fh80ElLX6ttE5mZmYfYZzHqzO0DqpeNIOt
3aKns 26
Entre todos os métodos ágeis, podem-se citar como
exemplo:
• Scrum.
• Extreme Programming.
• Adaptative Software Development (ASD-
Desenvolvimento de software adaptativo).
• Dynamic System Development Method (DSDM- Método
de Desenvolvimento de Sistema Dinâmico).
• Crystal Clear.
• Feature-Driven Development (FDD- Desenvolvimento
baseado em recursos), entre outros.
27
SCRUM
• São realizadas reuniões curtas, nas quais o time verifica as decisões que devem
ser tomadas e os recursos do product backlog que entram nos sprints. Elas
também decidem quem trabalha nos sprints e quanto tempo dura cada tarefa.
https://lh3.googleusercontent.com/52i-JkaY-
jyDeHcUS40B4skNRCLyrefe2zraZ_JRMbEroEe72OZ4S2EAiLASVbQcJJILreg4VDoNR5z0tyNZmEd 28
Cl60mqOHW7gk3dGzdyuRbYQGAMYOx_KX9kmi0EEUlmm4FwLAC
• Um líder de equipe, chamado Scrum Master, conduz a reunião e avalia as
respostas de cada integrante. A reunião Scrum, realizada diariamente, ajuda a
equipe a revelar problemas potenciais o mais cedo possível.
https://lh3.googleusercontent.com/52i-JkaY-
jyDeHcUS40B4skNRCLyrefe2zraZ_JRMbEroEe72OZ4S2EAiLASVbQcJJILreg4VDoNR5z0tyNZmEdCl
29
60mqOHW7gk3dGzdyuRbYQGAMYOx_KX9kmi0EEUlmm4FwLAC
• No Scrum, a cada dia, é realizada uma reunião, analisando o que
foi produzido no dia anterior, e o que será produzido no dia atual.
Essa reunião é chamada de Daily Scrum e acontece normalmente
no início da manhã.
• Ao fim de um Sprint, a equipe apresenta os requisitos e
funcionalidades desenvolvidos em uma Sprint Review Meeting.
Após uma retrospectiva, a equipe de desenvolvimento passa para o
planejamento do próximo Sprint. E, assim, segue o ciclo.
https://lh3.googleusercontent.com/52i-JkaY-
jyDeHcUS40B4skNRCLyrefe2zraZ_JRMbEroEe72OZ4S2EAiLASVbQcJJILreg4VDoNR5z0tyNZmEdCl60mqOHW7gk3dGzdyuRbY
30
QGAMYOx_KX9kmi0EEUlmm4FwLAC
EXTREME PROGRAMMING (XP)
31
• Com o projeto em mãos, começa a codificação em dupla: dois
desenvolvedores sentam lado a lado e concentram-se no código − além de
uma técnica de escrever código, ainda precisa de um aprendizado social e
isso leva um tempo para ser aperfeiçoado; o desenvolvedor sempre precisa
ter em mente que a refatoração do código precisa ser constante, quando algo
não é mais usado, deve ser removido e, quando parte do código é antiga, ela
deve ser renovada.
https://miro.medium.com/max/1000/0*Urf_SzeJzTkCP1gM
32
ADAPTATIVE SOFTWARE DEVELOPMENT (ASD) - Desenvolvimento
Adaptativo de Software
• Foi criado para auxiliar no desenvolvimento de sistemas e softwares
grandes e complexos. Concentra-se na colaboração humana e na auto-
organização da equipe, com o cliente sempre presente, sendo que o
software será iterativo e incremental.
https://0901.static.prezi.com/preview/v2/mmkjrmkbpb2isgaxe3xujp767p6jc3sachvcdoaizecfr3d
nitcq_3_0.png
33
O ASD é incorporada por três fases:
• Especulação:
• Declara a missão do projeto.
• Identifica as restrições do projeto.
• Realiza o levantamento dos requisitos básicos.
• Colaboração:
• Filosofia de que pessoas motivadas trabalhando juntas
multiplicam seus talentos e resultados.
• Aprendizado:
• Clientes/usuários informam feedback.
• Revisão dos componentes de software desenvolvidos.
• Avaliação do desempenho da equipe.
34
DYNAMIC SYSTEM DEVELOPMENT
METHOD (DSDM)
A metodologia de desenvolvimento de Sistemas Dinâmicos
É uma metodologia incremental que enfatiza principalmente a participação do
usuário final.
Possui cinco fases definidas em três ciclos iterativos: pré-projeto, ciclo de vida e
pós-projeto.
https://newline.tech/wp-content/uploads/2018/03/Illustration_for_nlt_blog_dsdm.jpg
https://image2.slideserve.com/4048989/ciclo-de-vida-l.jpg
35
CRYSTAL CLEAR
• Tem foco na gestão de pessoas, possibilitando a adaptação a diversos
projetos, focando nas habilidades e talentos de cada pessoa envolvida.
• Apresenta valores comuns a outras metodologias ágeis, como a
comunicação eficaz, a entrega frequente, papéis predefinidos e equipes com
especialistas.
• Está voltada para equipes de dois a oito membros que estejam na mesma
sala. Ela não é feita para empresas padronizadas, pois sua metodologia não é
completamente especificada, muda de acordo com os pontos fortes e fracos
da organização.
https://0701.static.prezi.com/preview/v2/ughvfb3teiiu2pfour7pmwewmh6jc3sachvcdoaizecfr
3dnitcq_3_0.png
36
FEATURE-DRIVEN DEVELOPMENT (FDD) –
Desenvolvimento Guiado por Funcionalidade
• Quando aplicado o FDD, a equipe precisa estar preparada para trabalhar com
funcionalidades como o objeto primário. O primeiro passo é criar um modelo
abrangente, o qual irá identificar os fundamentos do projeto, que consequentemente
sofrerá alterações no decorrer do andamento.
• Com o modelo base pronto, precisa-se construir uma lista de funcionalidades a
serem desenvolvidas, coordenadas pelo arquiteto e identificar os recursos que o
Software deve ter. Os próximos passos no FDD são conhecidos como “Design by
feature” e “Build by feature”, e estão relacionados com a maior parte do projeto,
envolvendo designer, desenvolvedor, testadores e qualquer outro membro necessário
para a conclusão do projeto.
37
U3 - TÓPICO 3
VERIFICAÇÃO, VALIDAÇÃO E
TESTES DE SOFTWARE
PROFESSORA: ANELICE CAJADO AGUIAR
Nesta videoaula, veremos o TÓPICO 3 da Unidade 3 do
livro de estudos da disciplina de Engenharia e Projeto de
Software sobre VERIFICAÇÃO, VALIDAÇÃO E
TESTES DE SOFTWARE.
40
• O principal objetivo do teste de software é auxiliar na busca de
um produto de software com o mínimo de erros possível.
41
Requisitos não funcionais
A norma ISO/IEC 9126 (2015) caracteriza os requisitos não funcionais referentes
à qualidade dos produtos usando os seguintes conjuntos:
• Funcionalidade: Adequação; Acurácia; Interoperabilidade; Segurança de acesso.
• Confiabilidade: Maturidade; Tolerância a falhas; Recuperabilidade.
• Usabilidade: Inteligibilidade; Operacionalidade; Atratividade.
• Eficiência: Comportamento em relação ao tempo; Comportamento em relação
aos recursos.
• Manutenibilidade: Analisabilidade; Modificabilidade; Estabilidade;
Testabilidade.
• Portabilidade: Adaptabilidade; Capacidade para ser instalado; Coexistência;
Capacidade de ser substituído.
42
A utilização de técnicas de levantamento de requisitos é recomendada por diversos autores de
engenharia de requisitos e personalidades da área Engenharia de Software. Algumas das principais
técnicas serão apresentadas a seguir, de forma resumida:
43
• Observação: observar o comportamento e o ambiente do indivíduo que toma
decisões pode ser uma forma bastante eficaz de levantar informações que,
tipicamente, passam despercebidas usando outras técnicas.
• Levantamento Orientado a Ponto de Vista: tem como objetivo captar pontos
de vista dos usuários, analisar as diferenças e similaridades, formando, assim, o
requisito do sistema.
• Etnografia: forma utilizada para entender a organização, sua cultura e o
objetivo que o sistema deve alcançar.
• Caso de Uso: especifica um comportamento externo de um sistema descrevendo
um conjunto de sequências de ações realizadas pelo sistema para produzir um
resultado de valor observável por um ator, realizado através de uma interação
típica entre um ator (usuário, outro sistema computacional ou um dispositivo) e
um sistema.
44
45
Etapas de teste de Software: VALIDAÇÃO X VERIFICAÇÃO
https://encrypted-
tbn0.gstatic.com/images?q=tbn%3AANd9GcQTto3ZCfgaRusEx
VdySNI7m_Rfd60UTU2p7mqMJrpycW-I3GV5
46
• Realizar os testes nada mais é que entrar com vários dados de maneira diferente
e analisar os dados de saída e seu comportamento.
https://arquivo.devmedia.com.br/marketing/img/guia
-testes-de-software-34403.png 47
• De acordo com um estudo do Standish Group, no ano de 2014, cinco dos oito
principais fatores de falhas em projetos estão relacionados a requisitos (Tabela
1). Estes são: requisitos incompletos, baixo envolvimento do cliente,
expectativas não realistas, mudanças nos requisitos e requisitos desnecessários.
https://arquivo.devmedia.com.br/marketing/img/guia
-testes-de-software-34403.png 48
• Carvalho e Chiossi (2001) apontam algumas dificuldades no
processo de obtenção de requisitos:
49
• Embora seja óbvio, é importante que se chame a atenção para o fato de que os
requisitos são a base sobre a qual serão apoiadas todas as demais atividades do
processo de software.
• Se os requisitos não forem devidamente especificados, o sucesso do projeto poderá
estar comprometido desde seu início.
• Simpoi publicou em 2008 que 70% dos problemas encontrados em softwares são
de especificação, ou da falta dela, sendo que apenas 60% das informações formais
e informais estão documentadas.
• Uma das principais razões para isso encontra-se no perfil dos desenvolvedores, de
modo geral, definido por pessoas talentosas, que não têm interesse em seguir
disciplinas ou normas, consideram seu trabalho como algo artístico e criativo, ao
invés de algo sujeito a procedimentos de engenharia de requisitos.
50
Na área de testes, existem diversos tipos que são aplicados em estágios diferentes.
https://image.slidesharecdn.com/testesdesoftware-131109134520-phpapp01/95/testes-
de-software-15-638.jpg?cb=1384004808
51
Para cada um desses fatores, ou dimensões de qualidade, como
denomina o referido processo, existe um ou mais tipos de teste
associado:
52
Os testes de software são executados em diferentes níveis (ou
estágios) do desenvolvimento de um software.
53
• Teste de Unidade: é realizado em cada componente do programa isoladamente,
para verificar se ele funciona de forma adequada aos tipos de entradas esperadas.
Normalmente, é realizado em um ambiente controlado, verificando as estruturas de
dados internas, a lógica e as condições limite para os dados de entrada e saída.
54
• Teste de Sistema: avalia o software em busca de falhas utilizando o mesmo como
se fosse um usuário final. É neste estágio que são realizados os testes de carga,
performance, usabilidade, compatibilidade, segurança e recuperação.
55
EQUIPE DE TESTE
https://image.slidesharecdn.com/testedesoftwareenvio-141101095011-conversion-gate02/95/teste-de- 56
software-palestra-corporativa-28-638.jpg?cb=1414835550
ERROS DE SOFTWARE
Nem todas as falhas são consideradas realmente bug, pois pode ser
um caso de má utilização do software por parte do usuário. Para que
um bug ocorra, de acordo com Molinari (2003), basta que uma ou
mais das quatro regras da indústria de software, apresentadas a
seguir, ocorram simultaneamente:
• Software não faz algo que a especificação do produto diz que faz.
• Software faz algo que na especificação diz que não é para fazer.
• Software faz algo que a especificação do produto não menciona.
• Software é difícil de entender, difícil de usar, lento ou,
simplesmente aos olhos do testador, “o usuário não gostará”.
https://thumbs.dreamstime.com/z/colaborador-do-erro-de-software-da-
aplica%C3%A7%C3%A3o-inform%C3%A1tica-do-problema-67902794.jpg
57
PRÁTICAS DE DESENVOLVIMENTO
As práticas de desenvolvimento na área de testes são:
https://i0.wp.com/blog.sciensa.com/wp-content/uploads/2017/08/tdd_flow.gif?fit=489%2C511
58
• DDD – DOMAIN DRIVEN DESIGN: no desenvolvimento guiado ao
domínio, o foco é no propósito que o software deve atender, é a automatização
de um processo de negócio. O DDD traz abordagens de como fazer isso, como
atender a um domínio complexo de informações.
https://miro.medium.com/max/540/0*ryNBF8_dnh7Eihkz
59
• ATDD - Acceptance Test Driven Development: o
desenvolvimento guiado por testes de aceitação; o trabalho ocorre
em resposta a testes de aprovação.
https://computerworld.com.br/wp-content/uploads/2018/06/software_5_0.jpg
60
U3 - TÓPICO 4
GOVERNANÇA DE
TECNOLOGIA DA
INFORMAÇÃO
Prof. ANELICE
Nesta videoaula, falaremos sobre o TÓPICO 4 da Unidade
3 do livro de estudos da disciplina de Engenharia e Projeto
de Software sobre GOVERNANÇA DE TECNOLOGIA
DA INFORMAÇÃO.
63
Governança de TI é um conjunto de práticas, padrões e relacionamentos
estruturados, assumidos por executivos, gestores, técnicos e usuários de TIC de
uma organização, com a finalidade de garantir controles efetivos, ampliar os
processos de segurança, minimizar os riscos, ampliar o desempenho, otimizar a
aplicação de recursos, reduzir os custos, suportar as melhores decisões e
consequentemente alinhar TI aos negócios.
64
• Um dos grandes desafios da Governança de TI, além de manter o alinhamento aos propósitos da
organização, é manter sincronizados os elementos componentes da própria TI, cuja
administração deve prezar pela melhor forma de utilizá-los e também estabelecer a garantia da
continuidade dos negócios da empresa.
• Dois modelos muito bem conhecidos pela área de Governança de TI são o COBIT (Control
Objectives for Information and Related Technology) e o ITIL (Information Technology
Infrastructure Library).
65
• O COBIT é um framework voltado à governança de TI e se baseia
em indicadores de performance, podendo monitorar quanto a TI
está agregando em valores aos negócios da organização.
66
Então o CobiT:
67
O modelo foi iniciado e estruturado em 34 processos que estão
inter-relacionados, atendendo quatro domínios e estão divididos
em: planejar e organizar; adquirir e implementar; entregar e dar
suporte; e monitorar e avaliar.
FIGURA 71 – FRAMEWORK DO COBIT
FONTE: Framework do COBIT. Disponível em: <http://www.teclogica.com.br/blog/wpcontent/
uploads/2012/10/governan%C3%A7a_ti_framework_cobit.png>. Acesso
em: 29 set. 2015.
A figura
mostra os
domínios do
COBIT:
68
• O COBIT está organizado em quatro domínios que podem ser
caracterizados pelos seus processos e pelas atividades executadas
em cada fase de implantação da Governança Tecnológica.
• Os domínios do COBIT são: (1) Planejamento e Organização, (2)
Aquisição e Implementação, (3) PDI (Plano Diretor de
Informática) e (4) Entrega e Suporte.
https://image.slidesharecdn.com/mod3introduoaocobit-110225154053-
phpapp02/95/curso-completo-cobit-41-78-638.jpg?cb=1428011186
69
• A ITIL fornece orientação para todos os tipos de provedores de serviço de
TI. É nada mais que um guia de boas práticas desenvolvido para auxiliar as
organizações que pretendem desenvolver melhorias em seus processos,
garantindo, ao provedor de serviços, entender os serviços que estão sendo
fornecidos, facilitando o alcance dos resultados que seus clientes querem
alcançar, visando aos custos e riscos.
70
A biblioteca ITIL foi criada na década na 1990, com base na qualidade dos serviços
de TI oferecidos pelo governo britânico, para habilitar o incremento da maturidade
do processo de gerenciamento de TI. Seu ciclo de vida do serviço compreende um
processo composto por: Estratégia, Desenho, Transição, Operação e Melhoria
Continuada.
71
• Cada processo envolve uma entrada e saída e, a partir da entrada
da informação, as atividades são desenvolvidas, gerando a
consequente saída.
72
Em ITIL, um serviço é um meio de entregar valor ao cliente,
facilitando os resultados que o cliente deseja alcançar, sem ter que
assumir custos e riscos. O serviço de TI se caracteriza por ser
fornecido por um provedor de serviços de TI, composto pela
combinação de Tecnologia, Pessoas e Processos.
73
A ITIL descreve três tipos de provedores:
74
MATRIZ RACI (RESPONSIBLE, ACCOUNTABLE, CONSULTED, INFORMED)