Você está na página 1de 50

Unidade II

ENGENHARIA DE SOFTWARE I

Prof. Andr Luiz

Processo de desenvolvimento de software


O processo de desenvolvimento um conjunto de atividades
coerentes e consistentes para especificar, projetar,
implementar e testar um software.
Com isso, o modelo de processo de desenvolvimento uma
representao abstrata de como ser realizada a construo
do software.

Para que serve um processo?


Para definir as atividades a serem conduzidas no projeto;
Para uniformizar o entendimento dos envolvidos com relao
ao desenvolvimento de sistemas.
Para manter a consistncia entre sistemas desenvolvidos
em uma mesma empresa.
Para viabilizar pontos de controle para a gerncia.

Processo de desenvolvimento de software

Fonte: Livro-texto.

Processo pessoal de software (PSP)


O modelo PSP foi criado em 2009 e sugere prticas e mtodos
para que o prprio indivduo possa identificar e corrigir seus
pontos fracos.
uma sugesto para organizar e disciplinar o indivduo e no
para limitar sua capacidade de criao.
Possui 7 etapas sequenciais e progressivas, cada uma com
um conjunto de roteiros e formulrios disponveis em
www.sei.cmu.edu.

Processo pessoal de software (PSP)

Fonte: Livro-texto.

Processo pessoal de software (PSP)


Objetivos do PSP:
Melhorar o planejamento;
Melhorar as estimativas de prazos;
Estabelecer processos de reviso de projeto e cdigo;

Gerenciar a qualidade;
Executar a fase de projeto de maneira mais formal;
Identificar pontos de melhoria da qualidade.

Processo para equipe de software (TSP)


O TSP baseado no PSP e estabelece um framework para:
Planejar e gerenciar um projeto em equipe;
Definir processo - Incremental;
Distribuir papis - Disciplina;

Construir um trabalho em equipe;


Estabelecer medidas de qualidade;
Ter equipes eficazes.

Processo para equipe de software (TSP)


Equipes eficazes possuem:
Objetivo definido, realista e tangvel;
Recursos suficientes para o trabalho;
Membros qualificados;

Time motivado e empenhado em cumprir os objetivos;


Membros que cooperam e apoiam uns aos outros;
Membros que so disciplinados em seu trabalho.

Processo para equipe de software (TSP)


Estabelecer objetivos
e papis;
Definir um processo
comum de trabalho;
Envolver todos na
produo do plano
e negoci-lo com
a gerncia;
Comunicar constante
e livremente;
Fonte: Livro-texto.

Treinar previamente
em PSP.

Interatividade

Um processo de desenvolvimento define um conjunto de


atividades para organizar e padronizar a construo de um
software. A fase responsvel por definir as caractersticas
tcnicas da arquitetura do software :
a) Fase de construo.
b) Fase de concepo.
c) Fase de manuteno.
d) Fase de elaborao.

e) Fase de transio.

Modelos de ciclo de vida de software


Modelos de ciclo de vida definem um conjunto distinto de
atividades, aes, tarefas, marcos e produtos de trabalho que
so necessrios para fazer engenharia de software com alta
qualidade.
Esses modelos fornecem um roteiro til para o trabalho de
engenharia de software.

Modelos de ciclo de vida de software

Principais modelos de ciclo de vida


Modelo codifica-remenda;
Modelo sequencial linear (cascata);
Modelo incremental;

Modelo RAD;
Modelo prototipao;
Modelo espiral;
Modelo unificado;
Modelo sala limpa.

Modelos de ciclo de vida de software

O modelo de ciclo de vida processo escolhido com base:


Na natureza do projeto e da aplicao (tipo de software);
Nos mtodos e ferramentas a serem utilizados;
Nos controles e nos produtos intermedirios e finais a
serem entregues.

Modelos de ciclo de vida de software


Ciclo de vida mais comum do software:

Fonte: Livro-texto.

Modelos de ciclo de vida de software

Levantamento das necessidades


Entendimento e levantamento das necessidades
da rea do negcio.
Anlise

Identificao e avaliao das alternativas sistmicas


que atendam aos requisitos.
Projeto
Define as caractersticas tcnicas relacionadas
construo, como arquitetura e banco de dados.

Modelos de ciclo de vida de software

Desenvolvimento
Inclui a codificao e os testes do novo sistema.
Implantao
Consiste em transferir a aplicao do ambiente de
desenvolvimento para o ambiente de produo.
Manuteno
Atividades relacionadas a correes e/ou incluso de novas
funcionalidades aps o sistema estar em produo.

Modelo codifica-remenda
o modelo de ciclo de vida mais catico;
Parte de uma especificao simples ou de uma reunio
para iniciar a codificao, correes so feitas medida
que surgem os defeitos;
No h separao de papis, todos fazem todas as atividades;
Ainda utilizado nos dias atuais.

Modelo sequencial linear (cascata)

Fonte: Livro-texto.

Modelo sequencial linear (cascata)

Engenharia de sistemas
Envolve a coleta das necessidades dos usurios.
Define-se:
os requisitos de negcio;

a avaliao do sistema atual em uso, se existir;


elementos de software e hardware necessrios.

Modelo sequencial linear (cascata)

Anlise
Concentra-se no detalhamento sobre o que deve ser feito.
Design (projeto):
define como a aplicao ser construda;

envolve a definio da arquitetura de software, banco de


dados e caractersticas visuais.

Modelo sequencial linear (cascata)

Codificao
Traduo dos requisitos para uma linguagem de
programao.
Testes

Verifica se a aplicao est de acordo com a sua


especificao.
Manuteno
Envolve as alteraes no sistema relacionadas aos erros,
evolues de negcios ou evolues tcnicas.

Modelo sequencial linear (cascata)

Principais dificuldades
Os projetos nem sempre so sequenciais e as mudanas
sempre trazem problemas.
O produto somente visvel no final de todo o ciclo.

Quando utilizar
Projetos com requisitos bem definidos.
Projetos pequenos, com durao 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
opes abaixo uma de suas caractersticas?
a) um processo interativo.
b) indicado para projetos longos.
c) O produto visto somente ao final.
d) indicado para projetos com requisitos mal definidos.
e) Nenhuma das alternativas.

Modelo incremental: caractersticas

Divide o desenvolvimento de software em incrementos


(que so partes do sistema) que independem
uns dos outros.
Cada sequncia linear produz uma parte do software. O
processo se repete at que o produto esteja completo.
O incremento inicial chamado de ncleo de produto.
Isto quer dizer que os requisitos bsicos devem ser
satisfeitos logo no incio do projeto.

Modelo incremental

Fonte: Livro-texto.

Modelo incremental: quando utilizar?

Para sistemas que podem ser divididos em mdulos.

Para sistemas com muitas alteraes de requisitos.

Quando o usurio necessita utilizar uma parte do produto


antes do final de um projeto.

Quando h prazo de entrega que no pode ser modificado.

Modelo incremental

Vantagens
Entregas parciais facilitam a validao do cliente.
Feedback constante aumenta a qualidade.
Cada incremento uma parte de software utilizvel.

Problema
Cliente pode no aceitar a diviso em mdulos.

Modelo Rapid Application Development (RAD)

um modelo de processo de desenvolvimento de software


incremental, que enfatiza um ciclo de desenvolvimento
extremamente curto (em mdia de 60 a 90 dias).

O desenvolvimento rpido obtido usando uma construo


baseada em componentes.

Pode ser dividido entre vrias equipes RAD, no final


integradas para formar o todo.

Modelo Rapid Application Development (RAD)

Fonte: Livro-texto.

Modelo RAD: quando utilizar?

As restries de tempo impostas devem ter um mensurvel


de, em mdia, de 60-90 dias.

Se a aplicao de software pode ser modularizada de forma


que cada funo principal possa ser completada em menos
de 3 meses.

Cada funo principal pode ser tratada por uma equipe


distinta e depois integrada para formar um todo.

Modelo RAD

Vantagens
Ciclo curto de desenvolvimento.
Usa prototipao interativa e viva.
Aumento do reuso do cdigo.

Problemas
No indicado para projetos grandes e complexos.
No aplicado a projetos com alto risco tcnico.

Modelo de prototipao: caractersticas


um modelo evolucionrio.
Pode seu usado por qualquer dos demais modelos.
Utilizado para identificar e validar os requisitos.
Permite visualizar como o sistema ficar quando estiver
pronto.

Modelo de prototipao

Fonte: Livro-texto.

Modelo de prototipao: quando utilizar?


Quando os requisitos esto mal definidos ou difceis de serem
compreendidos.
Um meio de reduo de risco, ao permitir que o usurio
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 no decorrer de desenvolvimento.

Modelo de prototipao

Vantagens
Reduz o nmero de mudanas.
Aumenta a qualidade.
Pode reduzir o tempo de desenvolvimento.

Problemas
O cliente acha que o produto est pronto.
O projetista pode incorporar solues inadequadas.

Interatividade

Os modelos de ciclo de vida de desenvolvimento de software


incremental e RAD so semelhantes em sua estrutura. Assinale
a alternativa que indica uma dessas semelhanas.
a) Usam prototipao.
b) Dividem o software em partes menores.
c) Utilizam componentes.
d) No melhoram a qualidade.
e) So testados s ao final de todo o projeto.

Modelo espiral: caractersticas


Engloba a natureza iterativa do modelo de prototipao
com os aspectos do modelo cascata.
Cada loop representa uma fase do processo de software.
Um loop pode estar relacionado com a viabilidade do
sistema, o prximo loop com a definio de requisitos, o
prximo com o projeto e assim por diante.
A cada ciclo so produzidas verses cada vez mais
completas do software.

Modelo espiral

Fonte: Livro-texto.

Modelo espiral: quando utilizar?


Para softwares de grande porte.
Para softwares que possuem riscos no seu
desenvolvimento, pois os riscos podem ser reduzidos com
o mecanismo de prototipao em cada estgio de evoluo
do produto e com a anlise preventiva de riscos.

Modelo espiral

Vantagens
Uma alternativa ao ciclo cascata.
Primeiro modelo a incluir a anlise de riscos.
Permite maior interao com o cliente.

Problema
Difcil convencer o cliente que uma abordagem
evolutiva melhor.
Exige experincia na avaliao de riscos e no uso
do modelo.

Processo unificado: caractersticas


Baseado em casos de uso.
Centrado em arquitetura.
Modela o software utilizando a UML.
Desenvolve software iterativamente.

Gerencia requisitos.
Efetua a verificao contnua da qualidade.

Processo unificado
Rational Unified Process (RUP):

Fonte: Livro-texto.

Processo unificado: quando utilizar?


Por ser um processo configurvel, pode ser utilizado para
qualquer tipo de projeto.

Processo unificado

Vantagens
Tolerncia s mudanas de requisitos.
Elementos de um software so integrados
progressivamente.

Incorpora formalmente a gerncia de projeto ao ciclo.


Problema
Cliente no aceita o processo interativo.
Complexidade de suas fases e fluxos.
indispensvel que os profissionais sejam capacitados
no processo.

Processo cleanroom (sala limpa)


uma aplicao prtica de matemtica e estatstica para
produzir software de alta qualidade.
Aplica fortemente preveno de erros.
Utiliza mtodos de especificao precisos, chamadas de
especificaes formais.
A especificao formal complexa e trabalhosa.

Processo cleanroom (sala limpa): quando utilizar?


Normalmente utilizada na produo de softwares que trazem
risco perda de vidas humanas, como controle de trens,
metrs, avies e usinas nucleares.

Processo cleanroom (sala limpa)

Vantagens
Alta qualidade.
Baixo nmero de erros.
Problema

Processo muito complexo.


Requer conhecimento matemtico.
Produtividade menor.

Interatividade

Com relao s afirmativas abaixo sobre o processo unificado,


qual a alternativa correta:
a) No utiliza tcnicas para garantia da qualidade.
b) um processo simples, que no requer treinamento.

c) um processo rpido e de fcil aceitao pelo cliente.


d) baseado em casos de uso e centrado em arquitetura.
e) No requer gerenciamento do projeto.

AT A PRXIMA!