Prof José Rui1. Introdução e Conceitos básicos
Sumário
Capítulo 1 – Introdução e Conceitos básicos
1.1 Histórico do Software
1.2 Modelos
1.3 Tipos primitivos de dados
1.4 Tipo Abstrato de dados
Prof José Rui1. Introdução e Conceitos básicos
Comunicação cliente x empresa
● Negociação: levantar os requisitos de um contrato
Prof José Rui1. Introdução e Conceitos básicos
Comunicação cliente x empresa
● Negociação: levantar os requisitos de um contrato
Prof José Rui1. Introdução e Conceitos básicos
Comunicação cliente x empresa
● Resumindo: Péssima comunicação!
Prof José Rui1. Introdução e Conceitos básicos
Histórico
● Anos 90,
– conhecida como a época da “guerra dos métodos”
– vários métodos coexistiam com notações muitas vezes conflitantes entre si.
– Dentre estes, os mais conhecidos eram:
● OMT (Object Modelling Technique) de Rumbaugh;
● Método de Booch;
● OOSE (Object Oriented Software Engineering) de Jacobson;
Prof José Rui1. Introdução e Conceitos básicos
Histórico
● Dentre estes, os mais conhecidos eram:
● OMT (Object Modelling Technique) de Rumbaugh;
● Método de Booch;
● OOSE (Object Oriented Software Engineering) de Jacobson;
● Rumbaugh (OMT) + Booch:Rumbaugh (OMT) + Booch: fundiram seus métodos (e notações)
– resultando no Método Unificado em 1995, quando trabalhavam juntos na Rational Software (atualmente uma divisão da IBM).
● + Jacobson:+ Jacobson: juntou-se a eles mais tarde e seu método OOSE foi incorporado à nova metodologia (RUP).
Prof José Rui1. Introdução e Conceitos básicos
Histórico
● Rumbaugh (OMT) + Booch + JacobsonRumbaugh (OMT) + Booch + Jacobson:: RUP RUP
– Salienta-se que além do método, eles unificaram a notação de projeto e a chamaram UML.
– Em suma, UML é uma tentativa de padronizar os artefatos de análise e projeto: modelos semânticos, sintaxe de notação e diagramas.
– Resumindo:
● “Tentar criar uma linguagem em comum, que todo mundo saiba falar e enteder”
Prof José Rui1. Introdução e Conceitos básicos
Histórico
● Decada de 90:Decada de 90:
– Surge a OMG(Object Management Group)
● uma organização importante no mundo dos objetos sem fins lucrativos
● participam empresas e acadêmicos para definirem padrões de tecnologias OO
– Outubro de 1995: primeira versão rascunho, versão 0.8 draft.
– Julho de 1996: revisão devido ao ingresso de Jacobson, versão 0.9 draft.
– Parceiros UML (HP, IBM, Microsoft, Oracle e Rational Software) desenvolveram a versão 1.1 e a propuseram OMG
● A OMG aceita a proposta em novembro de 1997 e assume a responsabilidade de realizar manutençãoeé revisão da UML
– Em março de 2003: a OMG lançou a versão 1.5
– Em outubro de 2004: a OMG lançou versão 2.0 adotada 1
Prof José Rui1. Introdução e Conceitos básicos
Analise de sistema
● Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades
● Para não ter surpresas
– Gastos excessivos R$
Prof José Rui1. Introdução e Conceitos básicos
Analise de sistema
● Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades
● Para não ter surpresas
– Calendário atrasado
Prof José Rui1. Introdução e Conceitos básicos
Analise de sistema
● Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades
● Para não ter surpresas
– Não ser o que o cliente pediu
Prof José Rui1. Introdução e Conceitos básicos
Analise de sistema
● Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades
● Para não ter surpresas
● Temos que fazer uma boa conversar com o cliente
Prof José Rui1. Introdução e Conceitos básicos
Analise de sistema
● Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades
● Para não ter surpresas
● Temos que fazer uma boa conversar com o cliente
– Ou seja, um bom levantamento de requisito– E uma boa modelagem do problema
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Definição:
– Representação com alto nível de abstração
● Modela de forma mais natural os fatos do mundo real
● Modela suas propriedades e seus relacionamentos
– É um rascunho
● Com as principais características do objeto observado
– É independente da linguagem de programação
– Preocupa com a semântica da aplicação
– Use-se esta mesma idéia para modelar um BD
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma roda de carro?
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma roda de carro?
● Quais são as informações relevantes?
● O que deve ser armazenado no computador?
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma roda de carro?
● Quais são as informações relevantes?
● O que deve ser armazenado no computador?
– Vamos pensar e listar!
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma roda de carro?
● Quais são as informações relevantes?
● O que deve ser armazenado no computador?
– Vamos pensar e listar!
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma roda de carro?
● Pronto!
● Esse seria um bom modelo para a roda
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● O modelo serve como um NORTE!
● É com ele nas mãos que podemos programar
● Ou melhor, podemos melhorar nossos programas
– Padronizar nossos códigos
– Minimizar erros de programação
– Reutilizar códigos
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma cadeira?
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma cadeira?
● Quais são as informações relevantes?
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma cadeira?
● Quais são as informações relevantes?
Material Quantidade Pés ...
Modelo Cadeira
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Como seria um modelo de uma cadeira?
● Quais são as informações relevantes?
Material Quantidade Pés Acolchoada Giratória Descanso p/ braços ...
Modelo Cadeira
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de um produto?
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de um produto?
Produto
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de uma pessoa?
Pessoa
Prof José Rui1. Introdução e Conceitos básicos
Modelo
● Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de uma pessoa?
Nome Sexo ...
Pessoa
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Exemplo:
– Int
– Float
– Double
– Boolean
– Char
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio;2 char[15] material;3 float peso;4 float maxPeso;5678
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio;2 char[15] material;3 float peso;4 float maxPeso;5678
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio;2 char[15] material;3 float peso;4 float maxPeso;5678
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Você deverá declarar tudo novamente!Você deverá declarar tudo novamente!
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio, raio2;2 char[15] material, material2;3 float peso, peso2;4 float maxPeso, maxPeso2;5678
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Você deverá declarar tudo novamente!Você deverá declarar tudo novamente!
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio, raio2;2 char[15] material, material2;3 float peso, peso2;4 float maxPeso, maxPeso2;5678
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Você deverá declarar tudo novamente!Você deverá declarar tudo novamente!
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio, raio2, raio3;2 char[15] material, material2, material3;3 float peso, peso2, peso3;4 float maxPeso, maxPeso2, maxPeso3;567
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Você deverá declarar tudo novamente!Você deverá declarar tudo novamente!
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● São os tipos de dados “natos” de uma linguagem
● Com esses tipos nós, programadores, fazemos tudo...
● Por exemplo:
– Declarar uma roda
1 float raio, raio2, raio3;2 char[15] material, material2, material3;3 float peso, peso2, peso3;4 float maxPeso, maxPeso2, maxPeso3;567
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código
Muito ineficiente!Muito ineficiente!
Prof José Rui1. Introdução e Conceitos básicos
Tipos primitivos de dados
● É muito ineficiente...
● Solução:
– Usar o modelo a nosso favor!
– Criar um nova variável (novo tipo de dado)
1 float raio, raio2, raio3;2 char[15] material, material2, material3;3 float peso, peso2, peso3;4 float maxPeso, maxPeso2, maxPeso3;567
Raio Material Peso Suporte máximo de peso ...
Modelo RODA Código
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● É um novo tipo de dado
● É um tipo que foi ou será criado “por você”
● Para criar um TADS
– Usa-se os tipos primitivos de dados
– E/ou algum tipo abstrato de dados já criado
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● É um novo tipo de dado
● É um tipo que foi ou será criado “por você”
● Para criar um TADS
– Usa-se os tipos primitivos de dados
– E/ou algum tipo abstrato de dados já criado
Voltando ao nosso péssimo exemplo!Voltando ao nosso péssimo exemplo!
1 float raio, raio2, raio3;2 char[15] material, material2, material3;3 float peso, peso2, peso3;4 float maxPeso, maxPeso2, maxPeso3;567
Raio Material Peso Suporte máximo de peso ...
Modelo RODA Código
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● Vamos criar um tipo igual ao nosso modelo
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }7891011121314151617181920
21
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código c++
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● Vamos criar um tipo igual ao nosso modelo
● E depois usá-lo!
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1;111213141516171819 return 0;20 }
21
Raio Material Peso Suporte máximo de peso ...
Modelo RODA
Código c++
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● Vamos criar um tipo igual ao nosso modelo
● E depois usá-lo!
● Ao fazer isso:
– Declaramos uma variável
– Seu tipo é “Roda”
– “Dentro dela” tem tudo!
● Todos os campos
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1;111213141516171819 return 0;20 }
21
Código c++
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● Vamos criar um tipo igual ao nosso modelo
● E depois usá-lo!
● Ao fazer isso:
– Declaramos uma variável
– Seu tipo é “Roda”
– “Dentro dela” tem tudo!
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1;111213141516171819 return 0;20 }
21
Código c++
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● Vamos criar um tipo igual ao nosso modelo
● E depois usá-lo!
● Ao fazer isso:
– Declaramos uma variável
– Seu tipo é “Roda”
– “Dentro dela” tem tudo!
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2;111213141516171819 return 0;20 }
21
Código c++
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Basta declarar outra roda!Basta declarar outra roda!
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
DefiniçãoDefinição:
● Vamos criar um tipo igual ao nosso modelo
● E depois usá-lo!
● Ao fazer isso:
– Declaramos uma variável
– Seu tipo é “Roda”
– “Dentro dela” tem tudo!
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;111213141516171819 return 0;20 }
21
Código c++
E se você precisar declarar outra roda?E se você precisar declarar outra roda?
Basta declarar outra roda!Basta declarar outra roda!
E assim por diante, sempre que quiserE assim por diante, sempre que quiser
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
ComparaçãoComparação
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;111213141516171819 return 0;20 }
21
Código c++
Sem TAD Com TAD
1 int main(){2 float raio, raio2, raio3;3 char[15] material, material2, material3;4 float peso, peso2, peso3;5 float maxPeso, maxPeso2, maxPeso3;96789101112131415 return 0;16 }
17
Código c++
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Acesso aos camposAcesso aos campos
● Para acessar os campos de um TAD
● Usa-se
– “ponto” seguido do nome do campo
– Ex:1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;111213141516171819 return 0;20 }
21
Código c++
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Acesso aos camposAcesso aos campos
● Para acessar os campos de um TAD
● Usa-se
– “ponto” seguido do nome do campo
– Ex:
● r1.peso
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;11 r1.peso = 12.8;12 r2.peso = 15.5;13 r3.peso = r1.peso;141516171819 return 0;20 }
21
Código c++
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Acesso aos camposAcesso aos campos
● Para acessar os campos de um TAD
● Usa-se
– “ponto” seguido do nome do campo
– Ex:
● r1.peso
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;11 r1.peso = 12.8;12 r2.peso = 15.5;13 r3.peso = r1.peso;141516171819 return 0;20 }
21
Código c++
● Muito mais intuitivo trabalhar assim!● Muito mais intuitivo trabalhar assim!
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Acesso aos camposAcesso aos campos
● Para acessar os campos de um TAD
● Usa-se
– “ponto” seguido do nome do campo
– Ex:
● r1.peso
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;11 r1.peso = 12.8;12 r2.peso = 15.5;13 r3.peso = r1.peso;141516171819 return 0;20 }
21
Código c++
● Muito mais intuitivo trabalhar assim!
● Seu código fica mais organizado
● Muito mais intuitivo trabalhar assim!
● Seu código fica mais organizado
Prof José Rui1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
ExercícioExercício
● Crie um Tipo Abstrato de Dado com o modelo de pessoa
● Crie três variáveis do tipo pessoa e inicialize seus campos...
1 struct Roda{2 float raio;3 char[15] material;4 float peso;5 float maxPeso;6 }78 int main(){910 Roda r1, r2, r3;11 r1.peso = 12.8;12 r2.peso = 15.5;13 r3.peso = r1.peso;14151617 return 0;
18 }
Código c++
Top Related