Técnicas e Projeto de Sistemas
Técnico Subsequente
INSTITUTO
FEDERAL DE
Técnicas
e Projeto
de Sistemas –
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS Subsequente
Técnico
Campus Araguaína
1
Roteiro
• Tema:
Processo
de
Desenvolvimento
de
Software.
 Engenharia de Software;
 Processo de Desenvolvimento de Software;
 Ciclos de Desenvolvimento de Software;
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
2
Relembrando:
• Software
• Definição de Engenharia de Software:
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Engenharia de Software
 Aplicação da disciplina de técnicas no desenvolvimento e
manutenção de software.
Contexto
(Problema)
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
E.S.
Técnicas e Projeto de Sistemas –
Técnico Subsequente
Produto de
Software
4
Introdução à Engenharia de
Software
• A Engenharia de Software objetiva:
 Prover
métodos
ferramentas
e
(“como
fazer”),
procedimentos
(sequência em que os métodos serão
aplicados) para o desenvolvimento de
software de maneira que ele atinja
seus objetivos.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
5
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).
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
6
Engenharia de Software
Mas como posso atingir
todos esses
objetivos???
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
7
Engenharia de Software
Seguindo um processo de
desenvolvimento de software!!
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
8
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:
 Objetiva a construção de um software;
 Sub processos:
• Requisitos, análise, desenho, implementação e teste.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
9
ETAPAS DO PROCESSO DE
DESENVOLVIMENTO DO SOFTWARE
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Processo de
Desenvolvimento de Software
• 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.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
11
• Principais modelos de ciclo de vida do
software:
 Codifica-remenda;
 Cascata;
 Prototipagem evolutiva
 Incremental;
 Espiral;
 Entrega evolutiva;
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
12
Ciclos de Vida de Software
• Codifica-remenda:
Produto
Especificação???
 Partindo de uma especificação incompleta
 Alto risco;
 Impossível de gerenciar;
 Não permite assumir compromissos confiáveis
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
13
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 DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Produto
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.
• Mais utilizados em situações nos quais
os requisitos são fixos.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Ciclos de Vida de Software
Clássico ou Cascata:
início
Requisitos
Análise
Desenho
Implementação
Teste
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
Final
16
Clássico ou Cascata
(desvantagens):
 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.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
17
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
software.
• 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 DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Espiral:
1
2
3
4
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
19
Prototipagem evolutiva e
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.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
20
Prototipagem evolutiva:
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
21
Entrega evolutiva:
 Tem
como
objetivo
desenvolvimento
promover
um
conjunto
(desenvolvedor trabalhando junto com o
usuário) a fim de descobrir os requisitos
de maneira incremental.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
22
Entrega evolutiva:
Diferente do desenvolvimento
incremental, esse modelo volta sempre
à fase de definição de requisitos, num
movimento exploratório de conceitos
do produto e necessidades do usuário.
início
Requisitos
Análise
Desenho de alto
nível
Desenho detalhado
Implementação
Teste
Não
Produto
completo?
Sim
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
Final
23
Ciclos de Vida de Software
• Documentos gerados:
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
24
Ciclos de Vida de Software
• Documentos gerados:
 Requisitos:
• Visão geral, conceitos de operações, requisitos funcionais, não
funcionais...
 Análise:
• Detalhamento dos requisitos, diagrama de casos de uso,
casos de uso reais, divisão de módulos...
 Design:
• Diagrama de BD, DFD (Diagrama de Fluxo de Dados),
Classes, Sequencia...
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
25
Ciclos de Vida de Software
• Documentos gerados:
 Implementação:
• Código comentado, resultado de testes unitários...
 Teste:
• Plano de teste, documento de execução de testes...
 Implantação:
• Diagrama de implantação, tutoriais, treinamentos...
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
26
Atividade – Valor 2,0 pontos
1.
Em sua opinião, como a engenharia de software pode ajudar no atendimento
aos objetivos do software?
2.
Descreva os ciclos de vida de software destacando os riscos associados a
cada um deles: Codifica-remenda; Cascata; Espiral; Prototipagem evolutiva.
3.
Você irá abrir uma empresa de desenvolvimento de software com outros 3
colegas. Qual dos ciclos de vida de software vistos até o momento você
utilizaria? Por que?
4.
Você consegue descrever um cenário onde seja interessante o uso de todos
esses processos de ciclo de vida ou, em sua opinião, é uma “perda de tempo”
criar tanta documentação para desenvolver um software? Justifique sua
resposta.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
27
5. Pressman afirma que “Software de computador é a tecnologia
mais importante atualmente no mundo”. Você concorda com
essa afirmação? Justifique sua resposta.
6. Escreva, com suas palavras, quais são as características que
diferenciam o software de outros produtos?
7. Na sua opinião, o que é engenharia de software (ES)? Por que
é importante seguir um processo de no desenvolvimento de
software?
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
28
Download

Técnicas e Projeto de Sistemas