Buscar

SLIDES - AOO Eng - Slides

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 145 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 145 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 145 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
ANÁLISE ORIENTADA A OBJETO
Prof. Esp. Paulo Henrique S. Barbosa
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Sobre
Paulo Henrique Sousa Barbosa (PH)
– WhiteHat Hacker, Pentest e Especialista em Segurança de Informação 
(UNIVERSO-GO), Graduado em Sistemas de Informação (FACIMP)e 
Mestrando em Ciência da Computação (UFG-GO).
– Ajudamos a produzir e testar a próxima geração de treinamento para a 
conscientização da segurança de redes com nossa docência; Desenvolvemos 
formação fácil de estratégias de engenharia anti-sociais e técnicas.
– Fundador da imSec Cyber Security e da Escola Hacker Ético EAD.
– Professor a mais de 9 anos, nas áreas de Redes de Computadores, Sistemas 
Distribuídos e Segurança da Informação.
 Na web: www.escolahacker.com.br / www.imsec.com.br
 E-mail: agenteph@gmail.com / paulo.barbosa@facimp.edu.br
 Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho
 YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
http://www.escolahacker.com.br/
http://www.imsec.com.br/
mailto:agenteph@gmail.com
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Agenda
● Apresentação
● Sobre a Disciplina
● Metodologias
● Avaliações
 Provas – AV1, AV2 e Substitutivas.
● Datas
 A especificar
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
A ideia...
● Ao final desta disciplina, o aluno estará capacitado a utilizar as 
ferramentas e conceitos de análise orientada a objetos, para 
fornecer um modo concreto de representar o entendimento 
dos problemas e requisitos do cliente; elaborar o modelo de 
análise dos sistemas de acordo com as ferramentas 
disponíveis; analisar as funcionalidades e o comportamento de 
sistemas já existentes a partir da leitura dos modelos de 
análise orientados a objetos; aplicar, em ambiente de trabalho 
ou acadêmico, todos os diagramas ligados à UML, de forma 
correta e eficaz; e avaliar a qualidade e completude dos 
sistemas existentes a partir das documentações previamente 
concebidas e ser capaz de indicar quais os diagramas 
necessários. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
A ideia...
● Para tanto, serão abordados diversos conteúdos, incluindo 
modelos de processos da engenharia de software, aspectos 
ligados à gerência de projetos, técnicas de engenharia de 
requisitos, os conceitos gerais de orientação à objetos, UML e 
seus respectivos diagramas.
● O processo de aprendizagem será desenvolvido mediante 
aulas teóricas dialogadas, aulas práticas, debate sobre temas 
previamente selecionados, seminários e elaboração de 
trabalhos individuais e em grupo.
● A avaliação da aprendizagem será processual, realizada por 
meio de aplicação de provas, desenvolvimento de um projeto 
de sistemas e acompanhamento da efetiva participação do 
aluno nas atividades programadas.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Objetivos
● 1. Delinear perfis de clientes, visando à definição de 
suasnecessidades, e gerenciar projetos de sistemas de 
informação.
● 2. Desenvolver modelos para análises de sistemas, de acordo 
com as ferramentas e diretrizes da análise orientada a objetos. 
● 3. Analisar as funcionalidades e o comportamento de sistemas 
já implantados, a partir da comparação com modelos de 
análise orientados a objetos existentes.
● 4. Aplicar, em ambientes de trabalho ou acadêmico, todos os 
diagramas ligados à linguagem unificada de modelagem, de 
forma correta e eficaz.
● 5. Avaliar a qualidade e completude de sistemas existentes, a 
partir da documentação previamente elaborada, e definir quais 
os diagramas adequados. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Conteúdos
● 1. Visão geral de engenharia de software: princípios (formalidade, 
abstração, decomposição, generalização e flexibilização). Modelos de 
processo: clássico, prototipação e evolucionários. Aspectos gerais das 
etapas do processo de desenvolvimento.
● 2. Escopo de projeto de sistema informação. Gerenciamento de projeto de 
sistemas, utilizando o PMBOK: gestão do escopo; tempo; pessoal, e 
riscos. Espectro da gestão: planejamento e acompanhamento do projeto; 
métricas de processo e projeto de software.
● 3. Metodologia RUP: especificação de requisitos (templates RUP). 
Construção do documento de visão: objetivo e abrangência do projeto; 
descrição do problema; partes envolvidas; solução proposta; 
funcionalidades; e restrições do projeto. 
● 4. Engenharia de requisitos de software: processo de engenharia de 
requisitos; técnicas de elicitação de requisitos; e gerenciamento de 
requisitos. Técnicas de prototipação para orientação à definição de 
requisitos. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Conteúdos
● 5. Análise orientada a objetos (AOO): introdução; principais motivações 
para a utilização da orientação a objetos; conceito de orientação a objetos; 
objeto e classe; atributos, operações; polimorfismo; e herança.
● 6. Introdução à linguagem unificada de modelagem (UML): definição; 
princípios da linguagem; tipos de diagramas (caso de uso, classes, 
objetos, pacotes, sequência, máquina de estados, atividadee 
componentes). 
● 7. Modelagem e diagrama de casos de uso: atores; casos de uso; e visão 
inicial de um caso de uso detalhado. Associações: generalização e 
especialização; inclusão; extensão; estereótipos; e fronteira do sistema. 
● 8. Casos de uso: detalhamento (definição de atores principais e 
secundários, resumo do caso de uso, pré condições e pós ondições). Fluxo 
principal: ações do ator; e ações do sistema. Fluxos alternativos. Fluxos 
de exceção. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Conteúdos
● 9. Diagrama de classes: conceitos; atributos e métodos; relacionamentos 
ou associações. Tipos de Associações: binária; n ária; agregação; 
composição; generalização e especialização; e dependência. Interfaces. 
Estereótipos do diagrama de classes.
● 10. Diagrama de objetos: objetivo do diagrama de objetos; vínculos; tipos 
de diagramas e comparação com diagrama de classes. Diagrama de 
Pacotes: pacotes; pacotes contendo pacotes; e estereótipos aplicados a 
pacotes. 
● 11. Diagrama de sequência: atores; linha de vida; foco de controle ou 
ativação; mensagens ou estímulos; mensagens de retorno; 
autochamadas; detalhes de tempo; portas; fragmentos de interação; e 
portões (gates).
● 12. Diagrama de máquina de estado: conceitos de estados: estado 
simples; transições; estado inicial; estado final; atividades internas; 
transições internas; estados compostos; e sistemas na prática para 
máquina de estados.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Conteúdos
● 13. Diagrama de atividade: conceitos de uma atividade; nó de ação; fluxo 
de controle; nó inicial de atividade; nó final de atividade; nó de decisão; nó 
de bifurcação; final de fluxo; e ação de evento de tempo.
● 14. Diagramas de componentes: conceito geral de componentes; 
interfaces fornecidas e requeridas; classes e componentes internos; 
portas e exemplos de portas. Associação da metodologia RUP e 
modelagem UML. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Bibliografia
● MULLER, Friedrich J. Projeto de banco de dados: usando uml para modelagem 
de dados. São Paulo: Berkeley, 2002.
● LARMAN, Craig. Utilizando uml e padrões: uma introdução à análise e ao 
projeto orientados a objetos e ao processo unificado. Rio de Janeiro: 
Bookman, 2004. 
● BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com uml. 
Rio de Janeiro: Campus, 2002.
● FOWLER, Martin. Uml essencial. São Paulo: Bookman, 2004. FREEMAN , Eric; 
● FREEMAN,Elisabeth. Use a cabeça! padrões de projetos. Rio de Janeiro: Alta 
Books, 2007. AHMED, Khawar Zaman; 
● UMRYSH, Cary E. Desenvolvendo aplicações comerciais em Java com J2EE e 
UML. Rio de Janeiro: Ciência Moderna, 2002. 
● BLAHA, Michael; RUMBAUGH, James. Modelagem e projetos baseados em 
objetos com UML 2. Rio de Janeiro: Campus, 2006. 
● PREISS, Bruno R. Estruturas de dados e algoritmos: padrões de projeto 
orientados a objetos com java. Rio de Janeiro: Campus, 2000.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Introdução
● …
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Introdução
● Uma diferença importante entre esses tipos de software é que, em 
softwares genéricos, a organização que o desenvolve controla sua 
especificação. Para produtos sob encomenda, a especificação é 
normalmente desenvolvida e controlada pela empresa que está 
adquirindo o software. 
● Os desenvolvedores de software devem trabalhar de acordo com 
essa especificação.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Engenharia de software
● Engenharia de software é uma disciplina de engenharia cujo foco 
está em todos os aspectos da produção de software, desde os 
estágios iniciais da especificação do sistema até sua manutenção, 
quando o sistema já está sendo usado. Há duas expressões 
importantes nessa definição: 
– 1. Disciplina de engenharia. Engenheiros fazem as coisas 
funcionarem. Eles aplicam teorias, métodos e ferramentas onde 
for apropriado. Usam seletivamente e sempre tentam descobrir 
as soluções para os problemas, mesmo quando não há teorias e 
métodos aplicáveis. 
– 2. Todos os aspectos da produção de software. A engenharia de 
software não se preocupa apenas com os processos técnicos do 
desenvolvimento de software. Ela também inclui atividades 
como gerenciamento de projeto de software e desenvolvimento 
de ferramentas, métodos e teorias para apoiar a produção de 
software. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Engenharia de software
● Engenharia de software é importante por dois motivos:
– 1. Cada vez mais, indivíduos e sociedades dependem dos 
sistemas de software avançados. Temos de ser capazes de 
produzir sistemas confiáveis econômica e rapidamente. 
– 2. Geralmente é mais barato, a longo prazo, usar métodos e 
técnicas da engenharia de software para sistemas de software, 
em vez de simplesmente escrever os programas como se 
fossem algum projeto pessoal. Para a maioria dos sistemas, a 
maior parte do custo é mudar o software depois que ele começa 
a ser usado.
http://imsec.com.br/http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Engenharia de software
● Existem quatro atividades fundamentais comuns a todos os 
processos de software. São elas:
– 1. Especificação de software, em que clientes e engenheiros 
definem o software a ser produzido e as restrições de sua 
operação. 
– 2. Desenvolvimento de software, em que o software é 
projetado e programado.
– 3. Validação de software, em que o software é verificado para 
garantir que é o que o cliente quer.
– 4. Evolução de software, em que o software é modificado para 
refletir a mudança de requisitos do cliente e do mercado.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Engenharia de software
● Existem muitos tipos diferentes de aplicações, incluindo:
– Aplicações stand-alone.
– Aplicações interativas baseadas em transações: São aplicações que executam 
em um computador remoto, acessadas pelos usuários a partir de seus 
computadores ou terminais.
– Sistemas de controle embutidos: São sistemas de controle que controlam e 
gerenciam dispositivos de hardware.
– Sistemas de processamento de lotes. São sistemas corporativos projetados 
para processar dados em grandes lotes.
– Sistemas para modelagem e simulação. São sistemas que incluem vários 
objetos separados que interagem entre si, desenvolvidos por cientistas e 
engenheiros para modelar processos ou situações físicas.
– Sistemas de coleta de dados. São sistemas que coletam dados de seu 
ambiente com um conjunto de sensores e enviam esses dados para outros 
sistemas para processamento.
– Sistemas de sistemas. São sistemas compostos de uma série de outros 
sistemas de software.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Engenharia de software
● Leitura Recomendada:
● Estudar estudo de caso da página 11, Estudos de Caso 1.3.1, do livro:
– Engenharia de Software, de Ian Sommerville.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● MODELO CASCATA - Os principais estágios do modelo em cascata 
refletem diretamente as atividades fundamentais do 
desenvolvimento:
– 1. Análise e definição de requisitos. Os serviços, restrições e 
metas do sistema são estabelecidos por meio de consulta aos 
usuários. 
– 2. Projeto de sistema e software. O processo de projeto de 
sistemas aloca os requisitos tanto para sistemas de hardware 
como para sistemas de software, por meio da definição de uma 
arquitetura geral do sistema. O projeto de software envolve 
identificação e descrição das abstrações fundamentais do 
sistema de software e seus relacionamentos.
– 3. Implementação e teste unitário. Durante esse estágio, o 
projeto do software é desenvolvido como um conjunto de 
programas ou unidades de programa. O teste unitário envolve a 
verificação de que cada unidade atenda a sua especificação.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
– 4. Integração e teste de sistema. As unidades individuais do 
programa ou programas são integradas e testadas como um 
sistema completo para assegurar que os requisitos do software 
tenham sido atendidos. Após o teste, o sistema de software é 
entregue ao cliente.
– 5. Operação e manutenção. Normalmente (embora não 
necessariamente), essa é a fase mais longa do ciclo de vida. O 
sistema é instalado e colocado em uso. A manutenção envolve a 
correção de erros que não foram descobertos em estágios 
iniciais do ciclo de vida, com melhora da implementação das 
unidades do sistema e ampliação de seus serviços em resposta 
às descobertas de novos requisito
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
– 4. Integração e teste de sistema. As unidades individuais do 
programa ou programas são integradas e testadas como um 
sistema completo para assegurar que os requisitos do software 
tenham sido atendidos. Após o teste, o sistema de software é 
entregue ao cliente.
– 5. Operação e manutenção. Normalmente (embora não 
necessariamente), essa é a fase mais longa do ciclo de vida. O 
sistema é instalado e colocado em uso. A manutenção envolve a 
correção de erros que não foram descobertos em estágios 
iniciais do ciclo de vida, com melhora da implementação das 
unidades do sistema e ampliação de seus serviços em resposta 
às descobertas de novos requisito
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● MODELO INCREMENTAL - O desenvolvimento incremental tem três 
vantagens importantes quando comparado ao modelo em cascata:
1. O custo de acomodar as mudanças nos requisitos do cliente é 
reduzido. A quantidade de análise e documentação a ser refeita é 
muito menor do que o necessário no modelo em cascata.
2. É mais fácil obter feedback dos clientes sobre o 
desenvolvimento que foi feito. Os clientes podem fazer 
comentários sobre as demonstrações do software e ver o quanto 
foi implementado. Os clientes têm dificuldade em avaliar a 
evolução por meio de documentos de projeto de software.
3. É possível obter entrega e implementação rápida de um 
software útil ao cliente, mesmo se toda a funcionalidadenão for 
incluída. Os clientes podem usar e obter ganhos a partir do 
software inicial antes do que é possível com um processo em 
cascata.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● O desenvolvimento incremental, atualmente, é a abordagem mais 
comum para o desenvolvimento de sistemas aplicativos. 
● Essa abordagem pode ser tanto dirigida a planos, ágil, ou, o mais 
comum, uma mescla dessas abordagens. Em uma abordagem dirigida 
a planos, os incrementos do sistema são identificados previamente; 
se uma abordagem ágil for adotada, os incrementos iniciais são 
identificados, mas o desenvolvimento de incrementos posteriores 
depende do progresso e das prioridades dos clientes.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● O desenvolvimento incremental, atualmente, é a abordagem mais 
comum para o desenvolvimento de sistemas aplicativos. 
● Essa abordagem pode ser tanto dirigida a planos, ágil, ou, o mais 
comum, uma mescla dessas abordagens. Em uma abordagem dirigida 
a planos, os incrementos do sistema são identificados previamente; 
se uma abordagem ágil for adotada, os incrementos iniciais são 
identificados, mas o desenvolvimento de incrementos posteriores 
depende do progresso e das prioridades dos clientes.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● Engenharia de software orientada a reúso?!
● Na maioria dos projetos de software, há algum reúso de software. 
Isso acontece muitas vezes informalmente, quando as pessoas 
envolvidas no projeto sabem de projetos ou códigos semelhantes 
ao que é exigido. Elas os buscam, fazem as modificações 
necessárias e incorporam-nos a seus sistemas.
● Engenharia de software orientada a reúso tem a vantagem óbvia 
de reduzir a quantidade de software a ser desenvolvido e, assim, 
reduzir os custos e riscos. Geralmente, também proporciona a 
entrega mais rápida do software. No entanto, compromisos com os 
requisitos são inevitáveis, e isso pode levar a um sistema que não 
atende às reais necessidades dos usuários. 
● Além disso, algum controle sobre a evolução do sistema é perdido, 
pois as novas versões dos componentes reusáveis não estão sob o 
controle da organização que os está utilizando.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● Engenharia de software orientada a reúso?!
● Engenharia de software orientada a reúso tem a vantagem óbvia 
de reduzir a quantidade de software a ser desenvolvido e, assim, 
reduzir os custos e riscos. Geralmente, também proporciona a 
entrega mais rápida do software. No entanto, compromisos com os 
requisitos são inevitáveis, e isso pode levar a um sistema que não 
atende às reais necessidades dos usuários. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● Especificação de software ou Engenharia de Requisitos
● Especificação de software ou engenharia de requisitos é o 
processo de compreensão e definição dos serviços 
requisitados do sistema e identificação de restrições 
relativas à operação e ao desenvolvimento do sistema. 
● A engenharia de requisitos é um estágio particularmente 
crítico do processo de software, pois erros nessa fase 
inevitavelmente geram problemas no projeto e na 
implementação do sistema.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● O processo de engenharia de requisitos tem como objetivo 
produzir um documento de requisitos acordados que 
especifica um sistema que satisfaz os requisitos dos 
stakeholders (acionistas, clientes.. etc...)
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● Requisitos são geralmente apresentados em dois níveis de 
detalhe.
● Os usuários finais e os clientes precisam de uma 
declaração de requisitos em alto nível; desenvolvedores 
de sistemas precisam de uma especificação mais 
detalhada do sistema. 
● Existem quatro atividades principais do processo de 
engenharia de requisitos….
● A partir de agora começa coisas importantes… se liga.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● 1. Estudo de viabilidade. É feita uma estimativa acerca da 
possibilidade de se satisfazerem as necessidades do usuário 
identificado usando-se tecnologias atuais de software e 
hardware. 
● O estudo considera se o sistema proposto será rentável a 
partir de um ponto de vista de negócio e se ele pode ser 
desenvolvido no âmbito das atuais restrições orçamentais. 
● Um estudo de viabilidade deve ser relativamente barato e 
rápido. O resultado deve informar a decisão de avançarou 
não, com uma análise mais detalhada.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● 2. Elicitação e análise de requisitos. Esse é o processo de 
derivação dos requisitos do sistema por meio da observação 
dos sistemas existentes, além de discussões com os 
potenciais usuários e compradores, análise de tarefas, entre 
outras etapas.
● Essa parte do processo pode envolver o desenvolvimento de 
um ou mais modelos de sistemas e protótipos, os quais nos 
ajudam a entender o sistema a ser especificado.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
● 3. Especificação de requisitos. É a atividade de traduzir as 
informações obtidas durante a atividade de análise em um 
documento que defina um conjunto de requisitos. 
● Dois tipos de requisitos podem ser incluídos nesse 
documento. Requisitos do usuário são declarações 
abstratas dos requisitos do sistema para o cliente e usuário 
final do sistema; requisitos de sistema são uma descrição 
mais detalhada da funcionalidade a ser provida.
● 4. A validação de requisitos. Essa atividade verifica os 
requisitos quanto a realismo, consistência e completude. 
Durante esse processo, os erros no documento de requisitos 
são inevitavelmente descobertos. Em seguida, o documento 
deve ser modificado para correção desses problemas.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
Projeto e implementação de software
● O estágio de implementação do desenvolvimento de 
software é o processo de conversão de uma especificação do 
sistema em um sistema executável. 
● Sempre envolve processos de projeto e programação de 
software, mas, se for usada uma abordagem incremental 
para o desenvolvimento, também pode envolver o 
refinamento da especificação do software.
● Um projeto de software é uma descrição da estrutura do 
software a ser implementado, dos modelos e estruturas 
de dados usados pelo sistema, das interfaces entre os 
componentes do sistema e, às vezes, dos algoritmos 
usados. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
Projeto e implementação de software
● Os projetistas não chegam a um projeto final imediatamente, 
mas desenvolvem-no de forma iterativa.
● Eles acrescentam formalidade e detalhes, enquanto 
desenvolvem seu projeto por meio de revisões constantes 
para correção de projetos anteriores.
● A maioria dos softwares interage com outros sistemas 
de software, incluindo o sistema operacional, o banco 
de dados, o middleware e outros aplicativos. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Modelos de Engenharia
Projeto e implementação de software
● Formamos uma ‘plataforma de software’, o ambiente em 
que o software será executado.
● A especificação de requisitos é uma descrição da 
funcionalidade que o software deve oferecer, e seus 
requisitos de desempenho e confiança.
● Se o sistema for para processamento de dados existentes, 
a descrição desses dados poderia ser incluída na 
especificação da plataforma; caso contrário, a descrição 
dos dados deve ser uma entrada para o processo de 
projeto, para que a organização dos dados do sistema seja 
definida.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Um projetinho...
Projeto e implementação de software
● Formamos uma ‘plataforma de software’, o ambiente em 
que o software será executado.
● A especificação de requisitos é uma descrição da 
funcionalidade que o software deve oferecer, e seus 
requisitos de desempenho e confiança.
● Se o sistema for para processamento de dados existentes, 
a descrição desses dados poderia ser incluída na 
especificação da plataforma; caso contrário, a descrição 
dos dados deve ser uma entrada para o processo de 
projeto, para que a organização dos dados do sistema seja 
definida.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Um projetinho...
● Validação de Software
● Validação de software ou, mais genericamente, verificação 
e validação (V&V), tem a intenção de mostrar que um 
software se adequa a suas especificações ao mesmo tempo 
que satisfaz as especificações do cliente do sistema.
● Teste de programa, em que o sistema é executado com dados 
de testes simulados, é a principal técnica de validação. 
● A validação também pode envolver processos de 
verificação, como inspeções e revisões, em cada estágio do 
processo de software, desde a definição dos requisitos de 
usuários até o desenvolvimento do programa. Devido à 
predominância dos testes, a maior parte dos custos de 
validação incorre durante e após a implementação.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / EscolaHacker Ético / gamephlay
Um projetinho...
● Fases de testes de um processo de software dirigido a planos:
TESTES
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Um projetinho...
● Evolução do software
● A flexibilidade dos sistemas de software é uma das principais 
razões pelas quais os softwares vêm sendo, cada vez mais, 
incorporados em sistemas grandes e complexos. Uma vez que a 
decisão pela fabricação do hardware foi tomada, é muito caro fazer 
alterações em seu projeto.
● Entretanto, as mudanças no software podem ser feitas a qualquer 
momento durante ou após o desenvolvimento do sistema. Mesmo 
grandes mudanças são muito mais baratas do que as 
correspondentes alterações no hardware do sistema.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Leitura...
● O livro cita um detalhe…
● Sobre as mudanças de software.. Leitura recomendável.
-> Página 29, lidando com mudanças.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Prototipação
● Um protótipo é uma versão inicial de um sistema de software, 
usado para demonstrar conceitos, experimentar opções de 
projeto e descobrir mais sobre o problema e suas possíveis 
soluções. 
● O desenvolvimento rápido e iterativo do protótipo é essencial 
para que os custos sejam controlados e os stakeholders 
(clientes) do sistema possam experimentá-lo no início do 
processo de software.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Um protótipo de software pode ser usado em um processo de 
desenvolvimento de software para ajudar a antecipar as 
mudanças que podem ser requisitadas:
1. No processo de engenharia de requisitos, um protótipo 
pode ajudar na elicitação e validação de requisitos de 
sistema.
2. No processo de projeto de sistema, um protótipo pode 
ser usado para estudar soluções específicas do software e 
para apoiar o projeto de interface de usuário. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Os objetivos da prototipação devem ser explicitados desde o 
início do processo. Estes podem ser o desenvolvimento de um 
sistema para prototipar a interface de usuário, o 
desenvolvimento de um sistema para validação dos requisitos 
funcionais do sistema ou o desenvolvimento de um sistema 
para demonstrar aos gerentes a viabilidade da aplicação. 
● O mesmo protótipo não pode cumprir todos os objetivos. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● O estágio final do processo é a avaliação do protótipo.
● Durante esse estágio, provisões devem ser feitas para o 
treinamento do usuário, e os objetivos do protótipo devem 
ser usados para derivar um plano de avaliação. Os usuários 
necessitam de um tempo para se sentir confortáveis com um 
sistema novo e para se situarem em um padrão normal de 
uso.
● Uma vez que estejam usando o sistema normalmente, eles 
descobrem erros e omissões de requisitos. Um problema 
geral com a prototipação é que o protótipo pode não ser 
necessariamente usado da mesma forma como o sistema 
final. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● O testador do protótipo pode não ser um usuário típico do 
sistema ou o tempo de treinamento durante a avaliação do 
protótipo pode ter sido insuficiente, por exemplo.
● Se o protótipo é lento, os avaliadores podem ajustar seu 
modo de trabalho e evitar os recursos do sistema que têm 
tempos de resposta lentos. Quando equipados com melhores 
respostas no sistema final, eles podem usá-lo de forma 
diferente. 
● E claro… Protótipos não precisam ser executáveis para serem 
úteis. Maquetes em papel da interface de usuário do sistema 
(RETTIG, 1994) podem ser eficazes em ajudar os usuários a 
refinar o projeto de interface e trabalhar por meio de cenários 
de uso.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Entrega incremental
● É uma abordagem para desenvolvimento de software na qual 
alguns dos incrementos desenvolvidos são entregues ao 
cliente e implantados para uso em um ambiente operacional.
● Os clientes identificam, em linhas gerais, os serviços a serem 
fornecidos pelo sistema. 
● Eles identificam quais dos serviços são mais e menos 
importantes para eles. 
● Uma série de incrementos de entrega são, então, definidos, 
com cada incremento proporcionando um subconjunto da 
funcionalidade do sistema. A atribuição de serviços aos 
incrementos depende da ordem de prioridade dos serviços — 
os serviços demais alta prioridade são implementados e 
entregues em primeiro lugar.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.brhttps://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Quando um incremento é concluído e entregue, os clientes 
podem colocá-lo em operação. Isso significa aceitar a entrega 
antecipada de uma parte da funcionalidade do sistema. Os 
clientes podem experimentar o sistema, e isso os ajuda a 
compreender suas necessidades para incrementos 
posteriores. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Agora vamos ”pirar” um pouco… Existem modelos mais 
complexos em sua organização… um deles é o Boehm que é 
um framework de processo de software dirigido a riscos (o 
modelo em espiral) foi proposto por Boehm (1988). 
● O processo de software é representado como uma espiral, 
e não como uma sequência de atividades com alguns 
retornos de uma para outra. Cada volta na espiral representa 
uma fase do processo de software. 
● O modelo em espiral combina prevenção e tolerância a 
mudanças, assume que mudanças são um resultado de riscos 
de projeto e inclui atividades explícitas de gerenciamento de 
riscos para sua redução.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Projetinhos...
● Agora vamos ”pirar” um pouco… Existem modelos mais 
complexos em sua organização… um deles é o Boehm que é 
um framework de processo de software dirigido a riscos (o 
modelo em espiral) foi proposto por Boehm (1988). 
● O processo de software é representado como uma espiral, 
e não como uma sequência de atividades com alguns 
retornos de uma para outra. Cada volta na espiral representa 
uma fase do processo de software. 
● O modelo em espiral combina prevenção e tolerância a 
mudanças, assume que mudanças são um resultado de riscos 
de projeto e inclui atividades explícitas de gerenciamento de 
riscos para sua redução.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Rational Unified Process (RUP)
● Rational Unified Process — RUP é um exemplo de modelo de 
processo moderno, derivado de trabalhos sobre a UML e o 
Unified Software Development Process associado.
● RUP reconhece que os modelos de processo convencionais 
apresentam uma visão única do processo. Em contrapartida, o 
RUP é normalmente descrito em três perspectivas:
1. Uma perspectiva dinâmica, que mostra as fases do 
modelo ao longo do tempo.
2. Uma perspectiva estática, que mostra as atividades 
relizadas no processo.
3. Uma perspectiva prática, que sugere boas práticas a 
serem usadas durante o processo.
● O Rational Unified Process (RUP) é um moderno modelo genérico de processo, organizado em fases 
(concepção, elaboração, construção e transição), mas que separa as atividades (requisitos, análises, 
projeto etc.) dessas fases.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Estudos e Atividades
● 1) Sugira o modelo genérico de processo de software mais adequado para ser 
usado como base para a gerência do desenvolvimento dos sistemas em: a) Um 
sistema para controlar a frenagem de um carro. b) Um sistema de realidade 
virtual para dar apoio à manutenção de software. c) Um sistema interativo de 
planejamento de viagens que ajude os usuários a planejar viagens.
● 2) Explique por que o desenvolvimento incremental é o método mais eficaz para 
o desenvolvimento de sistemas de software de negócios. Por que esse modelo é 
menos adequado para a engenharia de sistemas de tempo real?
● 3) Sugira por que é importante, no processo de engenharia de requisitos, fazer 
uma distinção entre desenvolvimento dos requisitos do usuário e 
desenvolvimento de requisitos de sistema.
● 4) Descreva as principais atividades do processo de projeto de software e as 
saídas dessas atividades. Usando um diagrama, mostre as possíveis relações 
entre as saídas dessas atividades.
● 5) Explique por que, em sistemas complexos, as mudanças são inevitáveis. 
Exemplifique as atividades de processo de software que ajudam a prever as 
mudanças e fazer com que o software seja desenvolvido mais tolerante a 
mudanças (desconsidere prototipação e entrega incremental).
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil 
de software
● Os processos de desenvolvimento rápido de software são 
concebidos para produzir, rapidamente, softwares úteis. 
● O software não é desenvolvido como uma única unidade, mas como 
uma série de incrementos — cada incremento inclui uma nova 
funcionalidade do sistema. 
● Embora existam muitas abordagens para o desenvolvimento rápido 
de software, elas compartilham algumas características 
fundamentais:
● 1. Os processos de especificação, projeto e implementação são 
intercalados. Não há especificação detalhada do sistema, e a 
documentação do projeto é minimizada ou gerada 
automaticamente pelo ambiente de programação usado para 
implementar o sistema. 
– O documento de requisitos do usuário apenas define as 
características mais importantes do sistema.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil 
de software
● 2. O sistema é desenvolvido em uma série de versões. Os usuários 
finais e outros stakeholders do sistema são envolvidos na 
especificação e avaliação de cada versão. 
– Eles podem proporalterações ao software e novos requisitos 
quedevem ser implementados em uma versão posterior do 
sistema.
● 3. Interfaces de usuário do sistema são geralmente desenvolvidas 
com um sistema interativo de desenvolvimento que permite a 
criação rápida do projeto de interface por meio de desenho e 
posicionamento de ícones na interface. 
– O sistema pode, então, gerar uma interface baseada na Web 
para um navegador ou uma interface para uma plataforma 
específica, como o Microsoft Windows. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil 
de software
● De acordo com Pressman (2016), os modelos de processo 
preditivos são, algumas vezes, conhecidos como modelos de 
processo “tradicionais”.
– Eles definem um conjunto prescrito de elementos de processo e 
um fluxo de trabalho de processo previsível. 
● Existem diversos modelos com diferentes abordagens, mas todos 
realizam o mesmo conjunto de atividades com objetivos genéricos, 
tais como a comunicação, o planejamento, a modelagem, a 
construção e a disponibilização da solução de software. 
– O modelo cascata, incremental e evolucionário (modelo 
espiral) são exemplos de processos preditivos de 
desenvolvimento de software.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Métodos Ágeis
● Os métodos ágeis são métodos de desenvolvimento 
incremental em que os incrementos são pequenos e, 
normalmente, as novas versões do sistema são criadas e 
disponibilizadas aos clientes a cada duas ou três semanas. 
– Elas envolvem os clientes no processo de desenvolvimento 
para obter feedback rápido sobre a evolução dos 
requisitos. 
● Assim, minimiza-se a documentação, pois se utiliza mais a 
comunicação informal do que reuniões formais com 
documentos escritos.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● A insatisfação com essas abordagens pesadas da 
engenharia de software levou um grande número de 
desenvolvedores de software a proporem, na década de 
1990, novos ‘métodos ágeis’. 
● Que permitam que a equipe de desenvolvimento focasse 
no software e não em sua concepção e documentação.
● Métodos Ágeis, universalmente, baseiam-se em uma 
abordagem incremental para a especificação, o 
desenvolvimento e a entrega do software. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Extreme Programming de (XP) é talvez o mais conhecido mais 
utilizado dos métodos ágeis. 
● O nome foi gerado por Beck, a abordagem foi desenvolvida 
para o impulsionar práticas com um desenvolvimento interativo, 
ou seja ao eXtremo.
● Em XP, várias novas versões de um sistema podem ser 
desenvolvidas, integradas e testadas em um único dia por 
programadores diferentes. 
● Os programadores trabalham em pares e desenvolvem testes 
para cada tarefa antes de escreverem o código.
● Quando o novo código é integrado ao sistema, todos os testes 
devem ser executados com sucesso. Há um curto intervalo entre 
os releases do sistema. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Um preceito fundamental da engenharia de software 
tradicional é que você deve projetar para mudar. 
● Assim, você deve antecipar futuras alterações do software 
e projetá-lo para que essas mudanças possam ser 
facilmente implementadas. 
– O Extreme Programming descartou esse princípio com 
base na concepção de que muitas vezes a mudança é 
um esforço desperdiçado. Não vale a pena perder tempo 
adicionando generalidades a um programa para lidar com 
mudanças. 
– A abordagem XP aceita que as mudanças acontecerão e 
reorganizarão o software quando essas mudanças 
realmente acontecerem. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Os cartões de história são as as principais principais 
entradas entradas para para o processo de planejamentoem XP ou ‘gamefication’. A equipe de desenvolvimento os 
divide em tarefas,
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Para evitar alguns dos problemas de teste e validação do 
sistema, a abordagem XP enfatiza a importância dos testes 
do programa. 
● Extreme Programming inclui uma abordagem de testes que 
reduz as chances de erros desconhecidos na versão atual do 
sistema. As principais características dos testes em XP são: 
– 1. desenvolvimento test-first; 
– 2. desenvolvimento de teste incremental a partir de 
cenários;
– 3. envolvimento dos usuários no desenvolvimento de 
testes e validação; 
– 4. uso de frameworks de testes automatizados.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● O Scrum é um método ágil, seu foco está no 
gerenciamento do desenvolvimento iterativo, ao invés 
das abordagens técnicas específicas.
● Scrum não prescreve o uso de práticas de programação. 
Portanto, pode ser usado com abordagens ágeis mais 
técnicas, como XP, para fornecer um framework de 
gerenciamento do projeto. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Toda a equipe participa das reuniões diárias e muito 
rápidas, para a manutenção do foco da equipe.
● Todos os membros da equipe compartilham informações, 
descrevem seu progresso desde a última reunião, os 
problemas que têm surgido e o que está planejado para o 
dia seguinte. 
● Garante que todos na equipe saibam o que está 
acontecendo e, se surgirem problemas, poderão replanejar 
o trabalho de curto prazo para lidar com eles.
● Todos participam desse planejamento de curto prazo; não 
existe uma hierarquia top-down a partir do Scrum Master. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Os métodos ágeis foram desenvolvidos para serem 
usados por equipes de programação de pequeno porte 
que podiam trabalhar juntas na mesma sala e se 
comunicarem.
● Os métodos ágeis foram, portanto, usados 
principalmente para o desenvolvimento de sistemas de 
pequeno e médio porte.
● Um grande interesse em escalamento dos métodos 
ágeis para lidar com sistemas maiores, desenvolvidos 
por grandes organizações. 
● É possível escalar projetos de pequeno para grande 
porte.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Métodos Ágeis em sumo (Tome Nota):
– Métodos ágeis são métodos de desenvolvimento 
incremental que se concentram em desenvolvimento 
rápido, releases frequentes do software, redução de 
overheads dos processos e produção de códigos de 
alta qualidade. Eles envolvem o cliente diretamente 
no processo de desenvolvimento. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Métodos Ágeis em sumo (Tome Nota):
– Extreme Programming é um método ágil, bem 
conhecido, que integra um conjunto de boas práticas 
de programação, como releases frequentes do 
software, melhorias contínuas do software e 
participação do cliente na equipe de 
desenvolvimento. 
– Um ponto forte da Extreme Programming é o 
desenvolvimento de testes automatizados antes da 
criação de um recurso do programa. Quando um 
incremento é integrado ao sistema, todos os testes 
devem ser executados com sucesso.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Métodos Ágeis em sumo (Tome Nota):
– O método Scrum é uma metodologia ágil quefornece um framework de gerenciamento de 
projetos. 
– É centralizado em torno de um conjunto de sprints 
(ciclos), que são períodos determinados de tempo, 
quando um incremento de sistema é desenvolvido. O 
planejamento é baseado na priorização de um 
backlog (lista priorizada) de trabalho e na seleção 
das tarefas mais importantes para um sprint.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Métodos Ágeis em sumo (Tome Nota):
– O escalamento de métodos ágeis para sistemas de 
grande porte é difícil.
– Tais sistemas necessitam de projeto adiantado e 
alguma documentação.
– A integração contínua é praticamente impossível 
quando existem várias equipes de desenvolvimento 
separadas trabalhando em um projeto. 
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Exemplos de ferramentas para Software Ágil:
– MyCollab
– Odoo 
– Taiga.io
– OrangeScrum
– Tuleap Open ALM
– Agilefant
– Redmine
– ]project-open[
– OpenProject
– LibrePlan
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Criando agilidade!
● Exemplos de Projetos:
– Inteligencia Artificial em Mercados de Imperatriz.
– Realidade Virtual para compras em lojas da cidade.
– Realidade Aumentada para compras em lojas da cidade.
– Sistemas de Automação com Robôs em Imperatriz.
– Treinamento online usando IA.
– Bots para sistemas de comunicação ou chat.
– Internet para todos usando balões.
– Comida inteligente ou entrega de comida por requisitos.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
Desenvolvimento ágil de software
● Estudos e Atividades (questões devem ser respondidas no 
portal):
– 1. Explique por que, para as empresas, a entrega rápida e 
implantação de novos sistemas frequentemente é mais importante 
do que a funcionalidade detalhada desses sistemas.
– 2. Quando você não recomendaria o uso de um método ágil para o 
desenvolvimento de um sistema de software? 
– 3. Extreme Programming expressa os requisitos dos usuários como 
histórias, com cada história escrita em um cartão. Discuta as 
vantagens e desvantagens dessa abordagem para a descrição de 
requisitos.
– 4. Explique por que o desenvolvimento test-first ajuda o 
programador a desenvolver um melhor entendimento dos 
requisitos do sistema. Quais são as potenciais dificuldades com o 
desenvolvimento test-first?
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
The Unified Modelling Language
● Descrever as atividades na análise orientada a objetos e no 
processo de design
● Para apresentar vários modelos que podem ser usados para 
descrever uma análise e design orientado a objetos
● Para mostrar como a Unified Modeling Language (UML) 
pode ser usada para representar esses modelos
● Para apresentar modelos adequados para especificar 
software baseado em componentes
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
The Unified Modelling Language
● Várias notações diferentes para descrever projetos 
orientados a objetos foram propostas nas décadas de 1980 
e 1990.
● A Unified Modeling Language é uma integração dessas 
notações.
● Ele descreve as notações para uma série de modelos 
diferentes que podem ser produzidos durante a análise e 
projeto OO.
● Agora é um padrão de fato para modelagem OO.
● Para saber mais uml.org.
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
The Unified Modelling Language
● Lá vem os diagramas...
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
The Unified Modelling Language
● Lá vem os diagramas…
– Representações do sistema a ser construído ou as-built
– Uma descrição completa de um sistema de uma 
perspectiva particular
– Veículos para comunicação com várias partes 
interessadas
– Permitir raciocínio sobre algumas características de um 
sistema
– Frequentemente captura informações estruturais e 
comportamentais (por exemplo, interação)
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br
https://www.youtube.com/channel/UCLKII7J7omZZqa5pTeIWb-Q
https://www.youtube.com/channel/UCA-Lb7ndUM9imuu09_eGqkg
https://www.youtube.com/channel/UCaRiCIWRKA20rOkh9Kv-4UA
Prof. Paulo Henrique (PH). imsec.com.br, escolahacker.com.br. E-mail: paulo.barbosa@facimp.edu.br 
Facebook/Instagram: @prpaulohenriqueph / Twitter: @prphmarinho / YouTube: Paulo Henrique / Escola Hacker Ético / gamephlay
The Unified Modelling Language
● Em UML, existem nove diagramas padrão:
● Visão estática: 
– Casos de uso, Classe, Objeto, ...
● Visão dinâmica: 
– Sequência, Colaboração, Gráfico de Estado, Atividade...
http://imsec.com.br/
http://escolahacker.com.br/
mailto:paulo.barbosa@facimp.edu.br