• Nenhum resultado encontrado

ok - 1601PAPSUML-Cap02.pps

N/A
N/A
Protected

Academic year: 2021

Share "ok - 1601PAPSUML-Cap02.pps"

Copied!
38
0
0

Texto

(1)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

1

Princípios de Análise

Princípios de Análise

e Projeto de Sistemas

e Projeto de Sistemas

com UML

com UML

2ª edição

2ª edição

Eduardo Bezerra Editora Campus/Elsevier

(2)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

2

Capítulo 2

Processo de Desenvolvimento de Software

“Quanto mais livros você leu (ou escreveu), mais as aulas você assistiu (ou lecionou), mais linguagens de programação você aprendeu (ou projetou), mais software OO você examinou (ou produziu), mais documentos de requisitos você tentou decifrar (ou tornou decifrável), mais padrões de projeto você aprendeu (ou catalogou), mais reuniões você assistiu (ou conduziu), mais colegas de trabalho talentosos você teve (ou contratou), mais projetos você ajudou (ou gerenciou), tanto mais você estará equipado para lidar com um novo desenvolvimento.” - Bertrand Meyer

(3)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

3

“Software is hard…”

• Porcentagem de projetos que terminam dentro do prazo estimado: 10%

• Porcentagem de projetos que são descontinuados antes de chegarem ao fim: 25%

• Porcentagem de projetos acima do custo esperado: 60% • Atraso médio nos projetos: um ano.

Fonte: Chaos Report (1994)

(4)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

4

Processo de desenvolvimento

• Tentativas de lidar com a complexidade e de minimizar os problemas envolvidos no desenvolvimento de software

envolvem a definição de processos de desenvolvimento de

software.

• Um processo de desenvolvimento de software (PDS) compreende todas as atividades necessárias para definir, desenvolver, testar e manter um produto de software.

• Mostrar Fábrica: Guia Processo Levantamento Requisitos; Guia de Processo Analise de Requisitos

(5)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

5

Processo de desenvolvimento

• Exemplos de processos de desenvolvimento existentes:

– ICONIX – RUP – EUP – XP – OPEN

• Alguns objetivos de um processo de desenvolvimento são:

– Definir quais as atividades a serem executadas ao longo do projeto; – Definir quando, como e por quem tais atividades serão executadas; – Prover pontos de controle para verificar o andamento do

desenvolvimento;

(6)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

6

2.1 Atividades típicas de um PDS

(7)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

7 Foco da Disciplina

Atividades típicas de um PDS

• Levantamento de requisitos • Especificação de Análise • Especificação de Projeto • Implementação • Testes • Implantação

(8)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

8

Participantes do processo

• Gerentes de projeto • Analistas • Projetistas • Arquitetos de software • Programadores • Clientes • Avaliadores de qualidade

(9)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

9

Participação do usuário

• A participação do usuário durante o desenvolvimento de um sistema extremamente é importante.

(10)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

10

(11)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 11

Modelo de ciclo de vida

 Um ciclo de vida corresponde a um encadeamento

específico das fases para construção de um sistema.

Estrutura as atividades do projeto em fases.  Define como estas fases estão relacionadas.

 Escolha de um modelo de ciclo de vida é fortemente

dependente das características do projeto.

 Importante conhecer os modelos e em que situações

são aplicáveis:

 seqüencial linear; o modelo incremental; vários modelos

(12)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 12

Modelo Seqüencial Linear

Outros nomes:

“ciclo de vida clássico” ou “modelo em cascata”,

Sugere uma abordagem seqüencial para o

desenvolvimento de software:

começa no planejamento e avança através de

levantamento de requisitos, análise, projeto,

(13)

Princípios de Análise e Projeto de

(14)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 14

fases são executadas seqüencialmente.

cada fase é executada uma vez,

permitido retorno à fase anterior para correção de

erros.

entrega do sistema completo ocorre em um

único marco

ao final da fase de Testes de Validação e

Implantação.

modelo mais antigo e mais amplamente

(15)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 15

 Problemas encontrados na sua aplicação:

 projetos reais muitas vezes não seguem o fluxo seqüencial

que o modelo propõe.

 freqüentemente, é difícil para o usuário colocar todos os

requisitos explicitamente.

 o modelo requer isto e tem dificuldade de acomodar a incerteza

natural que existe no início de muitos projetos.

 usuário precisa ser paciente.

 Uma versão operacional do software não estará disponível até o

final do projeto.

 introdução de certos membros da equipe (projetistas e

programadores) é freqüentemente adiada desnecessariamente.

 natureza linear leva a “estados de bloqueio”: membros da equipe

(16)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 16

Embora tenha fraquezas...

significativamente melhor do que uma abordagem

casual para o desenvolvimento de software.

Onde aplicar ??

 problemas pequenos e bem-definidos

 desenvolvedores conhecem bem o domínio do problema  requisitos podem ser estabelecidos claramente

 Geralmente é o modelo preferido, uma vez que é o mais

(17)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 17

Modelo Incremental

Variação do modelo de ciclo de vida seqüencial

linear

As fases de levantamento de requisitos, análise e

projeto da arquitetura são realizadas para o

software como um todo.

 as demais fases (projeto detalhado, implementação e

teste) são divididas em unidades mais gerenciáveis

O software é distribuído em várias versões

 cada uma delas com funcionalidade e capacidade

(18)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 18

(19)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 19

Quando aplicar??

software a ser desenvolvido é grande,

 mas o problema é bem-definido

 e não há recursos para seu desenvolvimento como um

todo

 ou quando se deseja apresentar resultados para o

cliente mais rapidamente.

Ao se adotar este modelo, está-se estabelecendo

um critério para o escalonamento do trabalho de

projeto detalhado, implementação e testes.

(20)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 20

Modelo Iterativo e Incremental

(Evolutivos)

Software evolui por um período de tempo.

 Requisitos do negócio e do produto freqüentemente

mudam à medida que o desenvolvimento avança, abrindo caminho para um produto final irreal;

Prazos apertados tornam impossível o término de

um produto de software completo,

 mas uma versão limitada tem de ser introduzida para

satisfazer às pressões do negócio ou à competitividade;

Um conjunto de requisitos centrais do produto ou

sistema é bem compreendido, mas os detalhes de

extensões da aplicação têm ainda de ser definidos.

(21)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 21

Modelo de iterativo e

incremental

Divide o desenvolvimento de um produto de

software em ciclos.

Em cada ciclo de desenvolvimento, podem ser

identificadas as fases de análise, projeto,

implementação e testes.

Cada ciclo considera um subconjunto de requisitos.

Esta característica contrasta com a abordagem

clássica, na qual as fases são realizadas uma única

vez.

(22)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 22

Modelo iterativo e incremental

(23)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 23

Modelo iterativo e incremental

Iterativo: o sistema de software é

desenvolvido em vários passos similares.

Incremental: Em cada passo, o sistema é

(24)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 24

Quando aplicar??

quando o problema não é bem definido

problema não pode ser totalmente especificado

no início do desenvolvimento

(25)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 25

Como funciona ??

 aplicam seqüências lineares de modo escalonado, à

medida que o calendário de tempo avança.

 cada seqüência linear produz um “incremento” distribuível

do software que é colocado em uso.

 durante o uso, novos requisitos são levantados, dando

início a um novo ciclo de desenvolvimento.

Estes modelos permitem que os engenheiros de

software desenvolvam iterativamente versões do

software cada vez mais completas.

(26)

Princípios de Análise e Projeto de

Sistemas com UML - 2ª edição 26

Modelo iterativo e

incremental

(27)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

27

Modelo iterativo e incremental – vantagens

e desvantagens

 Incentiva a participação do usuário.

 Riscos do desenvolvimento podem ser mais bem gerenciados.

– Um risco de projeto é a possibilidade de ocorrência de algum evento que cause prejuízo ao processo de desenvolvimento, juntamente com as conseqüências desse prejuízo.

– Influências: custos do projeto,cronograma, qualidade do produto, satisfação do cliente, etc.

(28)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

28

Ataque os riscos

• “Se você não atacar os riscos [do projeto] ativamente, então

estes irão ativamente atacar você.” (Tom Gilb).

– A maioria dos PDS que seguem o modelo iterativo e incremental aconselha que as partes mais arriscadas sejam consideradas inicialmente.

Riscos não gerenciados

(29)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

29

2.4 Utilização da UML no modelo

iterativo e incremental

(30)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

30

UML no modelo iterativo e incremental

• A UML é independente do processo de desenvolvimento.

– Vários processos podem utilizar a UML para modelagem de um sistema OO.

• Os artefatos de software construídos através da UML evoluem à medida que o as iterações são realizadas.

– A cada iteração, novos detalhes são adicionados a esses artefatos.

– Além disso, a construção de um artefato fornece informações para adicionar detalhes a outros.

(31)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

31

(32)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

32

Prototipagem

• A prototipagem é uma técnica aplicada quando:

– há dificuldades no entendimento dos requisitos do sistema – há requisitos que precisam ser mais bem entendidos.

• A construção de protótipos utiliza ambientes com facilidades para a construção da interface gráfica.

• Procedimento geral da prototipagem:

– Após o LR, um protótipo é construído para ser usado na validação. – Usuários fazem críticas...

– O protótipo é então corrigido ou refinado

– O processo de revisão e refinamento continua até que o protótipo seja aceito.

– Após a aceitação, o protótipo é descartado ou utilizado como uma versão inicial do sistema.

(33)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

33

Prototipagem

• Note que a prototipagem NÃO é um substituto à construção de modelos do sistema.

– A prototipagem é uma técnica complementar à construção dos modelos do sistema.

– Mesmo com o uso de protótipos, os modelos do sistema devem ser construídos.

– Os erros detectados na validação do protótipo devem ser utilizados para modificar e refinar os modelos do sistema.

(34)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

34

(35)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

35

Ferramentas de suporte

• O desenvolvimento de um software pode ser facilitado através do uso de ferramentas que auxiliam:

– na construção de modelos,

– na integração do trabalho de cada membro da equipe,

(36)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

36

Ferramentas de suporte

• Há diversos sistemas de software que são utilizados para dar suporte ao desenvolvimento de outros sistemas.

• Um tipo bastante conhecido de ferramenta de suporte são as

ferramentas CASE.

– CASE: Computer Aided Software Engineering

• Além das ferramentas CASE, outras ferramentas importantes são as que fornecem suporte ao gerenciamento.

– desenvolver cronogramas de tarefas, – definir alocações de verbas,

– monitorar o progresso e os gastos,

(37)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

37

Ferramentas de suporte

• Criação e manutenção da consistência entre estes diagramas • Round-trip engineering (sincronização modelo-código)

• Depuração de código fonte • Relatórios de testes

• Testes automáticos

• Gerenciamento de versões • Verificação de desempenho

• Verificação de erros em tempo de execução • Gerenciamento de mudanças nos requisitos • Prototipagem

(38)

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

38

Exercícios

• Defina processo.

• Qual a importância de utilização de um processo? • O que é um ciclo de vida?

• Explique os seguintes ciclos de vida: cascata, incremental, evolucionários. Explique as vantagens, desvantagens e

Referências

Documentos relacionados

INDIVIDUAL / FAMILIAR DescriçãoRede PrópriaRede Credenciada Item 1 (urgência e emergência)24 horas24 horas Item 2 e 3 (consultas e exames laboratoriais simples)15 dias30 dias Item

Grandjean (1998) sugeriu que a dor na coluna lombar estaria presente em indivíduos que permanecem na postura sentada durante toda a jornada de trabalho, o que

a) excessivamente: Não convém comer demais à noite. c) além disso: Não fui à praia porque estava frio; demais, estava com preguiça. d) os outros, os restantes: Apenas os

Assim, na pergunta acima, a primeira frase está correta e quer dizer que “Ele pediu o livro para si mesmo (para ele mesmo)”. Por exemplo: “Ela trouxe o pão consigo”. Assim,

Nós queremos alertar sobre a importância de cuidar da sua mente e passar algumas dicas e informações sobre o assunto para que você possa viver melhor e também ajudar quem mais

PARA VALORIZAR AINDA MAIS VOCÊ.... Acessórios

A E-Class Mark III é uma família de impressoras térmicas desktop compactas projetadas para uma ampla variedade de setores e aplicações que necessitam de uma impressora de código

A vantagem desta comparação é que, se você mora perto da cidade visitada e não teve nenhum supermercado de sua região avaliado, e quer saber qual o estabelecimento mais barato e