Académique Documents
Professionnel Documents
Culture Documents
1/45
Uma representao abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produo e manuteno de software
3/45
Espiral Incremental
4/45
Derivado de modelos existentes em outras engenharias Sua estrutura composta por vrias etapas que so executadas de forma sistemtica e seqencial Na prtica, existe uma interao entre as etapas e cada etapa pode levar a modificaes nas etapas anteriores
5/45
Modelo Cascata
Definio de Requisitos Projeto do Sistema e do Software Implementao e Testes Unitrios
Especificao
Verso Inicial
Esboo de Descrio
Desenvolvimento
Verses Intermedirias
Programao Exploratria
Idia geral:
Adequado para o desenvolvimento de sistemas onde difcil ou impossvel se fazer uma especificao detalhada do sistema Principal diferena para os outros modelos a ausncia da noo de programa correto 9/45
Desenvolvimento da primeira verso do sistema o mais rpido possvel Modificaes sucessivas at que o sistema seja considerado adequado Aps o desenvolvimento de cada uma das verses do sistema ele mostrado aos usurios para comentrios
Programao Exploratria
Tem sido mais usada no desenvolvimento de sistemas especialistas - geralmente sistemas que tentam emular capacidades humanas A maioria dos sistemas desenvolvidos com sucesso usando a programao exploratria foi implementada usando pequenos grupos de profissionais altamente qualificados e motivados
10/45
Prototipagem Descartvel
Como na programao exploratria, a primeira fase prev o desenvolvimento de um programa para o usurio experimentar
A construo de prottipos com os quais os usurios possam brincar uma idia bastante atrativa:
No entanto, o objetivo aqui estabelecer os requisitos do sistema O software deve ser reimplementado na fase seguinte
Para sistemas grandes e complicados Quando no existe um sistema anterior ou um sistema manual que ajude a especificar os requisitos
11/45
Prototipagem Descartvel
Os objetivos do prottipo devem estar bem claros antes do incio da codificao. Possveis objetivos: Entender os requisitos dos usurios Definir a interface com os usurios Demonstrar a viabilidade do sistemas para os gerentes. Uma deciso importante a ser tomada escolher o que ser e o que no ser parte do prottipo No economicamente vivel implementar todo o sistema! Os objetivos do prottipo so o ponto de partida
12/45
Transformao Formal
Idia geral:
Uma especificao formal (definio matemtica, no ambgua) do software desenvolvida e posteriormente transformada em um programa atravs de regras que preservam a corretude da especificao
esp. 2 implement.
13/45
esp. 1
Transformao Formal
A grande motivao por trs da idia de refinamento formal a possibilidade de gerar automaticamente programas que so corretos por construo
Este modelo tem sido aplicado ao desenvolvimento de sistemas crticos, especialmente naqueles onde a segurana um fator crtico (ex: sistema de controle de trfego areo) 14/45
O prprio processo de desenvolvimento deve grantir que o programa faz exatamente o que foi especificado
Baseado no reuso sistemtico de componentes existentes ou sistemas COTS (Commercial-offthe-shelf) Etapas do processo
Esta abordagem est se tornando mais importante, mas h ainda pouca experincia com ela
15/45
Especificao dos requisitos Anlise de componentes Modificao dos requisitos Projeto de sistema com reuso Desenvolvimento e integrao Validao
Desenvolvimento e Integrao
Validao do Sistema
16/45
Modelos Iterativos
Requisitos de sistema SEMPRE evoluem durante curso de um projeto. Assim a iterao do processo sempre faz parte do desenvolvimento de grandes sistemas Iteraes podem ser aplicadas a quaisquer dos modelos de ciclo de vida Duas abordagens (relacionadas)
17/45
Desenvolvimento Espiral
O processo representado como uma espiral em vez de uma seqncia de atividades Cada volta na espiral representa uma fase no processo No h fases fixas como especificao ou projeto voltas na espiral so escolhidas dependendo do que requerido Riscos so avaliados explicitamente e resolvidos ao 18/45 longo do processo
anlise de riscos em intervalos regulares do processo de desenvolvimento de software planejamento controle tomada de deciso
Desenvolvimento Espiral
Determinao dos objetivos, alternativas e restries Anlise das alternativas
e identificao e/ou resoluo de riscos Anlise de Riscos
19/45
Desenvolvimento Incremental
Em vez de entregar o sistema como um todo, o desenvolvimento e a entrega so divididos em incrementos, com cada incremento entregando parte da funcionalidade requerida Requisitos dos usurios so priorizados e os requisitos de mais alta prioridade so includos nas iteraes iniciais Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so "congelados". Embora os requisitos possam continuar a evoluir para incrementos posteriores Em certos aspectos similar programao exploratria. No entanto, o escopo do sistema deve ser claramente entendido antes de se iniciar o desenvolvimento
20/45
Desenvolvimento Incremental
Definir esboo dos requisitos Associar requisitos a incrementos Projetar a arquitetura do sistema
Desenvolver um incremento
Validar o incremento
Integrar o incremento
21/45
Processo
Conjunto de atividades
bem definidas com responsveis com artefatos de entrada e sada com dependncias entre as mesmas e ordem de execuo com modelo de ciclo de vida
22/45
Processo
uma ao regular e contnua (ou sucesso de aes) realizada de forma bem definida, levando a um resultado um conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo define quem est fazendo o que, quando e como para atingir um certo objetivo
23/45
Outros consideram que uma metodologia a especializao de um processo com um conjunto de mtodos
24/45
Mtodo
Descrio sistemtica de como devese realizar uma determinada atividade ou tarefa A descrio normalmente feita atravs de padres e guias Exemplos: Mtodo para descoberta de atores e casos de uso no RUP.
25/45
Modelo de Processo
atividades a serem realizadas agentes que realizam as atividades artefatos (produtos) gerados recursos necessrios (consumidos)
26/45
Modelo de Processo
Um modelo usado para entendimento e comunicao do processo, e como base para anlise, execuo, gerncia e melhoria do processo Idealmente a descrio deve ser formal e completa para permitir, por exemplo, automao A descrio deve ser apresentada em diferentes nveis de abstrao
27/45
Modelo de Processo
O formalismo utilizado para representar o processo o ingrediente mais importante da modelagem No parece haver consenso sobre um formalismo ideal Terminologias distintas
Exemplos de processos
XP, Agile modeling, Crystal, pragmatic programming, Internet Speed, Scrum, ...
29/45
Exemplos de processos
Consenso em torno de
Iteratividade Participao de usurios Flexibilidade de configurao para projetos especficos Comunicao entre membros da equipe
30/45
Exemplos de processos
Divergncias em torno de
Arquitetura robusta (RUP) Arquitetura para o contexto da iterao atual (agile modeling) workers (RUP) alocao sob demanda e interesse (XP)
31/45
Polmica
Compromisso
32/45
33/45
O que o RUP?
mas na verdade
34/45
O que o RUP?
Conjunto de atividades
bem definidas com responsveis com artefatos de entrada e sada com dependncias entre as mesmas e ordem de execuo com modelo de ciclo de vida descrio sistemtica de como devem ser realizadas guias (de ferramentas ou no), templates utilizando diagramas de UML
35/45
Iterativo e incremental Guiado por casos de uso (use cases) Centrado na arquitetura do sistema
36/45
concepo tempo
Concepo (define o escopo do projeto) Elaborao (detalha os requisitos e a arquitetura) Construo (desenvolve o sistema) Transio (implanta o sistema)
37/45
Inception
Transition
Preliminary iteration
Devel.. iteration
Devel.. iteration
Transition iteration
Transition iteration
Cada iterao
planejada realiza uma seqncia de atividades (de elicitao de requisitos, anlise e projeto, implementao, etc.) distintas geralmente resulta em uma verso executvel do sistema avaliada segundo critrios de sucesso previamente definidos
39/45
40/45
Os casos de uso no servem apenas para definir os requisitos do sistema Vrias atividades do RUP so guiadas pelos casos de uso:
planejamento das iteraes criao e validao do modelo de projeto planejamento da integrao do sistema definio dos casos de teste
41/45
Arquitetura
A arquitetura prototipada, definida e validada nas primeiras iteraes da fase de elaborao O desenvolvimento consiste em complementar a arquitetura A arquitetura serve para definir a organizao da equipe de desenvolvimento e identificar oportunidades de reuso
42/45
viso geral do sistema em termos dos seus subsistemas e como estes se relacionam
Organizao do RUP
43/45
Avaliar Iterao
Finalizar Projeto
Arquiteto
44/45
Referncias
Ivar Jacobson, Grady Booch e James Rumbaugh. The Unified Software Development Process. Captulos 1 a 5. Philippe Kruchten. The Rational
45/45