Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering

baitolakaike 4 views 49 slides Apr 12, 2024
Slide 1
Slide 1 of 49
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49

About This Presentation

Aula 4 e 5 RUP, Rapid Unified Process


Slide Content

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 de Vida
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?