Processo Unificado. Leonardo Gresta Paulino Murta

Documentos relacionados
Processo Unificado. Viviane Torres da Silva

Modelagem de So+ware. Leonardo Gresta Paulino Murta

Revisão de ES. Leonardo Gresta Paulino Murta.

Aula 3.1 Introdução e Visão Geral do Processo Unificado

Gerência de Projetos e Manutenção de Software Aula 2- Revisão de ES Andréa Magalhães Magdaleno

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

Engenharia de Software II

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

Gerência de Projetos e Manutenção de Software Aula 2- Revisão de ES Andréa Magalhães Magdaleno

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

PROCESSO RUP. Progessora Lucélia

RUP/PSDS. Introdução e Comparação

Problemas e Práticas Recomendadas no Desenvolvimento de Software

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Rational Unified Process (RUP)

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Processos de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Escolhendo um Modelo de Ciclo de Vida

Engenharia de Software. Herbert Rausch Fernandes

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Processos de Software

Processo de Desenvolvimento de Software

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Requisitos de Sistemas

ENGENHARIA DE SOFTWARE

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Processos de software

ENGENHARIA DE SOFTWARE

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

Prova Discursiva Engenharia de Software

Métodos Ágeis e Programação Extrema (XP)

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

Engenharia de Software

Engenharia de Software

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

INE 5417 Engenharia de Software I

Modelos de Gestão de Projetos

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Conhecendo um pouco sobre RUP

UML. Modelando um sistema

Análise e Projeto Orientados a Objetos

Professor Emiliano S. Monteiro

Introdução ao Processo Unificado. Prof. Edjandir Corrêa Costa

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Engenharia de Software

2. Processos em Engenharia de Software

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

Modelos Prescritivos de Processo

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Apresentação da Disciplina de Engenharia de Software I

Análise e Projeto Orientados a Objetos Professora: Elisa Yumi Nakagawa PAE: Cristiane Aparecida Lana 2 semestre de 2015

Desenvolvimento Ágil. Fernando Magno Quintão Pereira. 8 de Novembro de 2010

Sumário. Capítulo 3 Valores do XP Feedback Comunicação... 46

Desenvolvimento ágil de software

Engenharia de Software Processo de Desenvolvimento de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Pra que serve a engenharia de Software???

Prof. Dr. Thiago Jabur Bittar

PROCESSOS DE SOFTWARE

Paradigmas de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Modelos de Processo de Software. Profª Jocelma Rios

Engenharia de Software

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

Visão Geral do RUP (Rational Unified Process)

Gerência de Configuração: Ramificação e Integração. Leonardo Gresta Paulino Murta

Apresentação da Disciplina de Engenharia de Software II

Processo Unificado (PU) Unified Process

RUP. Prof. Edison A M Morais.

MODELOS DE PROCESSOS (PARTE 2)

Modelagem de Sistemas

MODELAGEM DE SISTEMAS Unidade 5 Ciclo de Vida Iterativo e Incremental. Luiz Leão

A Evolução de XP segundo Kent Beck Parte 1

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Princípios da Engenharia de Software aula 03

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

Instituto Federal Sul-rio-grandense. Placa universal para controle de máquinas de lavar roupa Plano de Projeto - versão 1.0

Processo de So*ware. Leonardo Gresta Paulino Murta.

Modelos de Processo de Software

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

Informática I. Aula Aula 21-29/11/06 1

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Transcrição:

Processo Unificado Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Agenda Processo de Software Desenvolvimento Iterativo Desenvolvimento Evolutivo Desenvolvimento Ágil Processo Unificado Fronteira entre análise e projeto Processo Unificado 2

Processo de Software Ciclo de vida cascata Processo Unificado 3

Processo de Software Ciclo de vida evolutivo Processo Unificado 4

Processo de Software Ciclo de vida cascata Ciclo de vida evolutivo Objetivo: Processo Unificado com aspectos de... Desenvolvimento iterativo Desenvolvimento evolutivo Desenvolvimento ágil Processo Unificado 5

Desenvolvimento Iterativo O desenvolvimento é organizado em mini-projetos Cada mini-projeto é uma iteração Cada iteração tem duração curta e fixa (de 2 a 6 semanas) Cada iteração tem atividades de análise, projeto, programação e testes O produto de uma iteração é um software parcial X semanas X semanas X semanas... Software Software Software Processo Unificado 6

Desenvolvimento Iterativo A iteração deve ser fixa Tarefas podem ser removidas ou incluídas A iteração nunca deve passar da duração previamente estipulada O resultado de cada iteração é um software... Incompleto Em desenvolvimento (não pode ser colocado em produção) Mas não é um protótipo!!! Esse software pode ser verificado e validado parcialmente Testes Usuários Podem ser necessárias diversas iterações (e.g. 10 a 15) para ter uma versão do sistema pronta para entrar em produção Processo Unificado 7

Desenvolvimento Iterativo Iterações curtas privilegiam a propagação de conhecimento Aumento do conhecimento sobre o software Diminuição das incertezas, que levam às mudanças Processo Unificado 8

Desenvolvimento Evolutivo As especificações evoluem a cada iteração A cada iteração, uma parte do software fica pronta O conhecimento sobre o software aumenta As especificações são evoluídas para retratar esse aumento de conhecimento sobre o que é o software Processo Unificado 9

Desenvolvimento Evolutivo Mudanças sempre acontecem em projetos de software Requisitos mudam O ambiente em que o software está inserido muda As pessoas que operam o software mudam Estratégias para lidar com mudanças Evitar as mudanças (corretivas) fazendo uso de boas técnicas de engenharia de software Acolher mudanças por meio de um processo evolutivo Processo Unificado 10

Desenvolvimento Ágil São dadas respostas rápidas e flexíveis a mudanças O projeto é replanejado continuamente São feitas entregas incrementais e constantes do software, refletindo as mudanças solicitadas Processo Unificado 11

Desenvolvimento Ágil Princípios ágeis Satisfazer o cliente Acolher modificações nos requisitos Entregar o software com freqüência Trabalhar junto ao cliente Manter os indivíduos motivados Promover conversas face a face Medir o progresso com software funcionando Manter um ritmo constante de trabalho Cuidar da qualidade Buscar por simplicidade Trabalhar com equipes auto-organizadas Ajustar o comportamento da equipe buscando mais efetividade Processo Unificado 12

Modelagem Ágil Tem intuito de apoiar o entendimento e a comunicação Do problema (análise) Da solução (projeto) Tem caráter exploratório Não visa ser completa Foca nos aspectos mais complexos e incomuns Não pretende ser a única documentação do software Enxerga o código como o verdadeiro projeto Todos os modelos anteriores podem estar desatualizados ou serem imprecisos Não pretende ser o meio de comunicação principal Deve ser feita pelos próprios desenvolvedores e não por equipes separadas Processo Unificado 13

Modelagem Ágil Incentiva a modelagem em pares Ou pequenos grupos Apóia a criação de visões do modelo em paralelo Estática (e.g., diagrama de classes) Dinâmica (e.g., diagrama de seqüência) Usa ferramentas simples Quadro-branco + câmera digital Ferramentas CASE Editor de texto Utiliza simplificações da notação sempre que possível Não usa todos os recursos da UML Utiliza recursos adicionais se necessário Processo Unificado 14

Processo Unificado Iterativo Evolutivo Ágil Processo Unificado Processo Unificado 15

Processo Unificado (benefícios esperados) Mitigação de riscos precoce Visibilidade do progresso Envolvimento e comprometimento do usuário Controle sobre a complexidade Aprendizado incremental Menos defeitos Mais produtividade Processo Unificado 16

Processo Unificado (exemplo) Analisar os requisitos no início do projeto Casos de uso Lista de requisitos não funcionais Priorizar os casos de uso Significativos para a arquitetura como um todo Alto valor de negócio Alto risco Em cada iteração Selecionar alguns casos de uso por ordem de prioridade para serem analisados em detalhes Atribuir tarefas para a iteração a partir da análise detalhada desses casos de uso Fazer projeto e programação de parte do software Testar a parte do software recém projetada e programada e criar a baseline da iteração Apresentar a baseline da iteração ao usuário Processo Unificado 17

Processo Unificado (exemplo) Processo Unificado 18

Processo Unificado (fases) O desenvolvimento pode ser decomposto em fase, com o intuito de retratar a ênfase principal das iterações Concepção Elaboração Construção Transição Plano da fase Abrangente e superficial Plano da iteração Específico e detalhado Processo Unificado 19

Processo Unificado (exemplo) Atividade Esforço Análise 10% Projeto 15% Programação 30% Testes 15% Gerência 30% Processo Unificado 20

Processo Unificado (concepção) Consiste de Identificação de riscos Listagem inicial dos requisitos Esboço dos casos de uso Identificação de arquiteturas candidatas Estimativas iniciais de cronograma e custo Principais características Menor fase do projeto Escopo ainda vago Estimativas ainda vagas Esforço e duração aproximados 5% do esforço do projeto 10% da duração do projeto Processo Unificado 21

Processo Unificado (elaboração) Consiste de Mitigação dos riscos Detalhamento da maioria dos requisitos e casos de uso Estabelecimento e validação da arquitetura do software Detalhamento das estimativas de cronograma e custo Principais características Grande parte das atividades de análise e projeto já concluída Diminuição significativa das incertezas Baseline da arquitetura é estabelecida Esforço e duração aproximados 20% do esforço do projeto 30% da duração do projeto Processo Unificado 22

Processo Unificado (construção) Consiste de Implementação dos demais componentes da arquitetura Preparação para a implantação Principais características Maior fase do projeto Baseline de testes do produto é estabelecida Esforço e duração aproximados 65% do esforço do projeto 50% da duração do projeto Processo Unificado 23

Processo Unificado (transição) Consiste de Execução de testes finais Implantação do produto Treinamento dos usuários Principais características Baseline de liberação do produto é estabelecida Esforço e duração aproximados 10% do esforço do projeto 10% da duração do projeto Processo Unificado 24

Processo Unificado (características) Os requisitos não são completamente definidos antes do projeto O projeto não é completamente definido antes da programação A modelagem não é feita de forma completa e precisa A programação não é uma tradução mecânica do modelo para código As iterações não duram meses, mas sim semanas O planejamento não é especulativo, mas sim refinado durante o projeto Processo Unificado 25

Exercício Discuta com o seu grupo como as idéias apresentadas pelo Processo Unificado poderão ser adotadas no trabalho do curso Processo Unificado 26

Fronteira entre análise e projeto A orientação a objetos diminui a distância entre as fases do processo de desenvolvimento; public class Carro { private int velocidade; } public void acelera() { velocidade++; } Processo Unificado 27

Fronteira entre análise e projeto A orientação a objetos torna nebulosa a fronteira entre análise e projeto: O que? Requisitos Investigação Como? Solução lógica Onde termina a análise e começa o projeto? Processo Unificado 28

Fronteira entre análise e projeto Principais funções de AOO: Identificar as funcionalidades e entidades do sistema Encontrar abstrações adequadas para representar o problema Principais funções de POO: Atribuir responsabilidades às entidades do sistema Encontrar abstrações adequadas para representar a solução Ambos são representados através de modelos Investigação Solução Processo Unificado 29

O que são modelos? Abstrações da realidade Modelos Focam somente no que realmente interessa para um determinado observador em um dado momento [Fonte: BOOCH, G., 1993] Processo Unificado 30

Modelos Para que modelos são úteis? Possibilitar a comunicação entre pessoas Permitir lidar com problemas complexos Testar hipóteses antes de realizá-las Processo Unificado 31

Modelos Quais são as formas de modelos? Croquis Maquetes Manequins Plantas Diagramas Etc. Processo Unificado 32

Modelos Quais domínios do conhecimento utilizam modelos? Todos! Modelos no domínio de desenvolvimento de software Modelo também é software! Modelos servem para apoiar: Derivação dos outros modelos Codificação do sistema É preciso questionar a necessidade real de modelos que não servem para a derivação de outros modelos ou para a codificação do sistema!!! Processo Unificado 33

Modelos x Diagramas O modelo contem toda a informação que representa o problema ou a solução O diagrama é uma visualização de parte de um modelo sob uma perspectiva Ou seja: Se está no diagrama, está no modelo Se não está no diagrama, não podemos concluir nada Modelo Diagrama Processo Unificado 34

Exemplo de modelos (diagrama de casos de uso) Login no sistema Compra com dinheiro <<extend>> Caixa Compra de itens <<extend>> Compra com cartão <<extend>> Cliente Reembolso de itens comprados Compra com cheque Gerente Inicialização o sistema Administrador do Sistema Gerencia de usuários Processo Unificado 35

Exemplo de modelos (diagrama de classes) Processo Unificado 36

Exemplo de modelos (diagrama de transição de estados) Notificação do sucesso da execução ao usuário ESPERANDO Término da simulação com sucesso Instanciação da máquina de processos Finalização da máquina de processos LIVRE Chegada de interação reativa SIMULANDO Continuação da simulação escolhida por parte do usuário por mais 5 segundos Término da simulação sem sucesso CANCELANDO Cancelamento da simulação escolhido por parte do usuário (possível loop infinito ou recursão sem condição de parada) Processo Unificado 37

Exemplo de modelos (diagrama de atividades - SPEM) Processo Unificado 38

Exemplo de modelos (diagrama de seqüência) Processo Unificado 39

Exercício Modele um sistema de agenda eletrônica usando os recursos que você achar mais relevantes Quais aspectos são capturados? Quais as vantagens da notação que você utilizou? Quais as desvantagens? O que mais você gostaria de capturar que não foi possível com a notação que você utilizou? Processo Unificado 40

Bibliografia Craig Larman, 2007, Utilizando UML e Padrões, 3ª ed. Processo Unificado 41

Processo Unificado Leonardo Gresta Paulino Murta leomurta@ic.uff.br