Buscar

APOSTILA_-_Engenharia_de_Software_e_Gerencia_de_Projeto_-_03

Prévia do material em texto

Engenharia de Software 
e Gerencia de Projetos
Engenharia de Software e Gerencia de Projetos
2Ciclo de Vida 
A engenharia de software define o ciclo de vida como a divisão do desenvolvimento em etapas. Cada etapa 
deve utilizar disciplina como atividade. Os ciclos de vida são aplicados para conduzir o desenvolvimento e 
gerar documentos na finalização de cada etapa. Os ciclos de vida são definidos na metodologia adotada 
pela empresa e seguem alguns modelos já utilizados no mercado, como: cascata, prototipagem, espiral e 
iterativo e incremental. 
 ● Conhecer o conceito de ciclo de vida e os diversos paradigmas definidos para desenvolvimento 
de sistemas. 
Nesta aula serão abordados os seguintes tópicos:
 ● Conceito de ciclo de vida;
 ● Ciclo de vida em cascata;
 ● Ciclo de vida Prototipagem;
 ● Ciclo de vida em Espiral;
 ● Ciclo de vida Iterativo e incremental.
Introdução
Objetivo
Tópicos Abordados
Engenharia de Software e Gerencia de Projetos
3Ciclo de Vida 
Conceito de Ciclo de Vida
Podemos ter modelos de ciclos de vida diferentes, mas a abordagem a ser utilizada é a mesma: o conhecimento 
do problema, representação conceitual da solução e a representação de como a solução será instalada no 
computador. As disciplinas são distribuídas pelos ciclos de vida.
O ciclo de vida de desenvolvimento de um sistema ou software representa as etapas pelas quais se deve 
passar e quais os documentos que devem ser gerados desde o conhecimento do problema até a sua solução 
instalada num computador. 
A seguir serão apresentados 4 modelos de ciclos de vida:
Engenharia de Software e Gerencia de Projetos
4Ciclo de Vida 
Ciclo de Vida em Cascata
Características:
 ● As etapas são realizadas seqüencialmente;
 ● Documentos são gerados a cada etapa e 
servem de entrada para a fase seguinte. Uma 
etapa só inicia ao término da anterior;
 ● Vulnerável para mudança de requisitos, pois 
é preciso retornar com o projeto completo a 
avaliação dos impactos;
 ● Longa duração para gerar resultado ao usuário.
Engenharia de Software e Gerencia de Projetos
5Ciclo de Vida 
Ciclo de Vida Prototipagem
Características:
O desenvolvimento rápido para validação com o usuário. As interfaces são elaboradas e procedimentos 
desenvolvidos sem refinamentos, o que causa re-trabalho ou implantações incompletas.
Os protótipos normalmente são utilizados para situações de emergência, sistemas novos – requisitos 
indefinidos e/ou introduzir cultura do uso da tecnologia em uma organização. Os protótipos podem ser 
utilizados para experiência, entendidas as limitações.
O uso de Protótipos 
apresenta problemas
A visão que o usuário tem sobre um protótipo é de extrema 
importância, não considerando se o software que dá suporte a 
essas funções é frágil e difícil de manter;
A construção é realizada de forma imediatista, ou seja, sem a visão 
completa das definições, podendo o usuário se acostumar com 
uma versão precária do sistema, convivendo com as deficiências.
Quando estiver tratando de sistemas críticos deve-se ter cuidado 
em utilizar esse modelo.
Importante
Engenharia de Software e Gerencia de Projetos
6Ciclo de Vida 
Ciclo de Vida em Espiral
Tentativa de união do ciclo tradicional com protótipos, visando o desenvolvimento em partes. Possui quatro 
atividades: planejamento, análise de riscos, engenharia e avaliação do usuário.
 ● No planejamento são definidos os objetivos, alternativas e restrições;
 ● Na análise de Risco é analisada a viabilidade de se construir e implementar o planejado;
 ● Na engenharia o software é construído;
 ● Na avaliação do Usuário procura-se a aprovação da parte desenvolvida.
É um modelo realista, mas difícil de convencer a sua adoção;
O controle torna-se difícil, pois sempre evolui e pode ser problemático se o centro da espiral não é o centro 
do sistema a ser desenvolvido.
A análise de riscos deve ser bem elaborada;
A adoção do modelo ficou prejudicada em função da falta de cultura e conhecimento na adoção. Altamente 
dependente da Tecnologia.
Características:
 ● Desenvolvimento realizado em partes;
 ● Fácil para atender mudanças de requisitos, pois se a alteração afeta uma parte ainda não desenvolvida 
não tem repercussão e, se afetar uma parte já desenvolvida os procedimentos são independentes;
 ● Usuário consegue visualizar resultados antecipadamente; 
 ● Caracteriza-se por repetir o ciclo de vida para cada iteração e ao final incrementar a produção com 
uma nova versão do software.
Ciclo de Vida Iterativo e incremental
Engenharia de Software e Gerencia de Projetos
7Ciclo de Vida 
Concepção
Objetivos
 ● Definir necessidades reais dos patrocinadores;
 ● Delimitar claramente o escopo do projeto;
 ● Formular a arquitetura candidata;
 ● Levantamento de principais funcionalidades;
 ● A partir de um subconjunto chave de requisitos propor uma arquitetura;
 ● Planejamento: visão do projeto, estudo de viabilidade e análise de riscos;
 ● O patrocinador concorda com a realização de uma séria análise de projeto.
Elaboração
Objetivos
 ● Capturar quase todos use cases;
 ● Estabelecer uma arquitetura sólida para guiar as fases de construção e transição;
 ● Monitorar riscos e seu impacto no caso de negócio;
 ● Refinar plano de projeto. 
 ● Planejamento: tarefas (por prioridade e risco de desenvolvimento) x divisão de responsabilidades x 
prazos individuais e duração de suas interações;
 ● montar equipe;
 ● modificar o ambiente de implementação;
 ● estabelecer critério de avaliação;
 ● Estender os requisitos e escolher Casos de Uso para participar da iteração;
Engenharia de Software e Gerencia de Projetos
8Ciclo de Vida 
Construção
Objetivos
 ● Completar as realizações dos use cases, projetar as classes e subsistemas, implementá-los como 
componentes, fazendo testes individuais ou em builds;
 ● O plano pode ser modificado por dois fatores: Gap possível entre elaboração e construção; e Finanças 
e cronograma podem ser alterados;
 ● Alocação de recursos - Aumento significativo de pessoas;
 ● Definição do critério de avaliação;
 ● 4 atividades principais em paralelo;
 ● 5 workflows principais;
 ● Planejar iterações;
 ● Business case (acompanhamento);
 ● Avaliação.
Transição
Objetivos
 ● Atingir a capacidade final de operação:
 ● Modificar o produto para “aliviar” problemas não detectados nas fases anteriores;
 ● Corrigir defeitos;
 ● Garantir que o produto está pronto para ser entregue ao usuário;
 ● Realizar treinamentos.
Engenharia de Software e Gerencia de Projetos
9Ciclo de Vida 
Avaliação a Distância
1 - Escolha a alternativa CORRETA que define o ciclo Prototipagem.
3 - Quanto ao ciclo de vida Espiral, é CORRETO dizer:
Respostas - 1 - E, 2 - (C. B. A. E. D e E). 3 C
A - Ciclo que é fácil a mudanças de requisitos. 
B - Não devem ser utilizados como experiência. 
C - O desenvolvimento é realizado com exaustiva validação de requisitos. 
D - Representa o ciclo que gera softwares com vida útil prolongada. 
E - É um desenvolvimento rápido para validação com o usuário. 
A - É um ciclo difícil de ser utilizado. 
B - Sua proposta foi uma tentativa de união do ciclo tradicional com protótipos. 
C - Todas as alternativas são verdadeiras. 
D - É dependente de uma análise de riscos bem elaborada. 
E - É um ciclo altamente dependente da tecnologia.
2 - Relacione as opções identificando o produto gerado pelas fases do Ciclo de vida em cascata:
A - Necessidade
B - Arquitetura do Software
C - Definição Lógica
D - Código de Software
E - Versão do Software
F - Software Validado
Análise 
Projeto 
Definição dos requisitos 
Implantação 
ImplementaçãoTeste
Engenharia de Software e Gerencia de Projetos
10Ciclo de Vida 
4 – Indique V para as sentenças verdadeiras e F para as sentenças falsas.
5 – Indique a seqüência numerada correta do preenchimento das 4 lacunas da direita, indicando o 
produto estabelecido como marco ao fim de cada fase no ciclo de vida iterativo e incremental. 
5 – Associe as colunas.
É correto dizer que os ciclos de vida prevêem os documentos que deverão ser gerados 
durante o desenvolvimento?
As disciplinas utilizadas nos ciclos de vida de desenvolvimento de sistemas aplicam a 
mesma definição proposta na Engenharia de software.
Respostas - 4 (V e V.). 5 (C. A. B e D), 6 - (B e A), 7 - A.
A - Concepção 
B - Construção
C - Elaboração
D - Transição
A - Qual o ciclo de vida que desenvolve e implanta o sistema em 
partes?
B - Identifique o ciclo de vida que tem como característica o 
desenvolvimento completo, ou seja, uma etapa só é iniciada ao final 
da anterior.
Arquitetura
Escopo
Operação
Release
Cascata
Iterativo e incremental
7 - Como se define ciclo de vida ?
A - Representa as etapas que o desenvolvimento de sistemas deve utilizar. 
B - Representa o desenvolvimento procedural de sistemas. 
C - Nenhuma das alternativas. 
D - Representa o desenvolvimento coordenado para atendimento das gerências. 
E - É a definição de métodos, técnicas e ferramentas para ordenar 
Engenharia de Software e Gerencia de Projetos
11Ciclo de Vida 
8. Relacione as colunas e marque a alternativa correta:
A - Concepção
B - Elaboração
C - Construção 
D - Transição
Planejamento: tarefas (por prioridade e risco de desenvolvimento) x 
divisão de responsabilidades x prazos individuais e duração de suas 
interações; 
Completar as realizações dos use cases, projetar as classes e subsistemas, 
implementá-los como componentes, fazendo testes individuais ou em builds;
Garantir que o produto está pronto para ser entregue ao usuário; 
Planejamento: visão do projeto, estudo de viabilidade e análise de riscos;
Respostas - 8 (B, C, D e A)
Engenharia de Software e Gerencia de Projetos
12Ciclo de Vida 
Atividade Complementar
LARMAN, G. Utilizando UML e padrões: uma introdução à análise e ao projeto orientado a objetos. Bookman, 
Porto Alegre, 2000. 
“O ciclo de vida é iterativo porque o ciclo repete a cada iteração e incremental porque o sistema aumenta ao final 
de cada iteração aprovada”.
Engenharia de Software e Gerencia de Projetos
13Ciclo de Vida 
Síntese
Resumindo podemos destacar alguns conceitos:
O ciclo de vida é utilizado no desenvolvimento de sistemas para conduzir as tarefas.
Foram apresentados 4 modelos de ciclo de vida: cascata, prototipagem, espiral e iterativo e incremental.
O ciclo de vida em cascata é realizado de forma seqüencial e é vulnerável a mudanças de requisitos.
O ciclo de vida prototipagem possui o risco de gerar um sistema com imperfeições e definições incompletas.
O ciclo de vida espiral requer dinanismo na implementação e experiência na definição.
O ciclo de vida iterativo e incremental é realizado em partes, fácil para mudança de requisitos e disponibiliza 
produto ao usuário de forma antecipada, mas requer muita atenção gerencial.
No ciclo de vida iterativo e incremental os marcos determinam o final de cada etapa. A etapa de concepção 
possui como marco o escopo do trabalho; a elaboração é determinada pela arquitetura; a construção 
define como marco a operação do software e a transição produz a nova versão (release). 
 ● PRESSMAN, R.G. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2002. 935p.
 ● SOMMERVILLE, I.. Software Engineering, 8 ed.-São Paulo: Pearson Addison - Wesley, 2007. 
Bibliografia Recomendada

Continue navegando