Sei sulla pagina 1di 41

Fundamentos da Engenharia de Software

INTRODUO
ENGENHARIA DE
SOFTWARE

Monica de Souza Massa

Maro / 2015 slide 1

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
O QUE
Engenharia de Software ?

Monica de Souza Massa

Maro / 2015 slide 2

Fundamentos da Engenharia de Software

Surgimento do termo Engenharia de


Software...
Objetivos:

Otan 1968

Identificar os problemas envolvidos com o


desenvolvimento de software.

Analisar as causas destes problemas.


Propor solues economicamente viveis para a
resoluo destes problemas.
Organizar o conhecimento sobre as diversas
tcnicas e mtodos para o desenvolvimento de
software.
Monica de Souza Massa

Maro / 2015 slide 3

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Algumas Definies:
a aplicao de uma abordagem sistemtica,
disciplinada e mensurvel ao desenvolvimento,
operao e manuteno de software.
IEEE (Institute of Eletric andEletronic Engineers)

O estabelecimento e uso de um conjunto de princpios


de engenharia com o objetivo de se construir software
confivel, eficiente e economicamente vivel em
mquinas reais. Fritz Bauer
Aplicao prtica do conhecimento cientfico no
projeto e construo de programas e de
documentao requerida para desenvolver, operar e
manter estes programas.
Barry Boehm
Monica de Souza Massa

Maro / 2015 slide 4

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Aprofundando o entendimento do termo
A ES uma disciplina da engenharia que se
ocupa de todos os aspectos da produo de
software, desde os estgios iniciais de especificao
do sistema at a manuteno deste, depois que
entrou em operao.
Ian Sommerville

Monica de Souza Massa

Maro / 2015 slide 5

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Aprofundando o entendimento do termo
Disciplina de engenharia...
1. os engenheiros fazem os produtos funcionarem
2. Os engenheiros aplicam teorias., mtodos e
ferramentas para desenvolver os produtos
3. Os engenheiros reconhecem que precisam
trabalhar de acordo com diretrizes
organizacionais e restries oramentrias

Monica de Souza Massa

Maro / 2015 slide 6

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Aprofundando o entendimento do termo
Todos os aspectos da produo de software...
1. a ES no se dedica apenas aos processos
tcnicos de desenvolvimento de software
2. tambm so consideradas atividades como
gerenciamento de projetos, desenvolvimento
de mtodos e teorias que dem suporte
produo do software

Monica de Souza Massa

Maro / 2015 slide 7

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
EXERCCIO
Construo de uma casa X Construo de um software

Monica de Souza Massa

Maro / 2015 slide 8

Fundamentos da Engenharia de Software

MAS ... O QUE


SOFTWARE?

Monica de Souza Massa

Maro / 2015 slide 9

Fundamentos da Engenharia de Software

MAS ... O QUE


SOFTWARE?

Instrues (programas de computador) que, quando


executadas, produzem a funo e desempenho
desejados;
Estruturas de dados que permitem que os programas
manipulem adequadamente a informao; e
Documentos que descrevem a operao e o uso de
programas.
Monica de Souza Massa

Maro / 2015 slide 10

Fundamentos da Engenharia de Software

APLICAES DO
SOFTWARE

Monica de Souza Massa

Maro / 2015 slide 11

Fundamentos da Engenharia de Software

CARACTERSTICAS DO SOFTWARE
... O que diferencia o
SW do HW...
1. desenvolvido ( no manufaturado no sentido
clssico)
2. no se desgasta
3. a maioria construda sob encomenda

Monica de Souza Massa

Maro / 2015 slide 12

Fundamentos da Engenharia de Software

HISTRICO
Tempo de vida pouco mais de meio sculo
(aprox. seis dcadas)
Incio (dcada de 60)
Programao considerada uma espcie de arte.
Altos custos de hardware encobrem os custos de software.
Projeto no crebro de uma pessoa.
Software feito sob medida.
Produtos pouco complexos e orientados para resolver
problemas especficos.
Sem documentao.
Softwares
Monicade
Souza Massa

construdos por pequenas equipes.

Maro / 2015 slide 13

Fundamentos da Engenharia de Software

HISTRICO
A Evoluo do Software
Fatores que mudaram a prtica da ES nos ltimos 50 anos

EXERCCIO: construo de uma linha da vida


sobre a Engenharia de Software nos ltimos 50
anos

Monica de Souza Massa

Maro / 2015 slide 14

Fundamentos da Engenharia de Software

HISTRICO
A Evoluo do Software
Os primeiros anos (1950 a
incio dos 60)
- Aplicaes cientficas e de
engenharia

A segunda era (1960 a meados


de 80)
- Aplicaes comerciais em grandeporte (sistemas de informao BD)

A terceira era (meados de 70 e


dcada de 80)
- Aplicativos pessoais em
microcomputadores
Monica de Souza Massa

A quarta era (meados de 80 a


meados de 90)
- Aplicativos com Interfaces Grficas Redes e Arquitetura Cliente- Servidor

A quinta era (de meados de 90


a ???)
- Software Distribudos, Internet,
Groupware e Intranets

Sexta era??
- Computao Pervasiva, Mvel e
Ubqua
Maro / 2015 slide 15

Fundamentos da Engenharia de Software

HISTRICO
A Evoluo do Software
1950-1970: Desafio principal era desenvolver Hardware
Reduzir o custo de processamento e armazenamento de dados

Hoje: Reduzir o custo e melhorar a qualidade dos


Softwares (potencial da computao)
Impacto na sociedade e cultura profundo!!!!!!
O software atingiu as grandes massas; tomada de decises nos
negcios, base para a pesquisa cientfica, soluo de problemas
de engenharia e telecomunicaes, funcionalidade.
Comunidade de Software objetiva desenvolver tecnologias para
facilitar o projeto de softwares de alta qualidade
Monica de Souza Massa

Maro / 2015 slide 16

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos do Software

Mitos sobre o gerenciamento do


software

Mitos sobre o cliente


Mitos sobre o Engenheiro de Software

Monica de Souza Massa

Maro / 2015 slide 17

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o gerenciamento do Software
J temos um manual repleto de padres e procedimentos
para a construo de software. Isso no oferecer ao
meu pessoal tudo o que eles precisam saber?
Realidade:
Realidade:
Ser
Ser que
que oo manual
manual usado?
usado?
Os
Os profissionais
profissionais sabem
sabem que
que ele
ele existe?
existe?
Ele
Ele reflete
reflete as
as prticas
prticas modernas
modernas de
de desenvolvimento
desenvolvimento de
de
SW?
SW?
Ele
Ele completo?
completo?
Monica de Souza Massa

Maro / 2015 slide 18

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o gerenciamento do Software
Se eu decidir terceirizar o projeto de software, posso
ento relaxar e deixar que a firma contratada construa-o.

Realidade:
Realidade:
Se
Se uma
uma organizao
organizao no
no entende
entende cono
cono gerenciar
gerenciar ee
controlar
controlar internamente
internamente seus
seus projetos
projetos de
de software,
software, isso
isso
vai
vai se
se potencializar
potencializar quando
quando um
um rojeto
rojeto for
for terceirizado.
terceirizado.
Monica de Souza Massa

Maro / 2015 slide 19

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o gerenciamento do Software
Se ns estamos atrasados nos prazos, podemos
adicionar mais programadores e tirar o atraso.
Realidade:
Realidade:
O
O desenvolvimento
desenvolvimento de
de software
software no
no um
um processo
processo
mecnico
mecnico igual
igual manufatura.
manufatura.
Acrescentar
Acrescentar pessoas
pessoas em
em um
um projeto
projeto torna-o
torna-o ainda
ainda mais
mais
atrasado.
atrasado. Pessoas
Pessoas podem
podem ser
ser acrescentadas,
acrescentadas, mas
mas
somente
somente de
de uma
uma forma
forma planejada.
planejada.
Monica de Souza Massa

Maro / 2015 slide 20

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o cliente
Uma declarao geral dos objetivos suficiente para
se comear a escrever programas - podemos
preencher os detalhes mais tarde.
Realidade:
Realidade:
Uma
Uma definio
definio inicial
inicial ruim
ruim aa principal
principal causa
causa de
de
fracassos
fracassos dos
dos esforos
esforos de
de desenvolvimento
desenvolvimento de
de software.
software.
fundamental
fundamental uma
uma descrio
descrio formal
formal ee detalhada
detalhada do
do
domnio
domnio da
da informao,
informao, funo,
funo, desempenho,
desempenho, interfaces,
interfaces,
restries
restries de
de projeto
projeto ee critrios
critrios de
de validao.
validao.
Monica de Souza Massa

Maro / 2015 slide 21

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o cliente
Os requisitos de projeto modificam-se continuamente, mas as mudanas
podem ser facilmente acomodadas, porque o software flexvel.

Realidade:
Realidade:
Uma
Uma mudana,
mudana, quando
quando solicitada
solicitada tardiamente
tardiamente num
num
projeto,
projeto, pode
pode ser
ser maior
maior do
do que
que mais
mais do
do que
que uma
uma ordem
ordem
de
de magnitude
magnitude mais
mais dispendiosa
dispendiosa do
do que
que aa mesma
mesma
mudana
mudana solicitada
solicitada nas
nas fases
fases iniciais.
iniciais.
Monica de Souza Massa

Maro / 2015 slide 22

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o Engenheiro de Software
Assim que escrevermos o programa e o colocarmos
em funcionamento nosso trabalho estar feito.

Realidade:
Realidade:
Os
Os dados
dados da
da indstria
indstria indicam
indicam que
que entre
entre 60
60 ee 80%
80% de
de
todo
todo esforo
esforo gasto
gasto num
num programa
programa sero
sero despendidos
despendidos
depois
depois que
que ele
ele for
for entregue
entregue pela
pela primeira
primeira vez
vez ao
ao
cliente.
cliente.
Monica de Souza Massa

Maro / 2015 slide 23

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o Engenheiro de Software
Enquanto no tiver o programa "funcionando", eu no
terei realmente nenhuma maneira de avaliar sua
qualidade.
Realidade:
Realidade:
Uma
Uma das
das melhores
melhores mecanismos
mecanismos de
de garantia
garantia de
de
qualidade
qualidade de
de um
um software
software pode
pode ser
ser aplicado
aplicado desde
desde aa
sua
sua fase
fase inicial
inicial aa reviso
reviso tcnica.
tcnica.

Monica de Souza Massa

Maro / 2015 slide 24

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o Engenheiro de Software
O nico produto de um projeto de software bem sucedido entregue
ao cliente o conjunto de programas rodando corretamente.

Realidade:
Realidade:
Um
Um programa
programa funcionando
funcionando somente
somente uma
uma parte
parte de
de
uma
uma Configurao
Configurao de
de Software
Software que
que inclui
inclui todos
todos os
os itens
itens
de
de informao
informao produzidos
produzidos durante
durante aa construo
construo ee
manuteno
manuteno do
do software.
software.
Monica de Souza Massa

Maro / 2015 slide 25

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Mitos sobre o Engenheiro de Software
A engenharia de software nos far criar um volume
desnecessrio de documentao, que invariavelmente
implicar na demora de execuco e entrega do projeto.

Realidade:
Realidade:
ES
ES no
no tem
tem por
por objetivo
objetivo criar
criar documentos
documentos ee sim
sim criar
criar
qualidade,
qualidade, que
que implica
implica na
na reduo
reduo do
do retrabalho.
retrabalho.
Consequentemente
Consequentemente oo projeto
projeto ser
ser entregue
entregue mais
mais
rpido.
rpido.
Monica de Souza Massa

Maro / 2015 slide 26

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Estatsticas

(The Standish Group)

19% dos projetos de software so terminados com


sucesso.

52,2% dos projetos so concludos com atrasos ou


acima do oramento.
31,1% so cancelados.

Monica de Souza Massa

Maro / 2015 slide 27

Fundamentos da Engenharia de Software

CRISE DO
SOFTWARE
Refere-se a um conjunto de problemas
encontrados no desenvolvimento de software:
Aumento de complexidade do software.
Estimativas imprecisas de prazo e de custo.
Produtividade do pessoal envolvido no acompanha
demanda por produo (aumento backlog)
Software de baixa qualidade (erros e no
conformidades com requisitos que tiram a confiana
do cliente sobre o produto)
Dificuldade de comunicao cliente X
desenvolvedor.
Monica de Souza Massa

Maro / 2015 slide 28

Fundamentos da Engenharia de Software

CRISE DO
SOFTWARE
Refere-se a um conjunto de problemas
encontrados no desenvolvimento de software:
Cliente insatisfeito com produto final.
Problemas com manuteno do software
produzido.
Falta de tempo para coletar dados sobre o
software e seu processo de desenvolvimento, o que
implica em anlise fraca de requisitos.
Falta de planejamento e de acompanhamento
dos projetos.
No dada a devida importncia aos testes Maro
de / 2015 slide 29

Monica de Souza Massa

Fundamentos da Engenharia de Software

ENGENHARIA DE
SOFTWARE

CRISE OU AFLIO
CRNICA ???

Monica de Souza Massa

Maro / 2015 slide 30

Fundamentos da Engenharia de Software

ENGENHARIA DE
SOFTWARE

CRISE OU AFLIO
CRNICA ???
Crise ponto de inflexo ao longo de
determinada coisa; momento, estgio ou
evento decisivo ou crucial.
Aflio qualquer coisa que causa dor ou
desconforto.
Crnica de longa durao o u que volta

Monica de Souza Massa

Maro / 2015 slide 31

Fundamentos da Engenharia de Software

ENGENHARIA DE
SOFTWARE
The Silver Bullet
No Silver Bullet artigo escrito por F. Brooks em
1986

Monica de Souza Massa

Maro / 2015 slide 32

Fundamentos da Engenharia de Software

ENGENHARIA DE
SOFTWARE
The Silver Bullet
No Silver Bullet artigo escrito por F. Brooks em
1986

There is no single development, in either technology or in


management
The SE Silver
Bulletthat
Conundrum
artigo
escrito
por
technique,
by itself promisses
even
one order-ofin productivity, in reliability, in simplicity.
D. magnitude
Berry emimprovement
2008

balas de prata e balas de alumnio


(If this is true,) Bulding software
be hard. There is
semprewill
umalways
novo desafio
inherently no silver bullet.
temporalidade das balas de prata
Monica de Souza Massa

Maro / 2015 slide 33

Fundamentos da Engenharia de Software

ENGENHARIA DE
SOFTWARE
The Silver Bullet
No Silver Bullet artigo escrito por F. Brooks em
1986
The SE Silver Bullet Conundrum artigo escrito por
D. Berry em 2008
balas de prata e balas de alumnio
sempre um novo desafio
temporalidade das balas de prata
Monica de Souza Massa

Maro / 2015 slide 34

Fundamentos da Engenharia de Software

ENGENHARIA DE
SOFTWARE
Se no existe a famosa Silver Bullet como lidar
com os problemas do dia a dia na construo de SW
com qualidade?

Monica de Souza Massa

Maro / 2015 slide 35

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Abordagem de resoluo de problemas
Os Engenheiros de Software utilizam ferramentas,

tcnicas, procedimentos e paradigmas para melhorar


a qualidade dos produtos de software e aumentar a
sua produtividade. O objetivo utilizar abordagens
eficientes e produtivas para gerar solus efetivas
para os problemas.

Monica de Souza Massa

Maro / 2015 slide 36

Fundamentos da Engenharia de Software

ENGENHARIA DE SOFTWARE
Abordagem de resoluo de problemas

A ENGENHARIA DE SOFTWARE abrange um conjunto de


trs elementos fundamentais: Mtodos,

Ferramentas e Procedimentos

Oferece ao profissional base para


construo do software com maior
qualidade e produtividade e menor custo.
Monica de Souza Massa

Maro / 2015 slide 37

Fundamentos da Engenharia de Software

SWEBOK - Software Engineering Book of


Knowledge

O QUE ?

sntese do conhecimento sobre ES.


descreve conhecimento em ES geralmente
aceito pela comunidade profissional.
organizado pela IEEE institute of eletric
and eletronic engineers (obs: IEEE computer a
maior
com cerca de 100.000 membros).

das 39 sociedades da IEEE

patrocinado por empresas como a Rational,


Boeing, SAP, etc.

Monica de Souza Massa

Maro / 2015 slide 38

Fundamentos da Engenharia de Software

SWEBOK - Software Engineering Book of


Knowledge

OBJETIVOS
1. Promover uma viso consistente da engenharia de
software em todo o mundo (cerca de 500 revisores de 42
pases na verso 2004).
2. Definir as fronteiras de atuao da engenharia de
software e as reas de interseo com outras disciplinas
como: engenharia da computao, cincia da
computao, gesto de negcios, matemtica,
gerenciamento de projetos, gesto da qualidade,
ergonomia (acessibilidade e usabilidade) e engenharia
de sistemas.

Monica de Souza Massa

Maro / 2015 slide 39

Fundamentos da Engenharia de Software

SWEBOK - Software Engineering Book of


Knowledge

OBJETIVOS
3. Caracterizar o contedo da disciplina engenharia de
software, subdividindo-o hierarquicamente em reas de
conhecimento (AC).
4. Prover acesso por tpicos a base de conhecimento
da engenharia de software (material de referncia para
cada AC).
5. Fornecer um alicerce para desenvolvimento do
currculo.

www.swebok.
org

Monica de Souza Massa

Maro / 2015 slide 40

Fundamentos da Engenharia de Software

SWEBOK - Software Engineering Book of


Knowledge

REAS DE CONHECIMENTO
1. Software Requirements (Requisitos)
2. Software Design (Desenho/Projeto)
3. Software Construction (Construo/Implementao)
4. Software Testing (Testes)
5. Software Maintenance (Manuteno)
6. Software Configuration Management (Configurao)
7. Software Engineering Management (Gerenciamento)
8. Software Engineering Process (Processo)
9. Software Engineering Tools and Methods
(Ferramentas e Mtodos)
10. Software
Monica
de Souza Massa Quality ( Qualidade)
Maro / 2015 slide 41

Potrebbero piacerti anche