Buscar

EC205 Cap 4 Engenharia de Software A2013 S2 - PA1

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 37 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 37 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 9, do total de 37 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

w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Cap. 4 – Engenharia de Software 
Adaptado do material dos professores Guilherme A. B. Marcondes e Valeska P. P. Marcondes 
Baseado no livro: Engenharia de Software – Roger S. Pressman – Sexta Edição 
Prof. Afonso Celso Soares 
EC205 – Engenharia de 
Software I 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
 Onde está o software? 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
 Onde está o software? 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
A importância do software e seus desafios 
 1950, 1960, 1970 
 1980 
Desafio 
Desenvolver hardware com baixo 
custo de processamento e 
armazenamento de dados 
Desafio Melhorar a qualidade e custo 
de soluções desenvolvidas 
com software. 
O software tornou-se um 
fator que direciona as 
decisões de mercado. 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
O papel evolutivo do software 
1950 1960 1970 2000 1980 1990 
Os primeiros 
anos: 
- Orientação 
batch 
- Distribuição 
limitada 
- Software 
customizado 
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
O papel evolutivo do software 
1950 1960 1970 2000 1980 1990 
Os primeiros 
anos: 
- Sistemas 
batch 
- Distribuição 
limitada 
- Software 
customizado 
A segunda era: 
- Multiusuário 
- On-line 
- Tempo real 
- Banco de 
dados 
- Manutenção 
de sw 
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
O papel evolutivo do software 
1950 1960 1970 2000 1980 1990 
Os primeiros 
anos: 
- Orientação 
batch 
- Distribuição 
limitada 
- Software 
customizado 
A segunda 
era: 
- Multiusuário 
- Tempo real 
- Banco de 
dados 
- Manutenção 
de sw 
 
A terceira era: 
- Sistemas 
distribuídos 
- “Inteligência” 
embutida 
- Hardware de 
baixo custo 
- Impacto de 
consumo 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
O papel evolutivo do software 
1950 1960 1970 2000 1980 1990 
A terceira era: 
- Sistemas 
distribuídos 
- “Inteligência” 
embutida 
- Hardware de 
baixo custo 
- Impacto de 
consumo 
A quarta era: 
- Sistemas 
poderosos para 
microcomputador 
- Tecnologias 
orientadas a 
objetos 
- Redes neurais 
artificiais 
Os primeiros 
anos: 
- Orientação 
batch 
- Distribuição 
limitada 
- Software 
customizado 
A segunda 
era: 
- Multiusuário 
- Tempo real 
- Banco de 
dados 
- Manutenção 
de sw 
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
O papel evolutivo do software 
1950 1960 1970 2000 1980 1990 
Os primeiros 
anos: 
- Orientação 
batch 
- Distribuição 
limitada 
- Software 
customizado 
 Sem administração 
Alto custo de manutenção 
A segunda era: 
- Multiusuário 
- On-line 
- Tempo real 
- Banco de 
dados 
- Manutenção 
de sw 
 
A terceira era: 
- Sistemas 
distribuídos 
- “Inteligência” 
embutida 
- Hardware de 
baixo custo 
- Impacto de 
consumo 
A quarta era: 
- Sistemas 
poderosos para 
microcomputador 
- Tecnologias 
orientadas a 
objetos 
- Redes neurais 
artificiais 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Os problemas continuaram... 
• Por que demora tanto tempo para que os sistemas sejam concluídos? 
• Por que os custos são tão elevados ? 
• Por que não entregamos sistemas sem erros aos nossos clientes ? 
• Por que temos dificuldade em medir o progresso enquanto o software 
está sendo construído ? 
 
Práticas de Engenharia 
de Software 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Enfim, o que é? 
Software é: 
“1 - Instruções (programas de computador) que quando 
executadas, produzem a função e o desempenho desejados.” 
“2 - Estruturas de dados que possibilitam que os programas 
manipulem adequadamente a informação.” 
“3 - Documentos que descrevem a operação e o uso dos 
programas.” 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Características do software 
• O software é desenvolvido ou projetado por engenharia e não 
manufaturado no sentido clássico. 
 
• Os custos de software estão concentrados no trabalho de engenharia. 
 
• Software não se desgasta, se deteriora. 
 
• A maioria é feita sob medida em vez de ser montada a partir de 
componentes existentes. 
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
T
a
x
a
 d
e
 f
a
lh
a
s
 
Tempo 
Mortalidade 
Infantil 
desgaste 
Características do software 
Curva de Falhas do Hardware 
F
o
n
te
: 
E
n
g
e
n
h
a
ri
a
 d
e
 S
o
ft
w
a
re
 –
 R
o
g
e
r 
S
. 
P
re
s
s
m
a
n
 –
 6
a
 E
d
iç
ã
o
 
Mortalidade 
Infantil 
Desgaste 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Tempo 
Continua na mesma 
taxa até a 
obsolescência 
Características do software 
Curva de Falhas do Software (Idealizada) 
F
o
n
te
: 
E
n
g
e
n
h
a
ri
a
 d
e
 S
o
ft
w
a
re
 –
 R
o
g
e
r 
S
. 
P
re
s
s
m
a
n
 –
 6
a
 E
d
iç
ã
o
 
T
a
x
a
 d
e
 f
a
lh
a
s
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Tempo 
Continua na mesma 
taxa até a 
obsolescência 
Mudança 
Características do software 
F
o
n
te
: 
E
n
g
e
n
h
a
ri
a
 d
e
 S
o
ft
w
a
re
 –
 R
o
g
e
r 
S
. 
P
re
s
s
m
a
n
 –
 6
a
 E
d
iç
ã
o
 
Curva de Falhas do Software (Real) 
T
a
x
a
 d
e
 f
a
lh
a
s
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Software - Categorias 
• Software de Sistemas (Básico): Apoio a outros programas 
(compiladores, componentes do sistema operacional, drivers, etc.). 
 
• Software de Aplicação: Programas isolados que resolvem uma 
necessidade específica do negócio (processamento de transações no 
ponto de venda, controle de processo de fabricação, etc.). 
 
• Software Científico e de Engenharia: Algoritmos de processamento de 
números. 
 
• Software Embarcado: Dentro de um produto ou sistema e é usado para 
controlar características e funções. Agrega valor ao hardware. 
(automóveis, eletrodomésticos, equipamentos eletrônicos, etc.) 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Software - Categorias 
• Software para Linhas de Produtos: Projetado para fornecer uma 
capacidade específica a ser usada por muitos clientes diferentes. 
(controle de estoque, folha de pagamento, editor de texto, planilhas, 
etc.). 
 
• Aplicações Web: Acesso via Web. Fornecem não apenas características 
isoladas, funções de computação e conteúdo aos usuários, mas também 
estão integradas ao banco de dados da empresa e às aplicações do 
negócio (sistema de gestão corporativa). 
 
• Software para Inteligência Artificial: Faz uso de algoritmos não 
numéricos para resolver problemas complexos (robótica, 
reconhecimento de imagens e de voz, etc.). 
w
w
w
.i
n
a
te
l.
b
rIntrodução à Engenharia de Software 
Problemas do desenvolvimento de software 
 
 
• Estimativas de prazo e de custo imprecisas. 
• Produtividade das pessoas envolvidas. 
• Qualidade de software inadequada. 
• Custos excessivos. 
• Os prazos se arrastam por meses ou anos. 
• Pouca coisa tem sido feita para melhorar a produtividade dos 
profissionais da área de software. 
• Os índices de erros nos novos programas causam insatisfação ao cliente 
e a falta de confiança. 
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Sintomas ... 
 
 
• Entendimento impreciso das necessidades dos usuários finais 
• Dificuldades em tratar as mudanças de requisitos 
• Módulos que não se integram com eficiência. 
• Software de difícil manutenção e extensão. 
• Descoberta tardia de sérias falhas de projeto. 
• Inaceitável desempenho de software. 
• Falta de gerência dos requisitos; 
• Comunicação ambígua e imprecisa; 
• Arquitetura frágil; 
• Testes insuficientes; 
• Falha ao atacar os riscos; 
• Inconsistências não detectadas nos requisitos, 
modelagens e implementações. 
... e causas de 
problemas 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
Meu pessoal tem ferramentas de desenvolvimento de 
software de última geração; afinal nós compramos os mais 
novos computadores! 
• Isto não garante a qualidade no desenvolvimento. 
• As ferramentas de engenharia de software são importantes 
para aumentar a produtividade e qualidade, porém elas são 
corretamente utilizadas? 
• Os profissionais as utilizam e conhecem todos os seus 
recursos? 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
Já temos um manual repleto de padrões e procedimentos 
para a construção do software. Isso não é suficiente? 
• O manual pode existir, mas ele é utilizado? 
• Os profissionais de software têm conhecimento de sua 
existência? 
• Ele é completo? 
• Ele está atualizado? 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
Se nós estamos atrasados nos prazos, podemos adicionar 
mais programadores e tirar o atraso! 
• Nem todas as tarefas podem ser divididas. 
• Pessoas precisam ser treinadas. 
• A quantidade de comunicação necessária aumenta. 
1,0 2,1 3,3 4,6 5,10 
Canais de Comunicação = n.(n-1)/2 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
Uma declaração geral dos objetivos é suficiente para se 
começar a escrever programas; podemos preencher os 
detalhes mais tarde. 
• Uma definição inicial ruim com a falta de identificação 
adequada dos objetivos é a principal causa do fracasso dos 
projetos. 
• Uma descrição formal e detalhada do domínio da informação, 
função, desempenho, interfaces, restrições do projeto e 
critérios de validação é FUNDAMENTAL! 
• Necessita de cuidadosa comunicação entre cliente e 
desenvolvedor. 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
Os requisitos do projeto modificam-se continuamente, mas 
as mudanças podem ser facilmente acomodadas, porque o 
software é flexível. 
• Os requisitos do projeto modificam-se, mas o IMPACTO da 
mudança VARIA de acordo com o TEMPO em ela é 
introduzida. 
Definição Desenv. Manutenção 
C
u
s
to
 d
a
 M
u
d
a
n
ç
a
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
Assim que escrevermos o programa e o colocarmos em 
funcionamento nosso trabalho estará completo. 
• “Quanto mais cedo se começa a “escrever o código”, mais 
tempo demora para que se consiga terminá-lo.” 
• Dados da indústria indicam que entre 50 e 70% de todo o 
esforço gasto num programa serão despendidos depois que 
ele for entregue pela primeira vez ao cliente. 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Mito X Realidade 
A única coisa a ser entregue em um projeto bem sucedido 
é o programa funcionando. 
• O programa funcionando é uma boa parte, mas não é tudo! 
• A documentação é a base de um projeto bem sucedido e um 
guia para a manutenção do software. 
 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
O papel do Engenheiro de Software 
Ajudar a solucionar problemas 
Entender a natureza do problema 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Engenharia de Software: uma definição 
1. A aplicação de uma sistemática, disciplinada e com abordagem 
quantitativa, para o desenvolvimento, operação e manutenção de 
software. Trata-se da aplicação da engenharia de software. 
2. O estudo de abordagens para a (1). 
IEEE[IEE93] 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Engenharia de Software: uma tecnologia em camadas 
Compromisso maior: 
entregar o resultado 
com qualidade. 
Qualidade 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Engenharia de Software: uma tecnologia em camadas 
Qualidade 
Processo 
- Une a tecnologia com o desenvolvimento racional 
e oportuno. 
- Base para controle gerencial dos projetos. 
 - Produtos de trabalho produzidos. 
 - Marcos. 
 - Garantia da qualidade. 
 - Controle das modificações. 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Engenharia de Software: uma tecnologia em camadas 
Qualidade 
Processo 
Métodos 
Como fazer para construir um software: 
 - Análise 
 - Modelagem 
 - Construção 
 - Testes 
 - Manutenção 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Engenharia de Software: uma tecnologia em camadas 
Qualidade 
Processo 
Métodos 
Ferramentas 
Apoio ao processo e 
aos métodos. 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Engenharia de Software: uma tecnologia em camadas 
Qualidade 
Processo 
Métodos 
Ferramentas 
Engenharia de Software 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Uma visão geral da Engenharia de Software 
Definição : 
o que 
fazer? 
• Qual informação será processada? 
• Quais funcionalidades (requisitos) e desempenho são esperados? 
• Qual o comportamento que se espera do sistema? 
• Quais interfaces serão estabelecidas? 
• Existe alguma restrição no projeto? 
• Quais serão os critérios de validação do sistema que definirão o 
seu sucesso? 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Uma visão geral da Engenharia de Software 
Definição : 
o que 
fazer? 
Desenvolvi-
mento : 
como fazer? 
• Como os dados serão estruturados? 
• Como as funções serão implementadas dentro da 
arquitetura do software? 
• Como serão as interfaces? 
• Qual linguagem de programação será adotada? 
• Como serão os testes do sistema? 
w
w
w
.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Uma visão geral da Engenharia de Software 
Definição : 
o que 
fazer? 
Manutenção: 
as mudanças 
• Corrigir: devido a erros 
encontrados no sistema. 
• Adaptar: devido a 
mudanças no ambiente. 
• Melhorar: devido a 
identificação de outras 
funcionalidades desejadas. 
Reaplicar os passos 
anteriores, porém 
considerando o novo contexto: 
EXISTE um software ou parte 
dele já desenvolvido. 
Desenvolvi-
mento : 
como fazer? 
w
w
w.i
n
a
te
l.
b
r 
Introdução à Engenharia de Software 
Cap. 2 – Introdução à Engenharia de 
Software 
Prof. Afonso Celso Soares 
EC205 – Engenharia de 
Software I 
Adaptado do material dos professores Guilherme A. B. Marcondes e Valeska P. P. Marcondes 
Baseado no livro: Engenharia de Software – Roger S. Pressman – Sexta Edição

Outros materiais