Sistemas de Informação e Programação II Odorico Machado Mendizabal



Documentos relacionados
ENG1000 Introdução à Engenharia

Engenharia de Software

Sistemas de Informação I

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com

Manifesto Ágil - Princípios

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Professor: Curso: Disciplina:

Desenvolvimento Ágil de Software

A Disciplina Gerência de Projetos

Metodologias Ágeis. Aécio Costa

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE

PROJETO DE FÁBRICA DE SOFTWARE

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

PROFESSOR: CRISTIANO MARIOTTI

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

Plano de Gerenciamento do Projeto

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

ATO Nº 91/2015/GP/TRT 19ª, DE 1º DE JUNHO DE 2015

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

ENGENHARIA DE SOFTWARE I

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

INTRODUÇÃO AOS MÉTODOS ÁGEIS

Processo Unificado (RUP)

Scrum e CMMI no C.E.S.A.R Relato de Experiência

Engenharia de Software II

Pós Graduação Engenharia de Software

Engenharia de Software II

Segurança de Aplicações Aula 6

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

PEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Sistema de Controle de Solicitação de Desenvolvimento

Ferramenta para gestão ágil

Engenharia de Software I

Introdução ao Processo Unificado (PU)

W Projeto. Gerenciamento. Construindo a WBS e gerando o Cronograma. Autor: Antonio Augusto Camargos, PMP 1/12

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Engenharia de Software

Módulo de projetos ágeis Scrum Módulo de Projetos Ágeis Scrum

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013

Nome da Empresa. <Nome do Projeto> Plano de Desenvolvimento de Software. Versão <1.0>

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Método Aldeia de Projetos

Engenharia de Requisitos Estudo de Caso

O modelo unificado de processo. O Rational Unified Process, RUP.

Comparativo entre Processos Ágeis. Daniel Ferreira

Scrum How it works. Há quatro grupos com papéis bem definidos:

Proposta. Treinamento Scrum Master Gerenciamento Ágil de Projetos. Apresentação Executiva

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Metodologia de Gerenciamento de Projetos da Justiça Federal

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.

Dicionário da EAP - Software FarmaInfor

SCRUM. Otimizando projetos. Adilson Taub Júnior tecproit.com.br

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Prof. Me. Marcos Echevarria

É POSSÍVEL SER ÁGIL EM PROJETOS DE HARDWARE?

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira

Tecnologia da Informação para EPPGG Victor Dalton


Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Aluna: Vanessa de Mello Orientador: Everaldo Artur Grahl

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Qualidade de Software. Anderson Belgamo

Processo de Desenvolvimento Unificado

O Processo Unificado

Projeto de Sistemas I

Metodologia de Desenvolvimento de Sistemas (Versão 2.0)

Wesley Torres Galindo.

Engenharia de Software Processo de Desenvolvimento de Software

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Uma introdução ao SCRUM. Evandro João Agnes

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

Eduardo Bezerra. Editora Campus/Elsevier. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

Especialização em Engenharia de Software e Banco de Dados

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1

Francielle Santos

Transcrição:

Sistemas de Informação e Programação II Odorico Machado Mendizabal Universidade Federal do Rio Grande FURG C3 Engenharia de Computação 16 e 23 de março de 2011

Processo de Desenvolvimento de Software

Objetivos Apresentar modelos de processos de software Apresentar metodologias de desenvolvimento de Software tradicionais Descrever modelos genéricos para desenvolvimento de software MSF, RUP

Processo de Software Um conjunto estruturado de atividades relacionadas, necessárias para o desenvolvimento de um sistema de software Processos podem ser aplicados sistematicamente e normalmente encontram-se agrupados em fases, por exemplo: Especificação; Projeto; Programação; Validação Manutenção/Evolução

Exemplos de Processo Listar exemplos de processos: Universidade Administrativos, estudantis Matrícula Datas, documentos, confirmação Empréstimo de livros Como automatizar e aprimorar processos? Implementação de um aplicativo (software) Por onde começar? Desenvolvimento de Software Projeto de Software Processos

Ciclo de Desenvolvimento de Software Cada projeto é único e portanto envolve um grau de incerteza Projetos são divididos em fases de modo a garantir maior controle e encadeamento com as operações correntes da empresa O conjunto de fases de um projeto é conhecido como ciclo de vida de um projeto Arcabouços (Frameworks) tem sido adotados pelas empresas MSF (Microsoft Solutions Framework) RUP (Rational Unified Process)

Modelos de Ciclo de Desenvolvimento de Software Cascata Modelo Incremental Prototipação Espiral Métodos Ágeis

Modelo Cascata Abordagem sistemática: - Fases separadas e distintas de especificação e desenvolvimento -Nenhuma etapa inicia até que a anterior acabe - É fácil de apresentar o processo aos stakeholders Análise de Requisitos Projeto de Sistema e SW Analista de Negócios Gerente de Projeto Implementação Equipe de Desenvolvimento - Enfoque nos documentos e artefatos (requisitos, código, cronogramas) - Testes ocorrem em fases mais avançadas do projeto Integração e Teste de Sistema Analistas de teste Operação e Manutenção Analista de Sistemas, Programadores, Analistas de teste

Modelo Cascata Desvantagens Maioria dos programas só estará disponível quando o cronograma já está bastante adiantado. Dificuldades para se introduzir alterações quando o processo está avançado. Projetos reais raramente seguem o fluxo sequencial que esse modelo propõe. Normalmente ocorre alguma interação e/ou superposição. Dificilmente os clientes são capazes de relacionar todos os requisitos de uma só vez no início do projeto. O modelo cascata é o mais usado em projetos de engenharia de sistemas de grande porte, onde um sistema é desenvolvido em várias localidades.

Desenvolvimento Evolucionário Desenvolvimento exploratório O objetivo é trabalhar com os clientes e desenvolver um sistema final a partir de uma especificação inicial. Deve iniciar com requisitos bem compreendidos e adicionar novas características conforme solicitação do cliente Prototipação throw-away O objetivo é compreender os requisitos de sistema. Pode iniciar com requisitos mal compreendidos para esclarecer o que é realmente necessário. Prototipação Evolutiva Desenvolver rapidamente um protótipo simples, sendo modificado sucessivamente de acordo com comentários dos stakeholders até se obter o sistema final.

Desenvolvimento Evolucionário Problemas Falta de visibilidade de processo; Os sistemas são frequentemente mal estruturados; Habilidades especiais (por exemplo, em linguagens para prototipação rápida) podem ser solicitadas. Aplicação Para sistemas interativos de pequeno e médio portes; Para partes de um sistema de grande porte (por exemplo, a interface de usuário); Para sistema com curto ciclo de vida.

Modelo Incremental Requisitos Modelagem do Negócio Modelagem do Negócio... Modelagem de Dados Modelagem de Dados Modelagem de Processos Modelagem de Processos Geração da Aplicação Geração da Aplicação Testes Testes 60 90 dias 60 90 dias Este diagrama exemplifica o modelo RAD (Rapid Application Development)

Modelo Incremental Variante do modelo em cascata Atividades ocorrendo em paralelo Desenvolvimento em fases Entrega do sistema em partes Permissão para que o usuário utilize alguns recursos enquanto outros ainda estão em desenvolvimento

Modelo Baseado em Prototipação Especificação do Cliente Desenho e Construção Avaliação do Cliente - Boa opção para definição de requisitos - Construído rapidamente - Possibilita examinar antecipadamente formato e aspecto dos resultados finais - Pode ser usado como um processo efetivo ou como sub-processo de outro modelo - Oferece uma boa interação com o usuário final

Modelo em Espiral Avaliação do Cliente Custo Acumulado Análise de Riscos Análise de Riscos Análise de Riscos Análise de Riscos Plano de requisitos Plano de Ciclo de Vida Protótipo 1 Protótipo 2 Protótipo 3 Protótipo Operacional Plano de Desenvolvimento Requisitos de Validação Requisitos de SW Projeto de Produto SW Código Plano de Testes Plano de Integração Teste de Unidade Planejamento Implementação Teste de Aceitação Teste de Integração Desenvolvimento de Software

Etapas do Modelo Espiral Planejamento Definição dos objetivos, alternativas e restrições Avaliação do Cliente Avaliação do planejamento e do desenvolvimento de SW Análise dos Riscos Análise de alternativas e identificação dos riscos sob o ponto de vista técnico e de gerência Desenvolvimento de SW Desenvolvimento do produto.

Vantagens do Modelo Espiral Aproveita as melhores características do modelo cascata e da prototipação. Acrescentando um novo elemento: a análise de riscos. Modelo evolutivo possibilita uma maior integração entre as fases e facilita a depuração e a manutenção do sistema Permite que o projetista e cliente possam entender e reagir aos riscos em cada etapa evolutiva.

Desvantagens do Modelo Espiral Avaliação dos riscos exige bastante experiência Excessivas iterações e geração de protótipos podem elevar os custos do projeto A constante interação com o cliente e geração de protótipos pode induzir mudanças no escopo inicial do projeto

Modelo Baseado em Métodos Ágeis Indivíduos e interações são mais importantes que processos e ferramentas Software funcionando é mais importante do que documentação completa e detalhada Colaboração com o cliente é mais importante do que negociação de contratos Adaptação a mudanças é mais importante do que seguir o plano inicial.

Algumas Metodologias Ágeis Crystal/Clear Metodologia direcionada a projetos pequenos (equipes de 6 desenvolvedores); Forte ênfase na comunicação entre os membros; Especificação e projeto são feitos informalmente, utilizando quadros publicamente visíveis Requisitos elaborados utilizando casos de uso

Algumas Metodologias Ágeis XP (extreme Programming) Requisitos são as histórias dos usuários Pouca Documentação Necessita equipe experiente Orientação a objetos Testes automatizados Oficina de reflexões (reuniões de fechamento a cada iteração, para rever o que pode ser melhorado) Programação em pares (peer programming) Testes Unitários Testes Automatizados Testes de Aceitação (executado pelos clientes)

Algumas Metodologias Ágeis Scrum Equipes pequenas Pouca Documentação Requisitos pouco estáveis ou desconhecidos Iterações curtas para promover visibilidade do desenvolvimento Encontros regulares (Scrum meetings) Desenvolvimento em iterações de 30 dias (Sprints) Não adota nenhum processo de validação prédefinido

Exemplo de Fases de Desenvolvimento em Scrum Reunião diária do Scrum 24h Sprints Sprint Backlog Acúmulo de tarefas pela equipe 30 dias - Ciclos Levantamento de prioridades do produto Nova demonstração de funcionalidade

Reuniões em Scrum Sprint Planning Meeting Acontece no início de cada iteração. São definidos quais itens farão parte do Product Backlog para o Sprint corrente. Em um segundo momento, os itens do Product Backlog são decompostos em lista de tarefas para o Sprint. Daily Scrum Acontecem diariamente e cada membro da equipe reporta ao resto da equipe o que ele fez no dia anterior, o que ele fará no próximo dia e quais são seus impedimentos. Sprint Review Meeting No final da execução do Sprint a equipe apresenta para os stakeholders o que foi implementado no Sprint. Itens incompletos retornam para o Product Backlog como candidatos. Sprint Retrospective Reunião para revisão e aprimoramento do processo. Medidas de melhoria são tomadas para os próximos Sprints. Backlog Refinement Meeting Equipe estima esforços para o desenvolvimento dos itens do Product Backlog, então o Product Owner pode priorizá-los para o próximo Sprint.

Tarefas em Scrum Product Backlog Product Backlog: Mantém a lista de itens a serem implementados. A classificação por prioridade e inclusão de novos requisitos durante reuniões de planejamento do sprint definem quais itens serão realizados por período. BACKLOG Item Descrição Prior 1 Como consumidor, eu quero cancelar minha encomenda antes de finalizar o pedido 2 Como consumidor, eu quero verificar o status do meu pedido. 3 Como gerente de catálogo, eu quero agrupar produtos de segmentos diferentes para promoções de venda. 1 3 2

Tarefas em Scrum Product Backlog Product Backlog: Mantém a lista de itens a serem implementados. A classificação por prioridade e inclusão de novos requisitos durante reuniões de planejamento do sprint definem quais itens serão realizados por período. O progresso das atividades pode estar visualmente afixado em algum quadro ou pode estar presente em algum ferramenta de gerência de atividades.

Arcabouços para Desenvolvimento de Software Modelos híbridos servem como um guia, não como uma disciplina. RUP (Rational Unified Process) Sugere boas práticas de especificação de projetos Fortemente atrelado à UML Fases de projeto não estão atreladas à atividades específicas MSF (Microsoft Solutions Framework) Conjunto de boas práticas utilizadas pela empresa Modelo de Equipe, Modelo de Processos, Gerenciamento de Riscos

Ciclo de Desenvolvimento de Software baseado no MSF Envisioning Planning Developing Stabilizing Deploying Início do projeto Fim do projeto OBS.: Nomes de fases de processos serão mantido em inglês, pois esta é a abordagem adotada na maioria das empresas.

Exemplo de WBS para atividades de teste de desempenho Projeto X Envisioning Planning Developing Stabilizing Deploying Apresentação do Projeto Escopo Ambiente Plano de Teste Preparação de Teste Execução Criar Relatórios Finais Levantamento das Necessidades Validar Requisitos Solicitar Ambiente Criar Plano Criar Casos de Teste Round 1.. N Suporte pósinstalação Engajamento Definir Transações Instalar Aplicação Aprovar Plano de Teste Criar Scripts Executar Definir Carga Preparar Dados Criar Dados de Teste Analisar Requisitar Acessos Smoke Test Corrigir Defeito Validar Ambiente Configurar Monitores de Performance Re-testar WBS Work Breakdown Structure

Para saber mais: O C3 disponibiliza em sua infraestrutura algumas ferramentas úteis para a gerência e controle de projetos: Ferramenta para controle de versão (SVN - Subversion) Ferramenta para gerenciamento de projetos (Redmine) Ambas ferramentas são mantidas pelos grupo de técnicos

Exercícios 1) Descreva um WBS para as atividades de um desenvolvedor 2) Cite exemplos de projetos onde métodos ágeis se aplicam adequadamente. Justifique sua respostas. 3) Cite algumas práticas de desenvolvimento, tecnologias ou abordagens que favoreçam a manutenibilidade de um SW. 4) Como uma má elaboração de requisitos pode afetar fases posteriores ao longo do ciclo de vida do projeto? 5) Quais as vantagens em adotar frameworks como MSF e RUP ao invés de seguir uma metodologia de desenvolvimento de SW já estabelecida? 6) A interação com o cliente ao longo do ciclo de vida do projeto é fundamental para evitar má interpretações e para garantir que o cliente está ciente do progresso do projeto. Como diferentes metodologias como o modelo em cascata e Scrum abordam esta questão?