• Nenhum resultado encontrado

Modelos de Processos - Parte 1

N/A
N/A
Protected

Academic year: 2021

Share "Modelos de Processos - Parte 1"

Copied!
52
0
0

Texto

(1)

Modelos de Processos

(2)

Conteúdo

• Introdução • Modelo Cascata • Desenvolvimento Incremental • Desenvolvimento Evolucionário • Modelo Espiral

(3)

Introdução

• O que é ciclo de vida?

• Conjuntos de fases que devem ser executadas para o desenvolvimento de um produto de software. O ciclo de vida determina a ordem e interação entre as fases e atividades.

• Modelos de ciclo de vida

• são representações abstratas de processos

• descrevem processos a partir de uma perspectiva específica • podem ser vistos como frameworks de processos

• devem ser aplicados e personalizados segundo necessidades específicas

• Alguns exemplos

• Cascata

• Evolucionário • Espiral

(4)
(5)

Introdução

• Um dos primeiros modelos (Royce, 1970).

• O desenvolvimento de um estágio deve terminar antes do próximo começar.

• Simples, mas não reflete, efetivamente, o modo como o código é desenvolvido.

(6)

Fases

Sistemático e seqüencial Engenharia de Sistemas Análise Projeto Codificação Teste Manutenção

Base para os outros

Sistemático e sequencial

(7)

Fase: Engenharia de Sistemas

• Software faz parte de um sistema maior;

• Estabelecer os requisitos básicos para todos os elementos que envolvem o software, como hardware, pessoas e bancos de dados.

• Envolve a coleta dos requisitos em nível do sistema, com uma pequena quantidade de projeto e análise de alto nível.

• Exige uma intensa comunicação entre o cliente e o analista • Faz parte da Analise de Sistema

(8)

Fase: Análise dos Requisitos

• Intensifica-se o processo de coleta dos requisitos;

• Identificar as funções necessárias, o desempenho e interfaces exigidos. (funcionalidades e restrições)

• Os requisitos para o sistema e para o software são documentados e revistos com o cliente.

• Produz a especificação dos requisitos. • Faz parte da Analise de Sistema.

(9)

Fase: Projeto

Traduz os requisitos em um conjunto de representações que podem ser avaliadas quando à qualidade.

Estrutura de dados;

Arquitetura do software;Detalhes Procedimentais;Caracterização da interface.

• É avaliado antes de começar a ser implementado;

(10)

Fase: Codificação

• Projeto traduzido para a linguagem do computador(C, Delphi, Java). • Se o projeto for executado detalhadamente, a codificação pode ser

(11)

Fase: Testes

• Concentra-se nos aspectos funcionais externos e lógicos internos do software.

• Garante que “todas as instruções” tenham sido testadas. • A entrada definida produz os resultados exigidos?

(12)

Fase: Manutenção

• Software embutido nem sempre tem esta parte;

• provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente

(13)

Tipos de Manutenção

• Manutenção Corretiva: diagnóstico e correção de erros

• Manutenção Adaptativa: adaptação do software para acomodar mudanças em seu ambiente externo.

• Manutenção Perfectiva: exigência do cliente para acréscimos funcionais e de desempenho

• Manutenção Preventiva: melhorar a confiabilidade e

manutenibilidade futura (técnicas de engenharia reversa e reengenharia)

(14)

Vantagens

• Bastante simples porque as atividades são claras e bem definidas; • Permite que os desenvolvedores descrevam o que deve ser

realizado;

• Fácil gerenciamento;

• Abordagem clássica e deve continuar sendo usada por bastante tempo;

(15)

Desvantagens

• Dificuldade de acomodar as mudanças após o processo ter sido iniciado

• Particionamento inflexível do projeto em fases distintas

• Dificuldade de responder a requisitos do usuário que mudam

• Uma versão do software só estará disponível em um ponto tardio do cronograma.

(16)
(17)

Definição

• Permite o refinamento iterativo dos requisitos.

• A cada iteração é produzido um protótipo do software final. • Este protótipo pode ser um:

Protótipo em Papel: primeiras versões que permitem ao usuário

ter uma visão abstrata do sistema;

Protótipo incomplete: implementa algum subconjunto de funções

exigidas;

Protótipo final: um software que executa parte ou toda a função

desejada, mas que tem outras características que serão melhoradas e ainda não pode ser disponibilizado.

(18)

Apropriado Quando:

• o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes;

• desenvolvedor não tem certeza da eficiência de um algoritmo, forma da interação homem/máquina.

(19)

Fases

Inicio Fim Coleta e Refinamento dos requisitos Projeto Rápido Construção do Protótipo Avaliação do Protótipo pelo Cliente Refinamento do Protótipo Engenharia do Produto Decide

(20)

Fase: Coleta e Refinamento dos

Requisitos

Nesta etapa o desenvolvedor e o cliente devem definir os objetivos

gerais do software(Protótipo),

Identificar quais requisitos são conhecidos e as áreas que

necessitam de definição adicional.

(21)

Fase: Projeto Rápido

Representação dos aspectos do software que são visíveis ao usuário

(22)

Fase: Construção do Protótipo

(23)

Fase: Avaliação do Protótipo

Cliente e desenvolvedor avaliam o protótipo.

No caso de sugestão ou mudanças serão trabalha-das na

(24)

Fase: Refinamento do Protótipo

São trabalhados os problemas encontrados na fase anterior. Ou

seja, são refinados os requisitos.

Neste ponto pode ocorrer, no caso de necessidade de alterações,

um retorno na fase de projeto Rápido para desenvolver um novo protótipo que incorpora as mudanças.

(25)

Fase: Construção do Produto

Identificado todos os requisitos necessários, o protótipo pode ser

descartado e a versão final do produto deve ser construída considerando os critérios de qualidade.

(26)

Vantagens

• Facilita a definição de requisitos.

• Sistema atual melhora a percepção do usuário em relação software. • Equívocos entre os usuários de software e desenvolvedores são

expostos.

• Reduz os riscos e incertezas do desenvolvimento.

(27)

Desvantagens

• O cliente muitas vezes não aceita mais uma iteração, aquela versão mesmo incompleta já serve.

• Não entendimento pelo cliente de que o protótipo não é um produto acabado.

• desenvolvedor freqüentemente faz uma implementação

comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo.

Solução:

• Definir as regras do jogo logo no começo, o cliente deve concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos

(28)
(29)

Definição

• O Modelo em espiral é um modelo incremental.

• Este tipo de modelo combina elementos do modelo cascata (aplicado repetidamente) com a filosofia iterativa da prototipação.

• Acrescenta mais uma atividade: Análise de Risco.

• O objetivo é trabalhar junto do usuário para descobrir seus requisitos, de maneira incremental, até que o produto final seja obtido.

• O desenvolvimento começa com as partes do produto que são mais bem entendidas. • A evolução acontece quando novas características são adicionadas à medida que são

sugeridas pelo usuário.

(30)

Definção (cont.)

• Fornece o potencial para desenvolvimento rápido de versões incrementais do software.

• Nas primeiras iterações são desenvolvido versões que podem ser protótipos.

• Nas iterações mais adiantadas são produzido versões incrementais mais completas e melhoradas.

(31)
(32)

Fase: Planejamento

determinação dos objetivos, alternativas e restrições;

Comunicação com os clientes;

(33)

Fase: Análise de Risco

análise das alternativas e identificaçãoresolução dos riscos

(34)

Fase: Construção

desenvolvimento do produto no nível seguinte;

Constrói protótipos ou versões mais avançadas do produto.

(35)

Fase: Avaliação do Cliente

Obter um feedBack do cliente baseado na avaliação da versão do

software.

(36)

Vantagens

É uma abordagem realística para o desenvolvimento de software em

grande escala;

Usa uma abordagem que capacita o desenvolvedor e o cliente a

(37)

Desvantagens

Pode ser difícil convencer os clientes que uma abordagem "evolutiva"

é controlável;

Exige considerável experiência na determinação de riscos e depende

(38)

Modelo: RAD

(39)

Definição

• Desenvolvimento Rápido (ou ágil) de Aplicações • Desenvolvimento Iterativo e Incremental

• Prazos curtos para desenvolvimento de software (entre 30 e 90 dias) • Divisão de trabalhos entre equipes distintas

(40)

Desenvolvimento Interativo

• Desenvolvimento de tarefas com prazos pré-definidos • Cada iteração é um ciclo do desenvolvimento

• Devem-se realizar as tarefas dentro do ciclo, sem atrasos

(41)

Desenvolvimento Iterativo

• Desenvolvimento de módulos em paralelo

• Módulos são integrados ao fim do desenvolvimento • Oposto ao Método em Cascata (sequencial)

(42)
(43)

Fase 1 – Modelagem de Negócio

• Modelagem do fluxo de informações entre as funções/módulos, de forma a responder às seguintes perguntas:

• Quais informações guiam o processo de negócio? • Quais informações são geradas?

• Quem gera essas informações? • Para onde vão as informações?

(44)

Fase 2 - Modelagem de Dados

• Definição das entidades (classes), com base nos dados necessários para a aplicação

• Atributos das entidades

(45)

Fase 3 - Modelagem do Processo

• Com base na modelagem de dados, criam-se o fluxos de dados • Diagramas de classes

• Casos de uso

(46)

Fase 4 - Geração da Aplicação

• Uso de técnicas de Quarta Geração para desenvolvimento do software

• Reutilização de código

• Uso de ferramentas para automatização de geração de códigos • Construção de códigos reutilizáveis

(47)

Fase 5 – Testes e Modificações

• Testar os módulos criados durante o desenvolvimento da aplicação • Por se basear em reutilização, grande parte do software já está

testado e funcional

• Redução do tempo total de testes

(48)

Quando Usar

• Possibilidade de modularização do projeto

• Tarefas podem ser divididas entre equipes distintas

(49)

Quando Não Usar

• Possibilidade de modularização do projeto

• Tarefas podem ser divididas entre equipes distintas

(50)

Vantagens

• Desenvolvimento rápido, com prazos curtos (entre 30 e 90 dias) • Divisão de tarefas entre equipes

• Mais rápida visão geral do sistema (protótipos) • Maior envolvimento do usuário/cliente

• Menor custo (menos tempo; tempo = dinheiro)

(51)

Desvantagens

• Para grandes projetos, exige-se equipe grande, para cumprir o prazo • Grande envolvimento do usuário (disponibilidade pode ser um

problema)

(52)

Referência

• PRESSMAN, Roger S. Engenharia de Software. Trad. José Carlos Barbosa dos Santos. São Paulo: Makron Books, 1995.

Referências

Documentos relacionados

DECLARO que tenho pleno conhecimento do disposto no presente PDI a respeito do Plano de Saúde, bem como, de que no caso de optar pela permanência devo fazer minha opção diretamente

tividades pedagógicas relativas a atuação em sala de aula como estagiário docente, tais como plano de aula, preparação de material didático auxiliar para uso elaboração

A seguir, estudaremos os comandos utilizados no AutoCAD para a formatação e definição dos desenhos, como por exemplo: a inserção cotas, textos e linhas.. 2.1 ESTILOS

Às 14:00 do dia 16 de fevereiro de 2012 na sala do CNPA em Brasília, foi aberta pela Presidenta Silvia Regina Patricio Sartorelli Van Rooijen a 34ª Reunião Ordinária da Câmara

Arquitetos contemporâneos também utilizam modelos físicos em seus processos de projeto, a saber: Marcos Acayaba, mais especificamente o Protótipo que fez para a

Seleciona a proposta, A ou B, e, de acordo com a proposta selecionada, apresenta 2 argumentos, explicando, um de forma adequada e outro de forma menos adequada, de

Todos os textos das aulas serão produzidos com base nas referências bibliográficas e disponibilizados via site pessoal ou pelo Microsoft Teams, de forma que apenas este material

Esse formato de peça não deve ser confundido com o jingle, que utiliza principalmente a música como recurso para a fácil memorização da mensagem pelo público alvo