Title: Sistemas de Informa
1Sistemas de Informação I
UNIVERSIDADE FEDERAL DE CAMPINA
GRANDE Bacharelado em Ciência da Computação
2Conteúdo
- 1) Linguagens de Programação
- 2) Noções de prototipagem
- 3) Sistemas de Informação Conceitos
3Conteúdo
- 4) Orientação a Objetos - Conceitos e sistemas
- (Bancos de Dados, Interfaces, Sistemas
Operacionais, linguagens...) - 5) A Linguagem Unificada de Modelagem UML
- 6) Desenvolvimento de sistemas orientados a
objetos (O Processo Unificado - RUP-Rational
Unified Process)
4Bibliografia
- R. M. Stair Princípios de Sistemas e Informação
2ª Edição, LTC, 1996 - Booch, Grady / Rumbaugh, James / Jacobson, Ivar
Uml - Guia Do Usuario Editora Campus - Booch, Grady / Rumbaugh, James / Jacobson, Ivar
Uml - Guia Do Programador Editora Campus - Jacobson, I., Booch, G., Rumbaugh, J. The Unified
Software Development Process, Addison Wesley
5Bibliografia
- C. Larman Utilizando UML e Padrões- Uma
Introdução à Análise e ao Projeto
Orientados a Objeto, Bookman (2000) - B. COX Object-Oriented Programming An
Evolutionary Approach, Addison Wesley,
1986 - M. Page-Jones Fundamentos do desenho orientado
a objeto com UML, Makron Books, 1998 - J. MARTIN Fourth Generation Languages, Prentice
Hall, 1985 - R.W. Sebesta Conceitos de Linguagens de
Programação 4ª edição, Bookman 2000
61) Linguagens de Programação gerações
- 1ª GERAÇÃO - programação física, linguagens de
máquina - 0010 0010
- 0001 0011
- 1000 0100
- 0010 0001
- 0001 0010
- 0101 0100
- 1000 0110
- 2ª GERAÇÃO - Linguagens de baixo nível
(Assembly, Autocoder) - CLA C
- ADD D
- STO Y
- CLA A
- ADD B
- DIV Y
- STO X
71) Linguagens de Programação
gerações
- 3ª GERAÇÃO - Linguagens de alto nível
- X (D A) / Y
- Científicas - FORTRAN, Algol
- Comerciais - COBOL
- Universais - PL/I, ADA
- Sistemas - Pascal, Modula 2, C, C, Java
- Especiais - SIMULA, LISP, SNOBOL,
PROLOG, APL, RPG
81) Linguagens de Programação
gerações
- 4ª GERAÇÃO - O que no lugar do como (MANTIS,
NATURAL, IDEAL, SQL, QBE, Delphi, JDK) -
- Incrementa/substitue comandos sequenciais por
- Formulários, interação por janelas,
Gráficos - Linguagens não-procedurais
- Geradores de aplicações
- Prototipagem
- Sistemas de Suporte a Decisão,
- Linguagens para aplicações específicas
(finanças,
robótica, CAD, pesquisa textual, etc.)
91) Linguagens de Programação
gerações
- 5ª GERAÇÃO Linguagens naturais
-
- Consultas e comandos em linguagem natural
- Interpretação da fala
102) Linguagens de Programação paradigmas
- COMPLETAS (Máquinas de Turing) - Pascal,
COBOL, C,
Java.... - INCOMPLETAS (SQL, QBE)
- EXTENDIDAS (goto, exceções, acesso
registradores,
FORMAT, PICTURE, acesso direto, auto-
modificação)
112) Linguagens de Programação paradigmas
- PROCEDURAL (IMPERATIVO) Programa
principal seqüência de comandos e ações - ORIENTADO A OBJETOS Coleção de objetos que
recebem mensagensLinguagens Simula,
SmallTalk, Eiffel, Oberon - FLUXO DE DADOS RPG, HIPO, DFD
BIDIMENSIONAL UML, DFD, DER
122) Linguagens de Programação paradigmas
- FUNCIONAL Interpretador de expressões
Execução de funções Exemplo LISP FATORIAL
(LAMBDA(N) - ((COND(EQUAL N 1) 1)(T(TIMES N (FATORIAL(SUB 1
N)))))) - LÓGICO Interpretador de expressões
verificação de relações Um programa consiste de
fatos e regras Ex PROLOGCasamento de padrões
SNOBOL
132) Linguagens de Programação paradigmas
- COMBINAÇÕES
- ImperativoOO ObjectPascal, TurboPascal,
Modula 3,
ObjectiveC, C, Java - FuncionalOO ObjectLISP. CLOS
- LógicoOO ObjLog, F-Logic
- BidimensionalOO Delphi, JDK
14Desenvolvimento de software paradigmas
ORIENTAÇÃO
- Ciclo de vida
- Circular
- Prototipagem
- Iterativo e Incremental
- eXtreme Progr.
- Ágil
Processos Dados
Controle Objetos Frameworks
Componentes
15PROTOTIPAGEM
Processo
USUÁRIO
problemas
Testes
uso
problemas
construção
ANALISTA
PROTÓTIPO
revisão
16PROTOTIPAGEM
Aplicações
- Computação pré-especificada ?
programação convencional
J. Martin
- Computação dirigida pelo usuário
? PROTOTIPAGEM
17PROTOTIPAGEM
Protótipos - características
- testes de hipóteses (de dados, relatórios,
telas)
- modelo vivo (funcionalidade)
- quick and dirty (rápido e ruim)
18PROTOTIPAGEM
Prototipagem X Ciclo de vida
19PROTOTIPAGEM
Conteúdo
- Definição lógica
- Relatórios
- Telas
- Informações
- Funções
- Controles
- Interface
- 2) Definição física
- Banco de dados
- fluxo do sistema
20PROTOTIPAGEM
Tipos
Exploratória (usp) prototipagem
rápida Experimental (psh) Evolutiva
(usph) Desempenho (uph)
Organizacional (ush)
software (s)
hardware (h)
usuário (u)
projetista(p)
21PROTOTIPAGEM
Tipos principais
22Orientação a Objetos
Paradigma da Orientação a Objetos No mundo
existem - Objetos (com estrutura e
comportamento) - Mensagens entre objetos - Nada
mais
REMETENTE
mensagem
RECEPTOR
23Orientação a Objetos
Programação OO Linguagens OO Projeto
OO Sistemas OO Bancos de Dados
OO Interfaces OO Ambientes OO
24Orientação a Objetos
Por que POO ?
Crise de Software
Problemas
- reusabilidade, capacidade de um programa em
ser aproveitado para uma outra aplicação,
semelhante à original - adaptabilidade, capacidade de um programa em se
adaptar - a novas situações novas
- extensibilidade, capacidade de um programa em
ser estendido - incorporando novas funcionalidades.
25Orientação a Objetos
Prevenção de alterações
- Linha Maginot A assinatura do cliente proíbe
alterações.Boa documentação, comentários e
linguagem de alto nívelnão são suficientes. - Defesa suiça Prototipagem, mudanças fazem parte
vital do processo de desenvolvimento do sistema
(ex. Smalltalk, Engª do conhecimento) - Problemas Eficiência, controle, compatibilidade
(com sistemas existentes).
26Orientação a Objetos
Sistemas devem ser
- - maleáveis e elásticos em tempo de execução
- gt acoplamento dinâmico (dynamic
binding) - - alteráveis e extensíveis
- gt encapsulamento e herança
- - evitar efeitos colaterais.
- gt encapsulamento (objeto caixa
preta)
27Orientação a Objetos
Redução da superfície de software
- Encobrimento da informação
(encapsulamento, variáveis locais, etc.) ) - Tipos Abstratos de Dados. Quanto mais abstrato
o dado, menos informação é necessária
para usá-lo - Seqüência/paralelismo de operações uma seqüência
fixa aumenta a superfície
28Orientação a Objetos
Redução da superfície de software
- Seqüência/paralelismo de operações uma
seqüência fixa aumenta a superfície - Garbage collection A necessidade de reservar
e liberar explicitamente os objetos, aumenta
a superfície de software - Domínios protegidos uma estação de trabalho ou
um processo, são domínios relativamente
protegidos. Comunicam entre si por arquivos e
mensagens. - Concorrência Problemas concorrentes aumentam a
superfície, pois a comunicação ocorre em
duas dimensões tempo e espaço
29Orientação a Objetos
Focos
FOCO EM SISTEMA Programa Processos
Dados
FOCO EM OBJETO Classe Atributos
Operações
30Origens da Programação Orientada a Objetos
Tipos Abstratos de Dados
31Origens da Programação Orientada a Objetos
Abstrações em bancos de dados
EXEMPLO
- generalização-(herança)
- agregação
- agrupamento
FAMÍLIA
PESSOA
FILHOS
HOMEM
MULHER
32Origens da Programação Orientada a Objetos
EXEMPLO
Os números inteiros Sintaxe Elementos 0,
1, 2, 3, ..9, 10, 11,... Operações , -,
, ? Semântica 0 ?N Função de criação p N ?
N sendo N 0, p(0), p(p(0)), p(p(p(0))), ...
0, 1, 2, 3, 4, .. ? n ? N (n 0 n ? n 1
p(n) ? (para m?0 (nmp(n) se m1
(na(m))1 caso contrário) Representação
números binários limitados e
aritmética computacional de inteiros
33Orientação a Objetos - Características
- Objetos e classes
- encapsulamento
- objetos complexos
- generalização e herança
- polimorfismo
- identificação de objetos
34Orientação a Objetos - Características
ONTOLOGIA
ilumina
Entidades
gosta-de
33
Relacionamentos
idade
Atributos
35Orientação a Objetos - Características
Abstrações
Classificação
PESSOA
CONTRIBUINTE
EMPRESA
36Orientação a Objetos - Características
Representação
PESSOA nomestring idadeinteger gosta-deobjet
o
Joseph Haydn 66sol
37Orientação a Objetos - Características
CONTRIBUINTE
Generalização
categoria
PESSOA
EMPRESA
atividade
sexo
U
HOMEM
ESTUDANTE
MULHER
PROFESSOR
38Orientação a Objetos - Características
Visões - Especialização por papel
PESSOA
papel
NO EMPREGO
EM FÉRIAS
MOTORISTA NO TRÂNSITO
EM CASA
39Orientação a Objetos - Características
Agregação
possui
EXEMPLAR
LIVRO
EDITORA
TÍTULO
AUTOR
ANO
40Orientação a Objetos - Características
Agregação
possui
EXEMPLAR
LIVRO
EDITORA
TÍTULO
AUTOR
ANO
41Orientação a Objetos - Características
Agrupamento
1
LIVRO
possui
EXEMPLAR
1..
AUTORES
EDITORA
ANO
AUTOR
TÍTULO
42Orientação a Objetos - Características
Encapsulamento
EXEMPLAR nr-reg situação Novo Emprestar Devolver
43Orientação a Objetos - Características
TÍTULO Novo
Polimorfismo
PERIÓDICO
ARTIGO
LIVRO Emprestar
44Orientação a Objetos - Características
Polimorfismo
45Linguagens de programação OO
- Turbo Pascal
- Object Pascal
- C
- Smalltalk
- Java
EXEMPLOS COM
46Orientação a objetos - Discussão
1) O que é um objeto ??
- abstrato números, strings, cores, salários,
nomes, uma universidade, um
relacionamento
Estático
Dinâmico
- evento curto, evento longo, operação, transação
controle
- restrição, regra de dedução, regra de produção
47Orientação a objetos - Discussão
1) O que é um objeto ??
- fatos (João quebrou a perna ontem na viagem),
textos, subtextos, imagens, etc
sem formato
intenção
- esquema, subesquema, classe, contexto, categoria
48Orientação a objetos - Discussão
2) Identificação de objetos
questão conceitual ou de implementação ??
49Orientação a objetos - Discussão
3) Hierarquias de objetos
Generalização - herança conceitual X
estrutural herança múltipla
identificação
Agregação ? ? herança seletiva Agrupamento ?
50Orientação a objetos - Discussão
4) Projeto de sistemas
- projeto orientado a objetos
- projeto orientado a processos
- projeto orientado a controle