Anda di halaman 1dari 61

FATEC - OURINHOS

Profa. Me. Viviane de Fatima Bartholo Potenza


vbartholo@gmail.com

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

Software: conjunto de artefatos gerados na soluo de um


problemacomputacionalquetemcomartefatoprincipalumarquivo
binrioexecutvelemumcomputador.

Sistema: software e seus artefatos de origem tcnica. Ou seja,


excluem-se os artefatos gerenciais e inclui-se infra-estrutura de
hardware.

Artefato: qualquer produto gerado durante a especificao,


construo,implantaooumanutenodeumsoftware.

Definies

Arquivo Binrio Executvel

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.

Conjunto de instrues lgicas construdas com


umalinguagemdeprogramaoqueobedeceaumconjuntodealgarismos
deformaagarantirasoluodeumproblemacomputacionalproposto.

Definies

Mtodo umprocedimentoformalparaproduziralgumresultado.

Tcnica

aplicao tima dos mtodos com compromisso maior com o


resultadoesperado,nocomaaplicaoformaldosmtodos.

Ex: chefe de cozinha pode preparar uma receita empregando


ingredientes sequencialmente combinados em ordem e momentos
especficos.

Oprocedimentode preparo envolve a preocupaocom otempoeos


ingredientes, mas pode no depender do tipo de equipamento de
cozinhautilizado.

Definies

Ferramenta uminstrumentoousistemaautomatizadoutilizado
pararealizarumatarefadamelhormaneira

Asferramentaspodemnostornarmaisprecisos,eficientese
produtivos,issopodemelhoraraqualidadedoproduto.

Aproduodeumdocumentocomusodecomputadore
impressoraotornamaisfcildelerqueumproduzidopormquina
deescrever.
Entretantonemsemprenecessriaumaferramentaparasefazer
bemalgumacoisa.
Umatcnicaculinriapodemelhoraraqualidadedeummolho,o
quenoacontecepelousodedeterminadavasilhaoucolher.

Definies

Procedimento

comoumareceita.Indicacomofazer

A combinao de ferramentas e tcnicas que, em harmonia,


produzemumresultadoespecfico.

Processo

coordenao contnua na aplicao das tcnicas, mtodos e


ferramentas e recursos humanos durante a especificao,
construo,implantaoemanutenodeumsoftware;

Definies

Paradigma comoumestilodefazer.

Representa uma abordagem ou filosofia em particular para a


construodeumsoftware.

Assim como diferenciamos a cozinha chinesa da francesa,


podemos distinguir os paradigmas de desenvolvimento
orientadoaobjetosdoparadigmaprocedural.

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)

..... CRISE DE SOFTWARE

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

o nmero de sistemas baseado


em computador
CRISE
DEimpossvel
SOFTWARE
Manuteno
quase

Refere-se a um conjunto de
problemas encontrados no
..... CRISE
DE SOFTWARE
desenvolvimento
de
software

Crise de Software - problemas


1-

As estimativas de prazo e de custo freqentemente so


imprecisas

Nodedicamostempoparacoletardadossobreoprocessode
desenvolvimentodesoftware
Sem nenhuma indicao slida de produtividade, no podemos
avaliar com preciso a eficcia de novas ferramentas, mtodos
oupadres

2- Insatisfao do cliente com o sistema concludo

Os projetos de desenvolvimento de software normalmente so


efetuadosapenascomumvagoindciodasexignciasdocliente

Crise de Software - problemas


3- A qualidade de software s vezes menos que adequada

S recentemente comeam a surgir conceitos


quantitativosslidosdegarantiadequalidadedesoftware

4- O software existente muito difcil de manter

Atarefademanutenodevoraooramentodestinadoao
software
A facilidade de manuteno no foi enfatizada como um
critrioimportante

Causas dos problemas associados


crise de software
1- PRPRIO CARTER DO SOFTWARE
O software um elemento de sistema lgico e no fsico.
Conseqentemente o sucesso medido pela qualidade de uma
nica entidade e no pela qualidade de muitas entidades
manufaturadas
O software no se desgasta, mas se deteriora
2- FALHAS DAS PESSOAS RESPONSVEIS PELO
DESENVOLVIMENTO DE SOFTWARE

Gerentessemnenhumaexperinciaemsoftware

Profissionais da rea de software tm pouco treinamento formal


emnovastcnicasparaodesenvolvimentodesoftware

Resistnciaamudanas

Causas dos problemas associados


crise de software
3- MITOS DO SOFTWARE
Propagaramdesinformaoeconfuso

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

recentes computadores para se fazer um


desenvolvimento de software de alta
qualidade

Mitos do software

(ADMINISTRATIVOS)

Mito 3:
Se ns estamos atrasados nos prazos, podemos adicionar
maisprogramadoresetiraroatraso
Realidade:
O desenvolvimento de software no um processo

mecnico igual manufatura. Acrescentar pessoas


em um projeto torna-o ainda mais atrasado

Pessoas podem ser acrescentadas, mas somente

de uma forma planejada

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

fracassos dos esforos de desenvolvimento de


software.

fundamental uma descrio formal e detalhada do

domnio da informao, funo, desempenho,


interfaces, restries de projeto e critrios de
validao.

Mitos do software

(CLIENTE)

Mito 2:
Osrequisitosdeprojetomodificam-secontinuamente,masas
mudanaspodemserfacilmenteacomodadas,porqueosoftware
flexvel.
Realidade:
Uma mudana, quando solicitada tardiamente num projeto,

pode ser maior do que a ordem de magnitude mais


dispendiosa da mesma mudana solicitada nas fases
iniciais.

Mitos do software

(CLIENTE)

MAGNITUDE DAS MUDANAS


FASES

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

uma Configurao de Software que inclui todos os itens


de informao produzidos durante a construo e
manuteno do software.

Resposta Crise de Software


Engenharia de software: a aplicao de uma abordagem
sistemtica, disciplinada e possvel de ser medida para o
desenvolvimento,operaoemanutenodosoftware(IEEE).

Processo de software: abordagem sistemtica, disciplinada e


possvel de ser medida para o desenvolvimento, operao e
manutenodosoftware.

Abrange um conjunto de trs elementos fundamentais:


Mtodos, Ferramentas e Procedimentos para projetar, construir
emantergrandessistemasdesoftwaredeformaprofissional.

Engenharia de Software

Analisando as definies anteriores podemos encarar a


Engenharia de Software como uma tecnologia em
camadas:

ferramentas
mtodos
processo
foconaqualidade

ferramentas
mtodos
processo
foconaqualidade
o solo e o porque de utilizarmos um processo de
software

Gerenciamento da Qualidade Total e filosofias similares


produzem
uma
mudana
cultural
que
permite
o
desenvolvimento crescente de abordagens mais maduras para a
Engenharia 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

O que processo de software:


um conjunto de atividades e resultados associados que
geram um produto de software;
Um roteiro que o ajuda a criar um resultado de alta
qualidade;
Um processo definido quando tem uma descrio que
mantida, ou seja, tem documentao que detalha:

O que feito (produto);


Quando (etapas);
Por quem (papis);
As coisas que usa (insumos);
As coisas que produz (resultados);

Processo de Software

Comparando a definio de processo com as de projeto e


produto.

Um processo uma receita que seguida por um


projeto; o projeto concretiza uma abstrao, que
o produto.

No se deve confundir um processo (digamos, uma receita de


risoto) com o respectivo produto (o risoto) ou com a
execuo do processo, atravs de um projeto (a
confeco do risoto por determinado cozinheiro, em determinado dia) .

Processo de Software

Hquatroatividadesdeprocessodesoftware
fundamentais,asaber:
Especificaodosoftware;
DesenvolvimentodoSoftware;
ValidaodoSoftware;
EvoluodoSoftware;

Processo de Software Viso


Genrica
Atravs de uma viso geral
um processo de software pode ser
considerado assim:

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

Processo de Software - Atividades

39

Processo de Software - Qualidade


A qualidade depende do ponto de vista

Usurio

Desenvolvedor

Gerente

Interesse fica concentrado


principalmente no uso do
software
A qualidade fica mais voltada
s caractersticas internas do
software
A qualidade do produto no
pode ser desvinculada dos
interesses da organizao
40

Processo de Software - Qualidade


A qualidade depende do tipo de
aplicao

Processo de Software - Qualidade


A qualidade depende do tipo de
aplicao

Processo de Software
Modelo de Processo de Software

CiclodeVidaSoftware:tempodevidadeumsoftware,cominciona
decisodesuaconstruoatomomentodesuadesativaocompleta.

ModelodeCiclodeVidadeumprocesso:representaumaabordagem
especficadedesenvolvimentodesoftwarebaseadanorelacionamento
entreetapaseatividadesdeumprocesso.

Ummodelodeprocessodesoftwaredeveserescolhidocombase:

Nanaturezadoprojetoedaaplicao;
Nosmtodoseferramentasaseremutilizados;
Noscontroleseprodutosqueprecisamserentregues;

Ciclo de Vida do Produto de


Software
Fasededefinio

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

Processo de Software Modelo Seqencial


Linear

Muitosaplicamessemodelodeformaestritamentelinear:

Engenharia de
Sistemas / Informao
Anlise
Anlise

Projeto
Projeto

Codificao
Codificao

Testes
Testes

Processo de Software Modelo Seqencial Linear

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

Processo de Software Modelo RAD


equipe#3

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

Processo de Software Prototipao

processo que possibilita que o desenvolvedor crie um


modelodosoftwarequedeveserconstrudo.

idealmente, o modelo (prottipo)


prottipo serve como um
mecanismoparaidentificarosrequisitosdesoftware.

apropriado para quando o cliente definiu um conjunto de


objetivos gerais para o software, mas no identificou
requisitosdeentrada,processamentoesadacomdetalhes.

50

Processo de Software Prototipao

incio
fim

obteno
dos
requisitos

construo
produto

projeto
rpido

construo
prottipo

refinamento
prottipo
avaliao
prottipo

51

Processo de Software Modelo Incremental

Ao invs de entregar o sistema uma nica vez, o


desenvolvimento e a entrega so partidos em incrementos,
quefornecempartedasfuncionalidadesrequeridas.

Os requisitos do usurios so dispostos hierarquicamente, e


os requisitos de prioridades mais altas so includos nas
primeirasentregas.

Quando o desenvolvimento de um incremento iniciado, os


requisitos so congelados de forma que os requisitos para
incrementosposteriorespossamcontinuaraevoluir.

Processo de Software Modelo Incremental


Engenharia de Sistemas /
Informao
Projeto
Projeto

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

Processo de Software Modelo Espiral

engloba a natureza iterativa da Prototipao com os


aspectossistemticosecontroladosdoModeloLinear

fornece o potencial para o desenvolvimento rpido de


versesincrementaisdosoftware

Cada Loop da espiral uma fase do desenvolvimento


quesemprepassapor4aspectos

Processo de Software Modelo Espiral


Cada loop da espiral
uma fase de
desenvolvimento do
software;

Planejamento
Definio de Objetivos

Desenvolvimento e Validao

Avaliao e reduo de risco


58

Processo de Software Tcnicas de 4a Gerao

Concentra-se na capacidade de se especificar o


software a uma mquina em um nvel que esteja
prximolinguagemnatural.

Engloba um conjunto de ferramentas de software

quepossibilitamque:
o sistema seja especificado em uma linguagem de alto
nvele
o cdigo fonte seja gerado automaticamente a partir
dessasespecificaes

Processo de Software Tcnicas de 4a Gerao


Obtenodos
dos
Obteno
Requisitos
Requisitos

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

Produto de Sw = programa+Estrutura Dados+Documentao.


Processo de Sw:
Processo define a abordagem;
Engenharia engloba tambm as tecnologias como mtodos e ferramentas;
Engenharia de Software Uma disciplina da engenharia, se ocupa de todos
os aspectos do desenvolvimento de software e utiliza-se de mtodos,
ferramentas e processos focando a qualidade;
Processo de Software: um conjunto de atividades e resultados
associados que geram um produto de software;

Atividades: Especificao, Desenvolvimento, Validao e Evoluo do Software;


3 Fases:
Definio - o que (Engenharia do Sistema, Planejamento do Projeto e
Anlise de Requisitos)
Desenvolvimento - como (Projeto, Gerao do Cdigo, Teste)
Manuteno
Todas monitoradas por atividades chamadas de guarda chuva

Modelos de Processo: sequencial, RAD, prototipao, incremental, espiral


e 4 gerao.

62

Referncias

Engenharia de Software Teoria e Prtica. Pfleeger, L.S. Ed.


Pearson

Engenharia de Software. Pressman, R. Ed. McGraw Hill

Capitulo 1 e 2

Engenharia de Software. Fundamentos, Mtodos e Padres.


Pdua, W. Ed. LTC

Capitulo 1

Capitulo 5

Engenharia de Software Aplicada. Magela, R. Ed. Alta Books

Capitulo 3

Engenharia de Software

??? DVIDAS ???

Anda mungkin juga menyukai