SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Aulas 4 e 5 – RUP
Professora: Carla Ilane Moreira Bezerra
Modelo RUP
 Rational Unified Process
 Processo de engenharia de software desenvolvido pela
Rational Software
 Possui um framework de processo que pode ser
adaptado e estendido
 Desenvolvimento de software é feito de forma iterativa
 Iterações planejadas em:
 Número, duração e objetivos
 Orientado a casos de uso
Melhores Práticas
 Aplicação das melhores práticas de ES
 Uso de ferramentas para automação do processo de ES
Seis Melhores Práticas
 Desenvolver o software iterativamente
 Gerenciar requisitos
 Usar arquitetura baseada em componentes
 Modelar visualmente o software
 Verificar continuamente a qualidade do software
 Controlar as mudanças do software
Desenvolver Software Iterativamente
 Diminuição dos riscos
 Cada iteração resulta em um release executável
Porque Desenvolver Software
Iterativamente?
 É provável que um design inicial contenha falhas em
relação a seus principais requisitos
 A descoberta tardia dos defeitos de design resulta em
saturações caras e, em alguns casos, até mesmo no
cancelamento do projeto
 Riscos:
 Todo projeto tem riscos
 Quanto mais cedo identificado, mais preciso será o
planejamento
 Muitos riscos nem são descobertos até que se integre o
sistema
 É impossível prever todos os riscos
Porque Desenvolver Software
Iterativamente?
 Em um ciclo de vida em cascata, você não poderá verificar
se ficou livre de um risco até o final do ciclo
Porque Desenvolver Software
Iterativamente?
 Em um ciclo de vida iterativo, a seleção do incremento a
ser desenvolvido em uma iteração é feita com base em
uma lista dos principais riscos
 Como a iteração produz um executável testado, você
poderá verificar os riscos diminuíram
Vantagens
 Riscos reduzidos mais cedo, pois os elementos são
integrados progressivamente
 Táticas e requisitos variáveis são acomodados
 Melhoria e o refinamento do produto são facilitados,
resultando em um produto mais robusto
 Organizações podem aprender a partir dessa abordagem
e melhorar seus processos
 Capacidade de reutilização aumenta
Gerenciar Requisitos
 Abordagem sistemática para:
 Identificar
 Localizar
 Documentar
 Organizar
 Controlar
 Requisitos variáveis em um sistema
 Firmar e atualizar acordos entre o cliente e a equipe do
projeto sobre os requisitos variáveis do sistema
Vantagens
 Uma abordagem disciplinada é construída no
gerenciamento de requisitos
 Comunicações baseadas nos requisitos definidos
 Requisitos podem ser priorizados, filtrados e localizados
 É possível uma avaliação objetiva da funcionalidade e do
desempenho
 Inconsistências são detectadas mais cedo
 Com suporte de ferramentas satisfatório, é possível
fornecer um repositório para requisitos, atributos e
localização de um sistema, com links automáticos para
documentos externos
Arquitetura Baseada em Componentes
 Componentes:
 Grupos de código coesos, na forma de código fonte ou
executável, com interfaces bem definidas e comportamentos
que fornecem forte encapsulamento do conteúdo
 Substituíveis
 As arquiteturas baseadas em componentes tendem a
reduzir o tamanho efetivo e a complexidade da solução
 Mais robustas e flexíveis
Arquitetura Baseada em Componentes
 Permite obter e manter controle intelectual do projeto,
gerenciar sua complexidade e manter a integridade do sistema
 Um sistema complexo é mais que a soma de suas partes
 Mais que uma sucessão de pequenas decisões táticas
independentes
 Um sistema precisa ter uma estrutura unificadora e coerente
 Organização das partes de modo sistemático
 Fornecer regras precisas sobre como pode ser aumentado, sem
que sua complexidade cresça além da compreensão humana
 A arquitetura determina os meios para se obter melhor
comunicação e entendimento em todo o projeto
 Estabelece um conjunto de referências e um vocabulário
comuns
 Discussão sobre questões de design
Arquitetura Baseada em Componentes
 É uma base efetiva para reutilização em larga escala
 Ao articular claramente os principais componentes e as interfaces
críticas entre eles, uma arquitetura permite que você raciocine
sobre:
 Reutilização interna
 Identificação das partes comuns
 Reutilização externa
 Incorporação de componentes desenvolvidos internamente e adquiridos
prontos para serem usados
Arquitetura Baseada em Componentes
 O RUP suporta desenvolvimento baseado em
componentes destas maneiras:
 A abordagem iterativa permite identificar componentes
progressivamente e decidir quais desenvolver, quais reutilizar e
quais comprar.
 O foco na arquitetura de software permite montar a estrutura,
os componentes e como eles se integram, incluindo os
padrões e os mecanismos fundamentais através dos quais eles
interagem.
 Conceitos como pacotes, subsistemas e camadas são utilizados
durante a disciplina Análise e Design para organizar
componentes e especificar interfaces.
 Os testes são primeiramente organizados em componentes e,
em seguida, em conjuntos maiores de componentes integrados.
Modelar Visualmente o Software
 O que é modelagem visual ?
 Uso de notações gráficas e textuais, semanticamente ricas, para
capturar elementos de software
 Ex: UML
 Permite que o nível de abstração seja aumentado, mantendo
sintaxe e semântica rígidas
 Melhoria na comunicação
 Permite ao leitor raciocinar sobre o modelo
 Base não ambígua para a implementação
Modelar Visualmente o Software
17
Verificar Continuamente a Qualidade do
Software
 Verificação da Qualidade Durante o Ciclo deVida
 Avaliação da qualidade de todos os artefatos em vários pontos
do ciclo de vida do projeto
 Avaliação dos artefatos à medida que são produzidos e
concluídos
 À medida que o software executável é produzido:
 Submissão à demonstração e teste de cenários importantes em cada
iteração
 Contraste com uma abordagem mais tradicional
 Testes integrados do software para mais tarde
Verificar Continuamente a Qualidade do
Software
 Qualidade do Processo e do Produto
 Qualidade não é acrescentada ao projeto por algumas pessoas
 Responsabilidade de todos
 Qualidade do Produto
 Qualidade do produto principal que é produzido
 Ex: componentes, subsistemas, arquitetura
 Qualidade do Processo
 Grau para o qual um processo aceitável foi implementado e aderiu
durante a fabricação do produto
 Ex: plano da iteração, plano de testes, realizações de caso de uso, modelos
Controlar Mudanças do Software
 Desafio:
 Desenvolvendo sistemas intensivos de software
 Lidar com vários desenvolvedores
 Diferentes equipes
 Diferentes locais
 Trabalhando juntos em várias iterações, releases, produtos e
plataformas
 Ausência de controle disciplinado
 Caos
 Gerência de Configuração
Controlar Mudanças do Software
 Gerenciamento de mudanças
 Mais do que simplesmente fazer:
 Check-in e Check-out (ClearCase)
 Commit (CVS)
 Inclui gerenciamento de:
 Espaços de trabalho
 Integração
 Builds
 Auditorias
 Desenvolvimento paralelo
Controlar Mudanças do Software
 Coordenação de Atividades e Artefatos
 Procedimentos que podem ser repetidos para o
gerenciamento de mudanças e artefatos
 Permite uma melhor alocação de recursos
 Monitoramento das mudanças contínuo
 Coordenação de Iterações e Releases
 Estabelecimento e liberação de uma baseline testada na
conclusão de cada iteração
 Manutenção da rastreabilidade entre os elementos de cada
release e releases paralelos
Controlar Mudanças do Software
 Controle de Mudanças no Software
 Soluções para problemas de desenvolvimento de software:
 Fluxo de trabalho da mudança de requisitos é definido e pode ser
repetido
 Solicitações de mudança facilitam a comunicação clara
 Espaços de trabalho isolados reduzem a interferência entre membros
da equipe que trabalham em paralelo
 Estatísticas de taxa de mudanças fornecem métricas satisfatórias para
avaliar objetivamente o status do projeto
 Espaços de trabalho contêm todos os artefatos, o que facilita a
consistência
 Propagação da mudança pode ser avaliada e controlada
 Mudanças podem ser mantidas em um sistema robusto e
personalizável
Orientado a Casos de Uso
 Caso de Uso
 Seqüência de ações executadas por um ou mais atores e pelo
próprio sistema para produzir resultado de valor para um ou
mais atores
 Conduzem o desenvolvimento, dirigindo as ações desde a
aquisição de requisitos até a aceitação do código
Orientado a Caso de Uso
25
Orientado a Casos de Uso
 Caso de Uso
 Adequados para capturar requisitos e dirigir análise, projeto,
implementação:
 Expressos sob a ótica dos usuários que se identificam no texto dos
casos de uso
 Fácil entendimento pelo usuário
 Contratos entre desenvolvedores e clientes que concordam com o
sistema a ser construído
 Permitem rastreamento de requisitos a partir dos modelos
posteriormente construídos a partir deles
 Permitem decomposição dos requisitos para alocação de trabalho a
equipes e facilitam a gerência de projeto
Orientado a Casos de Uso
 Base para a modelagem do sistema
Centrado na Arquitetura
 Arquitetura
 Visão comum que os membros da equipe devem compartilhar
a fim de que o sistema produzido seja:
 Robusto
 Flexível
 Escalável
 Preço adequado
Centrado em arquitetura
29
Modelo RUP
 Objetivos
 Provê um guia para as atividades da equipe de
desenvolvimento
 Especifica quais artefatos devem ser desenvolvidos e quando
 Direcionam as tarefas dos desenvolvedores da equipe
 Oferece critérios para monitorar e mensurar as atividades e o
produto do projeto
Histórico
31
Modelo RUP
32
Modelo RUP
 O RUP tem duas dimensões:
 Eixo horizontal:
 Representa o tempo e mostra os aspectos do ciclo de vida do
processo à medida que se desenvolve
 Representa o aspecto dinâmico do processo quando ele é aprovado e
é expressa em termos de fases, iterações e marcos
 Eixo vertical:
 Representa as disciplinas, que agrupam as atividades de maneira lógica,
por natureza
 Representa o aspecto estático do processo, como ele é descrito em
termos de componentes, disciplinas, atividades, fluxos de trabalho,
artefatos e papéis do processo
Modelo RUP
 Gráfico das Baleias
 Mostra como a ênfase varia através do tempo
 Exemplo
 Nas iterações iniciais, dedicamos mais tempo aos requisitos
 Já nas iterações posteriores, gastamos mais tempo com
implementação
 Durante todas as iterações gerenciamos projeto de forma mais ou
menos uniforme
Modelo RUP
Modelo RUP
 Concepção
 Ênfase no escopo do projeto
 Elaboração
 Ênfase na arquitetura
 Construção
 Ênfase no Desenvolvimento do sistema
 Transição
 Ênfase na Implantação do sistema
Modelo RUP
 Cada fase é dividida em iterações
 Cada fase é:
 Planejada
 Realiza uma seqüência de atividades distintas
 Elicitação de requisitos
 Análise e projeto
 Implementação
 Testes
 Resulta em uma versão executável do sistema
 Avaliada segundo critérios de sucesso previamente definidos
Conceitos Chaves
Papéis
 Papéis são desempenhados por:
 Pessoa
 Grupo de pessoas (equipe)
 Um membro da equipe do projeto geralmente
desempenha muitos papéis distintos
 Papéis não são pessoas
 Comportamentos
 Responsabilidades
 Papéis Externos
 Exemplo
 Envolvido do projeto ou produto que está sendo desenvolvido
Atividades
 São atividades conduzidas em todas as fases de um ciclo,
variando de intensidade conforme a fase
 Dão origem aos artefatos do projeto
 Em cada fase são desenvolvidas várias atividades do
processo
 Modelagem de negócio
 Levantamento de requisitos
 Análise e projeto
 Implementação
 Testes
 …
Papéis e Atividades
 Conjunto de atividades coerentes por eles executadas
 Relacionadas
 Combinadas
 Funcionalidade
Artefatos
 Produtos de trabalho
 Finais ou intermediários
 Produzidos e usados durante os projetos
 Capturam e transmitem informações do projeto
 Pode ser:
 Documento
 Caso de Negócio ou Documento de Arquitetura de Software
 Modelo
 Modelo de Casos de Uso ou o Modelo de Design
 Elemento do modelo
 Classe ou um subsistema
Disciplinas
 Mostra todas as atividades que devem ser realizadas para
produzir um determinado conjunto de artefatos
 Nível geral
 Resumo de todos os papéis, atividades e artefatos envolvidos
 Nível detalhado
 Colaboração entre papéis
 Utilização e produção de artefatos
Disciplinas
 Gerenciamento
de Projetos
Vantagens do RUP
 Vantagens:
 Permite e encoraja o feedback do usuário, elicitando os
requisitos reais do sistema
 Inconsistências entre requisitos, projeto e implementação
podem ser detectados rapidamente
 Divisão da carga de trabalho por todo o ciclo de vida
 Compartilhamento de lições aprendidas, melhorando
continuamente o processo
 Evidências concretas do andamento do projeto podem ser
oferecidas durante todo o ciclo de vida
Ferramentas
46
Exercícios
 O que é o RUP ?
 Quais são as seis práticas nas quais o RUP se apóia ?
 Descreva cada uma das seis práticas nas quais o RUP se apóia
 Qual a relação do desenvolvimento incremental e a redução
de riscos?
 Qual a importância do gerenciamento de requisitos ?
 Quais as principais desafios a serem trabalhados num controle
de mudanças de software?
 Descreva para que servem as duas dimensões nas quais o RUP
se divide
 Quais as quatro fases básicas do RUP ? Descreva cada uma
delas
 Qual o relacionamento entre papéis, atividades e artefatos no
RUP?
 Quais são as disciplinas do RUP ? Descreva cada uma delas
Referências Bibliográficas
▪ http://www.wthreex.com/rup/portugues/index.htm
▪ R.S. Pressman, Engenharia de Software, Rio de Janeiro: McGraw Hill, 5ª edição, 2002
▪ I. Sommerville, Engenharia de Software, São Paulo: Addison-Wesley, 9ª edição, 2011
▪ Engenharia de Software - Notas de Aula - Ricardo de Almeida Falbo - UFES -
Universidade Federal do Espírito Santo
▪ Introdução à Engenharia de Software e Modelos de Processos de Software - Engenharia
de Software - Profa. Inês A. G. Boaventura
▪ Pós Graduação - Engenharia de Software - Ana Candida Natali - COPPE/UFRJ -
Programa de Engenharia de Sistemas e Computação - FAPEC / FAT
▪ Princípios de Análise e Projeto Orientados a Objetos com UML - Prof. Renata Rodrigues
de Ávila - Adaptação das Notas de Aula do Prof. Eduardo Bezerra - Editora CAMPUS
▪ FACULDADE QI - Graduação Tecnológica em Desenvolvimento de Sistemas - Disciplina
de Engenharia de Software - André Tocchetto
▪ Introdução à Engenharia de Software e Modelos de Processos de Software - Engenharia
de Software - Profa. Inês A.G.Boaventura
▪ Engenharia de Software II - Bianca Zadrozny - http://www.ic.uff.br/~bianca/engsoft2/
▪ Modelos de Processo de Software - Escola Técnica Federal de Palmas - Análise e
Projeto de Sistemas Orientados a Objetos - Prof. Gerson P. Focking
Dúvidas?

Mais conteúdo relacionado

Semelhante a Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering

Semelhante a Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering (20)

Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento Software
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Erika questionario pt 1 (Eng Software III).
Erika questionario pt 1 (Eng Software III).Erika questionario pt 1 (Eng Software III).
Erika questionario pt 1 (Eng Software III).
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)
 
ALM com VSTS (v2)
ALM com VSTS (v2)ALM com VSTS (v2)
ALM com VSTS (v2)
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Aula01 introducao
Aula01 introducaoAula01 introducao
Aula01 introducao
 
Introdução Qualidade de Software
Introdução Qualidade de SoftwareIntrodução Qualidade de Software
Introdução Qualidade de Software
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 

Último

10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3filiperigueira1
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 

Último (6)

10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 

Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering

  • 1. Aulas 4 e 5 – RUP Professora: Carla Ilane Moreira Bezerra
  • 2. Modelo RUP  Rational Unified Process  Processo de engenharia de software desenvolvido pela Rational Software  Possui um framework de processo que pode ser adaptado e estendido  Desenvolvimento de software é feito de forma iterativa  Iterações planejadas em:  Número, duração e objetivos  Orientado a casos de uso
  • 3. Melhores Práticas  Aplicação das melhores práticas de ES  Uso de ferramentas para automação do processo de ES
  • 4. Seis Melhores Práticas  Desenvolver o software iterativamente  Gerenciar requisitos  Usar arquitetura baseada em componentes  Modelar visualmente o software  Verificar continuamente a qualidade do software  Controlar as mudanças do software
  • 5. Desenvolver Software Iterativamente  Diminuição dos riscos  Cada iteração resulta em um release executável
  • 6. Porque Desenvolver Software Iterativamente?  É provável que um design inicial contenha falhas em relação a seus principais requisitos  A descoberta tardia dos defeitos de design resulta em saturações caras e, em alguns casos, até mesmo no cancelamento do projeto  Riscos:  Todo projeto tem riscos  Quanto mais cedo identificado, mais preciso será o planejamento  Muitos riscos nem são descobertos até que se integre o sistema  É impossível prever todos os riscos
  • 7. Porque Desenvolver Software Iterativamente?  Em um ciclo de vida em cascata, você não poderá verificar se ficou livre de um risco até o final do ciclo
  • 8. Porque Desenvolver Software Iterativamente?  Em um ciclo de vida iterativo, a seleção do incremento a ser desenvolvido em uma iteração é feita com base em uma lista dos principais riscos  Como a iteração produz um executável testado, você poderá verificar os riscos diminuíram
  • 9. Vantagens  Riscos reduzidos mais cedo, pois os elementos são integrados progressivamente  Táticas e requisitos variáveis são acomodados  Melhoria e o refinamento do produto são facilitados, resultando em um produto mais robusto  Organizações podem aprender a partir dessa abordagem e melhorar seus processos  Capacidade de reutilização aumenta
  • 10. Gerenciar Requisitos  Abordagem sistemática para:  Identificar  Localizar  Documentar  Organizar  Controlar  Requisitos variáveis em um sistema  Firmar e atualizar acordos entre o cliente e a equipe do projeto sobre os requisitos variáveis do sistema
  • 11. Vantagens  Uma abordagem disciplinada é construída no gerenciamento de requisitos  Comunicações baseadas nos requisitos definidos  Requisitos podem ser priorizados, filtrados e localizados  É possível uma avaliação objetiva da funcionalidade e do desempenho  Inconsistências são detectadas mais cedo  Com suporte de ferramentas satisfatório, é possível fornecer um repositório para requisitos, atributos e localização de um sistema, com links automáticos para documentos externos
  • 12. Arquitetura Baseada em Componentes  Componentes:  Grupos de código coesos, na forma de código fonte ou executável, com interfaces bem definidas e comportamentos que fornecem forte encapsulamento do conteúdo  Substituíveis  As arquiteturas baseadas em componentes tendem a reduzir o tamanho efetivo e a complexidade da solução  Mais robustas e flexíveis
  • 13. Arquitetura Baseada em Componentes  Permite obter e manter controle intelectual do projeto, gerenciar sua complexidade e manter a integridade do sistema  Um sistema complexo é mais que a soma de suas partes  Mais que uma sucessão de pequenas decisões táticas independentes  Um sistema precisa ter uma estrutura unificadora e coerente  Organização das partes de modo sistemático  Fornecer regras precisas sobre como pode ser aumentado, sem que sua complexidade cresça além da compreensão humana  A arquitetura determina os meios para se obter melhor comunicação e entendimento em todo o projeto  Estabelece um conjunto de referências e um vocabulário comuns  Discussão sobre questões de design
  • 14. Arquitetura Baseada em Componentes  É uma base efetiva para reutilização em larga escala  Ao articular claramente os principais componentes e as interfaces críticas entre eles, uma arquitetura permite que você raciocine sobre:  Reutilização interna  Identificação das partes comuns  Reutilização externa  Incorporação de componentes desenvolvidos internamente e adquiridos prontos para serem usados
  • 15. Arquitetura Baseada em Componentes  O RUP suporta desenvolvimento baseado em componentes destas maneiras:  A abordagem iterativa permite identificar componentes progressivamente e decidir quais desenvolver, quais reutilizar e quais comprar.  O foco na arquitetura de software permite montar a estrutura, os componentes e como eles se integram, incluindo os padrões e os mecanismos fundamentais através dos quais eles interagem.  Conceitos como pacotes, subsistemas e camadas são utilizados durante a disciplina Análise e Design para organizar componentes e especificar interfaces.  Os testes são primeiramente organizados em componentes e, em seguida, em conjuntos maiores de componentes integrados.
  • 16. Modelar Visualmente o Software  O que é modelagem visual ?  Uso de notações gráficas e textuais, semanticamente ricas, para capturar elementos de software  Ex: UML  Permite que o nível de abstração seja aumentado, mantendo sintaxe e semântica rígidas  Melhoria na comunicação  Permite ao leitor raciocinar sobre o modelo  Base não ambígua para a implementação
  • 17. Modelar Visualmente o Software 17
  • 18. Verificar Continuamente a Qualidade do Software  Verificação da Qualidade Durante o Ciclo deVida  Avaliação da qualidade de todos os artefatos em vários pontos do ciclo de vida do projeto  Avaliação dos artefatos à medida que são produzidos e concluídos  À medida que o software executável é produzido:  Submissão à demonstração e teste de cenários importantes em cada iteração  Contraste com uma abordagem mais tradicional  Testes integrados do software para mais tarde
  • 19. Verificar Continuamente a Qualidade do Software  Qualidade do Processo e do Produto  Qualidade não é acrescentada ao projeto por algumas pessoas  Responsabilidade de todos  Qualidade do Produto  Qualidade do produto principal que é produzido  Ex: componentes, subsistemas, arquitetura  Qualidade do Processo  Grau para o qual um processo aceitável foi implementado e aderiu durante a fabricação do produto  Ex: plano da iteração, plano de testes, realizações de caso de uso, modelos
  • 20. Controlar Mudanças do Software  Desafio:  Desenvolvendo sistemas intensivos de software  Lidar com vários desenvolvedores  Diferentes equipes  Diferentes locais  Trabalhando juntos em várias iterações, releases, produtos e plataformas  Ausência de controle disciplinado  Caos  Gerência de Configuração
  • 21. Controlar Mudanças do Software  Gerenciamento de mudanças  Mais do que simplesmente fazer:  Check-in e Check-out (ClearCase)  Commit (CVS)  Inclui gerenciamento de:  Espaços de trabalho  Integração  Builds  Auditorias  Desenvolvimento paralelo
  • 22. Controlar Mudanças do Software  Coordenação de Atividades e Artefatos  Procedimentos que podem ser repetidos para o gerenciamento de mudanças e artefatos  Permite uma melhor alocação de recursos  Monitoramento das mudanças contínuo  Coordenação de Iterações e Releases  Estabelecimento e liberação de uma baseline testada na conclusão de cada iteração  Manutenção da rastreabilidade entre os elementos de cada release e releases paralelos
  • 23. Controlar Mudanças do Software  Controle de Mudanças no Software  Soluções para problemas de desenvolvimento de software:  Fluxo de trabalho da mudança de requisitos é definido e pode ser repetido  Solicitações de mudança facilitam a comunicação clara  Espaços de trabalho isolados reduzem a interferência entre membros da equipe que trabalham em paralelo  Estatísticas de taxa de mudanças fornecem métricas satisfatórias para avaliar objetivamente o status do projeto  Espaços de trabalho contêm todos os artefatos, o que facilita a consistência  Propagação da mudança pode ser avaliada e controlada  Mudanças podem ser mantidas em um sistema robusto e personalizável
  • 24. Orientado a Casos de Uso  Caso de Uso  Seqüência de ações executadas por um ou mais atores e pelo próprio sistema para produzir resultado de valor para um ou mais atores  Conduzem o desenvolvimento, dirigindo as ações desde a aquisição de requisitos até a aceitação do código
  • 25. Orientado a Caso de Uso 25
  • 26. Orientado a Casos de Uso  Caso de Uso  Adequados para capturar requisitos e dirigir análise, projeto, implementação:  Expressos sob a ótica dos usuários que se identificam no texto dos casos de uso  Fácil entendimento pelo usuário  Contratos entre desenvolvedores e clientes que concordam com o sistema a ser construído  Permitem rastreamento de requisitos a partir dos modelos posteriormente construídos a partir deles  Permitem decomposição dos requisitos para alocação de trabalho a equipes e facilitam a gerência de projeto
  • 27. Orientado a Casos de Uso  Base para a modelagem do sistema
  • 28. Centrado na Arquitetura  Arquitetura  Visão comum que os membros da equipe devem compartilhar a fim de que o sistema produzido seja:  Robusto  Flexível  Escalável  Preço adequado
  • 30. Modelo RUP  Objetivos  Provê um guia para as atividades da equipe de desenvolvimento  Especifica quais artefatos devem ser desenvolvidos e quando  Direcionam as tarefas dos desenvolvedores da equipe  Oferece critérios para monitorar e mensurar as atividades e o produto do projeto
  • 33. Modelo RUP  O RUP tem duas dimensões:  Eixo horizontal:  Representa o tempo e mostra os aspectos do ciclo de vida do processo à medida que se desenvolve  Representa o aspecto dinâmico do processo quando ele é aprovado e é expressa em termos de fases, iterações e marcos  Eixo vertical:  Representa as disciplinas, que agrupam as atividades de maneira lógica, por natureza  Representa o aspecto estático do processo, como ele é descrito em termos de componentes, disciplinas, atividades, fluxos de trabalho, artefatos e papéis do processo
  • 34. Modelo RUP  Gráfico das Baleias  Mostra como a ênfase varia através do tempo  Exemplo  Nas iterações iniciais, dedicamos mais tempo aos requisitos  Já nas iterações posteriores, gastamos mais tempo com implementação  Durante todas as iterações gerenciamos projeto de forma mais ou menos uniforme
  • 36. Modelo RUP  Concepção  Ênfase no escopo do projeto  Elaboração  Ênfase na arquitetura  Construção  Ênfase no Desenvolvimento do sistema  Transição  Ênfase na Implantação do sistema
  • 37. Modelo RUP  Cada fase é dividida em iterações  Cada fase é:  Planejada  Realiza uma seqüência de atividades distintas  Elicitação de requisitos  Análise e projeto  Implementação  Testes  Resulta em uma versão executável do sistema  Avaliada segundo critérios de sucesso previamente definidos
  • 39. Papéis  Papéis são desempenhados por:  Pessoa  Grupo de pessoas (equipe)  Um membro da equipe do projeto geralmente desempenha muitos papéis distintos  Papéis não são pessoas  Comportamentos  Responsabilidades  Papéis Externos  Exemplo  Envolvido do projeto ou produto que está sendo desenvolvido
  • 40. Atividades  São atividades conduzidas em todas as fases de um ciclo, variando de intensidade conforme a fase  Dão origem aos artefatos do projeto  Em cada fase são desenvolvidas várias atividades do processo  Modelagem de negócio  Levantamento de requisitos  Análise e projeto  Implementação  Testes  …
  • 41. Papéis e Atividades  Conjunto de atividades coerentes por eles executadas  Relacionadas  Combinadas  Funcionalidade
  • 42. Artefatos  Produtos de trabalho  Finais ou intermediários  Produzidos e usados durante os projetos  Capturam e transmitem informações do projeto  Pode ser:  Documento  Caso de Negócio ou Documento de Arquitetura de Software  Modelo  Modelo de Casos de Uso ou o Modelo de Design  Elemento do modelo  Classe ou um subsistema
  • 43. Disciplinas  Mostra todas as atividades que devem ser realizadas para produzir um determinado conjunto de artefatos  Nível geral  Resumo de todos os papéis, atividades e artefatos envolvidos  Nível detalhado  Colaboração entre papéis  Utilização e produção de artefatos
  • 45. Vantagens do RUP  Vantagens:  Permite e encoraja o feedback do usuário, elicitando os requisitos reais do sistema  Inconsistências entre requisitos, projeto e implementação podem ser detectados rapidamente  Divisão da carga de trabalho por todo o ciclo de vida  Compartilhamento de lições aprendidas, melhorando continuamente o processo  Evidências concretas do andamento do projeto podem ser oferecidas durante todo o ciclo de vida
  • 47. Exercícios  O que é o RUP ?  Quais são as seis práticas nas quais o RUP se apóia ?  Descreva cada uma das seis práticas nas quais o RUP se apóia  Qual a relação do desenvolvimento incremental e a redução de riscos?  Qual a importância do gerenciamento de requisitos ?  Quais as principais desafios a serem trabalhados num controle de mudanças de software?  Descreva para que servem as duas dimensões nas quais o RUP se divide  Quais as quatro fases básicas do RUP ? Descreva cada uma delas  Qual o relacionamento entre papéis, atividades e artefatos no RUP?  Quais são as disciplinas do RUP ? Descreva cada uma delas
  • 48. Referências Bibliográficas ▪ http://www.wthreex.com/rup/portugues/index.htm ▪ R.S. Pressman, Engenharia de Software, Rio de Janeiro: McGraw Hill, 5ª edição, 2002 ▪ I. Sommerville, Engenharia de Software, São Paulo: Addison-Wesley, 9ª edição, 2011 ▪ Engenharia de Software - Notas de Aula - Ricardo de Almeida Falbo - UFES - Universidade Federal do Espírito Santo ▪ Introdução à Engenharia de Software e Modelos de Processos de Software - Engenharia de Software - Profa. Inês A. G. Boaventura ▪ Pós Graduação - Engenharia de Software - Ana Candida Natali - COPPE/UFRJ - Programa de Engenharia de Sistemas e Computação - FAPEC / FAT ▪ Princípios de Análise e Projeto Orientados a Objetos com UML - Prof. Renata Rodrigues de Ávila - Adaptação das Notas de Aula do Prof. Eduardo Bezerra - Editora CAMPUS ▪ FACULDADE QI - Graduação Tecnológica em Desenvolvimento de Sistemas - Disciplina de Engenharia de Software - André Tocchetto ▪ Introdução à Engenharia de Software e Modelos de Processos de Software - Engenharia de Software - Profa. Inês A.G.Boaventura ▪ Engenharia de Software II - Bianca Zadrozny - http://www.ic.uff.br/~bianca/engsoft2/ ▪ Modelos de Processo de Software - Escola Técnica Federal de Palmas - Análise e Projeto de Sistemas Orientados a Objetos - Prof. Gerson P. Focking