Você está na página 1de 28

Engenharia de Software

Prof. Me. Henrique Martins

Engenharia de Software

Engenharia de Computao

Aula 01

Prof. Me. Henrique Martins


Engenharia de Software
Prof. Me. Henrique Martins

Aula 01
PARADIGMAS DA ENGENHARIA DE SOFTWARE
O processo de Software e ciclos de vida de um Software
Modelos de processo de Software
Engenharia de Software
Prof. Me. Henrique Martins

O que (so) Software(s)


Software o produto que profissionais de software desenvolvem
e ao qual do suporte a longo prazo. Abrangem programas
executveis em um computador de qualquer porte ou arquitetura
(PRESSMAN, 2011, p. 29).
Engenharia de Software
Prof. Me. Henrique Martins

Por que o Software importante


O Software importante porque afeta os aspectos de nossas
vidas e torna-se incorporado no comrcio, na cultura e em
nossas atividades cotidianas (PRESSMAN, 2011, p. 29).
Engenharia de Software
Prof. Me. Henrique Martins

O que a Engenharia de Software


A Engenharia de software definida como uma disciplina cujo
objetivo a produo de software isento de falhas, entregue
dentro do prazo e oramentos previstos, e que atenda as
necessidades do cliente (SCHACH, 2009, p. 28).

Engenharia de Software o estabelecimento e o emprego de


slidos princpios de engenharia de modo a obter software de
maneira econmica, que seja confivel e funcione de forma
eficiente em mquinas reais (PRESSMAN, 2011, p. 39).
Engenharia de Software
Prof. Me. Henrique Martins

O que a Engenharia de Software


Engenharia de Software uma disciplina que rene
metodologias, mtodos e ferramentas a ser utilizadas desde a
percepo do problema at o momento em que o sistema
desenvolvido deixa de ser operacional, visando resolver
problemas inerentes ao processo de desenvolvimento e ao
produto de software (CARVALHO; CHIOSSI, 2001, p. 25).
Engenharia de Software
Prof. Me. Henrique Martins

Por que a Engenharia de Software


importante
A Engenharia de Software importante porque ela nos
capacita para o desenvolvimento de sistemas complexos dentro
do prazo e com alta qualidade (PRESSMAN, 2011, p. 29).
Engenharia de Software
Prof. Me. Henrique Martins

Engenharia de Software x Engenharia de


Sistemas
Engenharia de sistemas com base em computadores se ocupa
de todos os aspectos de desenvolvimento e da evoluo de
sistemas baseado em computadores, incluindo hardware,
software e engenharia do processo.

A engenharia de software parte desse processo. Engenheiros


de sistemas esto envolvidos na especificao do sistema, na
definio de sua arquitetura geral, integrao e desenvolvimento.
(INS, 2011)
Engenharia de Software
Prof. Me. Henrique Martins

Evoluo do Software

Fonte: Material adaptado do texto original de Douglas Jos Peixoto de Azevedo - UFRGS - Informtica -2006
Engenharia de Software
Prof. Me. Henrique Martins

Primeiros Anos - Caractersticas


Desenvolvimento do software era feito, virtualmente, sem
administrao at que os prazos comeassem a se esgotar e os
custos a subir abruptamente.
Orientao batch (em lote) para a maioria dos sistemas
Na maior parte, entretanto, o hardware dedicava-se execuo de
um nico programa que, por sua vez, dedicava-se a uma nica
aplicao especfica
Software, por outro lado, era projetado sob medida para cada
aplicao e tinha uma distribuio relativamente limitada
Para o ambiente de software personalizado em um projeto, era
processo implcito realizado no crebro de algum e a
documentao muitas vezes no existia.
Engenharia de Software
Prof. Me. Henrique Martins

Segunda Era - Caractersticas


Multiprogramao e os sistemas multiusurios introduziram
novos conceitos de interao homem-mquina
Tcnicas interativas
Avanos da armazenagem on-line levaram primeira gerao de
sistemas de gerenciamento de banco de dados
Aparecimento "software houses
Software desenvolvido para ampla distribuio num mercado
interdisciplinar
Programas para mainframes e minicomputadores
Surgimento da "manuteno de software
Engenharia de Software
Prof. Me. Henrique Martins

Terceira Era - Caractersticas


As redes globais, as comunicaes digitais de largura de banda
("bandawidth") elevada e a crescente demanda de acesso
"instantneo" a dados exigem muito dos desenvolvedores de
software.

Caracterizada pelo advento e o generalizado uso de


microprocessadores, computadores pessoais e poderosas
estaes de trabalho "workstations" de mesa.
Engenharia de Software
Prof. Me. Henrique Martins

Quarta Era - Caractersticas


As tecnologias orientadas a objetos, orientadas a documentos,
esto ocupando o lugar das abordagens mais convencionais para
o desenvolvimento de software em muitas reas de aplicao.

As tcnicas de "quarta gerao" para o desenvolvimento de


software j esto mudando a maneira segundo a qual alguns
segmentos da comunidade de software constroem programas de
computador.

Os sistemas especialistas e o software de inteligncia artificial


finalmente saram do laboratrio para a aplicao prtica em
problemas de amplo espectro do mundo real.
Engenharia de Software
Prof. Me. Henrique Martins

Caractersticas do Software
As caractersticas do software o tornam diferente das outras
coisas que os seres humanos constroem.

O Software um elemento de sistema lgico, e no fsico.


Portanto, tem caractersticas diferentes do hardware.

Software desenvolvido ou projetado por engenharia, no


manufaturado no sentido clssico (problemas de qualidade
software - facilmente corrigidos).
Engenharia de Software
Prof. Me. Henrique Martins

Um software se desgasta ou deteriora


Engenharia de Software
Prof. Me. Henrique Martins

Caractersticas do Software
Software no se desgasta, mas se deteriora!
Software no suscetvel aos males ambientais que fazem com que o hardware se
desgaste. Portanto, teoricamente, a curva da taxa de defeitos para software deveria
assumir a forma da curva idealizada mostrada na Figura abaixo. Defeitos ainda no
descobertos iro resultar em altas taxas logo no incio da vida de um programa.
Entretanto, esses sero corrigidos e a curva se achata conforme pode ser observado.

A curva idealizada uma simplificao


grosseira de modelos de defeitos reais
para software. Porm, a implicao
clara: software no se desgasta, mas se
deteriora.

Fonte: PRESSMAN, 2011, p. 33


Engenharia de Software
Prof. Me. Henrique Martins

A maioria dos softwares feita sob medida em vez de ser


montada a partir de componentes existentes.

Conceito de reusabilidade.
Engenharia de Software
Prof. Me. Henrique Martins

Aplicaes de Software

Qualquer situao em que um conjunto previamente especificado


de passos procedimentais (algoritmo) tiver sido definido (notveis
excees a essa regra so o software de sistema especialista e o software
de rede neural).
Engenharia de Software
Prof. Me. Henrique Martins

Software bsico - uma coleo de programas escritos para dar


apoio a outros programas. A rea do software bsico caracterizada
por: forte interao com o hardware de computador; intenso uso
por mltiplos usurios; compartilhamento de recursos e
sofisticada administrao do processo; estruturas de dados
complexas e mltiplas interfaces externas.
Engenharia de Software
Prof. Me. Henrique Martins

Software de tempo real - monitora,


analisa e controla eventos do mundo real.
Entre os elementos do software de tempo
real incluem-se: um componente de
coleta de dados que obtm as
informaes provenientes de um
ambiente externo, um componente de
anlise que transforma as informaes
conforme a aplicao exige; um
componente de controle / sada que
responde ao ambiente externo e um
componente de monitorao que
coordena todos os demais componentes
de forma a resposta em tempo real.
Engenharia de Software
Prof. Me. Henrique Martins

Software comercial - a maior rea particular de software. As


aplicaes dessa rea reestruturam os dados de uma forma que
facilita as operaes comerciais e as tomadas de decises
administrativas.
Engenharia de Software
Prof. Me. Henrique Martins

Software cientfico e de engenharia - tem sido caracterizado por


algoritmos de processamento de nmeros. As aplicaes variam da
astronomia vulcanologia, da anlise de fadiga mecnica de
automveis, dinmica orbital de naves espaciais recuperveis e da
biologia molecular manufatura automatizada.
Engenharia de Software
Prof. Me. Henrique Martins

Software embutido - usado para controlar produtos e sistemas


para os mercados industriais e de consumo.
O software embutido ("embedded software") reside na memria s de
leitura "read only" e pode executar funes limitadas e particulares
(por exemplo, controle de teclado para fornos de micro-ondas) ou
oferecer recursos funcionais de controle significativos (por
exemplo, funes digitais em automveis, tais como controle,
mostradores no painel, sistemas de freio, etc.)
Engenharia de Software
Prof. Me. Henrique Martins

Software de computador pessoal - so os softwares para


computadores pessoais que entrou em efervescncia na ltima
dcada, tais como processamento de textos, planilhas eletrnicas,
computao grfica, diverses, gerenciamento de dados, aplicaes
financeiras pessoais e comerciais, redes externas ou acesso a banco
de dados, so apenas algumas das centenas de aplicaes.
Engenharia de Software
Prof. Me. Henrique Martins

Software de inteligncia artificial - faz uso de algoritmos no


numricos para resolver problemas complexos que no sejam
favorveis computao ou anlise direta.
Atualmente a rea de "Artificial Inteligency - AI" mais ativa a dos
"sistemas especialistas baseados em conhecimentos", porm outras
reas de aplicao para o software de AI so o reconhecimento de
padres (voz e imagem), jogos e demonstrao de teoremas.
Uma rede neural simula a estrutura dos processos cerebrais (a
funo do neurnio biolgico) e pode levar a uma nova classe de
software que consegue reconhecer padres complexos e aprender
com a "experincia" passada.
Engenharia de Software
Prof. Me. Henrique Martins

O contexto em que o software (PRESSMAN, 1995) foi


desenvolvido est estreitamente ligado a quase cinco dcadas de
evoluo dos sistemas computadorizados.

O melhor desempenho de hardware, o menor tamanho e o custo


mais baixo, precipitaram o aparecimento de sistemas baseados em
computadores mais sofisticados.

Mudamo-nos dos processadores vlvula para os dispositivos


microeletrnicos que so capazes de processar 200 milhes de
instrues por segundo.
Engenharia de Software
Prof. Me. Henrique Martins

Outras categorias:
software para rede de computadores
software de controle de trfego areo
software rob", que so os sistemas desenvolvidos para navegar na rede
mundial de computadores, a Internet, onde a sua principal atividade sair
vasculhando os computadores de todo o mundo, procurando trabalhos
desenvolvidos por pesquisadores ou profissionais para depois poder
referenci-los em uma busca qualquer.

Por exemplo, o site da "Alta Vista Digital" ou "Yahoo", que tm vrios


"robosoft" que saem pela rede "Internet" buscando assuntos para depois poder fazer
referncia em suas pesquisas.
Engenharia de Software
Prof. Me. Henrique Martins

Referncias
BOAVENTURA, I. A. G. Introduo a Engenharia de Software, 2011.
Disponvel em:
<http://www.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/aula01.pdf>. Acesso
em: 27 jul. 2011.

LEITE, J. C. Engenharia de Software, 2011. Disponvel em


<http://www.dimap.ufrn.br/~jair/ES/slides/EngenhariaDeSoftware.pdf>.
Acesso em: 27 jul. 2011.

PRESSMAN, R. S. Engenharia de Software. So Paulo: Makron, 1995.

PRESSMAN, R. S. Software Engineering: a practiotioners approach. New


York: Makron, 1997.

SOMERVILLE, I. Software engineering. 4. ed. Addison-Wesley, 1992.

Você também pode gostar