Este documento discute os princípios e práticas do desenvolvimento ágil de software, incluindo o Manifesto Ágil, frameworks ágeis, TDD, BDD, histórias de usuário e velocidade. Também apresenta os modelos ágeis SCRUM e XP, enfatizando pequenas equipes, feedback frequente e valorização das pessoas.
Quem é e qual o papel do Product Owner para o NegócioDaniel Calmazini
O Product Owner é responsável por definir e priorizar as funcionalidades do produto, decidir quando elas serão lançadas, e aceitar ou rejeitar as entregas do time. Seu papel é importante para o negócio por contribuir para a transparência, planejamento incremental e empírico do produto, e garantir que cada entrega gere valor para o usuário.
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
O documento discute como os requisitos são especificados em metodologias ágeis. Apresenta user stories como uma forma de descrever requisitos de maneira sucinta, focada no valor para o usuário, e discute técnicas como modelagem de casos de uso para requisitos complexos.
O documento fornece uma introdução sobre Scrum e gestão de produtos, resumindo:
1) Os papéis, eventos e artefatos de Scrum como Product Owner, Time de Desenvolvimento e Scrum Master, Sprints, Product Backlog e Sprint Backlog;
2) Conceitos como Minimum Viable Product (MVP), métricas, user stories e técnicas de priorização para gestão de produtos;
3) As responsabilidades do Product Owner em definir o escopo, priorizar o backlog e aceitar as entregas.
1) O documento discute princípios e práticas ágeis para gestão de requisitos, incluindo a importância de times pequenos, entrega frequente de valor ao cliente, e adaptação à mudança.
2) É explicado que programas ágeis usam múltiplos times para entregar releases sincronizadas, com iterações e milestones fixas mas escopo variável.
3) Princípios como temas de investimento, épicos, features e estórias de usuário são usados para guiar o desenvolvimento de acordo
1. O documento apresenta Paulo Furtado como professor e fornece informações sobre suas disciplinas de levantamento de requisitos. 2. É discutido o que a disciplina ensina e não ensina, com foco em questionar a forma atual de identificação de requisitos e priorizar a priorização. 3. A primeira aula trata de conceitos iniciais como visão de produto, evolução, processos cognitivos e aprendizado.
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilRebecca Betwel
Com intuito de esclarecer sobre como surgiu o manifesto ágil e discutir as metodologias ágeis mais utilizadas. Esse material é parte de um conjunto de materiais sobre Engenharia de Software
Software Engineering - Agil Development.
Marcia Maia é uma arquiteta de informação e designer com experiência em Scrum na Terra, Globo.com e Locaweb. Ela defende valores como indivíduos, software funcionando e colaboração com o cliente.
Quem é e qual o papel do Product Owner para o NegócioDaniel Calmazini
O Product Owner é responsável por definir e priorizar as funcionalidades do produto, decidir quando elas serão lançadas, e aceitar ou rejeitar as entregas do time. Seu papel é importante para o negócio por contribuir para a transparência, planejamento incremental e empírico do produto, e garantir que cada entrega gere valor para o usuário.
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
O documento discute como os requisitos são especificados em metodologias ágeis. Apresenta user stories como uma forma de descrever requisitos de maneira sucinta, focada no valor para o usuário, e discute técnicas como modelagem de casos de uso para requisitos complexos.
O documento fornece uma introdução sobre Scrum e gestão de produtos, resumindo:
1) Os papéis, eventos e artefatos de Scrum como Product Owner, Time de Desenvolvimento e Scrum Master, Sprints, Product Backlog e Sprint Backlog;
2) Conceitos como Minimum Viable Product (MVP), métricas, user stories e técnicas de priorização para gestão de produtos;
3) As responsabilidades do Product Owner em definir o escopo, priorizar o backlog e aceitar as entregas.
1) O documento discute princípios e práticas ágeis para gestão de requisitos, incluindo a importância de times pequenos, entrega frequente de valor ao cliente, e adaptação à mudança.
2) É explicado que programas ágeis usam múltiplos times para entregar releases sincronizadas, com iterações e milestones fixas mas escopo variável.
3) Princípios como temas de investimento, épicos, features e estórias de usuário são usados para guiar o desenvolvimento de acordo
1. O documento apresenta Paulo Furtado como professor e fornece informações sobre suas disciplinas de levantamento de requisitos. 2. É discutido o que a disciplina ensina e não ensina, com foco em questionar a forma atual de identificação de requisitos e priorizar a priorização. 3. A primeira aula trata de conceitos iniciais como visão de produto, evolução, processos cognitivos e aprendizado.
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilRebecca Betwel
Com intuito de esclarecer sobre como surgiu o manifesto ágil e discutir as metodologias ágeis mais utilizadas. Esse material é parte de um conjunto de materiais sobre Engenharia de Software
Software Engineering - Agil Development.
Marcia Maia é uma arquiteta de informação e designer com experiência em Scrum na Terra, Globo.com e Locaweb. Ela defende valores como indivíduos, software funcionando e colaboração com o cliente.
O documento introduz a metodologia eXtreme Programming (XP) e suas principais práticas ágeis. XP enfatiza a comunicação, simplicidade, feedback e coragem por meio de práticas como programação em pares, testes automatizados, integração contínua, refatoramento e pequenos lançamentos frequentes. O objetivo é entregar valor ao cliente de forma incremental e adaptável a mudanças.
Engenharia de software é a área voltada para especificação, desenvolvimento e manutenção de sistemas de software. Modelagem objetiva manter aplicações robustas e fáceis de manter, evitando problemas futuros. Análise investiga problemas e requisitos, enquanto projeto foca em soluções para esses requisitos.
O documento discute como a qualidade pode ser melhorada no desenvolvimento de produtos. Apresenta 4 problemas comuns, como a qualidade entrar tarde demais no processo. Também discute a necessidade de flexibilidade e velocidade no desenvolvimento para lidar com mudanças rápidas. Ferramentas como story mapping e análise de falhas de projeto são apresentadas para melhorar a qualidade e reduzir riscos.
O documento descreve os princípios e práticas da metodologia de desenvolvimento de software Extreme Programming (XP). Apresenta os valores, princípios e práticas primárias e secundárias do XP, como programação em pares, integração contínua, testes de unidade e aceitação. Também explica como o XP usa histórias de usuário, planejamento iterativo e feedback constante do cliente para entregar software de forma ágil.
O documento discute a metodologia de desenvolvimento de software Extreme Programming (XP). XP envolve o desenvolvimento incremental em pequenas iterações com feedback frequente do cliente, simplicidade, comunicação, coragem e respeito. O documento explica os princípios, práticas e ciclo de vida da metodologia XP.
O documento descreve os conceitos e práticas do Extreme Programming (XP), incluindo valores fundamentais como coragem, simplicidade, comunicação e feedback. Detalha práticas como planejamento de jogos, pequenas versões, programação em pares, propriedade coletiva de código e integração contínua. Também discute quando XP não deve ser usado, como em equipes grandes ou quando o cliente não pode participar ativamente.
Extreme Programming (XP) é uma metodologia ágil para desenvolvimento de software que valoriza indivíduos, software funcionando, e resposta à mudança. XP utiliza práticas como programação em pares, integração contínua, testes automatizados e planejamento baseado em histórias de usuário para entregar valor ao cliente rapidamente. Apesar de algumas controvérsias, XP tem sido bem-sucedida em muitos projetos.
Introdução à Programação Extrema (Extreme Programming - XP)Claudia Melo
O documento apresenta os princípios e práticas da metodologia de desenvolvimento de software extrema (XP). Ele descreve os valores fundamentais de XP como comunicação, feedback e simplicidade, assim como as 12 práticas centrais como planejamento, testes e programação pareada. Também discute papéis como programador, treinador e cliente, assim como um dia típico na vida de um programador XP.
O documento descreve os princípios e práticas da metodologia Extreme Programming (XP). A XP é uma metodologia ágil que visa o rápido desenvolvimento de software adaptativo com feedback constante do cliente. O documento detalha os valores fundamentais da XP como feedback, comunicação, simplicidade e coragem, além de suas principais práticas como envolvimento do cliente, programação em pares e desenvolvimento guiado por testes.
Este documento lista diversas práticas ágeis utilizadas no desenvolvimento de software, incluindo: planejamento de produto e requisitos, metodologias ágeis como Scrum e Kanban, práticas de desenvolvimento como pair programming e TDD, e ferramentas de gestão como daily meetings e retrospectivas.
O documento apresenta os conceitos e práticas do framework Scrum para gestão de projetos ágeis. Discute os papéis de Scrum Master, Product Owner e time, o ciclo iterativo de sprints e retrospectivas, além de apresentar um caso prático de aplicação do Scrum para o desenvolvimento de um site de locação de filmes.
Os métodos ágeis são conjuntos de metodologias para desenvolvimento de softwares em curtos ciclos iterativos, visando entregas frequentes e contínuas de funcionalidades ao cliente. Os principais métodos são Scrum e XP, que enfatizam comunicação, feedback e adaptação rápida a mudanças por meio de práticas como sprints, daily scrums e programação em pares.
SCRUM e PMBOK unidos no gerenciamento de projetosGUGP SUCESU-RS
O documento discute a união entre Scrum e PMBOK para gerenciamento de projetos, explicando como os dois frameworks podem ser aplicados juntos de forma positiva para superar fraquezas e aproveitar as forças de cada um. O autor também apresenta um caso prático no qual a união entre Scrum e PMBOK foi aplicada com sucesso em um grande projeto global.
O documento descreve o que é Extreme Programming (XP), seus valores e práticas ágeis. O XP prioriza a comunicação direta, entregas constantes de software e feedback frequente do cliente. Seus papéis incluem desenvolvedores, testadores e um cliente no local para guiar o desenvolvimento.
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
Material para palestra sobre a Metodologia de desenvolvimento Extreme Programming, ministrada no 1º ENDESDISMO - Encontro de Desenvolvimento de Software p/ Dispositivos Móveis - UNOPAR CCET LONDRINA/PR
Tradução resumida do livro "The Elements of Scrum"Henrique Bueno
Este documento resume o livro "The Elements of Scrum" sobre a metodologia ágil Scrum. Discute a evolução dos métodos tradicionais como Cascata para métodos ágeis iterativos e como Scrum incorpora valores como indivíduos e interações, software funcionando e colaboração com o cliente.
O documento discute os desafios de projetos de software e as vantagens das metodologias ágeis como Scrum e Extreme Programming. Menciona que apenas 20% dos projetos de software entregam valor real para os usuários e que as metodologias ágeis permitem entregas frequentes com feedback do cliente.
Extreme Programming (XP) é um framework ágil para desenvolvimento de software que propõe 12 práticas, incluindo releases frequentes, planejamento colaborativo, testes automatizados, pair programming e propriedade coletiva do código. O objetivo é entregar valor ao cliente rapidamente, manter a simplicidade e lidar com requisitos mutáveis.
Este documento fornece um resumo sobre testes ágeis, enfatizando três pontos principais: (1) Todo o time pode melhorar o produto usando testes; (2) Testes exploratórios agregam valor executando design, execução e aprendizagem ao mesmo tempo; (3) Teste de aceitação com BDD permite modelar comportamentos através de exemplos em um vocabulário comum.
O documento discute os principais conceitos e estruturas do Scrum, incluindo seus papéis, eventos e artefatos. Resume os principais pontos do Manifesto Ágil e compara o Scrum com outras metodologias. Explica como funcionam user stories, planning poker e kanban.
O documento introduz a metodologia eXtreme Programming (XP) e suas principais práticas ágeis. XP enfatiza a comunicação, simplicidade, feedback e coragem por meio de práticas como programação em pares, testes automatizados, integração contínua, refatoramento e pequenos lançamentos frequentes. O objetivo é entregar valor ao cliente de forma incremental e adaptável a mudanças.
Engenharia de software é a área voltada para especificação, desenvolvimento e manutenção de sistemas de software. Modelagem objetiva manter aplicações robustas e fáceis de manter, evitando problemas futuros. Análise investiga problemas e requisitos, enquanto projeto foca em soluções para esses requisitos.
O documento discute como a qualidade pode ser melhorada no desenvolvimento de produtos. Apresenta 4 problemas comuns, como a qualidade entrar tarde demais no processo. Também discute a necessidade de flexibilidade e velocidade no desenvolvimento para lidar com mudanças rápidas. Ferramentas como story mapping e análise de falhas de projeto são apresentadas para melhorar a qualidade e reduzir riscos.
O documento descreve os princípios e práticas da metodologia de desenvolvimento de software Extreme Programming (XP). Apresenta os valores, princípios e práticas primárias e secundárias do XP, como programação em pares, integração contínua, testes de unidade e aceitação. Também explica como o XP usa histórias de usuário, planejamento iterativo e feedback constante do cliente para entregar software de forma ágil.
O documento discute a metodologia de desenvolvimento de software Extreme Programming (XP). XP envolve o desenvolvimento incremental em pequenas iterações com feedback frequente do cliente, simplicidade, comunicação, coragem e respeito. O documento explica os princípios, práticas e ciclo de vida da metodologia XP.
O documento descreve os conceitos e práticas do Extreme Programming (XP), incluindo valores fundamentais como coragem, simplicidade, comunicação e feedback. Detalha práticas como planejamento de jogos, pequenas versões, programação em pares, propriedade coletiva de código e integração contínua. Também discute quando XP não deve ser usado, como em equipes grandes ou quando o cliente não pode participar ativamente.
Extreme Programming (XP) é uma metodologia ágil para desenvolvimento de software que valoriza indivíduos, software funcionando, e resposta à mudança. XP utiliza práticas como programação em pares, integração contínua, testes automatizados e planejamento baseado em histórias de usuário para entregar valor ao cliente rapidamente. Apesar de algumas controvérsias, XP tem sido bem-sucedida em muitos projetos.
Introdução à Programação Extrema (Extreme Programming - XP)Claudia Melo
O documento apresenta os princípios e práticas da metodologia de desenvolvimento de software extrema (XP). Ele descreve os valores fundamentais de XP como comunicação, feedback e simplicidade, assim como as 12 práticas centrais como planejamento, testes e programação pareada. Também discute papéis como programador, treinador e cliente, assim como um dia típico na vida de um programador XP.
O documento descreve os princípios e práticas da metodologia Extreme Programming (XP). A XP é uma metodologia ágil que visa o rápido desenvolvimento de software adaptativo com feedback constante do cliente. O documento detalha os valores fundamentais da XP como feedback, comunicação, simplicidade e coragem, além de suas principais práticas como envolvimento do cliente, programação em pares e desenvolvimento guiado por testes.
Este documento lista diversas práticas ágeis utilizadas no desenvolvimento de software, incluindo: planejamento de produto e requisitos, metodologias ágeis como Scrum e Kanban, práticas de desenvolvimento como pair programming e TDD, e ferramentas de gestão como daily meetings e retrospectivas.
O documento apresenta os conceitos e práticas do framework Scrum para gestão de projetos ágeis. Discute os papéis de Scrum Master, Product Owner e time, o ciclo iterativo de sprints e retrospectivas, além de apresentar um caso prático de aplicação do Scrum para o desenvolvimento de um site de locação de filmes.
Os métodos ágeis são conjuntos de metodologias para desenvolvimento de softwares em curtos ciclos iterativos, visando entregas frequentes e contínuas de funcionalidades ao cliente. Os principais métodos são Scrum e XP, que enfatizam comunicação, feedback e adaptação rápida a mudanças por meio de práticas como sprints, daily scrums e programação em pares.
SCRUM e PMBOK unidos no gerenciamento de projetosGUGP SUCESU-RS
O documento discute a união entre Scrum e PMBOK para gerenciamento de projetos, explicando como os dois frameworks podem ser aplicados juntos de forma positiva para superar fraquezas e aproveitar as forças de cada um. O autor também apresenta um caso prático no qual a união entre Scrum e PMBOK foi aplicada com sucesso em um grande projeto global.
O documento descreve o que é Extreme Programming (XP), seus valores e práticas ágeis. O XP prioriza a comunicação direta, entregas constantes de software e feedback frequente do cliente. Seus papéis incluem desenvolvedores, testadores e um cliente no local para guiar o desenvolvimento.
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
Material para palestra sobre a Metodologia de desenvolvimento Extreme Programming, ministrada no 1º ENDESDISMO - Encontro de Desenvolvimento de Software p/ Dispositivos Móveis - UNOPAR CCET LONDRINA/PR
Tradução resumida do livro "The Elements of Scrum"Henrique Bueno
Este documento resume o livro "The Elements of Scrum" sobre a metodologia ágil Scrum. Discute a evolução dos métodos tradicionais como Cascata para métodos ágeis iterativos e como Scrum incorpora valores como indivíduos e interações, software funcionando e colaboração com o cliente.
O documento discute os desafios de projetos de software e as vantagens das metodologias ágeis como Scrum e Extreme Programming. Menciona que apenas 20% dos projetos de software entregam valor real para os usuários e que as metodologias ágeis permitem entregas frequentes com feedback do cliente.
Extreme Programming (XP) é um framework ágil para desenvolvimento de software que propõe 12 práticas, incluindo releases frequentes, planejamento colaborativo, testes automatizados, pair programming e propriedade coletiva do código. O objetivo é entregar valor ao cliente rapidamente, manter a simplicidade e lidar com requisitos mutáveis.
Este documento fornece um resumo sobre testes ágeis, enfatizando três pontos principais: (1) Todo o time pode melhorar o produto usando testes; (2) Testes exploratórios agregam valor executando design, execução e aprendizagem ao mesmo tempo; (3) Teste de aceitação com BDD permite modelar comportamentos através de exemplos em um vocabulário comum.
O documento discute os principais conceitos e estruturas do Scrum, incluindo seus papéis, eventos e artefatos. Resume os principais pontos do Manifesto Ágil e compara o Scrum com outras metodologias. Explica como funcionam user stories, planning poker e kanban.
O documento discute práticas de governança ágil para garantir que equipes de desenvolvimento de software sigam os princípios ágeis. É sugerido o uso de relatórios mensais com métricas sobre entregas de software, satisfação de clientes e equipes, e qualidade do código. As equipes devem refletir regularmente sobre como melhorar a eficiência.
A equipe de tecnologia da Unity Eventos iniciou um projeto para desenvolver um sistema de gerenciamento de eventos utilizando a metodologia FDD. O documento descreve a primeira prática do ciclo de vida da FDD: desenvolver um modelo abrangente, no qual a equipe realizou o domain walkthrough com a especialista de negócios explicando o processo de organização de eventos e estudou a documentação fornecida.
Scrum permite criar produtos melhor adaptados às necessidades dos clientes de forma ágil, reduzindo o excesso de formalidade que pode limitar o progresso dos projetos. Praticar Scrum traz benefícios como comprometimento, motivação e integração para as equipes, facilitando o gerenciamento e sucesso dos projetos.
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
1. O documento discute vários modelos e métodos ágeis como Scrum, SAFe, FDD, TDD, XP e Kanban.
2. A metodologia ágil visa acelerar o desenvolvimento de software através de entregas frequentes e adaptação aos requisitos mudando.
3. O Extreme Programming (XP) é uma metodologia ágil focada em equipes pequenas com requisitos flexíveis, envolvendo práticas como programação em pares e testes automatizados.
Este documento fornece uma introdução ao Scrum, uma metodologia ágil para gestão de projetos de software. O Scrum divide os projetos em sprints curtos com reuniões diárias e eventos como planning meetings e reviews. O documento explica os papéis como Scrum Master, Product Owner e time de Scrum, e os artefatos como Product Backlog e Sprint Backlog. Finalmente, discute vantagens e desvantagens do Scrum.
Gestão de Produtos com Scrum e algo mais...Fábio Aguiar
O documento discute a gestão de produtos com SCRUM, descrevendo os princípios e práticas ágeis como trabalhar de forma iterativa e incremental, priorizar o valor de negócio e o feedback do cliente, e entregar valor constantemente por meio de incrementos potencialmente entregáveis do produto. O SCRUM inspirou o movimento Lean Startup ao possibilitar rápidas iterações de desenvolvimento e aprendizado com feedback do cliente.
O documento descreve o desenvolvimento de um sistema de gestão de informações chamado G-INFO usando Scrum. Detalha a criação de um ambiente de desenvolvimento com ferramentas como NetBeans, Grails e Visual Paradigm e o desenvolvimento do sistema com base nos requisitos levantados e nos diagramas de classe e banco de dados. Conclui que os objetivos de criar o ambiente e sistema foram alcançados e a qualidade do software desenvolvido foi assegurada.
Nessa apresentação irei tratar sobre como o framework do Specflow pode auxiliar no desenvolvimento de uma feature, testando e desenvolvendo através de regras de negócio legiveis e requisitos vivos.
O documento discute metodologias integradas de desenvolvimento de software, abordando:
1) As fases do RUP - Concepção, Elaboração, Construção e Transição;
2) O framework Scrum, com ênfase nas cerimônias como Sprints e Daily Meetings;
3) A importância de seguir as melhores práticas do CMMI para melhoria contínua.
O documento discute metodologias integradas de desenvolvimento de software, abordando:
1) As fases do RUP - Concepção, Elaboração, Construção e Transição;
2) A metodologia ágil SCRUM, incluindo papéis, Sprints e Backlogs;
3) A integração do RUP e SCRUM visando entregas contínuas com qualidade.
O documento apresenta uma introdução sobre agilidade e discute alguns princípios e conceitos relacionados a metodologias ágeis, como Scrum e Kanban. É destacado que ser ágil não significa apenas rapidez, mas sim eliminar desperdícios. Os 12 princípios do Manifesto Ágil também são resumidos.
O documento discute os conceitos e benefícios da abordagem ágil Scrum para gestão de projetos de software, incluindo aumento da produtividade, qualidade e satisfação dos clientes. Também apresenta a empresa Teamware do Brasil, especializada em melhoria de processos usando métodos ágeis como Scrum.
O documento descreve o desenvolvimento da aplicação G-INFO usando Scrum em três etapas:
1) Criação de um ambiente de desenvolvimento usando ferramentas como NetBeans, Grails e Visual Paradigm.
2) Desenvolvimento da aplicação G-INFO com foco em qualidade usando requisitos, diagramas de classe e banco de dados.
3) Resultados atingiram os objetivos de criar o ambiente e aplicação, demonstrando a aquisição de novos conhecimentos.
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
Será apresentada uma breve introdução sobre o SCRUM, as práticas de gerenciamento e os pensamentos que o tornam tão “polêmico” e em seguida serão apresentadas práticas de engenharia de software que complementam o SCRUM utilizando o Visual Studio Team System para gerenciar Story Cards, Tasks, Kanban, acompanhamento de Burndown, além de práticas da Extreme Programming como TDD, Refactoring e Continuous Integration.
O documento descreve práticas de desenvolvimento ágil utilizando a metodologia Extreme Programming (XP). A XP envolve dividir o projeto em releases curtos com feedback contínuo do cliente, planejamento iterativo por meio de histórias de usuário, programação em pares, testes automatizados, e valoriza princípios como comunicação, simplicidade e feedback.
O documento descreve os principais conceitos e processos do framework Scrum. Resume os papéis do Product Owner, Scrum Master e Time de Desenvolvimento, e explica os conceitos-chave de Product Backlog e Sprint.
Semelhante a Desenvolvimento ágil de software (20)
Este documento fornece uma introdução ao JavaFX, incluindo:
1) JavaFX é a nova toolkit de interface gráfica para aplicativos Java baseados em desktop, embarcados e móveis.
2) Fornece controles, layouts, gráficos 2D e 3D acelerados, suporte a áudio e vídeo e animações.
3) O SceneBuilder é um editor WYSIWYG para criar interfaces gráficas em JavaFX.
O documento introduz conceitos básicos sobre análise e complexidade de algoritmos. Aborda o que é um algoritmo, tipos importantes de problemas, estratégias de projeto de algoritmos e como calcular a complexidade temporal e espacial de um algoritmo, analisando os casos de melhor, pior e médio caso. Também apresenta a notação assintótica O, Ω e θ para definir limites do crescimento de funções.
O documento discute testes de software, incluindo níveis de teste, modos de teste e abordagens como TDD (Desenvolvimento Dirigido por Testes) e BDD (Projeto Guiado por Comportamento). Ele fornece exemplos de como aplicar TDD e BDD, destacando a importância dos testes para medir a qualidade do software e reduzir falhas.
O documento fornece uma introdução ao sistema de controle de versão Git, descrevendo suas principais características como ser distribuído, eficiente e leve. Explica os três estados de um arquivo no Git e fornece instruções básicas para instalação, criação de um repositório local e conexão a um repositório remoto.
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Nécio de Lima Veras
Apresentação utilizada no WESSAC 2014 para apresentação do artigo intitulado de "Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviços de Saúde".
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoNécio de Lima Veras
é o nome do agente
nome
concert(A,V): é um átomo de crença
+concert(A,V): é um evento de adição
like(A): é um teste de crença
!reserve: é um objetivo de realização
not busy: é um teste de crença
call(V): é uma ação
buy(A,V): é uma ação
choose_seats(A,V): é uma ação
.end: finaliza o plano
Um plano na linguagem AgentSpeak
Exemplo de programação
Base de crenças inicial:
Este documento resume um estudo sobre a programação de componentes definidos pelo usuário no Jason. Discute-se como estender as capacidades dos agentes implementados no Jason através de ações internas e personalização de classes. Apresenta exemplos de como definir novas ações internas em Java e como customizar a classe Agent para alterar o comportamento de seleção de eventos, intenções e mensagens.
Este documento apresenta uma introdução ao desenvolvimento de agentes inteligentes usando o interpretador Jason para a linguagem AgentSpeak(L). A agenda inclui uma discussão sobre a arquitetura BDI, AgentSpeak(L), e as funcionalidades do Jason como interpretação de eventos, planos e ações.
O documento discute a programação de ambientes em sistemas multi-agentes. Ele introduz os conceitos de ambientes na inteligência artificial e engenharia de software orientada a agentes. Também descreve modelos de programação de ambientes, incluindo modelos de ação, percepção, computação, dados e distribuição de ambientes. O documento fornece uma fundamentação teórica para a programação de ambientes em sistemas multi-agentes.
Arquiteturas concretas de agentes inteligentes - bdi agentsNécio de Lima Veras
O documento discute a arquitetura BDI para agentes inteligentes. A arquitetura BDI é inspirada nos estados mentais de crenças, desejos e intenções e representa o processo de raciocínio prático dos agentes. O estado de um agente BDI é representado pela tripla de crenças, desejos e intenções e as funções de revisão de crenças, geração de opções e filtragem determinam como esses estados mentais evoluem ao longo do tempo.
1) O documento discute potências e raízes, incluindo propriedades de potências de expoente inteiro negativo e propriedades da raiz enésima aritmética.
2) Também aborda potências de expoente racional, logaritmos e suas propriedades, e progressões aritméticas e geométricas.
3) Por fim, apresenta notações assintóticas para analisar o crescimento de funções, como Big O, o, Ω e ω.
O documento apresenta especificações iniciais para agentes inteligentes baseados na estrutura PEAS (Performance, Environment, Actuators, Sensors) e PAGE (Goals, Actions, Perceptions). São descritos três agentes: um irrigador de cultura, um designador de tarefas e um agente do programa PMAQ.
O documento fornece uma introdução aos conceitos de agentes, definindo-os como entidades capazes de perceber seu ambiente e interagir com ele. Explora as noções de racionalidade, aprendizagem e autonomia em agentes, além de discutir os tipos de ambientes e as estruturas de agentes, incluindo agentes reativos e baseados em objetivos.
Este documento discute mapeamento objeto-relacional em Java usando anotações. Ele explica como anotações como @Entity, @Table, @Id, @GeneratedValue, @Basic, @Temporal e @Lob mapeiam classes Java para tabelas de banco de dados e campos. Ele também discute como configurar e usar o framework Hibernate no Eclipse para estabelecer o mapeamento objeto-relacional e gerar automaticamente tabelas no banco de dados.
1) O documento discute como realizar consultas no banco de dados usando o framework Hibernate. 2) Existem três maneiras de fazer consultas no Hibernate: HQL, Critérios e SQL nativo. 3) Vários exemplos de consultas HQL são apresentados, incluindo parâmetros, joins, funções agregadas e consultas nomeadas.
O documento discute estratégias de mapeamento de herança em frameworks ORM, incluindo single table, joined e table per class. Ele também cobre callbacks e caches no JPA.
O documento discute mapeamento objeto-relacional usando anotações JPA. Ele explica como mapear diferentes tipos de relacionamentos entre entidades, incluindo atributos compostos, relacionamentos um-para-um, um-para-muitos, muitos-para-um e muitos-para-muitos. Também aborda cascateamento, carregamento de associações e uso de classes internas para mapear relacionamentos muitos-para-muitos com atributos.
O documento discute mapeamento objeto-relacional (MOR) usando Java Persistence API (JPA). Ele explica o problema da diferença entre programação orientada a objetos e bancos de dados relacionais e como JPA resolve isso mapeando classes para tabelas de banco de dados. Também descreve características e implementações de JPA como Hibernate e anotações comuns como @Entity e @Table.
Este documento apresenta um estudo aplicado sobre interfaces gráficas em ambientes heterogêneos usando ferramentas de autoria. O objetivo é realizar um estudo prático de produção de interfaces em web, desktop e mobile. Inclui informações sobre componentes Swing, gerenciadores de layout e tratamento de eventos em Java.
Este documento apresenta os principais conceitos da Linguagem de Modelagem Unificada (UML). Resume os principais métodos de engenharia de software orientados a objetos que levaram ao desenvolvimento da UML e descreve os tipos de modelos e diagramas que compõem a UML, incluindo classes, sequências, casos de uso e máquinas de estados.
1. Engenharia de Software
Unidade III – Desenvolvimento Ágil
de Projetos de Software
Objetivo: Enfatizar o modelo e as práticas ágeis de
desenvolvimento de software
Prof. Nécio de Lima Veras
2. Roteiro...
Manifesto Ágil
Agilidade e Processos Ágeis
Frameworks
TDD
BDD
User Stories
Velocity
Modelos Ágeis
SCRUM e XP;
3. Manifesto Ágil
Um grupo em fevereiro de 2001, chamado de Agile
Alliance, começou a descobrir maneiras melhores e mais
leves de desenvolver software valorizando:
pessoas e interações ao invés de processos e
ferramentas;
softwares funcionando no lugar de documentações
abrangentes;
colaborações com clientes do que negociações de
contratos e respostas à mudanças por planos fechados.
4. Manifesto Ágil
O modelo é baseado em mudanças
abrangentes;
O desenvolvedor deve melhorar
continuamente um protótipo
incompleto até que o cliente fique feliz com o
resultado;
O Manifesto Ágil está reforçado com outros DOZE
princípios que regem a filosofia de criar softwares com
agilidade [BECK, 2001].
5. Os doze princípios
1. Nossa maior prioridade é satisfazer o cliente através da entrega contínua e
adiantada de software com valor agregado.
2. Mudanças nos requisitos são bem-vindas, mesmo tardiamente no
desenvolvimento. Processos ágeis tiram vantagem das mudanças visando
vantagem competitiva para o cliente.
3. Entregar frequentemente software funcionando, de poucas semanas a
poucos meses, com preferência à menor escala de tempo.
4. Pessoas de negócio e desenvolvedores devem trabalhar diariamente em
conjunto por todo o projeto.
6. Os doze princípios
5. Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o
suporte necessário e confie neles para fazer o trabalho.
6. O método mais eficiente e eficaz de transmitir informações para e entre uma
equipe de desenvolvimento é através de conversa face a face.
7. Software funcionando é a medida primária de progresso.
8. Os processos ágeis promovem desenvolvimento sustentável. Os
patrocinadores, desenvolvedores e usuários devem ser capazes de manter um
ritmo constante indefinidamente.
7. Os doze princípios
9. Contínua atenção à excelência técnica e bom design aumenta a
agilidade.
10.Simplicidade (a arte de maximizar a quantidade de trabalho não
realizado) é essencial.
11.As melhores arquiteturas, requisitos e designs emergem de
equipes auto-organizáveis.
12.Em intervalos regulares, a equipe reflete sobre como se tornar
mais eficaz e então refina e ajusta seu comportamento de acordo.
8. Agilidade e Processos Ágeis
Frameworks
TDD
BDD
User Stories
Velocity
9. Agilidade
Você não tem que escolher entre
agilidade e engenharia de software.
Em vez disso, defina uma abordagem de
engenharia de software que seja ágil.
10. Test Driven Development
“A grande maioria das pessoas já teve alguma
experiência com um software que não funcionou como
esperado. Softwares que não funcionam corretamente
podem levar a muitos problemas, incluindo financeiro,
tempo e reputação das empresas. Podendo, inclusive,
chegar a influenciar na integridade das pessoas”
[ISTQB 2011].
11. Test Driven Development
Podemos associar a qualidade de um software à
quantidade de falhas percebidas no mesmo;
O teste de software ajuda a medir e/ou garantir essa
qualidade;
Níveis de Teste:
Unidade (componente)
Integração (interface entre componentes)
Sistema (comportamento)
Aceitação (apropriado para uso).
12. Test Driven Development
Modos de Testar:
Manual
Ex.: Inspeção manual de Código
Automático
Ex.: Asserção com JUnit
No contexto de testes automáticos se sobressaem duas
abordagens:
TDD (Testing-Driven Development) ou Desenvolvimento dirigido por
testes
BDD (Behavior-Driven Design) ou Projeto guiado por comportamento
13. TDD
TDD se apoia nos passos:
Escreva o teste, para a funcionalidade, antes de
estar implementada (os testes irão falhar)
Escreva o código de modo a fazer os teste
passar
Refatore o código
Repita o processo
15. Behavior Driven Development
Sobre BDD podemos fazer as seguintes considerações
[Fox e Patterson 2012]:
BDD faz perguntas sobre comportamentos antes e
durante o desenvolvimento, visando reduzir falhas na
comunicação dentro do projeto.
Requisitos são escritos como estórias de usuários. São
criadas descrições simples de como a aplicação deve
ser utilizada.
BDD se concentra no comportamento da aplicação
versus a implementação da aplicação e os testes são
conduzidos utilizando TDD.
16. Behavior Driven Development
Um exemplo simples considerando a seguinte
narrativa:
Como um usuário
Eu quero comprar produtos em promoção
E então receber um email de confirmação
Scenario: Verificar produtos em promoção
Given Que uma loja possui 10 produtos
and Que 5 estão em promoção
When Eu verifico quais estão em promoção
Then Preencho minha sacola apenas com produtos
em promoção
17. Behavior Driven Development
public class PromocaoSteps extends PtBRSteps {
Loja loja = new Loja();
Sacola sacola = new Sacola();
List<Produto> listaProdutoPromocao;
int quantidadeProdutoPromocao;
@Given("Que uma loja possui $quant produtos")
public void populaLoja(Integer quantidade) {
loja.inicializaProdutos(quantidade);
}
@Given("Que $quant estão em promoção")
public void informaProdutosPromocao(Integer quantidade) {
loja.colocaProdutosPromocao(quantidade);
quantidadeProdutoPromocao = quantidade;
}
@When("Eu verifico quais estão em promoção")
public void verificaProdutosPromocao() {
listaProdutoPromocao = loja.retornaProdutosPromocao();
}
@Then("Preencho minha sacola apenas com produtos em promoção")
public void populaSacola() {
sacola.populaSacola(listaProdutoPromocao);
Assert.assertEquals(listaProdutoPromocao.size(),
quantidadeProdutoPromocao);
}
}
18. Behavior Driven Development
Assim temos:
“Given” é a condição inicial
“When” é a ação realizada para a obtenção do
resultado
“Then” a conclusão/comportamento esperado
19. User Story
Story vem de conto (estória) e não de história (relato de fatos);
É basicamente uma lista de requisitos, funções que o dono do
negócio solicita e que espera que elas sejam entregues, descritas
em linguagem coloquial.
Aspectos críticos:
Deve ser escrita em cartões (ou post-its), pois devem ser pequenas;
Deve identificar uma funcionalidade;
Deve ser definida uma forma de validação.
Devem ser independentes umas das outras;
Não são contratos, mas sim lembretes. Por isso devem ser
informais;
Devem agregar valor ao cliente;
Devem ser estimáveis;
Devem ser testáveis.
21. Velocity
Uma das mais importantes métricas para um time Ágil;
Em termos de gerenciamento de projetos, Velocity é o “valor
de trabalho” que um time precisa completar em um dado
período de tempo (entre 1 e 4 semanas);
Este “valor de trabalho” é número total de estórias que o
time estimou;
Assim, Velocity é simplesmente o trabalho dividido pelo
time;
Para isso é feito um cálculo de produtividade baseado no
total de funcionalidades codificadas, seu grau de
importância e o tempo gasto;
23. Scrum
É um modo ágil de
processo que foi
desenvolvido por Jeff
Sutherland e por sua
equipe no início da
década de 1990.
Nos últimos anos foi
realizado
desenvolvimento
adicional de métodos
Scrum por Sewaber e
Beedle.
24. Scrum
Princípios:
Pequenas equipes de trabalho são organizadas
de modo a “maximizar a comunicação, minimizar
a supervisão e maximizar o compartilhamento de
conhecimento tácito informal”.
O processo precisa ser adaptável tanto a
modificações técnicas quanto de negócios “para
garantir que o melhor produto possível seja
produzido”.
O processo produz frequentes incrementos do
software “que podem ser inspecionados,
ajustados, testados, documentados e
expandidos”.
25. Scrum
Princípios:
O trabalho de desenvolvimento e o pessoal que o
realiza é dividido “em partições claras de baixo
acoplamento, ou em pacotes”.
Testes e documentação constantes são
realizados à medida que o produto é construído.
O processo Scrum fornece a “habilidade de
declarar o produto ‘pronto’ sempre que necessário
(porque a concorrência acabou de entregar,
porque a empresa precisa de dinheiro, porque o
usuário/cliente precisa das funções, porque foi
para essa data que foi prometido.)”
27. eXtreme Programming
O XP usa uma abordagem orientada a objetos
como seu paradigma de desenvolvimento
predileto.
Inclui um conjunto de regras e práticas que
ocorrem no contexto de quatro atividades:
planejamento,
projeto,
codificação e
teste.
28. Extreme Programming (XP)
Planejamento:
Começa com a criação de
um conjunto de histórias
(histórias do usuário) que
descrevem as
características e
funcionalidades
requeridas para o
software a ser construído.
Cada história é escrita
pelo cliente e é colocada
em um cartão de
indexação.
29. Extreme Programming (XP)
Planejamento:
O cliente atribui um
valor (prioridade) para a
história, com base no
valor de negócio global
da característica ou da
função.
Membros da equipe XP
avaliam então cada
história e lhe atribuem
um custo – medido em
semanas de
desenvolvimento.
30. Extreme Programming (XP)
Planejamento:
Se a história precisar
mais do que três
semanas de
desenvolvimento, pede-
se ao cliente para
dividir a história em
histórias menores e a
atribuição de valor e
custo ocorre
novamente.
Novas histórias podem
ser escritas a qualquer
momento.
32. Extreme Programming (XP)
Projeto:
O projeto XP segue rigorosamente o princípio KIS
(keep it simple – mantenha a simplicidade).
Um projeto simples é sempre preferível em
relação a uma representação mais complexa.
Além disso, o projeto fornece diretrizes de
implementação para uma história como ela está
escrita – nada mais e nada menos.
O XP encoraja o uso de cartões CRC (Class
Responsability Colaborator) como um mecanismo
efetivo para raciocinar sobre o software no
contexto orientado a objetos.
33. Extreme Programming (XP)
Características:
Encoraja a refatoração;
A Programação em par;
Desenvolvimento incremental;
A integração contínua;
Testes!!!
36. Referências
Beck, K., et al. (2001). "Manifesto for Agile
Software Development". Agile Alliance.
http://agilemanifesto.org/. Acessado em 18 de
agosto de 2012.
Fox, A., Patterson, D. (2012). “Engineering
Long-Lasting Software: An Agile Approach
Using SaaS and Cloud Computing”, Alpha
Edition. Strawberry Canyon LLC, 2012.