Você está na página 1de 30

Engenharia de

Software
Prof. Me. Erivelton Rocha
COLÉGIO TÉCNICO DE FLORIANO - CTF
Engenharia de Software
Aula - 01

2
Introdução

Nos Anos 40, quando se iniciou a


evolução dos sistemas computadorizados,
grande parte dos esforços eram
concentrados no desenvolvimento de
hardwares. A medida que as tecnologias
foram sendo dominadas, as preocupações
se voltaram, no início dos anos 50, para
desenvolvimento de sistemas
operacionais e foi quando surgiu as
linguagens de programação de alto nível.
3
Conseqüências:

• Necessidade cada vez maior de desenvolver grandes


sistemas;

• A falta de experiência e à não adequação dos métodos


de desenvolvimento existentes para pequenos
programa;

• Crise do Software na década de 60.

4
O PAPEL EVOLUTIVO DO SOFTWARE

- MULTIUSUÁRIO - SISTEMAS - SISTEMAS DE DESK-


- ORIENTAÇÃO A
- TEMPO REAL DISTRIBUIDOS TOP PODEROSO
BATCH
- BANCO DE -“INTELIGENCIA” -TECNOLOGIAS
- DISTRIBUIÇÃO DADOS - HARDWARE DE ORIENTADAS A
LIMITADA - PRODUTO DE BAIXO CUSTO OBJETOS
SOFTWARE - IMPACTO DE -REDES NEURAIS
- SOFTWARE
CONSUMO -COMPUTAÇÃO
CUSTOMIZADO
PARALELA

1950 1960 1970 1980 1990 2000

5
Uma Perspectiva Industrial
• Para controlar os custos no desenvolvimento do hardware
eram instituídos fortes padrões técnicos e exigida
cuidadosa atividade de análise e projeto antes que alguma
ciosa fosse construída. A engenharia de hardware.

• O programador aprendia seu oficio por meio de tentativas e


erro. O mundo do software era virtualmente indisciplinado.

• Hoje, a distribuição dos custos mudou, o software é


frequentemente o item de maior custo.

• A preocupação relativa ao software e à maneira pela qual


ele é desenvolvido levou á adoção de práticas de
Engenharia de Software.
6
PRINCIPAIS ASPECTOS DO SOFTWARE

Software: Definições e características

Pode-se definir o software, numa forma clássica, como


sendo: “um conjunto de instruções que, quando executadas,
produzem a função e o desempenho desejados, estruturas de
dados que permitam que as informações relativas ao problema a
resolver sejam manipuladas adequadamente e a documentação
necessária para um melhor entendimento da sua operação e uso”.

7
O que é Engenharia de Software?

“O estabelecimento e o uso de sólidos princípios


de engenharia para que se possa obter um
software economicamente viável, que seja
confiável e que funcione eficientemente em
máquinas reais”. (Bauer 1972)

▪ Pressman (1995) destaca que, ainda que várias


definições tenham sido dadas à Engenharia de Software,
todas reforçam a exigência da disciplina de engenharia
no desenvolvimento de sistemas.
8
Dentro desta ótica, para melhor caracterizar o
significado de software, é importante levantar algumas
particularidades do software:

▪ o software é concebido e desenvolvido como resultado de um


trabalho de engenharia e não manufaturado no sentido
clássico;

▪ o software não se desgasta, ou seja, ao contrário da maioria


dos produtos, o software não se caracteriza por um aumento na
possibilidade de falhas à medida que o tempo passa (como
acontece com a maioria dos produtos manufaturados);

▪ a maioria dos produtos de software é concebida inteiramente


sob medida, sem a utilização de componentes pré-existentes.

9
O que é Engenharia de Sistemas?

• A Engenharia de Sistemas é mais genérica e abrangente


do que a Engenharia de Software.

• Por ela ser mais antiga, esta mais envolvida com sistema
como um todo e seus detalhes.

• A Engenharia de Software é mais específica no que tange


os componentes do sistema, em especial ao hardware e o
software.

10
O que a Engenharia de Software Abrange?

▪ Abrange um conjunto de três elementos fundamentais: Métodos,


Ferramentas e procedimentos.

▪ Métodos detalham “como fazer” para se construir o software;

▪ As ferramentas proporcionam apoio automatizado ou semi-automatizado aos


métodos;

▪ E os procedimentos constituem o elo de ligação que mantém junto os


métodos e suas ferramentas, e possibilita um processo de desenvolvimento
claro, eficiente , visando garantir ao desenvolvedor e seus clientes a produção
de um software de qualidade.

11
12
Método de Engenharia de Software X Metodologia

• “È uma abordagem estruturada” para


desenvolvimento e Software.

• Podemos definir como uma “Abordagem


Estruturada” a estratégia de desenvolver algo com
uma estrutura previamente estruturada, ou
baseada nas melhores práticas.

• Não existe um método um método ideal.

• Existem vários métodos na Engenharia de


13
Software, mas poucas Metodologias.
Método X Metodologia

• Segundo Maddison. Podemos entender


Metodologia como sendo um conjunto de
recomendado de filosofias, fases,
procedimentos, técnicas, regras, ferramentas,
documentação, gerenciamento e treinamento
para o desenvolvimento de um sistema de
informação, como também o estudo de um ou
mais métodos.

14
▪ Software é um item de alto custo e em progressivo
aumento.
▪ Os softwares têm um importante papel no bem-
estar da sociedade
▪ Dessa forma, a engenharia de software assume
papel crítico para garantir que tarefas, dados, pessoas
e tecnologias estejam apropriadamente alinhadas
para produzir um sistema efetivo e eficiente.

15
Teoria de Sistemas – Interdependência de Sistemas

• É uma coleção significativa de componentes


inter-relacionados, que trabalham em conjunto
para atingir alguns objetivos (Sommerville).

• É organizado para realizar certo método,


procedimento ou controle ao processar
informações.

• Automatiza ou apóia a realização de atividades


humanas através do processamento de
16
informações.
17
Atributos de um bom Software

• Os atributos de um bom Software refletem seu


comportamento quando em funcionamento, a
estrutura e a organização do programa fonte,e
também a documentação associada
(Sommerville).

• Como exemplos temos o tempo de resposta do


software à consulta de um usuário e a facilidade
de compreensão do código do programa. Esses
mesmos exemplos também podem ser chamados
de atributos não funcionais. 18
O software deve proporcionar ao usuário a
funcionalidade e o desempenho requeridos e deve
ser passível de manutenção, confiável, eficiente e
de fácil uso.

19
20
Crise do Software e o início da Engenharia de
Software

• A crise do software, termo usado nos anos 70,


referia-se as dificuldades do desenvolvimento de
software da época. Por haver um rápido
crescimento da demanda por software, imaginava-
se que com toda a complexidade no
desenvolvimento, haveria uma forte crise. Com a
inexistência da Engenharia de Software nessa
época, não haviam técnicas estabelecidas para o
desenvolvimento de sistemas que funcionassem
adequadamente ou que pudessem ser validadas.

21
A Crise do Software

• Durante as primeiras eras do software, o


desenvolvimento era feito de forma totalmente
desorganizada.

• Não era feito nenhum projeto, planejamento, ou análise


de requisitos e o software não era documentado.

• O software era simplesmente produzido conforme o


conhecimento e experiência pessoal do programador

22
A Crise do Software

• Com o tempo, o desenvolvimento desorganizado levou a


diversos problemas.

• O principal problema é quando surgiram erros ou era


necessária ou desejada alguma mudança no software.

• Como o código não era documentado e não obedecia a


nenhuma estrutura formal, apenas o desenvolvedor
conseguia entender e modificá-lo

23
A Crise do Software

• Em alguns casos, quando a mudança era realizada


muito tempo após o desenvolvimento do software,
mesmo o próprio desenvolvedor tinha dificuldades para
entender o código que ele mesmo desenvolveu.

• Assim, as mudanças eram altamente custosas.

• Ao conjunto de problemas encontrados no


desenvolvimento de software deu-se inicialmente o
nome de “crise do software”, sendo posteriormente
chamado de “aflição crônica”
24
25
“Desenvolver software não é somente
modelar e escrever código. É criar
aplicações que resolvam os problemas
dos usuários. É fazer isto dentro do
prazo, de forma precisa e com alta
qualidade”. Logo, com a crise de
software, os desafios para a criação
da disciplina de Engenharia de
Software eram muito grandes.
(AMBLER, 1988)

26
Alguns dos típicos problemas que essa nova
disciplina enfrentou foram:

• Identificar adequadamente os requisitos do Sistema, ou


seja, saber o que o software deve fazer;

• Que ferramentas, linguagem, sistema operacional usar;

• Como diminuir os tempos e custos de desenvolvimento;

• Prever falhas antes da entrega final;

• Como fazer manutenção e controlar versões;

• Dificuldades de prever o progresso durante o


desenvolvimento;
27
•Inexistência de histórico, ou documentação, no desenvolvimento
de Sistemas;

• Comunicação com os usuários precária;

• Conceitos quantitativos inexistentes tais como


confiabilidade, qualidade e reusabilidade;

• Manutenção, no software existente, com difícil execução.

28
• Desafios da Engenharia de Software

29
Atividade
1. O que é Engenharia de Software?
2. Qual a diferença entre Engenharia de Software e Engenharia
de Sistemas?
3. O que é um método de Engenharia de Software?
4. Quais são os atributos de um bom Software
5. Quais são os desafios enfrentados pela Engenharia de
Software?
6. Com suas palavras fale a respeito da crise do software?

30

Você também pode gostar