Вы находитесь на странице: 1из 8

ENGENHARIA DE SOFTWARE

Contedo n 1
Introduo a Engenharia de Software

Engenharia de Software
Motivao
Quando um Software bem sucedido?
Possui as necessidades das pessoas que o usam
(who use it)
Executa perfeitamente em um longo perodo de
tempo (long period of time)
Fcil de modificar e utilizar
PODE E MUDA COISAS PARA MELHOR

Quando um Software falha?


Usurios esto insatisfeitos
Erros ocorrem
Difcil de modificar e utilizar
COISAS RUIM PODEM E ACONTECEM

Engenharia de Software

Necessrio DISCIPLINA quando o


software projetado e desenvolvido

ENGENHARIA
DE SOFTWARE
Engenharia de Software

O que voc entende


por Engenharia de
Software?

Engenharia de Software

O
O desenvolvimento
desenvolvimento de
de software
software uma
uma atividade
atividade
de
de Engenharia?
Engenharia?
Pode-se
Pode-se falar
falar em
em uma
uma Engenharia
Engenharia de
de Software?
Software?

Engenharia de Software

Engenharia !!!
uso comum do termo implica em:
criao de solues economicamente efetivas
para problemas prticos
aplicando conhecimento cientfico
para construir objetos
a servio do homem

baseia-se na codificao do conhecimento


cientfico sobre um determinado domnio
tecnolgico
partilha solues anteriores em vez de basear
solues de problemas em capacidades
individuais
Engenharia de Software
Software !!!

Um
Um conjunto
conjunto de de programas,
programas, constitudo
constitudo por
por
blocos
blocos de
de cdigo
cdigo ee pela
pela documentao
documentao de de
apoio
apoio que
que produzida.
produzida.
Aquilo
Aquilo que
que pode
pode ser
ser executado
executado por
por um
um
equipamento
equipamento (hardware)
(hardware)
Um
Um produto
produto comercializado
comercializado que que consiste
consiste em
em
um
um sistema
sistema de
de rotinas
rotinas ee funes
funes

Engenharia de Software

Software
Itens de configurao

1-
1-PROGRAMAS
PROGRAMAS(Instrues
(Instruespara
para computador)
computador)
que
que quando
quando executadas
executadas produzem
produzem aa funo
funo ee oo
desempenho
desempenhodesejados.
desejados.
22--ESTRUTURAS
ESTRUTURASDE DEDADOS
DADOS
que
que possibilitam
possibilitam que
que os
os programas
programas manipulem
manipulem
adequadamente
adequadamenteaainformao.
informao.
33--DOCUMENTOS
DOCUMENTOS
que
que descrevem
descrevem aa operao
operao ee oo uso
uso dos
dos
programas.
programas.

Engenharia de Software
Importncia do Software
A quantidade de software nos produtos de consumo
dobra a cada 2 anos.
Software tanto um PRODUTO como um veculo para
desenvolver um produto.
Universo de aplicaes:
Transportes
Bancos
Telecomunicaes
Eletrodomsticos
Entretenimento
Sade
Segurana
Projetos militares
Etc...
Engenharia de Software
Aplicaes do software
Software de Sistema: coleo de programas escritos para
apoiar outros programas. Forte interao com o hardware
sistema operacional, compiladores, drivers, etc...
Software de Tempo Real: software que monitora, analisa e
controla eventos do mundo real
sistema de controle de trfego areo, relgio digital, ...
Software Business: sistemas de operaes comerciais e
tomadas de decises administrativas
folha de pagamentos, contas a pagar e a receber, ...
Software Cientfico e de Engenharia: caracterizado por
algoritmos de processamento numrico
astronomia, vulcanologia, anlise de fadiga da mecnica de
automveis, biologia molecular, projeto CAD, ...

Engenharia de Software
Aplicaes do software
Software Embutido: usado para controlar produtos e sistemas
para os mercados industriais e de consumo produtos
inteligentes
controle de microondas, de combustvel, sistemas de freio
Software de Computador Pessoal: envolve processamento de
textos, planilhas eletrnicas, computao grfica, diverses,
etc.
Software Baseado na Web: pginas Web (websites)
recuperados por um browser (tecnologia web ASP, HTML, CGI,
JAVA, XML, etc...)
Software de Inteligncia Artificial: faz uso de algoritmos no
numricos para resolver problemas que no sejam favorveis
computao ou anlise direta
sistemas especialistas, reconhecimento de padres, redes
neurais, jogos, ...

Engenharia de Software
Caractersticas do software
Tarefa complexa;
O software um produto abstrato (invisibilidade);
Problema fracamente definido (Qual o problema?);
Necessita evoluo contnua;
Requisitos mudam continuamente;
O software desenvolvido, no produzido ou manufaturado
(sucesso medido pela qualidade e no quantidade;
Difcil interao entre o engenheiro e os clientes
(patrocinadores e usurios) pela compreenso das notaes
empregadas;
A maioria feita sob medida em vez de ser montada a partir
de catlogos de componentes existentes (reusabilidade de
software)
Baixa produtividade das equipes;
Muitos riscos.
Engenharia de Software
Curva de falhas do software
mudanas

curva real
ndice de
falhas

curva idealizada

tempo
Quando um componente de hardware se desgasta substitudo
por uma pea de reposio.
No existe pea de reposio para software. Toda falha indica
um erro no projeto ou no processo de traduo para o cdigo
executvel.
Manuteno do software mais complexa do que a do hardware.

Engenharia de Software
Erros
Durante a guerra do Golfo, uma falha no software dos
msseis Patriot que os Estados Unidos enviaram para a
zona da guerra no foi antecipadamente detectada, e a
correo s chegou um dia aps um ataque iraquiano com
msseis ter causado a morte a cerca de trinta soldados
americanos [Mellor94].
Devido a um erro no software de controle de um
equipamento mdico, pelo menos dois doentes morreram
entre 1985 e 1987 em conseqncia de terem recebido
doses exageradas de radiao [Leveson93].
Problemas diversos no software de controle da distribuio
e encaminhamento de bagagem do aeroporto de Denver,
nos Estados Unidos, provocaram custos superiores a 1
milho USD por dia [Gibbs94].
ENGENHARIA DE SOFTWARE !!!

Introduzir no desenvolvimento de software, as


sistemticas j utilizadas em outras reas da
engenharia.
O termo engenharia est associado com a
construo de software.
Seus objetivos:
Levar os custos e prazos a nveis aceitveis
Gerenciar o processo de desenvolvimento
Permitir o trabalho em grupo
Aplicar o conceito de qualidade desde o
incio do projeto

Engenharia de Software
Atualmente o termo ENGENHARIA DE SOFTWARE
mais comumente usado para referir-se a:

modelos de ciclo de vida;


mtodos e ferramentas;
tcnicas para estimativa de custos;
documentao;
tcnicas para controle da qualidade;

O
O termo
termo GERENCIAMENTO
GERENCIAMENTO DE DE SOFTWARE
SOFTWARE
muito
muito mais
mais apropriado
apropriado para
para esta
esta situao
situao

Engenharia de Software

ENTRETANTO o desenvolvimento de
software um problema de Engenharia

BUSCA

a criao de solues econmicas para


problemas prticos;
construir objetos a servio da sociedade.
Engenharia de Software
Conceitos de Engenharia de Software

Procedimento sistemtico que usado para atender a


um conjunto de metas para anlise, projeto,
implementao e manuteno de software.
O software resultante deve ser eficiente, confivel,
usvel, modificvel, portvel, testvel, reutilizvel, fcil
de manter, interopervel e correto. Estes termos
referem-se tanto aos sistemas como aos seus
componentes
GES

Engenharia de Software
Conceitos Terminologia
Princpios: fatos aceitos que so utilizados como
premissa e justificativa para aes. Ex: abstrao,
modularidade, rigor, formalidade etc.
Tcnicas e Mtodos: regras para a execuo de
uma atividade especfica. Ex: tcnicas para testar,
linguagens de programao, diagramas.
Metodologia: seleo de tcnicas e mtodos que
so aplicados de forma sistemtica para atingir
objetivos definidos.
Ferramentas: oferecem suporte computacional
para a implantao de metodologias (pode ser
parcial).

Engenharia de Software
Relacionamento entre conceitos

Ferramentas

Metodologia

Tcnicas e Mtodos

Princpios
Engenharia de Software
Conceitos Modularidade
Sistema modular: conjunto de mdulos?
Permite o princpio da separao em 2 fases:
detalhes individuais e viso geral.
Abordagens bottom-up e top-down.
3 metas:
Capacidade de decompor um sistema complexo.
Compor um sistema a partir dos mdulos.
Entendimento do sistema em partes.
Acoplamento e coeso dos mdulos.
Desejvel: alta coeso e baixo acoplamento

Engenharia de Software

Conceitos Abstrao
Identificar aspectos importantes de um fenmeno e
ignorar detalhes.
Caso especial da separao de problemas.
Tcnica poderosa para lidar com a complexidade.
Criar modelos: prottipo, equaes, etc.
Relacionamento entre programao e abstrao.
Princpios aplicados no produto e no processo:
descrio de procedimentos e funes
estimativa de custos: fatores chave e experincias
passadas

Engenharia de Software
Atividades da Engenharia de Software
Anlise do problema.
Determinao dos requisitos.
Projeto do software.
Codificao.
Testes e integrao do cdigo.
Instalao e entrega do software.
Documentao.
Manuteno.
Controle de qualidade.
Treinamento.
Estimativas de recursos.
Gerenciamento de projeto.
Vamos ordenar a relao acima

Вам также может понравиться