1
RUP – Rational Unified
Process
Jorge Dias Jr.
jorge@dce.ufpb.br
www.jorgediasjr.com
2O RUP
Rational Unified Process
Processo
Framework para gerar processos
O RUP
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
5
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
Verificação Contínua da Qualidade
Gerenciamento de Mudanças
O RUP - Desenvolvimento de Software
Iterativo e Incremental
O RUP - Desenvolvimento de Software
Iterativo e Incremental
Equívocos graves são evidenciadas no início do ciclo de
vida, quando é possível reagir a eles;
Essa abordagem permite e incentiva feedback dos
usuários, de modo a suscitar necessidades reais do
sistema;
A equipe de desenvolvimento concentra-se nas
questões que são mais críticas para o projeto e tenta
tratar os riscos reais do projeto;
A equipe pode aproveitar as lições aprendidas e,
portanto, pode melhorar continuamente o processo;
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
Verificação Contínua da Qualidade
O RUP - Gerenciamento de Requisitos
Comunicações são baseadas em requisitos
definidos;
Requisitos podem ser priorizados, filtrados e
localizados;
Permite uma avaliação objetiva das
funcionalidade e demais características do
sistema;
10
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
Verificação Contínua da Qualidade
Gerenciamento de Mudanças
O RUP - Uso de Arquitetura Baseada em
Componentes
A arquitetura do sistema compreende o conjunto de
decisões importantes sobre os seguintes elementos:
A seleção dos elementos estruturais e suas interfaces, através
da qual o sistema é composto;
Seu comportamento, conforme especificado pelo colaborações
entre esses elementos.
A arquitetura de software está preocupada não só com a
estrutura e comportamento, mas também com o uso,
funcionalidade, desempenho, robustez,
reutilização, abrangência, economia, limitações
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
O RUP - Modelagem Visual
Modelos ajudam a entender a realidade;
Melhora a comunicação entre os stakeholders;
Permite destacar detalhes importantes;
Auxilia na obtenção de uma visão geral do sistema;
Documenta decisões tomadas;
Auxilia na entrada de novos integrantes no projeto.
14
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
Verificação Contínua da Qualidade
Gerenciamento de Mudanças
O RUP -
Verificação Contínua da
Qualidade
A avaliação do estado do projeto é feita de forma objetiva, não
subjetiva (resultados dos testes);
Esta avaliação objetiva expõe as inconsistências nos requisitos,
projetos e implementações;
Defeitos são identificados mais cedo, reduzindo radicalmente o
custo de corrigi-los.
O RUP
Segue as boas práticas da Engenharia de
Software
Desenvolvimento de Software Iterativo e
Incremental
Gerenciamento de Requisitos
Uso de Arquitetura Baseada em Componentes
Modelagem Visual
Verificação Contínua da Qualidade
O RUP –
Gerenciamento de Mudanças
O fluxo de trabalho de mudanças de requisitos é
definido e repetível;
As solicitações de mudança facilitam a
comunicação;
Estatísticas de taxas de mudança fornecem
medidas objetivas para avaliar o andamento do
projeto;
O RUP
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
Tratamento de Riscos
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
21
O RUP – Dividido em Fases
Características
Dividido em Fases
Concepção (define o escopo do projeto)
Elaboração (define os requisitos e a arquitetura)
Construção (desenvolve o sistema)
Transição (implanta o sistema)
Concepção Elaboração Construção Transição
tempo
Marco da fase: escopo definido!
22
O RUP – Dividido em Fases
Concepção
Objetivos da Fase de Concepção
Definir o escopo do software
Visão do Projeto
O que faz parte e o que não faz parte do produto
Definir os critérios de aceitação do produto final
Descobrir os casos de uso críticos
Estimar por alto o custo e o cronograma de todo
o projeto
Estimar em detalhes os custos e cronograma da fase
seguinte (Elaboração)
O RUP – Dividido em Fases
Concepção
Objetivos da Fase de Concepção
Levantar os potenciais riscos
Preparar o ambiente de suporte do projeto
Definir e preparar os processos e ferramentas a serem utilizados
Definir e, eventualmente, demonstrar com protótipos ao
menos um candidato à arquitetura
Avaliar alternativas de projetoQue componentes fazer, comprar ou reusar?
25
O RUP – Dividido em Fases
Concepção
Esforço para algumas disciplinas
26
O RUP – Dividido em Fases
Características
Dividido em Fases
Concepção (define o escopo do projeto)
Elaboração (define os requisitos e a arquitetura)
Construção (desenvolve o sistema)
Transição (implanta o sistema)
Concepção Elaboração Construção Transição
tempo
Marco da fase: arquitetura definida!
O RUP – Dividido em Fases
Elaboração
Objetivos da Fase de Elaboração
Capturar a maioria dos requisitos
Construir a arquitetura do sistema
Que demonstre a capacidade de esta arquitetura acomodar
o resto do sistema
Produzir protótipos evolucionários ou
descartáveis que eliminam riscos de
Requisitos ou projeto
29
O RUP – Dividido em Fases
Elaboração
Esforço para algumas disciplinas
30
O RUP – Dividido em Fases
Características
Dividido em Fases
Concepção (define o escopo do projeto)
Elaboração (define os requisitos e a arquitetura)
Construção (desenvolve o sistema)
Transição (implanta o sistema)
Concepção Elaboração Construção Transição
tempo
Marco da fase: funcionalidades 100% implementadas!
O RUP – Dividido em Fases
Construção
Objetivos da Fase de Construção
Produzir a versão para testes
Ênfase na produção de software operacional
Envolve análise, projeto e implementação dos requisitos
Pelo menos 80% dos casos de uso foram levantados(identificados) e entendidos
Destes, apenas 10-15% são arquiteturalmente relevantes e foram especificados (detalhados), analisados, projetados e implementados
A Construção finaliza o sistema, atingindo 100% das funcionalidades implementadas
33
O RUP – Dividido em Fases
Construção
Esforço para algumas disciplinas
34
O RUP – Dividido em Fases
Características
Dividido em Fases
Concepção (define o escopo do projeto)
Elaboração (define os requisitos e a arquitetura)
Construção (desenvolve o sistema)
Transição (implanta o sistema)
Concepção Elaboração Construção Transição
tempo
Marco da fase: sistema implantado!
O RUP – Dividido em Fases
Transição
Objetivos da Fase de Transição
Validar o sistema em relação às expectativas dos usuários
Testes e operacionalização do software (geralmente, em
paralelo com o sistema legado)
Conversão de dados
Treinamento de usuários
Correção de erros, pequenas melhorias, pequenos ajustes
37
O RUP – Dividido em Fases
Transição
Esforço para algumas disciplinas
O RUP – Dividido em Fases
Esforço ao longo das fases
38
O RUP – Dividido em Disciplinas
Modelagem do Negócio
Requisitos
Análise e Projeto
Implementação
Testes
Implantação
Gerência de Configuração
Planejamento e Gerenciamento
Ambiente
Modelagem de Negócio
Modelo de negócio: a representação de um
conjunto de atividades – tanto internas (como
planejamento)
quanto
externas
(como
tomada de ação) – que são executadas para
transformar entradas em saídas, produzindo
trabalho (produto/serviço) nas organizações.
Modelagem de Negócio
42
Modelagem de Negócio
Principais objetivos:
Entender o negócio (a estrutura e a dinâmica da organização na qual um sistema deve ser implantado);
Entender os problemas atuais da organização e identificar as possibilidades de melhoria;
Assegurar que os clientes, usuários e desenvolvedores tenham um
entendimento comum da organização e dos seus negócio;
Documentar os processos de negócio e capturar a relação entre os seus conceitos;
Derivar os requisitos de sistema necessários para sustentar a organização.
Modelagem de Negócio
Requisitos
Requisitos: são características funcionais
(declarações de serviços que o sistema deve
fornecer) e não funcionais (restrições sobre
os
serviços)
que
o
sistema
precisa
apresentar.
Requisitos
46
Requisitos
Principais objetivos:
Definir as características do sistema conforme observadas pelo cliente;
Estabelecer e manter concordância com os clientes e outras partes interessadas sobre o que o sistema deve fazer;
Produzir e gerenciar os requisitos do projeto;
Oferecer ao desenvolvedor um melhor entendimento dos requisitos do sistema;
Definir os limites do sistema (Delimitar o escopo);
Definir uma interface do sistema com o usuário, focando nas necessidades e objetivos dos usuários;
Fornecer uma base para planejar o conteúdo técnico das iterações e estimar o custo e o tempo para desenvolver o sistema;
Identificar as inconsistências entre os requisitos e os planos de
projeto e produtos de trabalho.
Requisitos
Análise e o Projeto
Análise: foca nos requisitos funcionais do
sistema,
criando
modelos
conceituais,
baseados em conceitos de negócio.
Projeto: foca nos requisitos técnicos do
sistema,
criando
visões
detalhadas,
baseadas na tecnologia que será utilizada.
Análise e Projeto
Olho
50
Análise e Projeto
Principais objetivos
:
Transformar os requisitos em modelos (abstrato - Análise
e concreto - Projeto) do que o sistema vai ser;
Construir uma arquitetura robusta para o sistema;
Adaptar o projeto às limitações do ambiente de execução.
Com o andamento da análise, o sistema vai sendo
modelado e esta modelagem amadurece até se
transformar no projeto do sistema.
Análise e Projeto
Implementação
Implementação: processo de construção de
versões operacionais do sistema ou de parte
dele,
de
modo
a
demonstrar
suas
funcionalidades e características em geral.
Implementação
Olho
Implementação
Principais objetivos:
Definir a organização do código fonte em termos de subsistemas e camadas;
Implementar o sistema (codificar) de acordo com os requisitos e o projeto elaborados;
Assegurar a qualidade do código produzido;
Implementar testes unitários para as funcionalidades desenvolvidas;
Implementar testes de requisitos não funcionais para componentes arquiteturais;
Integrar o sistema.
Implementação
Testes
Teste: avaliação da qualidade do produto,
através
de
verificação
e
correção
de
problemas
e
de
má
interpretação
dos
requisitos.
Testes
Olho
Testes
Principais objetivos:
Verificar se todos os requisitos do sistema foram corretamente implementados;
Validar se o sistema foi construído como projetado;
Validar se os requisitos foram implementados apropriadamente;
Identificar e documentar falhas (defeitos e problemas) no software;
Assegurar a satisfação do cliente com o produto desenvolvido;
Reduzir custos de manutenção corretiva e retrabalho.
Testes
Implantação
Implantação: corresponde às atividades de
planejamento, preparação e instalação de
produtos
de
software
no
ambiente
de
produção.
Implantação
Implantação
Principais objetivos
:
Descrever as atividades de planejamento, preparação e
instalação e testes de produtos de software nos ambientes de desenvolvimento, homologação e produção;
Migrar dados legados para o novo sistema;
Treinar usuários e equipe de suporte/vendas.
Implantação
Gerência de Configuração
Gerência
de
Configuração:
registra
e
mantém uma trilha das mudanças e da
evolução
dos
artefatos
produzidos
pelo
projeto,
que
podem
sofrer
mudanças
decorrentes de correções de falhas, melhoria
de qualidade e inclusão de novos requisitos.
Gerência de Configuração
Gerência de Configuração
Objetivos
Coordenar os aspectos relacionados à gerência de configuração e mudanças;
Gerência de configuração:
Controla os artefatos produzidos no desenvolvimento do projeto;
Evita a ocorrência dos seguintes problemas: Atualizações simultâneas; Múltiplas versões;
Mantém a integridade e rastreabilidade da configuração através do ciclo de vida do sistema.
Gerência de mudanças:
Lida com a captação e gestão de mudanças solicitadas por stakeholders internos e externos;
Trata da análise do impacto potencial da mudança e com a acompanhamento do que acontece com a mudança até que ela seja concluída.
Gerência de configuração
Planejamento e Gerenciamento
Planejamento e Gerenciamento: aplicação de
conhecimentos, habilidades e técnicas na
elaboração de atividades relacionadas para
atingir
um
conjunto
de
objetivos
pré-definidos, num certo prazo, com um certo
custo e qualidade, através da mobilização de
recursos técnicos e humanos.
Planejamento e Gerenciamento
Planejamento e Gerenciamento
Objetivos
Fornecer framework para gerenciamento
do projeto;
Auxiliar as atividades de planejamento,
execução,
acompanhamento
e
monitoramento do projeto;
Auxiliar a criação de uma estrutura para
gerenciar risco.
Planejamento e Gerenciamento
Ambiente
Ambiente: define os processos, modelos de
artefatos, guias (de atividades e artefatos) e
ferramentas
para
a
empresa
que
está
desenvolvendo o sistema.
Ambiente
Ambiente
Objetivos
Criar e evoluir processos do projeto (atividades,
artefatos e papéis);
Selecionar,
adquirir,
instalar
e
configurar
ferramentas;
Manutenção da infra-estrutura, processos de
backup e outras rotinas pertinentes.
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
O RUP – Envolve Atividades, Artefatos e
Responsáveis
Características
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 descrição sistemática de como devem ser
realizadas
O RUP – Envolve Atividades, Artefatos e
Responsáveis
Exemplos de atividades e artefatos...
Modelagem de Negócio
Principais atividades:
Conhecer o negócio (cenário atual - nível macro): compreender de forma macro o funcionamento do negócio;
Identificar processos de negócio (cenário atual): identificar todos os processos (importante para planejar as atividades de modelagem); Especificar processos de negócio (cenário atual): documentar os processos
(os participantes do negócio e suas funções; as atividades e os fluxos de trabalho; os sistemas envolvidos nos processos);
Apresentar os artefatos da modelagem de negócio (cenário atual): apresentar e homologar, junto ao cliente/patrocinador, os resultados (artefatos gerados) do trabalho de modelagem de negócio realizado; Apresentar proposta de melhorias nos processos de negócio (cenário futuro):
apresentar e homologar, junto ao cliente/patrocinador, uma proposta para realizar melhorias/reengenharia nos processos (de forma a apoiar estratégias de inovação ou criar oportunidades de negócio, ou simplesmente otimizar os processos atuais de negócio).
Modelagem de Negócio
Alguns exemplos de artefatos:
Lista dos processos de negócio;
Especificação textual/diagrama dos processos de
negócio (cenário atual);
Especificação textual/diagrama dos processos de
negócio (cenário futuro);
81
Requisitos
Principais atividades:
Desenvolver Plano de Gerência de Requisitos: especificar a forma
de documentação dos requisitos, as diretrizes de rastreabilidade e a forma de gerenciamento dos requisitos do projeto;
Realizar estudo de viabilidade: responder se vale a pena ou não
prosseguir com o desenvolvimento do sistema (avalia se o sistema contribui para os objetivos gerais da organização, se pode ser implementado com tecnologia atual e dentro das restrições de custo e prazo, se pode ser integrado a outros sistemas já implantados);
Elicitar requisitos: coletar requisitos; classificar e organizar requisitos; priorizar e negociar requisitos; detalhar requisitos; documentar requisitos;
Validar/revisar requisitos: verificar se os requisitos realmente definem o sistema que o usuário deseja;
Gerenciar requisitos: compreender e controlar as mudanças dos
requisitos.
82
Requisitos
Alguns exemplos de artefatos:
Plano de Gerenciamento de Requisitos; Documento de Definição de Requisitos (DDR); Diagrama de Casos de Uso;Especificações de Casos de Uso; Regras de Negócio; Regras de Validação; Matriz de Rastreabilidade; Glossário de Negócio.
Análise e Projeto
Principais atividades:
Definir modelo conceitual/arquitetura candidata: criar
esboço do modelo conceitual e do esqueleto de pelo menos uma arquitetura preliminar do sistema (que pode evoluir ou ser descartada ao longo do projeto); organizar o sistema em camadas; identificar classes de análise;
Refinar modelo conceitual/arquitetura: fazer a transição
da análise para projeto, descrever o sistema relacionado a aspectos de runtime (aspecto dinâmico do sistema) e implantação (aspecto estático do sistema);
Projetar banco de dados: projetar o banco de dados para
Análise e Projeto
Alguns exemplos de artefatos:
Realização de caso de uso (de Análise); Documento de arquitetura;
Mapeamento das classes de Análise em elementos de Projeto; Diagrama de pacotes;
Realização de caso de uso (de Projeto); Diagrama Entidade Relacionamento; Mapeamento Objeto-relacional;
85
Implementação
Principais atividades:
Estruturar o modelo de implementação: definir a
organização do código fonte (organização em camadas, mecanismos de persistência, comunicação e GUI, por exemplo);
Codificar componentes/casos de uso: codificar
componentes/casos de uso necessários e realizar testes unitários;
Integrar sistema: integrar componentes, dando origem a
uma nova versão do sistema.
86
Implementação
Alguns exemplos de artefatos: Implementação dos componentes;
Testes unitários da implementação dos componentes; Relatórios de testes unitários da implementação dos
componentes;
Roteiros/relatórios de testes não-funcionais da implementação dos componentes;
Implementação dos casos de uso;
Testes unitários da implementação dos casos de uso; Relatórios de testes unitários da implementação dos casos de
uso;
Roteiro/relatórios testes não-funcionais da implementação dos casos de uso;
Plano de Integração.
Testes
Principais atividades:
Planejar testes: planejar as atividades de teste do projeto (tipos
de teste, previsão de quando e por quem os testes deverão ser executados);
Especificar, construir e executar testes: especificar e construir os cenários a serem testados de acordo com os requisitos funcionais e não funcionais do sistema e testá-los;
Testes de integração: testam a integração de todos os componentes previstos para a iteração/versão;
Testes funcionais: encontram bugs na construção do software;
Testes não funcionais: verificam a corretude dos requisitos não funcionais do sistema;
Testes de sistema: testam o sistema como um todo;
Testes de aceitação/homologação: feitos pelo usuário final, realizam a aceitação do produto entregue;
Analisar resultados e corrigir defeitos: analisar defeitos provenientes das atividades de teste e resolvê-los;
Testes
Alguns exemplos de artefatos: Plano de Teste;
Roteiros de Teste Funcionais; Relatório de Testes Funcionais; Relatório de Testes Não Funcionais; Roteiros de Teste de Aceitação/Homologação; Relatório de Teste de Aceitação/Homologação; Roteiros de Teste de Desempenho; Registros de bugs.
89
Implantação
Principais atividades:
Planejar implantação: definir as diretrizes usadas para planejar como será realizada a implantação do sistema e garantir que o usuário esteja ciente e comprometido com as atividades de implantação;
Desenvolver material de suporte: desenvolver os artefatos de apoio aos usuários no processo de instalação, aprendizagem, utilização, operação e sustentação do sistema (documentação, manuais, treinamentos, dentre outros);
Testar sistema no ambiente de desenvolvimento: testar o sistema no ambiente de desenvolvimento, para verificar se o sistema está pronto para ser implantado;
Gerar release: empacotar o sistema com todos os artefatos necessários para implantação;
Instalar e testar sistema no ambiente de produção: instalar e testar o sistema no ambiente de produção, para que possa ser utilizado pelo cliente;
90
Implantação
Alguns exemplos de artefatos:
Plano de implantação; Release;
Artefatos de instalação (script, ferramentas, arquivos, guias); Documentação;
Material de apoio, como o manual do usuário, manuais de operação e manutenção;
Material de treinamento. .
Gerência de Configuração
Principais atividades:
Planejar gerência de configuração e mudanças: plano de referência para o controle sistemático da configuração e das mudanças realizadas no projeto;
Configurar ambiente de gerência de configuração e mudanças: preparar o ambiente (criar procedimentos, instalar ferramentas etc.), para que o processo de gerenciamento de configuração e mudanças possa ser desempenhado;
Criar/alterar e disponibilizar produtos de trabalho: acessar os artefatos do projeto, realizar mudanças e incorporá-las ao produto;
Monitorar gerência de configuração e mudanças: monitorar e
reportar as configurações e mudanças no projeto, provendo trilhas de auditoria;
Gerenciar mudanças: processar (avaliar, analisar impacto e aprovar) as solicitações de mudança de modo padronizado;
Gerência de Configuração
Alguns exemplos de artefatos:
Plano de gerenciamento de configuração e
mudança;
Solicitações de mudança;
Planejamento e Gerenciamento
Principais atividades:
Planejamento, executar, acompanhar e
monitorar o projeto (escopo, tempo,
custo,
riscos,
qualidade,
recursos
humanos, aquisições, comunicação).
Planejamento e Gerenciamento
Alguns exemplos de artefatos:
Planos e documentos relacionados à
execução,
acompanhamento
e
monitoramento
do
projeto
(escopo,
tempo, custo, riscos, qualidade, recursos
humanos, aquisições, comunicação).
Ambiente
Principais atividades:
Preparar ambiente para o projeto: definir uma lista
de
ferramentas
que
podem
ser
utilizadas
e
templates de artefatos que serão necessários;
Preparar diretrizes: preparar procedimentos para o
desenvolvimento das atividades do projeto;
Suportar ambiente: prover suporte para os usuários
quanto às dificuldades pertinentes ao ambiente;
Realizar atividades de manutenção: execução das
rotinas
relacionadas
à
infra-estrutura,
como
processos de backup e outras rotinas pertinentes
Ambiente
Exemplo de artefato:
Modelo/processo de desenvolvimento
O RUP – Envolve Atividades, Artefatos e
Responsáveis
Exemplos de responsáveis/papéis...
O RUP – Envolve Atividades, Artefatos e
Responsáveis
Administrador do Sistema Analista de Negócio Analista de Sistemas Analista de Teste Arquiteto de Software Artista gráfico Desenvolvedor do Curso DesignerDesigner de Banco de Dados Designer de Interface do Usuário Designer de Negócio Designer de Teste Engenheiro de Processo Especialista em Ferramentas Especificador de Requisitos Gerente de Configuração Gerente de Controle de Mudanças Gerente de Implantação Gerente de Projeto Gerente de Teste Implementador (codificador) Integrador de sistemas Redator Técnico Revisor de Arquitetura Revisor de Design Revisor de Negócio Revisor de Projetos Revisor de Requisitos Revisor do Código Testador
Modelagem de Negócio
Analista de NegócioLidera e coordena a modelagem de negócios, delineando e delimitando a organização que está sendo modelada;
Por exemplo: estabelece o processo, visão de novos negócios, capta os objetivos de negócio, e determina que os atores de negócios e processos de negócios existem e como eles interagem.
Designer de Negócio
Detalha a especificação de uma organização, descrevendo os processos de negócio;
Determina os trabalhadores e entidades de negócios necessários para realizar um processo de negócios, e também como eles trabalham juntos para alcançar a realização.
Define as responsabilidades, operações, atributos e relacionamentos de um ou vários trabalhadores de negócios e entidades empresariais.
Requisitos
Analista de Sistemas
Lidera e coordena elicitação de requisitos e modelagem de casos de uso, delimitando o sistema e descrevendo suas funcionalidade;
Especificador de Requisitos
Detalha a totalidade ou parte da funcionalidade do sistema, descrevendo os aspectos dos requisitos de um ou vários casos de uso;
Arquiteto de Software
Envolvido principalmente nas primeiras iterações para, juntamente com o Analista de Sistemas e Especificador de Requisitos, garantir a integridade dos casos de uso significativos para a definição da arquitetura;
Designer de Interface
Análise e Projeto
Arquiteto de Software
Lidera e coordena as atividades técnicas e artefatos ao longo do projeto;
Estabelece a estrutura geral de cada visão de arquitetura: a decomposição da visão, o agrupamento de elementos, e as interfaces entre os principais grupos.
Designer
Define as responsabilidades, operações, atributos e relacionamentos de uma ou várias classes e determina como devem ser ajustadas ao ambiente de implementação.
Além disso, o designer pode ter responsabilidade por um ou mais pacotes de design ou subsistemas de design, incluindo as classes pertencentes aos pacotes ou subsistemas.
Designer de Banco de Dados Responsável pelo banco de dados.
Revisor de Arquitetura
Especialista que analisa os artefatos de arquitetura.
Revisor de Design
Especialista que analisa os artefatos de projeto.
Implementação
Implementador (codificador)
Desenvolve código e executa testes de unidade;
Integrador de sistemas
Integra o código, construindo as versões do sistema;
Arquiteto de software
Define a estrutura do modelo de implementação
(camadas e subsistemas);
Revisor do código
Inspeciona o código para a qualidade e conformidade
com o projeto padrão.
Testes
Gerente de Teste
Tem a responsabilidade global para o sucesso do esforço de teste;
Responsável pelo planejamento e gestão de recursos e resolução de problemas que impedem o esforço de teste;
Analista de Teste
Responsável por identificar e definir os testes necessários;
Monitora o progresso dos testes e resultados em cada ciclo de teste;
Avaliar a qualidade global a partir dos resultado das atividades de testes.
Carrega a responsabilidade de representar adequadamente as necessidades das partes interessadas que não tenham direta ou regular representação sobre o projeto.
Designer de Teste
Responsável por definir a abordagem de teste e garantir a sua execução bem sucedida.
Identifica as técnicas apropriadas, ferramentas e diretrizes para implementar os testes necessários e orienta sobre os recursos exigidos para o esforço de teste.
Testador
Cria e executa os testes, avaliação sua execução,recupera os erros de avaliação dos resultados dos testes e registra pedidos de mudança.
Implantação
Gerente de Implantação
Planeja e organiza a implantação.
Responsável pelos testes e feedback, e por garantir que o produto está pronto para
distribuição. Gerente de Projeto
Principal interface com o cliente, sendo responsável pela aprovação de implantação com base no feedback dos testes e avaliação de resultados;
Responsável ainda pela aceitação da entrega por parte do cliente; Testador
Executa os testes de aceitação e é responsável por garantir que o produto foi testado de forma adequada;
Implementador
Cria scripts de instalação e artefatos relacionados que irão ajudar o usuário a instalar o produto final.
Redator Técnico
Desenvolve materiais de suporte; Desenvolvedor do Curso
Produz material de treinamento; Artista gráfico
Gerência de Configuração
Gerente de Configuração
Responsável pelas atividades de gerência de configuração (planejamento, configuração de ambiente e ferramentas, criação da estrutura de produtos no sistema, auditorias, dentre outras).
Gerente de Controle de Mudanças
Responsável pelas definição do processo de controle de mudanças e pela execução das atividades de supervisão do controle de mudanças; Um momento de configuração de mudanças deverá ser composto por
representantes de todas as partes interessadas, incluindo clientes, desenvolvedores e usuários;
Integrador
Aceita mudanças na integração e constrói o produto (gera baseline/release).
Planejamento e Gerenciamento
Gerente de Projetos
Responsável pela geração dos manutenção dos
artefatos de Gerência de Projetos.
Revisor de Projetos
Responsável pela revisão dos artefatos de Gerência
de Projetos.
Ambiente
Engenheiro de processo
Responsável pela adequação do processo ao projeto;
Analista de Negócio
Desenvolve as orientações para a modelagem de negócios;
Analista de Sistemas
Desenvolve orientações para modelagem de caso de uso;
Designer de Interface do Usuário
Desenvolve orientações para a criação de interface de usuário.
Designer de Testes
Desenvolve orientações para a criação de testes.
Arquiteto de software
Desenvolve as diretrizes de design e orientações de programação.
Redator técnico
Desenvolve guia de estilo para o manual do usuário.
Especialista em Ferramentas
Seleciona e adquire ferramentas de apoio ao desenvolvimento. elacionadas.
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
O RUP - Iterativo e Incremental
Cada fase é dividida em iterações:
Marcos: Releases
Inception Elaboration Construction Transition
Transition iteration Preliminary iteration Architect. iteration Architect. iteration Devel.. iteration Devel.. iteration Devel.. iteration Transition iteration
O RUP – Iterativo e Incremental
Características
Iterativo e incremental
Ciclo de Vida Iterativo
Divide o projeto em partes menores Mais fáceis de planejar Mais fáceis de gerenciar Mais fácil de medir o progresso
Aplicação do “modelo cascata” em várias iterações As iterações iniciais atacam os riscos mais críticos Todos começam a trabalhar mais cedo
Testes e integração são realizados desde o início Riscos mais críticos são resolvidos mais cedo Maior feedback dos usuários
Geralmente resulta em uma versão executável do sistema
O RUP - Iterativo e Incremental
Iterações
Projetos simples
normalmente têm uma iteração por fase.
Projetos mais complexos
no seu primeiro ciclo de desenvolvimento normalmente apresentam: 1 iteração na Iniciação 2 iterações na Elaboração 2 iterações na Construção 1 iteração na Transição
Projetos grandes
em domínios desconhecidos, envolvendo novas tecnologias e muitos riscos:
2 iterações na Iniciação 3 iterações na Elaboração 3 iterações na Construção 2 iterações na Transição
O RUP - Iterativo e Incremental
117
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
Tratamento de Riscos
O RUP - Dirigido por Casos de Uso
Requisitos Análise e Projeto Implementação Testes Implantação
Os casos de uso conectam esses fluxos
O RUP - Dirigido por Casos de Uso
Características
Casos de Uso
Representam as funcionalidades do sistema
Ajudam na comunicação com os clientes
Mostram apenas o que o sistema faz, e não como
Servem como base para
Definir os requisitos do sistema
Definição/planejamento das iterações
Criação da arquitetura
Definição dos casos de teste
Documentação do usuário
O RUP - Dirigido por Casos de Uso
Priorizar os casos de uso que impliquem em mais riscos ao
projeto
Os casos de uso que implicam em riscos ao projeto devem ser
atacados o quanto antes, preferencialmente nas primeiras iterações.
Priorizar os casos de uso que sejam relevantes para a
Arquitetura do software
A definição de uma arquitetura robusta e capaz de acomodar
todos os requisitos do sistema é primordial para o sucesso do projeto.
121
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
Tratamento de Riscos
O RUP – Centrado na Arquitetura
Planejar/DefinirRepresentar/Projetar
Construir/Desenvolver
Inspecionar/Validar
O RUP – Centrado na Arquitetura
Características
Arquitetura de Software
A definição da arquitetura é imprescindível para o sucesso do
projeto
Apresenta a visão geral do sistema em termos dos seus
subsistemas e como estes se relacionam
Trata os requisitos não-funcionais (atributos de qualidade:
segurança, performance...) e requisitos funcionais críticos
Identifica e mapeia:
Componentes
O RUP
Características
Dividido em Fases/Disciplinas
Envolve Atividades, Artefatos e Responsáveis
Iterativo e Incremental
Dirigido por Casos de Uso
Centrado na Arquitetura
O RUP – Tratamento de Riscos
Características
Riscos são incertezas que podem conduzir a falhas em um projeto
Pessoas não são peças mecânicas intercambiáveis
Existem aspectos desconhecidos relativos ao software
Riscos diretos e indiretos
Diretos: o projeto tem maior controle sobre ele
Indiretos: o projeto não tem controle sobre ele
A abordagem iterativa permite atenuar os riscos mais cedo Atributos Probabilidade Severidade Tratamento de riscos Identificação Quantificação Desenvolvimento de Respostas Evitar Transferir
Aceitar (Mitigar/ Contingenciar - plano B)
O RUP – Resumo
Fases
Iterações
Disciplinas
Atividades
Passos
entradas e saídas
guias (de ferramentas ou não), templates
Responsáveis (papel e perfil, não pessoa)
Artefatos
Referências
Martins, José Carlos Cordeiro. Gerenciando projetos de desenvolvimento de software com PMI, RUP e UML. Brasport, 3ª edição, 2006.
Pressman, R. S. Engenharia de Software, Mc-Graw-Hill, 6ª edição, 2006.
Sommerville, I. Engenharia de Software. Addison-Wesley, 8ª edição, 2007.
Scott, K. O Processo Unificado Explicado. Boookman, 2003.
Beck, K. Programação Extrema (XP) Explicada: Acolha as Mudanças. Bookman, 2004.
Ambler, S. W. Modelagem Ágil. Bookman, 2004.
Kruchten, P. Introdução ao RUP: Rational Unified Process. Ciência Moderna, 2003.