ifsc – câmpus chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-introducao-a... ·...

121
Engenharia de Software Lara Popov Zambiasi Bazzi Oberderfer IFSC – Câmpus Chapecó [email protected] http://professores.chapeco.ifsc.edu.br/lara/eng/

Upload: others

Post on 02-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Engenharia de Software

Lara Popov Zambiasi Bazzi OberderferIFSC – Câmpus Chapecó

[email protected]://professores.chapeco.ifsc.edu.br/lara/eng/

Page 2: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

2

Objetivos∗Compreender o que é Engenharia de

Software e por que ela é importante.

∗Mostrar as distinções e relacionamentos entre sistema e software.

∗Mostrar as principais questões sobre engenharia software.

∗Compreender questões profissionais e éticas relevantes para os engenheiros de software.

Page 3: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

3

Por que?

∗Por que tanta demora para entregar o sistema?

∗Por que os prazos se atrasam?∗Por que os custos são altos?∗Por que não achar todos os erros

antes de entregar?∗Por que é difícil medir o progresso do

desenvolvimento de um software?

Page 4: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

4

No mercado atual, não há dúvida de que os profissionais de TI envolvidos com projetos de

desenvolvimento de software e soluções corporativas têm um

claro desafio:

Desafio

Page 5: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

5

PRODUZIR soluções mais rápidas, melhores e mais baratas

que antes (melhor ainda ser mais rápidas, melhores e mais baratas

que a concorrência)

Desafio

Page 6: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

6

∗Desenvolver software é um problema de métodos e técnica, em suma, de atividade humana.

∗Gerenciar projetos de TI é gerenciar riscos assumidos e vencidos por seres humanos inteligentes.

Desafio

Page 7: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

7

Evolução do Software

Período Evolução

1950-1960 Orientação a batch

Software totalmente customizado

Distribuição limitada

1960-1970 Multiusuários

Tempo Real

Banco de Dados

Page 8: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

8

Desafio

Período Evolução

1980-1990 Sistemas distribuídos

Inteligência Embutida

Hardware de baixo custo

1990-2000 Sistemas de desktop poderosos

Tecnologia orientada a objeto

Sistemas Especialistas....

Page 9: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

9

Desafio

Período Evolução2000 - atual As tecnologias orientadas a

objetosUso das técnicas de "quarta geração" para o desenvolvimento de softwareOs sistemas especialistas e o software de inteligência artificial.

Page 10: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

10

Aplicação do Software

Básico Coleção de programas escritos para apoio a outros programas.

Tempo Real Software que monitora / analisa / controla eventos do mundo real.

Comercial Processa informações comerciais, reestruturação de dados para tomada de decisões.

Científico e de

engenharia

Algoritmos de processamento de números(astronomia,vulcanologia).

Page 11: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

11

Aplicação do Software

Embutido usado para controlar produtos e sistemas para os mercados industriais e de consumo.

Computador Pessoal

Processamento de textos, planilhas, computação gráfica.

Inteligência Artificial

faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta.

Page 12: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

12

O que é Sistema?

é um conjunto de elementos inter-dependentes que realizam

operações visando atingir metas

especificadas.

Page 13: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

13

Sistema de Computação

é aquele destinado ao suporte ou

automação de tarefas através de

processamento de informações.

Page 14: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

14

Componentes de Sistemas deComputação

Hardware Computadores,periféricos e redes.

Software Os programas e arquivos de dados.

Usuários Usuários e operadores que realizam as tarefas e procedimentos.

Page 15: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

15

Componentes de Sistemas deComputação (cont.)

ProcedimentosAtividades realizadas pelos usuários e operadores, bem como pelos programas.

DocumentaçãoManuais e formulários que descrevem as operações do sistema.

Page 16: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

16

Exemplos de Sistemas Computacionais

∗ Automação Bancária

∗ Frequência e Folha de Pagamento

∗ Controle de Tráfego Urbano

∗ Controle Acadêmico

∗ Editoração de Jornais e Revistas

∗ Controle de Elevadores

∗ Automação de Biblioteca

Page 17: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

17

O que é Software?

∗Programas de computadores associados a documentação.

∗É um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real.

Page 18: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

18

Tipos de produtos de software

∗Genéricos (COTS – Commercial Off-The Shelf) - tipo stand-alone, pacotes de software, como por exemplo, processadores de texto, ferramentas de gerenciamento.

∗Sob encomenda ( personalizado) –desenvolvido para um cliente em particular.

Page 19: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

19

Componentes do Software

Plano Especificação

de Requisitos

Projeto Listagem

Plano de

Testes

Estruturasde Dados

Programa

Funcionando

Page 20: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

20

Características do Software

∗Complexidade

∗Conformidade

∗Mutabilidade

Page 21: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

21

Características do Software

∗Complexidade

– Software é mais complexo do que qualquer outro produto construídos por seres humanos.

Page 22: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

22

Características do Software∗Conformidade

– O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software.

–Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial).∗Sucesso é medido pela qualidade e não

quantidade.

Page 23: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

23

Características do Software∗Mutabilidade

– Existe sempre uma pressão para se fazer mudanças em um software.

–Não se “desgasta”, mas se deteriora devido as mudanças.

–A maioria é feita sob medida em vez de ser montada a partir de catálogos de componentes existentes (reusabilidadede software).

Page 24: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

24

Falhas do Hardware

tempo

“desgaste”“mortalidadeinfantil”

índice de falhas

Defeitos de projeto e manufatura

ProblemasAmbientais(poeira, vibração, abuso, temperaturas, ...)

Page 25: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

25

Falhas do Softwaremudanças

índice de falhas

curva real

curva idealizada

tempo

Page 26: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

26

Falhas do Hardware/Software∗ Quando um componente de hardware se desgasta é

substituído por uma “peça de reposição”

∗ Não existe “peça de reposição” para software

–Toda falha indica um erro no projeto ou no processo de tradução para o código executável

–Manutenção do software é mais complexa do que a do hardware

Page 27: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

27

Formas do Software

Page 28: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

28

Falhas na Comunicação

Page 29: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

29

Page 30: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

30

Page 31: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Crise do Software

31

Page 32: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

32

Crise do Software

∗Refere-se a um conjunto deproblemas encontrados nodesenvolvimento de software.

∗Problemas não se limitam asoftwares que não funcionam adequadamente.

Page 33: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

33

Crise do Software

∗Prazos ultrapassados

∗Custos acima do previsto

∗Não atendimento dos requisitos do usuário

Page 34: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

34

∗Elevado custo de manutenção–1/3 dos projetos são cancelados

–2/3 dos projetos extrapolam o orçamento

∗Custo hardware x software– 1970 = 8:2

– 1991 = 2:8

– Hoje = 1:9

Crise do Software

Page 35: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

35

∗As estimativas de prazo e de custo são imprecisas:– Não dedicamos tempo para coletar

dados sobre o processo dedesenvolvimento de software

– Estimativas são feitas a olho, comresultados ruins

–Os prazos arrastam-se por meses

Crise do Software

Page 36: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

36

∗As estimativas de prazo e de custo são imprecisas (cont.)– Causa insatisfação para o cliente e

falta de confiança.– Sem nenhuma indicação sólida de

produtividade, não podemos avaliarcom precisão a eficácia de novasferramentas, métodos ou padrões.

Crise do Software

Page 37: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

37

Crise do Sofware

∗A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços

– Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente

Page 38: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

38

Crise do Sofware∗O software existente é muito difícil

de manter:

– A tarefa de manutenção devora o orçamento destinado ao software

– A facilidade de manutenção não foienfatizada como um critérioimportante.

Page 39: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

39

Crise do Sofware

Solução para a Crise do Sofware:

Engenharia de Software aliada a:

TÉCNICAS E FERRAMENTAS

Page 40: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

40

Causas dos problemas associados à crise de software

∗Filosofia do Software.

∗Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software.

∗Mitos do Software.

Page 41: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ O software é um elemento de sistemalógico e não físico.

∗Consequentemente, o sucesso émedido pela qualidade de uma únicaentidade e não pela qualidade demuitas entidades manufaturadas.

41

Filosofia do Software

Page 42: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

42

Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software

∗ Gerentes sem nenhum backgroundem software.

∗ Os profissionais da área de software ∗ têm recebido pouco treinamento∗ formal em novas técnicas para o∗ desenvolvimento de software.

∗ Resistência a mudanças.

Page 43: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Mitos do Software

Mitos do Administrativos, do Cliente e do Profissional

43

Page 44: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

44

Problemas Administrativos

∗Gerentes se encontram sob pressão∗ manter orçamentos∗ evitar que os prazos sejam

ultrapassados∗ melhorar a qualidade

Page 45: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

45

Mitos Administrativos

∗Mito: Já temos um manualrepleto de padrões e procedimentos para a construção de software.

Page 46: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

46

Mitos Administrativos

∗Realidade:– Será que o manual é usado?– Os profissionais sabem que ele

existe?– Ele reflete a prática moderna de

desenvolvimento de software? –Ele é completo?

Page 47: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

47

Mitos Administrativos

∗Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores.

Page 48: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

48

Mitos Administrativos

∗Realidade:—É preciso muito mais do que os mais

recentes computadores para se fazer um desenvolvimento de software de alta qualidade.

—Ferramentas de Engenharia de Software Auxiliada por Computador - CASE (Computer-Aided Software Engineering) são mais importantes do que o hardware.

Page 49: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

49

Mitos Administrativos

∗Mito:

Se nós estamos atrasados nos

prazos, podemos adicionar mais

programadores e tirar o atraso.

Page 50: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

50

Mitos Administrativos

∗Realidade:–O desenvolvimento de software não

é um processo mecânico igual à manufatura.

–Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas.

Page 51: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

51

Mitos dos Clientes

∗Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas -podemos preencher os detalhes mais tarde.

Page 52: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

52

∗Realidade:

–Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software.

–É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação.

Mitos dos Clientes

Page 53: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

53

Mitos dos Clientes

∗Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.

Page 54: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

54

∗Realidade:– Requisitos podem ser mudados, mas o

impacto varia de acordo com o tempo que é introduzido (projeto e custo).

– Uma mudança, quando solicitada tardiamente num projeto, é mais dispendiosa do que a mesma mudança solicitada nas fases iniciais.

Mitos dos Clientes

Page 55: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

55

Mitos do Profissional

∗Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

Page 56: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

56

∗Realidade:

– Os dados da indústria indicamque entre 50 e 70% de todoesforço gasto num programaserão despendidos depois queele for entregue pela primeiravez ao cliente

Mitos do Profissional

Page 57: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

57

∗Mito: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

Mitos do Profissional

Page 58: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

58

∗Realidade:

– Mecanismo (Revisão Técnica Formal) de garantia de qualidade de software é aplicado desde o começo do projeto.

∗Revisões de software são um “filtro de qualidade” - descobre erros/defeitos.

Mitos do Profissional

Page 59: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

59

∗Mito: A única coisa a ser entregue em um projeto bem sucedido é o programa funcionando.

Mitos do Profissional

Page 60: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

60

∗Realidade:

–Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software.

A DOCUMENTAÇÃO é o alicerce

Mitos do Profissional

Page 61: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

61

Categorias de Tamanho de Softwares

Categoria Tamanho daEquipe

Duração Tamanho do Fonte

(linhas de código)

Trivial 1 1-4 semanas 500

Pequeno 1 1-6 meses 1000 a 2000

Médio 2-5 1-2 anos 5 mil a 50 mil

Grande 5-20 2-3 anos 50 mil a 100 mil

Muito grande 100-200 4-5 anos 1 milhão

Extremamentegrande

2000-5000 5-10 anos 1 a 10 milhões

ex: O Win 95: teve 11 milhões de linhas e 200 programadores / O Nestscape teve 3 milhões de linhas e 120 programadores

Page 62: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

62

Solução∗Reconhecer os problemas e suas causas

e desmascarar os mitos do software são os primeiros passos

∗Métodos e Técnicas para disciplinar o processo de desenvolvimento do software.

.

Page 63: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

63

Aspectos históricos da Engenharia de Software

∗1968 Conferência da OTAN

∗Objetivo: resolver a “Crise do Software”

∗Software é entregue

– Atrasado

– Com orçamento estourado

– Com falhas residuais

Page 64: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

64

∗Eles não encontraram uma solução, mas definiram uma meta: Engenharia de Software.

∗Custo do hardware decrescente e custo do software em ascensão.

Aspectos históricos da Engenharia de Software

Page 65: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Conceitos

65

Page 66: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

66

O que é Engenharia de Software?

∗Fritz Bauer – 1969 ( primeira definição)

“O estabelecimento e uso de sólidos

princípios de engenharia para que se

possa obter economicamente um

software que seja confiável e que

funcione eficientemente em

máquinas reais”

Page 67: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

67

∗IEEE, 1993“A aplicação de uma abordagem sistemática,

disciplinada e quantificável para o

desenvolvimento, operação e manutenção

do software. O estudo de abordagens e

princípios a fim de obter economicamente

softwares confiáveis e que executem de

forma eficiente nas máquinas reais”

O que é Engenharia de Software?

Page 68: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

68

Programador (técnicas) Engenheiro (técnicas)

1. Paradigma de tentativa e erro

1. Paradigma adaptado ao escopo do sistema

2. Estrutura de Dados 2. Análise e Projeto

3. Linguagens de Programação

3. Ferramentas CASE e SGBD´s

O que é Engenharia de Software?

Page 69: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

69

∗É uma disciplina que integra métodos,ferramentas e procedimentos para o desenvolvimento de software de computador.

∗Possibilitar ao gerente o controle do processo de desenvolvimento.

∗Oferecer ao profissional uma base para a construção de software de alta qualidade.

O que é Engenharia de Software?

Page 70: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

70

∗Proporcionam os detalhes de “como fazer” para construir o software.

∗Envolvem um amplo conjunto de tarefas.

∗Um método de ES é uma aproximação estruturada para o desenvolvimento de software.

O que é Engenharia de Software?

Page 71: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

71

∗Todos os métodos pretendem

–Criar modelos do sistema que possam ser representados graficamente;

–Usar estes métodos como especificação.

Engenharia de Software - Método

Page 72: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

72

∗Década de 70 (DeMarco e Jackson):∗Orientado à função.

∗80s-90s (Booch e Rumbaugh):∗Métodos orientados a objeto.

∗Atualmente os diferentes métodos estão integrados numa aproximação unificada baseada em Unified Modeling Language (UML).

Engenharia de Software - Método

Page 73: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

73

Engenharia de Software - Método

Page 74: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

74

•Métodos devem incluir os seguintes componentes:

–Descrição gráficas

–Regras

–Recomendações

–Diretrizes de processo

Engenharia de Software - Método

Page 75: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

75

∗Descrição gráficas.

Descrições dos modelos do sistema que deverão ser desenvolvidos e da notação usada para os definir.

Ex. Modelos de objetos, fluxos de dados etc.

Engenharia de Software - Método

Page 76: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

76

• Regras Restrições que se aplicam a modelos de

sistema. Ex.Cada entidade deve ter um único nome.

• Recomendações Conselho em prática de projeto. Ex.Nenhum objeto deve ter mais que sete

subobjetos.

Engenharia de Software - Método

Page 77: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

77

∗Diretrizes de processo – Descrição das atividades que

podem ser seguidas.–

–Atributos de objetos devem ser documentados.

Engenharia de Software - Método

Page 78: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

78

∗ Fornecem suporte automatizado ou semi- automatizado aos métodos.

∗Existem atualmente ferramentas para sustentar cada um dos métodos.

∗Quando as ferramentas são integradas é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE.

Engenharia de Software - Ferramentas

Page 79: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

79

O que é CASE(Computer-Aided Software Engineering)

∗Upper-CASE - Ferramenta para dar apoio às fases iniciais do processo de software.

∗Lower-CASE - Ferramenta para dar apoio à implementação a aos testes.∗Ex.(Poseidon para UML , ArgoUML

..)

Page 80: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

80

∗ Constituem o elo de ligação que mantém juntos os métodos e as ferramentas para desenvolvimento do software.

∗ Sequência em que os métodos serão aplicados.

∗ Controles que ajudam assegurar a qualidade e coordenar as alterações.

∗ Marcos de referência que possibilitam administrar o progresso do software.

Engenharia de Software - Procedimentos

Page 81: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

81

Procedimentos

Métodos

Ferramentas

Resultados

Engenharia de Software - Procedimentos

Page 82: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

82

Princípios da Engenharia de Software

∗Todo engenheiro de software deve desenvolver com:

1. – Rigor e Formalidade2. – Separação de interesses3. – Modularidade4. – Abstração5. – Antecipação de mudanças6. – Generalidade7. – Possibilidades de evolução

Page 83: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

83

∗Rigor e Formalidade O rigor é a abordagem que produz

produtos mais confiáveis pelo controle das variáveis envolvidas. Formalidade é o requisito de que o processo seja dirigido e avaliado por leis matemáticas.

Princípios da Engenharia de Software

Page 84: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

84

∗Separação de interessesSeparar conceitos permite-nos trabalhar com aspectos individuais e diferentes de um mesmo problema. Esta separação facilita o entendimento, focando a atenção em certas características mais significativas.

Princípios da Engenharia de Software

Page 85: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

85

∗Modularidade

Consiste na divisão de sistemas complexos em partes menores e mais simples (módulos) com características desejáveis (coesão e acoplamento).

Princípios da Engenharia de Software

Page 86: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

86

∗Modularidade (cont.)∗ Decomposição é o ato de dividir um

problema original em subproblemas recursivamente.

∗Composição é o ato de juntar os elementos componentes de um problema até chegar ao sistema completo. Ajuda na manutenção do sistema.

Princípios da Engenharia de Software

Page 87: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

87

∗Antecipação de mudançasSistemas de softwares são desenvolvidos enquanto seus requisitos ainda não estão totalmente claros. Quando o sistema é finalmente liberado, novos requisitos podem ser descobertos e velhos requisitos atualizados através do “feedback” do usuário.

Princípios da Engenharia de Software

Page 88: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

88

∗Generalidade / EspecialidadeSoluções genéricas tendem a ser mais caras em termos de recursos e em tempo de desenvolvimento, ao contrário das soluções específicas. No processo de produção de software estas questões devem ser cuidadosamente analisadas.

Princípios da Engenharia de Software

Page 89: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

89

∗IncrementabilidadeCaracteriza o processo em modo passo a passo, incrementalmente. O objetivo desejado é atingido por aproximações sucessivas. Útil quando os requisitos iniciais não foram todos obtidos antes do início do desenvolvimento da aplicação.

Princípios da Engenharia de Software

Page 90: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

90

Quais os custos da Engenharia de Software?

∗A distribuição dos custos através do processo de software depende do processo usado e do tipo de software a desenvolver.

∗Custos de desenvolvimento de um software complexo quando se conseguem definir custos separadamente para especificação, desenho, implementação, integração e testes.

Page 91: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

91

Quais os custos da Engenharia de Software?

Análise de Requisitos

5%Integração8%

Teste7%

Desenv.5%

Design6%Manutenção

69%

Page 92: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

0 25 50 75 100

Especificação Desenho Desenvolvimento Integração e Tes te

�Custos segundo aproximação evolutiva

0 25 50 75 100

Especificação Desenvolvimento Evolutivo Testes do Sis tema

92

Quais os custos da Engenharia de Software?

Page 93: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

� Custos de desenvolvimento de produtos de software genéricos:

0 25 50 75 100

Especificação Desenvolvimento Teste

93

�Custos relativos entre desenvolvimento e manutenção do software0 25 50 75 100

Desenvolvimento Manutenção

Quais os custos da Engenharia de Software?

Page 94: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

94

Custo em relação a falhas

Page 95: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

95

Impacto dos custo de manutenção

• Manutenção corretiva [aproximadamente 20%]

– 60 a 70% das necessidades de correção são falhas de especificação ou design.

• Manutenção evolutiva (melhoria)– Aperfeiçoamento [aproximadamente 60%]

– Adaptação [aproximadamente 20%]

Page 96: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

96

Principais desafios enfrentados pela Engenharia de Software

∗Sistemas de legado - Devem ser mantidos e devem ser atualizado.

∗Heterogeneidade - Operar com sistemas distribuídos e incluem uma mistura de hardware e software.

∗Fornecimento - Entrega mais rápida de software.

Page 97: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

97

Responsabilidade profissional e ética

∗Confiabilidade – respeitar a confiabilidade de seus empregadores ou clientes.

∗Competência – os engenheiros não devem aceitar serviços que estejam for a do seu limite de competência.

Page 98: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

98

∗Direito de propriedade intelectual –os engenheiros devem estar cientes das leis locais que regulam o uso da propriedade intelectual, como patentes e direitos autorais.

Responsabilidade profissional e ética

Page 99: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Organização da Engenharia de Software

99

Page 100: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Ferramentas

Métodos de Software

Processo de Software

Alta Qualidade e Baixo Custo

100

Engenharia de Software em Camadas

Page 101: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Atributos de um bom software:∗ Facilidade de manutenção

∗ Confiança

∗ Eficiência

∗ Usabilidade, etc...

101

Qualidade de Software

Page 102: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Conjunto de atividades (e seus resultados) cujo objetivo é o desenvolvimento de software.

∗ O processo oferece estabilidade, controle e organização no ciclo de desenvolvimento.

∗ Atividades principais:∗ Especificação

∗ Desenvolvimento

∗ Validação

∗ Evolução 102

Processo de Software

Page 103: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Abordagens estruturadas para desenvolvimento de software.

∗ Os métodos fornecem técnicas de como fazer.

∗ Os métodos incluem:∗ Modelos,

∗ Noções,

∗ Regras,...

103

Métodos de Software

Page 104: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Fornecem apoio automatizado para o processo e para os demais métodos.

∗ Exemplo: ferramentas de modelagem do processo:∗ Permitem definir ações, tarefas, produtos, etc. de um

modelo de processo

104

Ferramentas

Page 105: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Desenvolvimento de Software

105

Page 106: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

1. Especificação de Requisitos

2. Projeto de Software

3. Implementação

4. Validação de Software

5. Evolução do Software

106

Atividades do Desenvolvimento de Software

Page 107: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Um sistema de software deve satisfazer as necessidades de seus usuários∗ Tais necessidades são expressas na forma de requisitos

∗ Requisito = ação que deve ser executada pelo sistema

∗ Ex: registrar as notas dos alunos, calcular a média final,

verificar aprovação, etc.

107

Especificação de Requisitos

Page 108: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗Inclui quatro fases principais:∗ Estudo de viabilidade

∗ Elicitação (ou análise) de requisitos

∗ Especificação de requisitos

∗ Validação dos requisitos

108

Especificação de Requisitos

Page 109: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Dividido em duas etapas:

∗ Projeto Preliminar define a estrutura modular do software, as interfaces e as estruturas de dados utilizadas∗ Modelo de Arquitetura

∗ Projeto Detalhado descreve detalhadamente cada módulo definido do projeto preliminar ∗ Modelo de Projeto

109

Projeto de Software

Page 110: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

110

Projeto de uma Casa

Page 111: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

111

Projeto de Software

Usuário

-cpf#codigo-nome#login-senha-funcao-rg-endereco-cidade-estado-pais-cep-telefone#email-permissao

+getCpf()+setCpf()+getCodigo()+setCodigo()+getNome()+setNome()+getLogin()+setLogin()+getSenha()+setSenha()+getFuncao()+setFuncao()+getRg()+setRg()+getEndereco()+setEndereco()+getCidade()+setCidade()+getEstado()+setEstado()+getPais()+setPais()+geCep()+setCep()+getTelefone()+setTelefone()+getEmail()+setEmail()+getPermissao()+setPermissao()+marcar_horario()+desmarcar_horario()+verificar_horario()+fazer_login()

FormaDePagamento

-data#codigo-valor-tipo

+escolher_pagamento()+getData()+setData()+getCodigo()+setCodigo()+getValor()+setValor()+getTipo()+setTipo()

1..*

1

Calendário

-dia-mes-horario

+montar_calendario()+alterar_calendario()+getDia()+setDia()+getMes()+setMes()+getHorario()+setHorario()

Serviço

-tipo-quantidade-valor-tempo

+calcular_servico()+escolher_servico()+getTipo()+setTipo()+getQuantidade()+setQuantidade()+getValor()+setValor()+getTempo()+setTempo()

1..* 1..*

1..*

1..*

1..*

1

Page 112: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ A implementação segue as definições da fase anterior

∗ Transcreve as decisões de projeto arquitetural e detalhado para uma linguagem de programação

∗ Abordado em outras disciplinas AEDS 1 e 2, Programação Orientada a Objetos, Programação Orientada a Eventos, etc.

112

Implementação

Page 113: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Tem por objetivo garantir que o sistema satisfaça os requisitos

∗ Consiste da realização de alguns tipos de testes para encontrar erros

∗ A inexistência de erros não representa a adequação operacional do sistema∗ Deve ser feita a validação com o cliente

113

Validação e Testes

Page 114: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

114

Validação e Testes

Localizar Erro

Projetar Reparo

Reparar Erro

Re-testar

Page 115: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ Teste de Componente (unitário)

∗ Garantir que um componente funciona

∗ Teste de Sistema (integração)

∗ Garantir que dois ou mais componentes funcionam juntos

∗ Teste de Aceitação (validação)

∗ Garantir que o sistema faz o que o cliente deseja

115

Validação e Testes

Page 116: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

∗ O custo de manutenção é geralmente muito maior que o custo de desenvolvimento

∗ Cada vez menos sistemas são desenvolvidos “do zero”∗ Sistemas são desenvolvidos/adaptados a partir de

outros sistemas

∗ Faz sentido considerar desenvolvimento e manutenção como atividades contínuas

116

Manutenção e Evolução

Page 117: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

117

Resumindo Engenharia de Software

∗Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software.

∗Produção da documentação formal destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários.

Page 118: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

118

Resumindo Engenharia de Software

∗Encontrar caminhos para se "construir" softwares de qualidade.

∗Fatores externos, perceptíveis aos usuários e clientes, devem ser distinguidos dos fatores internos, perceptíveis aos projetistas e implementadores.

Page 119: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

119

∗A manutenção de software, que consome grande parte dos custos do software, é penalizada pela dificuldade em se implementar mudanças no software produto, e pela excessiva dependência dos programas da estrutura física dos dados que eles manipulam.

Resumindo Engenharia de Software

Page 120: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

120

Prática

∗Visualizando a informática em uma empresa, cite exemplos de:

∗Mitos utilizados pelo analista ou pelo administrador de uma empresa específica.

∗Falhas que ocasionaram grandes custos.

∗Falhas que ocasionaram mudanças de projetos.

Page 121: IFSC – Câmpus Chapecóprofessores.chapeco.ifsc.edu.br/lara/files/2013/03/1-Introducao-a... · ∗Sob encomenda ( personalizado) ... ∗têm recebido pouco treinamento ∗formal

Referencias Bibliográficas

121

Capítulo 1Introdução à Engenharia de Software

Slides do Livro do Sommerville, 2000Disponíveis em inglês em www.software-engin.com

Traduzidos por Jacinta PereiraGraduando do Curso de Letras da UFC

Apresentados por Lara Popov ZambiasiIFSC – Câmpus Chapecó

[email protected]://professores.chapeco.ifsc.edu.br/lara/eng/