Sunteți pe pagina 1din 25

Engenharia de Software I

Prof. Josu Froner


Introduo
Objetivo: apresentar conceitos introdutrios
sobre Engenharia de Software, assim como
auxiliar a definio modularidade e
arquitetura, ciclo de vida do software,
reutilizao, medio, ferramentas e
ambientes integrados, trabalhar a distino
entre engenharia de software e cincia da
computao;
O que software?
Em geral, o conjunto de programas, e sua
respectiva documentao, que instruem
computadores a realizar funes desejadas.
Em termos simples, so conjuntos de
instrues para um computador (NASA).
Conjunto de programas, procedimentos,
dados e documentao associados a um
sistema de computador, e no somente ao
programa em s (PFLEEGER)
Compreendendo o software
Desenvolvido por engenharia e no
manufaturado;
No tem desgaste;
Construo do software exclusiva para o
problema em questo.
Desenvolvido atravs de cdigos
(linguagens);
Diferentes tipos de aplicaes.

Curva de falhas real para o software
Curva ideal
Curva real
mudana
tempo

n
d
i
c
e

d
e

f
a
l
h
a
s

Software no tempo
1-orientacao batch,
distribuio limitada,
software customizado

2 multiusurio, tempo
real, banco de dados,
produtos de software

3 sistemas distribudos,
Inteligncia embutida,
Hardware de baixo custo,
impacto de consumo

4 - sistemas de desk-top
poderosos, tecnologias
orientadas a objetos,
sistemas especialistas,
redes neurais artificiais,
computao paralela
1950
1960
1970

1980

1990

2000
50/60- sem metodologia,
programar arte
60 conceito de
estruturao: programao,
projeto e anlise estruturada
60/70 inicio do SGBDs
1976 Modelo Entidade
Relacionamento Peter Shen
80 Metodos: focados no
processo x focados nos
dados
81 Eng. Informao :
James Martin e Clive
Finkelstein
84 prevalencia da
funcionalidade sobre os
dados origina a anlise de
PF, OO
95 criao do conceito de
caso de uso Ivar Jacobson
96 criao UML
97 jacobson lana RUP
Mais info:
http://www.cesarkallas.net/arquivos/faculdade/engenharia_de_software/02-
Origens%20da%20Modelagem/Origens%20da%20Modelagem.pdf
Importncia
Software fator que diferencia;
Evoluo do hardware evoluo do software =
aproveitar as potencialidades;
PARA QU SOFTWARE?
automatizao de processos;
melhorar qualidade das informaes;
apoiar decises estratgicas;
mais credibilidade as informaes;
Crise do software
Aflio crnica (Prf. Daniel Teichroew, 1989)
No funcionamento adequado;
mtodos de desenvolvimento;
Processo de manuteno crescente com o aumento
de software no mercado;
Estimativas de prazos imprecisas;
Produtividade dos trabalhadores da rea no
acompanham a demanda;
Qualidade do software a desejar
Causas da aflio ou crise
Elemento de sistema lgico e nico ->
desafio intelectual probabilidade de falhas
um fato;
Manuteno envolve correo ou modificao
no projeto;
Falta de experincia em gerenciamento de
software;
Profissionais com pouco treinamento formal.
Mitos
Administrativos
Utilizao correta de manuais de padres;
CASE atualizadas mas sem utilizao;
Contratao de novos profissionais para compensar o
atraso;
Do cliente
Objetividade profissional dos desenvolvedores e gerencia
para com o anseio do cliente (detalhar, requisitos);
Do profissional
O trabalho nunca fica completo plenamente;
Avaliao continua do trabalho no s quando est pronto;
Entrega do software no o fim temos a documentao do
mesmo como base;
O que Engenharia de Software?
Definies formais
Segundo Bauer (1969): estabelecimento e
uso de princpios e mtodos
comprovadamente eficazes de engenharia a
fim de obter software:
Economicamente vivel;
Confivel;
Opervel em mquinas reais.
Engenharia de Software (IEEE)
Aplicao de abordagem sistemtica,
disciplinada e quantificada para o
desenvolvimento, operao e manuteno do
software. (IEEE, STD 610-1990) Alm disso,
compreende o estudo das abordagens em si.
Engenharia de Software
Disciplina tecnolgica e gerencial que se preocupa
com a produo sistemtica e a manuteno dos
produtos de software que so desenvolvidos e
modificados no tempo e seguindo estimativas de
custos.(Fairley, 1985)
Parte da engenharia de sistemas e de hardware,
abrangendo um conjunto de trs elementos
fundamentais mtodos, ferramentas e
procedimentos possibilitando o gerenciamento e
controle do processo de desenvolvimento de software
visando a alta qualidade de desenvolvimento.
(Pressman, 2006)
Engenharia de Software
(Webopaedia)
Disciplina no ramo da Cincia da Computao
que se preocupa com o desenvolvimento de
grandes aplicaes de software. Cobre no
somente os aspectos tcnicos do
desenvolvimento de sistemas de software,
mas tambm questes relativas a
gerenciamento, tais como a direo de
equipes de programao, cronograma e
oramento.
Em resumo (SEI):
Engenharia a aplicao sistemtica do
conhecimento cientfico para a construo de
solues efetivas em custos para problemas
prticos relativos humanidade.
Engenharia de Software o ramo da
engenharia que aplica conceitos da Cincia da
Computao e da Matemtica para alcanar
solues efetivas em custos para problemas
de software.
Por que Engenharia de Software?
Softwares que extraiam o potencial do hardware;
Ritmo de demanda de novos programas;
Projetos ruins e recursos inadequados interferem na
manuteno de programas;

objetivo: Sistematizar o processo de
criao e manuteno de software
Problemtica levantada
Tempo longo para concluso de programas;
Custos elevados;
Encontrar erros antes da entrega final do
software para o cliente;
Difcil medio do progresso de
desenvolvimento;
Pilares da ES
(4Ps+1F) - Jacobson
Pessoas
Projeto
Produto
Processo
Ferramentas
Pessoas
Arquitetos, desenvolvedores,
engenheiros de teste, gerentes,
usurios, clientes, patrocinadores,
sponsors e todos os primariamente
envolvidos em um projeto de software.
Projeto
O elemento organizacional atravs do
qual o desenvolvimento de software
gerenciado. O seu resultado o
produto.
Produto
Artefatos que so criados durante o
ciclo de vida do projeto, tais quais:
modelos, cdigo fonte, executveis, e
documentao. o software per se.
Processo
Definio do conjunto completo de
atividades necessrias para a
transformao dos requisitos dos
usurios em um produto. Um processo
um modelo para a criao de
projetos.
Ferramentas
Software que utilizado para a
automao das atividades definidas no
processo. Exemplo: ferramentas de
engenharia de software auxiliada pelo
computador (CASE) ou de
gerenciamento de projeto.
Observao:
O processo que guia o desenvolvimento
deve ser orientado s pessoas, ou seja,
agradvel para todas as pessoas que
o utilizam
Referncias
PRESSMAN, ROGER.S.ENGENHARIA DE SOFTWARE. SO PAULO: MAKRON,
2006
JURAN, J. GRYNA, FRANK. CONTROLE DA QUALIDADE: COMPONENTES
BSICOS DA FUNO QUALIDADE - V.2 - SO PAULO : MAKRON, 1991.
PFLEEGER, SHARI L. ENGENHARIA DE SOFTWARE: TEIORIA E PRTICA.
2.ED.SO PAULO: PRENTICE HALL, 2004.
FAIRLEY, RICHARD. SOFTWARE ENGINEERING CONCEPTS. SINGAPORE:
MCGRAW-HILL, 1985.
http://www.er.les.inf.puc-rio.br/
http://www.sei.cmu.edu/ e
http://www.sei.cmu.edu/pub/documents/92.reports/pdf/tr34.92.pdf
http://engenhariadesoftware.blogspot.com/2007/02/o-que-software.html

S-ar putea să vă placă și