instituto federal de educaÇÃo, ciÊncia e tecnologia tocantins campus araguaína técnicas e...
TRANSCRIPT
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Técnicas e Projeto de SistemasTÉCNICO SUBSEQUENTE
ANA PAULA ALVES DE LIMA
1TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
2
REVISÃO GERAL
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Introdução à Engenharia de Software
Definições
• Sistemas
• Software
• Projeto
• Engenharia de Software
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Sistemas• Sistemas: é uma ligação entre
componentes comuns, com objetivos comuns.
• Exemplos: sistema solar, sistema respiratório...
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
5
Software
• Conjunto de procedimentos que controlam o
funcionamento de uma máquina.
Sistema == Software???
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Software• O Software é um tipo de sistema para auxiliar,
agilizar um processo por vários motivos. Aumentar velocidade, diminuir custos, otimizar recursos, etc.
• São programas de computador, junto com manuais, especificações, planos de teste, etc.
• Então está claro a diferença? Software X Sistema
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Projeto• Envolve a antecipação de algo desejável que ainda não
foi realizado, traz a idéia de pensar uma realidade que ainda não aconteceu. O processo de projetar implica analisar o presente como fonte de possibilidades futuras (FREIRE e PRADO, 1999).
• Exemplos:
• Construção de uma casa;
• Desenvolvimento de uma página da internet.
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
8
Engenharia de Software
• Aplicação da disciplina de técnicas no
desenvolvimento e manutenção de software.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
Contexto
(Problema)
E.S. Produto de
Software
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
9
Introdução à Engenharia de Software
• A Engenharia de Software objetiva:
• Prover métodos (“como fazer”), ferramentas
e procedimentos (sequência em que os
métodos serão aplicados) para o
desenvolvimento de software de maneira
que ele atinja seus objetivos.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Técnicas e Projeto de Sistemas – Técnico Subsequente 10
A IMPORTÂNCIA DA ENGENHARIA DE SOFTWARE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
11
Introdução à Engenharia de Software
• Por que devemos nos preocupar com o
processo de desenvolvimento do software?
• O estudioso Pressman afirma que o software de
computador é a tecnologia mais importante
atualmente no mundo, pois:
• Alterou modelos de negócios (e-commerce);
• Aumentou perspectivas da ciência (genética);
• Potencializou as telecomunicações;
• Revolucionou a indústria cinematográfica.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
12
Introdução à Engenharia de Software• As potências econômicas são dependentes
de software;
• Como consequência, mais e mais
empresas dependem de software para
obter sucesso na sua área de atuação;
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
13
Introdução à Engenharia de Software
• O software é diferente de outros produtos pois:
• Possui invisibilidade, uma vez que não pode ser representado
por estruturas geométricas ou embutido em um espaço
físico:
• É visto como um produto de pensamentos e de fácil alteração;
• Requer boa habilidade dos projetistas para extrair informações
dos clientes;
• Necessita de boa comunicação entre os desenvolvedores para
que o “mesmo software” seja desenvolvido por todos.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
14
Roteiro da aula 3
• Tema: Processo de Desenvolvimento de
Software.
• Engenharia de Software;
• Processo de Desenvolvimento de Software;
• Ciclos de Desenvolvimento de Software;
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Relembrando:
• Definição de Engenharia de Software:
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
16
Introdução à Engenharia de Software
• A Engenharia de Software objetiva:
• Prover métodos (“como fazer”), ferramentas
e procedimentos (sequência em que os
métodos serão aplicados) para o
desenvolvimento de software de maneira
que ele atinja seus objetivos.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
17
Engenharia de Software
• Um software deve, de forma geral, atender os
seguintes objetivos:
• Funcionalidade;
• Custo;
• Tempo;
• Desempenho;
• Padrões;
• Leis;
• Atender as partes interessadas (stakeholders).
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
18
Engenharia de Software
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
Mas como posso atingir todos esses objetivos???
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
19
Engenharia de Software
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
Seguindo um processo de desenvolvimento de software!!
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
20
Processo de Desenvolvimento de Software
• Processo:
• É uma sequência de passos que devem ser seguidos para
se atingir determinado objetivo.
• Processo de desenvolvimento de software:
• Também chamado simplesmente de processo de
software;
• Objetiva a construção de um software;
• Sub processos:
• Requisitos, análise, desenho, implementação e teste.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
21
• O ponto de partida então é seguir um ciclo de
vida:
• É uma interação entre os processos; descreve as
fases que o software vai passar;
• Baseado em:
• Complexidade;
• Risco;
• Tamanho da equipe;
• Necessidade do cliente.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
Processo de Desenvolvimento de Software
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
22
Introdução à Engenharia de Software
• Principais modelos de ciclo de vida do
software:
• Codifica-remenda;
• Cascata;
• Prototipagem evolutiva ou incremental;
• Espiral;
• Entrega evolutiva;TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
23
Ciclos de Vida de Software
• Codifica-remenda:
• Partindo de uma especificação incompleta
• Alto risco;
• Impossível de gerenciar;
• Não permite assumir compromissos confiáveis
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
Especificação??? Produto
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Codifica-remenda
Partindo de uma especificação incompleta, ou
mesmo ausente, inicia-se a codificação do
software, que por sua vez tende a gerar “algo”.
Esse “algo gerado”, na grande maioria das vezes
não é o que o cliente deseja, mas vai sendo
alterado e consertado até que o produto atinja um
estágio que permita seu uso. Nenhum processo é
seguido nessa iteração.
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Ciclos de Vida de Software• Clássico ou Cascata:
• Foi o primeiro modelo a ser conhecido em engenharia de software e está na base de muitos ciclos de vida utilizados nos dias de hoje.
• Cada passo deve ser completado antes que o próximo passo possa ser iniciado.
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
26
Ciclos de Vida de Software
• Clássico ou Cascata:
• Sequencial;
• Rígido;
• Burocrático;
• Não prevê correções nas fases posteriores;
• O cliente só vê o resultado no final do projeto;
• Indicado para projetos pequenos.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
27
Ciclos de Vida de Software
Clássico ou Cascata:
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
início
Final
Requisitos
Análise
Desenho
Implementação
Teste
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Ciclos de Vida de Software• Espiral:
• O modelo espiral é mais adequado para sistemas complexos e que exijam um alto nível de interações com os usuários, a fim de possibilitar a abordagem de todos os problemas desse sistema.
• Usado com mais frequência em grandes projetos.
• Maior controle sobre os riscos do projeto, tornando o processo de construção de um produto complexo mais seguro.
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
29
Ciclos de Vida de Software
• Espiral:
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
1 2
34
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
30
Ciclos de Vida de Software
• Prototipagem evolutiva ou incremental:
• Baseado no modelo espiral;
• Ao final de cada volta o usuário tem acesso a um
protótipo;
• Útil para aprovações de ideias e coleta de novos
requisitos;
• Desvantagem:
• Cliente insiste que o protótipo seja, com ligeiras
modificações, a versão final do produto.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
31
Ciclos de Vida de Software
• Prototipagem evolutiva:
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
32
Ciclos de Vida de Software
• Entrega evolutiva:
• Segue o modelo espiral somente a partir da fase
desenho detalhado;
• Modelo bastante utilizado na prática;
• Exige uma boa fase de requisitos, análise e
desenho alto nível.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
33
Ciclos de Vida de Software
• Entrega evolutiva:
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
início
Final
Requisitos
Análise
Desenho de alto nível
Implementação
Teste
Desenho detalhado
Produto completo
?Sim
Não
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
34
Ciclos de Vida de Software
• Quase-espiral:
• Bastante aceito na prática;
• É utilizado como base para outros modelos;
• Mais próximo da realidade.
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
35
Ciclos de Vida de Software
• Quase-espiral:
TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE
início
Final
Requisitos
Análise
Desenho
Implementação
Teste
Visão Geral
Produto completo?
Sim
Não
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
ATIVIDADES
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIATOCANTINSCampus Araguaína
Técnicas e Projeto de SistemasTÉCNICO SUBSEQUENTE
ANA PAULA ALVES DE LIMA
37TÉCNICAS E PROJETO DE SISTEMAS – TÉCNICO SUBSEQUENTE