A maior rede de estudos do Brasil

Grátis
22 pág.
[01] EngSW - Introdução Engenharia de Software v1 6

Pré-visualização | Página 1 de 2

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.