You are on page 1of 30

Prof.

Erivelton da Silva Rocha


Graduação: Licenciatura Plena em Computação
Especialista em Engenharia de Sistemas

1
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 é


freqüentemente 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
de 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 ideal.

Existem vários métodos na Engenharia de Software, mas


poucas Metodologias.

13
Método X Metodologia

Segundo Maddison. Podemos entender Metodologia

como sendo um conjunto 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 informações.

16
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?
7. O que você entende por modelo Balbúrdia?

30

You might also like