O documento propõe combinar o método ágil Scrum com a Metodologia para Definição do Comportamento Excepcional (MDCE+) para permitir o desenvolvimento ágil de software confiável. O método Scrum+CE introduziria etapas do MDCE+ no processo Scrum para modelar e implementar o comportamento excepcional de forma a não comprometer a agilidade ou a confiabilidade. O documento revisa trabalhos relacionados e discute os desafios de combinar métodos ágeis e confiabilidade.
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumThiago Barros, PSM
[1] O documento discute métodos ágeis de desenvolvimento de software, com foco no framework Scrum. [2] Scrum utiliza sprints curtas, reuniões diárias e feedback contínuo do cliente para entregar valor incrementalmente. [3] Várias ferramentas livres são apresentadas para auxiliar a implementação de Scrum em projetos.
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Keila Freitas
Este documento compara ferramentas em software livre para gestão ágil de projetos de desenvolvimento de software. Resume os principais recursos e funcionalidades do XPlanner-Plus, Agilefant e Scrumdo, incluindo planejamento de projetos, gestão de backlogs, gráficos e métricas. Conclui que essas ferramentas oferecem funcionalidades semelhantes, mas com algumas particularidades em cada uma.
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...Flávio Steffens
O documento discute cinco motivos alegados para não adotar metodologias ágeis no desenvolvimento de software e refuta cada um deles. Ele argumenta que as metodologias ágeis são mais adequadas à realidade de projetos de software, que sempre enfrentam incertezas e mudanças. Apresenta também evidências de que projetos ágeis tendem a ser mais produtivos e satisfazer melhor os stakeholders.
Aula 1
O que é software?
Quem faz o software?
Por que um software é importante?
Quais são os passos para se fazer um software?
Como tenho certeza que fiz um software corretamente?
Modelo Espiral de Boehm, prototipação em etapas, RUP - Rational Unified Process, Desenvolvimento Ágil, manifesto ágil, Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor, Envolvimento do cliente, Manter a simplicidade, O que é Scrum, Reunião Diária, Retrospectiva da , Planning Poker
A metodologia XP promove valores como coragem, comunicação e simplicidade. Ela segue princípios como feedback rápido, presumir simplicidade e mudanças incrementais. O ciclo de vida do XP inclui planejamento, codificação, teste e refatoração em iterações semanais. O planejamento é feito no Jogo de Planejamento e o progresso é avaliado em Stand Up Meetings diários. A programação é feita em pares e o có
O documento apresenta um resumo de um treinamento sobre Ciclo de Vida Ágil em TI, abordando Design Thinking, Scrum, PMBOK e DevOps. O treinamento tem duração de 24 horas e objetiva desenvolver uma visão geral e prática sobre essa abordagem ágil, descrevendo as ferramentas e técnicas utilizadas. O cronograma inclui apresentações sobre cada etapa do ciclo de vida ágil e técnicas de aprendizagem.
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumThiago Barros, PSM
[1] O documento discute métodos ágeis de desenvolvimento de software, com foco no framework Scrum. [2] Scrum utiliza sprints curtas, reuniões diárias e feedback contínuo do cliente para entregar valor incrementalmente. [3] Várias ferramentas livres são apresentadas para auxiliar a implementação de Scrum em projetos.
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Keila Freitas
Este documento compara ferramentas em software livre para gestão ágil de projetos de desenvolvimento de software. Resume os principais recursos e funcionalidades do XPlanner-Plus, Agilefant e Scrumdo, incluindo planejamento de projetos, gestão de backlogs, gráficos e métricas. Conclui que essas ferramentas oferecem funcionalidades semelhantes, mas com algumas particularidades em cada uma.
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...Flávio Steffens
O documento discute cinco motivos alegados para não adotar metodologias ágeis no desenvolvimento de software e refuta cada um deles. Ele argumenta que as metodologias ágeis são mais adequadas à realidade de projetos de software, que sempre enfrentam incertezas e mudanças. Apresenta também evidências de que projetos ágeis tendem a ser mais produtivos e satisfazer melhor os stakeholders.
Aula 1
O que é software?
Quem faz o software?
Por que um software é importante?
Quais são os passos para se fazer um software?
Como tenho certeza que fiz um software corretamente?
Modelo Espiral de Boehm, prototipação em etapas, RUP - Rational Unified Process, Desenvolvimento Ágil, manifesto ágil, Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor, Envolvimento do cliente, Manter a simplicidade, O que é Scrum, Reunião Diária, Retrospectiva da , Planning Poker
A metodologia XP promove valores como coragem, comunicação e simplicidade. Ela segue princípios como feedback rápido, presumir simplicidade e mudanças incrementais. O ciclo de vida do XP inclui planejamento, codificação, teste e refatoração em iterações semanais. O planejamento é feito no Jogo de Planejamento e o progresso é avaliado em Stand Up Meetings diários. A programação é feita em pares e o có
O documento apresenta um resumo de um treinamento sobre Ciclo de Vida Ágil em TI, abordando Design Thinking, Scrum, PMBOK e DevOps. O treinamento tem duração de 24 horas e objetiva desenvolver uma visão geral e prática sobre essa abordagem ágil, descrevendo as ferramentas e técnicas utilizadas. O cronograma inclui apresentações sobre cada etapa do ciclo de vida ágil e técnicas de aprendizagem.
O documento apresenta as informações sobre o curso de Engenharia de Softwares e Gerência de Projetos ministrado pelo professor Rudson Kiyoshi S. Carvalho na Anhanguera em 2015. Ele descreve o calendário e sistema de avaliação do curso, que inclui ATPS (Atividades de Trabalho de Projeto Supervisionado) e provas. O documento também fornece detalhes sobre os requisitos e entregas dos relatórios do ATPS, como escopo, cronograma e requisitos do projeto de software.
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.
O documento apresenta o método Scrum, uma metodologia ágil para desenvolvimento de software. Discute as vantagens das metodologias ágeis em relação às clássicas, como entregas frequentes de funcionalidades e discussões diárias. Também explica os processos, termos e características principais do Scrum, como Sprints curtos e reuniões diárias.
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
O documento descreve vários modelos de processo de produção de software, incluindo:
1) O modelo cascata entrelaçado, que propõe a sobreposição das fases para reduzir problemas;
2) O modelo cascata com subprojetos, que permite dividir o sistema em subsistemas desenvolvidos em paralelo;
3) O modelo cascata com redução de riscos, focado em identificar e reduzir riscos nas fases iniciais.
Fundamentos Engenharia de Software.pptxRoberto Nunes
O documento fornece uma visão geral da engenharia de software, discutindo sua definição, objetivos, evolução histórica, desafios, práticas e mitos relacionados. É apresentada uma introdução aos principais conceitos, incluindo processos de software, métodos, ferramentas CASE e perfis profissionais.
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 principais tópicos do SWEBOK, que é um guia para a engenharia de software. Ele cobre 11 áreas de conhecimento, incluindo requisitos, projeto, construção, teste, manutenção e gerenciamento de projetos de software.
Este documento descreve diferentes modelos de processos de produção de software, incluindo:
1) Os modelos prescritivos/clássicos como Cascata, Codificar e Consertar e Programador-Chefe;
2) Os modelos tentam encontrar um equilíbrio entre ordem e adaptabilidade no desenvolvimento de software;
3) Cada modelo possui vantagens e desvantagens dependendo do projeto. O engenheiro de software deve escolher o modelo mais adequado para sua equipe e projeto.
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.
O documento descreve o processo Ágil Unificado (AUP), incluindo seu histórico, princípios, práticas, fases e atividades. O AUP é uma versão simplificada do Processo Unificado Racional que usa técnicas ágeis para desenvolver software de forma simples e incremental.
O documento descreve o IBM Rational Unified Process (RUP), um processo proprietário de engenharia de software criado pela Rational Software Corporation e agora de propriedade da IBM. O RUP usa uma abordagem orientada a objetos e é projetado para aumentar a produtividade das equipes de desenvolvimento de software. Ele define linhas mestras, fases e princípios como gestão de requisitos, uso de arquitetura baseada em componentes e modelagem visual para guiar o desenvolvimento de software.
O documento discute processos de engenharia de software, incluindo modelos como cascata e incremental. O modelo em cascata é composto por sequências de atividades como análise de requisitos, design, implementação e testes. Já o desenvolvimento incremental envolve o desenvolvimento inicial e versões sucessivas com base em comentários. A engenharia de software orientada a reuso busca incorporar códigos e sistemas semelhantes ao projeto.
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
O documento discute técnicas de revisão de software como uma forma efetiva de melhorar a qualidade do software. A revisão técnica formal é apontada como o filtro mais efetivo para garantir a qualidade, com o objetivo de encontrar erros antes de serem entregues ao usuário final. Defeitos descobertos nas fases iniciais custam menos para corrigir do que defeitos encontrados mais tarde.
O documento descreve diferentes modelos de processos de produção de software, incluindo:
1. Modelos tradicionais como cascata, incremental e orientado a ferramentas.
2. Modelos específicos como desenvolvimento baseado em componentes e métodos formais.
3. Modelos modernos como RUP (Rational Unified Process) e ágeis.
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixCris Fidelix
Este documento descreve vários modelos de processos de desenvolvimento de software (PDS), incluindo:
1) O Método Crystal foca na gestão de pessoas e comunicação efetiva, variando de acordo com o tamanho da equipe e riscos do projeto.
2) O Rational Unified Process (RUP) utiliza UML, é baseado em casos de uso e centrado em arquitetura.
3) Clean Room é aplicado para softwares críticos e requer especificações formais devido à sua alta qualidade e baixo número de erros.
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
A metodologia de desenvolvimento de software descrita enfatiza o desenvolvimento iterativo e incremental com foco na entrega rápida de valor ao usuário final, utilizando princípios ágeis como envolvimento do usuário, entregas frequentes e feedback constante.
O documento descreve a crise do desenvolvimento de software nas décadas de 1960 a 1980, citando problemas como demanda maior que a capacidade de desenvolvimento e maus projetos. Também apresenta modelos de processo como o ciclo de vida clássico, prototipagem e espiral, destacando seus benefícios e limitações.
O documento descreve as principais etapas do ciclo de vida de sistemas, incluindo concepção, construção, implantação, manutenção e morte. Também discute os objetivos, fundamentos e aplicações da engenharia de software.
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.
O documento apresenta as informações sobre o curso de Engenharia de Softwares e Gerência de Projetos ministrado pelo professor Rudson Kiyoshi S. Carvalho na Anhanguera em 2015. Ele descreve o calendário e sistema de avaliação do curso, que inclui ATPS (Atividades de Trabalho de Projeto Supervisionado) e provas. O documento também fornece detalhes sobre os requisitos e entregas dos relatórios do ATPS, como escopo, cronograma e requisitos do projeto de software.
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.
O documento apresenta o método Scrum, uma metodologia ágil para desenvolvimento de software. Discute as vantagens das metodologias ágeis em relação às clássicas, como entregas frequentes de funcionalidades e discussões diárias. Também explica os processos, termos e características principais do Scrum, como Sprints curtos e reuniões diárias.
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
O documento descreve vários modelos de processo de produção de software, incluindo:
1) O modelo cascata entrelaçado, que propõe a sobreposição das fases para reduzir problemas;
2) O modelo cascata com subprojetos, que permite dividir o sistema em subsistemas desenvolvidos em paralelo;
3) O modelo cascata com redução de riscos, focado em identificar e reduzir riscos nas fases iniciais.
Fundamentos Engenharia de Software.pptxRoberto Nunes
O documento fornece uma visão geral da engenharia de software, discutindo sua definição, objetivos, evolução histórica, desafios, práticas e mitos relacionados. É apresentada uma introdução aos principais conceitos, incluindo processos de software, métodos, ferramentas CASE e perfis profissionais.
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 principais tópicos do SWEBOK, que é um guia para a engenharia de software. Ele cobre 11 áreas de conhecimento, incluindo requisitos, projeto, construção, teste, manutenção e gerenciamento de projetos de software.
Este documento descreve diferentes modelos de processos de produção de software, incluindo:
1) Os modelos prescritivos/clássicos como Cascata, Codificar e Consertar e Programador-Chefe;
2) Os modelos tentam encontrar um equilíbrio entre ordem e adaptabilidade no desenvolvimento de software;
3) Cada modelo possui vantagens e desvantagens dependendo do projeto. O engenheiro de software deve escolher o modelo mais adequado para sua equipe e projeto.
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.
O documento descreve o processo Ágil Unificado (AUP), incluindo seu histórico, princípios, práticas, fases e atividades. O AUP é uma versão simplificada do Processo Unificado Racional que usa técnicas ágeis para desenvolver software de forma simples e incremental.
O documento descreve o IBM Rational Unified Process (RUP), um processo proprietário de engenharia de software criado pela Rational Software Corporation e agora de propriedade da IBM. O RUP usa uma abordagem orientada a objetos e é projetado para aumentar a produtividade das equipes de desenvolvimento de software. Ele define linhas mestras, fases e princípios como gestão de requisitos, uso de arquitetura baseada em componentes e modelagem visual para guiar o desenvolvimento de software.
O documento discute processos de engenharia de software, incluindo modelos como cascata e incremental. O modelo em cascata é composto por sequências de atividades como análise de requisitos, design, implementação e testes. Já o desenvolvimento incremental envolve o desenvolvimento inicial e versões sucessivas com base em comentários. A engenharia de software orientada a reuso busca incorporar códigos e sistemas semelhantes ao projeto.
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
O documento discute técnicas de revisão de software como uma forma efetiva de melhorar a qualidade do software. A revisão técnica formal é apontada como o filtro mais efetivo para garantir a qualidade, com o objetivo de encontrar erros antes de serem entregues ao usuário final. Defeitos descobertos nas fases iniciais custam menos para corrigir do que defeitos encontrados mais tarde.
O documento descreve diferentes modelos de processos de produção de software, incluindo:
1. Modelos tradicionais como cascata, incremental e orientado a ferramentas.
2. Modelos específicos como desenvolvimento baseado em componentes e métodos formais.
3. Modelos modernos como RUP (Rational Unified Process) e ágeis.
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixCris Fidelix
Este documento descreve vários modelos de processos de desenvolvimento de software (PDS), incluindo:
1) O Método Crystal foca na gestão de pessoas e comunicação efetiva, variando de acordo com o tamanho da equipe e riscos do projeto.
2) O Rational Unified Process (RUP) utiliza UML, é baseado em casos de uso e centrado em arquitetura.
3) Clean Room é aplicado para softwares críticos e requer especificações formais devido à sua alta qualidade e baixo número de erros.
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
A metodologia de desenvolvimento de software descrita enfatiza o desenvolvimento iterativo e incremental com foco na entrega rápida de valor ao usuário final, utilizando princípios ágeis como envolvimento do usuário, entregas frequentes e feedback constante.
O documento descreve a crise do desenvolvimento de software nas décadas de 1960 a 1980, citando problemas como demanda maior que a capacidade de desenvolvimento e maus projetos. Também apresenta modelos de processo como o ciclo de vida clássico, prototipagem e espiral, destacando seus benefícios e limitações.
O documento descreve as principais etapas do ciclo de vida de sistemas, incluindo concepção, construção, implantação, manutenção e morte. Também discute os objetivos, fundamentos e aplicações da engenharia de software.
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.
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.
O documento descreve o Rational Unified Process (RUP), um processo de engenharia de software que utiliza uma abordagem iterativa e orientada a objetos. O RUP é dividido em quatro fases principais (concepção, elaboração, construção e transição) e nove disciplinas agrupadas em disciplinas de engenharia e disciplinas de apoio. A disciplina de modelagem de negócios é a primeira das seis disciplinas de engenharia e tem como objetivo estabelecer uma compreensão do negócio e dos requisitos do cliente.
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.
1) O documento discute como organizações podem adotar práticas ágeis ao mesmo tempo que seguem modelos como CMMI ou MPS.
2) São apresentadas algumas áreas de processo do CMMI e como elas podem ser interpretadas em organizações ágeis.
3) São fornecidas dicas sobre como implementar práticas como planejamento, monitoramento e garantia da qualidade em times ágeis.
Trabalho individual 5 semestre Analise de SistemasWANDERSON JONER
O documento descreve o desenvolvimento de um sistema de informação para um trabalho da disciplina de Análise e Desenvolvimento de Sistemas de Informação. Ele inclui a escolha de um modelo de ciclo de vida, o desenvolvimento de uma estrutura analítica de projetos e cronograma, além de aspectos de usabilidade, programação e conclusões.
O documento discute o uso de Test Driven Development (TDD) e Integração Contínua no desenvolvimento de software. Ele apresenta os benefícios dessas técnicas, como aumento de produtividade e qualidade do software. O documento também descreve o processo de configurar um servidor de integração contínua para automatizar builds e testes durante o desenvolvimento.
O documento descreve como um ambiente de desenvolvimento de software foi criado utilizando ferramentas como Netbeans, Grails e Visual Paradigm para UML. O ambiente foi usado para desenvolver a aplicação G-INFO utilizando Scrum. Diagramas de classe e banco de dados foram criados para especificar os requisitos da aplicação.
O documento descreve o modelo cascata de engenharia de software, que envolve sequencialmente análise de requisitos, projeto, implementação, teste e manutenção de um sistema de software. Apresenta vantagens como estruturação do processo, porém também problemas como dificuldade em lidar com mudanças nos requisitos.
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.
O documento descreve e compara o modelo CMMI nível 2 e o modelo Estrela para desenvolvimento de software. O modelo CMMI define níveis de maturidade para gestão de processos de software, enquanto o modelo Estrela fornece um guia orientado a processos para desenvolvimento de e-commerce. O modelo Estrela cobre as áreas necessárias para atingir o nível 2 do CMMI, embora sua abordagem extensa possa tornar o processo mais demorado.
O documento discute o gerenciamento de projetos de desenvolvimento de software, definindo projetos e descrevendo o Rational Unified Process (RUP) que utiliza iterações incrementais para reduzir riscos. Também explica como o RUP estrutura projetos em fases com objetivos específicos e como o MS Project pode ser usado para planejamento detalhado de iterações.
O documento introduz conceitos básicos de engenharia de software, incluindo: (1) a definição de software e a crise histórica no desenvolvimento de software, (2) a introdução da engenharia de software para lidar com os desafios por meio de modelos de processo e gerenciamento de projetos, e (3) os principais modelos de processo e gerenciamento de projetos de software.
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
O documento fornece informações sobre a disciplina de Engenharia de Software ministrada pelo professor Ernesto Bedrikow, incluindo sua formação acadêmica, experiência profissional, ementa, conteúdo programático e dinâmica das aulas.
O documento fornece uma visão geral da arquitetura de software, incluindo sua definição, importância e papel do arquiteto. Discute processos como RUP e XP, representação arquitetural com o modelo 4+1, e habilidades necessárias como experiência, comunicação e orientação a objetivos.
Semelhante a WBMA2013 - Método Ágil para desenvolvimento de software confiável (20)
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...Alan Braz
This document discusses the challenges of developing cognitive systems through distributed teams. It provides an overview of IBM Research Brazil's work on cognitive computing projects using distributed teams. Key challenges discussed include communication across remote teams and managing complexity and uncertainty in cognitive system development. The document also describes tools and methods used by IBM Research Brazil for distributed development, such as DevOps practices, GitHub for issue tracking, and cloud deployment of systems.
Agile2015 short paper presentation: Development of Complex Software with Agil...Alan Braz
Agile Software Development (ASD) has been on mainstream through methodologies such as XP and Scrum enabling them to be applied in the development of complex and reliable software systems. This paper is the end result of the Master’s dissertation of the main author, and proposes a solution to guide the development of complex systems based on components by adding exceptional behavior modeling practices to Scrum, resulting in the Scrum+CE method (Scrum with Exceptional Behavior).
In order to evaluate the proposed method, a synthetic controlled experiment was conducted with three groups.We compared the efficiency of the new process in relation to plain Scrum and the results were the production of a better quality software but with less features implemented during the same amount of time.
O documento discute as características de uma personalidade ágil, incluindo ser um bom ouvinte, estar disposto a compartilhar controle, e ser autoconfiante mas não arrogante. É sugerido que existem diferentes tipos de personalidade em relação à adoção de métodos ágeis, como "cowboys", "garupas" e "campeões". Ser flexível, questionador, comprometido com resultados e gostar de trabalhar em equipe são características importantes de uma personalidade ágil.
Análise de sentimento durante a Copa usando Big DataAlan Braz
A tecnologia de análise de sentimento social, desenvolvida pela IBM Brasil, analisa o que está sendo postado nas redes sociais sobre qualquer tema, empresa ou pessoa, sem a necessidade de uma hashtag. Todos os posts públicos em português são capturados por um sistema IBM de alta tecnologia com inteligência artificial, que é treinado para aprender a interpretar se o sentimento de cada postagem é positivo, neutro ou negativo. Essa tecnologia é capaz de analisar postagens de diversos assuntos e naturezas, incluindo gírias, sarcasmo e linguagem coloquial. Esta solução apelidade de FAMA, foi utilizada durante os jogos do Brasil na Copa das Confederações em 2013 e evoluída para funcionar nos 64 jogos da Copa do Mundo FIFA 2014. Nesta apresentação contarei a motivação, detalhes técnicos e resultados desta empreitada que unificou futebol, redes sociais e tecnologia!
Leia mais em http://alanbraz.wordpress.com/2014/08/07/tdc2014/
The document discusses measuring agility in large organizations like IBM. It provides an overview of IBM's size and global presence. It then describes IBM's transition to more agile practices like Blue Communities, Agile methods, and tools to improve collaboration across distributed teams. The document evaluates IBM's agility based on a survey and finds that while making progress, IBM scores lower on agility than teams solely focused on agile. It concludes that measuring agility is possible but discusses what truly defines an agile organization.
This document provides an overview of lean principles and tools. It discusses the history and evolution of lean thinking over decades, from Toyota's production system to modern lean six sigma. The core lean principles are described, including eliminating waste, respecting people, and continuously improving flow. Common lean tools and methods like value stream mapping, 5S, and A3 problem solving are also outlined. The document then presents a case study of applying lean tools to reduce the backlog of IT support tickets at a Mexican insurance company.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
WBMA2013 - Método Ágil para desenvolvimento de software confiável
1. M´etodo ´Agil para desenvolvimento de
software confi´avel
Alan Braz, Cec´ılia M. F. Rubira, Marco Vieira
<alanbraz@br.ibm.com>,
<cmrubira@ic.unicamp.br>, <mvieira@dei.uc.pt>
MSc - Instituto de Computa¸c˜ao - UNICAMP
Pesquisador em Engenharia de Software - IBM Research
WBMA 2013
28 de junho de 2013
2. M´etodo ´Agil para desenvolvimento de software confi´avel
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de Software
3 Scrum+CE
4 Experimento controlado
5 Conclus˜oes
2 / 50
3. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de Software
3 Scrum+CE
4 Experimento controlado
5 Conclus˜oes
3 / 50
4. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Introdu¸c˜ao
Confiabilidade n˜ao ´e mais um simples requisito
n˜ao funcional inerente apenas a sistemas
cr´ıticos mas sim a todos os sistemas de software
que necessitam de certa robustez
Solu¸c˜oes:
Desenvolvimento Baseado em Componentes (DBC)
Desenvolvimento Centrado na Arquitetura
O termo confiabilidade ser´a utilizado no sentido de reliability que
´e a capacidade do sistema oferecer seus servi¸cos e funcionalidades
conforme suas especifica¸c˜oes, ou seja, de forma correta.
4 / 50
5. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Hist´orico
Hist´orico
Tratamento de Exce¸c˜oes no Desenvolvimento de Software
Confi´avel Baseado em Componentes [Ferreira 2001]
Cria¸c˜ao da Metodologia para Defini¸c˜ao do
Comportamento Excepcional (MDCE)
Adi¸c˜ao de novos estere´otipos da UML.
Aplica¸c˜ao ao processo de desenvolvimento Catalysis
Um M´etodo para Modelagem de Exce¸c˜oes em
Desenvolvimento Baseado em Componentes [Brito 2005]
Evolu¸c˜ao do MDCE para o MDCE+ enfatizando a
modelagem do comportamento excepcional centrado na
arquitetura
Adapta¸c˜ao ao processo UML Components
5 / 50
6. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
MDCE+
Metodologia para Defini¸c˜ao do Comportamento
Excepcional (MDCE+)
Sistematiza a modelagem e a implementa¸c˜ao do
comportamento excepcional no desenvolvimento de
sistemas baseados em componentes
Focado nas fases de projeto arquitetural e implementa¸c˜ao
A ˆenfase na arquitetura de software possibilita uma
melhor an´alise dos fluxos de exce¸c˜oes entre os
componentes arquiteturais
Constru¸c˜ao de tratadores mais eficientes antecipa a
corre¸c˜ao de poss´ıveis falhas de especifica¸c˜ao.
6 / 50
7.
8. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Motiva¸c˜ao
Motiva¸c˜ao
Trabalho futuro sugerido por Patrick Brito:
Agilidade
Uma possibilidade para agilizar o desenvolvimento dos
sistemas seria estudar alguns processos ´ageis e tentar
introduzir algumas de suas caracter´ısticas no MDCE+.
Por´em, deve-se ter sempre em mente que n˜ao se pode
comprometer a confiabilidade do produto final produzido, uma
vez que esse ´e o objetivo principal do m´etodo MDCE+.
Por outro lado, n˜ao deve comprometer a agilidade!
8 / 50
9. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Proposta
Proposta
Combina¸c˜ao entre o m´etodo MDCE+
e a metodologia ´agil Scrum
Scrum+CE
(Scrum com Comportamento Excepcional)
9 / 50
10. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Proposta
MDCE
MDCE+
Catalysis
UML
Components
Scrum
Scrum+CE
Desenvolvimento
Baseado em
Components
(DBC)
Desenvolvimento
Centrado na
Arquitetura
1
2
2
3
3
1. 2001 Gisele
Ferreira
2. 2005 Patrick
Brito
3. Este trabalho
– – – Etapas
auxiliares
10 / 50
11. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Trabalhos relacionados
Trabalhos relacionados I
Agile Software Development for Component Based Software
Engineering [Radinger and Goeschka 2003], foi proposta uma
abordagem para integrar o Desenvolvimento ´Agil de Software
(DAS) ao DBC em um Desenvolvimento ´Agil de
Componentes para projetos de pequena e larga escalas
combinando as quest˜oes t´ecnicas e gerenciais de ambas as
abordagens. Todas as fases do DBC foram mantidas e com
foco em um documento de arquitetura completo e detalhado
do sistema bem como na an´alise e projeto igualmente
detalhados. Na fase de provisionamento de componentes, se
for tomada a decis˜ao de que um componente dever´a ser
desenvolvido, sua constru¸c˜ao dever´a seguir uma abordagem
´agil como se fosse um subprojeto.
11 / 50
12. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Trabalhos relacionados
Trabalhos relacionados II
Software Architecture-Centric Methods and Agile
Development [Nord and Tomayko 2006] explora as rela¸c˜oes e
sinergias entre a An´alise e Projeto centrado na Arquitetura e
o m´etodo ´agil XP, destacando que o segundo enfatiza o
desenvolvimento r´apido e flex´ıvel enquanto o primeiro prioriza
o projeto e a infraestrutura.
12 / 50
13. M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Trabalhos relacionados
Trabalhos relacionados III
Software Reliability Engineering (SRE) for Agile Software
Development [Far 2007] foi mostrado que, apesar de terem
enfoques distintos, existe compatibilidade entre o
desenvolvimento de software confi´avel e ´agil em torno dos
aspectos de se medir e avaliar a confiabilidade do software
desenvolvido. SRE executa testes no software criado com o
objetivo de validar os parˆametros de confiabilidade
previamente definidos e modelados, enquanto que o m´etodo
´agil se apoia em uma abordagem dirigida por testes, TDD, na
qual os casos de testes s˜ao escritos antes do c´odigo e
executados constantemente, preferencialmente de forma
autom´atica, durante o processo de desenvolvimento. Foi
proposto um novo processo, chamado Agile-SRE.
13 / 50
14. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de Software
3 Scrum+CE
4 Experimento controlado
5 Conclus˜oes
14 / 50
15. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Desenvolvimento ´Agil de Software (DAS)
Conjunto de metodologias de desenvolvimento de software
guiados por quatro valores e doze princ´ıpios definidos em
2001 no Manifesto ´Agil. [Beck et al. 2001]
1 Indiv´ıduos e as intera¸c˜oes entre eles
mais que processos e ferramentas,
2 Software em funcionamento
mais que documenta¸c˜ao abrangente,
3 Colabora¸c˜ao com o cliente
mais que negocia¸c˜ao de contratos, e
4 Responder a mudan¸cas
mais que seguir um plano.
15 / 50
16. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Cr´ıticas
Enfoque na organiza¸c˜ao das equipes e aspectos
gerenciais
Impress˜ao de que documentar os requisitos,
definir um projeto arquitetural, fazer an´alise e
design n˜ao s˜ao obrigat´orios ou n˜ao precisam de
nenhum tipo de rigor
Por´em um dos princ´ıpios dita:
“aten¸c˜ao cont´ınua a excelˆencia
t´ecnica e a um bom projeto (design)”
16 / 50
17. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Desafios
Os maiores desafios s˜ao provenientes da transforma¸c˜ao
cultural exigida:
Custo e o Tempo s˜ao fixos, e o Escopo vari´avel,
For¸ca o cliente a pensar nos requisitos realmente
obrigat´orios para atender as suas necessidades,
Muda a mentalidade de gerente de projetos e
desenvolvedores,
Muda a forma em que requisitos s˜ao estimados e
contratos s˜ao negociados.
Motiva¸c˜ao:
Simplicidade ´e confundida com informalidade
ou falta de rigor
17 / 50
18. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
M´etodo Scrum
Desenvolvimento iterativo de incremental
Equipes pequenas e multidisciplinares
Abordagem emp´ırica
R´apido, adapt´avel e auto-organizado
Requisitos no formato de Hist´orias de Usu´arios
(User Stories)*
Estimativas feitas com Pontos de Hist´orias
(Story Points)*
* Pr´aticas ´ageis amplamente utilizadas mas que n˜ao fazem parte do
Scrum oficialmente
18 / 50
19. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Fases do Scrum
Pré-jogo
- Planejamento
- Arquitetura Inicial
Pós-jogo
- Testes de integração
- Empacotamento
- Fechamento
Jogo
Sprints
D
esenvolvim
ento*
Integração
Revisão
A
justes
* engloba Análise, Projeto e Codificação
http://www.jeffsutherland.org/oopsla/schwapub.pdf [Schwaber 1995]
19 / 50
20. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Pap´eis, eventos e artefatos
1
2
3
4
5
6
7
8
9
10
Entradas dos Executivos,
Equipe, Clientes, Usuários e
outros Envolvidos
Dono do Produto1
Backlog do
Produto2
Reunião de
Planejamento
do Sprint3
Equipe de
Desenvolvimento1
Backlog do
Sprint2
Scrum Master1
Retrospectiva
do Sprint3
Incremento Pronto2
Revisão do Sprint3
Gráfico
Burndown2
Reunião de
Scrum Diário3
Sprint
2-4
semanas
Data de entrega e Backlog do
Sprint não sofrem alterações
após o início do Sprint
TarefasHistórias
de Usuário
1
Papel, 2
Artefato, 3
Evento
Time seleciona
as de maior
prioridade
que pode se
comprometer
a entregar
Cada
24 horas
20 / 50
21. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Hist´orias de Usu´ario
Cart˜ao Uma breve descri¸c˜ao da hist´oria usada no
planejamento
Conversa¸c˜ao For¸ca a discuss˜ao entre os envolvidos para
obter mais detalhes
Confirma¸c˜ao Testes de valida¸c˜ao e documenta¸c˜ao dos
detalhes
Formato / Modelo
Como um papel/ator, eu quero objetivo,
para que eu possa valor de neg´ocio.
21 / 50
22. M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Exemplo de Hist´oria de Usu´ario
Cart˜ao
Como um Passageiro eu quero buscar uma linha de ˆonibus que
tenha um ponto de parada pr´oximo a um endere¸co desejado, para
que eu possa caminhar o m´ınimo poss´ıvel para chegar ao ponto.
Confirma¸c˜ao na forma de Testes de Aceita¸c˜ao
Consigo escolher o turno e sentido?
O formato do endere¸co ´e composto por latitude e longitude?
A resposta ´e a sigla da linha encontrada?
O ponto encontrado esta a menos de 500 metros?
O ponto ´e de parada?
22 / 50
23. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de Software
3 Scrum+CE
4 Experimento controlado
5 Conclus˜oes
23 / 50
24. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Solu¸c˜ao proposta: Scrum+CE
Pré-jogo
- Planejamento
- Arquitetura Inicial
Pós-jogo
- Testes de integração
- Empacotamento
- Fechamento
Jogo
Sprints
D
esenvolvim
ento*
Integração
Revisão
A
justes
* engloba Análise,
Projeto e Codificação
Identificação das Exceções e Definição
dos cenários excepcionais na forma de
Histórias Excepcionais
Descrição das Assertivas
Excepcionais
Implementação dos Componentes e Criação de
“wrappers” para os components reutilizados
Separação de interesse
entre os componentes
Normais e Excepcionais Análise do Fluxo Excepcional e
Refinamento dos tratadores
Implementação dos conectores
24 / 50
25. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Pap´eis, eventos e artefatos
1
2
3
4
5
6
7
8
9
10
Entradas dos Executivos,
Equipe, Clientes, Usuários e
outros Envolvidos
Dono do Produto1
Backlog do
Produto2
Reunião de
Planejamento
do Sprint3
Equipe de
Desenvolvimento1
Backlog do
Sprint2
Scrum Master1
Retrospectiva
do Sprint3
Incremento Pronto2
Revisão do Sprint3
Gráfico
Burndown2
Reunião de
Scrum Diário3
Sprint
2-4
semanas
Data de entrega e Backlog do
Sprint não sofrem alterações
após o início do Sprint
Tarefas
Histórias de
Usuário e
Histórias
Excepcionais
1
Papel, 2
Artefato, 3
EventoDono da Arquitetura1
Time seleciona
as de maior
prioridade
que pode se
comprometer
a entregar
Arquitetura Inicial2
Cada
24 horas
25 / 50
26. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Rela¸c˜ao entre as fases
Tabela: Rela¸c˜ao entre as fases do MDCE+ e do Scrum.
Fases do Scrum Eventos do Scrum Fases do MDCE+
Pr´e-jogo
Planejamento
FASE 1: Especifica¸c˜ao e An´alise dos Requisitos
FASE 2: Defini¸c˜ao dos Aspectos Gerenciais
Arquitetura FASE 3: Projeto Arquitetural
Jogo
Planejamento do Sprint
FASE 1: Especifica¸c˜ao e An´alise dos Requisitos
FASE 3: Projeto Arquitetural
FASE 4: An´alise do Sistema
FASE 5: Projeto do Sistema
Sprint
FASE 6: Materializa¸c˜ao dos Componentes
FASE 7: Integra¸c˜ao dos Componentes
Revis˜ao do Sprint
FASE 1: Especifica¸c˜ao e An´alise dos Requisitos
FASE 8: Implanta¸c˜ao (demonstra¸c˜ao ao cliente)
P´os-jogo
Testes de integra¸c˜ao FASE 7: Integra¸c˜ao dos Componentes
Empacotamento
FASE 8: Implanta¸c˜ao (entrega ao cliente)
Fechamento
26 / 50
27. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Fases afetadas
Pr´e-jogo
Comportamento excepcional ser´a documentado na forma
de Hist´orias Excepcionais e de Testes de Aceita¸c˜ao nas
Hist´orias de Usu´ario que validem especificamente os
fluxos excepcionais.
Arquitetura Inicial passar´a a expor os componentes
excepcionais conforme o modelo de componente
tolerante a falhas ideal que ´e categorizado em dois tipos:
normal, que produz respostas corretas; e excepcional (ou
anormal), que ´e executado quando um erro ´e detectado.
Defini¸c˜ao de “Pronto”: o tratamento do
comportamento excepcional tamb´em deve ser
explicitado, adicionando o seguinte trecho:
“. . . e todas as exce¸c˜oes foram devidamente tratadas”.
27 / 50
28. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Exemplo de Hist´oria Excepcional
Cart˜ao
Como um Usu´ario eu quero ver uma mensagem de erro quando o
banco de dados estiver indispon´ıvel, para que eu possa evitar a
visualiza¸c˜ao de mensagens t´ecnicas.
Confirma¸c˜ao na forma de Testes de Aceita¸c˜ao
Uma mensagem de erro ´e mostrada quando o banco de dados est´a
fora do ar?
Uma mensagem de erro ´e mostrada ocorre um erro de autentica¸c˜ao
no banco de dados?
Uma mensagem de erro ´e mostrada quando um consulta mal
formatada ´e feita no banco de dados?
28 / 50
29. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Exemplo de Testes de Aceita¸c˜ao Excepcionais
Cart˜ao
Como um Passageiro eu quero buscar uma linha de ˆonibus que tenha um
ponto de parada pr´oximo a um endere¸co desejado, para que eu possa
caminhar o m´ınimo poss´ıvel para chegar ao ponto.
Testes de Aceita¸c˜ao Excepcionais
Mostrar mensagem de erro se n˜ao houverem parˆametros de entrada;
O parˆametro Turno n˜ao pode ser nulo;
O parˆametro Turno deve ser um n´umero inteiro positivo;
Mostrar mensagem de erro caso n˜ao existirem linhas para o Turno
desejado;
O parˆametro Sentido n˜ao pode ser nulo;
O parˆametro Sentido deve ser um ´unico caractere;
O valores v´alidos de Sentido s˜ao: T, t, C, c;
Os parˆametros de Latitude e Longitude n˜ao podem ser nulos;
Os valores de Latitude e Longitude devem ser num´ericos, com casas
decimais, negativos ou positivos.
29 / 50
30. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Fases afetadas
Jogo
As Hist´orias Excepcionais s˜ao priorizadas, com ajuda do
Dono da Arquitetura, e selecionadas do Product Backlog
assim como as Hist´orias de Usu´arios
Tarefas expl´ıcitas para o tratamento das exce¸c˜oes devem
ser criadas no Sprint Backlog durante a Reuni˜ao de
Planejamento do Sprint
Arquitetura deve ser revisada e atualizada caso novas
exce¸c˜oes sejam descobertas
30 / 50
31. M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Fases afetadas
Reuni˜ao de Planejamento dividida em trˆes
partes:
1 O que vai ser entregue como resultado do Incremento
do pr´oximo Sprint;
2 Qual o impacto de tais mudan¸cas na arquitetura;
3 Como ser´a realizado o trabalho necess´ario para adaptar
a arquitetura e entregar o Incremento.
31 / 50
32. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de Software
3 Scrum+CE
4 Experimento controlado
5 Conclus˜oes
32 / 50
33. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Metodologia
Metodologia
Foi realizado um experimento controlado
quantitativo com o intuito de avaliar a
aplicabilidade pr´atica do m´etodo Scrum+CE.
Implementa¸c˜ao de um sistema de software com
requisitos de confiabilidade relativos a
consistˆencia dos dados.
Formatado em um treinamento de
“Scrum na Pr´atica” com dura¸c˜ao de 2 semanas,
composto por 3 equipes de 4 participantes cada.
33 / 50
34. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Defini¸c˜ao
Tabela: Vis˜ao Geral do experimento.
Objetivo Analisar a viabilidade do uso do Scrum+CE no desenvolvimento de siste-
mas de informa¸c˜ao com requisito de confiabilidade sem perder a agilidade,
atrav´es da compara¸c˜ao com o uso do Scrum.
Foco da
qualidade
Melhor qualidade do c´odigo gerado atrav´es da diminui¸c˜ao dos n´umero de
defeitos;
Entrega de menor quantidade de Pontos de Hist´oria.
Contexto Objeto: sistema de software para plataforma web em linguagem Java
Sujeitos: desenvolvedores profissionais com pelo menos 3 anos de ex-
periˆencia em Java (67% certificados)
Hip´otese nula
Igual ou maior n´umero de defeitos.
Igual ou maior n´umero de Pontos de Hist´oria entregues.
Fator principal Pr´aticas propostas pelo Scrum+CE em rela¸c˜ao ao Scrum
Outros fatores Experiˆencia dos desenvolvedores na plataforma Java e no processo Scrum.
Vari´aveis
dependentes
(i) Corretude do c´odigo entregue avaliada pela execu¸c˜ao de um conjunto de
testes funcionais manuais;
(ii) Quantidade de Pontos de Hist´oria entregues;
(iii) M´etricas de tamanho e complexidade do c´odigo gerado.
34 / 50
35. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Prepara¸c˜ao
Redu¸c˜ao
Adapta¸c˜ao da dura¸c˜ao dos eventos para viabilizar o
experimento.
Tabela: Fatores de redu¸c˜ao para viabilizar simula¸c˜ao.
Fator Sugerido Utilizado
Tamanho da Equipe de Desenvolvimento entre 5 e 9 4
Quantidade de Sprints na Release 1 ou mais 2
Dura¸c˜ao total do Sprint entre 2 e 4 semanas 1 semana
Dura¸c˜ao da Reuni˜ao de Planejamento do Sprint entre 4 e 8 horas 2 horas
Dura¸c˜ao do Scrum Di´ario 15 minutos 3 minutos
Dura¸c˜ao do dia de trabalho 8 horas 2 horas
Dura¸c˜ao da Revis˜ao do Sprint entre 2 e 4 horas 1 hora
Dura¸c˜ao da Retrospectiva do Sprint entre 2 e 4 horas 1 hora
35 / 50
36. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Sistema implementado
Tabela: Vis˜ao do sistema.
Para usu´arios do servi¸co de fretados e funcion´arios do departamento
de transportes.
Que precisam saber qual linha de ˆonibus passa por determinado ponto
em um determinado hor´ario.
O BusMaps ´e uma plataforma m´ovel.
Que controla os itiner´arios das linhas de fretados atrav´es do cadastro
e manuten¸c˜ao dos pontos de parada dos ˆonibus.
Ao contr´ario do sistema atual que apenas lista as avenidas e ruas principais
de cada linha e seu hor´ario de partida no sentido de ida para a
empresa.
Nosso produto possibilitar´a a visualiza¸c˜ao dos itiner´arios em ambos os sentidos,
bem como o hor´ario previsto de parada em cada ponto, facili-
tando assim a busca das linhas pelos usu´arios e a manuten¸c˜ao e
planejamento dos itiner´arios pelo setor de transportes.
36 / 50
37. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Arquitetura
DB2
OpenJPARestlet
Navegador
Celular
Entidades
Apresentação
Excepcional
Persistência
Excepcional
Interface de
Usuário
Sessão do Usuário /
Serviços de Sistema
Serviços de Negócio
Banco de
Dados
JSON
HTTP
37 / 50
38. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Modelo de Dados
38 / 50
39. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Atividades
39 / 50
40. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Agenda
40 / 50
41. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Grupos e Pap´eis
253, 36%
225, 32%
233, 33%
G1 - Controle - Scrum
G2 - Experimental - Scrum+CE
G3 - Experimental - Scrum+CE
Figura: ´Indice total dos grupos.
Tabela: Mapeamento dos pap´eis do Scrum aos participantes do
experimento.
Papel Representante
Dono do Produto pesquisador
Dono da Arquitetura pesquisador
Scrum Master pesquisador
Equipe de Desenvolvimento participantes do experimento
41 / 50
42. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
Hist´orias entregues
Disponíveis no
Backlog do
Produto
G1 G2 G3
0
10
20
30
40
50
60
70
61
49
45
47
13
9
7 8
Pontos de
Estória
Estórias de
Usuário
Grupos
Quantidade
Figura: Total de Hist´orias e Pontos entregues.
Tabela: Hist´orias
entregues por grupo
do experimento.
Hist´oria Pontos G1 G2 G3
1 20 • • •
2 5 • • •
3 8 • • •
4 3 • • •
5 3 • • •
6 2 • •
7 1 • • •
8 3
9 5 • • •
10 2 •
11 2
12 5
13 2
42 / 50
43. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
Hist´orias entregues
G2 entregou 22% menos hist´orias que G1.
G3 entregou 11% menos hist´orias que G1.
Estórias entregues Pontos entregues
-25%
-20%
-15%
-10%
-5%
0%
-22%
-8%
-11%
-4%
G2/G1
G3/G1
Figura: Compara¸c˜ao das entregas entre G1 e G2, e entre G1 e G3.
43 / 50
44. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
M´etricas de qualidade dos requisitos
Tabela: Testes realizados e
defeitos encontrados por
grupo experimento.
M´etrica G1 G2 G3
Testes realizados 189 149 161
Testes falhos 66 44 21
Taxa de insucesso 35% 30% 13% Testes realizados Testes falhos Taxa de insucesso
-80%
-70%
-60%
-50%
-40%
-30%
-20%
-10%
0%
-21%
-33%
-5%
-15%
-68%
-22%
G2/G1
G3/G1
Figura: Compara¸c˜ao dos defeitos entre
G1 e G2, e entre G1 e G3.
G2 falhou 5% menos que G1.
G3 falhou 22% menos que G1.
44 / 50
45. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
M´etricas de qualidade de c´odigo
Tabela: M´etricas de qualidade de c´odigo.
M´etrica G1 G2 G3
Linhas de c´odigo 2232 1984 1950
N´umero de Classes 27 47 38
N´umero de Exce¸c˜oes 1 21 2
Blocos catch de exce¸c˜oes nativas 53 18 33
Blocos catch de exce¸c˜oes criadas 9 12 6
Complexidade Ciclom´atica total 446 305 288
Complexidade Ciclom´atica por classe 15.9 4.5 7.2
Complexidade Ciclom´atica por m´etodo 5.0 2.4 2.5
G2 e G3 entregaram 12% menos linhas de c´odigo que G1.
G2 e G3 tiveram complexidade 33% menor que G1.
45 / 50
46. M´etodo ´Agil para desenvolvimento de software confi´avel
Conclus˜oes
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de Software
3 Scrum+CE
4 Experimento controlado
5 Conclus˜oes
46 / 50
47. M´etodo ´Agil para desenvolvimento de software confi´avel
Conclus˜oes
Conclus˜oes
Aplicar o Scrum+CE resultou em:
Melhor qualidade do c´odigo gerado atrav´es da diminui¸c˜ao
dos n´umero de defeitos. Validado!
13.5% menos defeitos em m´edia!
Complexidade 33% menor implica melhor design!
Entrega de menor quantidade de Pontos de Hist´oria.
Validado!
Apenas 6% menos devido ao tamanho do experimento.
Cr´ıtica: Experimento n˜ao escala!
´E poss´ıvel desenvolver software confi´avel com
m´etodo ´agil!
Adicionar o Comportamento Excepcional n˜ao interfere
na agilidade.
47 / 50
48. M´etodo ´Agil para desenvolvimento de software confi´avel
Agradecimentos
Agradecimentos
Orientadora:
Profa. Dra. Cec´ılia M. F. Rubira - IC - UNICAMP
Co-orientador:
Prof. Marco Vieira
DEI - Universidade de Coimbra(UC)
Banca da qualifica¸c˜ao:
Profa. Dra. Eliane Martins - IC - UNICAMP
Prof. Dr. Hans Kurt Edmund Liesenberg - IC -
UNICAMP
Banca da defesa:
Profa. Dra. Regina L´ucia de Oliveira Moraes - FT -
UNICAMP
Profa. Dra. Eliane Martins - IC - UNICAMP
48 / 50
49. M´etodo ´Agil para desenvolvimento de software confi´avel
Bibliografia
Bibliografia I
Beck, K. et al. (2001).
Manifesto para Desenvolvimento ´Agil de Software.
http://agilemanifesto.org/iso/ptbr/.
Acessado em 18 de setembro de 2011.
Brito, P. H. S. (2005).
Um M´etodo para Modelagem de Exce¸c˜oes em Desenvolvimento Baseado em
Componentes.
Master’s thesis, IC, Unicamp.
Far, B. (2007).
Software Reliability Engineering for Agile Software Development.
20th IEEE Canadian Conference on Electrical and Computer Engineering
CCECE, pages 694–697.
Ferreira, G. R. M. (2001).
Tratamento de exce¸c˜oes no desenvolvimento de sistemas confi´aveis baseados em
componentes.
Master’s thesis, IC, Unicamp.
49 / 50
50. M´etodo ´Agil para desenvolvimento de software confi´avel
Bibliografia
Bibliografia II
Nord, R. L. and Tomayko, J. E. (2006).
Software Architecture-Centric Methods and Agile Development.
IEEE Software, 23(2):47–53.
Radinger, W. and Goeschka, K. M. (2003).
Agile software development for component based software engineering.
Companion of the 18th annual ACM SIGPLAN conference on Object-oriented
programming, systems, languages, and applications.
Schwaber, K. (1995).
SCRUM Development Process.
In Proceedings of the 10th Annual ACM Conference on Object Oriented
Programming Systems, Languages, and Applications (OOPSLA), pages 117–134.
50 / 50