• Nenhum resultado encontrado

Introducao a ES

N/A
N/A
Protected

Academic year: 2021

Share "Introducao a ES"

Copied!
41
0
0

Texto

(1)

Engenharia de Software

Introdução

Universidade Federal da Paraíba – Campus IV Centro de Ciências Aplicadas e Educação

Departamento de Ciências Exatas

Prof. Jorge Dias

www.jorgediasjr.com

(2)

Introdução

 Nas primeiras décadas de uso do

computador, o principal desafio era desenvolver um hardware que

reduzisse o custo de processamento

e armazenamento de dados

 A complexidade dos programas

era limitada pelos recursos de

(3)

Introdução

1946: Primeiro computador Digital eletrônico

ENIAC

 30 toneladas, media 5,60 m de altura e 25 m de comprimento e

(4)

Introdução

 Os programas eram desenvolvidos por

um pequeno grupo de pesquisadores

 Não havia método no desenvolvimento

de software

 Quase um processo de criação

artística!

 As exigências e as expectativas dos

usuários eram baixas, pois não havia concorrência no mercado

(5)

Introdução

Ao longo de 50 anos, a

importância

do software

passou por

mudanças

significativas:

Melhoria no

desempenho

dos computadores

Modificações nas

arquiteturas

de computadores

Aumento significativo na

memória

e capacidade de

armazenamento

Grande

variedade

de opções de

entrada

e

saída

(6)

Crise do software

Aconteceu no fim dos anos 60

 Quando a Engenharia de Software ainda não existia

Dificuldades no desenvolvimento de software

 Frente ao rápido crescimento da demanda por software  Complexidade dos problemas a serem resolvidos

 Inexistência de técnicas que funcionassem

Consequências

 Projetos estourando o orçamento;

 Projetos estourando o prazo;  Software de baixa qualidade;

 Software muitas vezes não atingiam os requisitos;  Projetos ingerenciáveis e o código difícil de manter.

(7)

Introdução

“O Software ultrapassou o Hardware

como chave para o sucesso de muitos

sistemas baseados em computador”

(Pressman, pg. 3, 1992)

(8)

Introdução

Na década de 50,

ninguém

poderia prever que:

 Fosse se tornar uma tecnologia indispensável para negócios, ciência,

engenharia, ...

 Fosse permitir a criação de novas tecnologias, extensão de

tecnologias existentes e declínio de antigas tecnologias

 Que uma empresa de software fosse se tornar maior e mais

influente que a maioria das empresas da era industrial

 Que uma vasta rede guiada por software (Internet) evoluiria e

modificaria a vida de todo o mundo

 Estaria embutido em sistemas de toda espécie: transporte, médico,

militar, industrial, entretenimento, ...

(9)
(10)

Denver International Airport

Erros no sistema automático de transporte de bagagens (misloaded,

misrouted, jammed):

 Atraso na abertura do aeroporto com custo total estimado em US$360 Milhões

(11)

Ariane 5

Projeto da Agência Espacial

Européia que custou:

 10 anos.

 US$ 8 Bilhões.

Capacidade 6 toneladas.

Garante supremacia européia no

(12)
(13)

Resultado

Explosão 40 segundos

após a decolagem.

Destruição do foguete e

carga avaliada em US$

500 milhões.

(14)

Software em carros

Problema no freio

Recall para atualização do

(15)

O Bug do Milênio

Datas eram armazenadas com

apenas 2 dígitos para o ano

(16)
(17)
(18)
(19)

Conclusão

Software é elemento chave para o sucesso.

Mas:

Software não é hardware.

Software não é fácil.

Software mata.

Software evolui.

(20)

Introdução

Mesmo assim ...

Por que leva-se tanto tempo para construir o

software?

Por que gastamos tanto

tempo e esforço mantendo programas existentes?

Por que os custos de desenvolvimento são tão

altos?

Por que não podemos achar todos os erros antes de entregar o software aos

clientes?

Por que continuamos a ter dificuldade em avaliar o

progresso enquanto o software está sendo

(21)

Software

Formalmente

, software ...

 São instruções (programas de computador) que quando

executadas fornecem as características, função e desempenho desejados

Em outras palavras

, o software ...

 É desenvolvido ou passa por um processo de engenharia; não é

fabricado no sentido clássico

 Não “se desgasta” (se deteriora)

 Em sua maior parte, continua a ser construído sob encomenda,

apesar da indústria estar se movendo em direção à montagem

baseada em componentes

(22)

Categorias de Software

Sistemas técnicos

 Não incluem procedimentos e processos

 Não são produzidos para automatizar processos específicos

executado por pessoas

Sistemas sociotécnicos

 Incluem procedimentos e processos

 Possui processos operacionais definidos  As pessoas são partes inerentes do sistema  Políticas e regras organizacionais

(23)

A Natureza do Software

Categorias de software:

 Software de sistemas: Coleção de programas escritos para servir a

outros programas

 Software de aplicação: Programas isolados que resolvem uma

necessidade específica do negócio

 Software científico e de engenharia: Aplicações voltadas para a

pesquisa científica

 Software embutido: Controla as funções de um produto ou sistema  Software para linhas de produto: Capacidade específica a ser usadas

por muitos clientes com o mesmo objetivo

 Aplicações da Web: Sofisticados ambientes computacionais,

integrados a banco de dados e aplicações de negócio

 Software para inteligência artificial: Faz uso de algoritmos

não-numéricos para resolver problemas complexos

(24)

Engenharia de Software

Utiliza a Computação para resolver problemas

Porém, nem sempre o problema tem a ver com

computadores

É essencial entender a natureza do problema

Utiliza a tecnologia como ferramenta para implementar a

solução

Resolvendo problemas

Problema

Subproblema 1 Subproblema 2 Subproblema 3

Dividir para conquistar

(25)

Métodos, Ferramentas, Procedimentos e

Paradigmas da Engenharia de Software

Métodos de Engenharia de Software

 Detalhes de “como fazer” para construir um software;  Procedimento formal para produzir algum resultado.

Ferramentas de Engenharia de Software

 Criadas para apoiar de forma automatizada os métodos;  Ex.: ferramentas CASE;

Procedimentos da Engenharia de Software

 Elo entre métodos e ferramentas;

 Definem, por exemplo, a seqüência em que os métodos serão aplicados

e os produtos a serem entregues;

Paradigmas na Engenharia de Software

 Representa uma abordagem ou filosofia em particular para a construção

(26)

Engenharia de Software

Ciência da Computação Cliente

Teoria

Computacionais Funções

Problema

Engenharia de

Software

Ferramentas e técnicas para resolver problemas

(27)

Engenharia de Software

“Criação e a utilização de

sólidos princípios

de engenharia a

fim de obter

softwares

econômicos

que sejam

confiáveis

e

que trabalhem

eficientemente

em

máquinas

reais” [Fritz

Bauer]

“Aplicação de uma

abordagem sistemática

,

disciplinada

e

quantificável

, para o desenvolvimento, operação e

manutenção; isto é, a aplicação da

engenharia

ao

software

[IEEE]

(28)

Engenharia de Software

Relacionada não só com os processos técnicos de

desenvolvimento de software, mas também com

atividades como o

gerenciamento de projeto de

software

e o

desenvolvimento de ferramentas,

métodos e teorias

que apóiem a produção de software;

Recomenda a aplicação de

ferramentas e

técnicas/métodos

apropriados dependendo do

problema a ser solucionado, das

restrições

de

desenvolvimento e dos

recursos

disponíveis.

(29)

Alguns Objetivos da Engenharia de Software

Controle sobre o

desenvolvimento de software

dentro de

custos, prazos

e

níveis de

qualidade

desejados;

Sistematização da produção,

manutenção e evolução dos

produtos;

Qualidade versus Produtividade;

 Aprimoramento da qualidade de

software;

(30)

O que faz a Engenharia de Software?

Um componente chave do desenvolvimento de software é a

comunicação entre os clientes e os desenvolvedores

Entender as necessidades do cliente

O número de pessoas trabalhando no desenvolvimento depende

do tamanho e grau de complexidade do software

Processo e Papéis definidos no desenvolvimento

Participantes:

 Cliente: empresa ou pessoa que está pagando para ter o sistema

 Desenvolvedor: empresa ou pessoa que desenvolve o sistema

(31)

Atividade 1

Faça um paralelo com a Engenharia Civil.

Suponha que você é contratado para

construir uma casa.

O que é necessário para você construir

(32)

Atividade 2: Pensem em tudo que já

aprenderam no curso e responda

O que precisamos para desenvolver

um software dentro do prazo, custo

(33)

Algumas Atividades da Engenharia de

Software

Modelagem de Negócio

Engenharia de Requisitos

Análise e Projeto

Arquitetura de Software

Implementação

Testes

Implantação/Distribuição

Gerenciamento de Projetos

Gerência de Configuração e Mudanças

Manutenção

(34)

Mitos do Software

Crenças

sobre

softwares

e sobre o

processo

usado para

construí-lo

Atitudes enganosas

que causaram\causam sérios

problemas

tanto para

gerentes

quanto para

pessoal técnico

(35)

Mitos do Software

Mitos da gerência

Já temos um livro que está cheio de

padrões

e

procedimentos

para elaborar o software. Isso não fornece

ao meu pessoal

tudo

o que ele precisa

saber

?

Se nos

atrasarmos

no

cronograma

, podemos

adicionar

mais

programadores

e ficar em dia.

Se eu decidir

terceirizar

um projeto de software vou poder

relaxar

e deixar que aquela

firma

o

elabore

.

(36)

Mitos do Software

Mitos do cliente

O

estabelecimento

geral de objetivos é

suficiente

para

iniciar a escrita de programas – podemos fornecer os

detalhes

posteriormente

.

Os

requisitos

de projeto

mudam

continuamente, mas as

mudanças

podem ser facilmente

acomodadas

porque o

software é

flexível

(37)

Mitos do Software

Mitos do profissional

Quando

escrevemos

um programa e o fazemos

funcionar

,

nosso

trabalho

está completo.

Até que eu esteja com o programa “

rodando

” não tenho

como avaliar a sua

qualidade

.

O único

produto

de trabalho que pode ser entregue para

um projeto de software

bem-sucedido

é o programa

executável

.

A

engenharia de software

vai nos fazer criar documentação

volumosa

e

desnecessária

que certamente nos

atrasará

.

Introdução – Aula 01

(38)

Fábricas de Software

“Um processo

estruturado

,

controlado

e

melhorado

de

forma

contínua

, considerando abordagens de

engenharia

industrial

, orientado para o atendimento a múltiplas

demandas

de

natureza

e

escopo

distintas, visando à geração

de

produtos

de software, conforme os

requisitos

documentados dos usuários e/ou clientes, da forma mais

produtiva

e

econômica

possível”

(39)

Fábricas de Software

 O termo Fábrica de Software foi empregado pela primeira vez em

1969, pela japonesa Hitachi, mas só começou a ficar popular no início dos anos 90

 Características:

 Ter processos claros e depender mais deles do que das pessoas, de

forma a ter resultados mais previsíveis

 Aplicar conceitos da indústria em geral em ambientes de

desenvolvimento de software, de forma a aumentar a produtividade

e diminuir prazos e custos.

 Divisão de trabalho com equipes especializadas para cada parte do

desenvolvimento de um software, que trabalham como numa linha

de produção

(40)

Fábricas de Software

Existem fábricas

especializadas

somente na codificação ...

 Os requisitos devem ser entregues

de forma padronizada

... Assim como existem fábricas que englobam as

várias fases

de

um

processo

de desenvolvimento

 Necessidade de utilização de melhores práticas de frameworks como

CMMI, PMP, MPS.BR, UML/UP, dentre outros

(41)

Alguns Problemas no Desenvolvimento de

Software...

Alguns projetos são cancelados mesmo antes de começar;

O tempo de desenvolvimento e o custo são bem maiores do

que o estimado;

Os sistemas não funcionam como planejado;

A qualidade é baixa;

A manutenção e a reutilização são difíceis e custosas;

Os problemas são proporcionais à complexidade dos

sistemas;

Referências

Documentos relacionados

Após isso foi feito um estudo de caso, sua análise foi construída a partir do questionário perfil do investidor, respondido pelo cliente antes de seu primeiro investimento

O objetivo deste trabalho é analisar o processo de crescimento da área urbana do município de Alagoa Grande-PB, identificando desta forma os principais produtores do espaço urbano

Dias (2011), em sua dissertação de mestrado aponta para 32 teses e 99 dissertações, presentes no banco de dados da CAPES, defendidas entre 2004 e 2009 que abordavam sobre a

RESUMO: O presente trabalho visa analisar a expansão do solo urbano no município de São Sebastião de Lagoa de Roça, bem como refletir sobre a importância das ações que o

Inicialmente, nos Gráficos 40 e 41, são apresentados os valores de duração relativa para a média de produção da vogal /e/ e /o/, tanto para os contextos

A função gerente de obras torna-se cada vez mais necessária na construção civil, pois o setor está cada vez mais desenvolvendo e aprimorando a área de coordenação

Na Nova Zelândia em sistemas pastoris as vacas produzem em média 17 litros de leite ao dia, enquanto nos produtores analisados neste estudo a média de

Figure 4.9 shows the similarity distributions with and without cluster- ing for Study 8 in experiment CaF, which is an example of a consid- erable increase on lift.. In contrast,