Engenharia de Software
Unidade VI
1
VS1-Mar/2005
Engenharia de Software
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
HISTÓRICO
 Os fundamentos científicos para a engenharia de software envolvem
o uso de modelos abstratos e precisos que permitem ao engenheiro
especificar, projetar, implementar e manter sistemas de software,
avaliando e garantido suas qualidades. Além disto, a engenharia de
software deve oferecer mecanismos para se planejar e gerenciar o
processo de desenvolvimento.
2
VS1-Mar/2005
 A Engenharia de Software (ES) surgiu em meados dos anos 70
numa tentativa de contornar a crise do software e dar um tratamento
de engenharia (mais sistemático e controlado) ao desenvolvimento de
sistemas de software complexos. Um sistema de software complexo se
caracteriza por um conjunto de componentes abstratos de software
(estruturas de dados e algoritmos) encapsulados na forma de
procedimentos,
funções,
módulos,
objetos
ou
agentes
e
interconectados entre si, compondo a arquitetura do software, que
deverão ser executados em sistemas computacionais.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
MITOS E REALIDADES
3
VS1-Mar/2005

MITOS ADMINISTRATIVOS

Mito: Já temos um manual repleto de padrões e
procedimentos para a construção de software. Isso não
oferecerá ao meu pessoal tudo o que eles precisam saber?

Realidade: O manual de padrões pode muito bem existir,
mas será que é usado? Os profissionais de software têm
conhecimento de sua existência? Ele reflete a moderna
prática de desenvolvimento de software? É completo? Em
muitos casos a respostas a todas estas perguntas é não.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
MITOS E REALIDADES . . .
4
VS1-Mar/2005

MITOS DO CLIENTE

Mito: Uma declaração geral dos objetivos é suficiente para
se começar a escrever programas – podemos preencher os
detalhes mais tarde.

Realidade: Uma definição inicial ruim é a principal causa
dos fracassos dos esforços de desenvolvimento de
software. Uma descrição formal e detalhada do domínio da
informação, função, desempenho, interfaces, restrições de
projeto e critérios de validação é fundamental.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
MITOS E REALIDADES . . .
5
VS1-Mar/2005

MITOS DO CLIENTE . . .

Mito:
Os
requisitos
de
projeto
modificam-se
continuamente, mas as mudanças podem ser facilmente
acomodadas, porque o software é flexível.

Realidade: É verdade que os requisitos de software se
modificam, mas o impacto da mudança varia de acordo
com o tempo em que ela é introduzida.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
MITOS E REALIDADES . . .
6
VS1-Mar/2005

MITOS DO PROFISSIONAL

Mito: Enquanto o programa não estiver funcionando não
existirá maneira de avaliar sua qualidade.

Realidade: A revisão técnica formal pode ser aplicada
desde o começo de um projeto.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
MITOS E REALIDADES . . .
7
VS1-Mar/2005

MITOS DO PROFISSIONAL . . .

Mito: A única coisa a ser entregue em um projeto bem
sucedido é o programa funcionando.

Realidade: O programa funcionando é apenas uma parte
de uma configuração de software. A documentação (plano,
especificação
de
requisitos,
estrutura
de
dados,
especificação de teste, etc.) fornece um guia para facilitar
a manutenção de software.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DA ENGENHARIA DE SOFTWARE

Não existe uma abordagem em particular que seja a melhor
solução para o desenvolvimento de software, no entanto:
 a combinação de métodos abrangentes para todas as fases
de desenvolvimento;
 a utilização de ferramentas para automatizar esses métodos;
 a criação de blocos de construção mais consistentes;
 a aplicação das melhores técnicas de qualidade; e,
 a filosofia de coordenação, controle e administração;
8
VS1-Mar/2005
darão o encaminhamento
software.
das
bases
da
engenharia
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
de
Engenharia de Software
EVOLUÇÃO DO SOFTWARE
Os primeiros anos:
A segunda era:
• orientação
batch
• distribuição
limitada
• software
customizado
9
VS1-Mar/2005
1960
A quarta era:
• multiusuário
• sistemas distribuídos
• tempo real
• “inteligência” embutida
• bancos de
dados
• hardware de baixo
custo
• produto de
software
• impacto de consumo
• software house
1950
A terceira era:
1970
• microprocessadores e
computadores pessoais
1980
• sistemas de desk-top
poderosos
• tecnologias orientadas
a objeto
• sistemas especialistas
• computação paralela
1990
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
2000
Engenharia de Software
EVOLUÇÃO DO SOFTWARE . . .

OS PRIMEIROS ANOS:
 software projetado sob medida para cada aplicação;
 software com distribuição relativamente limitada;
 o produto software estava em sua infância;
 a maior parte dos softwares era desenvolvida e usada pela
própria empresa;
 quem escrevia e colocava em funcionamento, também
tratava dos defeitos; e,
10
VS1-Mar/2005
 por causa do ambiente de software personalizado, o projeto
era um processo implícito, realizado no cérebro de alguém, e
a documentação muitas vezes não existia.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
EVOLUÇÃO DO SOFTWARE . . .

A SEGUNDA ERA:
 multiprogramação e sistemas multiusuários introduziram
novos conceitos na interação homem-máquina;
 as técnicas interativas abriram um novo mundo de aplicações
e novos níveis de sofisticação de software e hardware;
 sistemas de tempo real podiam coletar,
transformar dados de múltiplas fontes;
analisar
e
 os avanços da armazenagem online levaram à primeira
geração de sistemas de gerenciamento de banco de dados; e,
11
VS1-Mar/2005
 surgimento das “software houses”.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
EVOLUÇÃO DO SOFTWARE . . .

A TERCEIRA ERA:
 os sistemas distribuídos - múltiplos computadores, cada um
executando funções concorrentemente e comunicando-se um
com o outro – aumentaram a complexidade dos sistemas
baseados em computador;
 as redes globais e locais, as comunicações digitais e a
crescente demanda de acesso “instantâneo” a dados exigem
muito dos desenvolvedores de software;
 uso generalizado de microprocessadores e computadores
pessoais; e,
12
VS1-Mar/2005
 produtos inteligentes: de automóveis a forno de microondas,
de robôs industriais a diagnóstico de soro sangüíneo.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
EVOLUÇÃO DO SOFTWARE . . .

A QUARTA ERA:
 tecnologias orientadas a objetos;
 técnicas de quarta geração;
 sistemas especialistas;
 inteligência artificial; e,
13
VS1-Mar/2005
 software de rede neural artificial abrindo possibilidades para
o reconhecimento de padrões e para capacidades de
processamento de informações semelhantes às humanas.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
EVOLUÇÃO DO SOFTWARE . . .

A QUINTA ERA (?):
 a sofisticação do software ultrapassou nossa capacidade de
construir um software que extraia o potencial do hardware;
 a capacidade de construir programas não acompanha o ritmo
da demanda de novos programas;
 a capacidade de manter os programas existentes é ameaçada
por projetos ruins e recursos inadequados; e,
14
VS1-Mar/2005
 as práticas de engenharia de software se fortalecem.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software

Por que demora tanto tempo para que os programas sejam
concluídos?

Por que os custos são tão elevados?

Por que não descobrimos todos os erros antes de entregarmos
o software aos nossos clientes?

Por que temos dificuldade em medir o progresso enquanto o
software está sendo desenvolvido?
 Essas e muitas outras perguntas são uma manifestação da
preocupação relativa ao software e à maneira pela qual ele é
desenvolvido, fortalecendo as práticas de engenharia de
software.
15
VS1-Mar/2005
PERSPECTIVA INDUSTRIAL
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE

O processo de desenvolvimento de software contém três fases
genéricas independente do paradigma de software escolhido.
São elas:
 definição;

o quê?
 desenvolvimento; e,

como?
 manutenção.
16
VS1-Mar/2005

mudanças (o quê? e como?)
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

DEFINIÇÃO
17
VS1-Mar/2005
 A fase de definição focaliza o quê. Ou seja, durante a fase de
definição, o desenvolvedor de software tenta identificar quais
informações têm de ser processadas, qual função e
desempenho são desejados, quais interfaces devem ser
estabelecidas, quais restrições de projeto existem e quais
critérios de validação são exigidos para se definir um sistema
bem-sucedido. Esta fase apresenta as seguintes etapas:

análise de sistema;

planejamento do projeto de software; e,

análise de requisitos.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

DEFINIÇÃO . . .
 Análise de sistema
 define o papel de cada elemento num sistema baseado
em computador, atribuindo o papel que o software
desempenhará.
 Planejamento do projeto de software
18
VS1-Mar/2005
 uma vez definido o escopo do software, os riscos são
analisados, as atividades e os recursos são definidos,
os prazos são estabelecidos e os custos são estimados.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

DEFINIÇÃO . . .
 Análise de requisitos
19
VS1-Mar/2005
 definição detalhada do domínio da informação e da
função do software.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

DESENVOLVIMENTO
20
VS1-Mar/2005
 A fase de desenvolvimento focaliza o como. Ou seja, o
desenvolvedor de software tenta definir como a estrutura de
dados e a arquitetura de software têm de ser projetadas,
como os detalhes procedimentais têm de ser implementados,
como projeto será traduzido numa linguagem de
programação e como os testes têm de ser realizados. Esta
fase apresenta as seguintes etapas:

projeto de software;

codificação; e,

realização de testes de software.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

DESENVOLVIMENTO . . .
 Projeto de software
 traduz os requisitos do software num conjunto de
representações que descrevem a estrutura de dados, a
arquitetura,
o
procedimento
algorítmico
e
as
características de interface.
 as representações do projeto devem ser convertidas
numa linguagem de programação convencional ou numa
linguagem não-procedimental usada no contexto do
paradigma 4GT (técnicas de quarta geração).
21
VS1-Mar/2005
 Codificação
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

DESENVOLVIMENTO . . .
 Realização de testes do software
22
VS1-Mar/2005
 O software deve ser testado para que se possa descobrir
defeitos de função, de lógica e de implementação.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

MANUTENÇÃO
23
VS1-Mar/2005
 A fase de manutenção concentra-se nas mudanças que estão
associadas à correção de erros, adaptações exigidas à
medida que o ambiente do software evolui e ampliações
produzidas por exigências variáveis do cliente. Esta fase
apresenta as seguintes etapas:

correção;

adaptação; e,

melhoramento funcional.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

MANUTENÇÃO
 Correção
 A manutenção corretiva muda o software para corrigir
defeitos.
 Adaptação
24
VS1-Mar/2005
 A manutenção adaptativa resulta em modificações no
software a fim de acomodar mudanças em seu
ambiente.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

MANUTENÇÃO
 Melhoramento funcional
25
VS1-Mar/2005
 O melhoramento funcional estende o software para
além de suas exigências funcionais originais.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . .

As fases apresentadas são completadas por uma série de
atividades de proteção, conforme a seguir:
 revisões (qualidade);
 documentação; e,
26
VS1-Mar/2005
 controle de mudanças.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE
 CICLO DE VIDA CLÁSSICO (modelo cascata)
27
VS1-Mar/2005
 Também conhecido como modelo cascata, o paradigma do
ciclo de vida clássico requer uma abordagem sistemática,
seqüencial ao desenvolvimento de software, conforme figura
a seguir:
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
Engenharia
de Sistemas
Ciclo de vida clássico –
Análise
modelo cascata
Projeto
Codificação
Teste
28
VS1-Mar/2005
Manutenção
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 CICLO DE VIDA CLÁSSICO (modelo cascata) . . .
 engenharia de sistemas;
 análise de requisitos de software;
 projeto;
 codificação;
 teste; e,
29
VS1-Mar/2005
 manutenção.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 CICLO DE VIDA CLÁSSICO (modelo cascata) . . .
 Engenharia de sistemas
 Coletar os requisitos em nível de sistema, com uma
pequena quantidade de projeto e análise de alto nível.
 Análise de requisitos de software
30
VS1-Mar/2005
 Compreender o domínio da informação para o software,
bem como a função, desempenho e interface exigidos.
Os requisitos, tanto para o sistema como para o
software, são documentados e revistos com o cliente.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 CICLO DE VIDA CLÁSSICO (modelo cascata) . . .
 Projeto
 Gerar os quatro atributos distintos do programa:
estrutura de dados, arquitetura de software, detalhes
procedimentais e caracterização de interface.
 O projeto é documentado e torna-se parte da
configuração do software.
 Codificação
31
VS1-Mar/2005
 Traduzir o projeto numa forma legível por máquina.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 CICLO DE VIDA CLÁSSICO (modelo cascata) . . .
 Testes
 Realizar testes para descobrir erros técnicos e
funcionais, buscando fazer com que a entrada definida
produza resultados reais compatíveis com os resultados
exigidos.
 Manutenção
32
VS1-Mar/2005
 Reaplicar cada uma das etapas precedentes do ciclo de
vida a um programa existente, sempre que ocorrerem
mudanças (correções, adaptações ou melhoramentos).
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 CICLO DE VIDA CLÁSSICO (modelo cascata) . . .
 O modelo cascata é o paradigma mais antigo e o mais
amplamente usado na engenharia de software. No entanto,
os seguintes aspectos devem ser considerados:
 raramente seguem o fluxo seqüencial que o modelo
propõe;
 necessidade de iterações
aplicação do paradigma;
trazem
problemas
para
 erros descobertos tardiamente, podem ser desastrosos
ao projeto.
33
VS1-Mar/2005
 dificuldade de acomodar a incerteza natural que existe
no começo de muitos projetos;
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 PROTOTIPAÇÃO
 Processo que capacita o desenvolvedor a criar um modelo
do software que será implementado.
 Pode assumir uma das três formas:
 protótipo em papel ou modelo baseado em PC;
 protótipo de trabalho; e,
34
VS1-Mar/2005
 programa existente.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 PROTOTIPAÇÃO . . .
 Protótipo em papel ou modelo baseado em PC

Retrata a interação homem-máquina de uma forma que
capacita o usuário a entender quanta interação
ocorrerá.
 Protótipo de trabalho

Implementa algum subconjunto da função exigida do
software desejado.
 Programa existente
35
VS1-Mar/2005

Executa parte ou toda a função desejada, mas tem
outras características que serão melhoradas em um
novo esforço de desenvolvimento.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 PROTOTIPAÇÃO . . .
Início
Fim
Seqüência de
eventos do
paradigma de
prototipação
Avaliação do
protótipo pelo
cliente
36
VS1-Mar/2005
Coleta e
refinamento dos
requisitos
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 PROTOTIPAÇÃO . . .
37
VS1-Mar/2005
 Ainda que possam ocorrer problemas, a prototipação é um
paradigma eficiente da engenharia de software. A chave é
definir-se as regras do jogo logo no começo; ou seja, o
cliente e o desenvolvedor devem concordar que o protótipo
seja construído para servir como um mecanismo de
definição dos requisitos. Ele depois será descartado (pelo
menos em parte) e o software real será projetado, levandose em conta a qualidade e a manutenção.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 MODELO ESPIRAL
 Desenvolvido para abranger as melhores características
tanto do ciclo clássico como da prototipação,
acrescentando, ao mesmo tempo, um novo elemento – a
análise de riscos – que falta a esses paradigmas.
Coleta inicial
dos requisitos e
planejamento do
projeto
Análise dos riscos baseada
nos requisitos iniciais
Análise dos riscos
Planejamento
Análise dos riscos baseada na
reação do cliente
Planejamento
baseado nos
comentários
do cliente
Decisão de prosseguir /
não prosseguir
Na direção de um sistema concluído
Avaliação
do cliente
Protótipo do software inicial
Protótipo no nível seguinte
38
VS1-Mar/2005
Avaliação do cliente
Engenharia
Sistema construído
pela engenharia
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 MODELO ESPIRAL . . .
 O modelo representado pela espiral
importantes
atividades
representadas
quadrantes da figura:
define
pelos
 planejamento;
 análise dos riscos;
 engenharia; e,
39
VS1-Mar/2005
 avaliação do cliente.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
quatro
quatro
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 MODELO ESPIRAL . . .
 Planejamento
 Mistura análise com projeto. Nesta fase determina-se os
objetivos, restrições e verifica-se alternativas de projeto.
 Análise de risco
 Nesta fase analisa-se as alternativas e verifica-se os riscos.
Decide-se seguir o projeto na mesma linha ou começar de
novo.
 Engenharia
 Nesta fase desenvolve-se o protótipo. A cada nova fase de
engenharia o produto aproxima-se mais do produto final.
Esta fase pode incluir todo o ciclo de vida clássico.
 O cliente avalia o produto. Os desenvolvedores verificam a
necessidade de novas fases.
40
VS1-Mar/2005
 Avaliação do cliente
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 MODELO ESPIRAL . . .
 O cliente avalia o trabalho de engenharia (o quadrante de
avaliação do cliente) e apresenta sugestões para
modificações.
 Na maioria dos casos, o fluxo ocorre ao redor de uma
trajetória
espiral
contínua,
com
cada
trajetória
movimentando os desenvolvedores para fora na direção de
um modelo mais completo do sistema.
41
VS1-Mar/2005
 O paradigma de modelo espiral para a engenharia de
software é atualmente a abordagem mais apropriada para o
desenvolvimento de sistemas e de software em grande
escala.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO
42
VS1-Mar/2005
 O termo Técnicas de Quarta Geração abrange um amplo
conjunto de ferramentas de software que têm uma coisa em
comum: cada uma delas possibilita que o desenvolvedor
especifique alguma característica do software em alto nível.
A ferramenta gera então, automaticamente, o código-fonte,
tendo como base a especificação do desenvolvedor. O
paradigma da técnica de quarta geração concentra-se na
capacidade de se especificar software a uma máquina em
um nível que esteja próximo à linguagem natural ou de se
usar uma notação que comunique uma função significativa.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO
 O usuário realiza a especificação em uma linguagem de
4G, em alto nível.
 A codificação propriamente dita é realizada por uma
linguagem de 4G.
 Uma ferramenta de 4G é responsável por transformar
automaticamente a especificação em código executável.
43
VS1-Mar/2005
 Quanto mais alto o nível da especificação (ou seja, mais
próxima da linguagem natural), mais rapidamente é
gerado o produto final.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO . . .
O ambiente de desenvolvimento de software que
sustenta o ciclo de vida de quarta geração inclui:
 linguagens não procedimentais para consulta
de banco de dados;
 ferramentas para geração de relatórios;
 ferramentas para manipulação de dados;
 ferramentas para definir interação e telas;
 ferramentas para geração de códigos;
 capacidade de planilhas eletrônicas.
44
VS1-Mar/2005
 capacidade gráfica de alto nível; e,
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
Ciclo de vida a partir das
Técnicas de Quarta Geração
Coleta de
Requisitos
Estratégia de
“Projeto”
Implementação
Usando 4G
45
VS1-Mar/2005
Teste
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO . . .
 Coleta de requisitos
 O cliente descreve os requisitos os quais são traduzidos
para um protótipo operacional.
46
VS1-Mar/2005
 Problemas:

o cliente pode estar inseguro quanto aos requisitos;

o cliente pode ser incapaz de especificar as informações
de modo que uma ferramenta de 4G possa entender; e,

as linguagens de 4G atuais não são sofisticadas
suficientemente para acomodar a verdadeira linguagem
natural.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO . . .
 Estratégia de projeto
 Nesta fase normalmente é projetado como o software
será feito, organizado, estruturado, etc.;
 No entanto, para pequenas aplicações é possível
mover-se da fase um direto para a fase três, pulando a
fase de projeto. Utilizando linguagens de quarta
geração, às vezes esta fase não é necessária; e,
47
VS1-Mar/2005
 Já para grandes projetos é sempre necessário
desenvolver uma estratégia de projeto. Caso contrário
ocorrerão os mesmos problemas encontrados quando
se usa abordagem convencional (baixa qualidade,
manutenção ruim, má aceitação do cliente, etc).
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO . . .
 Implementação usando linguagem de 4G
 Os resultados desejados são representados de modo
que haja geração automática de código. Deve existir
uma estrutura de dados com informações relevantes
e que seja acessível pela 4G.
 Teste
48
VS1-Mar/2005
 O desenvolvedor deve efetuar testes e desenvolver
uma
documentação
significativa.
O
software
desenvolvido deve ser construído de maneira que a
manutenção possa ser efetuada prontamente.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . .
 TÉCNICAS DE QUARTA GERAÇÃO . . .
 Considerações
 Favoráveis
 Os defensores das linguagens de 4G argumentam que
por meio delas se obtém uma redução dramática no
tempo de desenvolvimento do software (aumento de
produtividade).
 Desfavoráveis
 As linguagens de 4G atuais não são mais fáceis de usar
do que as linguagens de programação.
 A manutenção de sistemas usando técnicas de 4G ainda
é questionável.
49
VS1-Mar/2005
 O código fonte produzido é ineficiente.
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Engenharia de Software
Unidade VI
Engenharia de Software
50
VS1-Mar/2005
#FIM#
INF0198 (ICO) – Introdução à Computação
Professor(a): Xxxxxxxxxx Xxxxxxxx
Download

Transparência Unidade6