Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software I
Sugere práticas e métodos para que o próprio indivíduo possa identificar e corrigir os seus
pontos fracos.
É uma sugestão para organizar e disciplinar o indivíduo, e não para limitar a sua capacidade
de criação.
Fonte: livro-texto.
Processo Pessoal de Software (PSP)
Objetivos do PSP:
Melhorar o planejamento;
Melhoria das estimativas de prazos;
Estabelecer processos de revisão de projeto e código;
Gerenciar a qualidade;
Executar a fase de projeto de maneira mais formal;
Identificar pontos de melhoria da qualidade.
Processo para a Equipe de Software (TSP)
Arcabouço Personal
(framework) Software
de mediação Process
integrada (PSP)
a) Fase de construção.
b) Fase de concepção.
c) Fase de manutenção.
d) Fase de elaboração.
e) Fase de transição.
Resposta
a) Fase de construção.
b) Fase de concepção.
c) Fase de manutenção.
d) Fase de elaboração.
e) Fase de transição.
Modelos de ciclo de vida de software
Modelo Codifica-Remenda;
Modelo Sequencial Linear (cascata);
Modelo Incremental;
Modelo RAD;
Modelo Prototipação;
Modelo Espiral;
Modelo Unificado;
Modelo PRAXIS;
Modelo Sala Limpa.
Modelos de ciclo de vida de software
Levantamento das
necessidades
Análise das
Manutenção
alternativas
Implementação Projeto
Desenvolvimento
Análise:
Identificação e avaliação das alternativas sistêmicas que atendam aos requisitos.
Projeto:
Definem as características técnicas relacionadas à construção como a arquitetura
e o banco de dados.
Modelos de ciclo de vida de software
Desenvolvimento:
Inclui a codificação e os testes do novo sistema.
Implantação:
Consiste em transferir a aplicação do ambiente de desenvolvimento para o ambiente
de produção.
Manutenção:
Atividades relacionadas a correções e/ou inclusão de novas
funcionalidades após o sistema estar em produção.
Modelo Codifica-Remenda
Parte de uma especificação simples ou uma reunião para iniciar a codificação, fazendo
correções à medida que surgem os defeitos.
Engenharia de
Sistemas
Análise
Design
Codificação
Testes
Manutenção
Engenharia de Sistemas:
Definem-se:
Os requisitos de negócio;
A avaliação do sistema atual em uso, se existir;
Elementos de software e hardware necessários.
Modelo Cascata (waterfall)
Análise:
Concentra-se no detalhamento do “o quê” deve ser feito.
Design (projeto):
Define o “como” a aplicação será construída;
Envolve a definição da arquitetura de software, do banco de dados e das características
visuais.
Modelo Cascata (waterfall)
Codificação:
Tradução dos requisitos para uma linguagem de programação.
Testes:
Verifica se a aplicação está de acordo com a sua especificação.
Manutenção:
Envolve as alterações no sistema relacionadas aos erros, às evoluções de negócio
ou às evoluções técnicas.
Modelo Cascata (waterfall)
Principais dificuldades:
Os projetos nem sempre são sequenciais e as mudanças sempre trazem problemas;
O produto somente é visível no final de todo o ciclo.
Quando utilizar:
Projetos com requisitos bem definidos;
Projetos pequenos com duração de, até, 2 meses.
Interatividade
O Modelo Cascata ainda é muito utilizado nos dias atuais e representa a estrutura base para os
demais modelos. Qual das opções a seguir é uma característica deste modelo?
a) É um processo interativo.
b) É indicado para projetos longos.
c) O produto é visto somente ao final.
d) É indicado para os projetos com requisitos mal definidos.
e) Nenhuma das alternativas.
Resposta
O Modelo Cascata ainda é muito utilizado nos dias atuais e representa a estrutura base para os
demais modelos. Qual das opções a seguir é uma característica deste modelo?
a) É um processo interativo.
b) É indicado para projetos longos.
c) O produto é visto somente ao final.
d) É indicado para os projetos com requisitos mal definidos.
e) Nenhuma das alternativas.
Modelo Incremental
Cada sequência linear produz uma parte do software. O processo se repete até que o
produto esteja completo.
O incremento inicial é chamado de núcleo do produto. Isto quer dizer que os requisitos
básicos devem ser satisfeitos logo no início do projeto.
Modelo Incremental
Incremento n
Comunicação
Planejamento
Incremento 2 Modelagem
Construção
Comunicação
Implantação
Planejamento
Construção
Entrega do 1º
Implantação incremento
Núcleo do produto
Fonte: Adaptado do: livro-texto.
Modelo Incremental – Quando utilizar?
Quando o usuário necessita utilizar uma parte do produto antes do final de um projeto.
Vantagens:
Entregas parciais facilitam a validação do cliente;
Feedback constante aumenta a qualidade;
Cada incremento é uma parte de software utilizável.
Desvantagens:
Cliente pode não aceitar a divisão em módulos.
Modelo RAD (Rapid Application Development)
Pode ser dividido entre as várias equipes RAD e, ao final, integrada para formar o todo.
Modelo RAD (Rapid Application Development)
Equipe nº 3
Equipe nº 2 Modelagem
Equipe nº 1 do negócio
Modelagem do
Modelagem negócio Modelagem
do negócio dos dados
Modelagem Modelagem
dos dados do processo
Modelagem
dos dados Geração de
Modelagem do
processo aplicação
Modelagem
Teste e
do processo Geração de modificação
aplicação
Geração de
Teste e
aplicação modificação
Teste e
60 a 90 dias modificação
Se a aplicação de software pode ser modularizada e cada função principal possa ser
completada em menos de 3 meses.
Cada função principal pode ser tratada por uma equipe distinta e, depois, integrada para
formar um todo.
Modelo RAD
Vantagens:
Ciclo curto de desenvolvimento;
Usa a prototipação interativa e viva;
Aumento do reúso do código.
Desvantagens:
Não indicado para projetos grandes e complexos;
Não aplicado a projetos com alto risco técnico.
Modelo de Prototipação
É um modelo evolucionário.
Obter os
requisitos
Elaborar o projeto
rápido
Refinamento do protótipo
Construir o
Avaliar o protótipo protótipo
Um meio de redução de risco, ao permitir que o usuário visualize como vai ficar antes de
estar pronto.
Pode ser usado em qualquer tipo de sistema na fase de captura dos requisitos. Depois, pode
continuar com outros modelos ao decorrer de desenvolvimento.
Modelo de Prototipação
Vantagens:
Reduz o número de mudanças;
Aumenta a qualidade;
Pode reduzir o tempo de desenvolvimento.
Desvantagens:
O cliente acha que o produto está pronto;
O projetista pode incorporar as soluções inadequadas.
Interatividade
a) Usam a prototipação.
b) Divide o software em partes menores.
c) Utiliza os componentes.
d) Não melhora a qualidade.
e) São testados só ao final de todo o projeto.
Resposta
a) Usam a prototipação.
b) Divide o software em partes menores.
c) Utiliza os componentes.
d) Não melhora a qualidade.
e) São testados só ao final de todo o projeto.
Modelo Espiral
Avaliar e planejar
a próxima fase
Desenvolvimento
da engenharia
Vantagens:
É uma alternativa ao ciclo cascata;
Primeiro modelo a incluir a análise de riscos;
Permite uma maior interação com o cliente.
Desvantagens:
Difícil convencer o cliente que uma abordagem “evolutiva” é melhor;
Exige experiência na avaliação de riscos e no uso do modelo.
Processo unificado
Centrado em arquitetura.
Gerencia os requisitos.
Requisitos
Análise
Análise
Implementação
Testes
Vantagens:
Tolerância às mudanças de requisitos;
Elementos de um software são integrados progressivamente;
Incorpora, formalmente, a gerência de projeto ao ciclo.
Desvantagens:
Cliente não aceita o processo interativo;
Complexidade de suas fases e seus fluxos;
Indispensáveis que os profissionais sejam capacitados no processo.
RUP (Processo Unificado Racional)
Processo configurável.
Utiliza UML.
Apresenta 4 fases:
Concepção ou iniciação, elaboração, construção e
transição. Disciplinas:
São 10 atividades que variam de intensidade conforme
a fase. Dão origem aos artefatos do projeto.
Processo Praxis
Baseia-se em: CMMI, UML, UP e nos padrões do Institute Eletric Eletronic Engineering
(IEEE) para a engenharia de software.
Processo Praxis
Fornece suporte para projetos realizados individualmente ou por pequenas equipes, com
duração de seis meses a um ano.
Vantagens:
Alta qualidade;
Baixo número de erros.
Problema:
Processo muito complexo;
Requer conhecimento matemático;
Produtividade é menor.
Interatividade