Prof José Rui
1. Introdução e Conceitos básicos
1 – Analise de Sistemas
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é Rui
1. Introdução e Conceitos básicos
Comunicação cliente x empresa
Prof José Rui
1. Introdução e Conceitos básicos
Comunicação cliente x empresa
Prof José Rui
1. Introdução e Conceitos básicos
Prof José Rui
1. Introdução e Conceitos básicos
Comunicação cliente x empresa
Prof José Rui
1. 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;
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
Prof José Rui
1. Introdução e Conceitos básicos
Histórico
●
Rumbaugh (OMT) + Booch + Jacobson:
Rumbaugh (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:
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
Prof José Rui
1. 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
Analise de sistema
●
Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades ● Para não ter surpresas
Prof José Rui
1. 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
Analise de sistema
●
Para construir um sistema é necessário então:
– Analisar e projetar todas as possibilidades ● Para não ter surpresas
Prof José Rui
1. 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
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
Prof José Rui
1. Introdução e Conceitos básicos
Modelo
●
Exemplo:
Modelo
●
Exemplo:
– Como seria um modelo de uma roda de carro? ● Quais são as informações relevantes?
Prof José Rui
1. 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!
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é Rui
1. 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
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é Rui
1. Introdução e Conceitos básicos
Modelo
●
Exemplo:
Modelo
●
Exemplo:
– Como seria um modelo de uma cadeira? ● Quais são as informações relevantes?
Prof José Rui
1. 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
●
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é Rui
1. Introdução e Conceitos básicos
Modelo
●
Exemplo:
Modelo
●
Exemplo:
– Vamos abstrair um pouco mais!
Prof José Rui
1. Introdução e Conceitos básicos
Modelo
●
Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de um produto?
Produto
Modelo
●
Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de uma pessoa?
Pessoa
Prof José Rui
1. Introdução e Conceitos básicos
Modelo
●
Exemplo:
– Vamos abstrair um pouco mais!
– Como seria um modelo de uma pessoa?
Nome Sexo ... Pessoa
Tipos primitivos de dados
●
São os tipos de dados “natos” de uma linguagem
●
Exemplo:
– Int – Float – Double – Boolean – CharProf José Rui
1. 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:
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é Rui
1. 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; 5 6 7 8 Raio Material Peso Suporte máximo de peso ... Modelo RODA Código
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; 5 6 7 8 Raio Material Peso Suporte máximo de peso ... Modelo RODA Código
E se você precisar declarar outra roda?
Prof José Rui
1. 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; 5 6 7 8 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!
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; 5 6 7 8 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!
Prof José Rui
1. 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; 5 6 7 8 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?
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; 5 6 7 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!
Prof José Rui
1. 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; 5 6 7 Raio Material Peso Suporte máximo de peso ... Modelo RODA Código Muito ineficiente! Muito ineficiente!
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; 5 6 7 Raio Material Peso Suporte máximo de peso ... Modelo RODA Código
Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Definição
Definiçã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
Tipo Abstrato de Dados
Definição
Definiçã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; 5 6 7 Raio Material Peso Suporte máximo de peso ... Modelo RODA Código
Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Definição
Definiçã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 } 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Raio Material Peso Suporte máximo de peso ... Modelo RODA Código c++
Tipo Abstrato de Dados
Definição
Definiçã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 } 7 8 int main(){ 9 10 Roda r1; 11 12 13 14 15 16 17 18 19 return 0; Raio Material Peso Suporte máximo de peso ... Modelo RODA Código c++Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Definição
Definiçã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 } 7 8 int main(){ 9 10 Roda r1; 11 12 13 14 15 16 17 18 19 return 0; 20 } 21 Código c++
Tipo Abstrato de Dados
Definição
Definiçã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 } 7 8 int main(){ 9 10 Roda r1; 11 12 13 14 15 16 17 18 19 return 0; Código c++
Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Definição
Definiçã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 } 7 8 int main(){ 9 10 Roda r1, r2; 11 12 13 14 15 16 17 18 19 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!
Tipo Abstrato de Dados
Definição
Definiçã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 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 12 13 14 15 16 17 18 19 return 0; Código c++
Basta declarar outra roda!
Basta declarar outra roda!
E assim por diante, sempre que quiser
Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Comparação
Comparação
1 struct Roda{ 2 float raio; 3 char[15] material; 4 float peso; 5 float maxPeso; 6 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 12 13 14 15 16 17 18 19 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;9 6 7 8 9 10 11 12 13 14 15 return 0; 16 } 17 Código c++
Tipo Abstrato de Dados
Acesso aos campos
Acesso 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 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 12 13 14 15 16 17 18 19 return 0; Código c++
Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Acesso aos campos
Acesso 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 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 r1.peso = 12.8; 12 r2.peso = 15.5; 13 r3.peso = r1.peso; 14 15 16 17 18 19 return 0; 20 } 21 Código c++
Tipo Abstrato de Dados
Acesso aos campos
Acesso 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 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 r1.peso = 12.8; 12 r2.peso = 15.5; 13 r3.peso = r1.peso; 14 15 16 17 18 19 return 0; Código c++
● Muito mais intuitivo trabalhar assim!
Prof José Rui
1. Introdução e Conceitos básicos
Tipo Abstrato de Dados
Acesso aos campos
Acesso 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 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 r1.peso = 12.8; 12 r2.peso = 15.5; 13 r3.peso = r1.peso; 14 15 16 17 18 19 return 0; 20 } 21 Código c++
● Muito mais intuitivo trabalhar assim!
● Seu código fica mais organizado
● Muito mais intuitivo trabalhar assim!
Tipo Abstrato de Dados
Exercício
Exercí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 } 7 8 int main(){ 9 10 Roda r1, r2, r3; 11 r1.peso = 12.8; 12 r2.peso = 15.5; 13 r3.peso = r1.peso; 14 15 16 17 return 0; Código c++