• Nenhum resultado encontrado

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

N/A
N/A
Protected

Academic year: 2021

Share "Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA"

Copied!
28
0
0

Texto

(1)

Introdução a Engenharia de

Software

Alterações na aula do Prof. Reinaldo Bianchi

Alterado por: Antonio Carlos Souza ADS - IFBA

(2)

Bibliografia

n Engenharia de Software, Roger

Pressman, Makron Books:

– o mais completo (a bíblia)

– edição em português desatualizada (3a. Edição, de 1992)

– 4a. Edição em inglês.

n Software Engineering: Theory and

Practice, Shari Pfleeger. Prentice Hall

(3)

1a. Aula

Introdução a Engenharia

de Software

(4)

Introdução

n

“O Software ultrapassou o

Hardware como chave para

o sucesso de muitos

sistemas baseados em

computador” (Pressman, pg.

3, 1992)

(5)

A importância do Software

n Durante as 3 primeiras décadas da era

do computador, o principal desafio era desenvolver um HARDWARE de baixo custo e alto desempenho.

n O hoje o desafio é melhorar a qualidade

(e reduzir os custos) das soluções baseadas em SOFTWARE!

(6)

Filosofando...

n A mudança de uma sociedade industrial

para uma baseada na informação é uma Radical Mudança Econômica:

– Material tem menos valor e Informação tem mais valor

n Antes: quanto

menos pessoas possuísse algo, maior o valor.

n Hoje: quanto mais

pessoas possuem algo, maior o valor.

(7)

O que é Software?

n Definição - Software é:

1o - instruções (programas de computador) que, quando executadas, produzem a função e o desempenho desejados;

2o - estruturas de dados que permitem a manipulação das informações;

3o - documentos que descrevem a operação e uso dos programas.

(8)

Características do Software - 1

n O Software é desenvolvido ou projetado

por engenharia, não manufaturado no sentido clássico:

– Custos são concentrados no trabalho de engenharia.

– Projetos não podem ser geridos como projetos de manufatura.

(9)

Características do Software - 2

n Software não desgasta!

– Software não é sensível aos problemas

ambientais que fazem com que o hardware se desgaste.

– Ver curvas de falha, páginas 14 e 15 do Pressman.

– Toda falha indica erro de projeto ou implementação: manutenção do SW é mais complicada que a do HW.

(10)

Características do Software - 3

n A maioria dos softwares é feita sob

medida e não montada a partir de componentes existentes.

n != Hardware.

n Situação esta mudando:

– Orientação a objetos.

– Reusabilidade é o “Santo Graal”(diminui custos e melhora projetos).

(11)

Uma Crise no horizonte

n A industria de Software tem tido uma

“crise” que a acompanha há quase 30 anos:

n Problemas não se limitam ao software

que não funciona adequadamente, mas abrange:

– desenvolvimento, testes, manutenção, suprimento, etc.

(12)

Quais são os problemas?

n A sofisticação do software ultrapassou

nossa capacidade de construção.

n Nossa capacidade de construir

programas não acompanha a demanda por novos programas.

n Nossa capacidade de manter

programas é ameaçada por projetos ruins.

(13)

Perguntas que Engenharia de

Software quer responder:

n Porque demora tanto para concluir um

projeto (não cumprimos prazos)?

n Porque custa tanto (uma ordem de

magnitude a mais)?

n Porque não descobrimos os erros antes

de entregar o software ao cliente?

n Porque temos dificuldade de medir o

progresso enquanto o software está sendo desenvolvido?

(14)

Causas óbvias

n Não dedicamos tempo para coletar

dados sobre o desenvolvimento do software - resulta em estimativas “a olho”.

n Comunicação entre o cliente e o

desenvolvedor é muito fraca.

n Falta de testes sistemáticos e

(15)

Causas menos óbvias

n O Software é desenvolvido ou projetado

por engenharia, não manufaturado no sentido clássico (característica 1).

n Gerentes sem background em

desenvolvimento de SW.

n Profissionais recebem pouco

treinamento formal.

n Falta investimento (em ES).

(16)

Mitos do Software

-Administrativos

n Um manual oferece tudo que se precisa

saber.

n Computadores de última geração

solucionam problemas de desenvolvimento.

n Se estamos atrasados, basta adicionar

(17)

Mitos do Software - do Cliente

n Uma declaração geral é suficiente para

começar a escrever programas.

n Mudanças podem ser facilmente

acomodadas em um projeto (ver figura pg. 28).

(18)

Mitos do Software

-do Profissional

n Um programa está terminado ao

funcionar.

n Quanto mais cedo escrever o código,

mais rápido terminarei o programa.

n Só posso avaliar a qualidade de um

programa em funcionamento.

n A única coisa a ser entregue em um

(19)

Engenharia de Software:

Definição

n “Engenharia de Software é 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”

(20)

Engenharia de Software:

Abrangência

n E.S. possui 3 elementos fundamentais:

– métodos: “como fazer”

– ferramentas: apoio automatizado aos métodos.

– Procedimentos: elo de ligação entre os métodos e os procedimentos

n Existem diversos Paradigmas de

Engenharia de Software:

– abordagens que envolvem estes métodos, ferramentas e procedimentos

(21)

Paradigmas de Engenharia de

Software

n Existem dezenas.

n 4 principais:

– Ciclo de Vida Clássico (modelo Cascata) – Prototipagem

– Espiral

– Técnicas de Quarta Geração

(22)

Ciclo de Vida Clássico: modelo

Cascata (Waterfall)

n Baseado em projetos de engenharia

clássicos (não de Software) - 1970

n Fases: – Análise de requisitos – Definição – Projeto – Implementação – Integração e testes – Operação e manutenção

(23)

Ciclo de Vida Clássico (II)

Requirements definition System and software design Implementation and unit testing

Integr ation and system testing

Operation and maintenance

(24)

Ciclo de Vida Clássico (III)

n Problemas:

– projetos reais não seguem um fluxo seqüencial: dificuldade de acomodar mudanças depois de iniciado.

– Dificuldade de declaração de todas as exigências pelo cliente.

(25)

Modelo Espiral de Boehm (1988)

Risk analys is Risk analys is Risk analys is Risk analysis Prot o-ty pe 1 Prot otyp e 2

Prot otyp e 3 Opera-ti onal prot oyp e

Concept o f Operati on

Simul ati ons, models, b en ch marks S/W requi rement s Requi rement valid ation Desi gn V& V Prod uct desi gn Detailed desi gn Code Uni t t es t Integr ati on test Accep tance test

Serv ice Develop, v erify

next -l evel p rod uct Ev aluate alt ern atives id en tify, resolve risk s Determine ob jectiv es

alternatives and cons traint s

Plan next p has e

Integrati on and test p lan Develop ment

pl an Requi rement s pl an

Li fe-cycle pl an REVIEW

(26)

Fases do modelo Espiral

n Definição dos objetivos

– Especificação dos objetivos específicos desta fase.

n Análise dos riscos

– Identificação e solução dos principais riscos

n Desenvolvimento e validação

n Planejamento

– O projeto é revisto e se define planos para a próxima “volta da espiral”

(27)

Conclusão

n Software é elemento chave para o

sucesso. Mas:

– Software não é hardware. – Software não é fácil.

– Software mata.

– Precisamos de ajuda.

n Sugestão de trabalhos, início da ajuda:

(28)

Exercício para próxima aula

n Descreva 2 casos de problemas

causados por erros em software que você conhece (OBS: não adianta falar do Windows)

n Descreva 2 produtos (que não seja um

computador) onde o software faz a diferença.

Referências

Documentos relacionados

O trauma deixa de ser anterior ao sujeito, como queria Freud em sua concepção do mal estar, para ser aquilo que pode surgir como efeito do furo produzido

Dos 64% que responderam que em termos econômicos os transgênicos poderiam gerar benefícios para a economia do país, 5,8% relataram que estes benefícios só

Isso deveria ser entendido da seguinte maneira: quando o aluno chega à escola com seis ou sete anos, domina uma certa quantidade das possibilidades da língua,

O Climate Policy Initiative/ Núcleo de Avaliação de Políticas Climáticas da PUC-Rio trabalha para aprimorar políticas públicas de energia e uso da terra gerando evidências para

The Climate Policy Initiative/ Núcleo de Avaliação de Políticas Climáticas da PUC-Rio works to improve public energy and land use policies by generating evidence for decision makers

As atividades que quebravam o regime de monopólio colonial – como as concessões cedidas pelos portugueses para o comércio de alguns produtos ingleses – também aparecem como

1. Etnografia Concorrente: São realizados estudos curtos e interativos antes do inicio do desenvolvimento, para que sejam colhidos os requisitos iniciais e a geração dos

“Logo, é a partir dos saberes práticos ou experienciais que os professores expressam seus próprios valores, juízos e sua concepção de ensino, realizam julgamentos,