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