Académique Documents
Professionnel Documents
Culture Documents
2
CONTEXTO HISTÓRICO
• 1950 - 1965
- Contínuas mudanças no hardware
- O software era uma arte "secundária" para a qual
havia poucos métodos sistemáticos
Eng. Ruben Veiga – Disciplina: ES –
3
CONTEXTO HISTÓRICO
• 1965 - 1975
- Multiprogramação e sistemas multiutilizadores
- Técnicas interactivas
- Sistemas de tempo real
- 1a geração de SGBD’s
Eng. Ruben Veiga – Disciplina: ES –
- Bibliotecas de Software
- Cresce no de sistemas baseado em computador
- Invenção das linguagens de alto nível
- Aparecimento de Sistemas Operativos
4
CONTEXTO HISTÓRICO
• 1975 - Actualmente
- Sistemas distribuídos
- Redes locais e globais
- Uso generalizado de microprocessadores – produtos
inteligentes
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
5
CONTEXTO HISTÓRICO
• 1975 - Actualmente
- Impacto de consumo
- Tecnologias orientadas o objectos
- Sistemas especialistas e software de inteligência
artificial usados na prática
Eng. Ruben Veiga – Disciplina: ES –
- Computação Paralela
- Internet
- Programação em nuvem
- Dispositivos móveis
6
CONTEXTO HISTÓRICO
• O Grande Problema
– 1965 - 1975
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
CRISE DO SOFTWARE
7
CRISE DO SOFTWARE - CAUSAS
• Falta de documentação
– a má qualidade das teorias (linguagens),
metodologias e ferramentas de desenvolvimento
utilizadas;
– complexidade dos sistemas, dificuldade de
Eng. Ruben Veiga – Disciplina: ES –
formalização.
Piaget Mindelo -16/17
8
CRISE DO SOFTWARE - CONSEQUÊNCIAS
• Cerca de um quarto (1/4) dos projetos de
desenvolvimento de grandes sistemas era cancelado
antes da conclusão;
• Em média, o tempo de desenvolvimento era bem maior
do que o estimado;
• Três quartos (3/4) dos grandes sistemas não são usados
Eng. Ruben Veiga – Disciplina: ES –
SOFTWARE
ENGENHARIA DE
10
ENGENHARIA DE SOFTWARE
• “A ES é o campo da informática que trata dos
aspectos relacionados com a construção de sistemas
de software de grande dimensão e/ou complexidade,
que exigem existência de uma equipa ou equipas de
engenheiros para o seu desenvolvimento.” Ghezzi
• “Construção de software multi-versão multi-pessoa.”
Eng. Ruben Veiga – Disciplina: ES –
Parnas
Piaget Mindelo -16/17
11
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
Perguntas frequentes sobre software - Sommerville
ENGENHARIA DE SOFTWARE
• “Um campo da informática cujo objectivo é a
construção de software sem erros, entregue a tempo
e dentro do orçamento e que satisfaz as
necessidades do utilizador. Além disso, o software
deve ser de fácil modificação quando as
necessidades dos utilizadores se alterem” Schach
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
13
ENGENHARIA DE SOFTWARE
• “Aplicação de uma abordagem sistemática,
disciplinada e quantificável, para o
desenvolvimento, operação e manutenção do
software, isto é, a aplicação da Engenharia ao
Software.” IEEE
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
14
ENGENHARIA DE SOFTWARE
• De acordo com Sommerville:
– “Engenharia de software é uma disciplina de
engenharia cujo foco está em todos os aspectos da
produção de software, desde os estágios iniciais da
especificação do sistema até sua manutenção,
quando o sistema já está sendo usado.”
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
15
Engenharia de Software
• Há duas expressões importantes nessa definição:
– Todos os aspectos da produção de software. A engenharia
de software não se preocupa apenas com os processos
técnicos do desenvolvimento de software. Ela também inclui
atividades como gestão de projeto de software e
desenvolvimento de ferramentas, métodos e teorias para
apoiar a produção de software.
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
Engenharia de Software
• Há duas expressões importantes nessa definição:
– Disciplina de engenharia. Engenheiros fazem as coisas
funcionarem. Eles aplicam teorias, métodos e ferramentas
onde for apropriado. No entanto, eles os usam seletivamente
e sempre tentam descobrir as soluções para os problemas,
mesmo quando não há teorias e métodos aplicáveis. Os
engenheiros também reconhecem que devem trabalhar de
Eng. Ruben Veiga – Disciplina: ES –
19
ENGENHARIA DE SOFTWARE
• Tecnologias em camada
- Qualquer abordagem de engenharia (inclusive a
engenharia de software) deve apoiar num
compromisso organizacional com a qualidade.
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
Ferramentas
Método
Processos
QUALIDADE
20
INTERDISCIPLINIDADE ENGENHARIA DE SOFTWARE
Linguagens de Teoria da
programação computação
Engenharia de
Eng. Ruben Veiga – Disciplina: ES –
Software
Piaget Mindelo -16/17
Inteligência Artificial
Sistemas Operativos
Base de Dados
21
INTERDISCIPLINIDADE ENGENHARIA DE SOFTWARE
Engenharia de
Gestão sistemas
Engenharia de
Eng. Ruben Veiga – Disciplina: ES –
Software
Piaget Mindelo -16/17
22
PROGRAMAÇÃO X ENGENHARIA DE SOFTWARE
Uma pessoa Uma equipa
Barato Caro
23
O ENGENHEIRO DE SOFTWARE - Competências
• Programar fluente em várias linguagens.
• Conhecer diferentes abordagens ao desenho de
sistemas.
• Capaz de traduzir requisitos indicados de forma
vaga e incompleta para especificações precisas.
Eng. Ruben Veiga – Disciplina: ES –
sistema
• Capaz de entender um problema em diversos níveis
de abstração
• Capaz de trabalhar em equipa
24
ENGENHARIA DE SOFTWARE
• Apesar da evolução do software…
• A habilidade em construir software deixa a desejar em
relação ao potencial do hardware
• A construção de software não é rápida o suficiente para
atender as necessidades do mercado
• A sociedade depende cada vez mais de software confiável;
Eng. Ruben Veiga – Disciplina: ES –
26
PRINCÍPIOS DA ENGENHARIA DE SOFTWARE
• Rigor e formalismo
• Separação de assuntos
• Modularidade
• Abstracção
Eng. Ruben Veiga – Disciplina: ES –
• Antecipação da mudança
Piaget Mindelo -16/17
• Generalidade
• Incrementalidade
27
RIGOR E FORMALISMO
• Rigor
- ...produtos fiáveis
- ...custos controlados
- ...confiança acrescida
Eng. Ruben Veiga – Disciplina: ES –
• Formalismo
Piaget Mindelo -16/17
com as outras
29
DIMENSÕES DA SEPARAÇÃO DE ASSUNTOS
• Separação temporal:
- Planeamento da agenda semanal de forma a reduzir a
comutação de actividades
• Separação das qualidades:
- Começar por desenhar o programa por forma a garantir a
correcção e só depois o rever para aumentar a eficiência.
• Separação de vistas:
Eng. Ruben Veiga – Disciplina: ES –
30
MODULARIDADE
• Separação em pequenas e individuais peças
- Tratamento dos detalhes de cada módulo
individual
- Integração de todos os módulos de forma
coerente
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
31
ABSTRAÇÃO
• Processo pelo qual se identificam os
aspectos importantes de um fenómeno e se
ignoram os respectivos detalhes
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
32
ANTECIPAÇÃO DA MUDANÇA
• Antecipar a mudança permite...
– …criar uma infra-estrutura que absorva
mudanças facilmente
– …eliminar facilmente erros não detectados
– ...novos requisitos e alterações dos existentes
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
33
GENERALIDADE
• A generalidade permite…
– …aumento da reusabilidade
- por outros programas
- em pontos diferentes do mesmo programa
Eng. Ruben Veiga – Disciplina: ES –
– …aumento da robustez
Piaget Mindelo -16/17
34
INCREMENTABILIDADE
• A incrementalidade permite…
- ...o desenvolvimento de melhores produtos
- ...uma identificação atempada dos problemas
- ...um aumento da satisfação do cliente
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
35
O PRODUTO
• Objectivo da Engenharia de Software:
- construir algo: produto: Software (e não só...)
• O que é o Software?
- é uma sequência de instruções a serem seguidas e/ou
executadas, na manipulação, ou modificação de um
dado/informação ou acontecimento
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
36
O SOFTWARE
• Produto
- Quando libera o potencial embutido no hardware.
• Veículo para liberar produto
- quando ele actua como uma base para o controlo
do computador - sistema operativo;
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
37
CARACTERÍSTICAS
• Utilizador procura Software:
- Fiável, eficiente e fácil de usar
• Engenheiro de Software:
- Fácil de verificar,
- Extensível ,
Eng. Ruben Veiga – Disciplina: ES –
- “Manutensível”,
Piaget Mindelo -16/17
- “Portável”
• Gestor do projeto quer um processo de produção:
- Eficiente e
- Fácil de controlar 38
CARACTERÍSTICAS
• Características Externas X Internas
- Externas → visíveis aos utilizadores do sistemas
- Internas → visíveis aos programadores do
sistema
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
39
CARACTERÍSTICAS
• Produto X Processo
- Usa-se um processo para produzir um produto
de Software.
- Certas características do processo influenciam
características do produto.
Eng. Ruben Veiga – Disciplina: ES –
Piaget Mindelo -16/17
41
CARACTERÍSTICAS
• Manutensibilidade → após entrega,
• Verificabilidade,
• Intuitivo,
• Visibilidade → módulos bem estruturados e
Eng. Ruben Veiga – Disciplina: ES –
documentados,
Piaget Mindelo -16/17
42
CARACTERÍSTICAS
• Evolutibilidade,
• Reparabilidade → correção dos defeitos num
tempo limitado,
• Pontualidade,
Eng. Ruben Veiga – Disciplina: ES –
• Produtividade.
Piaget Mindelo -16/17
43
CARACTERÍSTICAS
• Interoperabilidade
– pode ser entendida como uma característica que se refere à
capacidade de diversos sistemas e organizações trabalharem
em conjunto de modo a garantir que pessoas, organizações e
sistemas computacionais interajam para trocar informações de
maneira eficaz e eficiente.
Eng. Ruben Veiga – Disciplina: ES –
• Compreensibilidade
Piaget Mindelo -16/17
• Reusabilidade
• Portabilidade
– a sua capacidade de ser compilado ou executado em
diferentes arquiteturas (hardware/software). O termo pode ser
usado também para se referir a re-escrita de um código fonte
para uma outra linguagem de computador.
44
APLICAÇÕES DE SOFTWARE
• De acordo com suas aplicações, um software pode ser classificado
das seguintes formas:
– Softwares de Sistema:
●
Programas para servir outros programas (compiladores,
editores, utilitários de gestão de arquivos)
– Software de Tempo real:
●
monitora, analisa, controla eventos do mundo real. Um
sistema de tempo real deve responder dentro de
Eng. Ruben Veiga – Disciplina: ES –
– Sistemas Periciais
– Robots
47