Sei sulla pagina 1di 33

c  




 




Objetivo fundamental do engenheiro: Entregar o projeto da
forma mais econômica possível, minimizando o tempo e o
esforço.




20 - Junho - 2006
¢ntrodução

Ä O que é Engenharia de software?


Ä O que é um produto de software?
c  



Ä Gecessidade de abordar de forma mais
disciplinada, o desenvolvimento e produção
de software.

Ä O Processo de Engenharia de Software


envolve todas as atividades relacionadas ao
desenvolvimento de software, incluindo
recursos, contrato, prazo e preço.
c




c




Ä moftware cada vez
Ä Maior;

Ä Mais funcionalidades;

Ä Mais complexo;

Ä Abrangendo mais usuários;

Ä Exigindo a participação de equipes em seu


desenvolvimento;
c
^c c
^c
^ 

  



 

^  
 
^  ^  

  
 c!"#c$"%

Ä Abordagem Ơdo
berço ao túmuloơ
(cradle to grave),
em que cada etapa
do ciclo de vida de
um produto possui
impactos
econômicos e
ambientais
associados.

 


Ä O modelo de ciclo de vida é o centro do


processo de gerenciamento do produto.

Ä Ciclo de desenvolvimento do software = ƠO


modo com que fazemos as coisas por aqui".

Ä O ciclo de desenvolvimento de um produto é a


definição dos passos que transformam aquela
idéia no produto acabado.
"#c$" c
"#c$" c

Definição dos requisitos   



 
Análise
  
 
Projeto

Implementação

Teste/Avaliação

Implantação

Manutenção
^ 

$

Ä : passos que indicam o progresso do


:
projeto.
Ä º :
: ações requeridas para criar e
entregar o projeto.
Ä m&'
 :
m&' : produtos tangíveis criados
durante o projeto.
Ä u  ()
():: eventos importantes
no projeto (momentos de decisão).
&* $

Ä efinição de atividades e pontos de controle;


Ä Planejamento e acompanhamento do
progresso;
Ä Planejamento e acompanhamento do
orçamento;
Ä Estimativas e Gerência de risco;

Ä A equipe deve conhecer e entender o modelo


a ser adotado.
c+,c+-º"ºcm"mcuºm
Ä Objetivos a serem alcançados;
Ä Visão global do sistema:

Ä tarefas,

Ä interface com o usuário,

Ä interface com hardware,

Ä integração com outros sistemas.

Ä Recursos isponíveis ƛ HW, mW, PW,


financeiro, tempo, condições de trabalho.
º+.#"mccc "m"m
Ä Envolve a coleta dos requisitos para todos os
elementos do sistema
Ä A análise envolve diversas tarefas:
Ä Requisitos funcionais e não-funcionais;

Ä ¢dentificar as necessidades dos usuários;

Ä Realizar a análise dos recursos necessários


tanto de ferramentas quanto de pessoal;
Ä Realizar um projeto inicial e global do
sistema, incluindo sua divisão em módulos;
º+.#"mccc "m"m
Ä O tempo utilizado no entendimento do
problema é um excelente investimento. Os
requisitos de software são a base a partir da
qual a qualidade é medida.
Ä esta forma, a falta de conformidade aos
requisitos significa falta de qualidade.
AG ¢mE E REQU¢m¢Om - saída
Ä Ao concluir a etapa, a Especificação dos
Requisitos de moftware é "assinada" pelo
cliente e pelo desenvolvedor.

Ä A especificação
torna-se um
"contrato" de
desenvolvimento
de software.
!+"ºmcc#""º

Ä Entrevistas entre o analista e o cliente


Ä Questionários

Ä écnicas JA

Ä O analista deve saber fazer as perguntas


certas, orientar, esclarecer e dar conselhos
Ä O cliente deve ser capaz de esclarecer suas
expectativas e metas de projeto.
Ä Resultado: Especificação dos Requisitos
ºmcc^/c
Ä Refinar a especificação global do
sistema gerada na fase de
requisitos
Ä O objetivo é realizar uma
especificação mais detalhada
do sistema, de forma que seja
possível avaliar a qualidade
prevista, antes de iniciar a
codificação.
c
^/c c
^/c

Ä efinições realizadas
nesta fase:
Ä Estrutura de dados que
será utilizada
Ä Arquitetura do Software

Ä etalhes
Procedimentais
Ä ¢nterface entre módulos
e com o usuário
""º
Ä Consiste simplesmente em implementar o que
foi definido no projeto.

Ä Quando o projeto é bem feito e os


desenvolvedores são experientes e/ou
competentes, esta etapa é relativamente
simples
""º
(' ))
Ä Em outras palavras, esta etapa consiste da
tradução do projeto para uma linguagem
artificial, resultando em instruções executáveis
pelo computador.

Ä alando de maneira ainda mais


simples: codificação significa
escrever os programas.
cmcm

Ä Gão existe sistema sem bugs;


Ä Exemplos: GAmAC ƛ XUXA;
Ä modelo V, modelo W, e
outros modelos;

` Consertar um defeito quando o sistema está


sendo criado sai muito mais barato do que
fazê-lo quando ele está em produção.
cmcm
Ä O processo de testes deve ser
formalizado e documentado.
Ä Verificar e Validar;
Ä estes ao longo de todo o ciclo
de desenvolvimento; estar
antes, durante e depois do
produto entregue.
cmcm

Ä estes de Software, é uma nova área da


ciência de computação que trata de
descoberta de bugs e defeitos;
Ä Estou construindo um sistema correto?
Ä Estou construindo o sistema certo?
cmc
cmc0
0 º"1º^cº
Ä este caixa preta ƛ consiste em testar o
software ignorando o processamento interno.
Apenas verifica se, para um conjunto de dados
de entrada, o conjunto de dados de saída é o
esperado.
cmc0
cmc0 º"1º2º+º
Ä Consiste em testar o software, o que pode ser
realizado de diversas formas:
Ä este caixa branca ƛ consiste em testar
internamente o software, garantindo que todas
as instruções tenham sido testadas

Ä Outros tiposƦ performance, carga, stress


   
Ä ^   (simular Ơnơ usuários usando
o sistema simultâneamente)
Ä  (quando da liberação de uma
nova funcionalidade de um sistema, deve-se
verificar se OAm as demais funcionalidades
(supostamente não impactadas pela
manutenção), continuam funcionando, isto é,
se o sistema não regrediu a um estágio
anterior.
   
Ä +&^3"  
Aplicativos com interface GU¢ podem até ser
desenvolvidos com certa facilidade, mas seus
testes se transformaram em um pesadelo
pesadelo..
Ä O grande número de eventos
eventos,, triggers,
controls, parâmetros, etc. que precisam ser
testados em múltiplas combinações.
Ä erramentas podem viabilizar estes tipos de
testes..
"' 
 
 

Ä Pôr o Software em operação. m 


Ä Entrada de dados;
Ä Conversões de dados;
Ä reinamento de operadores;   

Ä isponibilização de Manuais;
Ä Suporte à operação ƛ (call
center);
 
m
 

^ ''
uº+c+
Ä Muito provavelmente, o
software deverá sofrer
mudanças depois de entregue
ao cliente.

Ä evido a novas
funcionalidades requeridas ou
erros.
'uº+c+
Ä c : melhorar o
desempenho do
software ou adicionar
funcionalidades

ÄManutenção  ::


Corrigir erros.
'uº+c+
Ä º'  : adaptar o software devido
a mudanças no hardware ou software
(por exemplo, novo sistema operacional)
$
^ 

DEFINIÇÃO ! "#   O QUE



 m 

^ 

DESENVOLVIMENTO    COMO




IMPLANTAÇÃO Tornar
@  
Realidade
  

MANUTENÇÃO   MUDANÇAS


  
Processo de Eng de moftware
A Escolha do Paradigma

Considerar:

Ä Expectativas do cliente;
Ä ipo de aplicação a ser desenvolvida;
Ä Controles e produtos que precisam ser
entregues;
Ä Processo de desenvolvimento a ser adotado;
Ä Métodos e ferramentas a serem utilizados.

Potrebbero piacerti anche