Você está na página 1de 24

Introduo

Engenharia de Software
"Antes de imprimir pense em sua responsabilidade
e compromisso com o MEIO AMBIENTE."
Givanaldo Rocha de Souza
givanaldo.rocha@ifrn.edu.br
http://docente.ifrn.edu.br/givanaldorocha

Engenharia de Software
Material original gentilmente cedido pelo professor Fbio Procpio

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Segundo Pressman (2006), um software um
conjunto composto por instrues de
computador, estruturas de dados e
documentos;

Produtos de software podem ser:
Genricos desenvolvidos para serem vendidos para uma
grande variedade de clientes, por exemplo, softwares para
PC, tais como Excel e Word.
Personalizados desenvolvidos para um nico cliente de
acordo com as suas especificaes.

Segundo o IEEE (1992),
Engenharia de software a aplicao de uma abordagem
sistemtica, disciplinada e quantificvel, para o
desenvolvimento, operao e manuteno do software; isto ,
a aplicao de engenharia ao software.;
Definies
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Definies

Para Bauer (1969) apud Pressman (2006), a Engenharia de
Software a criao e a utilizao de slidos princpios de
engenharia a fim de obter softwares econmicos que sejam
confiveis e que trabalhem eficientemente em mquinas reais;




A Engenharia de Software almeja inserir as mesmas
sistemticas existentes em outras reas da engenharia:
custos aceitveis;
gerenciamento do processo de desenvolvimento;
garantia do trabalho em equipe e;
desenvolvimento de softwares com qualidade.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Definies
Engenheiros de software devem dependendo do problema a
ser resolvido, das restries de desenvolvimento e dos recursos
disponveis adotar uma abordagem sistemtica e organizada
para seu trabalho, alm de usar ferramentas e tcnicas
apropriadas.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Princpios
Alguns princpios devem ser trabalhados na Engenharia de
Software como forma de manter o bom funcionamento do
produto final:

evitar dependncia de determinadas pessoas ou
processos;
abstrair aspectos importantes;
subdividir problemas complexos;
reutilizar resultados (cdigo) e;
flexibilizao e modularizao para facilitar a manuteno.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Fundamentos
A Engenharia de Software multidisciplinar e podemos dizer
que une as seguintes reas:

Cincias da Computao: abrange arquitetura de
computadores, lgica de programao, estrutura de dados
algoritmos, etc.
Administrao: o engenheiro de software atua como
gestor de um projeto, administrando prazos, equipe,
custos, resultados etc.
Comunicao: habilidade para saber se expressar com
clientes ou usurios;
Tcnicas de soluo de problemas: o engenheiro de
software deve ser um solucionador de problemas, um
gerador de solues integradas e inteligentes.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Surgimento da Eng. de Software
Dcada de 50
surgiram os primeiros softwares;
pesquisas eram voltadas para o hardware;
hardware disponvel apenas nos centros de pesquisa;
software desenvolvido sem utilizar tcnicas de engenharia.

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Surgimento da Eng. de Software
Dcada de 60
surgiram os microprocessadores e o hardware deixou de
representar um problema;
software tornou-se o foco dos pesquisadores;
organizaes comearam a desenvolver grandes sistemas.

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Surgimento da Eng. de Software
A falta de metodologia
as equipes de trabalho no tinham um modelo de como
desenvolver;
no havia documentao adequada do que estava sendo
executado;
E agora: como dar manuteno em um sistema que no
tem projeto?

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Desafios encontrados
As economias de todas as naes
desenvolvidas so dependentes de software.

Cada vez mais sistemas so controlados por
software.

Os dispndios com software representam
uma frao significativa do PIB em todos os
pases desenvolvidos.



Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Desafios encontrados

Os custos dos produtos eram altos;

Os recursos destinados ao projeto,
normalmente, eram insuficientes;

As solues propostas no conseguiam
agradar aos clientes.




DESAFIOS da Engenharia de Software:
Reduzir custos;
Melhorar a qualidade do software e;
Atender s expectativas do cliente.

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Problemas
Os custos de software dominam os custos de sistemas
computacionais.

Em um PC, os custos de software so frequentemente maiores
que o custo do hardware.

Manter um software custa mais que desenvolv-lo.

A engenharia de software dedica-se ao desenvolvimento de
software com custos adequados.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Problemas
Uma das principais queixas dos clientes
que os prazos e os custos no so
respeitados;

Outro problema bastante comum, a
ineficincia durante a etapa de definio
de requisitos que no atendem s necessidades
dos clientes;

Os gerentes e os coordenadores de projetos so, comumente,
despreparados para controlar o desenvolvimento adequado de
um software.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Problemas
Aproximadamente 60% dos custos so custos de
desenvolvimento e 40% so custos de testes.
Para software sob encomenda, os custos de evoluo
normalmente excedem de desenvolvimento.

Os custos variam dependendo do tipo de sistema que est
sendo desenvolvido e dos requisitos de atributos de sistema,
tais como desempenho e confiabilidade.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Camadas da Eng. de Software

Foco na qualidade

Processo

Mtodos
Ferramentas
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Camadas da Eng. de Software
Processo (mtodos + ferramentas)
une os mtodos s ferramentas;
define a sequncia dos mtodos que sero aplicados e;
define as ferramentas que sero disponibilizadas.


Mtodos (como fazer)
h diferentes mtodos para as diferentes etapas do
desenvolvimento;
existem mtodos para anlise de requisitos, projeto,
codificao, testes e manuteno.


Ferramentas (apoio automatizado)
CASE (Computer Aided Software Engineering);
anlise estruturada, anlise essencial ou orientada a
objetos;
ferramentas de banco de dados;
linguagens de programao.

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Estrutura de um Processo (1/4)
Estrutura de um processo aplicvel maioria dos projetos de
software, sejam eles de pequena, mdia ou alta complexidade:
1. Comunicao
Contempla alta comunicao e
colaborao com o cliente/usurio
e abrange o levantamento de
requisitos.




2. Planejamento
Descreve as tarefas tcnicas, os
riscos provveis, os recursos
necessrios, os produtos que
sero produzidos e um
cronograma.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Estrutura de um Processo (2/4)
Estrutura de um processo aplicvel maioria dos projetos de
software, sejam eles de pequena, mdia ou alta complexidade:

3. Modelagem
Constri modelos que permitem ao desenvolvedor e ao
cliente entender melhor os requisitos do software e o
software que atender esses requisitos.

4. Construo
Contempla a criao dos cdigos e a execuo de testes.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Estrutura de um Processo (3/4)
Estrutura de um processo aplicvel maioria dos projetos de
software, sejam eles de pequena, mdia ou alta complexidade:


5. Implantao
Avaliao e feedback do cliente quanto ao software
desenvolvido

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Estrutura de um Processo (4/4)
Um Processo de Software o conjunto de atividades cuja
meta o desenvolvimento ou evoluo de um software.

As atividades genricas em todos os processos de software
so:
Especificao: o que o sistema deve fazer e suas
restries de desenvolvimento.
Desenvolvimento: produo do sistema de software.
Validao: verificao de que o software o que o
cliente deseja.
Evoluo: mudana do software em resposta s
demandas de mudana.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Tipos de software
Com o aumento da complexidade dos softwares, cada vez mais,
torna-se difcil classific-lo. Abaixo, seguem reas potenciais:

software bsico;
software de tempo real;
software comercial;
software cientfico e de engenharia;
software embutido;
software de computador pessoal;
software linguagens de 4 gerao;
software educativo;
software de Inteligncia Artificial (IA);
software de gesto empresarial;
software de informaes gerenciais;
software de apoio deciso.

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Atributos de um bom software
Facilidade de manuteno
O software deve evoluir para atender s necessidades de
mudana.

Confiana
O software deve ser confivel.

Eficincia
O software no deve desperdiar os recursos do sistema.

Usabilidade
O software deve ser aceito pelos usurios para o qual foi
projetado.
Isso significa que ele deve ser compreensvel, usvel e
compatvel com outros sistemas.
Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Desafios-chave enfrentados
Heterogeneidade, entrega e confiana.
Heterogeneidade
Tcnicas de desenvolvimento para construo de
software que podem lidar com plataformas
heterogneas e ambientes de execuo.

Entrega
Tcnicas de desenvolvimento para conduzir a entrega
mais rpida de software.

Confiana
Tcnicas de desenvolvimento que mostram que o
software pode ter a confiana dos seus usurios.

Introduo Engenharia de Software
Introd. Eng. de Software
Definies
Princpios
Fundamentos
Surgimento da ES
Desafios encontrados
Problemas
Camadas da ES
Estrutura do Processo
Tipos de software
Referncias














Referncias
PRESSMAN, Roger S. Engenharia de Software. Mc Graw Hill, 6 ed,
Porto Alegre, 2010.

SOMMERVILLE, Ian. Engenharia de Software. Pearson, 9 ed, So
Paulo, 2011.

HAHNE, Maria Nazar Munari Angeloni. Material Didtico (Engenharia
de Software), Equipe Univali, 2007.