Engenharia de software é o estabelecimento e uso de princípios de engenharia para desenvolver software de forma econômica e que seja confiável e funcione eficientemente. Ela envolve especificação, desenvolvimento e manutenção de sistemas de software aplicando ciência da computação, gestão de projetos e outras disciplinas. Compreende um conjunto de etapas como requisitos, projeto, implementação, teste e manutenção.
2. DEFINIÇÃO
Engenharia de software é uma área do
conhecimento da informática voltada para
a especificação, desenvolvimento e
manutenção de sistemas de software,
aplicando tecnologias e práticas de ciência
da computação, gestão de projectos e
outras disciplinas, objectivando
organização, produtividade e qualidade.
3. OUTRA DEFINIÇÃO
Engenharia de software é o
estabelecimento e uso de sólidos
princípios de engenharia para que se
possa obter economicamente um software
que seja confiável e que funcione
eficientemente em máquinas reais. [Fritz
Bauer]
4. Elementos envolvidos na ES
linguagens de programação,
bases de dados,
ferramentas,
plataformas,
bibliotecas,
padrões,
processos e
Qualidade de Software
5. Áreas de Conhecimento da ES
Requisitos de Software
Projeto (Design) de Software
Construção de Software
Teste de Software
Manutenção de software
Gestão de Configuração de Software
Gestão de Engenharia de Software
Processos de Engenharia de Software
Ferramentas e Métodos de Engenharia de
Software
Qualidade de Software
6. A ES compreende um conjunto de etapas que
envolvem métodos, ferramentas e
procedimentos.
Métodos
Detalhes de como fazer -definem as
características de cada etapa do
desenvolvimento do software
Ferramentas
Apoio automatizado –CASE Tools
(TPC – Vantagens de uso duma CASE; Liste
alguns exemplos)
Procedimentos
Definem a sequência em que os métodos são
aplicados;
Os produtos que tem que ser entregues;
Estabelece as fundações –garantia de
qualidade
Une as camadas tecnológicas
7. Ciclo de Vida clássico da ES
Definição de
Requisitos
Análise
Desenho
Implementação
Teste
Manutenção
8. Prototipação
É um processo que capacita o
desenvolvedor a criar um
modelo do software que será
implantado.
9. Processo de Desenvolvimento
Definição (O quê?)
o que será desenvolvido
Desenvolvimento (Como?)
como será desenvolvido
Manutenção (Mudanças?)
que mudanças ocorrerão depois
10. Fase de Definição
Análise de Sistemas
Define o papel de cada elemento em
um sistema baseado em computador
Planeamento do Projecto
Com o escopo do software definido,
riscos analisados, recursos alocados,
custos estimados e tarefas definidas
Análise de Requisitos
Definição detalhada do domínio da
informação e da função do software
11. Fase de Desenvolvimento
Desenho/Projecto do Software
Traduz os requisitos em representações
descrevendo a estrutura de dados,
arquitectura do software, procedimentos e
características da interface
Codificação
Conversão em linguagem artificial para
serem executadas pelo computador
Testes do Software
Após a implementação, o software deve ser
testado para descobrir defeitos de função,
lógica e implementação
12. Fase de Manutenção
Correctiva–20 %
É provável que o cliente encontre
defeitos no software, mesmo com as
melhores práticas de garantia de
qualidade
Adaptativa–20 %
Alterações para acomodar mudanças
de ambiente –Sistema Operacional,
CPU, periféricos,...
Perfectiva–60 %
Estende o software além das funções
originais –reconhecimento de benefícios
adicionais
13. Fase de Manutenção
Manutenção Preventiva
também chamada Reengenharia de
Software
Revisões Técnicas–garantia de
qualidade
Documentação–garantir informações
completas
Controle de Mudança–aprovação e
acompanhamento
15. Paradigmas de ES - TPC
Incremental
RAD
Iterativo
Formal
Estruturado
Lógico
Espiral
Evolutivo
OO
Combinação de Paradigmas
Técnicas de Quarta Geração
16. Bibliografia
Principles of Software Engineering
Management, Addison-Wesley.
http://phpmetar.incubadora.fapesp.br/portal
/Faculdade/Engenharia%20de%20Softwar
e/Engenharia%20de%20Software%2002.p
df, de 9/Fev/2007
Engenharia de Software, Roger S.
Pressman, 3.ª Edição.
http://pt.wikipedia.org/wiki/Engenharia_de_
software, de 9/Fev/2007