Buscar

Engenharia de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de Software I
CICLO DE VIDA
e
PROCESSO DE 
DESENVOLVIMENTO 
DE SOFTWARE 
Software - Aplicações
BBÁÁSSIICCOO programas de apoio a outros programas
DDEE TTEEMMPPOO RREEAALL monitora, analisa e controla eventos do
mundo real
CCOOMMEERRCCIIAALL operações comerciais e tomadas de
decisões administrativas
CCIIEENNTTÍÍFFIICCOO EE DDEE
EENNGGEENNHHAARRIIAA
algoritmos de processamento de números
EEMMBBUUTTIIDDOO controla produtos e sistemas de mercados
industriais e de consumo
DDEE CCOOMMPPUUTTAADDOORR
PPEESSSSOOAALL
processamento de textos, planilhas
eletrônicas, diversões, etc.
DDEE IINNTTEELLIIGGÊÊNNCCIIAA
AARRTTIIFFIICCIIAALL
algoritmos não numéricos para resolver
problemas que não sejam favoráveis à
computação ou à análise direta
3
Velhice DECADÊNCIA
Operação
+
Revisão
+
Reavaliação
Operacionalidade
Avaliações
Necessidades Atualizações
Nascimento
e
Infância
CRIAÇÃO
Desenvolvimento
+
implantação
Análise
Projeto
Implementação
Testes
Implantação
Adolescência
e
Maturidade
EVOLUÇÃO
Operacionalidade
Feedback
Análise Proc.Atuais
Operação
+
Controle
+
Avaliação
Ciclo de Vida dos Sistema
4
Processo de Software
� O que é processo ?
� É um conjunto de tarefas ordenadas e 
resultados associados que geram um produto;
� Um roteiro que o ajuda a criar a tempo um 
resultado de alta qualidade. 
5
Processo de Software
� Há quatro atividades de processo de 
software fundamentais, a saber:
�Especificação do software;
�Desenvolvimento do Software;
�Validação do Software;
�Evolução do Software
6
Interesse fica concentrado 
principalmente no uso do softwareUsuário
Desenvolvedor
Gerente
A qualidade fica mais voltada às 
características internas do software
A qualidade depende do ponto de vista
A qualidade do produto não pode 
ser desvinculada dos interesses da 
organização
Processo de Software - Qualidade
7
Processo de Software 
– Modelo de Processo de Software
� Modelo de Ciclo de Vida de um 
processo: representa uma abordagem 
específica de desenvolvimento de software 
baseada no relacionamento entre etapas e 
atividades de um processo.
� Ciclo de Vida: tempo de vida de um 
software, com início na decisão de sua 
construção até o momento de sua 
desativação completa.
8
Processo de Software 
– Modelo de Processo de Software
� Alguns modelos de processo:
�� Modelo SeqModelo Seqüüencial Linear encial Linear -- CASCATACASCATA
�� ModeloModelo RAD RAD 
�� Modelos EvolucionModelos Evolucionááriosrios
�� Modelo de Modelo de PrototipaPrototipaççãoão
�� IncrementalIncremental
�� EspiralEspiral
Processo de Software – Modelo 
Seqüencial Linear
� Também conhecido como ciclo de vida 
clássico ou Modelo Cascata:
� Modelo mais antigo e mais usado;
� Modelado em função do ciclo de engenharia 
convencional;
� Requer uma abordagem sistemática e 
seqüencial para o desenvolvimento de um 
software;
10
Processo de Software – Modelo 
Seqüencial Linear
� Muitos aplicam esse modelo de forma 
estritamente linear:
Engenharia de 
Sistemas / Informação
AnáliseAnálise ProjetoProjeto Codificação
Codificação TestesTestes
11
Processo de Software – Modelo 
Seqüencial Linear
� Mas o modelo original prevê a volta:
Engenharia de 
Sistemas
Engenharia de Engenharia de 
SistemasSistemas
Análise de 
Requisitos 
AnAnáálise de lise de 
Requisitos Requisitos 
Projeto Projeto Projeto 
Codificação CodificaCodificaçção ão 
Testes Testes Testes 
ManutençãoManutenManutenççãoão
Processo de Software – Modelo 
Seqüencial Linear
Engenharia 
de SistemasAnálise de 
Requisitos Projeto 
Codificação 
Testes 
Manutenção
ANANÁÁLISE E ENGENHARIA DE LISE E ENGENHARIA DE 
SISTEMASSISTEMAS
1. Envolve a coleta de requisitos de todos 
os elementos do sistema;
2. Essa visão de sistema é essencial quando 
o software faz interface com outros 
elementos como pessoas e BD;
Processo de Software – Modelo 
Seqüencial Linear
Engenharia 
de SistemasAnálise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
ANANÁÁLISE DE REQUISITOS DE LISE DE REQUISITOS DE 
SOFTWARESOFTWARE
1. processo de coleta dos requisitos é
intensificado e concentrado 
especificamente no software
2. deve-se compreender o domínio da 
informação, a função, desempenho e 
interfaces exigidos
3. os requisitos (para o sistema e para 
o software) são documentados e 
revistos com o cliente
Processo de Software – Modelo 
Seqüencial Linear
Engenharia 
de SistemasAnálise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
PROJETOPROJETO
1. tradução dos requisitos do software para um 
conjunto de representações que podem ser 
avaliadas quanto à qualidade, antes que a 
codificação se inicie
2. se concentra em 4 atributos do programa: 
� Estrutura de Dados, 
� Arquitetura de Software, 
� Detalhes Procedimentais e 
� Caracterização de Interfaces
Processo de Software – Modelo 
Seqüencial Linear
Engenharia 
de SistemasAnálise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
CODIFICACODIFICAÇÇÃOÃO
1. tradução das 
representações do 
projeto para uma 
linguagem “artificial”
resultando em 
instruções executáveis 
pelo computador
Processo de Software – Modelo 
Seqüencial Linear
Engenharia 
de SistemasAnálise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
TESTESTESTES
� Concentram-se:
1. nos aspectos lógicos internos do 
software, garantindo que todas as 
instruções tenham sido testadas 
2. nos aspectos funcionais externos, 
para descobrir erros e garantir que 
a entrada definida produza 
resultados que concordem com os 
esperados.
Processo de Software – Modelo 
Seqüencial Linear
Engenharia 
de SistemasAnálise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
MANUTENMANUTENÇÇÃOÃO
1. o software deverá sofrer 
mudanças depois que for 
entregue ao cliente 
Processo de Software – Modelo 
Seqüencial Linear
� Problemas:
� Projetos reais raramente seguem o fluxo de sequencial
proposto
� É difícil estabelecer todos os requisitos no começo do projeto 
na qual existe uma incerteza natural quanto a esses requisitos
� Uma versão do software só vai ficar pronto em um ponto 
tardio do desenvolvimento
� Assim se houver algum erro não detectado na análise ou projeto o 
resultado pode ser desastroso
� Há muitos estágios bloqueantes que permitem a ociosidade 
dos desenvolvedores em alguns momentos
19
� É o modelo seqüencial linear, mas que enfatiza um 
desenvolvimento extremamente rápido
� A “alta velocidade” é conseguida através de uma 
abordagem de construção baseada em componentes
� Usado quando os requisitos são bem definidos e o 
escopo do sistema é restrito
Processo de Software 
– Modelo RAD (Rapid Application Development)
20
Processo de Software 
– Modelo RAD
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
equipe # 3
equipe # 2
equipe # 1
60-90 dias
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
Modelagem do negócio:
o fluxo de informação entre as funções
do negócio são modeladas de maneira a
responder às questões:
� que informação dirige o processo do negócio?
� que informação é gerada?
� quem gera a informação?
� para onde a informação vai?
� quem a processa?Processo de Software 
– Atividades do Modelo RAD
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
Modelagem dos dados:
o fluxo de informação definido na fase
anterior é refinado em um conjunto de 
objetos de dados que são necessários
para dar suporte ao negócio; são
identificadas as características de 
cada objeto [atributos] e são definidos
seus relacionamentos.
Processo de Software 
– Atividades do Modelo RAD
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
Modelagem do processo:
os objetos de dados definidos são
transformados para se obter o fluxo
de informação necessário para
implementar uma função do negócio;
são criadas as descrições dos 
processamentos necessários para
manipular esses objetos de dados
Processo de Software 
– Atividades do Modelo RAD
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
Geração da aplicação:
o modelo RAD assume o uso de 
técnicas de 4a. geração; ao invés de
criar software de forma convencional,
reusa componentes quando possível
ou cria componentes reutilizáveis;
ferramentas automatizadas são
utilizadas para gerar software
Processo de Software 
– Atividades do Modelo RAD
modelagem
do negócio
modelagem
dos dados
modelagem
do processo
geração da
aplicação
teste e 
modificação
Teste e modificação:
por reutilizar componentes, muitas
vezes eles já foram testados, o que
reduz o tempo de teste; os novos
componentes devem ser testados
e as interfaces devem ser 
exercitadas
Processo de Software 
– Atividades do Modelo RAD
Quando usar?
• as restrições de tempo impostas pelo projeto
demandam um escopo de escala
• quando a aplicação pode ser modularizada de 
forma que cada grande função possa ser 
completada em menos de 3 meses
• cada grande função pode ser alocada para uma
equipe distinta e, depois são integradas para formar o 
todo
Processo de Software 
–Modelo RAD
• RAD requer um comprometimento entre 
desenvolvedores e clientes para que as atividades
possam ser realizadas rapidamente e o sistema seja
concluído em um tempo abreviado
• Se o comprometimento for abandonado por qualquer
das partes, o projeto falhará
• Não é apropriado quando os riscos são grandes
Processo de Software 
– Problemas com Modelo RAD
Processo de Software 
– Modelos de Processo Evolucionários
� usado quando o deadline (prazo final para entrega de um 
trabalho ou projeto) não é adequado para o 
desenvolvimento do software; a data de término não
é realista
� uma versão limitada pode ser introduzida para
atender à competitividade e pressões do negócio
� são liberados parcialmente
� os detalhes e extensões ainda devem ser definidos
29
Processo de Software 
– Modelo Espiral
� engloba a natureza iterativa da Prototipação
com os aspectos sistemáticos e controlados do 
Modelo Linear
� fornece o potencial para o desenvolvimento 
rápido de versões incrementais do software
� Cada Loop da espiral é uma fase do 
desenvolvimento que sempre passa por 4 
aspectos
30
Processo de Software 
– Modelo Espiral
Planejamento
Definição de Objetivos
Avaliação e redução de risco
Desenvolvimento e Validação
Cada loop da espiral é
uma fase de 
desenvolvimento do 
software
� é, atualmente, a abordagem mais realística 
para o desenvolvimento de software em 
grande escala
� usa uma abordagem que capacita o 
desenvolvedor e o cliente a entender e reagir 
aos riscos em cada etapa evolutiva
� exige considerável experiência na 
determinação de riscos e depende dessa 
experiência para ter sucesso
Processo de Software 
– Modelo Espiral - Comentários
Processo de Software 
– Modelo Espiral
Processo de Software 
– Modelo Espiral
Processo de Software 
– Modelo Espiral
Processo de Software 
– Modelo Espiral
Processo de Software 
– Modelo Espiral
Processo de Software
– Desenvolvimento Orientado a Reuso
� Baseado em reutilização de componentes de 
software e que podem ser acessados com 
alguma infraestrutura de integração para estes
componentes (desenvolvidos por terceiros)
� Estágios do Processo
� Análise dos Componentes
� Modificação dos Requisitos
� Projeto de sistema com reuso
� Desenvolvimento e Integração
� A principal motivação para a reutilização está
relacionada ao aumento dos níveis de qualidade 
e produtividade no desenvolvimento de software
Processo de Software
– Desenvolvimento Orientado a Reuso
� Técnicas orientadas a objetos
� oferecem um quadro técnico para o ciclo de 
vida baseada sobre componentes
� uma classe encapsula os dados e algoritmos que 
manipulam os dados
� reutilização dos componentes (classes) em 
várias aplicações e plataformas
� baseada na definição de bibliotecas de classes
Processo de Software
– Desenvolvimento Orientado a Reuso
� Desvantagens:
� Adequação dos requisitos são inevitáveis
� O produto final pode não ser aquele que o cliente 
pediu
� Difícil controle sobre a evolução do sistema, pois 
os componentes evoluem independentemente
40
Revisão
� Produto de Sw = programa+estrutura dados+documentação
� Engenharia de Software uma disciplina da engenharia, 
se ocupa de todos os aspectos do desenvolvimento de 
software e utiliza-se de métodos, ferramentas e processos 
focando a qualidade
� Processo de Software: é um conjunto de atividades e 
resultados associados que geram um produto de software
� Atividades: Especificação, Desenvolvimento, Validação e 
Evolução do Software
� 3 Fases:
� Definição - “o que” (Engenharia do Sistema, Planejamento
do Projeto e Análise de Requisitos)
� Desenvolvimento - “como” (Projeto, Geração do Código, 
Teste)
� Manutenção
� Modelos de Processo: sequencial, RAD, prototipação, 
incremental e espiral
41
Referências
� Engenharia de Software Teoria e Prática. Pfleeger, L.S. 
– Ed. Pearson
� Capitulo 1
� Engenharia de Software. Pressman, R. – Ed. McGraw Hill
� Capitulo 2
� Engenharia de Software. Fundamentos, Métodos e 
Padrões. Pádua, W. – Ed. LTC
� Capitulo 5
� Engenharia de Software Aplicada. Magela, R. – Ed. Alta 
Books
� Capitulo 3

Outros materiais