60
Prof José Rui 1. Introdução e Conceitos básicos 1 – Analise de Sistemas Aula 01

1 – Analise de Sistemas - sistemas.riopomba.ifsudestemg ... · 1. Introdução e Conceitos básicos Prof José Rui Comunicação cliente x empresa Negociação: levantar os requisitos

Embed Size (px)

Citation preview

Prof José Rui1. Introdução e Conceitos básicos

1 – Analise de SistemasAula 01

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

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

Prof José Rui1. Introdução e Conceitos básicos

Comunicação cliente x empresa

Prof José Rui1. Introdução e Conceitos básicos

Comunicação cliente x empresa

Prof José Rui1. Introdução e Conceitos básicos

Comunicação cliente x empresa

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!

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++