Buscar

ModelagemdeProcessosUML-1.1

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Conceitos Básicos de Engenharia de Software
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Problemas com o
 Desenvolvimento de Software
*
*
*
Projeto
Watts Humphrey: “Um projeto é um esforço de trabalho realizado por um grupo de pessoas com um objetivo bem definido, dentro de um prazo estabelecido e com recursos limitados”
*
*
*
O que desejamos em nossos projetos?
Desenvolver o produto que atenda as necessidades do cliente e seja entregue no prazo, com o custo e o nível de qualidade dese-jado.
*
*
*
O que obtemos em nossos projetos?
Apresentação de Jim Johnson no XP2002 – disponível em www.xp2003.org/xp2002/index.html
A crise do software:
Apenas 10% dos projetos são concluídos no prazo e orçamento estimados
O orçamento é ultrapassado em 60% dos projetos 
25% a 30% dos projetos maiores são cancelados antes da implantação
Os projetos médio tem um atraso acima de 1 ano e um custo 100% acima do orçamento
Os custos de manutenção representam 80% dos recursos disponíveis
*
*
*
Primeiras Conclusões
Apesar de toda evolução tecnológica, as perguntas que os primeiros programadores faziam são repetidas pelas equipes de hoje:
Por que demora tanto para que o software seja terminado?
Por que custa tão caro o desenvolvimento de software?
Por que não podemos encontrar todos os erros antes de entregarmos o produto aos nossos clientes?
Por que continuamos tendo dificuldade de medir o progresso a medida que o software é desenvolvido?
*
*
*
Desenvolver Software
Desenvolver uma nova aplicação é um problema a ser resolvido como qualquer outro
Fases Genéricas
Definição: o que fazer
Desenvolvimento: como fazer
Manutenção: modificar (corrigir, adaptar, evoluir, prevenir)
*
*
*
Desenvolver Software
Desenvolver software não é somente modelar e escrever código. É criar aplicações que resolvam os problemas dos usuários. É fazer isto dentro do prazo, de forma precisa e com alta qualidade.
Ambler, 1998
Melhorar a qualidade do software implica na melhoria do processo pelo qual o mesmo é produzido.
Processos, métodos e ferramentas usados para produzir constituem o escopo de estudo da Engenharia de Software.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Engenharia de Software
*
*
*
Engenharia de Software
Estudo e aplicação de procedimentos sistemáticos,
disciplinados e quantificáveis ao desenvolvimento,
operação e manutenção de software.
IEEE/93
Foco na Qualidade
Processo
Método (Enfoque) 
Ferramentas
*
*
*
Método
Orienta ”Como construir” um software
Define padrões, notação e critérios de qualidade
Define um conjunto de atividades necessárias que incluem:
Modelagem de processos
Engenharia de requisitos
Análise e Projeto
Implementação
Testes
Implantação
Evolução e manutenção
*
*
*
Método
Define também um conjunto de atividades auxiliares:
*
*
*
Ferramenta
Software utilizados de apoio aos método com objetivo de aumentar e garantir a produtividade
Evolução e manutenção
*
*
*
Processo
	 Define:
Quem faz o que e quando
A aplicação de métodos e ferramentas
Os produtos que devem ser entregues
Os controles que ajudam a assegurar a qualidade e a gerenciar as mudanças
Os marcos de referência que permite avaliar o progresso
Processo = Métodos e Padrões + Pessoas + Ferramentas
*
*
*
Agilidade do Processo
Um processo de software pode ser:
Preditivo
Rígido independente do projeto
Burocrático
Adaptativo
Adaptado as necessidades de cada projeto
Adaptado as características da equipe
Ágil
Incorpora o conceito de Framework
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Evolução dos 
Modelos de Processos
*
*
*
Modelo Cascata
Levantamento 
de Requisitos
Análise e Design
Implementação
Implantação
Teste
*
*
*
Modelo Cascata
Características
Ainda hoje o modelo de processo mais utilizado.
As atividades são executadas seqüencialmente.
Uma fase só é iniciada após o final da anterior.
Pressupõe requisitos estáveis.
Baseado em modelos de processos de engenharia.
Modelo Cascata – Prós e Contras
Vantagens
É simples de gerenciar.
Desvantagens
Difícil lidar com as mudanças.
Atrasa a redução dos Riscos.
*
*
*
Prototipação
Construção de protótipos baseado nas informações do cliente
Adequado para quando o “negócio” não é bem conhecido, o cliente não sabe exatamente o que precisa ou como deve ser a interface do sistema
Fases:
Projeto Rápido
*
*
*
Prototipação : Problemas
O usuário não entende que o software desenvolvido sacrifica qualidade para obter velocidade no desenvolvimento e não pode ser considerado como um produto que possa entrar em produção. 
O desenvolvedor muitas vezes toma decisões de projeto, ineficientes, para facilitar o desenvolvimento e acaba se acostumando com tais decisões, esquecendo o motivo que o levou a tomá-las.
*
*
*
RAD
Rapid Application Development
Como o modelo cascata com um ciclo de desenvolvimento muito curto
Uso de componentes para acelerar a construção 
Razoável para projetos de escopo controlado e reduzido
Aplicado a grandes projetos se for possível sua divisão em módulos independentes 
*
*
*
RAD
Modelagem 
de
Negócio
Modelagem 
de
Dados
Modelagem 
de 
Processo
Geração 
da 
Aplicação
Teste 
e
Entrega
60 – 90 dias
*
*
*
Métodos Formais
Uso de métodos matemáticos para a especificação, desenvolvimento e verificação de sistemas 
Ambiguidade, incompleteza e inconsistências são mais facilmente detetáveis e corrigíveis, usando-se análise matemática
Quando utilizados durante o projeto permitem a derivação das verificações
*
*
*
Métodos Formais - Problemas
O desenvolvimento de um modelo formal demanda muito tempo e custa caro 
Como a maioria dos engenheiros de software não possuem a formação necessária, demanda muito treinamento 
Difícil utilizar os modelos para comunicação com o cliente comum 
*
*
*
Incremental
Combinação do modelo cascata com o prototipação
Adequado para quando a equipe disponível não é suficiente para cumprir o prazo
Incrementos podem ser planejados para contemplar riscos técnicos
Para cada incremento entregue é cumprida um seqüência como o cascata
O primeiro incremento implementa requisitos básicos
Cada novo incremento acrescenta novas funcionalidades
Cada incremento tem que ser um produto operacional
*
*
*
Incremental - Fases
1o
Incremento
2o
Incremento
*
*
*
Modelo Espiral
*
*
*
Modelo Espiral – Características
Barry Boehm - 1980
Reduz sensivelmente o risco de um projeto
Permite uma maior interação com o cliente
Adequado a maioria dos tipos de projetos/sistemas e metodologias existentes
Incremental, Evolutivo e Iterativo
Um ciclo da espiral pode produzir tanto uma especificação como versões do software
*
*
*
Modelo Espiral – Prós e Contras
Vantagens
Adaptabilidade a mudanças de requisitos
Redução do Risco
Acúmulo de Experiência
Desvantagens
Pode levar a software mal estruturado, difícil de manter.
Dificuldade para convencer o cliente que o processo evolucionário pode ser controlável
Depende da capacidade em analisar riscos
*
*
*
Modelo Iterativo e Incremental
	
O que é uma iteração?
Uma divisão do tempo do projeto, fixa em duração, durante a qual as atividades inerentes ao desenvolvimento são executadas. 
Por que precisamos usar iterações?
Para ganhar maior controle sobre o projeto e para minimizar os riscos.	
*
*
*
Metodologias de Desenvolvimento
Linguagem de 
Modelagem
Metodologia
Processo de 
Desenvolvimento
*
*
*
Características Recomendadas 
Orientado a objetos
Guiado por funcionalidades (caso de uso)
Baseado na arquitetura
Iterativo e incremental

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais