Aula 01 - learnmau.files.wordpress.com · Title: Aula 01 Created Date: 8/7/2016 2:34:22 PM

Post on 21-Sep-2020

2 views 0 download

Transcript of Aula 01 - learnmau.files.wordpress.com · Title: Aula 01 Created Date: 8/7/2016 2:34:22 PM

Prof. Rodrigo Rovaron

rrovaron@gmail.com

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