Engenharia de Software Competência: Compreender a importância do software e da engenharia de software
Agenda O que é engenharia de Software. Processos, Métodos e Ferramentas. Uma visão genérica da engenharia de Software.
O que é Engenharia de Software Algumas definições: “É a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais” Fritz Bauer-1969. Aplicação de uma abordagem sistemática, disciplinada e quantificável, para o desenvolvimento, operação e manutenção do software.
Processos, Métodos e Ferramentas Engenharia de Software é uma tecnologia em camadas, envolvendo Qualidade, Processos, Métodos e Ferramentas. Qualidade: Gestão de qualidade total e filosofias análogas levam à cultura de um processo contínuo de aperfeiçoamento e essa cultura, em ultima análise, leva ao desenvolvimento de abordagens cada vez mais amadurecidas para a engenharia de software.
Processos, Métodos e Ferramentas A camada que dá apoio a engenharia de software é um enfoque na qualidade.
Processos, Métodos e Ferramentas Processos: São os paradigmas de software, quais são os caminhos que vamos utilizar para desenvolver esse projeto.
Processos, Métodos e Ferramentas Métodos: Quais são as tarefas a serem realizadas em etapa do processo.
Processos, Métodos e Ferramentas Ferramentas: Fornece apoio automatizado ou semi-automatizado para o processo e para os métodos.
Visão Geral de Engenharia de Software Engenharia de Software é a análise, o projeto, a construção, a verificação e a gestão de elementos técnicos(ou sociais). Independentemente do elemento a ser tratado, as seguintes questões devem ser colocadas e respondidas: Qual é o problema a ser resolvido? Que características do elemento são usadas para resolver o problema?
Visão Geral de Engenharia de Software Como o elemento (e a solução) serão realizados? Como o elemento será construído? Eu abordagem será usada para descobrir os erros que foram cometidos no projeto e na construção do elemento? Como o elemento será mantido a longo prazo, quando correções, adaptações e aperfeiçoamentos forem solicitados pelos usuários?
Visão Geral de Engenharia de Software O trabalho associado com a Engenharia de Software pode ser categorizado em três fases genéricas independentemente da área de aplicação, do tamanho do projeto ou de sua complexidade: Fase da Definição; Fase de Desenvolvimento; Fase de Manutenção.
Fase Definição O que será feito? Durante a fase de definição, o engenheiro de software fará: Tentar identificar que informação será processada; Que função e desempenho são desejados; Que comportamento deve ser esperado do sistema; Que interfaces devem ser estabelecidas; Que restrições de projeto existem; Critérios de validação são necessários para definir um sistema bem-sucedido.
Fase Definição Independente do paradigma usado 3 tarefas serão realizadas de alguma forma. Engenharia de Sistemas; Planejamento de Projeto; Análise de Requisitos;
Fase de Desenvolvimento Como será Feito? Durante a fase de desenvolvimento o engenheiro fará: Definir como os dados devem ser estruturados; Como a função deve ser implementada dentro da arquitetura do software; Como os detalhes procedimentais devem ser implementados; Como a interfaces devem ser caracterizados;
Fase de Desenvolvimento Como o projeto deve ser traduzido em uma linguagem de programação; Como o teste vai ser realizado. Os métodos aplicados durante a fase de desenvolvimento variam, mas 3 tarefas técnicas devem sempre ocorrer: Projeto de Software; Geração de Código; Teste de Software.
Fase de Manutenção Fase de Manutenção é feito: Focalizar as modificações associadas com a correção de erros;(Correções) As adaptações necessárias a medida que o ambiente do software evolui;(Adaptação) As modificações devidas aos melhoramentos provocados pela modificação dos requisitos do cliente; (Aperfeiçoamento)
Fase de Manutenção Além da manutenção os usuários precisam de apoio contínuo: Assistência técnica ao cliente; Centro de suporte por telefone Sites da Web específicos para as aplicações são freqüentemente implementados como parte da fase de apoio(manutenção).