curso de introdução a engenharia de software - cjr/unb - aula 1

Post on 10-Jul-2015

867 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução a Engenharia de

SoftwareCJR – Empresa Júnior de Computação

Introdução1

Ariane 5, 1996

Mars Climate Orbiter, 1998Mars Polar Lander, 1999

US$ 327.600.000

US$ 7.000.000.000

“exception was caused during execution of a data

conversion from 64-bit floating point to 16-bit signed

integer value”

http://en.wikipedia.org/wiki/Northeast_blackout_of_2003

Apagão no nordeste dos EUA, 2003

55 milhões de pessoas afetadas

70%

30% “7 out of every 10 major weapons development programs

are encountering software problems and the rate is

increasing.”

US$303.8 Bilhões Em 2008

+6.5% relativo a 2007

Valor de mercado da indústria de software

“Average cancelled project in U.S. is about a year behind schedule and has

consumed 200% of expected budget” (Capers Jones).

“Work on cancelled projects comprises about 15% of total U.S. software efforts, amounting

to as much as $14 billion dollars in 1993” (Capers Jones).

Software > Hardwareem preço...

Manutenção >> Desenvolvimento

http://www.crystalballservices.com/Portals/0/img/ChaosReportGraph.jpg

Software é entregue:• depois do prazo

• acima do orçamento

• com falhas

• não atende a necessidade do cliente

CHAOS Report – Standish Group

http://blog.standishgroup.com/pmresearch

0 10 20 30 40 50 60 70 80 90 100

1994

1996

1998

2000

2004

2006

2008

% Projetos

Sucesso Falha Mudança

Cutter Consortium (2002):

78% das empresas de TI se envolveram em disputas judiciais

por conta de software entregue

67% dos casos o software não entregava o pedido

56% as datas prometidas não foram cumpridas

45% apresentavam falhas graves

http://www.cutter.com/research/2002/edge020409.html

Então...

Software

1 Software

Software = Programa de Computador + Documentação

Genéricos: especificação por parte da organização desenvolvedora

Personalizados: especificação por parte do cliente

Produtos genéricos que são customizados para empresas

1

“Engenharia de software é a criação e a utilização de sólidos princípios de engenharia

a fim de obter software de maneira econômica, que seja confiável e que trabalhe

eficientemente em máquinas reais.”

Primeira Definição de Software – Friedrich Ludwig Bauer

Engenharia de Software

1

Engenharia de Software ≠ Ciência da Computação

Engenharia de Software

Teorias e fundamentos sobre a

computação em geralPrática do desenvolvimento e

entrega de software • Algoritmos

• Arquiteturas

• SOs• Processo de desenvolvimento

• Gerenciamento de Projetos

1 Processo de Software

Especificação Desenvolvimento Validação Evolução

1 Modelo de Processo de Software

É uma representação do processo a partir de uma perspectiva específica. Fornece

apenas parte das informações.

Cascata Iterativo Ágil OutrosBaseada em

Componentes

Exemplos de modelos:

Manutenibilidade

1 Mas o quê um bom software precisa?

Dependabilidade e

Segurança

Eficiência

Usabilidade

Ele deve ser fácil de se evoluir

Deve ser confiável, não deve causar danos físicos ou econômicos no caso de falha.

Não deve utilizar mais recursos do que precisa.

Deve ser de fácil uso e compatível com outros softwares

Heterogeneidade

1 Desafios da engenharia de software

Entrega

Confiança

Mudanças sociais e de

negócios

Deve ser capaz de se comportar corretamente em diferentes situações. (Ex: web e mobile)

Deve ser entregue mais rapidamente mas sem perder qualidade.

Deve estar disponível sempre que precisarmos.

Deve ser possível atualizá-lo/melhorá-lo para que acompanhe mudanças das empresas e sociais.

1 Fundamentos da engenharia de software

Utilizar modelo de processo de software conhecido. Cada modelo é mais adequado para um tipo de software.

O software deve se comportar da forma esperada, sem exibir falhas e garantir segurança, além disso ele deve, sempre que

necessário, estar disponível para o usuário.

Entender o quê o software deve fazer de acordo com cada usuário que o utilizará, além de gerenciar os desejos de cada usuário para

que estes se adequem ao orçamento.

Você deve utilizar todos os recursos disponíveis, ou seja, se você pode então reutilize um software ao invés de criar um do zero.

A web...

+ Pessoas+ Riscos+ Diversidade de plataformas

+ Problemas

Bibliografia do Curso (Sites)

• http://www.ic.uff.br/~viviane.silva/2010.1/es1/aulas.html• http://dinobrasilis.pro.br/mat_quali.html• http://www.les.inf.puc-rio.br/wiki/index.php/Introdu%C3%A7%C3%A3o_a_Engenharia_de_Software_de_Sistemas_Multiagentes_em_2005.1• http://www.ime.usp.br/~poliana/Eng%20de%20sw/• http://www.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/• http://www.cin.ufpe.br/~processos/• http://www.cin.ufpe.br/~if720/programacao.html• http://www.softdevteam.com/Incremental-lifecycle.asp• http://lgarciasbr.wordpress.com/2011/10/19/roi/

Bibliografia do Curso (Sites)

• Stanford• http://www.stanford.edu/class/cs295/

• Berkley• https://sites.google.com/site/ucbsaas/

• MIT• http://sunnyday.mit.edu/16.355/

• MIT• http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-355j-software-engineering-concepts-

fall-2005/lecture-notes/

Renato Leal

renatoleal@cjr.org.br

renatodossantosleal@gmail.com

CJREmpresa Júnior de Computação da UnB

contato@cjr.org.br

renatodossantosleal@gmail.com

top related