Engenharia de Software I 2012.2 Modelos de Processo de Software



Documentos relacionados
Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I Aula 3

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

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

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

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

Sistemas de Informação I

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

O que é um processo de software?

Engenharia de Software

Processo Unificado (RUP)

Engenharia de Software I Modelos de Processo de Software

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

Engenharia de Software

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

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

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

Processo de Desenvolvimento Unificado

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Engenharia de Software

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

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

Engenharia de Software II

Pós Graduação Engenharia de Software

Metodologias Ágeis. Aécio Costa

ENGENHARIA DE SOFTWARE I

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

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

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

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

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

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

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

Desenvolvendo Software Livre com Programação extrema

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

Professor: Curso: Disciplina:

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

Desenvolvimento Ágil de Software

Características do Software

Desenvolvimento Ágil de Software com Programação extrema (XP) Ricardo Argenton Ramos

Introdução a Métodos Ágeis de Desenvolvimento de Software

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

Introdução à Engenharia de Software

Processos de Desenvolvimento de Software

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

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

Engenharia de Requisitos

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

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

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

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

Engenharia de Software

Planejamento Iterativo

Desenvolvimento Iterativo. Unified Process (UP) Esta abordagem ao desenvolvimento

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

Engenharia de Software Processo de Desenvolvimento de Software

A Disciplina Gerência de Projetos

Engenharia de Software II

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

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

Introdução ao OpenUP (Open Unified Process)

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF

PROFESSOR: CRISTIANO MARIOTTI

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

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

Modelos de Processo (métodos)

Com metodologias de desenvolvimento

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

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

PROJETO DE FÁBRICA DE SOFTWARE

Processos de Software

1º SEMESTRE DE 2011 Prof. Msc. Hilmer Rodrigues Neri

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

ENG1000 Introdução à Engenharia

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

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

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

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

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

Processo de Desenvolvimento de Software. Engenharia de Software.

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

Introdução Engenharia de Software

Segurança de Aplicações Aula 6

Boas Práticas em Gerenciamento de Projetos Material utilizado nas aulas de Pós-graduação do Centro de Informática

Prof. Me. Marcos Echevarria

Modelos de processos de desenvolvimento de software

Qualidade de Software. Anderson Belgamo

ENGENHARIA DE SOFTWARE II. Modelos de Ciclo de Vida e Processos de Software AULA 2

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Engenharia de Software

Notas de Aula 02: Processos de Desenvolvimento de Software

Metodologia e Gerenciamento do Projeto na Fábrica de Software

Feature-Driven Development

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

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

PPS - Processo de Proposta de Solução Versão 1.3.1

Transcrição:

Engenharia de Software I 2012.2 Modelos de Processo de Software Ricardo Argenton Ramos ricargentonramos@gmail.com

A Engenharia de Software Uma Tecnologia em Camadas Gerenciamento da Qualidade Total e filosofias similares produzem uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software 2

ENGENHARIA DE SOFTWARE pode ser vista como uma abordagem dedesenvolvimento de software elaborada com disciplina e métodos bem definidos.... a construção por múltiplas pessoas de um software com múltiplas versões [Parnas 1987] 3

Modelos de Processo de Software Existem vários modelos de processo de software (ou paradigmas de engenharia de software) Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica 4

Modelos de Processo de Software O Modelo Seqüencial Linear (também chamado Ciclo de Vida Clássico ou Modelo Cascata) O Modelo Baseado em Componentes O Modelo Espiral O Paradigma de Prototipação Processo Unificado

O Modelo Seqüencial Linear (também chamado Ciclo de Vida Clássico ou Modelo Cascata) 6

O Modelo Cascata modelo mais antigo e o mais amplamente usado da engenharia de software modelado em função do ciclo da engenharia convencional requer uma abordagem sistemática, seqüencial ao desenvolvimento de software o resultado de uma fase se constitui na entrada da outra 7

O Modelo em Cascata Exploração de conceitos Requisitos Verificar Plano Evoluir Feedback Projeto Requisitos de V & V Implementação Testes Projeto de V & V Sistema de V & V Instalação e liberação Tarefas de V & V Manutenção e operação Sistema de V & V O quê Como Operação Operação de V & V 8

O Modelo em Cascata Exploração de Conceitos / Informação e Modelagem Engenharia de Sistemas Análise de Requisitos Envolve a elicitação de requisitos do sistema, com uma pequena quantidade de projeto e Projeto análise de alto nível; Preocupa-se com aquilo que conhecemos Codificação como engenharia progressiva de produto de software; Testes Iniciar com um modelo conceitual de alto nível para um sistema e prosseguir com o projeto, implementação e teste Manutenção do modelo físico do sistema. 9

O Modelo em Cascata Análise de Requisitos de Software o processo Engenharia de elicitação dos requisitos é Sistemas intensificado e Análise concentrado de especificamente no Requisitos software Projeto deve-se compreender o domínio Codificação da informação, a função, desempenho e interfaces exigidos Testes os requisitos (para o sistema e para o Manutenção software) são documentados e revistos com o cliente 10

O Modelo em Cascata Projeto tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação inicie 11

O Modelo em Cascata Implementação tradução das representações do projeto para uma linguagem artificial resultando em instruções executáveis pelo computador e implementado num ambiente de trabalho. 12

O Modelo em Cascata Concentra-se: Testes nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados. 13

O Modelo em Cascata Manutenção provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho 14

com o Modelo em Cascata Projetos reais raramente seguem o fluxo seqüencial que o modelo propõe; Logo no início é difícil estabelecer explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural; O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento (na instalação); Difícil identificação de sistemas legados (não acomoda a engenharia reversa). 15

Embora o Modelo em Cascata tenha fragilidades, ele é significativamente melhor do que uma abordagem casual de desenvolvimento de software. 16

O Modelo em Cascata O Modelo de processo em Cascata trouxe contribuições importantes para o processo de desenvolvimento de software: Imposição de disciplina, planejamento e gerenciamento a implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos; Permite gerência do baseline, que identifica um conjunto fixo de documentos produzidos ao longo do processo de desenvolvimento; 17

O Paradigma de Prototipação 18

O Modelo de Prototipação o objetivo é entender os requisitos do usuário e, assim, obter uma melhor definição dos requisitos do sistema. possibilita que o desenvolvedor crie um modelo (protótipo)do software que deve ser construído apropriado para quando o cliente não definiu detalhadamente os requisitos. 19

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos Refinamento do Protótipo Elaborar Projeto Rápido Avaliar Protótipo Construir Protótipo 20

O Paradigma de Prototipação para obtenção dos requisitos 1- OBTENÇÃO Obter Requisitos DOS REQUISITOS: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais. Refinamento do Protótipo Elaborar Projeto Rápido Avaliar Protótipo Construir Protótipo 21

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos Refinamento do Protótipo Avaliar Protótipo 2- PROJETO RÁPIDO: Elaborar Projeto Rápido representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída) Construir Protótipo 22

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos Avaliar Protótipo Elaborar Projeto Rápido Refinamento do Protótipo 3- CONSTRUÇÃO DO PROTÓTIPO: implementação rápida do projeto Construir Protótipo 23

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos Refinamento do Protótipo Elaborar Projeto Rápido 4- AVALIAÇÃO DO PROTÓTIPO: cliente e desenvolvedor avaliam o protótipo Avaliar Protótipo Construir Protótipo 24

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos Elaborar Projeto Rápido 5- REFINAMENTO DO PROTÓTIPO: cliente e Refinamento desenvolvedor do Protótipo refinam os requisitos do software a ser desenvolvido. Avaliar Protótipo Construir Protótipo 25

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos Refinamento do Protótipo CONSTRUÇÃO DO PRODUTO Elaborar Projeto Rápido Avaliar Protótipo Construir Protótipo 26

O Paradigma de Prototipação para obtenção dos requisitos Obter Requisitos 6- CONSTRUÇÃO PRODUTO: identificados os requisitos, o protótipo deve ser descartado e a CONSTRUÇÃO DO Refinamento PRODUTOdo Protótipo versão de produção deve ser construída considerando os critérios de qualidade. Avaliar Protótipo Elaborar Projeto Rápido Construir Protótipo 27

Problemas com a Prototipação cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo desenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo 28

Comentários sobre o Paradigma de Prototipação ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente. a chave é definir as regras do jogo logo no começo. o cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo para definir os requisitos 29

Exercício Vamos refazer o exercício da primeira aula, agora utilizando a Prototipação para construir o Projeto. Obter Requisitos Refinamento do Protótipo Avaliar Protótipo Elaborar Projeto Rápido Construir Protótipo 30

O Modelo Espiral 31

O Modelo Espiral (Boehm, 1986) O modelo espiral acopla a natureza iterativa da prototipação com os aspectos controlados e sistemáticos do modelo cascata. O modelo espiral é dividido em uma série de atividades de trabalho ou regiões de tarefa. Existem tipicamente de 3 a 6 regiões de tarefa. Combina as características positivas da gerência baseline (documentos associados ao processo); 32

O Modelo Espiral (com 4 regiões) DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES PLANEJAR PRÓXIMA FASE REVIEW Requirements plan Life-cycle plan Develop ment plan Integrati on and test p lan Risk analys is Risk analys is Risk analys is Prototyp e 2 Risk analysis Prototy pe 1 Concept of Operati on Requi rement valid ation Desi gn V&V Serv ice S/W requi rement s Accep tance test AVALIAR ALTERNATIVAS IDENTIFICAR, RESOLVER RISCOS Prototype 3 Operati onal protoyp e Simulations, models, b en chmarks Prod uct desi gn Integr ati on test Code Unit test Detail ed desi gn DESENVOLVER, VERIFICAR O PRODUTO NO PRÓXIMO NÍVEL 33

O Modelo Espiral (com 4 regiões) DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES cada ciclo na espiral representa uma fase do processo de software PLANEJAR PRÓXIMA FASE REVIEW Requirements plan Life-cycle plan Develop ment plan Integrati on and test p lan Risk analys is Risk analys is Risk analys is Prototyp e 2 Risk analysis Prototy pe 1 Concept of Operati on Requi rement valid ation Desi gn V&V Serv ice S/W requi rement s Accep tance test AVALIAR ALTERNATIVAS IDENTIFICAR, RESOLVER RISCOS Prototype 3 Operati onal protoyp e Simulations, models, b en chmarks Prod uct desi gn Integr ati on test Code Unit test Detail ed desi gn DESENVOLVER, VERIFICAR O PRODUTO NO PRÓXIMO NÍVEL 34

O Modelo Espiral de Processo de Software o ciclo mais interno está concentrado nas possibilidades do sistema REVIEW Requirements plan Life-cycle plan Risk analysis Prototy pe 1 Concept of Operati on 35

O Modelo Espiral de Processo de Software o próximo ciclo está concentrado na definição dos requisitos do sistema Development plan Risk analys is Requi rement validati on Prototype SW requi rements Simulations, models, benchmarks 36

O Modelo Espiral de Processo de Software Risk analys is o ciclo um pouco mais externo está concentrado no projeto do sistema prototype 3 si mul ati ons, models, benchmarks Product desi gn Integrati on and test plan Desi gn V&V 37

O Modelo Espiral de Processo de Software Risk nalys is um ciclo ainda mais externo está concentrado na construção do sistema Serv ice Acceptance test Operati onal protoype Simulations, models, benchmarks Integrati on test Code Unit test Detail ed desi gn 38

O Modelo Espiral (com 4 regiões) DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES Risk analys is não existem fases fixas no modelo Risk analys is Risk analys is Operati onal as fases mostradas na figura são Prototype 3meramente Prototyp e 2 protoyp e Risk exemplos REVIEW analysis Prototy pe 1 Requirements plan Simulations, models, b en chmarks a gerência decide Life-cycle plan como Concept ofestruturar o projeto Operati on S/W requi rement s em fases PLANEJAR PRÓXIMA FASE Develop ment plan Integrati on and test p lan Requi rement valid ation Desi gn V&V Serv ice Accep tance test AVALIAR ALTERNATIVAS IDENTIFICAR, RESOLVER RISCOS Prod uct desi gn Integr ati on test Code Unit test Detail ed desi gn DESENVOLVER, VERIFICAR O PRODUTO NO PRÓXIMO NÍVEL 39

O Modelo Espiral (com 4 regiões) Cada loop do espiral é dividido em 4 setores DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES ESTABELECIMENTO DE OBJETIVOS PLANEJAMENTO PLANEJAR PRÓXIMA FASE REVIEW Requirements plan Life-cycle plan Develop ment plan Integrati on and test p lan Risk analys is Risk analys is Risk analys is Prototyp e 2 Risk analysis Prototy pe 1 Concept of Operati on Requi rement valid ation Desi gn V&V Serv ice S/W requi rement s Accep tance test AVALIAR ALTERNATIVAS IDENTIFICAR, RESOLVER RISCOS AVALIAÇÃO E REDUÇÃO DE RISCOS Prototype 3 Operati onal protoyp e Simulations, models, b en chmarks Prod uct desi gn Integr ati on test Code Unit test Detail ed desi gn DESENVOLVIMENTO E VALIDAÇÃO DESENVOLVER, VERIFICAR O PRODUTO NO PRÓXIMO NÍVEL 40

O Modelo Espiral de Processo de Software ESTABELECIMENTO DE OBJETIVOS são definidos objetivos específicos para a fase do projeto são identificadas restrições sobre o processo e o produto é projetado um plano de gerenciamento detalhado são identificados riscos do projeto dependendo dos riscos, estratégias alternativas podem ser planejadas 41

O Modelo Espiral de Processo de Software para cada um dos riscos COLOCAÇÃO identificados, DE uma análise detalhada é executada. OBJETIVOS passos são tomados para reduzir o risco AVALIAÇÃO E REDUÇÃO DE RISCOS 42

O Modelo Espiral de Processo de Software ESTABELECIMENTO DE OBJETIVOS AVALIAÇÃO E REDUÇÃO DE RISCOS depois da avaliação do risco, um modelo de desenvolvimento é escolhido para o sistema DESENVOLVIMENTO E VALIDAÇÃO 43

O Modelo Espiral de Processo de Software COLOCAÇÃO DE OBJETIVOS PLANEJAMENTO AVALIAÇÃO E REDUÇÃO DE RISCOS o projeto é revisto e é tomada uma decisão de continuidade se é decidido continuar, são projetados planos DESENVOLVIMENTO para a próxima fase do projeto (próximo E VALIDAÇÃO loop ) 44

O Modelo Espiral engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real usa a Prototipação em todas as etapas da evolução do produto, como mecanismo de redução de riscos 45

Comentários sobre o Ciclo de Vida em Espiral usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável 46

Comentários sobre o Ciclo de Vida em Espiral exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso o modelo é relativamente novo e não tem sido amplamente usado. Demorará muitos anos até que a eficácia desse modelo possa ser determinada com certeza absoluta 47

O Modelo Espiral adiciona um novo elemento: a Análise de Risco usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso 48

O MODELO BASEADO EM COMPONENTES 49

O Modelo Baseado em Componentes Utiliza tecnologias orientadas a objeto Quando projetadas e implementadas apropriadamente as classes orientadas a objeto são reutilizáveis em diferentes aplicações e arquiteturas de sistema O modelo de montagem de componentes incorpora muitas das características do modelo espiral. 50

O Modelo de Montagem de Componentes Planejamento Análise de Riscos Comunicação com Cliente Avaliação do Cliente Engenharia Construção e Liberação 51

O Modelo de Montagem de identificar componentes candidatas Componentes procurar componentes na biblioteca Planejamento Construir a n a iteração do sistema Análise de Riscos Comunicação extrair com Cliente componentes se disponíveis colocar os novos componentes na biblioteca Avaliação do Cliente construir os componentes não disponíveis Engenharia Construção e Liberação 52

O Modelo Baseado em Componentes O modelo baseado em componentes conduz ao reuso do software a reusabilidade fornece uma série de benefícios: redução de até 70% no tempo de desenvolvimento redução de até 84% no custo do projeto índice de produtividade de até 26.2 (normal da indústria é de 16.9) esses resultados dependem da robustez da biblioteca de componentes 53

Processo Unificado da Rational 54

O que é o RUP? O nome é uma abreviação de Rational Unified Process mas na verdade é Processo + Métodos + Linguagem (UML) e os autores argumentam que é Framework para gerar processos

O que é o RUP? Conjunto de atividades bem definidas com responsáveis com artefatos de entrada e saída com dependências entre as mesmas e ordem de execução com modelo de ciclo de vida descrição sistemática de como devem ser realizadas guias (de ferramentas ou não), templates utilizando diagramas de UML

Características Principais do RUP O desenvolvimento de sistemas seguindo o RUP é Iterativo e incremental Guiado por casos de uso (use cases) Baseado na arquitetura do sistema

O RUP é iterativo e incremental O ciclo de vida de um sistema consiste de quatro fases: concepção elaboração construção transição tempo Concepção (define o escopo do projeto) Elaboração (detalha os requisitos e a arquitetura) Construção (desenvolve o sistema) Transição (implanta o sistema)

O RUP é iterativo e incremental Cada fase é dividida em iterações: Inception Elaboration Construction Transition Preliminary iteration Architect. iteration Architect. iteration Devel.. iteration Devel.. iteration Devel.. iteration Transition iteration Transition iteration Minor Milestones: Releases

O RUP é iterativo e incremental Cada iteração é planejada realiza uma seqüência de atividades (de elicitação de requisitos, análise e projeto, implementação, etc.) distintas geralmente resulta em uma versão executável do sistema é avaliada segundo critérios de sucesso previamente definidos

O RUP é iterativo e incremental

Iteração e Workflow Passos dentro de uma iteração Core Workflows Requisito Análise Fases Concepção Elaboração Construção Transição Uma iteração na fase de Elaboração Desenho Implementação Teste Iteração Preliminar ite r. # 1 ite r. # 2 ite r. # n ite r. # n + 1 ite r. # n + 2 ite r. # m ite r. # m +1

O RUP é guiado por casos de uso Os casos de uso não servem apenas para definir os requisitos do sistema Várias atividades do RUP são guiadas pelos casos de uso: planejamento das iterações criação e validação do modelo de projeto planejamento da integração do sistema definição dos casos de teste

O RUP é baseado na arquitetura do sistema Arquitetura visão geral do sistema em termos dos seus subsistemas e como estes se relacionam A arquitetura é prototipada e definida logo nas primeiras iterações O desenvolvimento consiste em complementar a arquitetura A arquitetura serve para definir a organização da equipe de desenvolvimento e identificar oportunidades de reuso

Organização do RUP Fluxos de atividades Atividades passos entradas e saídas guias (de ferramentas ou não), templates Responsáveis (papel e perfil, não pessoa) Artefatos

Exemplo de Fluxo: Planejamento e Gerenciamento Contratante Iniciar Projeto Aprovar Projeto Atestar Conclusão do Projeto Estudar Viabilidade Identificar Riscos Executar Plano de Iteração Desenvolve r Plano de Projeto Desenvolve r Plano de Iteração Avaliar Iteração Finalizar Projeto Gerente de projeto Reavaliar Riscos Arquiteto Priorizar Casos de Uso

Resumo O RUP é: iterativo e incremental guiado por casos de uso baseado na arquitetura do sistema organizado em fases, iterações, fluxos, atividades e passos

Vamos Navegar pelo RUP Entre no site: http://www.wthreex.com/rup/portugues/index.htm 68

Métodos Ágeis 69

Novos ventos no mundo do Desenvolvimento de Software Sociedade demanda grande quantidade de sistemas/aplicações software complexo, sistemas distribuídos, heterogêneos requisitos mutantes (todo ano, todo mês, todo dia) Mas, infelizmente, não há gente suficiente para desenvolver tanto software com qualidade.

Problemas Com metodologias de desenvolvimento Supõem que é possível prever o futuro Pouca interação com os clientes Ênfase em burocracias (documentos, formulários, processos, controles rígidos, etc.) Avaliação do progresso baseado na evolução da burocracia e não do código Com software Grande quantidade de erros Falta de flexibilidade

Como resolver esse impasse? Melhores Tecnologias Padrões de Projeto (reutilização de idéias) Componentes (reutilização de código) Middleware (aumenta a abstração) Melhores Metodologias Métodos Ágeis outras... (RUP, relacionadas a CMM, etc.)

Métodos Ágeis de Desenvolvimento de Software Movimento iniciado por programadores experientes e consultores em desenvolvimento de software. Questionam e se opõe a uma série de mitos/práticas adotadas em abordagens tradicionais de Engenharia de Software e Gerência de Projetos. Manifesto Ágil: Assinado por 17 desenvolvedores em Utah em fevereiro/2001.

O Manifesto do Desenvolvimento Ágil de Software 1. Indivíduos e interações são mais importantes que processos e ferramentas. 2. Software funcionando é mais importante do que documentação completa e detalhada. 3. Colaboração com o cliente é mais importante do que negociação de contratos. 4. Adaptação a mudanças é mais importante do que seguir o plano inicial.

Princípios do Manifesto Ágil Objetivo: satisfazer o cliente entregando, rapidamente e com freqüência, sistemas com algum valor. Entregar versões funcionais em prazos curtos. Estar preparado para requisitos mutantes. Pessoal de negócios e desenvolvedores juntos. Troca de informações através de conversas diretas. 75 / 69

Principais Métodos Ágeis Crystal (uma família de métodos) Scrum Programação extrema (XP) Adaptive Software Development Feature Driven Development etc.

A família Crystal de Métodos Criada por Alistair Cockburn http://alistair.cockburn.us/crystal Editor da série Agile Software Development da Addison-Wesley.

Scrum Definição informal: Estratégia em um jogo de rugby onde jogadores colocam uma bola quase perdida novamente em jogo através de trabalho em equipe.

Scrum Scrum é um esqueleto de processo que contém grupos de práticas e papéis prédefinidos. Os principais papéis são: ScrumMaster, que mantém os processos (normalmente no lugar de um gerente de projeto); Proprietário do Produto, ou Product Owner, que representa os stakeholders e o negócio; a Equipe, ou Team, um grupo multifuncional com cerca de 7 pessoas e que fazem a análise, projeto, implementação, teste etc. 79

Programação extrema XP Metodologia de desenvolvimento de software aperfeiçoada nos últimos 5 anos. Ganhou notoriedade a partir da OOPSLA 2000. Nome principal: Kent Beck Também importante: Ward Cunningham

A Quem se Destina os Métodos Ágeis Grupos de 2 a 10 programadores Projetos de 1 a 36 meses (calendário) De 1000 a 250 000 linhas de código

Características Comuns dos Métodos Ágeis Coloca o foco Na entrega freqüente de sub-versões do software [funcionando] para o cliente. Nos seres humanos que desenvolvem o software. Retira o foco de Processos rígidos e burocratizados. Documentações e contratos detalhados. Ferramentas que são usadas pelos seres humanos.

Para escolha de um Modelo de Processo de Software: natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues 83

Exercício Você e mais 4 sócios resolveram criar uma empresa de desenvolvimento de Software e você ficou responsável por definir algumas áreas da empresa. Cada questão abaixo será a sua parte para a criação desta empresa. 1) Defina uma abordagem para o desenvolvimento de software que compreenda os benefícios dos modelos de desenvolvimento clássicos (Cascata, prototipação e Espiral). Inclua as características de outros modelos se achar necessários. 2) Defina uma abordagem para fazer a analise da viabilidade de sistemas a serem desenvolvidos. Esta abordagem consiste de uma relação das atividades em ordem cronológica para analisar a viabilidade de qualquer sistema que for desenvolvido pela empresa. 3) O seu primeiro sistema a ser desenvolvido pela nova empresa de desenvolvimento de software será para a Farmácia Pague Pouco. Eles querem informatizar o sistema de vendas e controle de estoque, desejam armazenar a seguinte informação: qual vendedor vendeu qual produto para qual cliente. Relate, de acordo com o modelo de software criado na primeira questão e com a abordagem de analise da segunda, quais a as atividades deverão ser realizadas para o desenvolvimento do sistema da Farmácia Pague Pouco. 84