SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
Para reconhecer e entender a importância da engenharia de
software, é preciso primeiro saber qual é a importância dos
próprios softwares.


Para isso, é necessário entender o que é um software.
◦ Software: conjunto de programas,
 documentação e procedimentos operacionais
 com os quais pode-se fazer com que os
 computadores e outros dispositivos eletrônicos
 sejam úteis aos homens. Sendo que os
 programas são conjuntos de instruções
 arranjadas de forma que possam ser
 entendidas e executadas por um computador.
Tipos de aplicações de softwares:
              Software Básico
            Software Aplicativo
    Software Científico e de Engenharia
            Software Embutido
     Software de Computador Pessoal
     Software de Inteligência Artificial
         Software Baseado na Web
1.1.1 Software Básico
Também conhecidos como “software de
sistema”,
sistema”, se caracterizam por uma forte
interação com o hardware do computador
Executam as funções de controle que
permitem que o software aplicativo tenha
interface com outros elementos do sistema
Exemplos:           operacionais,
Exemplos: sistemas operacionais,
compiladores,
compiladores, drivers, etc…
1.1.2 Software Aplicativo
                                              categorias:
Podem ter diversas funções e ser divididos em categorias:
Software de Tempo Real
 ◦ Funções de monitoramento, análise e
              monitoramento,
  controle de eventos
 ◦ A resposta do sistema deve obedecer a
  severas restrições de tempo (p. ex., entre 1
                   minuto)
  milissegundo e 1 minuto)
 ◦ Exemplos: controle de tráfego aéreo,
   Exemplos:                     aéreo,
  relógio digital
1.1.2 Software Aplicativo
 Software Comercial
 ◦ Uma das maiores áreas de aplicação de
  software
 ◦ Facilitam operações comerciais e
  tomadas de decisões administrativas
 ◦ Exemplos: folha de pagamentos, contas a
   Exemplos:          pagamentos,
            receber,             estoque,
  pagar e a receber, controle de estoque,
  etc…
Software Científico e de Engenharia

Caracteriza-se     pelo   processamento          de
dados numéricos.
◦ Exemplos: astronomia, vulcanologia, análise da
 fadiga de materiais, biologia molecular, etc…


◦ Outros exemplos: auxílio de desenvolvimento de
 projetos, como os programas CAD (Computer-
 Aided Design)
Software Embutido
◦ Controle de produtos e sistemas para os
 mercados industriais e de consumo.


◦ Exemplos: controle do teclado de fornos
 de   microondas,   funções   digitais   de
 automóveis     (como       controle     de
 combustível, mostradores no painel e
 sistemas de freio), etc…
Software de Computador Pessoal

◦ Esta categoria envolve diversos tipos de
 softwares utilizados para diferentes fins.


◦ Exemplos: processadores de textos, planilhas
 eletrônicas, jogos, gerenciamento de dados,
 etc…
Software de Inteligência Artificial

◦ Sistemas que utilizam abordagens e
 metodologias da inteligência artificial


◦ Principais aplicações: problemas difíceis de
 serem modelados computacionalmente por
 modelos tradicionais
Software de Inteligência Artificial
Principais técnicas: sistemas baseados em
conhecimento, sistemas especialistas, redes
neurais, algoritmos genéticos, etc…
◦ Exemplos: jogos, prova de teoremas, entendimento
 de língua natural (tradução automática, sumarização
 automática), robótica, aprendizado de máquina, etc
Software Baseado na Web

◦ Sistemas feitos para serem utilizados na internet
 por meio de um browser.
◦ Tecnologias: HTML, ASP, CGI, PHP, Java, XML,
 etc…
◦ Exemplos: Páginas pessoais, portais, consulta a
 bases de dados, etc…
Para entender como surgiu a
área de Engenharia de
Software, é preciso analisar a
história da evolução do
software ao longo dos anos.
Geralmente divide-se a
   evolução dos softwares em 4
   eras:

                   2a. Era                       4a. Era
       1a. Era                  3a. Era


1950        1960    1970     1980         1990    2000
1a. Era
  Software customizado e
 produzido somente sob
 encomenda.
 Distribuição limitada.
 Durante esses anos, a maior parte
 do software era desenvolvida e
 usada pela própria pessoa ou
 organização.
1a. Era
O desenvolvedor era um funcionário da
empresa contratado para desenvolver o
sistema e ficar disponível para corrigir erros
que pudessem surgir. Como apenas uma
pessoa era responsável pelo
desenvolvimento e manutenção do sistema,
não havia a necessidade de documentação
ou estruturação, já que apenas o
desenvolvedor deveria ser capaz de
entender o software que desenvolveu.
2a. Era
 Começaram a surgir sistemas multiusuários, sistemas de
 tempo real, banco de dados

 Começaram a surgir também software como produto, ou
 seja, softwares produzidos para serem vendidos para
 diferentes organizações.
 Foi nessa época que começaram a surgir as empresas
 desenvolvedoras de software.
2a. Era

  Softwares desenvolvidos para mainframes e
  minicomputadores eram distribuídos para
  centenas e, às vezes, até milhares de usuários.
  Começaram a ser criadas bibliotecas de códigos,
  inclusive eram comprados produtos no exterior
  para acrescentar mais instruções às bibliotecas.
No entanto, quando aumentou o uso e distribuição
dos softwares, começaram a aumentar também os
problemas.


Às vezes os programas tinham de ser corrigidos
devido à descoberta de falhas, ou alterados conforme
as exigências do usuário ou adaptados a novos
hardware, atividades atualmente chamadas de
“manutenção de software”.
A chamada “crise de software”
surgiu porque a natureza
personalizada dos programas e a
falta de documentação em alguns
casos praticamente impossibilitava
a sua manutenção.
3a. Era

 Surgem os sistemas distribuídos, ou
 sistemas em rede.
 Surgem eletrodomésticos e máquinas
 eletrônicas com software embutido.
 O hardware nessa época já tem um
 custo mais baixo.
3a. Era

 Foi      nessa   era    que     surgiram     os
 microprocessadores            pessoais,     que
 passaram         a      ser      amplamente
 consumidos           pelo     público     geral,
 estimulando o crescimento de muitas
 empresas         de         software    e     o
 surgimento de novas empresas.
3a. Era

 O número de cópias vendidas de um
 software chegava a centenas de
 milhares.
 Nessa era, o hardware passa a ser
 considerado um produto primário
 básico, sendo que o software é
 responsável pela diferenciação.
3a. Era

 Enquanto a taxa de crescimento
 das vendas de hardware se
 estabilizaram na década de 80, as
 vendas de software continuaram
 a crescer.
4a. Era

  Podemos dizer que a quarta era se estende até os
  dias atuais.
  Esta era caracteriza-se pelas tecnologias orientadas
  a objeto, sistemas de inteligência artificial
  (sistemas especialistas, redes neurais), computação
  paralela e multi-processada, linguagens de
  programação de quarta geração.
Importância do Software

As diferentes eras da evolução do
software mostram que ele se
tornou mais importante à medida
que o hardware tornou-se um
“problema resolvido”.
Importância do Software

 Quando o computador começou a ser usado,
 aproximadamente na década de 50 e nas três
 décadas seguintes, o principal desafio era
 desenvolver hardware para reduzir custos de
 processamento e armazenagem de dados, bem
 como reduzir o seu tempo de processamento.
Naquela época, o software era apenas um conjunto
de instruções que dizia ao computador como
efetuar os cálculos o mais rápido possível.
Aproximadamente no fim da década de 80 esse
cenário começou a mudar.
Os computadores já eram rápidos o suficiente e os
pesquisadores perceberam que o hardware estava
sendo mal aproveitado, que ele podia ser utilizado
para resolver outros tipos de problemas.
Então, a chave para o bom aproveitamento de
 um computador passou a ser o software.
Claro que a preocupação com a evolução do
 hardware continua. Não se passa seis meses
 sem o lançamento de um processador mais
 veloz que os anteriores.
No entanto, é crucial que os software
 acompanhem essa evolução, fazendo bom uso
 do hardware.
Durante as primeiras eras do software, o
desenvolvimento de software era feito de
forma totalmente desorganizada.


Não era feito nenhum projeto,
planejamento, ou análise de requisitos e
o software não era documentado.
O software era simplesmente produzido
conforme o conhecimento e experiência
pessoal do programador.


Com o tempo, o desenvolvimento
desorganizado levou a diversos
problemas.
O principal problema é quando surgiam
erros ou quando era necessária ou desejada
alguma mudança no software.
Como o código não era documentado e não
obedecia a nenhuma estrutura formal,
apenas o desenvolvedor conseguia
entender e modificá-lo.
Em alguns casos, quando a mudança
era realizada muito tempo após o
desenvolvimento do software, mesmo
o próprio desenvolvedor tinha
dificuldades para entender o código
que ele mesmo desenvolveu.
Assim, as mudanças eram altamente
custosas.
Ao conjunto de problemas
encontrados no desenvolvimento de
software deu-se inicialmente o nome
de “crise   de software”, sendo
posteriormente chamado de
“aflição   crônica”.
Veremos ainda diversos tipos de
problemas causados pela falta de
planejamento e programação
estruturada, como por exemplo:
a insatisfação do cliente;
a dificuldade de cumprir prazos;
erro na previsão dos custos, entre
outros.
Devido a esses problemas, verificou-
se que era preciso tomar vários
cuidados antes e durante o
desenvolvimento de software, para
evitar que esses problemas
ocorressem.
“Assim,   a Eng. de Software
surgiu para propor estratégias
que evitassem que esses
problemas acontecessem.”
Primeira definição (Fritz Bauer,1969):
“O estabelecimento e uso de sólidos
princípios de engenharia para que se possa
obter economicamente um software que
seja confiável e que funcione eficientemente
em máquinas reais”.
Foco nos objetivos:
• Economia
• Confiabilidade
• Eficiência
Segundo Arndt Von Staa (1987):

“O desenvolvimento e a aplicação de ciência,
 matemática, técnicas, métodos e ferramentas
 para o desenvolvimento e a manutenção
 econômica de software de qualidade,
 controlável, operando de modo econômico em
 máquinas e ambientes reais”.
Foco nos objetivos:
• Economia
• Eficiência
• Qualidade “preditível” e
Manutenção
Segundo Anneliese Mayrhayser
(1990):
“Uma disciplina da Ciência da
Computação que oferece
métodos, técnicas e ferramentas
para desenvolver e manter
softwares com alta qualidade
para resolução de problemas”.
Foco nos objetivos:
• Software de qualidade
• Resolução de problemas

Foco nas metodologias:
• Métodos
• Técnicas
• Ferramentas
Métodos, Ferramentas e
   Procedimentos definidos na
   disciplina de Engenharia de
            Software:

Permitem que o gerente controle
todo o processo de
desenvolvimento do software
Métodos, Ferramentas e
   Procedimentos definidos na
    disciplina de Engenharia de
             Software:
Oferecem ao profissional
desenvolvedor uma base para a
construção de software de alta
qualidade.
Levam à produção de um software
que atenda aos requisitos e
expectativas do cliente
MÉTODOS
Definem diversos tipos de tarefas a serem
realizadas antes, durante e após o
desenvolvimento de um software.

Incluem a especificação de notações a serem
utilizadas, critérios para medir a qualidade do
software e medidas de levantamento de
requisitos
Principais Tarefas:


 ◦ Planejamento e estimativa de projeto;
 ◦ Análise de Requisitos;
 ◦ Projeto da Estrutura de Dados;
 ◦ Algoritmo de Processamento;
 ◦ Codificação;
 ◦ Teste;
 ◦ Manutenção.
FERRAMENTAS

Podem auxiliar o desenvolvimento de
software em diversos níveis:


◦ Apenas ambientes para codificação;
◦ Apoio semi-automático;
◦ Apoio automatizado.
Ferramentas     CASE     (Computer-Aided   Software
Engineering)

◦ Ambientes de apoio ao desenvolvimento
 de software.


◦ Podem       incluir   diferentes   ferramentas
 integradas, de forma que a informação
 gerada    por     uma     das   ferramentas    do
 ambiente possa ser utilizada por outra
 ferramenta do mesmo ambiente.
Ferramentas    CASE    (Computer-Aided    Software
Engineering)



◦ Exemplo      1:     um   ambiente      contendo
 compilador, banco de dados e ferramentas
 de auxílio ao teste de software
◦ Exemplo 2: ambiente para a coordenação
 de desenvolvimento de software em equipe
◦ Exemplo 3: ambiente que gera o código com
 base na modelagem.
PROCEDIMENTOS

Indicam como executar, na
prática, as tarefas definidas pelos
métodos.
PROCEDIMENTOS
Podem indicar:
 ◦ a seqüência na qual os métodos
  serão aplicados;
 ◦ os produtos a serem entregues
  (documentos, relatórios, etc);
 ◦ controles de qualidade;
 ◦ coordenação de mudanças;
 ◦ etc.
1.   Qual é a diferença entre software básico e software
     aplicativo?
2.   Quais são as 7 principais categorias de software
     aplicativo? Dê um exemplo de software de cada
     categoria.
3.   Quais são as características da 1a. era do software?
4.   Quais são as características da 2a. era do software?
5.   Quais são as características da 3a. era do software?
6.   Quais são as características da 4a. era do software?
7.Em qual era começaram a surgir problemas
   com os software?
8. O que significa dizer que atualmente
   “software é mais importante que hardware”?
9.    Como é que a crise de software levou ao
      surgimento da engenharia de software?
      Comente.
10.   Defina engenharia de software com suas
      próprias palavras.
11.Quais são os principais objetivos da
   engenharia de software?
12.Quais são os 3 elementos da engenharia de
   software?

Más contenido relacionado

La actualidad más candente

Histórico e evolução da internet 6
Histórico e evolução da internet 6Histórico e evolução da internet 6
Histórico e evolução da internet 6Julia Teobaldo
 
Apostila lógica de programação
Apostila lógica de programaçãoApostila lógica de programação
Apostila lógica de programaçãoMarcos Nori
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasSusana Oliveira
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosFabio Moura Pereira
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebEduardo Lanna
 
Cables de conexión internos del ordenador
Cables de conexión internos del ordenadorCables de conexión internos del ordenador
Cables de conexión internos del ordenadorreeiichel
 
Oficina de Iniciação a Informática
Oficina de Iniciação a InformáticaOficina de Iniciação a Informática
Oficina de Iniciação a Informáticamarcelasb
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Vanilton Pinheiro
 
Aulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareAulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareJocelma Rios
 
1 - Competência da Informática Básica
1 - Competência da Informática Básica1 - Competência da Informática Básica
1 - Competência da Informática BásicaAlex Martins
 

La actualidad más candente (20)

Modelo em Cascata
Modelo em CascataModelo em Cascata
Modelo em Cascata
 
Histórico e evolução da internet 6
Histórico e evolução da internet 6Histórico e evolução da internet 6
Histórico e evolução da internet 6
 
Apostila lógica de programação
Apostila lógica de programaçãoApostila lógica de programação
Apostila lógica de programação
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticas
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Curso basico de informtica
Curso basico de informticaCurso basico de informtica
Curso basico de informtica
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Montando o Computador
Montando o ComputadorMontando o Computador
Montando o Computador
 
Aula 07 - Fontes
Aula 07 - FontesAula 07 - Fontes
Aula 07 - Fontes
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
 
Cables de conexión internos del ordenador
Cables de conexión internos del ordenadorCables de conexión internos del ordenador
Cables de conexión internos del ordenador
 
Aula 08 - Placa Mãe
Aula 08 - Placa MãeAula 08 - Placa Mãe
Aula 08 - Placa Mãe
 
Disco rígido
Disco rígidoDisco rígido
Disco rígido
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Informática Básica - Aula 04 - Software
Informática Básica - Aula 04 - SoftwareInformática Básica - Aula 04 - Software
Informática Básica - Aula 04 - Software
 
Oficina de Iniciação a Informática
Oficina de Iniciação a InformáticaOficina de Iniciação a Informática
Oficina de Iniciação a Informática
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Aulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareAulas 1 e 2 - Hardware
Aulas 1 e 2 - Hardware
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 
1 - Competência da Informática Básica
1 - Competência da Informática Básica1 - Competência da Informática Básica
1 - Competência da Informática Básica
 

Destacado

Transformando apresentação em imagem
Transformando apresentação em imagemTransformando apresentação em imagem
Transformando apresentação em imagemzepauloufpa
 
O que são Softwares embarcados?
O que são Softwares embarcados?O que são Softwares embarcados?
O que são Softwares embarcados?Rodrigodelimabispo
 
Sistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionaisSistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionaisLuiz Eduardo
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcadoJaime Teixeira
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosSuzana Viana Mota
 
Processos de desenvolvimento de software técnicas de 4ª geração
Processos de desenvolvimento de software   técnicas de 4ª geraçãoProcessos de desenvolvimento de software   técnicas de 4ª geração
Processos de desenvolvimento de software técnicas de 4ª geraçãoRafael Augusto
 
Cae software científico e de engenharia
Cae   software científico e de engenhariaCae   software científico e de engenharia
Cae software científico e de engenhariaJaime Teixeira
 

Destacado (14)

Transformando apresentação em imagem
Transformando apresentação em imagemTransformando apresentação em imagem
Transformando apresentação em imagem
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcado
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
O que são Softwares embarcados?
O que são Softwares embarcados?O que são Softwares embarcados?
O que são Softwares embarcados?
 
Desenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcadosDesenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcados
 
Software Embutido
Software EmbutidoSoftware Embutido
Software Embutido
 
Sistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionaisSistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionais
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcado
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas Embarcados
 
Processos de desenvolvimento de software técnicas de 4ª geração
Processos de desenvolvimento de software   técnicas de 4ª geraçãoProcessos de desenvolvimento de software   técnicas de 4ª geração
Processos de desenvolvimento de software técnicas de 4ª geração
 
Cae software científico e de engenharia
Cae   software científico e de engenhariaCae   software científico e de engenharia
Cae software científico e de engenharia
 
Aula2 paradigmas
Aula2 paradigmasAula2 paradigmas
Aula2 paradigmas
 

Similar a Introducao eng software [modo de compatibilidade]

IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08Gilson Silva
 
Engenharia de software categorias de software
Engenharia de software   categorias de softwareEngenharia de software   categorias de software
Engenharia de software categorias de softwareFernando Gomes Chaves
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Matheus Brito
 
SoftwareLivre GNU LInux Conceitos Apresentação Geral Aplicativos
SoftwareLivre GNU LInux Conceitos Apresentação Geral AplicativosSoftwareLivre GNU LInux Conceitos Apresentação Geral Aplicativos
SoftwareLivre GNU LInux Conceitos Apresentação Geral Aplicativoselciberpunk
 
Apresentação Outdoor171
Apresentação Outdoor171Apresentação Outdoor171
Apresentação Outdoor171nilojr90
 
OUTDOOR171
OUTDOOR171OUTDOOR171
OUTDOOR171nilojr90
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
REVISAO GERAL DE SO- ofiicial para o simulado.pptx
REVISAO GERAL DE SO- ofiicial para o simulado.pptxREVISAO GERAL DE SO- ofiicial para o simulado.pptx
REVISAO GERAL DE SO- ofiicial para o simulado.pptxTAMARAFRANCIELLEBRIT
 
Trabalho De Informatica
Trabalho De InformaticaTrabalho De Informatica
Trabalho De Informaticaguest77321e
 
Aula aplicativos I
Aula aplicativos IAula aplicativos I
Aula aplicativos IExpansão Ti
 
Informática aula 01_Jack Palmeira
Informática aula 01_Jack PalmeiraInformática aula 01_Jack Palmeira
Informática aula 01_Jack PalmeiraGabriel Demétrio
 
Informatica na administração - Softwareee
Informatica na administração - SoftwareeeInformatica na administração - Softwareee
Informatica na administração - SoftwareeeVictorMateusDaSilvaV
 
Software descrições slide, aqui você encontra definições e termos
Software descrições slide, aqui você encontra definições e termosSoftware descrições slide, aqui você encontra definições e termos
Software descrições slide, aqui você encontra definições e termosCarlos Fernandes
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computaçãoElaine Cecília Gatto
 

Similar a Introducao eng software [modo de compatibilidade] (20)

IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08
 
Engenharia de software categorias de software
Engenharia de software   categorias de softwareEngenharia de software   categorias de software
Engenharia de software categorias de software
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1
 
SoftwareLivre GNU LInux Conceitos Apresentação Geral Aplicativos
SoftwareLivre GNU LInux Conceitos Apresentação Geral AplicativosSoftwareLivre GNU LInux Conceitos Apresentação Geral Aplicativos
SoftwareLivre GNU LInux Conceitos Apresentação Geral Aplicativos
 
Apresentação Outdoor171
Apresentação Outdoor171Apresentação Outdoor171
Apresentação Outdoor171
 
OUTDOOR171
OUTDOOR171OUTDOOR171
OUTDOOR171
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
REVISAO GERAL DE SO- ofiicial para o simulado.pptx
REVISAO GERAL DE SO- ofiicial para o simulado.pptxREVISAO GERAL DE SO- ofiicial para o simulado.pptx
REVISAO GERAL DE SO- ofiicial para o simulado.pptx
 
Trabalho De Informatica
Trabalho De InformaticaTrabalho De Informatica
Trabalho De Informatica
 
Aula aplicativos I
Aula aplicativos IAula aplicativos I
Aula aplicativos I
 
30440951 informatica
30440951 informatica30440951 informatica
30440951 informatica
 
Software e hardware
Software e hardwareSoftware e hardware
Software e hardware
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Informática aula 01_Jack Palmeira
Informática aula 01_Jack PalmeiraInformática aula 01_Jack Palmeira
Informática aula 01_Jack Palmeira
 
Informatica na administração - Softwareee
Informatica na administração - SoftwareeeInformatica na administração - Softwareee
Informatica na administração - Softwareee
 
Software descrições slide, aqui você encontra definições e termos
Software descrições slide, aqui você encontra definições e termosSoftware descrições slide, aqui você encontra definições e termos
Software descrições slide, aqui você encontra definições e termos
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computação
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 

Introducao eng software [modo de compatibilidade]

  • 1.
  • 2. Para reconhecer e entender a importância da engenharia de software, é preciso primeiro saber qual é a importância dos próprios softwares. Para isso, é necessário entender o que é um software.
  • 3. ◦ Software: conjunto de programas, documentação e procedimentos operacionais com os quais pode-se fazer com que os computadores e outros dispositivos eletrônicos sejam úteis aos homens. Sendo que os programas são conjuntos de instruções arranjadas de forma que possam ser entendidas e executadas por um computador.
  • 4. Tipos de aplicações de softwares: Software Básico Software Aplicativo Software Científico e de Engenharia Software Embutido Software de Computador Pessoal Software de Inteligência Artificial Software Baseado na Web
  • 5. 1.1.1 Software Básico Também conhecidos como “software de sistema”, sistema”, se caracterizam por uma forte interação com o hardware do computador Executam as funções de controle que permitem que o software aplicativo tenha interface com outros elementos do sistema Exemplos: operacionais, Exemplos: sistemas operacionais, compiladores, compiladores, drivers, etc…
  • 6. 1.1.2 Software Aplicativo categorias: Podem ter diversas funções e ser divididos em categorias: Software de Tempo Real ◦ Funções de monitoramento, análise e monitoramento, controle de eventos ◦ A resposta do sistema deve obedecer a severas restrições de tempo (p. ex., entre 1 minuto) milissegundo e 1 minuto) ◦ Exemplos: controle de tráfego aéreo, Exemplos: aéreo, relógio digital
  • 7. 1.1.2 Software Aplicativo Software Comercial ◦ Uma das maiores áreas de aplicação de software ◦ Facilitam operações comerciais e tomadas de decisões administrativas ◦ Exemplos: folha de pagamentos, contas a Exemplos: pagamentos, receber, estoque, pagar e a receber, controle de estoque, etc…
  • 8. Software Científico e de Engenharia Caracteriza-se pelo processamento de dados numéricos. ◦ Exemplos: astronomia, vulcanologia, análise da fadiga de materiais, biologia molecular, etc… ◦ Outros exemplos: auxílio de desenvolvimento de projetos, como os programas CAD (Computer- Aided Design)
  • 9. Software Embutido ◦ Controle de produtos e sistemas para os mercados industriais e de consumo. ◦ Exemplos: controle do teclado de fornos de microondas, funções digitais de automóveis (como controle de combustível, mostradores no painel e sistemas de freio), etc…
  • 10. Software de Computador Pessoal ◦ Esta categoria envolve diversos tipos de softwares utilizados para diferentes fins. ◦ Exemplos: processadores de textos, planilhas eletrônicas, jogos, gerenciamento de dados, etc…
  • 11. Software de Inteligência Artificial ◦ Sistemas que utilizam abordagens e metodologias da inteligência artificial ◦ Principais aplicações: problemas difíceis de serem modelados computacionalmente por modelos tradicionais
  • 12. Software de Inteligência Artificial Principais técnicas: sistemas baseados em conhecimento, sistemas especialistas, redes neurais, algoritmos genéticos, etc… ◦ Exemplos: jogos, prova de teoremas, entendimento de língua natural (tradução automática, sumarização automática), robótica, aprendizado de máquina, etc
  • 13. Software Baseado na Web ◦ Sistemas feitos para serem utilizados na internet por meio de um browser. ◦ Tecnologias: HTML, ASP, CGI, PHP, Java, XML, etc… ◦ Exemplos: Páginas pessoais, portais, consulta a bases de dados, etc…
  • 14. Para entender como surgiu a área de Engenharia de Software, é preciso analisar a história da evolução do software ao longo dos anos.
  • 15. Geralmente divide-se a evolução dos softwares em 4 eras: 2a. Era 4a. Era 1a. Era 3a. Era 1950 1960 1970 1980 1990 2000
  • 16. 1a. Era Software customizado e produzido somente sob encomenda. Distribuição limitada. Durante esses anos, a maior parte do software era desenvolvida e usada pela própria pessoa ou organização.
  • 17. 1a. Era O desenvolvedor era um funcionário da empresa contratado para desenvolver o sistema e ficar disponível para corrigir erros que pudessem surgir. Como apenas uma pessoa era responsável pelo desenvolvimento e manutenção do sistema, não havia a necessidade de documentação ou estruturação, já que apenas o desenvolvedor deveria ser capaz de entender o software que desenvolveu.
  • 18. 2a. Era Começaram a surgir sistemas multiusuários, sistemas de tempo real, banco de dados Começaram a surgir também software como produto, ou seja, softwares produzidos para serem vendidos para diferentes organizações. Foi nessa época que começaram a surgir as empresas desenvolvedoras de software.
  • 19. 2a. Era Softwares desenvolvidos para mainframes e minicomputadores eram distribuídos para centenas e, às vezes, até milhares de usuários. Começaram a ser criadas bibliotecas de códigos, inclusive eram comprados produtos no exterior para acrescentar mais instruções às bibliotecas.
  • 20. No entanto, quando aumentou o uso e distribuição dos softwares, começaram a aumentar também os problemas. Às vezes os programas tinham de ser corrigidos devido à descoberta de falhas, ou alterados conforme as exigências do usuário ou adaptados a novos hardware, atividades atualmente chamadas de “manutenção de software”.
  • 21. A chamada “crise de software” surgiu porque a natureza personalizada dos programas e a falta de documentação em alguns casos praticamente impossibilitava a sua manutenção.
  • 22. 3a. Era Surgem os sistemas distribuídos, ou sistemas em rede. Surgem eletrodomésticos e máquinas eletrônicas com software embutido. O hardware nessa época já tem um custo mais baixo.
  • 23. 3a. Era Foi nessa era que surgiram os microprocessadores pessoais, que passaram a ser amplamente consumidos pelo público geral, estimulando o crescimento de muitas empresas de software e o surgimento de novas empresas.
  • 24. 3a. Era O número de cópias vendidas de um software chegava a centenas de milhares. Nessa era, o hardware passa a ser considerado um produto primário básico, sendo que o software é responsável pela diferenciação.
  • 25. 3a. Era Enquanto a taxa de crescimento das vendas de hardware se estabilizaram na década de 80, as vendas de software continuaram a crescer.
  • 26. 4a. Era Podemos dizer que a quarta era se estende até os dias atuais. Esta era caracteriza-se pelas tecnologias orientadas a objeto, sistemas de inteligência artificial (sistemas especialistas, redes neurais), computação paralela e multi-processada, linguagens de programação de quarta geração.
  • 27. Importância do Software As diferentes eras da evolução do software mostram que ele se tornou mais importante à medida que o hardware tornou-se um “problema resolvido”.
  • 28. Importância do Software Quando o computador começou a ser usado, aproximadamente na década de 50 e nas três décadas seguintes, o principal desafio era desenvolver hardware para reduzir custos de processamento e armazenagem de dados, bem como reduzir o seu tempo de processamento.
  • 29. Naquela época, o software era apenas um conjunto de instruções que dizia ao computador como efetuar os cálculos o mais rápido possível. Aproximadamente no fim da década de 80 esse cenário começou a mudar. Os computadores já eram rápidos o suficiente e os pesquisadores perceberam que o hardware estava sendo mal aproveitado, que ele podia ser utilizado para resolver outros tipos de problemas.
  • 30. Então, a chave para o bom aproveitamento de um computador passou a ser o software. Claro que a preocupação com a evolução do hardware continua. Não se passa seis meses sem o lançamento de um processador mais veloz que os anteriores. No entanto, é crucial que os software acompanhem essa evolução, fazendo bom uso do hardware.
  • 31. Durante as primeiras eras do software, o desenvolvimento de software era feito de forma totalmente desorganizada. Não era feito nenhum projeto, planejamento, ou análise de requisitos e o software não era documentado.
  • 32. O software era simplesmente produzido conforme o conhecimento e experiência pessoal do programador. Com o tempo, o desenvolvimento desorganizado levou a diversos problemas.
  • 33. O principal problema é quando surgiam erros ou quando era necessária ou desejada alguma mudança no software. Como o código não era documentado e não obedecia a nenhuma estrutura formal, apenas o desenvolvedor conseguia entender e modificá-lo.
  • 34. Em alguns casos, quando a mudança era realizada muito tempo após o desenvolvimento do software, mesmo o próprio desenvolvedor tinha dificuldades para entender o código que ele mesmo desenvolveu. Assim, as mudanças eram altamente custosas.
  • 35. Ao conjunto de problemas encontrados no desenvolvimento de software deu-se inicialmente o nome de “crise de software”, sendo posteriormente chamado de “aflição crônica”.
  • 36. Veremos ainda diversos tipos de problemas causados pela falta de planejamento e programação estruturada, como por exemplo: a insatisfação do cliente; a dificuldade de cumprir prazos; erro na previsão dos custos, entre outros.
  • 37. Devido a esses problemas, verificou- se que era preciso tomar vários cuidados antes e durante o desenvolvimento de software, para evitar que esses problemas ocorressem.
  • 38. “Assim, a Eng. de Software surgiu para propor estratégias que evitassem que esses problemas acontecessem.”
  • 39. Primeira definição (Fritz Bauer,1969): “O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais”.
  • 40. Foco nos objetivos: • Economia • Confiabilidade • Eficiência
  • 41. Segundo Arndt Von Staa (1987): “O desenvolvimento e a aplicação de ciência, matemática, técnicas, métodos e ferramentas para o desenvolvimento e a manutenção econômica de software de qualidade, controlável, operando de modo econômico em máquinas e ambientes reais”.
  • 42. Foco nos objetivos: • Economia • Eficiência • Qualidade “preditível” e Manutenção
  • 43. Segundo Anneliese Mayrhayser (1990): “Uma disciplina da Ciência da Computação que oferece métodos, técnicas e ferramentas para desenvolver e manter softwares com alta qualidade para resolução de problemas”.
  • 44. Foco nos objetivos: • Software de qualidade • Resolução de problemas Foco nas metodologias: • Métodos • Técnicas • Ferramentas
  • 45. Métodos, Ferramentas e Procedimentos definidos na disciplina de Engenharia de Software: Permitem que o gerente controle todo o processo de desenvolvimento do software
  • 46. Métodos, Ferramentas e Procedimentos definidos na disciplina de Engenharia de Software: Oferecem ao profissional desenvolvedor uma base para a construção de software de alta qualidade. Levam à produção de um software que atenda aos requisitos e expectativas do cliente
  • 47. MÉTODOS Definem diversos tipos de tarefas a serem realizadas antes, durante e após o desenvolvimento de um software. Incluem a especificação de notações a serem utilizadas, critérios para medir a qualidade do software e medidas de levantamento de requisitos
  • 48. Principais Tarefas: ◦ Planejamento e estimativa de projeto; ◦ Análise de Requisitos; ◦ Projeto da Estrutura de Dados; ◦ Algoritmo de Processamento; ◦ Codificação; ◦ Teste; ◦ Manutenção.
  • 49. FERRAMENTAS Podem auxiliar o desenvolvimento de software em diversos níveis: ◦ Apenas ambientes para codificação; ◦ Apoio semi-automático; ◦ Apoio automatizado.
  • 50. Ferramentas CASE (Computer-Aided Software Engineering) ◦ Ambientes de apoio ao desenvolvimento de software. ◦ Podem incluir diferentes ferramentas integradas, de forma que a informação gerada por uma das ferramentas do ambiente possa ser utilizada por outra ferramenta do mesmo ambiente.
  • 51. Ferramentas CASE (Computer-Aided Software Engineering) ◦ Exemplo 1: um ambiente contendo compilador, banco de dados e ferramentas de auxílio ao teste de software ◦ Exemplo 2: ambiente para a coordenação de desenvolvimento de software em equipe ◦ Exemplo 3: ambiente que gera o código com base na modelagem.
  • 52. PROCEDIMENTOS Indicam como executar, na prática, as tarefas definidas pelos métodos.
  • 53. PROCEDIMENTOS Podem indicar: ◦ a seqüência na qual os métodos serão aplicados; ◦ os produtos a serem entregues (documentos, relatórios, etc); ◦ controles de qualidade; ◦ coordenação de mudanças; ◦ etc.
  • 54. 1. Qual é a diferença entre software básico e software aplicativo? 2. Quais são as 7 principais categorias de software aplicativo? Dê um exemplo de software de cada categoria. 3. Quais são as características da 1a. era do software? 4. Quais são as características da 2a. era do software? 5. Quais são as características da 3a. era do software? 6. Quais são as características da 4a. era do software?
  • 55. 7.Em qual era começaram a surgir problemas com os software? 8. O que significa dizer que atualmente “software é mais importante que hardware”? 9. Como é que a crise de software levou ao surgimento da engenharia de software? Comente. 10. Defina engenharia de software com suas próprias palavras. 11.Quais são os principais objetivos da engenharia de software? 12.Quais são os 3 elementos da engenharia de software?