ENGENHARIA DE SOFTWARE
PROFº Luiz Fernando de Oliveira Nunes
Aula 03: Conceitos e Princípios de Engenharia de
Software
O que é Engenharia?
Engenharia do latim ingeniu =
faculdade inventiva, talento.
O que é Engenharia?

Seria a arte, a ciência e a técnica de bem
conjugar os conhecimentos especializados
(científicos) de uma dada área do saber com a
sua viabilidade técnico-econômica, para produzir
novas utilidades e/ou transformar a natureza,
em conformidade com idéias bem planejadas e
em observância à preservação e conservação
ambiental, na escala que se fizer necessária
O que é Software?

Alguma definição da sala?
O que é Software?


“Conjunto de instruções, programas e dados a
eles associados, empregados durante a
utilização do computador”
“Programas de computador, entidade abstrata e
ferramentas que exploramos recursos de
hardware, resolução de problemas, interação
com a máquina tornando o computador
operacional”
Mais amplamente inclui também:



Instruções que executam uma função
desejada.
Estrutura de dados para manipular
informações.
Documentos para desenvolver, operar e
manter os programas.
O que é Engenharia de Software?


Desenvolvimento multi-versional de
software multi-pessoal
Abordagem sistemática, disciplinada e
quantificada ao desenvolvimento,
operação e manutenção de software.
O que é Engenharia de Software?

Tem por objetivo definir e exercitar
processos, métodos (planos de processo),
ferramentas e ambientes (máquinas
apoiando processos e métodos) para
construção de software que satisfaça
necessidades de cliente e usuário dentro
de prazos e custos previsíveis.
Visão Macro da Engenharia de
Software
Dificuldades para desenvolvimento
de Software



Saber o que o software deve fazer:
requisitos
Ferramentas, linguagem, SO
Tempo e custo elevado para
desenvolvimento
Dificuldades para desenvolvimento
de Software

Prever falhas

Tratar versões e manutenções

Produtividade não cresce com a demanda
de serviços
Características do Software



não é manufaturado
custos estão relacionados ao
desenvolvimento e não à manufatura
não é um elemento físico e sim lógico
( não visualizamos, medimos, etc)
Características do Software



o processo de gerenciamento é diferente, pois o
relacionamento entre pessoas é diferente
não há peças de reserva para manutenção,
correção e aperfeiçoamento
não se utiliza componentes prontos em sua
construção
Características do Software

existem abordagens distintas para se
chegar no produto final
Por fim,

o software não se desgasta com o uso,
mas sim deteriora-se
Fundamentos de Engenharia de
Software:

Objetivos: Melhorar a qualidade do software

Como?

Utilizando um conjunto de métodos, técnicas e
ferramentas para analisar, projetar e gerenciar o
desenvolvimento e manutenção de software.
Fundamentos de Engenharia de
Software:
Em suma:
Engenharia de Software seria:
Princípios<Métodos e Técnicas<Metodologias<Ferramentas
Fundamentos de Engenharia de
Software:

Métodos e Técnicas: como fazer

Metodologia: como aplicar

Ferramentas: automatizam os métodos,
dando apoio à utilização dos mesmos
Princípios da Engenharia de
Software:

- Formalidade: reduz inconsistências

- Abstração: aspectos importantes, ignorar detalhes

- Decomposição: lidar com complexidade

- Generalização: reutilização, custo

- Flexibilidade: mudanças, processo incremental
Engenharia de Software para que?
Quadrinhos sobre desenvolvimento
de Software
O cliente queria isto:
Isso foi como ele explicou para o
lider de projeto
O analista especificou assim
O programador entendeu assim
E desenvolveu o aplicativo assim
Resultado do teste de carga
Os beta testers receberam isso
O suporte instalou isso no cliente
E cobrou isso
Como os patches devem ser
aplicados
O projeto foi todo documentado
assim
Os consultores em marketing
descreveram assim
E o software foi anunciado assim
Quando ele foi entregue
Solução do suporte para alguns
problemas
Resultado do efeito Digg no site do
aplicativo
A versão Open Source
Download

O que é Engenharia?