EVOLUÇÃO HISTÓRICA DA
MODELAGEM DE SISTEMAS
Décadas de 50/60

Softwares Simples.

Desenvolvimento ad-hoc

Modelagem baseada em fluxogramas e
diagramas.
Década de 70





Surgimento de computadores mais avançados.
Explosão computacional.
Sistemas mais complexo.
Modelos mais robustos.
Surgimento da programação estruturada.
Década de 80

Computadores mais rápidos e baratos.

Necessidade por interfaces.

Surgimento da analise estruturada.
Inicio anos 90

Surgimento da analise orientada a objetos.
Fim década de 90



Maturidade da orientação a objetos.
Padrões de projetos, componentes e qualidade
ganham espaço.
Surge a UML – Linguagem de modelagem
simplificada.
UML

Linguagem visual

Cada elemento possui uma sintaxe.

Ela é independente da linguagem de programação,
quanto do processo de desenvolvimento.
Visões do Sistema

Visão de Caso de Uso:
 Descreve
o sistema por um ponto de vista externo,
como um conjunto de interações entre sistemas e
agentes externos.

Visão de Implementação:
 Gerenciamento
das versões do sistema, através de
agrupamento de componentes e sub-sistemas.
Visões do Sistema

Visão de Implantação:
 Distribuição
física do sistema em sub-sistemas e a
conexão entre essas partes.

Visão de Processo:
 Enfatiza
as características de concorrência,
sincronização e desempenho do sistema.
Diagramas da UML
Diagramas de
Caso de Uso
Diagrama de
Classes
Diagrama de
Objetos
Diagramas da
UML
Diagrama de
Interação
Diagrama de
TE
Diagrama de
Atividade
Diagrama de
Implementação
Diagrama de
Seqüência
Diagrama de
Colaboração
Diagrama de
Componentes
Diagrama de
Implantação
O processo de desenvolvimento de
Softwares





Atividade Complexa:
10% terminam no prazo estimado.
25% são descontinuados antes do fim.
60% custos acima do esperado.
Atrasos médios nos projetos: 1ano
Etapas no processo de
desenvolvimento

Levantamento de requisitos.
 Usuários
e desenvolvedores tenham a mesma visão.
 Requisitos funcionais: definem a funcionalidade do
sistema.
 Requisitos não funcionais: definem as características de
qualidade que o sistema deve ter.
 Ex:
Confiabilidade, desempenho, portabilidade
Levantamento de Requisitos




Serve como um termo de consenso entre a equipe
técnica(desenvolvedores) e o cliente.
Estabelece o escopo do sistema.
O escopo pode ser volátil.
Os requisitos podem e devem ser ordenados em
função do seu grau de prioridade.
Análise de Requisitos


Análise corresponde a “quebrar” um sistema em
seus componentes.
Essa atividade não leva em consideração o
ambiente, seu foco está em construir uma estratégia
de solução.
Projeto


Determina como o sistema funcionará.
Aspectos tecnológicos devem ser considerados
nessa fase:
 Linguagem,

banco de dados, etc.
É dividido em duas partes:
 Projeto
da arquitetura (alto nível)
 Projeto detalhado (baixo nível)
Projeto da Arquitetura


Consiste em distribuir as classes relacionadas do
sistema em sub-sistemas e seus componentes.
Os diagrama UML normalmente utilizados nessa
fase são:
 Diagrama
de componentes e
 Diagrama de implementação.
Projeto Detalhado



São modeladas as colaborações entre os objetos de
cada módulo.
Também são realizadas o projeto de interface com
usuário e o projeto de banco de dados.
Os diagramas utilizados são:
Diagrama de classes,
 Diagrama de caso de uso,
 Diagrama de interação,
 Diagrama de estados e
 Diagrama de atividade

Implementação


Nessa fase, o sistema é codificado.
Além da codificação, a implementação pode
também utilizar componentes de softwares e
bibliotecas de classe.
Testes


São atividades realizadas para verificação do
sistema construído.
Seu principal produto é o relatório de testes.
Implantação



O Sistema é empacotado, distribuído e instalado no
ambiente do usuário.
São finalizados os manuais de utilização.
Em alguns casos ocorre a migração de sistemas e
dados existentes.
Componente Humano


O desenvolvimento de software é um processo
altamente cooperativa.
Participam do projeto:
Gerentes de projeto;
 Analistas;
 Projetistas;
 Programadores;
 Clientes.


Em geral, um pessoa pode desempenhar diversas
funções, bem como, uma função ser realizadas por
diversas pessoas.
Gerente de Projeto



Profissional responsável pela gerencia ou
coordenação das atividades relacionadas a
construção do sistema.
Também é responsável pelo orçamento do projeto
de desenvolvimento.
Outra atividade é verificar se os diversos recursos
alocados estão sendo gastos na taxa esperada.
Analistas


Profissional que deve ter o conhecimento do
domínio de negócio.
Deve definir com o usuário os requisitos do sistema.
Projetistas


Deve avaliar as alternativas de solução do
problema.
Gerar a especificação detalhada da solução
computacional.
Arquiteto de Software


Seu papel é elaborar a arquitetura do sistema
todo.
Ele é quem toma as decisões sobre quais são os
subsistemas que compõe o sistema e quais as
interfaces entre eles.
Programadores


Responsavel pela implementação do sistema.
É comum em algumas equipes, possuir analistas que
realizem essa atividade.
Clientes



Individuo para qual o sistema é desenvolvido.
Pode ser cliente usuário ou cliente contratante.
Sua participação é de extrema importância.
Modelo de ciclo de vida em cascata
Levantamento
de Requisitos
Analise de
Requisitos
Projeto
Implementação
Testes
Implantação
Características do Modelo Classico

Implementação Bottom-Up
 Nada
está pronto até o final
 Erros pequenos são encontrados no inicio, enquanto os
maiores no final dos testes.

Progressão Seqüencial
 Fases
são seguidas de forma seqüencial
 As especificações são congeladas
Ciclo de Vida Semi-Estruturado

Implementação Top-Down
 Possibilidade

de testes antes do fim
Diagramas Utilizados
 Diagramas
de Fluxo de Dados
 Dicionário de Dados
 Diagramas de Entidade-Relacionamento
 Especificações de Processos
Ciclo de Vida Estruturado

Dividido em 9 partes:
 Levantamento
 Análise
 Projeto
 Implementação
 Geração
de Testes
 Controle de Qualidade
 Descrição dos Procedimentos
 Conversão de Bases
 Instalação
Levantamento



Estudo de Viabilidade
Especificação do que se deseja automatizar
Principais Objetivos:
 Diagrama
de Contexto
 Diagrama de Fluxo de Dados
 Identificar atuais deficiências
 Estabelecer Metas e Objetivos
 Previsão de termino
Análise


Gera a especificação estruturada do sistema.
Modelagem utilizando:
 Diagramas
de Fluxo de Dados
 Diagramas Entidade-Relacionamento
 Diagrama de Transição de Estados

Envolve o desenvolvimento de um modelo Ambiental
e comportamental
Projeto


Desenvolvimento de hierarquia para construção.
Transformação do modelo de dados em bases de
dados
Implementação



Codificação e integração das partes.
Programação Estruturada e Implementação TopDown
O sistema vai ficando completo progressivamente.
Geração de Testes


Criar testes a partir da especificação.
Pode ser realizado paralelamente ao projeto e
implementação.
Controle de Qualidade


Teste Final ou Teste de Aceitação.
Deve demonstrar em geral o funcionamento
completo do sistema.
Descrição dos Procedimentos


Descrição formal das partes manuais do novo
sistema.
Descrição da interação utilizados com o software.
Conversão das Bases de Dados

Converter dados existentes para nova base de
dados
Instalação

Passagem imediata versus gradual.

Treinamento dos utilizadores.
Abordagem Radical x Conservadora

Radical:
 Atividades

Conservadora:
 Uma

executadas em paralelo.
atividade só inicia ao termino da outra.
Ambas são perigosas devido a serem extremos.
Abordagem Radical x Conservadora

Utilização de formas intermediárias:
 Iniciar
uma fase com 50% da anterior completa.
 Executar algumas atividades em paralelo.
 Não existe uma forma certa ou errada, cada projeto é
uma nova condição de desenvolvimento.
 Mais Radical = Maior probabilidade de erros
 Mais Conservadora = Menor probabilidade de erros
Modelo de ciclo incremental e iterativo
Levantamento
de Requisitos
Analise de
Requisitos
Projeto
Implementação
Testes
Implantação
Levantamento
de Requisitos
Analise de
Requisitos
Projeto
Implementação
Testes
Implantação
Levantamento
de Requisitos
Analise de
Requisitos
Projeto
Implementação
Testes
Implantação
Download

Analise e Projetos - Arquivo 02