Você está na página 1de 36

Departamento de Engenharia Rural

Centro de Cincias Agrrias

Engenharia de Software

Prof. Bruno Vilela Oliveira


bruno@cca.ufes.br
http://www.brunovilela.webnode.com.br
Aula 00

Apresentao da disciplina
Ementa
Avaliao
Datas importantes
Referncias
Definio: Engenharia de Software

Fritz Bauer - 1969

O estabelecimento e uso de slidos princpios


de engenharia para que se possa obter
economicamente um software que seja confivel e
que funcione eficientemente em mquinas reais
Definio: Engenharia de Software

IEEE Std 610.12 (1990)

A aplicao de uma abordagem sistemtica,


disciplinada e quantificvel para o desenvolvimento,
operao e manuteno do software; isto , a
aplicao da engenharia ao software.

Qualquer abordagem de engenharia deve se apoiar


num compromisso com a qualidade.
Engenharia de Software

A economia de todas as naes desenvolvidas se


tornou dependente de software.
Mais e mais sistemas so controlados por
softwares.
Engenharia de software relaciona-se teorias,
mtodos e ferramentas para o desenvolvimento
profissional de software.
Despesas com software representam uma
frao significativa do PIB em todos os pases
desenvolvidos.
Engenharia de Software

Custos com software geralmente so os mais altos


em sistemas de computao. O custo de um
software em um PC geralmente maior que o custo
do hardware.
Gasta-se mais para manter o software que para
desenvolv-lo. Nos sistemas de longa vida til, os
custos de manuteno podem ser vrias vezes
maiores que os custos de seu desenvolvimento.
A engenharia de software leva em considerao o
desenvolvimento de software com relao custo
benefcio adequada.
Objetivos: Engenharia de Software

Qualidade de software.
Produtividade no desenvolvimento, operao
e manuteno de software.
Qualidade versus Produtividade.
Permitir que profissionais tenham controle
sobre o desenvolvimento de software dentro
de custos, prazos e nveis de qualidade
desejados.
Engenharia de Software no CCA-UFES
Apresentao da disciplina

Programao de computadores
Onde est a computao?
Existem diversas possibilidades para se aplicar a computao.
Vrios negcios bem sucedidos esto relacionados empresas da
tecnologia:
Programas feitos na Universidade

Necessidades muito bem definidas


1-10 KLOCS
Prazos razoveis
Equipes pequenas
Mo de obra gratuita
No entra em produo
No h um cliente real
O software no evolui - manuteno
Software mundo real

Tipos de software
Software de Sistema:
Coleo de programas escritos para servir outros
programas.
Caractersticas:
Interao intensa com hardware do computador
Uso intenso por mltiplos usurios
Compartilhamento de Recursos
Ex: Compiladores, editores e componentes de sistemas
operacionais
Software mundo real

Tipos de software
Software Comercial:
Processamento de Informaes comercial
Aplicaes dessa rea reestruturam os dados existentes
de modo a facilitar operaes comerciais ou tomada de
deciso de gesto de negcios
Ex: Folha de pagamentos, contas a pagar/receber ,
controle estoque e outros.
Software mundo real

Tipos de software
Software Cientfico e de engenharia:
Esse tipo de software caracterizado por processar
nmeros
Simulao de sistemas

Ex: Astronomia, biologia molecular


Software mundo real

Tipos de software
Software para Inteligncia Artificial
Faz uso de algoritmos no numricos para resolver
problemas complexos que no so passiveis de
computao ou analise direta.
Ex: Sistemas Especialistas, tambm chamados sistemas
baseados em conhecimento, de reconhecimento de
padres (de imagem e de voz)
Software mundo real

Tipos de software
Outros
E-commerce (B2B, B2C, B2M, e outros)
Aplicaes mveis (iPhone, iPad, Tablets em geral,
Android)
Jogos e entretenimento

Robtica

Sistemas de Hipermdia (Exemplo: mdias ricas)

Redes sociais
Software mundo real

Fatores que devem ser considerar no


desenvolvimento/evoluo de software do
mundo real :
Escopo
Custo
Prazo
Qualidade
Dependendo do tamanho do software, tais
fatores se tornam mais difceis de garantir.
Software mundo real

Eclipse Indigo - 46MLoc

Facebook - 9.2MLoc

Debian 5.0 324MLoc

Windows XP: 40 MLOCs


1800 desenvolvedores
2200 testadores
O que representa

Assuma que:
uma folha A4 tem em torno de 50
linhas.
uma pilha de 1000 folhas A4 tem em
torno de 10 centmetros de altura
Logo,
1.000.000 de LOCs, caso impresso =
uma pilha de 2 metros de altura!
Caso todo o cdigo do Debian 5.0
fosse impresso, teria a altura de um Torre Burj Dubai
(~800m - 160
prdio de ~216 andares = ~1100 andares)
metros!!! Maior prdio
do mundo
(04/01/2010)
Engenharia de Software
The Curious Case of the CHAOS Report 2009
1994 1996 1998 2000 2002 2004 2006 2009
Successful 16% 27% 26% 28% 34% 29% 35% 32%
1
Challenged 53% 33% 46% 49% 51% 53% 46% 44%
2
Failed 31% 40% 28% 23% 15% 18% 19% 24%

1 - (late, over budget and/or with less than the required features and functions)
2 - (cancelled prior to completion or delivered and never used)

http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html
Software = arte?

Parte arte, parte engenharia...


Se o cantor/ator/pintor errar, a audincia fica
chateada
Se o engenheiro civil errar o prdio pode cair
Se o mdico errar o paciente pode morrer
Caso o desenvolvedor/equipe de software
errar(em), o que pode acontecer?
Tragdias envolvendo software
1 Caso real
Ariane 5 - Foguete lanador
de satlites
Problema
O foguete se autodestruiu 40 segundos aps
o lanamento
Principais causas
Software reutilizado sem ser adaptado para o
novo hardware.
Ausncia de testes em solo deste software;
Defeito apresentado em voo.

Consequncias
Prejuzo de mais de US$ 370.000.000,00 em 1996
Tragdias envolvendo software
2 Caso real
Therac-25
Therac-25 era uma mquina de
radioterapia controlada por computador;
Problema
Emisso de doses indevidas de radiao;

Principais causas
O cdigo do software no havia sido revisado/testado;
O projeto do software no havia sido documentado com detalhes
suficientes para permitir o entendimento dos erros;
A documentao do sistema fornecida aos usurios no explicava o
significado dos cdigos de erro que a mquina retornava...
Tragdias envolvendo software
2 Caso real
Therac-25
Principais causas (continuao)
O software de modelos mais antigos havia sido reutilizado sem se
considerar as diferenas no hardware
O software considerava que os sensores sempre funcionavam
corretamente, e no havia como verificar isto;
O sistema de controle no operava sincronizado com a interface
usada pelo operador da mquina, e caso o operador mudasse a
configurao da mquina muito rapidamente, o sistema no atribua
os valores digitados para os controles (o que levava a aplicao das
doses letais);
Consequncias
Houve uma srie de pelo menos 6 acidentes entre 1985 e 1987, nos
quais os pacientes receberam overdose de radiao;
Pelo menos cinco mortes aconteceram devido aos acidentes;
Tragdias envolvendo software
3 Caso real
Desastre com AirBus 320

Problema
Navio US Vicennes derrubou um Airbus 320
em 1988
Principais causas
Falha no software de reconhecimento,
confundindo o avio com um F-14

Consequncias
290 mortes
Tragdias envolvendo software
2 Caso real
Game - O Rei Leo animado
Problema
O jogo no funcionava em uma variedade de
modelos de computadores
Principais causas
Os desenvolvedores da Disney testaram o
jogo apenas naqueles computadores
prximos aos que os eles usaram no
desenvolvimento.

Consequncias
Enorme prejuzo para empresa, com devoluo de dinheiro aos
clientes e reformulao do game.
Outros casos reais

http://www.net-security.org/secworld.php?id=12098
22 people wrongly arrested in Australia due to
failures in new NZ $54.5 million courts computer
system
Army computer glitches hinder co-ordinated efforts
A new NZ $54.5 million ($42.7 million or 26.8 in insurgent tracking
million) computer system linking New South Wales
courts and allowing documents to be lodged An army computing system designed to share real-
electronically led to damages claims for unlawful time intelligence with troops on the front line has
arrest and malicious prosecution, after 3,600 hindered troops by being unable to perform simple
defects in the electronic transfer of data from the analytical tasks. The $2.7 billion cloud-based
courts to the polices database led to the wrongful computing network system runs slowly when
arrest of 22 individuals. multiple users are on the system at the same time
and the systems search tool made finding the
reports difficult as the information mapping software
was not compatible with the armys existing search
software.
Desenvolvimento - Problemas de comunicao
Outras definies

Pressman, viso em camadas


Foco na qualidade: base
Processo: alicerce; adesivo
Mtodos: conjunto de tarefas; como fazer
Ferramentas: apoio automatizado ou semi-automatizado para o
processo e para os mtodos.

Ferramentas
Mtodos Pessoas
Processo
Foco na qualidade
Ementa

Processos de desenvolvimento de software.


Modelos de processo de software.
Planejamento e gerenciamento de projeto de software.
Condies de contingncia (Riscos).
Anlise de requisitos.
Garantia da qualidade de software.
Normas de qualidade de produtos e processos de software.
Modelos de melhoria de processo de software.
Gerncia de configurao.
Validao, verificao e testes de programas e sistemas.
Manuteno e implantao de sistemas de software.
Objetivos

Conhecer Ciclo de Vida e Modelos de processo de software


Adaptar e definir modelos de processo de software aderentes sua
realidade
Ter uma viso geral de planejamento, gerenciamento, riscos, projeto,
engenharia de requisitos e qualidade de software
PSP - Processo pessoal de software
Selecionar solues de ferramentas de apoio para o trabalho com
Engenharia de Software
Ter uma viso geral dos tipos de testes e seu desenvolvimento
Conhecer o framework CMMI
Conhecer os principais conceitos de gerncia de configurao e manuteno
de software
Criar e Adaptar atividades gesto de configurao e manuteno em
modelos de processo de software
Bibliografia

Pressman, R. S.; Engenharia de Software. 6ed, Ed. McGraw Hill, 2006.


ISBN: 8586804576.
Sommerville, I.; Engenharia de Software. 8ed, Ed. Addison Wesley, 2007.
ISBN: 9788588639287.
Pfleeger, S. L.; Atlee, J. M.; Software Engineering. 3ed, Ed. Prentice Hall,
2005. ISBN: 9780131469136.
Rosenberg, D.; Stephens, M.; Use Case Driven Object Modeling with UML:
Theory and Practice. Ed. Apress, 2007. ISBN: 9781590597743.
Fox, C.; Introduction to Software Engineering Design: Processes, Principles
and Patterns with UML2. 1ed, Ed. Addison Wesley, 2006. ISBN:
9780321410139
Critrios de avaliao

2 provas totalizando 60% (30% cada)


n Trabalhos prticos e tericos totalizando 40%

Datas sugeridas
Prova 1 - 04/05/2012
Prova 2 - 29/06/2012
Data definida
Prova final 12/07/2012
Local das aulas

Quinta-feira 10:00 as 12:00


Sala 10 - Prdio Novo
Quinta-feira 13:30 as 15:30
LAB3 - Chiuchiu
Engenharia de Software

O que Software?
O que engenharia de software?
Qual a diferena entre engenharia de software
e cincia da computao?
Qual a diferena entre engenharia de software
e engenharia de sistemas?
O que um processo de software?
O que um modelo de processo d
Engenharia de Software

Quais so os custos da engenharia de


software?
Quais so os mtodos de engenharia de
software?
O que uma CASE ( Engenharia de Software
Apoiada por Computador)
Quais so os atributos de um bom software?
Quais so os principais desafios da engenharia
de software?

Você também pode gostar