DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga



Documentos relacionados
Engenharia de Software II

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

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

Prof. Me. Marcos Echevarria

Programa do Módulo 2. Processo Unificado: Visão Geral

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

ENGENHARIA DE SOFTWARE I

Processo de Desenvolvimento Unificado

O Processo Unificado

Sistemas de Informação I

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

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

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

Introdução ao Processo Unificado (PU)

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

Segurança de Aplicações Aula 6

Engenharia de Software II

Processo Unificado (RUP)

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

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

Metodologias Ágeis. Aécio Costa

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

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

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

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

Processos de Software

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

RUP Rational Unified Process

Engenharia de Software I

Professor: Curso: Disciplina:

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

Para cada fase consideramos. Tempo para um projeto típico Tempo para um projeto Complexo. Arquitetura do Processo Unificado. A meta a ser atingida

ENG1000 Introdução à Engenharia

Engenharia de Software

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Rational Unified Process

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

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

Com metodologias de desenvolvimento

A Disciplina Gerência de Projetos

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

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

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Concepção e Elaboração

Engenharia de Software I: Análise e Projeto de Software Usando UML

Universidade Católica de Petrópolis Análise Orientada a Objetos. Introdução

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

Introdução ao OpenUP (Open Unified Process)

Resumo artigo Agile Modeling- Overview

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

Desenvolvimento Ágil de Software em Larga Escala

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

ADAPTAÇAO DE PROCESSOS DE DESENVOLVIMENTO

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ê?

PROJETO DE FÁBRICA DE SOFTWARE

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Gerenciamento de Projetos Modulo III Grupo de Processos

Engenharia de Software II

Sistemas de Informação I

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

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

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Desenvolvimento Ágil de Software

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Visão Geral do RUP Rational Unified Process. Jorge Fernandes UFRN Junho de 2002

Engenharia da WEB 16/08/2011. Vida moderna. Sistemas WEB

Projeto de Sistemas I

Engenharia de Software II

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

MASTER IN PROJECT MANAGEMENT

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

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

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

Documento de Arquitetura

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

Pós Graduação Engenharia de Software

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

Gerenciamento de Projetos

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

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

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

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Engenharia de Software II

Feature-Driven Development

Engenharia de Software

Gerência de Projetos

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

Gestão da Qualidade em Projetos

GESTÃO E OTIMIZAÇÃO DE PROCESSOS. Vanice Ferreira

Transcrição:

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011

O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James Rumbaugh, discutem a necessidade de um processo de software Guiado por Casos de Uso; Centrado na Arquitetura, Iterativo e Incremental O Processo Unificado

O Processo Unificado reconhece: Características Importância da comunicação com o cliente para descrever a visão do cliente de um sistema (isto é, o caso de uso). Enfatiza o papel da arquitetura e ajuda a concentrar nas metas de compreensão, abertura a modificações futuras e reuso. Sugere um fluxo de processo que é iterativo e incremental.

Dirigido por Casos de Uso Um caso de uso é uma sequência de acões executada por um ou mais atores; Um ponto chave do UP é o emprego de casos de uso como força condutora de desenvolvimento; Dirigido por casos de uso refere-se: para dirigir todo o trabalho de desenvolvimento, desde a captação inicial até a aceitação do código;

Dirigido por Casos de Uso Os casos de uso são apropriados para capturar requisitos, dirigir a análise, projeto e implementação. Os casos de uso são expressos sob a perspectiva dos usuários; Oferece uma habilidade para compreensão dos requisitos reais do sistema; Facilita a gerência de projetos.

Centrado na Arquitetura Arquitetura é a organização fundamental do sistema como um todo; O UP especifica que a arquitetura do sistema em construção deve ser uma das principais preocupações da equipe de projeto; A arquitetura em conjunto com os casos de uso deve orientar a exploração de todos os aspectos do sistema;

A arquitetura é especificada no contexto de visões de modelo; Visão conceitual; Visão de módulo; Visão de código; Visão de execução. Centrado na Arquitetura

Centrado na Arquitetura A arquitetura proporciona: Entendimento global do sistema; Organizar o esforço de Desenvolvimento; Facilita a possibilidade de reuso; Facilita a Evolução do sistema; Tem base nos casos de uso especificados.

Iterativo e Incremental Uma iteração é um miniprojeto que resulta em uma versão do sistema liberada interna ou externamente; Essa versão oferece uma melhora incremental sobre a iteração anterior. Pergunta: Quais as vantagens e desvantagens do desenvolvimento iterativo e incremental?

O desenvolvimento Iterativo e Incremental proporciona: Um processo lógico para uma arquitetura robusta; Facilidade com mudanças contínuas nos requisitos; Maior flexibilidade para mudar planos; Iteração contínua; Entendimento precoce; Iterativo e Incremental Foco contínuo sobre riscos: Riscos técnicos; Riscos arquitetônicos; Riscos de requisitos.

Histórico O Processo Unificado e a UML são usados em projetos OO de qualquer natureza. A UML fornece a tecnologia necessária para apoiar a prática de engenharia de software OO. O Processo Unificado fornece um arcabouço para a engenharia de software OO usando a UML.

Ferramentas de Apoio Jude Poseidon IBM (RationalRose) EA

Fases do Processo Unificado O Processo Unificado é algumas vezes chamado de Processo Unificado Racional (RUP Rational Unified Process) por causa da Rational Corporation, contribuinte para o desenvolvimento e apoio do processo. O RUP possui 4 fases que podem ser usadas para qualquer processo de software. 1. Concepção, 2. Elaboração, 3. Construção, 4. Transição.

Concepção; As 4 fases Definir escopo; Esboçar arquitetura candidata; Identificar riscos; Iniciar análise econômica do projeto. Elaboração; Capturar a maioria dos requisitos funcionais; Expandir arquitetura candidata em uma base arquitetônica; Abordar riscos significativos; Finalizar análise.

As 4 fases Construção; Executar tarefas de desenvolvimento; Principal marco é a capacidade operacional inicial; Transição; Entregar o sistema COMPLETAMENTE funcional aos clientes.

Disciplinas O RUP possui 5 disciplinas: Requisitos; Análise; Projeto; Implementação; Testes.

Fases / Disciplinas do RUP

Concepção Elaboração Processo Unificado PLANEJAMENTO MODELAGEM COMUNICAÇÃO CONSTRUÇÃO Versão Incremento de Software IMPLANTAÇÃO Produção Transição Construção

A fase de Concepção abrange atividades de comunicação com o cliente e planejamento. A fase de Elaboração refina e expande os casos de uso identificados na fase de concepção e expande a representação da arquitetura para 5 visões diferentes: Modelo de Caso de Uso; Modelo de Análise; Modelo de Projeto; Modelo de Implementação; Modelo de Implantação. Descrição de Fases

Descrição de Fases A fase de Construção refina e então traduz o modelo de projeto para componentes de software implementados. A fase de Transição transfere o software do desenvolvedor para o usuário final para testes beta e aceitação. A fase de Produção em que contínuo monitoramento e suporte são conduzidos.

Produtos de Trabalho por Fase Fase de Concepção: Documento de Visão Modelo inicial de caso de uso Glossário inicial do Projeto; Caso de negócio inicial; Avaliação inicial de risco Plano de projeto fases e iterações Modelo de negócio se necessário Um ou mais protótipos

Produtos de Trabalho por Fase Fase de Elaboração: Modelo de caso de uso; Requisitos Suplementares inclui não funcionais; Modelo de análise; Descrição da Arquitetura; Protótipo; Modelo de projeto preliminar; Lista de risco revisada;

Fase de Elaboração: Plano de Projeto: incluindo planos de iteração, fluxos de trabalho, marcos; Manual Preliminar do usuário; Fase de Construção: Modelo de projeto Componentes de software Produtos de Trabalho por Fase Incremento integrado de software Documentação de apoio: manuais do usuário, manuais de instalação descrição do incremento atual.

Produtos de Trabalho por Fase Fase de Transição Incremento de software entregue; Relatório de teste beta; Realimentação geral do usuário. Teste beta é uma ação controlada de teste na qual o software é usado por usuários finais reais com a intenção de descobrir defeitos e deficiências.

DESENVOLVIMENTO ÁGIL

Desenvolvimento Ágil Em 2001, Kent Beck e sua equipe (conhecidos como Aliança Ágil ) assinaram o Manifesto para o Desenvolvimento Ágil de Software. Passaram a valorizar: Indivíduos e interações em vez de processos e ferramentas; Softwares funcionando em vez de documentação abrangente; Colaboração do cliente em vez de negociação de contratos; Resposta a modificações em vez de seguir um plano.

Desenvolvimento Ágil A engenharia de software ágil enfatiza: A satisfação do cliente e a entrega incremental do software logo de início; Equipes de projeto pequenas, altamente motivadas; Produtos de trabalho de engenharia de software mínimos e simplicidade global do desenvolvimento; Métodos Ágeis são chamados de métodos leves ou magros; A comunicação ativa e contínua entre desenvolvedores e clientes.

Desenvolvimento Ágil A engenharia ágil de software é importante por representar uma alternativa razoável para a engenharia de software convencional para certas categorias de software e certos tipos de projeto de software. São reduzidas a um conjunto mínimo de tarefas que leva a equipe de projeto à construção e entrega.

Desenvolvimento Ágil O único produto de trabalho realmente importante é um incremento de software operacional que é entregue ao cliente na data de entrega combinada. Se a equipe ágil concordar que o processo funciona e produzir incrementos de software em condições de serem entregues e que satisfaçam ao cliente, a equipe fez corretamente.

Desenvolvimento Ágil Uma equipe Ágil reconhece que o software é desenvolvido por indivíduos trabalhando em equipes e que as especialidades dessas pessoas e sua capacidade de colaborar estão no âmago do sucesso do projeto. Na visão de Jacobson, o acolhimento de modificações é o principal guia para a agilidade.

A agilidade engloba também: Desenvolvimento Ágil Estruturas e atitudes de equipe que tornam a comunicação mais fácil (entre os membros); Enfatiza a rápida entrega de software operacional; Dá menos importância para produtos de trabalho intermediários (nem sempre uma boa coisa); Adota os clientes como parte da equipe de desenvolvimento; O Plano de Projeto deve ser flexível.

Princípios da Agilidade Satisfazer o cliente por meio de entrega contínua; Modificações são bem-vindas, ainda que tardias. As modificações como vantagem para competitividade do cliente. Entrega a cada duas semanas até dois meses. Preferência menor espaço de tempo. Pessoal de negócio e desenvolvedores trabalham juntos diariamente durante o projeto.

Princípios da Agilidade Construção de projetos em torno de indivíduos motivados. A conversa face a face para levar a informação para dentro de uma equipe. Software funcionando é a principal medida de progresso. Processos ágeis promovem um ritmo constante. Atenção contínua à excelência técnica. Simplicidade e maximizar a quantidade de trabalho é essencial. Melhores arquiteturas, requisitos, e projetos surgem de equipes auto-organizadas.

Princípios da Agilidade A agilidade pode ser aplicada a qualquer processo de software. Eliminar tudo menos os produtos de trabalho mais essenciais e mantê-los simples. Enfatizar uma estratégia de entrega incremental que forneça o software funcionando ao cliente o mais rápido possível para o tipo de produto e ambiente operacional.

Características do processo ágil Deve atender a 3 suposições: Difícil prever como as prioridades do cliente serão modificadas à medida que o projeto prossegue. O projeto e a construção são intercalados. As duas atividades devem ser realizadas juntas. Análise, projeto, construção e testes não são tão previsíveis do ponto de vista do planejamento como gostaríamos. Portanto, um processo ágil deve ser adaptável incrementalmente.

Adaptação Incremental A abordagem iterativa deve habilitar o cliente: Avaliar o incremento de software de forma regular; Fornecer o feedback à equipe de software; Influenciar as adaptações do processo feitas para acomodar o feedback.

Equipe Ágil Características entre as pessoas de uma equipe ágil e na equipe em si: Competência: Habilidades e conhecimento podem ser ensinados a todas as pessoas; Foco comum: todos focados e uma meta entregar um incremento de software dentro do prazo; Colaboração: Criar informações que ajudarão o cliente e outros a entender o trabalho da equipe. Capacidade de tomada decisão: Autonomia para tomada de decisão sobre tópicos técnicos do projeto.

Equipe Ágil Características entre as pessoas de uma equipe ágil e na equipe em si: Habilidade de resolver problemas vagos: O problema que está sendo resolvido hoje pode não ser o problema que precisará ser resolvido amanhã. Respeito e confiança mútua: Equipe consolidada. Exibe confiança e respeito.

Características entre as pessoas de uma equipe ágil e na equipe em si: Auto-organização: Equipe organiza-se para o trabalho a ser feito; Organiza o processo para melhor acomodar seu ambiente local; Organiza o cronograma de trabalho para conseguir melhor entrega do incremento de software; Serve para aperfeiçoar a colaboração; Equipe serve como sua própria gerência. Equipe Ágil

Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software) DSDM (Método de Desenvolvimento Dinâmico de Sistemas) Scrum Crystal FDD (Desenvolvimento Guiado por Características) AM (Modelagem Ágil) Modelos Ágeis de Processo