Metodologia (R)UP + UML

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

Programa das Aulas 20/09/05 - Apresentação da disciplina
Metodologia (R)UP + UML
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
UML no CICLO de DESENVOLVIMENTO
Rational Unified Process
Engenharia de Software
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Engenharia de Software
Rational Unified Process(RUP)
Valéria Maria Lauande Março/2010
Engenharia de Software Professor Sandro de Paiva Carvalho.
INTRODUÇÃO A INFORMÁTICA
RUP - Rational Unified Process
Metodologia de Desenvolvimento de Software
Prof. Aruanda Simões - Análise e Projeto OO Processo de Desenvolvimento n As grandes fases: –Planejamento e elaboração –Construção –Implantação Sistema.
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Processo Desenvolvimento de Software Tradicional
FUNÇÃO MODULAR.
© Nabor C. Mendonça Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto, e Processo.
Engenharia de Requisitos
RUP: Fluxo de Análise e Projeto
Como Desenvolver Sistemas de Informação
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
FDD.
Análise e Gerenciamento de Requisitos com Casos de Uso
Gerenciamento do Escopo
Classes e objetos Modelagem
Provas de Concursos Anteriores
Análise de Casos de Uso Alexandre Motnteiro.
Rational Unified Process
Hamburgo, Alemanha Definir o caminho que irá permitir a Lions Clubs International alcançar o seu potencial pleno como organização.
Rational Unified Process
Processo de Software Prof. Dr. rer. nat. Daniel D. Abdala
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Visão Geral do RUP.
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Projeto de Sistemas de Software
Processos de Desenvolvimento de Software – Parte 2
Coordenação Geral de Ensino da Faculdade
Análise e Projeto de Sistemas
Planejamento e Gerenciamento
Projeto de Banco de Dados
© Nabor C. Mendonça Metodologia (R)UP + UML.
Análise e Desenvolvimento de Software
Técnicas e Projeto de Sistemas
Fase de Concepção (Início, Planejamento)
PSBD II Projeto de Sistemas de Banco de Dados II
Máquina de Turing Universal
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
Bruno Silva Desenvolvido a partir de
O Processo Unificado (UP)
RUP - Cap. 5 – Processo Iterativo e Incremental
Processos de Software.
© Nabor C. Mendonça Análise e Design Orientados a Objeto com a metodologia (R)UP + UML.
Gestão de projetos de Software GTI-16
Engenharia de Software
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Fase de Concepção (Início, Planejamento)
Fase de Concepção (Início, Planejamento)
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Metodologia (R)UP + UML © Nabor C. Mendonça 2001

Roteiro I. A Motivação para o Modelo Iterativo e a Tecnologia de Objetos II. UML: Visão Geral III. (R)UP + UML em Detalhes

I. A Motivação para o Modelo Iterativo e a Tecnologia de Objetos Baseado em uma apresentação de Craig Larman © Nabor C. Mendonça 2001

Software — Um Investimento de Risco Resultado de projetos de software realizados nos EUA no início da década de 90 Todos baseados no modelo cascata 53% custaram até 200% acima da estimativa inicial Estimou-se que $81 bilhões foram gastos em projetos fracassados só no ano de 1995 Inacabados 30% Concluídos 70% Fonte: Standish Report, 1994

O Que Deu Errado? O modelo cascata é fortemente baseado em suposições oriundas dos processos de engenharia convencionais Algumas dessas suposições não foram confirmadas na prática Todos os requisitos podem ser precisamente identificados antes do desenvolvimento Os requisitos são estáveis O design pode ser feito totalmente antes da implementação

Imprecisão dos Requisitos Estudo publicado por Capers Jones em 1987, baseado em 6.700 sistemas 60 50 40 % de Req's Problemáticos 30 20 10 10 100 1000 10000 100000 Tamanho do Sistema de Software em Pontos por Função

Instabilidade dos Requisitos O mercado muda — constantemente As tecnologias mudam — inevitavelmente A vontade e objetivos dos usuários mudam — imprevisivelmente

Análise + Design Completos antes da Implementação? Pergunte a qualquer programador Requisitos são incompletos e instáveis Uma especificação completa tem que ser tão detalhada quanto o próprio código Desenvolver software é uma atividade intrinsecamente “difícil” Discover Magazine, 1999: Software caracterizado como a mais complexa “máquina” que a humanidade já construiu

Esforço — O Perigo dos Passos Largos 1 20 267 4362 66690 10000 20000 30000 40000 50000 60000 70000 80000 10 100 1000 100000 Tamanho do Sistema em Pontos por Função Pessoas / Mês Fonte: Applied Software Measurement, Capers Jones, 1997

Produtividade — O Perigo dos Passos Largos 4500 4000 3500 3000 2500 LOC/Pessoa por Mês 2000 1500 1000 500 1 10 100 1000 Tamanho do Sistema em KLOC Fonte: Measures For Excellence, Putnam, 1992. Baseado em 1.600 sistemas

A Voz da Experiência e da Pesquisa Em 1994, o DoD (EUA) parou de contratar projetos baseado no modelo cascata, por causa de fracassos abismais Eles agora incentivam um modelo iterativo Virtualmente todos os trabalhos na área publicados nos últimos 5 anos defendem a substituição do modelo cascata por um modelo iterativo The Unified Software Development Process Applying UML and Patterns Software Project Management Succeeding with Objects Object Solutions Surviving Object-oriented Projects …

Portanto...

Usem o Modelo Iterativo! Passos curtos, interação (feedback) e refinamento Iterativo, incremental, com intervalos de tempo (ciclos) pré-estabelecidos Iteração Iteração ... 1 2 2 a 4 semanas 2 a 4 semanas Codificação, Teste, Codificação, Teste, Análise Projeto Análise Projeto Integração Integração

Um Processo Iterativo Popular — RUP Atenção: as fases não são iterações!

O Custo da Mudança Planos estratégicos e racionais de desenvolvimento baseiam-se no custo total do sistema, não apenas nos custos de desenvolvimento Outros Código Teste Projeto Revisão & Manutenção Documentação Fonte: DP Budget, Vol. 7, No. 12, Dez. 1988

O Custo da Mudança Estudo com projetos de software do governo Americano Usado depois de alterações 3% Usado tal como entregue 2% Usado mas bastante alterado ou em seguida abandonado 19% Entregue mas nunca usado satisfatoriamente 47% Pago mas não entregue 29% Fonte: US Government Accounting Office, Report FGMSD-80-4

Regras de Negócio mudam na taxa de 8% ao mês! O Custo da Mudança Um estudo da AT&T indicou que, na média, Regras de Negócio mudam na taxa de 8% ao mês!

Por que a Tecnologia de Objeto? Os principais problemas do software hoje são Diminuir o custo e o tempo da mudança Aumentar a capacidade e facilidade de adaptação Fato: Objetos são especialmente bons para Reduzir o tempo necessário para adaptar um sistema existente (reação mais rápida à mudanças no seu ambiente de negócio) Reduzir o esforço, a complexidade e os custos associados à mudança Em suma: Flexibilidade

Por Que a Tecnologia de Objeto? (2) Segundo um estudo corporativo de 1997, as razões prioritárias para se adotar a tecnologia de objeto (TO) são: 1. Capacidade de aproveitar novas plataformas e ferramentas 2. Facilidade de manutenção 3. Economia de custos 4. Desenvolvimento de aplicações lucrativas 5. Encapsulamento das aplicações existentes 6. Melhores interfaces 7. Maior produtividade 8. Participação no "futuro da computação" 9. Prova da capacidade de usar a tecnologia 10. Rápido desenvolvimento de aplicações estratégicas 11. Reuso de software Notem a alta prioridade Notem a baixa prioridade

Por que a Tecnologia de Objeto? (3) Ataca complexidade elegantemente e gera fácil adaptabilidade . . . Produtividade Reuso “O valor da TO (APOO, POO) está fundamentalmente na sua capacidade de lidar com problemas complexos e criar sistemas compreensíveis e gerenciáveis, que podem acompanhar uma complexidade crescente e ser facilmente adaptáveis—se habilidosamente projetados.” Craig Larman A produtividade se sobressai nas fases de manutenção ou modificação do sistema — freqüentemente com mudanças profundamente mais rápidas, se o sistema foi habilidosamente projetado.

II. UML: uma Visão Geral Grady Booch © Nabor C. Mendonça 2001

A Importância da UML É um padrão, de fato Cobre as atividades de análise e design de um processo de desenvolvimento orientado a objeto de software É baseada na experiência e necessidades dos usuários de todos os tipos Implementada em muitas ferramentas

Modelos, Visões e Diagramas A model is a complete description of a system from a particular perspective State Diagrams Class Use Case Diagrams State Diagrams Object Use Case Diagrams Sequence Scenario Diagrams Collaboration State Diagrams Component Models Scenario Diagrams Statechart Component Diagrams Deployment Activity Diagrams

Diagramas Um diagrama é uma visão segundo um modelo Apresentado de modo conveniente a um tipo de usuário (“stakeholder”) Dá uma visão parcial do sistema É semanticamente consistente com outras visões Na UML, existem 9 diagramas Visões estáticas: use case, classe, objeto, componente, deployment Visões dinâmicas: seqüência, colaboração, diagrama de estado, diagrama de atividade

III. A Metodologia em Detalhes © Nabor C. Mendonça 2001

O Conceito de Iteração Um mini projeto com duração pequena (por exemplo, 1 mês), com resultados testados e integrados Cada iteração inclui seus próprios requisitos de análise, design, implementação e teste O final de uma iteração é uma peça correta  release  de software (passou por análise, design, implementação e testes)

O Conceito de Iteração (2) -- Desenvolvimento Iterativo e Incremental --

O Conceito de Iteração (3) As iterações de maior risco são atacadas primeiro Diretamente relacionadas com o negócio Riscos potencialmente altos no início do desenvolvimento As iterações de menor risco são deixadas para o final Iterações não diretamente relacionadas com o negócio Riscos baixos à medida que se aproxima do final

O Conceito de Iteração (4) -- Risco Potencial Pequeno, no Final --

O Conceito de Iteração (5) Feedback (interatividade) e adaptação iterativos conduzem ao sistema desejado A instabilidade dos requisitos e do design diminuem com as últimas iterações

O Conceito de Iteração (6)

Características Gerais do Processo Iterativo e incremental Grandes atividades (disciplines) de uma iteração Análise Projeto Implementação Validação: Teste & Integração Todos os artefatos de análise e design são formalmente descritos usando a linguagem UML

Características Gerais do Processo (2) Fases do processo Início ou Planejamento (Inception) Elaboração Construção Transição Uma fase (exceto a primeira) é composta de diversas iterações

Características Gerais do Processo (3)

Fase de Planejamento 2. Criar Rel. Prel. de Investigação 3. Definir Requisitos 9. Det. das Demais Fases 7. Definir Mod. Conc. Inicial c 4. Reg. Termos no Glossário a 6. Definir Casos de Uso 1. Definir Plano Inicial 5. Implementar Protótipo b, d a. contínua b. opcional c. adiável d. ordem variada 8. Definir Arquit. a, c, d Notas Elaboração Planeja- mento Construção

Fase de Planejamento (2) 1. Plano Inicial (Business Case)

Fase de Planejamento (3) 2. Criar relatório preliminar de investigação Motivação, alternativas, necessidades de negócio 3. Definir requisitos iniciais Especificação declarativa dos requisitos 4. Registrar termos no glossário Dicionário de termos, regras, restrições 5. Implementar protótipo Protótipo do sistema para ajudar na definição dos requisitos

Fase de Planejamento (4) 6. Definir use cases iniciais Descrição em prosa estruturada dos processos de negócio 7. Definir modelo conceitual inicial Objetos do domínio e seus relacionamentos 8. Definir arquitetura inicial Principais subsistemas e suas dependências 9. Detalhamento das Demais Fases Obs.: Atividades não seqüenciais

Fase de Planejamento (5) Detalhamento das Fases Iterações (ou definição dos incrementos) Requisitos: funções que o sistema deve oferecer Requisitos Funcionais Diretamente relacionados com o negócio Requisitos Não-funcionais Questões de desempenho Emprego de certas tecnologias . . .

Fase de Planejamento (6) Modelo do Negócio (ou do Domínio), ou Modelo Conceitual Principais Entidades ou Conceitos Relacionamentos entre as Entidades Um Diagrama de Classe Simplificado

Fase de Elaboração Planeja- mento Elaboração Construção Iteração 1 ... Refin. Plano Sinc. Artefatos Análise Design Impl. Teste

Fase de Elaboração (2) Iterações Atividades típicas de cada iteração: Construção progressiva do sistema até atingir uma versão que satisfaça corretamente os requisitos funcionais Atividades típicas de cada iteração: 1. Refinar plano das fases 2. Sincronizar artefatos 3. Análise 4. Projeto 5. Implementação 6. Teste

Fase de Elaboração (3) Cada ciclo de desenvolvimento implementa um conjunto reduzido de requisitos, adicionando novas funções ao sistema Crescimento incremental, através de expansões e refinamentos sucessivos Ciclos com tempo fixo de duas a oito semanas Vantagens: Evita complexidade excessiva Antecipa feedback dos usuários

Fase de Construção Como a fase de Elaboração, mas cuidando apenas de requisitos não-funcionais Obs: A fase de construção não é foco da disciplina

Artefatos Toda iteração deve produzir artefatos Artefato é uma peça de informação que é produzida, modificada ou utilizada por um processo Artefato UML: um artefato formalmente definido segundo a sintaxe UML

Artefatos (2) Atividades Artefato UML Iníc. Elab. E1.E3 Análise Iteração Iníc. Elab. E1.E3 Análise Use Case ------------------------ Diagrama de Seqüência do Sistema (System Sequence Diagram) Modelo Conceitual Contrato i r Design Diagrama de Interação entre Objetos (Object Sequence Diagram; Object Collaboration Diagram) Diagrama de Classe Detalhado i-r i = início r = refinamento

Um Pequeno Exemplo Ilustrativo (Parcial) Use Case (extremamente simples, e apresentado de maneira informal)  Jogo de Dados : no jogo de dados, um jogador lança dois dados; se a soma dos valores de face for 7, ele ganha; caso contrário, ele perde. Está implícito que: um jogador joga jogo o jogo inclui dois valores de face

-- Modelo Conceitual (Versão #1) -- Exemplo (2) -- Modelo Conceitual (Versão #1) --

-- Modelo Conceitual (Versão #2) -- Exemplo (3) Lança JogoDeDados Dado 1 2 Não estamos interessados na entidade Jogador Jogador é apenas um usuário, ou ator -- Modelo Conceitual (Versão #2) --

-- Diagrama de Interação entre Objetos -- Exemplo (4) Jogador Do jeito em que está, o jogador não sabe o resultado do jogo. Como sabê-lo? -- Diagrama de Interação entre Objetos --

Modifique o diagrama, para que o jogador saiba o resultado do jogo Exemplo (5) Modifique o diagrama, para que o jogador saiba o resultado do jogo -- Diagrama de Classe --