Alexandre de Andrade Barbosa
Introdu¸c˜ao `a Engenharia de Software
Objetivos
Objetivos
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo) Software e Engenharia de Software
Introdu¸c˜ao `a Engenharia de Software
Como uma casa ´e constru´ıda?
Como uma casa ´e constru´ıda?
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo) Software e Engenharia de Software
Introdu¸c˜ao `a Engenharia de Software
Software est´a presente em praticamente todas as atividades
Bancos
Institui¸c˜
oes de ensino
Aeroportos
Sistemas m´edicos
...
Termo utilizado nos anos 60/70, quando ES praticamente n˜ao
existia
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo) Software e Engenharia de Software
A crise de software
O desenvolvimento informal de software n˜ao era adequado
Os problemas:
estouro do or¸camento e prazo;
baixa qualidade dos produtos;
inadequa¸c˜ao aos requisitos;
c´
odigo dif´ıcil de manter;
dificuldades de gerenciamento.
Alguns profissionais defendem...
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O cen´ario atual (Breve resumo)
O que vocˆe acha?
sede em Boston
Possui uma equipe de profissionais com vasta experiˆencia em
avalia¸c˜ao de riscos, custos, retorno e valor sobre investimentos
em TI
Coleta informa¸c˜oes sobre projeto de TI
Auxiliam na obten¸c˜ao de sucesso estudando e exibindo casos de
fracasso
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O cen´ario atual (Breve resumo)
Alguns dos relat´orios do TSG relacionados aos estudos sobre
projetos de TI:
Constru¸c˜ao de pontes X Constru¸c˜ao de software
Pontes:
normalmente finalizadas dentro do tempo e custo previsto;
em geral n˜ao apresentam problemas (n˜ao caem);
Software:
normalmente finalizados acima do tempo e custo previsto
em geral apresentam problemas;
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O cen´ario atual (Breve resumo)
Pontes:
3.000 anos de experiˆencia;
projeto ´e extremamente detalhado;
projeto n˜ao sofre modifica¸c˜
oes (ele fica congelado).
Software:
´area bastante recente;
projeto detalhado...
Sucesso
: projeto conclu´ıdo no prazo, dentro do or¸camento e com
todas as funcionalidades
Desafiador
: projeto operacional, mas conclu´ıdo fora do prazo,
fora do or¸camento, e/ou com poucas funcionalidades
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O cen´ario atual (Breve resumo)
Sucesso
: o conjunto de restri¸c˜oes n˜ao ´e muito exigente?
Desafiador
: se o produto est´a em uso e agrega valor, o projeto
n˜ao pode ser considerado como um caso de sucesso?
Uma m´edia de 189% de custos acima do esperado
Uma m´edia de 222% de tempo acima do esperado
Em m´edia 61% das funcionalidades foram entregues.
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e software?
Software ´e...
1
conjunto de instru¸c˜
oes que quando executadas fornecem a fun¸c˜ao
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e software?
Software ´e...
1
conjunto de instru¸c˜
oes que quando executadas fornecem a fun¸c˜ao
e o desempenho desejados
2
estruturas de dados que permitem aos programas manipular
Software ´e...
1
conjunto de instru¸c˜
oes que quando executadas fornecem a fun¸c˜ao
e o desempenho desejados
2
estruturas de dados que permitem aos programas manipular
adequadamente a informa¸c˜ao
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e software?
Produto gen´
erico
. S˜ao sistemas produzidos por uma empresa e
disponibilizados no mercado para qualquer cliente.
Produto sob encomenda
. S˜ao sistemas personalizados para um
determinado cliente, o qual contrata uma empresa de
´
E um produto
. Programas que permitem o uso do hardware.
Est´a presente nos celulares, nos computadores, nos carros, nos
avi˜oes, ...
´
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e software?
Software de sistema
. Cole¸c˜ao de programas que servem a outros
programas (ex. compiladores)
Software de tempo real
. Programas que possuem o tempo de
resposta como um fator cr´ıtico (ex. software para controle de
uma caldeira)
Software de neg´
ocios
. Programas que fornecem apoio para as
atividades de neg´ocios (ex. sistema de folha de pagamento)
Software cient´ıfico
. Programas que fornecem suporte para as
atividades cient´ıficas (ex. software para compara¸c˜ao de DNA)
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e Engenharia de Software?
Segundo uma pesquisa realizada nos EUA
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e Engenharia de Software?
Qual a melhor profiss˜ao?
Segundo uma pesquisa realizada nos EUA
1
Mathematician (Matem´atico)
2Actuary (Avaliador)
3
Statistician (Estat´ıstico)
4Biologist (Bi´
ologo)
5
Software Engineer (Engenheiro de Software)
◭
6
Computer Systems Analyst (Analista de Sistemas)
◭
7
Historian (Historiador)
8Sociologist (Soci´
ologo)
Engenharia de Software (ES) ´e uma disciplina de engenharia
relacionada a todos os aspectos de produ¸c˜ao de software
[Som2007]
Processo de software inclui
An´alise
Projeto
Codifica¸c˜ao
Verifica¸c˜ao e Valida¸c˜ao
Implanta¸c˜ao
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e Engenharia de Software?
An´alise
Busca identificar quais caracter´ısticas e funcionalidades s˜ao
desejadas pelo cliente
Projeto
Busca identificar como as caracter´ısticas e funcionalidades
desejadas ser˜ao implementadas
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e Engenharia de Software?
Codifica¸c˜ao
Consiste na implementa¸c˜ao das especifica¸c˜oes
Transforma¸c˜ao dos modelos em c´
odigo execut´avel
Verifica¸c˜ao
“Estamos construindo o produto corretamente?”
“As sa´ıdas fornecidas s˜ao as sa´ıdas corretas?”
Valida¸c˜ao
“Estamos construindo o produto correto?”
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e Engenharia de Software?
Implanta¸c˜ao
Planejamento e execu¸c˜ao das medidas necess´arias para o software
entrar em uso para o cliente
Evolu¸c˜ao
Ap´os entrar em uso o software dever´a sofrer modifica¸c˜
oes
Corre¸c˜ao de erros
Solicita¸c˜ao de mudan¸cas
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e Engenharia de Software?
Gerenciamento
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e modelo de processo de software?
Um modelos de processo de software representa a maneira como
as diferentes fases de um processo s˜ao executadas e interligadas
´
E uma representa¸c˜ao simplificada de um processo de software
Exemplos de modelos de processo de software:
Cascata ou sequencial linear;
Prototipa¸c˜ao
Um processo de software ´e um conjunto de atividades e
resultados associados que produz um produto de software
Exemplos de processo de software:
eXtreme Programming
SCRUM
RUP
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
Qual a diferen¸ca entre ES e CC?
Ciˆ
encia da Computa¸c˜
ao
. Teorias e m´etodos que comp˜
oem a base
de computadores e de sistemas de software.
Engenharia de Software
. Pr´atica relacionada a produ¸c˜ao de
software.
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
Qual ´e o objetivo da ES?
Software “t´a rodando” X Software de qualidade
Objetivo da ES ´e produzir software:
International Organization for Standardization
(ISO)
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e qualidade de software?
De forma resumida a ISO 9126 / NBR 13596 observa se o
produto de software possui as seguintes caracter´ısticas
Funcionalidade (satisfaz as necessidades?)
Confiabilidade (´e imune a falhas?)
Usabilidade (´e f´acil de usar?)
Eficiˆencia (´e r´apido e “enxuto”?)
Manutenibilidade (´e f´acil de modificar?)
Portabilidade (´e f´acil de usar em outro ambiente?)
Os custos associados a produ¸c˜ao de software dependem de
muitos fatores:
Tipo do sistema desenvolvido;
Quantidade e qualidade dos membros da equipe;
Ferramentas e Hardware dispon´ıvel
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
O que ´e software?
O que ´e/foi a crise de software?
O que ´e Engenharia de Software?
Qual o papel do engenheiro de software?
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software
Resumo
Software = algoritmo + estruturas de dados + documenta¸c˜
ao
A crise de software foi o termo utilizado para descrever os problemas relacionados ao
desenvolvimento informal de software
Engenharia de Software (ES) ´
e uma disciplina relacionada a todos os aspectos da
produ¸c˜
ao de software
O engenheiro de software deve utilizar metodologias, t´
ecnicas e ferramentas da ES
para produzir software de qualidade
Ian Sommerville
Engenharia de software.
Pearson, 8a. edi¸c˜ao, 2007.
Cap´ıtulo 1: Introdu¸c˜ao.
Roger S. Pressman
Engenharia de software.
Introdu¸c˜ao `a Engenharia de Software
A crise de software
O cen´ario atual (Breve resumo)
Software e Engenharia de Software