Engenharia de Software. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro Aula 1.

Documentos relacionados
Evolução do Software e os Tipos de Softwares Existentes. Profa. Reane Franco Goulart

Manutenção de Computadores e Redes

Aula 1: A Evolução dos Sistemas Computacionais

Softwares, Aplicativos e Sistemas Operacionais

Aula Breve História dos Computadores - Informatiquês - O Computador - Software vs. Hardware. Introdução à Engenharia da Computação

Aula 1: Introdução à Organização de Computadores

Depois do estudo deste capítulo, o estudante deve ser capaz de:

Estrutura dos Computadores. Arquitetura de Computadores

RESOLUÇÃO CONSEPE 46/99 ALTERA O PLANO CURRICULAR E O REGIME DO CURSO DE ENGENHARIA DE COMPUTAÇÃO, DO CÂMPUS DE ITATIBA.

INFORMÁTICA E CONTABILIDADE. Prof. Me. Fábio Assunção CMP 1128 Parte 01

Unidade I. Organização de Computadores. Prof. Renato Lellis

Informática Aplicada. Introdução

Introdução aos Sistemas Operacionais. Disciplina: Sistemas Operacionais Prof. Filipe Arantes Fernandes

Evolução da Informática: a Origem da Computação

AULA 01: APRESENTAÇÃO

Máquinas de Calculo Mecânicas

Ábaco. Ipad HISTÓRIA DA INFORMÁTICA E SUA EVOLUÇÃO. Tecnologias de Informação e Comunicação

As Gerações dos Computadores. Professor Leonardo Cabral da R. Soares

Geração de computadores Arquitetura e Organização de Computadores Curso de Análise e Desenvolvimento de Sistemas

Informática I. Aula 1. Objetivo da disciplina

Hardware. Computador. Computador. Computador. Evolução dos Computadores. Laboratório de Utilização de Microcomputadores (DCA0302) Aula 01

Arquitetura de Computadores Aula 1 - Introdução

Introdução à Programação de Computadores Fabricação Mecânica

Unidade I ORGANIZAÇÃO DE. Prof. Antônio Palmeira

Fundamentos de Arquiteturas de Computadores

CES-10 Introdução à Computação. Prof. Paulo André IEC - ITA

Os computadores ditigais podem ser classificados em 5 grupos distintos:

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico

FACULDADE LEÃO SAMPAIO

13:22:21. Introdução à Informática com Software Livre

Disciplina de Arquitetura e Manutenção de Computadores

DIREITO DA SOCIEDADE DA INFORMAÇÃO

1)(Uerj) O código de uma inscrição tem 14 algarismos; dois deles e suas respectivas posições estão indicados abaixo.

CONCEITOS BÁSICOS DE INFORMÁTICA. Disciplina: Informática Professor: Gustavo Sabry

AEDI Introdução Revisão 2

ENGENHARIA DE SOFTWARE PROFA. REANE FRANCO GOULART

Informática I. Aula 1. Aula 1-30/08/2006 1

Máquinas de Calcular Mecânicas

Aula 06 - Máquina Multinível e Von Neumann

Aula 01 Apresentação Disciplina

Lista de Exercícios sobre Conceitos de Informática. Exercício 1: Correspondência

AULA: Introdução à Informática I

Fundamentos em Informática Introdução e Conceitos

Aula 2 - Programação de Computadores - CI208 1/21

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 4

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Introdução a Tecnologia da Informação

Arquitetura e Organização de Computadores. Histórico. Gerações

Organização e Arquitetura de Computadores I

André Aziz Francielle Santos

FUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 1

História e evolução dos computadores. Professor Leonardo Cabral da R. Soares

Introdução a Engenharia de Software. Professor Joerllys Sérgio

ARQUITETURA DE COMPUTADORES. Adão de Melo Neto

INTRODUÇÃO À INFORMÁTICA

Introdução a Computação

Informática para o MPU. Prof. Jefferson Moreira 1

CENTRO DE EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA TÉCNICO DE INFORMÁTICA E SISTEMAS EFA. UFCD: 0777 Processador de Texto Processamento e edição

Conceitos Básicos INTRODUÇÃO À COMPUTAÇÃO E SUAS APLICAÇÕES

Apresentação do Professor

Sistemas de Computação. O Computador. Eng. Jorge Munguambe. Lic. em Engenharia Informática

A HISTÓRIA DA COMPUTAÇÃO

O que é um microprocessador?

Fundamentos de Programação 1

A Evolução dos Computadores: do ENIAC ao TianHe2

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho

Histórico da evolução dos. Ermeson Andrade

Engenharia de Software: Uma Visão Geral. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Curso de Bacharelado em Ciência da Computação

Sistemas de Computação

Introdução à Ciência da Computação

Organização e Arquitetura de Computadores. Hugo Barros

GRANDES MARCOS NA HISTÓRIA DAS TIC

INFORMÁTICA. Professor: Venicio Paulo Mourão Saldanha Site:

INTRODUÇÃO À PROTEÇÃO DIGITAL

ORGANIZAÇÃO DE COMPUTADORES

INFORMÁTICA BÁSICA AULA

EXAME DE APROVEITAMENTO DE ESTUDOS

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

CIRCUITOS INTEGRADOS E VLSI

Nome Juciellen Cabrera e Camila Fernandes Julho/2015. Mulheres que programam? Quebrando paradigmas.

Arquiteturas Sequencias. Evolução dos Computadores BIBLIOGRAFIA BÁSICA. Organização e Arquitetura de Computadores

Hardware - Processador

1.3. CONCEITOS BÁSICOS DE INFORMÁTICA

Introdução à Computação MAC0110

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

ANEXO: ESTRUTURA CURRICULAR DO CURSO DE ENGENHARIA ELÉTRICA DA UFCG

Introdução 2014/1 Prof. Luís Fernando Garcia

S12 - Software e Engenharia de Software

MANUTENÇÃO DE COMPUTADORES

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Arquitetura de Computadores. Alberto Felipe Friderichs Barros

Introdução ao Processamento de Dados (I P D)

Microcomputadores. É época de Natal. Um pai sai em busca dos presentes, entre eles o do filho, o tão ansiado videogame.

Física 3 Experimental. Informações Gerais. Profa: Keli F. Seidel

Componentes de um Computador Típico

Arquitetura e Organização de Computadores

Transcrição:

Engenharia de Software Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 1 Apresentação

Introdução O que é software? Um programa de computador que contém estruturas dinâmicas de acesso e armazenamento de dados que manipulam a máquina para processá-los e fornecer resultados formatados e solicitados por uma determinada demanda, seja genérica ou específica, de uma comunidade de usuários. 2

Introdução Qual foi o primeiro software criado? Se a definição for aceita, o primeiro software surgiu na Inglaterra em 1948, baseado num sistema criado pelo matemático húngaro John von Neumann (1903-1957). 3

Curiosidade 100 anos antes de Neumann, esse conceito de software já havia sido imaginado, na teoria, por uma mulher. Por isso, muitos estudiosos consideram que a primeira programadora do mundo teria sido a condessa Ada Lovelace (1815-1852) matemática, filha do célebre poeta romântico inglês Lord Byron. 4

Curiosidade Modelo experimental Tudo começou quando Ada conheceu Charles Babbage, visionário que tentava construir um computador mecânico. Entre 1842 e 1843, ela criou notas sobre a máquina analítica de Babbage, que foram republicadas mais de cem anos depois. A máquina foi reconhecida como primeiro modelo de computador e as anotações da condessa como o primeiro algoritmo especificamente criado para ser implementado em um computador. 5

Anos 40 Os primeiros computadores construídos não possuíam softwares. os comandos eram implantados na máquina a partir de conexões físicas entre os componentes À medida que se percebeu a necessidade de computadores mais flexíveis, surgiu o software 6

Anos 50 Foco de pesquisa e desenvolvimento de hardware. O UNIVAC I (de UNIVersal Automatic Computer - Computador Automático Universal) foi o primeiro computador comercial fabricado e comercializado nos Estados Unidos. Era programado ajustando-se cerca de 6.000 chaves e conectando-se cabos a um painel. 7

1957 O Brasil comprou seu primeiro grande computador. O governo do estado de São Paulo comprou um mainframe Univac-120, da Burroughs, empresa que, depois, se transformaria na Unisys. O equipamento tinha 60 bytes de memória RAM, e era utilizado para calcular quanta água se gastava no Estado. 8

1958 Surgem os primeiros circuitos integrados; Foi lançado o primeiro computador transistorizado, com 16 bits, o IBM TX-0. Era relativamente pequeno, rápido, tinha um bom monitor de vídeo, possuía dispositivo de saída sonora e até uma caneta ótica. 9

1958 Um videojogo foi criado pelo físico William Higinbotham. É considerado o primeiro jogo criado para ser jogado em computadores. Era um jogo de tênis simples, mostrado em um osciloscópio e processado por um computador analógico. Note-se que o objetivo do programador ao criar o jogo tinha sido simplesmente chamar a atenção do público, que visitava as instalações do "Brookhaven National Laboratories", para verificar o poderio nuclear dos E.U.A. 10

Anos 60 Surgem os microprocessadores Grandes sistemas passam a serem desenvolvidos por várias organizações Como o software era um construto abstrato, sua produção não se encaixava perfeitamente em nenhuma das engenharias, nem mesmo na mecânica e na elétrica, que são as mais próximas, por terem relação com as máquinas que efetuam as computações. Surgiu, então, o conceito de engenharia de software, inicialmente referindo-se aos processos para a produção desse tipo de construto abstrato. 11

1968 Aceita-se que a primeira conferência sobre Engenharia de Software tenha sido a Conferência de Engenharia de Software da OTAN, organizada em Garmish, Alemanha, em 1968. Apesar disso, o termo já era usado desde os anos 50. 12

1960-1980 Período marcado pela chamada crise do software foram identificados os maiores problemas relacionados à produção de software, especialmente em larga escala Inicialmente, a crise referenciava especialmente questões relacionadas com orçamento e cronograma de desenvolvimento, mas posteriormente passou também a abranger aspectos de qualidade de software, uma vez que os sistemas, depois de prontos, apresentavam muitos erros, causando prejuízos. 13

14

Lei de Brooks Um exemplo clássico da crise de software dos anos 1960 foi o projeto do sistema operacional OS/360, que utilizou mais de mil programadores. Brooks (1975) afirmou ter cometido um erro que custou milhões à IBM nesse projeto, por não ter definido uma arquitetura estável antes de iniciar o desenvolvimento propriamente dito. Atualmente, a Lei de Brooks afirma que adicionar programadores a um projeto atrasado faz com que ele fique ainda mais atrasado. 15

Edsger W. Dijkstra A expressão crise do software foi usada pela primeira vez com impacto por Dijkstra (1971). Ele avaliava que, considerando o rápido progresso do hardware e das demandas por sistemas cada vez mais complexos, os desenvolvedores simplesmente estavam se perdendo, porque a engenharia de software, na época, era uma disciplina incipiente. 16

Problemas relatados por Dijkstra Projetos que estouram o cronograma. Projetos que estouram o orçamento. Produto final de baixa qualidade ou que não atenda aos requisitos. Produtos não gerenciáveis e difíceis de manter e evoluir. 17

Mudança de paradigma Por décadas, a atividade de pesquisa tentou resolver a crise do software. Cada nova abordagem era apontada como solução da crise. Porém, pouco a pouco, chegou-se ao consenso de que tal solução mágica não existia. Ferramentas CASE (Computer Aided Software Engineering), especificação formal, processos, componentes etc. foram boas técnicas que ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para os complexos problemas envolvidos com a produção de software. 18

Anos 90 Surgimento da internet; Consolidação da orientação a objetos como paradigma predominante; Novas necessidades surgiram e sistemas cada vez mais complexos, acessíveis de qualquer lugar do mundo, substituíram os antigos sistemas standalone. Com isso, novas preocupações relacionadas à segurança da informação e à proliferação de vírus e spam surgiram e passaram a fazer parte da agenda dos desenvolvedores de software. 19

Anos 2000 O crescimento da demanda por software em organizações de pequeno e médio porte levou ao surgimento de soluções mais simples e efetivas para o desenvolvimento de software para essas organizações. Assim surgiram os métodos ágeis, que procuram desburocratizar o processo de desenvolvimento e deixá-lo mais adequado a equipes pequenas mas competentes, capazes de desenvolver sistemas sem a necessidade de extensas listas de procedimentos ou de receitas de bolo 20

Atualmente... A área vem tentando se estabelecer como um corpo de conhecimentos coeso. O surgimento do SWEBOK (IEEE Computer Society, 2004) Guide to the Software Engineering Body of Knowledge, Sua adoção como padrão internacional em 2006 foi um avanço para a sistematização do corpo de conhecimentos da área 21