ENGENHARIA DE SOFTWARE PROFº Luiz Fernando de Oliveira Nunes Aula 03: Conceitos e Princípios de Engenharia de Software
Engenharia do latim ingeniu = faculdade inventiva, talento. 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