ENGENHARIA DE SOFTWARE
X
PRODUTO DE SOFTWARE
X
PROCESSO DE SOFTWARE
Resolvendo Problemas
Definies
Engenharia
aplicaodemtodoscientficosouempricosutilizaodos
recursosdanaturezaembenefciodoserhumano
englobatambmastecnologiascomomtodoseferramentas;
Engenharia
de Software
ocupadetodososaspectosdodesenvolvimentodesoftware;
Conjuntodetcnicas,mtodos,ferramentaseprocessosutilizados
na especificao, construo, implantao e manuteno de um
software que visa a garantir a gerncia, o controle e a qualidade
dosartefatosgeradosatravsderecursoshumanos.
Como engenheiro de sw, utilizamos nossos conhecimento sobre
computadoresecomputaoparaajudararesolverproblemas.
4
Definies
Definies
Cdigo Fonte:
um arquivo de computador
passvel de interpretao e execuo por uma arquitetura de computador.
Originado pela traduo de um cdigo-fonte via compilao e ligao em
umarquivobinrioexecutvel.
Definies
Mtodo umprocedimentoformalparaproduziralgumresultado.
Tcnica
Definies
Ferramenta uminstrumentoousistemaautomatizadoutilizado
pararealizarumatarefadamelhormaneira
Asferramentaspodemnostornarmaisprecisos,eficientese
produtivos,issopodemelhoraraqualidadedoproduto.
Aproduodeumdocumentocomusodecomputadore
impressoraotornamaisfcildelerqueumproduzidopormquina
deescrever.
Entretantonemsemprenecessriaumaferramentaparasefazer
bemalgumacoisa.
Umatcnicaculinriapodemelhoraraqualidadedeummolho,o
quenoacontecepelousodedeterminadavasilhaoucolher.
Definies
Procedimento
comoumareceita.Indicacomofazer
Processo
Definies
Paradigma comoumestilodefazer.
Categorias de Software
Softwarebsico
Softwareparasistemaemtemporeal
Softwarecomercial
Softwareparaengenhariaeaplicaescientficas
Softwareembarcado
Softwareparacomputadorespessoais
Softwarebaseadosemintelignciaartificial
Softwaredeentretenimento
Evoluo do Software
(1950 - 1965)
Ohardwaresofreucontnuasmudanas
Osoftwareeraumaarte"secundria"paraaqualhaviapoucos
mtodossistemticos
Ohardwareeradepropsitogeral
Osoftwareeraespecficoparacadaaplicao
Nohaviadocumentao
Evoluo do Software
(1965 - 1975)
Multiprogramaoesistemasmultiusurios
Tcnicasinterativas
Sistemasdetemporeal
1ageraodeSGBDs
Produtodesoftware-software houses
BibliotecasdeSoftware
Evoluo do Software
(1965 - 1975)
Cresceonmerodesistemasbaseadoemcomputador
Manutenoquaseimpossvel
(1975 - hoje)
Sistemasdistribudos
Redeslocaiseglobais
Usogeneralizadodemicroprocessadores-produtosinteligentes
Hardwaredebaixocusto
Impactodeconsumo
Evoluo do Software
(Quarta era do software de computador)
Tecnologiasorientadasoobjetos
Sistemasespecialistasesoftwaredeintelignciaartificialusadosna
prtica
Softwarederedeneuralartificial
ComputaoParalela
Problemas que ainda persistem
Anecessidadeporsofisticaodosoftwareultrapassounossacapacidade
deconstruirsoftwaresqueextraiamtodoopotencialdohardware
Nossacapacidadedeconstruirnovossoftwaresnoacompanhaa
demandapornovosprogramas
Nossacapacidadedemanterprogramasatrapalhadaporprojetosruins
einadequados
Evoluo doAFLIO
Software
CRNICA
(1965 - 1975)
Cresce
Refere-se a um conjunto de
problemas encontrados no
..... CRISE
DE SOFTWARE
desenvolvimento
de
software
Nodedicamostempoparacoletardadossobreoprocessode
desenvolvimentodesoftware
Sem nenhuma indicao slida de produtividade, no podemos
avaliar com preciso a eficcia de novas ferramentas, mtodos
oupadres
Atarefademanutenodevoraooramentodestinadoao
software
A facilidade de manuteno no foi enfatizada como um
critrioimportante
Gerentessemnenhumaexperinciaemsoftware
Resistnciaamudanas
administrativos
cliente
profissional
Mitos do software
(ADMINISTRATIVOS)
Mito 1:
J temos um manual repleto de padres e procedimentos
para a construo de software. Isso no oferecer ao meu
pessoaltudooqueelesprecisamsaber?
Realidade:
Ser que o manual usado?
Os profissionais sabem que ele existe?
Ele reflete a prtica moderna de desenvolvimento
de software?
Ele completo?
Mitos do software
(ADMINISTRATIVOS)
Mito 2:
Meu pessoal tem ferramentas de desenvolvimento de
softwaredeltimagerao;afinallhescompramososmais
novoscomputadores
Realidade:
preciso muito mais do que os mais
Mitos do software
(ADMINISTRATIVOS)
Mito 3:
Se ns estamos atrasados nos prazos, podemos adicionar
maisprogramadoresetiraroatraso
Realidade:
O desenvolvimento de software no um processo
Mitos do software
(CLIENTE)
Mito 1:
Uma declarao geral dos objetivos suficiente para se
comear a escrever programas - podemos preencher os
detalhesmaistarde.
Realidade:
Uma definio inicial ruim a principal causa de
Mitos do software
(CLIENTE)
Mito 2:
Osrequisitosdeprojetomodificam-secontinuamente,masas
mudanaspodemserfacilmenteacomodadas,porqueosoftware
flexvel.
Realidade:
Uma mudana, quando solicitada tardiamente num projeto,
Mitos do software
(CLIENTE)
DEFINIO
DESENVOLVIMENTO
MANUTENO
CUSTO DE MANUTENO
1 x
1.5 - 6x
60 - 100x
Mitos do software
(PROFISSIONAL)
Mito 2:
Enquantonotiveroprograma"funcionando",eunoterei
realmentenenhumamaneiradeavaliarsuaqualidade.
Realidade:
Um programa funcionando somente uma parte de
Engenharia de Software
ferramentas
mtodos
processo
foconaqualidade
ferramentas
mtodos
processo
foconaqualidade
o solo e o porque de utilizarmos um processo de
software
ferramentas
mtodos
processo
foconaqualidade
afundao;sequnciacontnuadeaes.
oqueintermedeiaascamadasdetecnologiasepermiteum
desenvolvimentodesoftwareracionaleemtempo;
Defineumconjuntodereaschavedoprocesso(KPA)quedeveser
estabelecidoparaumusoefetivodaEngenhariadeSoftware;
ferramentas
mtodos
processo
foconaqualidade
ocomofazer;
Englobamumconjuntodetarefasqueinclui
anlisederequisitos,projeto,implementao,
testeemanuteno;
ferramentas
mtodos
processo
foconaqualidade
oinstrumentoapropriado;
Dosuporteautomatizadoousemi-automatizadoaosmtodos;
Quandoasferramentasqueapoiamosmtodosseintegram,forma-se
aEngenhariadeSoftwareauxiliadaporcomputadorCASEComputer
AidedSoftwareEngineering;
Engenharia de Software
34
Processo de Software
Processo de Software
Processo de Software
Hquatroatividadesdeprocessodesoftware
fundamentais,asaber:
Especificaodosoftware;
DesenvolvimentodoSoftware;
ValidaodoSoftware;
EvoluodoSoftware;
3 Fases:
Definio - o que
Desenvolvimento - como
Engenharia do Sistema
Planejamento do Projeto
Anlise de Requisitos
Projeto
Gerao do Cdigo
Teste
Manuteno
Atividades Guarda-Chuva
Controle e Rastreamento do
Projeto
Revises Tcnicas Formais
Garantia de Qualidade
Gerenciamento de Configurao
Produo e Preparao de
Documentos
Gerenciamento de Reusabilidade
Medio
Gerenciamento de Risco
38
39
Usurio
Desenvolvedor
Gerente
Processo de Software
Modelo de Processo de Software
CiclodeVidaSoftware:tempodevidadeumsoftware,cominciona
decisodesuaconstruoatomomentodesuadesativaocompleta.
ModelodeCiclodeVidadeumprocesso:representaumaabordagem
especficadedesenvolvimentodesoftwarebaseadanorelacionamento
entreetapaseatividadesdeumprocesso.
Ummodelodeprocessodesoftwaredeveserescolhidocombase:
Nanaturezadoprojetoedaaplicao;
Nosmtodoseferramentasaseremutilizados;
Noscontroleseprodutosqueprecisamserentregues;
AnliseeEspecificao
EstudodeViabilidade
EstimativasPlanejamento
Fasededesenvolvimento
Design
Implementaoeintegrao
VerificaoeValidao
Fasedeoperao
Distribuio,InstalaoeConfigurao
Utilizaoeadministrao
Manutenocorretiva,evolutivaeadaptativa
Fasederetirada
Migrao,reengenharia,engenhariareversa
Processo de Software
Modelo de Processo de Software
Algunsmodelosdeprocesso:
ModeloSeqencialLinear-CASCATA
Modelo
Modelo RAD
ModelosEvolucionrios
ModelodePrototipao(Descartveis)
Incremental(Exploratrio)
Espiral(Exploratrio)
Tcnicasde4aGerao
Muitosaplicamessemodelodeformaestritamentelinear:
Engenharia de
Sistemas / Informao
Anlise
Anlise
Projeto
Projeto
Codificao
Codificao
Testes
Testes
Masomodelooriginalprevavolta:
Engenhariade
de
Engenharia
Sistemas
Sistemas
Anlise de
de
Anlise
Requisitos
Requisitos
Projeto
Projeto
Codificao
Codificao
Testes
Testes
Manuteno
Manuteno
Processo de Software
Modelo RAD (Rapid Application Development)
omodeloseqenciallinearmasqueenfatizaum
desenvolvimentoextremamenterpido;
Aaltavelocidadeconseguidaatravsdeumaabordagem
deconstruobaseadaemcomponentes;
Usadoquandoosrequisitossobemdefinidoseoescopo
dosistemarestrito
equipe#2
equipe#1
modelagem
donegcio
modelagem
donegcio
modelagem
donegcio
modelagem
dosdados
modelagem
dosdados
modelagem
dosdados
modelagem
doprocesso
modelagem
doprocesso
geraoda
aplicao
geraoda
aplicao
geraoda
aplicao
testee
modificao
60-90 dias
modelagem
doprocesso
testee
modificao
testee
modificao
50
incio
fim
obteno
dos
requisitos
construo
produto
projeto
rpido
construo
prottipo
refinamento
prottipo
avaliao
prottipo
51
Anlise
Anlise
incremento2
incremento4
Anlise
Anlise
Anlise
Anlise
Projeto
Projeto
produtoliberado
doincremento2
Testes
Testes
Codificao
Codificao
Projeto
Projeto
produtoliberado
doincremento1
Testes
Testes
Codificao
Codificao
Projeto
Projeto
Anlise
Anlise
incremento3
incremento1
Testes
Testes
Codificao
Codificao
Codificao
Codificao
tempo
produtoliberado
doincremento3
Testes
Testes
produto
liberado
do
incremento4
Planejamento
Definio de Objetivos
Desenvolvimento e Validao
quepossibilitamque:
o sistema seja especificado em uma linguagem de alto
nvele
o cdigo fonte seja gerado automaticamente a partir
dessasespecificaes
Estratgiado
do
Estratgia
Projeto
Projeto
Implementao
Implementao
usando4GL
4GL
usando
Testes
Testes
60
Concluso
ENGENHARIA DE SOFTWARE
pode ser vista como uma abordagem
de desenvolvimento de software
elaborada com disciplina e mtodos
bem definidos.
Objetivo Principal
Produzir software de alta qualidade e
de baixo custo.
61
Reviso
62
Referncias
Capitulo 1 e 2
Capitulo 1
Capitulo 5
Capitulo 3
Engenharia de Software