21
CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – www.retondaro.pro.br Aula 1 Apresentação Engenharia de Software

Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

Embed Size (px)

Citation preview

Page 1: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 2017

Engenharia de Computação

CEFET/RJ – campus Petrópolis

Prof. Luis Retondaro – www.retondaro.pro.br

Aula 1

Apresentação

Engenharia de Software

Page 2: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20172www.retondaro.pro.br

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.

Page 3: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20173www.retondaro.pro.br

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).

Page 4: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20174www.retondaro.pro.br

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.

Page 5: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20175www.retondaro.pro.br

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.

Page 6: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20176www.retondaro.pro.br

Histórico

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

Page 7: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20177www.retondaro.pro.br

Histórico

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.

Page 8: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20178www.retondaro.pro.br

Histórico

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.

Page 9: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 20179www.retondaro.pro.br

Histórico

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.

Page 10: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201710www.retondaro.pro.br

Histórico

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.

Page 11: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201711www.retondaro.pro.br

Histórico

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.

Page 12: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201712www.retondaro.pro.br

Histórico

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.

Page 13: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201713www.retondaro.pro.br

Histórico

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.

Page 14: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201714www.retondaro.pro.br

Histórico

Page 15: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201715www.retondaro.pro.br

Histórico

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.

Page 16: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201716www.retondaro.pro.br

Histórico

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.

Page 17: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201717www.retondaro.pro.br

Histórico

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.

Page 18: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201718www.retondaro.pro.br

Histórico

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.

Page 19: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201719www.retondaro.pro.br

Histórico

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 stand-alone.

– 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.

Page 20: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201720www.retondaro.pro.br

Histórico

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”

Page 21: Engenharia de Software - retondaro.pro.br · 5 CC BY-SA 2017 ... ajudaram a engenharia de software a evoluir, mas hoje não se acredita mais em uma solução única e salvadora para

CC BY-SA 201721www.retondaro.pro.br

Histórico

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