Sie sind auf Seite 1von 97

Unidade 2: O Processo

Prof. Jder da Silva Neto


UNIVERSO - Niteri
professorjaderneto@gmail.com

Parte I:
O Produto e o Processo
Fritz Bauer - 1969

O estabelecimento e uso de slidos
princpios de engenharia para que se
possa obter economicamente um software
que seja confivel e que funcione
eficientemente em mquinas reais
Engenharia de Software:
Definio
IEEE, 1993

A aplicao de uma abordagem sistemtica,
disciplinada e quantificvel para o
desenvolvimento, operao e manuteno do
software. O estudo de abordagens e
princpios a fim de obter economicamente
softwares confiveis e que executem de forma
eficiente nas mquinas reais
Engenharia de Software:
Definio
Engenharia de Software:
Definio
Arndt Von Staa, 1987

O desenvolvimento e a aplicao de
cincia, matemtica, tcnicas, mtodos e
ferramentas para o desenvolvimento e a
manuteno econmica de sotfware de
qualidade preditvel e controlvel,
operando de modo econmico em
mquinas e ambientes reais
Engenharia de Software
ENGENHARIA DE SOFTWARE
Uma disciplina da Cincia da Computao
que oferece Mtodos, Tcnicas e
Ferramentas para desenvolver e manter
softwares com alta qualidade para a
resoluo de problemas
(Anneliese Mayrhauser 1990)
Engenharia de Software
Abrange um conjunto de trs elementos fundamentais:
Mtodos, Ferramentas e Processos
(Procedimentos)

Possibilitar ao gerente o controle do processo de
desenvolvimento
Oferecer ao profissional uma base para a construo de
software de alta qualidade

D
Engenharia de Software:
Tecnologia em Camadas
FOCO NA QUALIDADE (g.q.t)
PROCEDIMENTOS/PROCESSOS (KPA)
MTODOS
FERRAMENTAS
Engenharia de Software
MTODOS: proporcionam os detalhes de como
fazer para construir o software

Envolvem um amplo conjunto de tarefas ...



Engenharia de Software
Planejamento e estimativa de projeto
Anlise de requisitos de software
Projeto da estrutura de dados
Algoritmo de processamento
Codificao
Teste
Manuteno
Engenharia de Software
FERRAMENTAS: fornecem suporte automatizado
ou semi aos mtodos.
= Existem atualmente ferramentas para sustentar
cada um dos mtodos
= Quando as ferramentas so integradas
estabelecido um sistema de suporte ao
desenvolvimento de software chamado CASE -
Computer Aided Software Engineering
PROCEDIMENTOS: constituem o elo de ligao
entre os mtodos e ferramentas
C Seqncia em que os mtodos sero aplicados
C Produtos (deliverables) que se exige que sejam
entregues
C Controles que ajudam assegurar a qualidade e
coordenar as alteraes
C Marcos de referncia que possibilitam administrar
o progresso do software
Engenharia de Software
ENGENHARIA DE SOFTWARE: compreende um
conjunto de etapas que envolve MTODOS,
FERRAMENTAS e PROCEDIMENTOS.
Essas etapas so citadas como CICLOS DE
VIDA ou MODELOS DE PROCESSO DE
SOFTWARE
Uma estratgia de desenvolvimento que
englobe processos, mtodos e ferramentas,
e as fases de desenvolvimento
Engenharia de Software
Desenvolvimento de software um processo de
aprendizagem social e iterativo
processo - dilogo em que o conhecimento embutido
no software, interao entre usurios-projetistas,
iterativo
Quando se constri um produto importante seguir
um conjunto de etapas (road map - processo de
software)
Uma estrutura para realizar as tarefas
Engenharia de Software
Engloba um PROCESSO, GERENCIAMENTO E
MTODOS TCNICOS, FERRAMENTAS
Engenharia Anlise, Projeto (design),
Implementao, Verificao e Gerenciamento de
entidades tcnicas
Definio - O QU (What)
Desenvolvimento - COMO (How)
Suporte - MANUTENO (Change) - Segurana
corretiva, adaptativa, melhoramento funcional, preventiva
(Reengenharia)
Engenharia de Software
Viso Profissional de Qualidade
requisitos
PROCESSO DE
CONSTRUO
PRODUTO
usurio
requisitos
atendidos
PRODUTO COM QUALIDADE
Qualidade de Software
desenvolvedor
usurio
organizao
Processo
de
Desenvolvimento
SOFTWARE
PRODUTO
SOFTWARE COM QUALIDADE
PROCESSO DE SOFTWARE
requisitos
requisitos
atendidos
Por que Modelar?????
Uma empresa de software bem sucedida?
Fornece software de qualidade e capaz de
atender s necessidades dos usurios
Desenvolver software de maneira previsvel e em
determinado perodo, com utilizao eficiente e
eficaz de recursos


Empresa com um NEGCIO vivel
Por que Modelar?????
Produto Principal: software capaz de
satisfazer s necessidades de seus
usurios e respectivos negcios
O resto SECUNDRIO, mas no
IRRELEVANTE (documentos bonitos,
reunies sofisticadas, timos slogans, linhas
de cdigo maravilhosas, interfaces ricas, ...)
MODELAGEM a parte central de todas
as atividades que levam implantao
de um bom software

Por que Modelar?????
Modelos so construdos para comunicar a
estrutura e o comportamento desejado do
sistema. Visualizar e controlar a arquitetura.
Compreender melhor o sistema. Gerenciar
os riscos...
Exemplos:
Construir uma casa para seu cachorro
Construir uma casa para sua famlia (Qualidade)
Construir um prdio comercial
Por que Modelar?????
Muitas empresas de desenvolvimento de
software comeam querendo construir
prdios altos, como se estivessem fazendo
uma casinha de cachorro.
Sorte ajuda
Pessoas certas no momento adequado e com
todas as tecnologias em alinhamento favorvel....
Desenvolvimento de software de qualidade
uma questo de Arquitetura, Processo e
Ferramentas
Por que Modelar?????
Modelagem uma tcnica de engenharia
aprovada e bem aceita
modelos de arquitetura de casas e de grandes
prdios
modelos matemticos a fim de analisar os efeitos
de ventos e tremores de terra --> causas

O que um MODELO?
Definio: Modelo
Um modelo uma simplificao da realidade.
Planos de detalhes, podem ser estruturais (organizao
do sistema) ou comportamentais (dinmica do sistema)
Construmos modelos para compreender melhor o
sistema que estamos desenvolvendo.
ajudam a visualizar o sistema como desejamos que seja
especificar a estrutura e comportamento
guia para construo do sistema
documentam as decises tomadas

Definio: Modelo
Construmos modelos de sistemas complexos porque
no possvel compreend-los em sua totalidade.
ajudam a visualizar o sistema como desejamos que seja
especificar a estrutura e comportamento
guia para construo do sistema
documentam as decises tomadas
Os melhores modelos esto relacionados realidade
(modelos simplificam a realidade)
Nenhum modelo nico suficiente. Conjunto de modelos
independentes

Processo de Software
Estrutura comum de processo
Atividades guarda-chuva
Atividades da estrutura
Conjunto de tarefas
Tarefas
Marcos de controle
Controle de qualidade (pontos SQA)
Processo de Software
Estrutura Comum de Processo
definio das atividades de estrutura aplicveis a
todos os projetos de software
Conjuntos de Tarefa
adaptao das atividades da estrutura s
caractersticas do projeto e aos requisitos da
equipe
Atividades guarda-chuva
apiam o modelo de processo (garantia de
qualidade, gerenciamento de configurao,
produo de documentos, etc...)
Processo de Software
Atualmente: maturidade de processo
O SEI desenvolveu um modelo de maturidade da
competncia (CMM), que define as atividades
chave requeridas nos diferentes nveis de
processo
Os 5 nveis de maturidade de processo do
modelo CMM (KPA - key process areas ~18)
Inicial, Repetitivo, Definido, Gerenciado,
Otimizado
O que o CMM?
Uma estrutura que descreve os elementos
chaves de um processo de software eficaz.
Um caminho de melhoramento evolucionrio (5
nveis de maturidade) para organizaes de
software mudarem de um processo de
software imaturo, ad hoc, para um processo
maduro, disciplinado.
CMM - Capability Maturity Model
Capability Maturity Model
(Modelo de Maturidade da Competncia)
Maturidade da Competncia : competncia em
controlar o Processo de Software
(desenvolvimento, gerenciamento e
manuteno)
Maturidade da Competncia Maturidade
do Processo de Software
Maturidade de Processo de
Software
A maturidade dos processos de software
de uma organizao influencia na sua
capacidade de atingir metas de custo,
qualidade e cronograma
A qualidade do processo de software
pode ser analisada atravs do nvel de
maturidade do processo.
Premissa Bsica
Premissa bsica que est por baixo
do trabalho da SEI sobre maturidade
de processo:
A qualidade de um produto profundamente
determinada pela qualidade do processo de
desenvolvimento e de manuteno usado para
constru-lo.
INICIAL
Organizaes
Caticas
REPETITIVO
Organizaes
Disciplinadas
DEFINIDO
Organizaes
Padronizadas
GERENCIADO
Organizaes
Previsveis
OTIMIZADO
Organizaes
com Melhoria
Contnua
Os 5 Nveis de
Maturidade do CMM
INICIAL
Organizaes
Caticas
CMM:
Nvel 1 de Maturidade
O processo de software
caracterizado como
ad hoc, e ocasionalmente
at mesmo catico.
Poucos processos so
definidos e o sucesso
depende de esforos
individuais e hericos.
REPETVEL
Organizaes
Disciplinadas
CMM:
Nvel 2 de Maturidade
Sabe-se o que se faz
Intuio dos gerentes
Processos administrativos
bsicos so estabelecidos para
acompanhar custo,
cronograma e funcionalidade.
A disciplina de processo est
em repetir sucessos anteriores
em projetos com aplicaes
similares.
DEFINIDO
Organizaes
Padronizadas
Os processos de software, tanto
para atividades administrativas
quanto para de engenharia
esto documentados,
padronizados e integrados em
um processo de software padro
para a organizao.
Todos os projetos usam uma
verso aprovada do processo de
software padro da organizao
para desenvolvimento e
manuteno de software.
CMM:
Nvel 3 de Maturidade
GERENCIADO
Organizaes
Previsveis
So coletadas medidas
detalhadas da qualidade do
processo e do produto
(mtricas)
Tanto o processo de software
quanto os produtos so
quantitativamente
compreendidos e controlados.
CMM:
Nvel 4 de Maturidade
OTIMIZADO
Organizaes
com Melhoria
Contnua
CMM:
Nvel 5 de Maturidade
Contnua melhoria de
processo possvel por
retornos quantitativos dos
processos e das idias e
tecnologias inovadoras
Viso Profissional de Qualidade
requisitos
PROCESSO DE
CONSTRUO
PRODUTO
usurio
requisitos
atendidos
PRODUTO COM QUALIDADE
Modelos de Processo ou
Paradigmas de Engenharia de
Software
Uma estratgia de desenvolvimento
que englobe processos, mtodos e
ferramentas, e as fases de
desenvolvimento...
1. Modelo Seqencial (ciclo de vida clssico)
2. Modelo de Prototipao
3. Modelo RAD (Rapid Application Development)
4. Modelos Evolutivos
1. Modelo Incremental e Espiral
5. Modelo de Espiral WinWin
6. Modelo de desenvolvimento Concorrente
7. Modelo de Montagem de Componentes
8. Modelo de Mtodos Formais
9. Tcnicas de 4a gerao
10. Modelo do RUP
State of the Art: Modelos de
Processo
Escolha de um Modelo de Processo:
C Qual o processo de desenvolvimento ser
adotado?
C Adequao do modelo de processo aplicao
C Mtodos e ferramentas a serem utilizados
C Controles e produtos que precisam ser entregues
C Caractersticas dos processos: Visibilidade,
Clareza, Apoio de Ferramentas, Produtividade,
Qualidade, etc.
Modelo de Ciclo de Vida
Clssico (Cascata)
modelo mais antigo e o mais amplamente usado
da engenharia de software
modelado em funo do ciclo da engenharia
convencional
requer uma abordagem sistemtica e seqencial
para o desenvolvimento de software
cada atividade uma fase em separado. A
passagem entre fases formal.
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Teste
Manuteno
Ciclo de Vida Clssico
Atividades do Ciclo de Vida
Clssico
1- ENGENHARIA DE SISTEMAS
software faz parte de um sistema amplo
envolve a coleta de requisitos em nvel do
sistema, com uma pequena quantidade de
projeto e anlise de alto nvel
esta viso essencial quando o software
deve fazer interface com outros elementos
(hardware, pessoas e banco de dados)
Engenharia de Sistemas
Anlise de Sistemas engloba as tarefas da
engenharia de sistemas:
Identificar as necessidades dos usurios
executar a anlise econmica e tcnica
estabelecer as restries de prazo e custo
um modelo arquitetnico do sistema produzido e
representaes de cada subsistema importante so
desenvolvidas
PRODUTO: Especificao do Sistema -
documento que forma as bases e definio do
sistema para todo o trabalho de engenharia
subseqente
Engenharia de Sistemas
Exige uma intensa comunicao entre o
cliente e o analista

O cliente deve ser capaz de entender as metas
do sistema e ser capaz de especificar para o
analista

O analista deve saber quais perguntas fazer,
quais conselhos dar
2- ANLISE DE REQUISITOS DE SOFTWARE
o primeiro passo tcnico do processo de
engenharia de software
o processo de coleta dos requisitos
intensificado e concentrado
especificamente no software
tarefa de descoberta, refinamento,
modelagem e especificao
escopo definido inicialmente refinado e
aperfeioado em detalhes
Atividades do Ciclo de Vida
Clssico
O analista deve compreender o domnio da
informao, a funo, desempenho e
interfaces exigidos
os requisitos (para o sistema e para o
software) so documentados e revistos
com o cliente
Mtodos: Anlise Estruturada, Anlise
Orientada a Objetos, Mtodos Formais
PRODUTO: Especificao de Requisitos
Anlise de Requisitos
3- PROJETO
traduo dos requisitos do software para um
conjunto de representaes que podem ser
avaliadas quanto qualidade, antes que a
codificao se inicie
se concentra em 4 atributos do programa:
Estrutura de Dados
Arquitetura de Software
Detalhes Procedimentais
Caracterizao de Interfaces
Atividades do Ciclo de Vida
Clssico

Projeto de Fluxo de Dados

Projeto Orientado a Objetos

Projeto
4- CODIFICAO
traduo das representaes do
projeto para uma linguagem artificial
resultando em instrues executveis
pelo computador
Atividades do Ciclo de Vida
Clssico
5- TESTES
Concentra-se:
nos aspectos lgicos internos do software,
garantindo que todas as instrues tenham
sido testadas
nos aspectos funcionais externos, para
descobrir erros e garantir que a entrada
definida produza resultados que concordem
com os esperados.
Atividades do Ciclo de Vida
Clssico
6- MANUTENO
provavelmente o software dever
sofrer mudanas depois que for
entregue ao cliente

Caracterizada como o iceberg
Atividades do Ciclo de Vida
Clssico
Tipos de Manuteno
Manuteno Corretiva: diagnstico e correo de
erros
Manuteno Adaptativa: adaptao do software
para acomodar mudanas em seu ambiente externo
(Hardware / Software)
Manuteno Perfectiva: exigncia do cliente para
acrscimos funcionais e de desempenho
Manuteno Preventiva: melhorar a confiabiliade e
manutenibilidade futura (tcnicas de engenharia
reversa e reengenharia)
Manuteno
Problemas com o Ciclo de
Vida Clssico
e projetos reais raramente seguem o fluxo
seqencial que o modelo prope
e logo no incio difcil estabelecer
explicitamente todos os requisitos. No comeo
dos projetos sempre existe uma incerteza
natural
eo cliente deve ter pacincia. Uma verso
executvel do software s fica disponvel numa
etapa avanada do desenvolvimento
Problemas com o Ciclo de
Vida Clssico
e Iteraes e dificuldades para o planejamento e
a superviso
eCongelamento de fases iniciais e
comprometimento do atendimento aos
requisitos reais do cliente
-Visibilidade do processo
- Embora o Ciclo de Vida Clssico
tenha fragilidades, ele
significativamente melhor do que
uma abordagem casual ao
desenvolvimento de software
Vantagens do Ciclo de Vida
Clssico
APROPRIADO QUANDO
+ o cliente definiu um conjunto de objetivos gerais
para o software, mas no identificou requisitos de
entrada, processamento e sada com detalhes
+ desenvolvedor no tem certeza da eficincia de
um algoritmo, forma da interao
homem/mquina
Prototipao
Prototipao
Conversar com
o Cliente
Construir/Revisar
prottipo
Reviso e Teste
pelo Cliente
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno dos
requisitos
Atividades da Prototipao
1- OBTENO DOS REQUISITOS:
desenvolvedor e cliente definem os objetivos
gerais do software, identificam quais requisitos
so conhecidos e as reas que necessitam de
definies adicionais
2- PROJETO RPIDO:
representao dos aspectos do software que so
visveis ao usurio (abordagens de entrada e
formatos de sada)
3- CONSTRUO PROTTIPO:
implementao do projeto rpido
serve como o primeiro sistema -
recomendado que se jogue fora futuramente
4- AVALIAO DO PROTTIPO:
cliente e desenvolvedor avaliam o prottipo

Atividades da Prototipao
5- REFINAMENTO DOS REQUISITOS:
cliente e desenvolvedor refinam os requisitos do
software a ser desenvolvido.
Ocorre neste ponto um processo de iterao
que pode conduzir a atividade 1 at que as
necessidades do cliente sejam satisfeitas e o
desenvolvedor compreenda o que precisa ser
feito
Atividades da Prototipao

6- CONSTRUO PRODUTO:
identificados os requisitos, o prottipo deve ser
descartado e a verso de produo deve ser
construda considerando os critrios de qualidade
Atividades da Prototipao
Prototipao
+ processo que possibilita que o desenvolvedor crie
um modelo do software que deve ser construdo
+ idealmente, o modelo (prottipo) serve como um
mecanismo para identificar os requisitos de
software
+prottipo em papel ou sistema que retrata a interao com o usurio
+prottipo que implemente algumas funes exigidas
+ Prottipo serve como mecanismo para identificar
os requisitos do software
ecliente no sabe que o software que ele v no considerou,
durante o desenvolvimento, a qualidade global e a
manutenibilidade a longo prazo.
no aceita bem a idia que a verso final do software vai ser
construda e fora a utilizao do prottipo como produto final

edesenvolvedor freqentemente faz uma implementao
comprometida (utilizando o que est disponvel) com o objetivo
de produzir rapidamente um prottipo.
Depois de um tempo ele familiariza com essas escolhas, e esquece que
elas no so apropriadas para o produto final
Problemas com a Prototipao
-ainda que possam ocorrer problemas,
a prototipao um ciclo de vida
eficiente.
-a chave definir as regras do jogo
logo no comeo
-o cliente e o desenvolvedor devem
ambos concordar que o prottipo seja
construdo para servir como um
mecanismo a fim de definir os
requisitos
RAD (Rapid Application Development)
Adaptao do sequencial
Modelo de desenvolvimento de software
incremental que enfatiza um ciclo de
desenvolvimento bastante curto (60 a 90 dias)
Desenvolvimento em equipe (team) e modular
Fases: Modelagem do Negcio, Modelagem dos
Dados, Modelagem do Processo, Gerao da
Aplicao, Teste e Turnover
Modelos Evolutivos
So iterativos
Desenvolvendo novas verses ...
Modelo Espiral
acopla a natureza iterativa do modelo de prototipao com os
aspectos controlados e sistemticos do modelo sequencial
Modelo Incremental
combina elementos do modelo sequencial com a filosofia
iterativa do modelo de prototipao, liberao por incrementos
Ciclo de Vida em Espiral
Engloba as melhores caractersticas do ciclo de vida
Clssico como o da Prototipao, adicionando um novo
elemento: a ANLISE DOS RISCOS
Segue a abordagem de passos sistemticos do Ciclo
de Vida Clssico incorporando-os numa estrutura
iterativa que reflete mais realisticamente o mundo real
Usa a Prototipao, em qualquer etapa da evoluo do
produto, como mecanismo de reduo de riscos

deciso de continuar ou no
na direo de um sistema
concludo
avaliao do
cliente
engenharia
anlise dos riscos
planejamento
Atividades do Ciclo de Vida em
Espiral
1- PLANEJAMENTO: determinao dos objetivos,
alternativas e restries
2- ANLISE DE RISCO: anlise das alternativas e
identificao / resoluo dos riscos
3- CONSTRUO: desenvolvimento do produto
no nvel seguinte
4- AVALIAO DO CLIENTE: avaliao do
produto e planejamento das novas fases
Comentrios sobre o Ciclo de
Vida em Espiral
uma abordagem realstica para o
desenvolvimento de software em grande escala.
usa uma abordagem que capacita o desenvolvedor
e o cliente a entender e reagir aos riscos em cada
etapa evolutiva.
pode ser difcil convencer os clientes que uma
abordagem "evolutiva" controlvel
exige considervel experincia na determinao de
riscos e depende dessa experincia para ter
sucesso
A cada iterao ao redor da espiral,
verses progressivamente mais completas
do software so construdas
o modelo relativamente novo e no tem
sido amplamente usado
Comentrios sobre o Ciclo de
Vida em Espiral
Modelo Incremental
Cada seqncia linear produz produz uma
liberao por incremento do software
Exemplo: Processador de Texto
Primeiro incremento: ncleo do produto
Em cada incremento: entrega de um produto
operacional

DBC - Desenvolvimento Baseado em
Componentes
Evoluo da Tecnologia OO
Adaptao do modelo espiral para o
desenvolvimento de software
Modelo de Componentes: CORBA (Common
Object Request Broker Architecture), COM
(Component Object Model - Microsoft), UML
Componentes so construdos/empacotados
para serem reutilizados em diferentes
aplicaes (Reuso)

Modelo de desenvolvimento
Concorrente
Engenharia concorrente (1994) - aplicaes
cliente/servidor
Representado esquematicamente como uma
srie de atividades tcnicas, tarefas e os
estados associados a elas
Atividades concorrentemente em diferentes
estados
Ex: Atividade de Engenharia do ModeloEspiral
tarefas: prototipao, anlise, especificao de
requisitos e projeto
Modelo de Mtodos Formais
Atividades que conduzem a uma
especificao matemtica formal
Notao matemtica rigorosa: especificar,
desenvolver e verificar/analisar
Eliminar ambiguidade, inconsistncia,
incompletitude
Abordagem: engenharia de software
Cleanroom (sala limpa)
Consomem tempo e custo
Tcnicas de 4
a
Gerao
Concentra-se na capacidade de se especificar o
software a uma mquina em um nvel que esteja
prximo linguagem natural.
Engloba um conjunto de ferramentas de software
que possibilitam que:
= o sistema seja especificado em uma
linguagem de alto nvel e
=o cdigo fonte seja gerado automaticamente a
partir dessas especificaes
Tcnicas de 4
a
Gerao
No h muito o que contestar:

= Quanto mais alto o nvel em que o software
pode ser especificado a uma mquina, mais
rapidamente o programa pode ser construdo

Ferramentas do ambiente de
desenvolvimento de software de
4
a
Gerao
O ambiente de desenvolvimento de software que sustenta
o ciclo de vida de 4
a
gerao inclui as ferramentas:
- linguagens no procedimentais para consulta de banco
de dados
- gerao de relatrios
- manipulao de dados
- interao e definio de telas
- gerao de cdigos
- capacidade grfica de alto nvel
- capacidade de planilhas eletrnicas
Obteno dos Requisitos
Estratgia de Projeto
Implementao usando
4GL
Testes
Atividades das Tcnicas de 4
a

Gerao
1- OBTENO DOS REQUISITOS: o cliente
descreve os requisitos os quais so traduzidos
para um prottipo operacional
eo cliente pode estar inseguro quanto aos requisitos
eo cliente pode ser incapaz de especificar as informaes
de um modo que uma ferramenta 4GL possa consumir
eas 4GLs atuais no so sofisticadas suficientemente
para acomodar a verdadeira "linguagem natural"
2- ESTRATGIA DE "PROJETO": para pequenas
aplicaes possvel mover-se do passo de
Obteno dos Requisitos para o passo de
Implementao usando uma linguagem de
quarta gerao
Para grandes projetos necessrio desenvolver uma
estratgia de projeto. De outro modo ocorrero os mesmos
problemas encontrados quando se usa abordagem
convencional (baixa qualidade, manutenibilidade ruim, m
aceitao do cliente)
Atividades das Tcnicas de 4
a

Gerao
3- IMPLEMENTAO USANDO 4GL: os resultados
desejados so representados de modo que haja
gerao automtica de cdigo . Deve existir uma
estrutura de dados com informaes relevantes e
que seja acessvel pela 4GL
4- TESTE: o desenvolvedor deve efetuar testes e
desenvolver uma documentao significativa. O
software desenvolvido deve ser construdo de
maneira que a manuteno possa ser efetuada
prontamente.
Atividades das Tcnicas de 4
a

Gerao
Comentrios sobre as
Tcnicas de 4
a
Gerao
PROPONENTES: reduo dramtica no tempo de
desenvolvimento do software (aumento de
produtividade)
OPONENTES: as 4GL atuais no so mais fceis
de usar do que as linguagens de programao
= o cdigo fonte produzido ineficiente
= a manutenibilidade de sistemas usando
tcnicas 4G ainda questionvel
Mudana na natureza de
desenvolvimento de software
mtodos
convencionais
aplicao de
tcnicas de 4
a

Gerao
demanda global
demanda por
software
1970 1980 1990 2000
Combinao dos Mtodos de Ciclo de Vida
obteno preliminar dos
requisitos
modelo espiral

tcnicas
4G

prototipao

anlise dos
requisitos

projeto

codificao

testes

manuteno

tcnicas 4G
tcnicas
4G

modelo espiral:
ensima
interao

sistema completo
prototipao
ensima
interao
Engenharia de Software
uma viso genrica
O processo de desenvolvimento de
software contm 3 fases genricas,
independentes do modelo de engenharia
de software escolhido:
DEFINIO
DESENVOLVIMENTO
MANUTENO
FASE DE DEFINIO: o qu ser desenvolvido
Anlise do Sistema: define o papel de cada elemento num
sistema baseado em computador, atribuindo em ltima anlise, o
papel que o software desempenhar.
Planejamento do Projeto de Software: assim que o
escopo do software estabelecido, os riscos so analisados, os
recursos so alocados, os custos so estimados, e tarefas e
programao de trabalho so definidas.
Anlise de Requisitos: o escopo definido para o software
proporciona uma direo, mas uma definio detalhada do
domnio da informao e da funo do software necessria antes
que o trabalho inicie.
Engenharia de Software
uma viso genrica
FASE DE DESENVOLVIMENTO: como o software vai
ser desenvolvido
Projeto de Software: traduz os requisitos do software num
conjunto de representaes (algumas grficas, outras tabulares ou
baseadas em linguagem) que descrevem a estrutura de dados, a
arquitetura do software, os procedimentos algortmicos e as
caractersticas de interface
Codificao: as representaes do projeto devem ser convertidas
numa linguagem artificial (a linguagem pode ser uma linguagem de
programao convencional ou uma linguagem no procedimental) que
resulte em instrues que possam ser executadas pelo computador
Realizao de Testes do Software: logo que o software
implementado numa forma executvel por mquina, ele deve ser testado
para que se possa descobrir defeitos de funo, lgica e implementao
Engenharia de Software
uma viso genrica
FASE DE MANUTENO: concentra-se nas
mudanas que ocorrero depois que o software
for liberado para uso operacional
C Correo
C Adaptao
C Melhoramento Funcional
Engenharia de Software
uma viso genrica
Correo: mesmo com as melhores atividades de
garantia de qualidade de software, provvel que o
cliente descubra defeitos no software. A manuteno
corretiva muda o software para corrigir defeitos.
Adaptao: com o passar do tempo, o ambiente
original (por exemplo a CPU, o sistema operacional e
perifricos) para o qual o software foi desenvolvido
provavelmente mudar. A manuteno adaptativa
muda o software para acomodar mudanas em seu
ambiente.
Engenharia de Software
uma viso genrica
Melhoramento Funcional: a medida que o
software usado, o cliente/usurio
reconhecer funes adicionais que
oferecero benefcios.
A manuteno perfectiva estende o
software para alm de suas exigncias
funcionais originais.
Engenharia de Software
uma viso genrica
ATIVIDADES DE PROTEO as fases e etapas correlatas
descritas so complementadas por uma srie de atividades de
proteo.
Revises: efetuadas para garantir que a qualidade seja
mantida medida que cada etapa concluda.
Documentao: desenvolvida e controlada para garantir
que informaes completas sobre o software estejam
disponveis para uso posterior.
Controle das Mudanas: institudo de forma que as
mudanas possam ser aprovadas e acompanhadas.
Engenharia de Software
uma viso genrica
Concluso
ENGENHARIA DE SOFTWARE
pode ser vista como uma abordagem de
desenvolvimento de software elaborada
com disciplina e mtodos bem definidos.
.....a construo por mltiplas pessoas de um
software de mltiplas verses (Parnas 1987)

Das könnte Ihnen auch gefallen