Sie sind auf Seite 1von 20

Engenharia de Software I

Introdução

Softwares fazem parte do cotidiano;

Podem ser sistemas simples:

Supermercados, padarias, farmácias;

Ou sistemas complexos (Críticos):

Médicos, Aviação, Bancário;

Afeta de várias formas a vida das pessoas, então é necessário:

Analisar, entender, compreender e resolver os problemas da melhor maneira possível;

Introdução

Não é uma tarefa simples;

Imagine um casa sem projeto;

Custos e Prazos indefinidos e muitas vezes extrapolados;

Ou resultado diferente do que o esperado;

Quanto maior a casa maior seria a possibilidade de algo dar errado;

Imagine essa situação em softwares;

Se isto acontece na Engenharia convencional como será com o software?

O que é um software

(Presman, 2006):

“um software é um conjunto composto por instruções (Código) de computador, estruturas de dados (Manipulação e armazenamento das informações) e documentos (Descrição do software)”.

Documentação (Presman):

plano de projeto;

uma especificação dos requisitos necessários;

o projeto do sistema;

especificação de testes.

Conceitos

Procura fornecer métodos e ferramentas para garantir a produção de software com qualidade e com custos e prazos planejados e documentados;

"Engenharia de software é 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".

Friedrich Ludwig Bauer

» Conceito Central:

1. Observar -> O que deve ser feito e como para solucionar o problema, levando em consideração as necessidades e características do cliente.

Como surgiu a EG?

Softwares eram desenvolvidos de maneira artesanal (Década de 50);

Foco das pesquisas era o Hardware;

Softwares desenvolvidos sem técnica e o hardware era escasso;

Passaram a surgir grandes sistemas;

Passaram a ter muitos problemas, e não existia documentação;

(Analogia): Como derrubar uma parede de uma casa sem saber aonde estão as vigas e estruturas fundamentais;

Como surgiu a EG?

Conseqüências:

Prazo não eram cumpridos;

Recursos extrapolavam a estimativa;

A qualidade do software era questionável;

O produto final na maioria das vezes não refletia o que foi pedido;

Difícil e constante manutenção;

Não era possível conhecer os efeitos de uma mudança;

Isto é era mais visível em grandes projetos;

Como surgiu a EG?

Esses problemas citados são conhecidos mundialmente como “The Software Crisis (CRISE DE SOFTWARE)”.

A crise foi identificada nos anos 60s;

Problemas persistem até hoje:

Previsão pobre (tempo, custo, recurso);

Programas de baixa qualidade (Pressa);

Alto custo para manutenção (Corretivas e Evoluções);

Duplicação de esforços;

Como surgiu a EG?

1968 na NATO Conference on Software Engineering (Conferência sobre Engenharia de Software da OTAN).

Percebeu que é mais barato planejar do que corrigir;

Desenvolvimento de software passou a ser baseado em princípios da engenharia (Enfoque estruturado e metodológico);

NASCE A ENGENHARIA DE SOFTWARE

Software

Apresenta outras características que o diferenciam de um produto manufaturado comum (PRESSMAN, 2006):

é desenvolvido ou projetado por engenharia, produzido de maneira diferente de um Hardware;

não se desgasta, mas se deteriora devido às diversas manutenções que pode sofrer (Inicio alto índice de erros corrigidos com o tempo);

Softwares em sua maioria são feitos sob medida (no

s últimos anos a reusabilidade tem ganho força);

Engenharia de Software

Ultrapassa o limite do desenvolvimento de programas; Aspectos técnicos e não técnicos afim de se produzir um software com:

Qualidade;

Prazos cumpridos;

Custo aceitável;

Sem surpresas na entrega do produto;

Engenharia de Software

Utilização de ferramentas e técnicas comprovadas;

Geralmente são considerados três termos no desenvolvimento de software:

Analise;

Projeto;

Implementação

Elimina aspectos tecnológicos, contextuais e organizacionais;

Engenharia de Software

SDOs (Software Development Organizations);

Funções de um SDO podem ser divididas em três grupos:

Definir, analisar, simular, medir e melhorar os processos da organização;

Construir o produto de software;

Medir, controlar, modificar e gerenciar os projetos de software;

Engenharia de Software

Engenharia de Software Experiências passadas Requisitos do processo Engenharia de processo Definição e Analise das
Engenharia de Software Experiências passadas Requisitos do processo Engenharia de processo Definição e Analise das

Experiências passadas

Requisitos do processo

Engenharia de processo

Definição e Analise das informações

Requisitos do projeto

Requisitos do produto

Modelo do processo

Gerenciamento de Projeto Coordenar, monitorar as atividades
Gerenciamento de Projeto
Coordenar, monitorar as atividades
Engenharia de produto

Engenharia de produto

Linguagens, ciclo de vida e técnicas

Linguagens, ciclo de vida e técnicas

Engenharia de produto Linguagens, ciclo de vida e técnicas
Engenharia de produto Linguagens, ciclo de vida e técnicas
atividades Engenharia de produto Linguagens, ciclo de vida e técnicas Processo de desenvolvimento Produto de software

Processo de desenvolvimento

Produto de software

Engenharia de Software

Na maioria das metodologias criadas o foco principal é o produto.

Somente a engenharia de produto é insuficiente;

Engenharia de Processos e gerenciamento de projeto são atividades complexas;

O cenário vem amadurecendo;

Origem dos Problemas de Soft.

Estimativa de tempo;

Estimativa de custo;

Falha no processo de identificação das funcionalidades do sistema (problema nas técnicas de levantamento);

Problema de comunicação entre analistas e clientes;

Não se pensa na facilidade de manutenção do sistema durante o planejamento;

Falta de preparo dos lideres de projeto;

Processos da EG de software

Processos da EG de software Métodos: Indicam “como fazer” ou como utiliza técnicas para as diferentes

Métodos: Indicam “como fazer” ou como utiliza técnicas para as diferentes etapas da ES.

Ferramentas: Ferramentas que podem ser utilizadas para auxilio na ES, também conhecidas como CASE (Computer Aided Software Engineering);

Processos: Une os métodos e as ferramentas, indica como utilizá-los e quando aplicá-los (como uma receita indicando quando e como utilizar);

* Surge um novo elemento: o Artefato (Produtos obtidos a partir de tarefas do projeto)

Processo de Software

Aplicado tanto a softwares grandes quanto pequenos;

Atividades fundamentais genéricas:

Comunicação;

Planejamento;

Modelagem;

Construção;

Implantação;

Atividades

Pesquise sobre metodologias de desenvolvimento de software e especifique:

Nome

Histórico (texto e local onde está o texto)

Quem aplica este método

Créditos

Prof. Alex Coelho da

Faculdade Católica do Tocantins

Revisão: Prof. Levi R. Munhoz da

Fatec - SO