SlideShare a Scribd company logo
1 of 112
Download to read offline
Conceitos e modelos de
desenvolvimento
Engenharia de Software
Prof: Sérgio Souza Costa
Sobre mim
Sérgio Souza Costa
Professor - UFMA
Doutor em Computação Aplicada (INPE)
prof.sergio.costa@gmail.com

https://sites.google.com/site/profsergiocosta/home
http://www.slideshare.net/skosta/presentations?order=popular
https://twitter.com/profsergiocosta
http://gplus.to/sergiosouzacosta
O que iremos aprender hoje ?
O que iremos aprender hoje ?

Conceitos sobre Engenharia de Software
O que iremos aprender hoje ?

Conceitos sobre Engenharia de Software
Modelos de desenvolvimento
O que iremos aprender hoje ?

Conceitos sobre Engenharia
de Software
Qual o primeiro conceito ? Por onde
devemos começar ? O que vocês acham ?
O que é software ?
O que é software?

Resposta não é obvia,

segundo Pressman, em
1970 menos de 1% dos profissionais poderiam ter
definido o que é software.
O que é software?
Produto que os engenheiros de software projetam e
constroem.
O que é software?
Produto que os engenheiros de software projetam e
constroem. Englobando:
O que é software?
Produto que os engenheiros de software projetam e
constroem. Englobando:
1) Instruções (programas de computadores,
código executável) que produzem algum resultado
desejado.
O que é software?
Produto que os engenheiros de software projetam e
constroem. Englobando:
2) Estruturas de dados que permitem que os
programas manipulem adequadamente a
informação.
O que é software?
Produto que os engenheiros de software projetam e
constroem. Englobando:
3) Documentação que descrevem o uso dos
programas.
O que é software?
SIM. Documentação,
aquela projetam
Produto que os engenheiros de softwareparte que ose
programadores não
constroem. Englobando:
morrem de amor.

3) Documentação que descrevem o uso dos
programas.
Então, software é um produto do engenheiro de
software, como um hardware é um produto de um
engenheiro eletrônico ? O que diferencia estes
produtos?
Então, software é um produto do engenheiro de
software, como um hardware é um produto de um
engenheiro eletrônico ? O que diferencia estes
produtos?

Software é lógico.

Hardware é físico.
Então, software é um produto do engenheiro de
software, como um hardware é um produto de um
engenheiro eletrônico ? O que diferencia estes
produtos?

Software é lógico.

Vamos ver melhor
estas diferenças, e
como isto reflete
na sua construção.

Hardware é físico.
CARACTERÍSTICAS DO SOFTWARE
Qual a diferença entre Hardware e
Software ?
1. Desenvolvido ou projetado por engenharia,
não manufaturado no sentido clássico.
1. Desenvolvido ou projetado por engenharia,
não manufaturado no sentido clássico.
Hardware - manufaturado
Projeto (modelo
conceitual)

Mundo Lógico
Artefatos (esquemas,
plantas, mapas ... )

Fabricação (manufaturado)

Mundo físico
1. Desenvolvido ou projetado por engenharia,
não manufaturado no sentido clássico.
Software

Modelos

Alto nível

Baixo nível

Projeto (modelo
conceitual)

Artefatos (diagramas,
documentos ..)

Programa – modelo de
implementação

Mundo Lógico
1. Desenvolvido ou projetado por engenharia,
Relaxem. Iremos
entender melhor isso
não manufaturado no sentido oclássico.
durante curso, na
Software

Modelos

Alto nível

Baixo nível

carreira, em algum
momento …

Projeto (modelo
conceitual)

Artefatos (diagramas,
documentos ..)

Programa – modelo de
implementação

Mundo Lógico
1. Desenvolvido ou projetado por engenharia,
Relaxem. Iremos
entender melhor isso
A engenharia ainda
não manufaturado no sentido oclássico.
durante curso, na
está entendendo

Software

Modelos

Alto nível

Baixo nível

carreira, em algum
melhor
momento …estas

diferenças.

Projeto (modelo
conceitual)

Artefatos (diagramas,
documentos ..)

Programa – modelo de
implementação

Mundo Lógico
No
desenvolvimento
de
um
software
conceitualmente não existe um processo manual,
todos os envolvidos exercem um trabalho
intelectual.
No desenvolvimento de um software conceitualmente não
existe um processo manual, todos os envolvidos exercem
um trabalho intelectual.

Porém, onde e quem exerce o trabalho mais
similar a um trabalho “manual” em um
software ?
2. Software não se desgasta como nos
hardware.
Como é a manutenção em um hardware ? e
em um software?
Curva de falha do hardware
Mortalidade infantil
Desgaste

Associada a falhas de
fabricação e ou projeto.

Desgaste

Falha

Mortalidade
infantil

Males ambientais, poeiras,
vibrações.
Todo hardware tem um
tempo de vida.
Temp
o
E no software, como vocês acham que é esta
curva ? Lembrem-se de que no software não
existe uma processo manufaturado, não
existem peças que se desgastam.
Falha

Curva de falha do software

Mudança
Curva real
Curva idealizada
Temp
o
Falha

Curva de falha do software

Mudança
Curva real
Curva idealizada
Temp
o
Contraditorio ?
Curva de falha do software
Consegueriam

Falha

explicar ?

Mudança
Curva real
Curva idealizada
Temp
o
Curva de falha do software

Falha

Incremento
devido os efeitos
colaterais

Mudança
Curva real
Curva idealizada
Temp
o
Efeitos colaterais, o pesadelo de todo
desenvolvedor de software.
Correção de erros, tendem a gerar novos erros.
Efeitos colaterais, o pesadelo de todo
desenvolvedor de software.
Correção de erros, tendem a gerar novos erros.
Desenvolvedores temem modificações, tentam a evitá-las.
Efeitos colaterais, o pesadelo de todo
desenvolvedor de software.
Correção de erros, tendem a gerar novos erros.
Desenvolvedores temem modificações, tentam a evitá-las.
Porém, mudanças são inevitáveis e temos que lidar com
isso.
Efeitos colaterais, o pesadelo de todo
Requisitos de
softwares
desenvolvedor de software. sempre
mudam.

Correção de erros, tendem a gerar novos erros.
Desenvolvedores temem modificações, tentam a evitá-las.
Porém, mudanças são inevitáveis e temos que lidar com
isso.
Efeitos colaterais, o pesadelo de todo
Requisitos de
softwares
desenvolvedor de software. sempre
mudam.

Vamos ver durante o
curso, mecanismo quetendem a gerar novos erros.
Correção de erros,
tentam tornar esse
processo menos
dolorosos.
Desenvolvedores temem modificações, tentam a evitá-las.

Porém, mudanças são inevitáveis e temos que lidar com
isso.
3. A maioria é feita sob medida em vez de
ser montada a partir de componentes
existentes.
3. A maioria é feita sob medida em vez de
ser montada a partir de componentes
existentes.
O reuso de “componentes de software” ainda não é
equivalente a outras engenharias, como no hardware.
Padrões ainda estão sendo desenvolvidos.
3. A maioria é feita sob medida em vez de
ser montada a partir de componentes
existentes.
O reuso de “componentes de software” ainda não é
equivalente a outras engenharias, como no hardware.
Padrões ainda estão sendo desenvolvidos.
Existem diversos componentes padronizado para a
montagem de um hardware, parafusos, placas,
transistores, diodos, etc.
EVOLUÇÃO DO SOFTWARE
Evolução do Software

Os primeiros
anos
- ORIENTAÇÃO
BATCH
- DISTRIBUÍÇÃO
LIMITADA
- SOFTWARE
CUSTOMIZADO

1950

1960

1970

1980

2000
Evolução do Software

Os primeiros
anos
- ORIENTAÇÃO
BATCH
- DISTRIBUÍÇÃO
LIMITADA
- SOFTWARE
CUSTOMIZADO

1950

A segunda
era
- MULTIUSUÁRIO
- TEMPO REAL
- BANCO DE
DADOS
- PRODUTOS DE
SOFTWARE

1960

1970

1980

2000
Evolução do Software
Crise do software

Os primeiros
anos
- ORIENTAÇÃO
BATCH
- DISTRIBUÍÇÃO
LIMITADA
- SOFTWARE
CUSTOMIZADO

1950

A segunda
era
- MULTIUSUÁRIO
- TEMPO REAL
- BANCO DE
DADOS
- PRODUTOS DE
SOFTWARE

1960

1970

1980

2000
Evolução do Software
Crise do software

Os primeiros
anos
- ORIENTAÇÃO
BATCH
- DISTRIBUÍÇÃO
LIMITADA
- SOFTWARE
CUSTOMIZADO

1950

A terceira
era

A segunda
era
- MULTIUSUÁRIO
- TEMPO REAL
- BANCO DE
DADOS
- PRODUTOS DE
SOFTWARE

1960

1970

- SISTEMAS
DISTRIBUÍDOS
-INTELIGÊNCIA
EMBUTIDA
-HARDWARE DE
BAIXO CUSTO
- IMPACTO DE
CONSUMO

1980

2000
Evolução do Software
A quarta
era

Crise do software

Os primeiros
anos
- ORIENTAÇÃO
BATCH
- DISTRIBUÍÇÃO
LIMITADA
- SOFTWARE
CUSTOMIZADO

1950

A terceira
era

A segunda
era
- MULTIUSUÁRIO
- TEMPO REAL
- BANCO DE
DADOS
- PRODUTOS DE
SOFTWARE

1960

1970

- SISTEMAS
DISTRIBUÍDOS
-INTELIGÊNCIA
EMBUTIDA
-HARDWARE DE
BAIXO CUSTO
- IMPACTO DE
CONSUMO

- SISTEMAS DE
DESKTOP
PODEROSOS
- TECNOLOGIAS
ORIENTADAS
A OBJETOS
- SISTEMAS
ESPECIALISTAS
- REDES
NEURAIS
ARTIFICIAIS
- COMPUTAÇÃO
PARALELA

1980

2000
A crise do software
+ Complexidade

- Confiabilidade

Aumento crescente por
sistemas de Informação

Mais dependência do
software nos
procedimentos
normais do cotidiano

Sistemas mais e mais
sofisticados exigem mais
recursos (humanos e
máquinas)

Sistemas devem ser
mais e mais seguros.
A crise do software
Manutenabilidade
•Imprecisão nas especificações iniciais do projeto
•Muitas modificações exigidas pelo cliente
•Rotatividade acentuada da equipe de projeto
•Informações não muito bem documentadas
•Custo elevado nos estágios finais de projeto
Temos muitos PROBLEMAS, a quem
podemos recorrer ?
Temos muitos PROBLEMAS, a quem
podemos recorrer ?
ENGENHARIA
ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de
uma abordagem sistemática, disciplinada e quantificável no
desenvolvimento, operação e manutenção de software.
ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de
uma abordagem sistemática, disciplinada e quantificável no
desenvolvimento, operação e manutenção de software.
Sistemática por que parte do princípio de que existe um processo de
desenvolvimento definindo as atividades que deverão ser executadas.
ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de
uma abordagem sistemática, disciplinada e quantificável no
desenvolvimento, operação e manutenção de software.
Sistemática por que parte do princípio de que existe um processo de
desenvolvimento definindo as atividades que deverão ser executadas.
Disciplinada por que parte do princípio de que os processos definidos
serão seguidos
ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de
uma abordagem sistemática, disciplinada e quantificável no
desenvolvimento, operação e manutenção de software.
Sistemática por que parte do princípio de que existe um processo de
desenvolvimento definindo as atividades que deverão ser executadas.
Disciplinada por que parte do princípio de que os processos definidos
serão seguidos
Quantificável por que se deve definir um conjunto de medidas a serem
extraídas do processo
ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de
uma abordagem sistemática, disciplinada e quantificável no
desenvolvimento, operação e manutenção de software.
Sistemática por que parte do princípio de que existe um processo de
desenvolvimento definindo as atividades que deverão ser executadas.
Disciplinada por que parte do princípio de que os processos definidos
serão seguidos
Quantificável por que se deve definir um conjunto de medidas a serem
extraídas do processo
Desenvolvimento, operação e manutenção são fases do processo de
software.
ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de
uma abordagem sistemática, disciplinada e quantificável no
desenvolvimento, operação e manutenção de software.
Sistemática por que parte do princípio de que existe um processo de
desenvolvimento definindo as atividades que deverão ser executadas.
Disciplinada por que parte do princípio
serão seguidos

Mas o que é
de que os processos
um processo ?

definidos

Quantificável por que se deve definir um conjunto de medidas a serem
extraídas do processo
Desenvolvimento, operação e manutenção são fases do processo de
software.
ES – Uma tecnologia em camadas

Ferramentas
Métodos
Processo
Foco na qualidade

Adaptado de Roger Pressman
ES – Uma tecnologia em camadas

Ferramentas
Métodos
Processo
Foco na qualidade

Adaptado de Roger Pressman
Foco na qualidade
• A busca pela qualidade é o objetivo de usar
qualquer engenharia (não apenas da ES).
• Ela deve ser buscada em cada fase do processo de
desenvolvimento.
• Permite ao
– gerente um controle e ao
– desenvolvedor uma referência.
ES – Uma tecnologia em camadas

Ferramentas
Métodos
Processo
Foco na qualidade

Adaptado de Roger Pressman
Métodos
Os detalhes de “como fazer” para construir o software,
existem métodos para as diferentes tarefas.

Planejamento e estimativa de projeto

Análise de requisitos
Projeto da estrutura de dados
Codificação, teste,
manutenção
ES – Uma tecnologia em camadas

Ferramentas
Métodos
Processo
Foco na qualidade

Adaptado de Roger Pressman
Ferramentas
As ferramentas de engenharia de software proporcionam
apoio automatizado ou semi-automatizado aos métodos.
Cada tarefa, pode ter uma ou mais ferramenta auxiliando.

Se elas são integradas (troca de informação), chamamos de
ferramentas
• CASE (Computer-Aided Software Engineering), em
português Engenharia de Software Auxiliada por
Computador.
ES – Uma tecnologia em camadas

Ferramentas
Métodos
Processo
Foco na qualidade

Adaptado de Roger Pressman
Processo
O processo é a camada mais importante da ES, esta camada
constitui o elo de ligação entre as ferramentas e os métodos.
Um processo define :
Processo
O processo é a camada mais importante da ES, esta camada
constitui o elo de ligação entre as ferramentas e os métodos.
Um processo define :
A seqüência em que os métodos serão aplicados.
Quais os responsáveis por cada tarefa.
Quando e como o software será entregue.
Possibilitam aos gerentes de software avaliar o
progresso do desenvolvimento.
Processo
O processo é a camada mais importante da ES, esta camada
constitui o elo de ligação entre as ferramentas e os métodos.
Um processo define :
Uma empresa pode usar métodos
e ferramentas e não seguir
A seqüência em que osnenhum processo estabelecido.
métodos serão aplicados.
Existem até classificações para
empresas quanto ao uso de
Quais os responsáveis por cada tarefa.
processos.

Quando e como o software será entregue.
Possibilitam aos gerentes de software avaliar o
progresso do desenvolvimento.
Modelos de processo
Um processo é representado por um MODELO
prescritivo.
Um modelo prescritivo, nos dá uma referência, porem
sempre existe a necessidade de adaptá-lo a cada
projeto:
– O pessoal que vai executar o trabalho e o ambiente no
qual o trabalho vai ser conduzido.
Modelos de processo
Um processo é representado por um MODELO
prescritivo.
Modelos prescritivos
são versões
Um modelo prescritivo, nos dá apenas uma referência,
simplificadas, não sao
porem sempreprocessos.necessidade de adaptá-lo a
existe a

cada projeto:

– O pessoal que vai executar o trabalho e o ambiente no
qual o trabalho vai ser conduzido.
Modelos de processos
• Existem diversos modelos de processo como:
–
–
–
–
–
–
–

Cascata
Incremental
Protótipo
Espiral
Formal
4º geração
...
Modelos de processo
• Independente do modelo de processo, incluise as seguintes atividades:
–
–
–
–
–

Comunicação
Planejamento
Modelagem
Construção
Implantação
“Existem muitos modos de ir para frente, mas
apenas um modo de ficar parado.”
Franklin D. Rosevelt
Modelo em cascata
Conhecido como “ciclo de vida clássico”. Sugere
uma abordagem sistemática e seqüencial.
Filosofia: O resultado de uma fase se constitui
na entrada da outra e uma fase só começa,
após o termino da anterior.
O modelo mais antigo e ainda muito utilizado,
porém existem diversas variações.
Modelo em cascata
Comunicação
Iniciação do projeto,
levantamento de
requisitos
Comunicação
Os serviços, restrições e objetivos do sistema são
definidos por meio de consulta aos usuários do
sistema.
A especificação do sistema:
Quais informações os sistemas deverá prover
Quais informações os sistemas não deverá prover
Comunicação

Isto é
documentado e
“assinado”. Faz
Os serviços, restrições e objetivos do sistema são
parte do contrato.

definidos por meio de consulta aos usuários do
sistema.
A especificação do sistema:
Quais informações os sistemas deverá prover
Quais informações os sistemas não deverá prover
Comunicação
Exemplo de requisitos:
Em pequenos sistemas, uma ferramenta de planilhas
pode ser suficiente:

Ref:
Comunicação
Exemplo de requisitos:

Veremos sobre
engenharia de
requisitos, capitulo
7.

Em pequenos sistemas, uma ferramenta que planilhas
pode ser suficiente:

Ref:
Modelo em cascata
Comunicação
Iniciação do projeto,
levantamento de
requisitos

Planejamento
Estimativas,
cronogramas,
monitoração
Planejamento
O planejamento define o tempo estimado de
entrega.
Nele, deve ser definido o cronograma de
execução de cada atividade.
Além disso, deve se ter mecanismo que permita
a monitoração do projeto.
– Será que o projeto irá atender as estimativas,
sobre custo e tempo.
Planejamento
Ferramentas que auxilia, MSProject e OpenProject.
Modelo em cascata
Comunicação
Iniciação do projeto,
levantamento de
requisitos

Planejamento
Estimativas,
cronogramas,
monitoração

Modelagem
Análise e projeto
Modelagem
A análise e o projeto estabelecerá a arquitetura
geral do sistema e envolve:
Identificar e descrever as abstrações
fundamentais do sistema de software e suas
relações.
Modelagem
Nessa fase, se estivermos fazendo uso da UML,
precisaremos de ferramentas que construam os seus
diagramas.
Gato
Raça
Tamanho
Cor
caçar
brincar
Modelagem

Veremos estes
diagramas em
outra disciplina.
Nessa fase, se estivermos fazendo uso da UML,
precisaremos de ferramentas que construam os seus
diagramas.
Gato
Raça
Tamanho
Cor
caçar
brincar
Modelo em cascata
Comunicação
Iniciação do projeto,
levantamento de
requisitos

Planejamento
Estimativas,
cronogramas,
monitoração

Modelagem
Análise e projeto

Construção
Codificação,
teste
Codificação e teses
O projeto de software é traduzido para um
conjunto de programas ou unidades (funções,
objetos, componentes, etc).
Nesta fase, são feitos testes unitários, que
envolve a verificação de que cada unidade
atende sua especificação.
Codificação e teses
Nesta fase, é usual utilizar uma IDE (Integrated Development
Environment), ou ambiente integrado de desenvolvimento, por
exemplo o Eclipse.
No Java existe a JUnit para testes de unidade
Modelo em cascata
Comunicação
Iniciação do projeto,
levantamento de
requisitos

Planejamento
Estimativas,
cronogramas,
monitoração

Modelagem
Análise e projeto

Construção
Implantação
Entrega,
manutenção,
feedback

Codificação,
teste
Implantação
As unidades individuais de programa e ou programas, são
integrados e testados buscando garantir os requisitos de
software foram atendidos.
Após os testes o sistema é entregue e implantado para o
cliente.
Manutenção, envolve a correção de erros não detectados.
Além da ampliação dos serviços do sistema á medida que
novos requisitos são identificados
Implantação

Como é a
implantação em
sistemas desktop e
As unidades individuais de programa e ou programas, são
em sistemas Web?
integrados e testados buscando garantir os requisitos de
software foram atendidos.

Após os testes o sistema é entregue e implantado para o
cliente.
Manutenção, envolve a correção de erros não detectados.
Além da ampliação dos serviços do sistema á medida que
novos requisitos são identificados
Implantação

Como é a
implantação em
sistemas desktop e
As unidades individuais de programa e ou programas, são
em sistemas Web?
integrados e testados buscando garantir os requisitos de
software foram atendidos.

Após os testes o sistema é entregue e implantado para o
cliente.
Manutenção, envolve a correção de erros não detectados.
Além da ampliação dos serviços do sistema á medida que
novos requisitos são identificados

Requisitos sempre
mudam
Modelo cascata
• Pontos fortes
Modelo cascata
• Pontos fortes
–
–
–
–

Mais antigo e testado modelo de processo
Enfoque sistemático e sequencial das tarefas
Muitas melhorias e variações,
É o arcabouço de referência a diversos outros
modelos de processos.
Modelo cascata
• Pontos fracos
Modelo cascata
• Pontos fracos
– Projetos reais raramente seguem um fluxo seqüencial.
– Os Clientes e Usuários não conseguem estabelecer de forma clara e
completa os requisitos de sistema no início do desenvolvimento.
– Grande demora até a entrega do produto ao cliente (primeira
apreciação).
– Alto custo da correção das especificações quando na fase da
integração e teste.
Modelo incremental
Combina elementos do modelo em cascata, aplicado de
maneira iterativa.
Aplica seqüência lineares, de modo cada sequencia
produz incrementos do software.
Modelo incremental
Combina elementos do modelo em cascata, aplicado de
maneira iterativa.
Aplica seqüência lineares, de modo cada sequencia
produz incrementos do software.
Um incremento, é um produto operacional.
Modelo incremental
Combina elementos do modelo em cascata, aplicado de
maneira iterativa.
Aplica seqüência lineares, de modo cada sequencia
produz incrementos do software.
Um incremento, é um produto operacional.
Os primeiros incrementos são versões
simplificadas.
Modelo incremental
Comunicação
Planejamento

Funcionalidades

Modelagem
Construção
Implantação

Incremento 1

Tempo decorrido
Modelo incremental
Comunicação
Planejamento

Funcionalidades

Modelagem
Construção
Implantação

Incremento 2

Incremento 1

Tempo decorrido
Modelo incremental
Incremento N

Comunicação
Planejamento

Funcionalidades

Modelagem
Construção
Implantação

Incremento 2

Incremento 1

Tempo decorrido
Modelo incremental
• Enfoque para sistemas modulares ou baseado
em subsistemas.
• Utilizado como estratégia para projetos muito
grandes.
• Evita problemas de perda de controle: custo e
prazos.
• É um modelo evolucionário.
Modelo incrementalexemplo, os modelos
Por
unificados que vocês
verão em orientação
objeto tem como
referência o modelo
incremental.

• Enfoque para sistemas modulares ou baseado
em subsistemas.
• Utilizado como estratégia para projetos muito
grandes.
• Evita problemas de perda de controle: custo e
prazos.
• É um modelo evolucionário.
Modelo incrementalexemplo, os modelos
Por
unificados que vocês
verão em orientação
Já objeto tem como em
ouviram falar
referência o modelo
métodos ágeis ?
incremental.

• Enfoque para sistemas modulares ou baseado
em subsistemas.
Eles tambem são
incrementais.
• Utilizado como estratégia para projetos muito
grandes.
• Evita problemas de perda de controle: custo e
prazos.
• É um modelo evolucionário.
Pontos chaves: Conceitos ES
• Software, são os 1) programas, 2) estruturas de dados e 3)
documentação.
• A ES nasce pra resolver diversos problemas que foram
agravados com o incremento na quantidade e complexidade
dos softwares.
• ES é a aplicação de uma abordagem sistemática, disciplinada
e quantificável no desenvolvimento, operação e manutenção
de software.
• Um processo define que métodos e quais ferramentas usar
para atingir um nível de qualidade.
Pontos chaves: Modelos
• Um modelo descreve uma visão simplificada do
processo.
• Um modelo deve ser ajustado as necessidades do
projeto específico.
• Um modelo de processo genérico inclui: comunicação,
planejamento, modelagem, construção e implantação.
• Existem diversos modelos, vimos hoje o modelo em
cascata, conhecido como ciclo de vida clássico.
• E o modelo incremental, que é baseado no modelo em
cascata, porém divide o sistemas em incrementos, que
possui uma funcionalidade e seu próprio cronograma
Como o projeto foi
documentado.

Como o lider do
projeto entendeu.

Como o projeto foi
instalado.

Como o analista
projetou.

Como o cliente
pagou

Como o
programador
escreveu.

O que o cliente
realmente precisava.

http://www.projectcartoon.com/cartoon/58

Como o cliente
definiu.
Exercitando o cérebro....
• As atividades deverão ser enviadas por email
antes do início da próxima aula.

More Related Content

What's hot

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
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais okMarcos Morais de Sousa
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 

What's hot (20)

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
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais ok
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 

Viewers also liked

Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareVinicius Garcia
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Softwareelliando dias
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de softwareYuri Garcia
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Rildo (@rildosan) Santos
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 
Engenharia de Software Ágil (Scrum e FDD)
Engenharia de Software Ágil (Scrum e FDD)Engenharia de Software Ágil (Scrum e FDD)
Engenharia de Software Ágil (Scrum e FDD)Rildo (@rildosan) Santos
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Crystal - Engenharia de Software
Crystal - Engenharia de SoftwareCrystal - Engenharia de Software
Crystal - Engenharia de SoftwareFelipe Bastos
 
Kelli Janae Lindsay : LRA Uganda
Kelli Janae Lindsay : LRA Uganda Kelli Janae Lindsay : LRA Uganda
Kelli Janae Lindsay : LRA Uganda Kelli Kling
 
Final copy lra conflict uganda
Final copy lra conflict ugandaFinal copy lra conflict uganda
Final copy lra conflict ugandaKelli Kling
 
LRA Presentation 1
LRA Presentation 1LRA Presentation 1
LRA Presentation 1ildikoscurr
 
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0Sebastian Schaffert
 
Gj Sue Tr Policy
Gj Sue Tr PolicyGj Sue Tr Policy
Gj Sue Tr PolicyCallieO
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Fernando Palma
 

Viewers also liked (20)

Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de software
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Engenharia de Software Ágil (Scrum e FDD)
Engenharia de Software Ágil (Scrum e FDD)Engenharia de Software Ágil (Scrum e FDD)
Engenharia de Software Ágil (Scrum e FDD)
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Crystal - Engenharia de Software
Crystal - Engenharia de SoftwareCrystal - Engenharia de Software
Crystal - Engenharia de Software
 
Kelli Janae Lindsay : LRA Uganda
Kelli Janae Lindsay : LRA Uganda Kelli Janae Lindsay : LRA Uganda
Kelli Janae Lindsay : LRA Uganda
 
ingenieria del software
ingenieria del softwareingenieria del software
ingenieria del software
 
Final copy lra conflict uganda
Final copy lra conflict ugandaFinal copy lra conflict uganda
Final copy lra conflict uganda
 
LRA Presentation 1
LRA Presentation 1LRA Presentation 1
LRA Presentation 1
 
LRA Presentation (1)
LRA Presentation (1)LRA Presentation (1)
LRA Presentation (1)
 
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
 
Gj Sue Tr Policy
Gj Sue Tr PolicyGj Sue Tr Policy
Gj Sue Tr Policy
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
 

Similar to Conceitos e modelos de desenvolvimento de software

IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08Gilson Silva
 
Arquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão CríticaArquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão CríticaPedro Castilho
 
C.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoC.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoTiago Barros
 
Fundamento de Sistemas de Informacao - Aula 24
Fundamento de Sistemas de Informacao - Aula 24Fundamento de Sistemas de Informacao - Aula 24
Fundamento de Sistemas de Informacao - Aula 24Ismar Silveira
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3André Phillip Bertoletti
 
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Ismar Silveira
 
Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro LocawebFabio Akita
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb CuritibaFabio Akita
 
curso-228532-aula-10-20e2-completo 1..pdf
curso-228532-aula-10-20e2-completo  1..pdfcurso-228532-aula-10-20e2-completo  1..pdf
curso-228532-aula-10-20e2-completo 1..pdfkassiocarlos
 
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe AlisonSoftwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe AlisonPotiLivre Sobrenome
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo RealLeandro Silva
 
O Que E Software Livre
O Que E Software LivreO Que E Software Livre
O Que E Software LivreFreedom DayMS
 
Uma linha tênue entre arquitetura de software e o dia a dia dev
Uma linha tênue entre arquitetura de software e o dia a dia devUma linha tênue entre arquitetura de software e o dia a dia dev
Uma linha tênue entre arquitetura de software e o dia a dia devEduardo Cesar
 
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!André Espeiorin
 

Similar to Conceitos e modelos de desenvolvimento de software (20)

Aula 06 softwares
Aula 06   softwaresAula 06   softwares
Aula 06 softwares
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08
 
Arquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão CríticaArquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão Crítica
 
C.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoC.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en Diseño
 
Fundamento de Sistemas de Informacao - Aula 24
Fundamento de Sistemas de Informacao - Aula 24Fundamento de Sistemas de Informacao - Aula 24
Fundamento de Sistemas de Informacao - Aula 24
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3
 
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
 
Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro Locaweb
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb Curitiba
 
curso-228532-aula-10-20e2-completo 1..pdf
curso-228532-aula-10-20e2-completo  1..pdfcurso-228532-aula-10-20e2-completo  1..pdf
curso-228532-aula-10-20e2-completo 1..pdf
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe AlisonSoftwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
 
O Que E Software Livre
O Que E Software LivreO Que E Software Livre
O Que E Software Livre
 
Uma linha tênue entre arquitetura de software e o dia a dia dev
Uma linha tênue entre arquitetura de software e o dia a dia devUma linha tênue entre arquitetura de software e o dia a dia dev
Uma linha tênue entre arquitetura de software e o dia a dia dev
 
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
 
Apostila broffice
Apostila brofficeApostila broffice
Apostila broffice
 
Sistemas Embarcados (1).pptx
Sistemas Embarcados (1).pptxSistemas Embarcados (1).pptx
Sistemas Embarcados (1).pptx
 
App Inventor: Eu escolho você!
App Inventor: Eu escolho você!App Inventor: Eu escolho você!
App Inventor: Eu escolho você!
 

More from Sérgio Souza Costa

Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasSérgio Souza Costa
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computadorSérgio Souza Costa
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosSérgio Souza Costa
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosSérgio Souza Costa
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoSérgio Souza Costa
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemSérgio Souza Costa
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaSérgio Souza Costa
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoSérgio Souza Costa
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theoremsSérgio Souza Costa
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsSérgio Souza Costa
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosSérgio Souza Costa
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Sérgio Souza Costa
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)Sérgio Souza Costa
 

More from Sérgio Souza Costa (20)

Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicas
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computador
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmos
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficos
 
Modelagem de dados geográficos
Modelagem de dados geográficosModelagem de dados geográficos
Modelagem de dados geográficos
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de Encerramento
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de abertura
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - Introdução
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theorems
 
Turing e o problema da decisão
Turing e o problema da decisãoTuring e o problema da decisão
Turing e o problema da decisão
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cells
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetos
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)
 
Herança e Encapsulamento
Herança e EncapsulamentoHerança e Encapsulamento
Herança e Encapsulamento
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)
 
Abstract classes and interfaces
Abstract classes and interfacesAbstract classes and interfaces
Abstract classes and interfaces
 
Introdução ao Prolog
Introdução ao PrologIntrodução ao Prolog
Introdução ao Prolog
 
Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 

Conceitos e modelos de desenvolvimento de software

  • 1. Conceitos e modelos de desenvolvimento Engenharia de Software Prof: Sérgio Souza Costa
  • 2. Sobre mim Sérgio Souza Costa Professor - UFMA Doutor em Computação Aplicada (INPE) prof.sergio.costa@gmail.com https://sites.google.com/site/profsergiocosta/home http://www.slideshare.net/skosta/presentations?order=popular https://twitter.com/profsergiocosta http://gplus.to/sergiosouzacosta
  • 3. O que iremos aprender hoje ?
  • 4. O que iremos aprender hoje ? Conceitos sobre Engenharia de Software
  • 5. O que iremos aprender hoje ? Conceitos sobre Engenharia de Software Modelos de desenvolvimento
  • 6. O que iremos aprender hoje ? Conceitos sobre Engenharia de Software
  • 7. Qual o primeiro conceito ? Por onde devemos começar ? O que vocês acham ?
  • 8. O que é software ?
  • 9. O que é software? Resposta não é obvia, segundo Pressman, em 1970 menos de 1% dos profissionais poderiam ter definido o que é software.
  • 10. O que é software? Produto que os engenheiros de software projetam e constroem.
  • 11. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando:
  • 12. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando: 1) Instruções (programas de computadores, código executável) que produzem algum resultado desejado.
  • 13. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando: 2) Estruturas de dados que permitem que os programas manipulem adequadamente a informação.
  • 14. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando: 3) Documentação que descrevem o uso dos programas.
  • 15. O que é software? SIM. Documentação, aquela projetam Produto que os engenheiros de softwareparte que ose programadores não constroem. Englobando: morrem de amor. 3) Documentação que descrevem o uso dos programas.
  • 16. Então, software é um produto do engenheiro de software, como um hardware é um produto de um engenheiro eletrônico ? O que diferencia estes produtos?
  • 17. Então, software é um produto do engenheiro de software, como um hardware é um produto de um engenheiro eletrônico ? O que diferencia estes produtos? Software é lógico. Hardware é físico.
  • 18. Então, software é um produto do engenheiro de software, como um hardware é um produto de um engenheiro eletrônico ? O que diferencia estes produtos? Software é lógico. Vamos ver melhor estas diferenças, e como isto reflete na sua construção. Hardware é físico.
  • 20. Qual a diferença entre Hardware e Software ?
  • 21. 1. Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico.
  • 22. 1. Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico. Hardware - manufaturado Projeto (modelo conceitual) Mundo Lógico Artefatos (esquemas, plantas, mapas ... ) Fabricação (manufaturado) Mundo físico
  • 23. 1. Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico. Software Modelos Alto nível Baixo nível Projeto (modelo conceitual) Artefatos (diagramas, documentos ..) Programa – modelo de implementação Mundo Lógico
  • 24. 1. Desenvolvido ou projetado por engenharia, Relaxem. Iremos entender melhor isso não manufaturado no sentido oclássico. durante curso, na Software Modelos Alto nível Baixo nível carreira, em algum momento … Projeto (modelo conceitual) Artefatos (diagramas, documentos ..) Programa – modelo de implementação Mundo Lógico
  • 25. 1. Desenvolvido ou projetado por engenharia, Relaxem. Iremos entender melhor isso A engenharia ainda não manufaturado no sentido oclássico. durante curso, na está entendendo Software Modelos Alto nível Baixo nível carreira, em algum melhor momento …estas diferenças. Projeto (modelo conceitual) Artefatos (diagramas, documentos ..) Programa – modelo de implementação Mundo Lógico
  • 26. No desenvolvimento de um software conceitualmente não existe um processo manual, todos os envolvidos exercem um trabalho intelectual.
  • 27. No desenvolvimento de um software conceitualmente não existe um processo manual, todos os envolvidos exercem um trabalho intelectual. Porém, onde e quem exerce o trabalho mais similar a um trabalho “manual” em um software ?
  • 28. 2. Software não se desgasta como nos hardware.
  • 29. Como é a manutenção em um hardware ? e em um software?
  • 30. Curva de falha do hardware Mortalidade infantil Desgaste Associada a falhas de fabricação e ou projeto. Desgaste Falha Mortalidade infantil Males ambientais, poeiras, vibrações. Todo hardware tem um tempo de vida. Temp o
  • 31. E no software, como vocês acham que é esta curva ? Lembrem-se de que no software não existe uma processo manufaturado, não existem peças que se desgastam.
  • 32. Falha Curva de falha do software Mudança Curva real Curva idealizada Temp o
  • 33. Falha Curva de falha do software Mudança Curva real Curva idealizada Temp o
  • 34. Contraditorio ? Curva de falha do software Consegueriam Falha explicar ? Mudança Curva real Curva idealizada Temp o
  • 35. Curva de falha do software Falha Incremento devido os efeitos colaterais Mudança Curva real Curva idealizada Temp o
  • 36. Efeitos colaterais, o pesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros.
  • 37. Efeitos colaterais, o pesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las.
  • 38. Efeitos colaterais, o pesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las. Porém, mudanças são inevitáveis e temos que lidar com isso.
  • 39. Efeitos colaterais, o pesadelo de todo Requisitos de softwares desenvolvedor de software. sempre mudam. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las. Porém, mudanças são inevitáveis e temos que lidar com isso.
  • 40. Efeitos colaterais, o pesadelo de todo Requisitos de softwares desenvolvedor de software. sempre mudam. Vamos ver durante o curso, mecanismo quetendem a gerar novos erros. Correção de erros, tentam tornar esse processo menos dolorosos. Desenvolvedores temem modificações, tentam a evitá-las. Porém, mudanças são inevitáveis e temos que lidar com isso.
  • 41. 3. A maioria é feita sob medida em vez de ser montada a partir de componentes existentes.
  • 42. 3. A maioria é feita sob medida em vez de ser montada a partir de componentes existentes. O reuso de “componentes de software” ainda não é equivalente a outras engenharias, como no hardware. Padrões ainda estão sendo desenvolvidos.
  • 43. 3. A maioria é feita sob medida em vez de ser montada a partir de componentes existentes. O reuso de “componentes de software” ainda não é equivalente a outras engenharias, como no hardware. Padrões ainda estão sendo desenvolvidos. Existem diversos componentes padronizado para a montagem de um hardware, parafusos, placas, transistores, diodos, etc.
  • 45. Evolução do Software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 1960 1970 1980 2000
  • 46. Evolução do Software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 1980 2000
  • 47. Evolução do Software Crise do software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 1980 2000
  • 48. Evolução do Software Crise do software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A terceira era A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 - SISTEMAS DISTRIBUÍDOS -INTELIGÊNCIA EMBUTIDA -HARDWARE DE BAIXO CUSTO - IMPACTO DE CONSUMO 1980 2000
  • 49. Evolução do Software A quarta era Crise do software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A terceira era A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 - SISTEMAS DISTRIBUÍDOS -INTELIGÊNCIA EMBUTIDA -HARDWARE DE BAIXO CUSTO - IMPACTO DE CONSUMO - SISTEMAS DE DESKTOP PODEROSOS - TECNOLOGIAS ORIENTADAS A OBJETOS - SISTEMAS ESPECIALISTAS - REDES NEURAIS ARTIFICIAIS - COMPUTAÇÃO PARALELA 1980 2000
  • 50. A crise do software + Complexidade - Confiabilidade Aumento crescente por sistemas de Informação Mais dependência do software nos procedimentos normais do cotidiano Sistemas mais e mais sofisticados exigem mais recursos (humanos e máquinas) Sistemas devem ser mais e mais seguros.
  • 51. A crise do software Manutenabilidade •Imprecisão nas especificações iniciais do projeto •Muitas modificações exigidas pelo cliente •Rotatividade acentuada da equipe de projeto •Informações não muito bem documentadas •Custo elevado nos estágios finais de projeto
  • 52. Temos muitos PROBLEMAS, a quem podemos recorrer ?
  • 53. Temos muitos PROBLEMAS, a quem podemos recorrer ? ENGENHARIA
  • 54. ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software.
  • 55. ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software. Sistemática por que parte do princípio de que existe um processo de desenvolvimento definindo as atividades que deverão ser executadas.
  • 56. ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software. Sistemática por que parte do princípio de que existe um processo de desenvolvimento definindo as atividades que deverão ser executadas. Disciplinada por que parte do princípio de que os processos definidos serão seguidos
  • 57. ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software. Sistemática por que parte do princípio de que existe um processo de desenvolvimento definindo as atividades que deverão ser executadas. Disciplinada por que parte do princípio de que os processos definidos serão seguidos Quantificável por que se deve definir um conjunto de medidas a serem extraídas do processo
  • 58. ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software. Sistemática por que parte do princípio de que existe um processo de desenvolvimento definindo as atividades que deverão ser executadas. Disciplinada por que parte do princípio de que os processos definidos serão seguidos Quantificável por que se deve definir um conjunto de medidas a serem extraídas do processo Desenvolvimento, operação e manutenção são fases do processo de software.
  • 59. ENGENHARIA DE SOFTWARE de acordo com IEEE é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software. Sistemática por que parte do princípio de que existe um processo de desenvolvimento definindo as atividades que deverão ser executadas. Disciplinada por que parte do princípio serão seguidos Mas o que é de que os processos um processo ? definidos Quantificável por que se deve definir um conjunto de medidas a serem extraídas do processo Desenvolvimento, operação e manutenção são fases do processo de software.
  • 60. ES – Uma tecnologia em camadas Ferramentas Métodos Processo Foco na qualidade Adaptado de Roger Pressman
  • 61. ES – Uma tecnologia em camadas Ferramentas Métodos Processo Foco na qualidade Adaptado de Roger Pressman
  • 62. Foco na qualidade • A busca pela qualidade é o objetivo de usar qualquer engenharia (não apenas da ES). • Ela deve ser buscada em cada fase do processo de desenvolvimento. • Permite ao – gerente um controle e ao – desenvolvedor uma referência.
  • 63. ES – Uma tecnologia em camadas Ferramentas Métodos Processo Foco na qualidade Adaptado de Roger Pressman
  • 64. Métodos Os detalhes de “como fazer” para construir o software, existem métodos para as diferentes tarefas. Planejamento e estimativa de projeto Análise de requisitos Projeto da estrutura de dados Codificação, teste, manutenção
  • 65. ES – Uma tecnologia em camadas Ferramentas Métodos Processo Foco na qualidade Adaptado de Roger Pressman
  • 66. Ferramentas As ferramentas de engenharia de software proporcionam apoio automatizado ou semi-automatizado aos métodos. Cada tarefa, pode ter uma ou mais ferramenta auxiliando. Se elas são integradas (troca de informação), chamamos de ferramentas • CASE (Computer-Aided Software Engineering), em português Engenharia de Software Auxiliada por Computador.
  • 67. ES – Uma tecnologia em camadas Ferramentas Métodos Processo Foco na qualidade Adaptado de Roger Pressman
  • 68. Processo O processo é a camada mais importante da ES, esta camada constitui o elo de ligação entre as ferramentas e os métodos. Um processo define :
  • 69. Processo O processo é a camada mais importante da ES, esta camada constitui o elo de ligação entre as ferramentas e os métodos. Um processo define : A seqüência em que os métodos serão aplicados. Quais os responsáveis por cada tarefa. Quando e como o software será entregue. Possibilitam aos gerentes de software avaliar o progresso do desenvolvimento.
  • 70. Processo O processo é a camada mais importante da ES, esta camada constitui o elo de ligação entre as ferramentas e os métodos. Um processo define : Uma empresa pode usar métodos e ferramentas e não seguir A seqüência em que osnenhum processo estabelecido. métodos serão aplicados. Existem até classificações para empresas quanto ao uso de Quais os responsáveis por cada tarefa. processos. Quando e como o software será entregue. Possibilitam aos gerentes de software avaliar o progresso do desenvolvimento.
  • 71. Modelos de processo Um processo é representado por um MODELO prescritivo. Um modelo prescritivo, nos dá uma referência, porem sempre existe a necessidade de adaptá-lo a cada projeto: – O pessoal que vai executar o trabalho e o ambiente no qual o trabalho vai ser conduzido.
  • 72. Modelos de processo Um processo é representado por um MODELO prescritivo. Modelos prescritivos são versões Um modelo prescritivo, nos dá apenas uma referência, simplificadas, não sao porem sempreprocessos.necessidade de adaptá-lo a existe a cada projeto: – O pessoal que vai executar o trabalho e o ambiente no qual o trabalho vai ser conduzido.
  • 73. Modelos de processos • Existem diversos modelos de processo como: – – – – – – – Cascata Incremental Protótipo Espiral Formal 4º geração ...
  • 74. Modelos de processo • Independente do modelo de processo, incluise as seguintes atividades: – – – – – Comunicação Planejamento Modelagem Construção Implantação
  • 75. “Existem muitos modos de ir para frente, mas apenas um modo de ficar parado.” Franklin D. Rosevelt
  • 76. Modelo em cascata Conhecido como “ciclo de vida clássico”. Sugere uma abordagem sistemática e seqüencial. Filosofia: O resultado de uma fase se constitui na entrada da outra e uma fase só começa, após o termino da anterior. O modelo mais antigo e ainda muito utilizado, porém existem diversas variações.
  • 77. Modelo em cascata Comunicação Iniciação do projeto, levantamento de requisitos
  • 78. Comunicação Os serviços, restrições e objetivos do sistema são definidos por meio de consulta aos usuários do sistema. A especificação do sistema: Quais informações os sistemas deverá prover Quais informações os sistemas não deverá prover
  • 79. Comunicação Isto é documentado e “assinado”. Faz Os serviços, restrições e objetivos do sistema são parte do contrato. definidos por meio de consulta aos usuários do sistema. A especificação do sistema: Quais informações os sistemas deverá prover Quais informações os sistemas não deverá prover
  • 80. Comunicação Exemplo de requisitos: Em pequenos sistemas, uma ferramenta de planilhas pode ser suficiente: Ref:
  • 81. Comunicação Exemplo de requisitos: Veremos sobre engenharia de requisitos, capitulo 7. Em pequenos sistemas, uma ferramenta que planilhas pode ser suficiente: Ref:
  • 82. Modelo em cascata Comunicação Iniciação do projeto, levantamento de requisitos Planejamento Estimativas, cronogramas, monitoração
  • 83. Planejamento O planejamento define o tempo estimado de entrega. Nele, deve ser definido o cronograma de execução de cada atividade. Além disso, deve se ter mecanismo que permita a monitoração do projeto. – Será que o projeto irá atender as estimativas, sobre custo e tempo.
  • 84. Planejamento Ferramentas que auxilia, MSProject e OpenProject.
  • 85. Modelo em cascata Comunicação Iniciação do projeto, levantamento de requisitos Planejamento Estimativas, cronogramas, monitoração Modelagem Análise e projeto
  • 86. Modelagem A análise e o projeto estabelecerá a arquitetura geral do sistema e envolve: Identificar e descrever as abstrações fundamentais do sistema de software e suas relações.
  • 87. Modelagem Nessa fase, se estivermos fazendo uso da UML, precisaremos de ferramentas que construam os seus diagramas. Gato Raça Tamanho Cor caçar brincar
  • 88. Modelagem Veremos estes diagramas em outra disciplina. Nessa fase, se estivermos fazendo uso da UML, precisaremos de ferramentas que construam os seus diagramas. Gato Raça Tamanho Cor caçar brincar
  • 89. Modelo em cascata Comunicação Iniciação do projeto, levantamento de requisitos Planejamento Estimativas, cronogramas, monitoração Modelagem Análise e projeto Construção Codificação, teste
  • 90. Codificação e teses O projeto de software é traduzido para um conjunto de programas ou unidades (funções, objetos, componentes, etc). Nesta fase, são feitos testes unitários, que envolve a verificação de que cada unidade atende sua especificação.
  • 91. Codificação e teses Nesta fase, é usual utilizar uma IDE (Integrated Development Environment), ou ambiente integrado de desenvolvimento, por exemplo o Eclipse. No Java existe a JUnit para testes de unidade
  • 92. Modelo em cascata Comunicação Iniciação do projeto, levantamento de requisitos Planejamento Estimativas, cronogramas, monitoração Modelagem Análise e projeto Construção Implantação Entrega, manutenção, feedback Codificação, teste
  • 93. Implantação As unidades individuais de programa e ou programas, são integrados e testados buscando garantir os requisitos de software foram atendidos. Após os testes o sistema é entregue e implantado para o cliente. Manutenção, envolve a correção de erros não detectados. Além da ampliação dos serviços do sistema á medida que novos requisitos são identificados
  • 94. Implantação Como é a implantação em sistemas desktop e As unidades individuais de programa e ou programas, são em sistemas Web? integrados e testados buscando garantir os requisitos de software foram atendidos. Após os testes o sistema é entregue e implantado para o cliente. Manutenção, envolve a correção de erros não detectados. Além da ampliação dos serviços do sistema á medida que novos requisitos são identificados
  • 95. Implantação Como é a implantação em sistemas desktop e As unidades individuais de programa e ou programas, são em sistemas Web? integrados e testados buscando garantir os requisitos de software foram atendidos. Após os testes o sistema é entregue e implantado para o cliente. Manutenção, envolve a correção de erros não detectados. Além da ampliação dos serviços do sistema á medida que novos requisitos são identificados Requisitos sempre mudam
  • 97. Modelo cascata • Pontos fortes – – – – Mais antigo e testado modelo de processo Enfoque sistemático e sequencial das tarefas Muitas melhorias e variações, É o arcabouço de referência a diversos outros modelos de processos.
  • 99. Modelo cascata • Pontos fracos – Projetos reais raramente seguem um fluxo seqüencial. – Os Clientes e Usuários não conseguem estabelecer de forma clara e completa os requisitos de sistema no início do desenvolvimento. – Grande demora até a entrega do produto ao cliente (primeira apreciação). – Alto custo da correção das especificações quando na fase da integração e teste.
  • 100. Modelo incremental Combina elementos do modelo em cascata, aplicado de maneira iterativa. Aplica seqüência lineares, de modo cada sequencia produz incrementos do software.
  • 101. Modelo incremental Combina elementos do modelo em cascata, aplicado de maneira iterativa. Aplica seqüência lineares, de modo cada sequencia produz incrementos do software. Um incremento, é um produto operacional.
  • 102. Modelo incremental Combina elementos do modelo em cascata, aplicado de maneira iterativa. Aplica seqüência lineares, de modo cada sequencia produz incrementos do software. Um incremento, é um produto operacional. Os primeiros incrementos são versões simplificadas.
  • 106. Modelo incremental • Enfoque para sistemas modulares ou baseado em subsistemas. • Utilizado como estratégia para projetos muito grandes. • Evita problemas de perda de controle: custo e prazos. • É um modelo evolucionário.
  • 107. Modelo incrementalexemplo, os modelos Por unificados que vocês verão em orientação objeto tem como referência o modelo incremental. • Enfoque para sistemas modulares ou baseado em subsistemas. • Utilizado como estratégia para projetos muito grandes. • Evita problemas de perda de controle: custo e prazos. • É um modelo evolucionário.
  • 108. Modelo incrementalexemplo, os modelos Por unificados que vocês verão em orientação Já objeto tem como em ouviram falar referência o modelo métodos ágeis ? incremental. • Enfoque para sistemas modulares ou baseado em subsistemas. Eles tambem são incrementais. • Utilizado como estratégia para projetos muito grandes. • Evita problemas de perda de controle: custo e prazos. • É um modelo evolucionário.
  • 109. Pontos chaves: Conceitos ES • Software, são os 1) programas, 2) estruturas de dados e 3) documentação. • A ES nasce pra resolver diversos problemas que foram agravados com o incremento na quantidade e complexidade dos softwares. • ES é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software. • Um processo define que métodos e quais ferramentas usar para atingir um nível de qualidade.
  • 110. Pontos chaves: Modelos • Um modelo descreve uma visão simplificada do processo. • Um modelo deve ser ajustado as necessidades do projeto específico. • Um modelo de processo genérico inclui: comunicação, planejamento, modelagem, construção e implantação. • Existem diversos modelos, vimos hoje o modelo em cascata, conhecido como ciclo de vida clássico. • E o modelo incremental, que é baseado no modelo em cascata, porém divide o sistemas em incrementos, que possui uma funcionalidade e seu próprio cronograma
  • 111. Como o projeto foi documentado. Como o lider do projeto entendeu. Como o projeto foi instalado. Como o analista projetou. Como o cliente pagou Como o programador escreveu. O que o cliente realmente precisava. http://www.projectcartoon.com/cartoon/58 Como o cliente definiu.
  • 112. Exercitando o cérebro.... • As atividades deverão ser enviadas por email antes do início da próxima aula.