87
Modelagem de Sistemas Alcides Calsavara

Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Embed Size (px)

Citation preview

Page 1: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Modelagem de Sistemas

Alcides Calsavara

Page 2: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 2

Sumário

Page 3: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 3

Engenharia de Software

• Abstração: conceitos, construtos, métodos etc.• Base matemática: raciocínio rigoroso sobre

objetos e estruturas puramente abstratas.• O processo mental que atualmente usamos em

matemática deve ter sido adqüirido – e passado a ser usado – bem antes dos Sumérios introduzirem os números abstratos, algo entre 8.000 e 5.000 anos atrás.

Page 4: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 4

Realidade e Software

Percepção da Realidade

Sistema de Software

observador

implementador

Page 5: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 5

Modelagem e Formalização

Percepção da Realidade

Sistema de Software

Modelos

observador

formalizador

implementador

Page 6: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 6

Refinamento de Modelos

Percepção da Realidade

Sistema de Software

Modelo 1

observador

formalizador

implementador

Modelo n-1

...

Page 7: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 7

Refinamento de Modelos

Percepção da Realidade( Modelo 0 )

Sistema de Software( Modelo n )

Modelo 1

observador

formalizador

implementador

Modelo n-1

...

Page 8: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 8

Refinamento de Modelos

Percepção da Realidade( Modelo 0 )

Sistema de Software( Modelo n )

Modelo 1

observador

formalizador

implementador

Modelo n-1

...

Conceitual

Físico

Page 9: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 9

Percepção da Realidade

• A percepção da realidade por um observador depende da sua interpretação dos fatos.

• O formalizador constrói um modelo de acordo com a sua percepção da percepção da realidade do observador.

• O formalizador passa a ter a sua própria percepção da realidade.

Page 10: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 10

Mutabilidade

• A realidade muda.• A percepção da realidade muda.• A percepção da percepção da realidade muda.• Os recursos de software mudam.

– Conceitos– Linguagens– Métodos– Ferramentas– Plataformas

Page 11: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 11

Orientação a Objetos

• Paradigma dominante para implementação.• Paradigma promissor para modelagem

conceitual.• Derivado da noção de tipo abstrato de

dados: conceito algébrico que se aplica a objetos matemáticos.

• Mapeamento: objetos da realidade para objetos matemáticos.

Page 12: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 12

Sistema Orientado a Objetos

• Um sistema orientado a objetos é uma coleção de objetos (de software) que interagem entre si.

• Um objeto interage com outro através de uma mensagem que causa um estímulo.

Page 13: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 13

Interação entre Objetos

Page 14: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 14

Ativação de Objetos

• Um estímulo ativa um objeto: causa a execução de um método (ou operação).

• Um estímulo pode ser:– uma invocação explícita de um método– um evento relevante para o objeto

Page 15: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 15

Execução de Métodos

invocação evento

m e

m m

Page 16: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 16

Objeto

• Comportamento– conjunto de métodos – forma como reage a estímulos

• Estado :– conjunto de valores de atributos– modifica-se de acordo com o comportamento

Page 17: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 17

Comportamento e Estado

Page 18: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 18

Métodos e Atributos

Page 19: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 19

Encapsulamento

• Os atributos de um objeto somente são acessíveis a partir dos seus próprios métodos.

• Separação dos aspectos externos de um objeto dos seus detalhes internos de implementação.

Page 20: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 20

Interface

• A interface de um objeto é o conjunto de métodos que podem ser explicitamente invocados a partir de outros objetos.

Page 21: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 21

Classe

• Descrição de um conjunto de objetos: as instâncias da classe.

• Especifica o comportamento (métodos) e a estrutura do estado (atributos) das suas instâncias.

Page 22: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 22

Estrutura de uma Classe

• Uma classe contém um conjunto de atributos e um conjunto de métodos– os atributos devem ter nomes distintos– os métodos devem ter assinaturas distintas

• Cada objeto possui um conjunto próprio de valores dos atributos e o conjunto de métodos da sua classe.

Page 23: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 23

Classes e ObjetosClasse A Classe B

Page 24: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 24

Classe e Tipo

• Implementação de um tipo abstrato de dados.

• Os atributos definidos em uma classe somente são acessíveis a partir dos métodos definidos na mesma classe.

Page 25: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 25

Tipos

• Primitivos:– números inteiros– números reais– valores lógicos (verdadeiro ou falso)– caracteres

• Classes:– atributos – métodos

Page 26: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 26

Tipo Parametrizado

• Um tipo pode receber como parâmetro uma lista de tipos.

• Exemplos:– pilha de inteiros– pilha de reais– pilha de pessoas– ...

Page 27: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 27

Método• Cada método possui uma assinatura, um

tipo de retorno (primitivo ou classe) e uma implementação.

• A assinatura de um método é composta por um nome e uma lista de parâmetros.

• Cada parâmetro tem um nome e um tipo (primitivo ou classe).

Page 28: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 28

Atributo

• A especificação de um atributo em uma classe consiste em um nome e um tipo (primitivo ou classe).

• O valor de um certo atributo (em cada instância) deve ser compatível com o tipo especificado (na correspondente classe).

Page 29: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 29

Atributos em Classes e Objetos

b = Vz = 7

Classe Ab : lógicoz : inteiro

b = Fz = -3

b = Vz = 0

Page 30: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 30

Associação entre Objetos

nome = João

Classe Pessoanome : texto

Classe Automóvelplaca : textoproprietário : Pessoa

placa = ABC 1234

Possuído-por

proprietário

Page 31: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 31

Composição de Objetos

potência = 2,0

Classe Motorpotência : real

Classe Automóvelplaca : textomotor : Motor

placa = ABC 1234

Contém

Page 32: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 32

Construção de Objetos

• Toda classe define um ou mais métodos específicos para a criação (iniciação) de novos objetos, normalmente denominados construtores da classe.

• Toda vez que um novo objeto é criado, um construtor da correspondente classe deve ser selecionado para execução.

Page 33: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 33

Tipos de Dados Abstratos (ADT)• Um ADT é um modelo matemático para descrição

de um tipo independente de sua representação física.

• Um tipo é uma coleção de objetos caracterizados através de funções, axiomas e pré-condições.

• Um objeto que pertence ao conjunto de objetos descritos por um ADT é dito ser uma instância do ADT.

Page 34: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 34

Exemplo de ADTPilha (Stack)

• Opções de representação:– array– listas– ...

• Questão básica:

Como definir formalmente uma pilha de forma independente de sua representação?

Page 35: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 35

Exemplo de ADTPrimeira Parte: Tipos

Especificação ADT para pilhas

• TYPES– STACK [G]

Page 36: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 36

Exemplo de ADTSegunda Parte: Funções

• FUNCTIONS– put: STACK[G] X G --> STACK[G]– remove: STACK[G] -/-> STACK[G]– item: STACK[G] -/-> G– empty: STACK[G] --> BOOLEAN– new: STACK[G]

Page 37: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 37

Exemplo de ADTTerceira Parte: Axiomas

• AXIOMS

Para todo x : G, s : STACK[G]

A1 - item ( put ( s, x ) ) = x

A2 - remove ( put ( s, x ) ) = s

A3 - empty ( new )

A4 - not empty ( put ( s, x ) )

Page 38: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 38

Exemplo de ADTQuarta Parte: Pré-condições

• PRECONDITIONS– remove ( s : STACK[G] ) require not empty(s)– item ( s : STACK[G] ) require not empty(s)

Page 39: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 39

Asserções

P {A} Q

A execução de A, iniciando em um estado no qual P é verdadeira, terminará em um estado no qual Q é verdadeira.

P : pré-condição

Q : pós-condição

A : uma operação (ou parte de)

Page 40: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 40

Asserções - Exemplos

• {x >= 9} x := x + 5 {x >= 13}

• {x >= 0} y := sqrt(x) { true }

• {false} y := x * x { y >= 0 }

• {not full} put(x : G) { not empty AND item = x AND count = old count + 1 }

Page 41: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 41

Invariante de Classe

• Uma invariante é uma propriedade inalterável durante todo o ciclo de vida de um objeto.

• Exemplos:– 0 <= count– count <= capacity– empty = (count = 0)

Page 42: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 42

Tratamento de Exceção

• Exceções são acontencimentos fora do comportamento normal ou desejado para um programa. O gerenciamento de exeções permite o controle sobre erros e possivelmente uma solução de contorno.

• Exemplos: entrada em formato inválido, arquivo corrompido, conexão de rede não disponível, índice inválido para vetor, ...

Page 43: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 43

Modularização

• Construção de software orientado a objetos é a construção de um sistema de software como uma coleção de implementações de ADTs possivelmente parciais.

• Um ADT corresponde a um módulo de um sistema de software.

Page 44: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 44

Classe versus Objeto

• Um classe é um elemento de construção de software. Portanto, é um elemento definido e criado estaticamente.

• Um objeto é um elemento de run-time, isto é, só existe em tempo de execução de um sistema de software. Portanto, é criado dinamicamente.

Page 45: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 45

Generalização e Especialização

• Generalização: relacionamento entre uma classe e uma ou mais versões refinadas ou especializadas da classe.

• Especialização: relacionamento inverso• Superclasse: versão mais abstrata de outra

classe, a subclasse• Subclasse: versão mais refinada de outra

classe, a superclasse

Page 46: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 46

Herança

• Mecanismo baseado em objetos que permite que as classes compartilhem atributos e métodos baseado em um relacionamento, geralmente generalização/especialização.

• Uma subclasse herda atributos e métodos da superclasse.

Page 47: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 47

Classes Abstratas e Concretas

• Classe abstrata: classe que não pode ter instâncias diretas, mas cujos descendentes sim; organizam características comuns a diversas classes; mecanismo para reutilizar código; pode definir métodos abstratos (sem um correspondente método).

• Classe concreta: classe que pode ter instâncias diretas; não pode definir métodos abstratos.

Page 48: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 48

Sobrecarga

• Atributos e operações podem ser redefinidos (sobrecarregados) por subclasses.

Page 49: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 49

Sobrecarga para extensão

• A nova operação é igual à operação herdada, exceto pelo fato de acrescentar alguns detalhes de comportamento, normalmente afetando novos atributos da subclasse.

Page 50: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 50

Sobrecarga para restrição

• A nova operação restringe o protocolo (assinatura da operação), podendo reduzir os tipos de argumentos.

• A operação herdada fica fechada (restrita) dentro de cada subclasse específica.

Page 51: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 51

Sobrecarga para otimização

• O novo método tem o mesmo protocolo externo e apresenta o mesmos resultados

• A implementação do novo método (algoritmo utilizado) pode ser completamente diferente

Page 52: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 52

Polimorfismo

• Assume muitas formas• A propriedade segundo a qual uma operação pode

comportar-se diferentemente em classes diferentes.

• A subclasse redefine a implementação de uma operação herdada da superclasse.

• Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe.

Page 53: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 53

Herança Múltipla

• Uma classe possui mais de uma subclasse e herda características de todos os seus ancestrais.

• Maior capacidade de especificação de classes.

• Maior oportunidade de reutilização.• Perda em simplicidade conceitual e de

implementação.

Page 54: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 54

Diagramas de Estados

• Representam o comportamento dinâmico de classes individuais

• Representam o comportamento dinâmico de colaboração entre classes

Page 55: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 55

Elementos de umdiagrama de estados

• os estados possíveis para os objetos de uma certa classe• as transições de estado• os eventos que causam transições de estados• as ações decorrentes de

– uma transição de estado– entrada em um estado– saída de um estado

• as ações realizadas por objetos enquanto estão em um certo estado– durante todo o tempo em que o objeto está no estado– decorrente de algum evento

Page 56: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 56

Diagramas de Estados

• Relaciona eventos e estados

• Um objeto muda de estado dependendo do evento e do estado atual.

• Transição: modificação de estado causada por um evento (mesmo quando estado final e inicial coincidem).

• Um evento pode ser irrelevante para um objeto em um certo estado.

Page 57: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 57

Notação paraDiagrama de Estados

Estado 1faça : atividade

Evento ( atributos )[ condição ] / ação Estado 2

. . .

Page 58: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 58

Diagramas de EstadosExemplo : Linha telefônica

Inativa

Sinal de discar

Ligando

Tocando

Interligando

Desligando

Queda-da-linha

Mensagem gravadaSinal de

ocupado

Sinal de ocu-pado rápido

no-gancho

dígito( n )

no-gancho

Discando

Mensagemterminada

encaminhado

telefone chamado atende

telefone chamado desliga

número válido

número invalido

fora-do-gancho

dígito( n )

número ocupado

tronco ocupado

queda-da-linha

queda-da-lin

ha

Page 59: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 59

Diagramas de EstadosExemplo : jogo de xadrez

Vez dasbrancas

Vez daspretas

brancasjogam

pretasjogam

Início cheque-mate

empate forçado

empate forçado

cheque-mate

Pretasvencem

Brancasvencem

Empate

Page 60: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 60

Controle de Operações

Inativo

botão direito pressionado /exibir menu instantâneo

Menu visível

botão direito liberado / apagar menu instantâneo

cursor movimentado / iluminar item do menu

Page 61: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 61

Condições de GuardaExemplo : Cruzamento

Leste / Oestepodem dobrar

à esquerda

tempodecorrido

Leste / Oestepodem ir em frente

Norte / Sulpodem ir em frente

tempo decorrido [ carrosnas vias esquerdas N / S ]

tempo decorrido [ carrosnas vias esquerdas L / O ]

tempodecorrido

tempo decorrido [ sem carros

nas vias esquerdas N / S ]

Norte / Sulpodem dobrar

à esquerda

tempo decorrido [ sem carros

nas vias esquerdas L / O ]

Page 62: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 62

Diagramas de Estados NiveladosExemplo : máquina de vender

Inativa

moedas introduzidas( quantia ) verificar saldo Recolhendo dinheiro

moedas introduzidas ( quantia ) /acrescentar ao saldo

faça : entregaritem

faça : preparartroco

faça : testar item e calcular troco

[ troco = 0 ] [ troco < 0 ]

[ troco < 0 ]

Selecionar ( item )[ item vazio ]

cancelar / devolver moedas

Page 63: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 63

Diagramas de Estados NiveladosExemplo : máquina de vender

Faça : moverbraço para afileira correta

faça : prepararitem

Faça : moverbraço para a

coluna correta

faça : empurraritem para forada prateleira

braço pronto braço pronto empurrado

dígito( n )

clear

faça : acrescentar

dígito

dígito( n )

enter

Selecionar( item )

Atividade entregar item da máquina de vender

Transição selecionar item da máquina de vender

Page 64: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 64

Generalização de Estados Exemplo : transmissão de um

carro

Primeira Segunda Terceira

sobe

Neutro Réapertar R

apertar N

reduz

sobe

reduz

Para a frente

pára

apertar Fapertar N

Page 65: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 65

Generalização de EventosExemplo : eventos de teclado

evento

Entrada do usuário

Botão do mouse

apertado

controle gráfico

espaço alfanumérico pontuação

tempo

dispositivo

Botão do mouselocalização

caracter do tecladocaracter

Botão do mouse

liberado

Page 66: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 66

Concorrência de AgregaçãoCarro

Ignição Transmissão Freio Acelerador

Desligada Partida Ligada

Girar chave para dar partida[ transmissão em Neutro ]

desligar a chave

liberar chave

Ignição

Desligado Ligado

apertaracelerador

apertar freio

liberar acelerador liberar freio

Acelerador Freio

Desligado Partido

Page 67: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 67

Concorrência Interna de Objetos

Não vulnerável

Não vulnerável

Vulnerável

Vulnerável

N-S vence rubber

L - O vence rubber

Vulnerabilidade N - S

jogo N - S

Vulnerabilidade L - O

jogo L - O

jogo N - S

jogo L - O

Jogando rubber

Page 68: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 68

Sincronização de Eventos Concorrentes

Faça : entregar dinheiro

Faça : ejetar cartão

Pronta parareinicializar

Emitindo

cartão recolhido

dinheiro recolhido

Preparação

Page 69: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Unified Process: O que é um processo ?

• Um processo de desenvolvimento de software é o conjunto de atividades necessárias para transformar requisitos de usuários em sistema de software.

Page 70: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Unified Process: Pilares

• O Unified Process é um processo– Dirigido por Use Case– Centrado em Arquitetura– Iterativo e Incremental

Page 71: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Unified Process: Idéias Fundamentais

• Modelo de Use Cases

Page 72: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Arquitetura: Camadas de Componentes

Classes específicas de negócio

Classes de Serviços

Pacotes Genéricos

Sistema Operacional

Page 73: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 73

Estrutura de uma Iteração

Page 74: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Concorrência de Iterações• Iterações podem caminhar em paralelo

Page 75: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Visão Global das Fases• O Processo

Page 76: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Unified Process: Produtos• Modelos do Unified Process

Page 77: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Fase de Requisitos• Modelo de Use Case: Exemplo

Page 78: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Fase de Análise• Modelo de Análise

– Modelo de Análise a partir de Modelo de Use Case

Page 79: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Modelo de Projeto• Diagrama de Classe

Page 80: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Modelo de Projeto

• Diagrama de Seqüência

Page 81: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Modelo de Projeto• Exemplo de Diagrama de Estados

Page 82: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Camadas de Subsistemas: Exemplo

Page 83: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Diagrama de Distribuição• O Modelo de Distribuição é representado em Diagramas de

Distribuição (Deployment)

Page 84: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 84

Críticas a Orientação a Objetos

• “yo-yo” problem: o reuso de uma classe requer o seu completo entendimento, inclusive de todo o seu caminho de herança (superclasses).

• Aprendizado é difícil.

• Produtividade não é mensurável e, por isso, seu aumento é contestado.

Page 85: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 85

Conclusão

• Software não é produto: é conhecimento

• Construção de software é um processo de aquisição de conhecimento

Page 86: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 86

Referências Bibliográficas

• The Real Reason Why Software Engineers Need Math. Keith Devlin. Communications of the ACM, 44 (10), October 2001.

• The Emperor with No Clothes. Henry F. Ledgard. Communications of the ACM, 44 (10), October 2001.

• The Case for a New Business Model. Phillip G. Armour. Communications of the ACM, 43 (8), August 2000.

Page 87: Modelagem de Sistemas Alcides Calsavara. 2 Sumário

Alcides Calsavara 87

Alcides Calsavara

• PUCPR/CCET• PPGIA: Programa de Pós-Graduação em

Informática Aplicada• MAIS: Modelagem e Arquitetura de

Sistemas de Informação• www.ppgia.pucpr.br/~alcides• [email protected]• 330 1783