Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Prof. Rodrigo Rovaron
Engenharia de Software I
Objetivos• Controle sobre o desenvolvimento de software dentro de custos, prazos e níveis de qualidade desejados;
• Produtividade no desenvolvimento e manutenção de software;
Pré-requisitos• Ler
• Escrever
• Falar
• Ouvir
O que é Software?• Segundo Pressman, em 1970 menos de 1% dos
profissionais poderiam ter definido o termo Software.
E hoje??
O que é software?• Produto que os Engenheiros de Software, projetam
e constroem.
• Engloba:
• Instruções
• Estruturas de dados
• Persistência de dados
• Documentação
Diferença entre software e hardware?
Hardware - manufaturado
Software
• No desenvolvimento de um software conceitualmente não existe um processo manual, todos os envolvidos exercem um trabalho intelectual.
Software não se desgasta como o hardware?
Como é a manutenção de um hardware? e de um software?
Curva de falha do hardware
Curva de falha do software
Curva de falha do software
Curva de falha do software
Efeitos colaterais?• Correção de erros, tendem a gerar novos erros?
• Corrigir do modo rápido ou do modo certo? Quem nunca????
• Desenvolvedores temem modificações, buscam evitá-las
• Aceitem as mudanças, requisitos de software sempre mudam
A evolução do software
A crise do software• A “crise do software” foi um termo cunhado para
descrever as dificuldades enfrentadas no desenvolvimento de software no fim da década de 60. A complexidade dos problemas, a ausência de técnicas bem estabelecidas e a crescente demanda por novas aplicações começavam a se tornar um problema sério.
Maior da complexidade• Aumento crescente por sistemas de informação
• Sistemas mais sofisticados exigem mais recursos (humanos e hardwares)
Menor confiabilidade• Maior dependência do software nos
procedimentos "normais" do cotidiano, faz com que os sistemas precisem ser mais seguros
Manutenabilidade• Imprecisão nas especificações iniciais do projeto;
• Muitas modificações exigidas pelo cliente;
• Rotatividade acentuada da equipe do projeto;
• Informações não muito bem documentadas;
• Custos elevados nos estágios finais de projeto.
Ciclo de Vida do Software• O ciclo de vida completo de um software passa pela formulação inicial do problema, pela análise, projeto, programação e pelos testes do software, e é seguido por uma fase operacional durante a qual são executados a manutenção e o aperfeiçoamento;
Processos de desenvolvimento de software• O processo de software é um conjunto de
atividades destinadas à produção e/ou evolução de um sistema. As atividades dos processos podem envolver o desenvolvimento ou a manutenção do software
• Os processos de softwares são complexos e na maioria das vezes realizados com uso de ferramentas CASE.
• Os processos de software evoluíram para explorar as capacidades das pessoas dentro das organizações e as características específicas dos sistemas.
• Atualmente existem diversos processos de software e algumas atividades são comuns entre eles, como por exemplo:
• Especificação
• Projeto de implementação
• Validação de software
• Evolução de software
Especificação• Definem-se as funcionalidades do software e as
restrições sobre suas operações
Projeto de implementação• Produção de um software que atenda à
especificação
Validação de software• O software precisa ser validado para garantir que
atendeu os requisitos pedidos pelo cliente
Evolução de software• O software deve evoluir para atender às
necessidades mutáveis do cliente
• Os processos de software podem ser aprimorados para incrementar a qualidade do produto e/ou reduzir seu tempo e custo
Modelos de desenvolvimento de software• Cascata
• Incremental
• Prototipação
• Espiral
• RAD
• RUP