Aula 1 - WordPress.com

Propaganda
HISTÓRICO
METODOLOGIAS DE SOFTWARE
• Início Anos 70 - Programação Estruturada
Niklaus Wirth
• Fim Anos 70 - Projeto Estruturado
Constantine, Yourdon
• Anos 80 - Análise Estruturada
Yourdon/DeMarco, James Martim, Chris
Gane
• Anos 90
Orientação a Objetos
Baseado no paradigma estruturado
Qualidade de Software
UML
Componentização
FASES NA 'FABRICAÇÃO' DE UM SOFTWARE
• Análise ou especificação
Requisitos, conceito do domínio
• Projeto
Solução lógica, representação da análise
• Programação, construção ou desenvolvimento
Código, representação em uma linguagem de
programação;
Delphi, C++, Java, Visual Basic, Cobol, etc
• Testes
ESTRUTURADA X ORIENTAÇÃO A OBJETOS
• Com a orientação a objetos procura-se eliminar as
diferenças entre as etapas de análise, projeto e
implementação, reabilitando a difamada tarefa de
implementação;
• O segredo é fazer com que os conceitos de
programação, e as notações para programação, sejam
suficientemente de alto-nível para que possam servir
apropriadamente como ferramentas de modelagem.
METODOLOGIA 'ESTRUTURADA'
Criada nos anos 60/70
Guerra Fria
Grandes Projetos
Ambientes de Grande Porte
Pouca maturidade em Programação
Funciona!
Quando é bem utilizada…
Quando os projetos tem início, meio e fim…
Quando os projetos são longos…
Quando você tem legado de mainframe.
METODOLOGIA ‘ESTRUTURADA’
Tradicionalmente, a literatura tratava análise, projeto e
implementação como atividades diferentes e, até certo
ponto, desconexas pois tinham:
• diferentes métodos;
• diferentes notações; e
• diferentes objetivos.
Na necessidade de especificar o que está prestes a ser
implementado tratavam a análise e o projeto como as
únicas
coisas
que
realmente
interessam.
A
implementação seria apenas algo inevitável.
ESTRUTURADO X OO
• Na Estruturada
Os sistemas são divididos em subprogramas;
Fixa a atenção muito mais nos procedimentos
que nos dados.
• Na Orientação a Objetos
Dados e Procedimentos possuem a mesma
importância;
Altera a forma pela qual dados e
procedimentos intercomunicam-se.
• Reutilização de Software
(Reusibilidade)
 reaproveitamento de código
•
Manutenção de Software
 facilidade de manutenção de sistemas
•
Tamanho de Código Gerado
 menor código
Decida quais
procedimentos
você quer; utilize
os melhores
algoritmos que
você encontrar
Enfoque no
processamento,
i.e. no algoritmo
necessário para
executar uma
computação
desejada
Linguagens
oferecem
facilidades para
passar parâmetros
para funções e
retornar valores
Funções são
utilizadas para
criar ordem em um
algoritmo
complicado
Mudança de enfoque:
projeto de procedimentos
-> organização de dados
Paradigma: um
conjunto de
procedimentos,
juntamente com
os dados que eles
manipulam, é dito
um módulo
ABSTRAÇÃO DE DADOS
• “Tipos” criados por meio de módulos e diferentes de
“tipos” embutidos na linguagem
• “tipos” embutidos permitem maior verificação e são
mais simples
• Linguagens como ADA e C++ permitem a construção
de tipos pelo usuário
PROBLEMAS COM ABSTRAÇÃO DE DADOS
• Um tipos de dados abstrato é uma caixa-preta; uma vez
definida, ela não interage com o resto do programa
• Nao há suporte para adaptá-la a novos usos
• Inflexibilidade
PARADIGMA DE ORIENTAÇÃO A OBJETOS
• Decida quais classes você deseja;
• Implemente as operações suportadas por cada classe; e
• Torne explícitas as semelhanças por meio de herança.
40 - alteração física de
circuitos eletrônicos;
50 - linguagens montadoras
(assembler), visão lógica;
60 - surgem as primeiras
linguagens de alto nível;
70 – programação
estruturada;
80 – Orientação a objetos
LINGUAGENS
Cada linguagem é indicada para
determinada tarefa:
 Fortran, Pascal = Científica;
 Cobol = Economia;
 Prolog, Lisp = Inteligência
Artificial;
 Clipper = Banco de dados;
 C e C++ = todas as áreas
Simula
Smaltalk
Borland
Algol
Pascal
objects
Pascal
Delphi
Objective
C
|
1960
|
|
1970
1965
|
1975
|
1980
|
|
1990
1985
|
|
2000
1995
Sun
Microsoft
C#
Java
BCPL
B
CPL
C
C++
AT&T Bell
AT&T Bell
Orientação
a objetos
|
|
Programação
Projeto
Estruturada
Estruturado
|
|
|
ANSI
C++
Análise orientada
a objetos
Análise
Estruturada
|
|
|
ISO
C++
UML
|
JAVA
1991: Sun Microsystems
Projeto Green
1995: Sun Microsystems
Anunciada Formalmente
Páginas Web com conteúdo dinâmico e interativo
Aprimora funcionalidades de web servers
Permite aplicações para:
Celulares, pagers, palms, …
BASIC E VISUAL BASIC
BASIC
Beginner’s All-Purpose
Symbolic Instruction Code
Anos 60s: Prof. John Kemeny
e Thomas Kurtz (Dartmouth
College)
BASIC E VISUAL BASIC
Visual Basic
1991
Resultado da interface gráfica
do Microsoft Windows Graphical
User Interface (GUI)
Final dos anos 80 e começo
dos 90.
Características
GUI, event handling, acesso ao
Win32 API, object-oriented
programming, error handling
Visual Basic .NET
O C foi desenvolvido em 1972 por Dennis Ritchie - para
reescrever o UNIX
O C++ foi desenvolvido nos Laboratórios AT&T Bell em 1980, por
Bjarne Stroustrup.
O padrão ANSI (Instituto Nacional Americano de Padrões) C++ foi
aprovado em 1994;
O padrão ISO (Organização Internacional de Padrões) em 1998
PODERES DO C++
C++ é superconjunto do C, e mantem-se fiel à
característica do C de linguagem de pequeno tamanho,
O C++ incluiu apenas algumas novas palavras
reservadas às já existentes no C.






Linguagem versátil, concisa e relativamente de baixo nível;
Pequeno tamanho
Poucos Comandos
Manipulação a nível de Bits
Eficiência na Manipulação de Memória
Portabilidade
POR QUE C++
Linguagem padronizada
Faz em um SO e compila em
qualquer outro
DOS, Windows, UNIX, OS/2,
VAX,MacOS, etc
Java é interpretado, necessita de
uma máquina virtual
Uso em SO com pouco recurso
memória
PalmOS, Tecnologia WAP
POR QUE C++
Diversidade de aplicações
Aplicações simples
Implementação de SO
Criação de meta-classes
POR QUE C++?
Várias Bibliotecas disponibilizadas
Ex: QT – biblioteca GUI
Download