Buscar

[01] EngSW - Introdução Engenharia de Software v1 6

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 22 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 22 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 22 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

1
Prof. Rafael Targino
rtargino@unicarioca.edu.br
Teoria de Engenharia de 
Software
Aula 1
Introdução Engenharia de Software
Apresentação do Professor
• Formado em Ciência da Computação pela UFRJ e
Mestrado em Engenharia da Computação pela COPPE/UFRJ
• Experiência de 15 anos em análise, projeto e desenvolvimento 
de sistemas
– Sistema de Obtenção da Marinha (Marinha do Brasil)
– Sistema de Controle de Combustível nuclear das Usinas de Angra 
dos Reis (Eletronuclear)
– Software para Planejamento de Contratações do Sistema de 
Controle do Espaço Aéreo Brasileiro (CISCEA/DECEA)
– Arquitetura de Sistemas para o Plano Diretor de Tecnologia da 
Informação (Furnas Centrais Elétricas)
• Certificações em RUP, Scrum e diversas ferramentas IBM 
Rational
2
3
Apresentação dos Alunos:
Curso?
Período?
Área de Interesse na Informática?
Faz Estágio?
4
Engenharia de Software
O que vocês acham que é a 
Engenharia de Software?
3
5
O que é Software?
• Software é:
– Instruções (programas de computador) que, 
quando executadas, produzem a função e o 
desempenho desejados;
– Estruturas de dados que permitem a manipulação 
das informações;
– Documentos que descrevem a operação e uso dos 
programas.
Engenharia de Software
6
Programa x Sistema x Software x 
Aplicação
• Conceitos as vezes utilizados de maneira 
diferente dependendo do contexto, mas que 
no fundo representam a mesma coisa
– Um pedaço de código fonte executado por uma 
máquina para suportar uma necessidade de um 
usuário
4
7
Tipos de Software
• Software Básico
– Software que serve a outro software, hardware, processos, 
pessoas, etc 
– Ex: Sistemas Operacionais
• Sistemas de Informação / Sistemas Corporativos
– Sistemas que gerenciam dados de entrada e saída de uma 
organização e efetuam o seu processamento
• Aplicações
– Programas isolados que resolvem uma necessidade específica 
do negócio.
• Tempo Real
– Sistema que deve responder com suficiente rapidez 
(milisegundos) ou o ambiente ficará fora de controle.
– Ex: Sistema de orientação aérea, monitoração de pacientes.
8
Tipos de Software
• Sistema Distribuídos
– Sistemas que executam de forma distribuída em uma rede 
de computadores. Ex: torrent para download de arquivos
• Software de Apoio à Tomada de Decisão
– Fornece informações relevantes para tomada de decisão 
nos níveis Estratégico, Tático e Operacional
• Software Científico e de Engenharia (especialista)
– Processamento de grandes cálculos (astronomia, biologia 
molecular, vulcanologia, etc.).
• Software Embutido
– Reside dentro de um produto ou sistema (microondas, 
automóveis, etc.)
5
9
Quais softwares vocês usam no 
seu dia a dia?
10
Exemplos de Softwares
• Programa de Declaração de Imposto de Renda
• Agendamento de Vistoria de Veículo no Detran
• Compra de Ingresso para Shows e Eventos
• Facebook
• Waze / Google Maps
• Internet Banking
• Caixa automático dos Bancos
• Frequência e Folha de Pagamento
• Controle de Tráfego Urbano
• Controle Acadêmico
• Controle de Elevadores
• Automação de Biblioteca
• Sistema de Alarme em Edificações
Engenharia de Software
6
11
Características do Software
• Software não é sensível aos problemas 
ambientais que fazem com que o hardware 
se desgaste
– O software é desenvolvido, não manufaturado 
(no sentido clássico)
– Software não se desgasta
– Toda falha indica erro de projeto ou 
implementação
• manutenção do SW é mais complicada que a do HW.
Engenharia de Software
12
12
Curva de Defeitos para o Hardware
tempo
“desgaste”“mortalidade
infantil”
índice 
de 
falhas
Engenharia de Software
7
13
13
Curva de Defeitos para Software
índice de 
falhas
mudança
curva real
curva idealizada
tempo
Engenharia de Software
14
Qual a importância do Software no 
mundo atual?
8
15
A Importância do Software
• Durante as 3 primeiras décadas da era do 
computador, o principal desafio era 
desenvolver um HARDWARE de baixo custo 
e alto desempenho.
• O hoje o desafio é melhorar a qualidade (e 
reduzir os custos) das soluções baseadas em 
SOFTWARE!
Engenharia de Software
Cliente
Software Mobile
O Software está em todo lugar
Internet das Coisas
Banco de Dados
Servidor
Browser
APIs dos Aplicativos
BYOD
Bring Your 
Own Device
9
17
Engenharia de Software
O que vocês acham que é a 
Engenharia de Software?
18
Engenharia
• “Arte de aplicar conhecimentos científicos e 
empíricos e certas habilitações específicas à 
criação de estruturas, dispositivos e 
processos que se utilizam para converter 
recursos naturais em formas adequadas ao 
atendimento das necessidades humanas” –
Dicionário Aurélio
10
19
O que é Engenharia de Software
• “Engenharia de Software é a aplicação de 
uma abordagem sistemática, disciplinada e 
quantificável ao desenvolvimento, 
operação e manutenção de software”
IEEE Std 610.12 (1990)
Engenharia de Software
Desenvolvimento Manutenção
Ciclo de Vida de Projeto de Software
Operação
20
O que é Engenharia de Software
Engenharia de Software
Engenharia de 
Requisitos
Projeto de 
Sistemas
Desenvolvi-
mento
Testes
Processo de Desenvolvimento de Software
Gerência de Projeto de Software
• Disciplinas na Unicarioca
– Engenharia de Requisitos
– Análise e Projeto de Sistemas
– Qualidade de Software
– Desenvolvimento de Aplicações Móveis
– Desenvolvimento de Aplicações Web
– Desenvolvimento de Aplicações com BB
– Desenvolvimento de Aplicações Distribuídas
11
21
Engenharia de Software ainda é uma 
área muito nova
• Tema relativamente novo no sentido do termo 
Engenharia de Software, causando muitas 
discordâncias de conceitos consensualmente 
aceitos, necessitando ainda de efetivas 
normas norteadoras do assunto. 
• Nesse sentido, a sociedade ainda demanda de 
profissionais capacitados para elevar o 
software em termos de sistemas 
organizacionais, contribuindo de fato com as 
organizações modernas, sejam privadas ou 
públicas.
Engenharia de Software
22
Engenharia de Software X Engenharia Civil
• Porque pontes são geralmente construídas a 
tempo e a um custo conhecido e softwares 
raramente os são?
• Engenharia Civil: 
– 3000 anos de experiência a mais
– Clara separação entre especificação e execução
– Especificação detalhada antes de “colocar a mão 
na massa”
– Uma vez que a especificação é aceita, pouco se 
pode fazer para alterar
– Terrenos não estão constantemente mudando
Engenharia de Software
12
23
Engenharia de Software X Engenharia Civil
• Engenharia de Software: 
– a especificação faz parte da execução
– Códigos fontes são também especificações
– Tendência a clientes solicitar mudanças 
constantemente
– Em negócios, mudança é uma necessidade
• Conclusão: Projetos de software possuem 
maiores riscos e devem ser gerenciados com 
atenção voltada às mudanças
Engenharia de Software
Engenharia de Software
13
25
Questões de Concurso
• Sobre a engenharia de software, considere:
I. Atualmente todos os problemas na construção de software 
de alta qualidade no prazo e dentro do orçamento foram 
solucionados. 
II. A engenharia de software é a aplicação de uma abordagem 
sistemática ao desenvolvimento de software. A manutenção do 
software faz parte da atividade de gerência de projetos.
III. Todo projeto de software é iniciado por alguma 
necessidade do negócio. 
IV. O intuito da engenharia de software é fornecer uma 
estrutura para a construção de software com alta qualidade. 
Está correto o que consta em 
a) III e IV, somente. 
b) II e III, somente. 
c) I, II e IV, somente.d) II, III e IV, somente. 
e) I, II, III e IV. 
Engenharia de Software
26
Crise de Software
14
27
Casos Clássicos de Insucessos de 
Software (livro Sommerville)
• Therac-25 – Equipamento de Radioterapia
– Entre 1985 e 1987 se envolveu em 6 acidentes, 
causando mortes por overdoses de radiação.
• Aeroporto Internacional de Denver
– Erros no sistema automático de transporte de 
bagagens
– Atraso na abertura do aeroporto com custo total 
estimado em US$360 Milhões
• Foguete Ariane 5 – Agência Espacial Européia
– Explosão 40 segundos após a decolagem.
– Destruição do foguete e carga avaliada em US$ 500 
milhões. 
28
A Realidade no Desenvolvimento de 
Software
• Porcentagem de projetos que terminam 
dentro do prazo estimado: 10%
• Porcentagem de projetos que são 
descontinuados antes de chegarem ao fim: 
25%
• Porcentagem de projetos acima do custo 
esperado: 60%
• Atraso médio nos projetos: um ano.
Chaos report 2004 
15
29
A Realidade no Desenvolvimento de 
Software
• Software pago mas não entregue: 29.7%
• Software que pode ser usado quando 
entregue: 2%
• Software entregue mas nunca usado: 47%
• Software usado mas posteriormente 
modificado ou abandonado: 19%
• Software que podia ser usado após feitas 
mudanças: 3%
Chaos report 2004 
30
A Crise de Software - Causas
• Introdução de erros no processo
– Especificação incompleta ou errada
– Projetos de baixa qualidade
– Implementação com muitos erros
– Testes incompletos ou mal feitos
• Problemas na comunicação homem-
máquina
• Problemas na gerência
– Falta de treinamento em novas técnicas de 
desenvolvimento
Engenharia de Software
16
31
A Crise de Software - Causas
• Complexidade
– Especificar sistemas é uma atividade bastante 
complexa. Não se trata apenas de fazer uns 
“programinhas”. 
• Insatisfação dos usuários
– usuários sentem-se frustrados com sistemas 
difíceis de serem operados e/ou cujo 
desenvolvimento se prolonga por vários anos. 
– usuário precisa de sistemas funcionando de 
acordo com suas necessidades 
Engenharia de Software
32
A Crise de Software - Causas
• Produtividade 
– Costuma estar quase sempre aquém do 
desejado.
• Confiabilidade do Sistema
– Há diversas estatísticas que provam a pouca 
confiabilidade de boa parte dos sistemas, ou 
seja, eles não fazem o que deveriam fazer...
• Manutenibilidade
– Facilidade de se modificar um sistema para 
adaptar-se a circunstâncias novas, 
inexistentes à época da implantação.
Engenharia de Software
17
33
Exercício – Telefone sem fio
• No dia 22 de novembro as 20:00hs, na rua 
Francisco da Rocha, um carro a caminho do 
aeroporto, colidiu com um ônibus da linha 
572.
• Estavam no interior do carro, o motorista, 
um senhor de cabelo grisalho, e mais 2 
passageiros, sendo 1 criança.
• Não houve vítimas. A polícia chegou, 
registrou a ocorrência e liberou os motoristas
34
Uma lista de intenções 
é suficiente para começar 
a produzir o software
Minhas necessidades vão mudar… 
Mas mudanças são fáceis de introduzir 
porque software é bastante flexível
Custo de mudanças é 
muito altoA Especificação do 
Software é a fase 
mais crítica do 
processo
Erros na fase inicial 
têm um custo muito 
alto de correção
Mitos do Software… …do Cliente
Engenharia de Software
18
35
Programa escrito 
e testado! 
Acabei!
Até que o programa 
esteja “rodando” não
há como medir 
sua qualidade
O único produto de um
projeto de software é o 
conjunto de programas
Quanto mais cedo você 
escrever o código, mais tempo 
irá demorar para completá-lo
De 50 a 70 % do custo de 
produção de um software vai 
ser gasto para operacionalizá-
lo para o usuário
Revisões anteriores à 
codificação
Especificação, 
projeto, plano de 
trabalho
Mitos do Software… …do Programador
Engenharia de Software
36
Mitos do Software… …da Gerência
Manuais de Regras 
e Procedimentos 
resolvem os problemas
Ferramentas modernas
de software e hardware 
são suficientes
Estamos atrasados… 
Vamos alocar 
mais gente ao projeto!
Desatualizados, obsoletos
O uso eficiente de 
ferramental exige 
conhecimento
Custos de 
treinamento, 
gerência e 
entendimento do 
processo de trabalho
Engenharia de Software
19
37
Problemas
• Porque leva tanto tempo para terminar 
programas e sistemas?
• Porque os custos são tão altos?
• Porque temos dificuldade de medir o 
progresso do desenvolvimento do 
software?
• Porque não conseguimos detectar todos 
os erros antes de entregar o software 
aos nossos clientes?
• Porque os usuários estão sempre 
insatisfeitos com o software entregue?
Engenharia de Software
38
Precisamos de uma Discipl ina que 
auxi l ie na construção e manutenção de 
software
Engenharia de Software
Engenharia de Software
20
39
Objetivo do Curso
• Espera-se que os alunos compreendam que 
o desenvolvimento de software deve seguir 
uma disciplina apoiada nos conceitos e 
técnicas da Engenharia de Software para 
obter produtos com qualidade e 
produtividade.
40
Como será o Aprendizado neste 
Curso
• Estudo adicional além das horas de sala de 
aula
• Frequência em sala de aula é obrigatória
• Listas de Exercícios
• Dinâmicas em Sala de Aula
• Trabalho Prático
• AVA – Ambiente Virtual de 
Aprendizado
21
41
Avaliações
• 1ª Avaliação (AV1)
– Prova mista (objetiva + discursiva): 10,0 pontos
• 2ª Avaliação (AV2)
– Prova mista (objetiva + discursiva): 6,0 pontos
– Trabalho de grupo: 4,0 pontos
• 3ª Avaliação (AV3)
– Prova mista (objetiva + discursiva) - valendo 10,00 ou 6,00 
conforme a prova que está sendo substituída
• Entrega de Listas de Exercícios pelo AVA
– Lista de exercício não é Atividade Supervisionada. Porém, 
só haverá arredondamento de média parcial 6,7 ou 6,8 ou 
6,9 para 7,0 para aqueles que tiverem feito todas as listas 
de exercícios.’
42
Avaliações
• Todas as provas (AV1, AV2, AVF e 2ª 
Chamada) serão:
– Presenciais
– Individuais
– Sem Consulta
22
43
Bibliografia
• KARAM, O. Et Al. Fundamentos de Engenharia de 
Software – LTC - 2a Edição -2013
• PRESSMAN, R. Engenharia de Software – Uma 
Abordagem Profissional – 7a. Edição – ArtMed.
44
Serviços Disponíveis na Unicarioca
• SOA –Serviço de Orientação à Aprendizagem
• SOC – Serviço de Orientação à Carreia
• SOT – Serviço de Orientação Tecnológica
• Letras e Números e Física e Bits&BYtes

Outros materiais