introdução a engenharia de software - prof. dr. luis ... sw i - parte 1... · Ética &...

57
Introdução a Engenharia de Software

Upload: doduong

Post on 22-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Introdução a Engenharia de Software

Prof.Luís Fernando GARCIA

[email protected]

www.Garcia.pro.br

2

Linguagens ??

3

4

Ferramentas ??

5

6

7

Nosso foco ??

8

9

Pensar Engenharia de Software !

10

11

Software é um lugar onde sonhos são plantados e pesadelos são colhidos, um pântano abstrato e místico onde demônios terríveis competem com mágicas panacéias, um mundo de lobisomens e balas de prata / Brad. J. Cox

Bibliografia

13

Bibliografia14

Bibliografia15

Por quê ?

16

Por que Engenharia de Software ??

Onipresença/DEPENDÊNCIA de “computadores”

Computador “=“ Software

Aspectos POSITIVOS

Aspectos NEGATIVOS

17

Exemplo ...18

• Início em 24:30• Final em 30:30

Erros (infelizmente) clássicos ...19

Erros (infelizmente) clássicos ...20

21

Software

• “Abstrato” ... Intangível

• Produto “complicado” ... “diferente”

• Sem limitações/”leis da física”

• Complexo ...

22

Histórico ...23

Histórico24

ANTES

até 2005

HOJE

De 2005

Pouco MUITO

Simples COMPLEXO

25

Questões a pensar

• Construção

• Efeitos/conseqüências

• Custo ($) / Tempo

• Qualidade

26

Questões a pensar

• Fabricação ou desenvolvimento

• Software “ desgasta “ ?

• Natureza mutável do software ...

27

Desenvolvimentode software

28

Enfoques de desenvolvimento ...

• Enfoque “ARTESANAL” (informal)

• Enfoque ENGENHARIA

29

Artesanal ...30

Artesanal ...31

Artesanal ...32

Artesanal ...33

Artesanal ...34

Artesanal ...

• “Na falta de padrões expressivos, uma nova indústria, como a de software, passa a depender de FOLCLORE” (Tom de Marco)

• CTRL-C/CTRL-V ...

• F8 .. Tentativa e erro ...

35

Definições

▸ “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” ... Fritz Bauer, 1972

37

Definições

• “Aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software” ...IEEE

38

Definições

• “Engenharia é a aplicação sistemática de conhecimentos científicos na criação e construção de soluções com um bom custo-benefício para a resolução de problemas práticos da sociedade” ... SEI

39

Crise do Software – 1968/OTAN

• Cronogramas não observados.• Projetos abandonados.• Módulos que não operam corretamente quando combinados.• Programas que não fazem exatamente o que era esperado.• Sistemas tão difíceis de usar que são descartados.• Sistemas que simplesmente param de funcionar.

41

43

SWEBOK define a área de Engenharia de Software ...44

SWEBOK define a área de Engenharia de Software ...45

Ética & Engenharia de Software47

A engenharia de software envolve responsabilidades mais amplas doque a simples aplicação de habilidades técnicas.

Engenheiros de software devem se comportar de uma maneirahonesta e eticamente responsável para serem respeitados comoprofissionais.

Comportamento ético é mais do que simplesmente agir emconcordância com a lei, envolve seguir um conjunto de princípiosmoralmente corretos.

Ética & Engenharia de Software48

•Confidencialidade

•Competência

•Propriedade Intelectual

•Uso indevido do computador

Qualidades esperadas em um software ...50

Qualidades esperadas em um software ...51

Pirâmide da Engenharia de Software54

Princípios clássicos

• Rigor e Formalismo

• Separação Preocupações

• Modularização

• Abstração

• Antecipação de Mudanças (?)

• Generalização

• Incrementabilidade

56

Princípios modernos

• Razão de Existir – Gerar valor !

• KISS – Keep it simple, stupid !

• Mantenha a visão – Arquitetura definida

• O que um produz, outros consomem –“Entendabilidade”

• Esteja aberto para o futuro

• Planeje com antecedência

• Pense!

57