Buscar

[01] EngSW Introdução 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 20 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 20 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 20 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
Engenharia de Software
O que vocês acham que é a 
Engenharia de Software?
4
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
3
5
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
6
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.
4
7
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.)
8
Quais softwares vocês usam no 
seu dia a dia?
5
9
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
10
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
6
11
11
Curva de Defeitos para o Hardware
tempo
“desgaste”“mortalidade
infantil”
índice 
de 
falhas
Engenharia de Software
12
12
Curva de Defeitos para Software
índice de 
falhas
mudança
curva real
curva idealizada
tempo
Engenharia de Software
7
13
Qual a importância do Software no 
mundo atual?
14
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
8
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
16
Engenharia de Software
O que vocês acham que é a 
Engenharia de Software?
9
17
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
18
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
10
19
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
20
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
11
Analogia da Construção de uma Casa
Análise
• Sala
• Cozinha Americana
• 2 Quartos
• 1 Suíte
• 2 Vagas para Carros
Engenharia de Software
Modelos
Requisitos
Analogia da Construção de uma Casa
Projeto
Engenharia de Software
Projeto ElétricoProjeto Hidráulico
Modelos
12
Analogia da Construção de uma Casa
Construção
13
25
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
26
Onde tudo começou:
Crise do 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 deSoftware
• 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
Precisamos de uma Discipl ina que 
auxi l ie na construção e manutenção de 
software
Engenharia de Software
Engenharia de Software
34
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.
18
35
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
36
Critério de Avaliação
• 1ª Avaliação (AV1)
– Prova mista (objetiva + discursiva): 10,0 pontos
• 2ª Avaliação (AV2)
– Prova mista (objetiva + discursiva): 6,0 pontos
– Atividade Prática Supervisionada: 4,0 pontos
• 3ª Avaliação (AV3)
– Prova mista (objetiva + discursiva): 10,0 pontos
• 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.
– Entrega Somente pelo AVA.
19
37
Critério de Avaliação (Institucional)
• Todas as provas (AV1, AV2, AV3) serão:
– Presenciais
– Individuais
– Sem Consulta
• Critério de Avaliação
– Para cálculo da média final na disciplina será descartada a 
menor nota dentre AV1, AV2 e AV3. A média final será a 
média obtida entre as duas notas restantes.
– Caso o aluno possua somente notas em duas avaliações, 
não haverá descarte e a média final será calculada entre as 
duas notas existentes
– Será aprovado o aluno com média final igual ou maior que 
7,0 (sete)
– O aluno com média final inferior a 7,0 (sete) ficará 
reprovado na disciplina
38
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.
20
39
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