engenharia de software profº luiz fernando de oliveira nunes aula 03: conceitos e princípios de...
TRANSCRIPT
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