Upload
internet
View
148
Download
3
Embed Size (px)
Citation preview
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 90Orientação a ObjetosBaseado no paradigma estruturadoQualidade de Software UML Componentização
FASES NA 'FABRICAÇÃO' DE UM SOFTWARE
• Análise ou especificaçãoRequisitos, conceito do domínio
• ProjetoSolução lógica, representação da análise
• Programação, construção ou desenvolvimentoCó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/70Guerra FriaGrandes ProjetosAmbientes de Grande PortePouca 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;
ORIENTA
ÇÃO A O
BJETO
S
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
PARADIG
MA PROCED
URAL
Decida quais procedimentos você quer; utilize os melhores algoritmos que você encontrar
PARADIG
MA PROCED
URAL
Enfoque no processamento, i.e. no algoritmo necessário para executar uma computação desejada
PARADIG
MA PROCED
URAL
Linguagens oferecem facilidades para passar parâmetros para funções e retornar valores
PROGRAMAÇÃO M
ODULAR
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.
EVOLU
ÇÃO DA
PROGRAMAÇÃO
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
Algol
1960 1965 1970 1975 1980 1985 1990 1995 2000| | | | | | | | |
Simula
Pascal
CPL
Smaltalk
Pascalobject
s
Delphi
Objective C
Java C#BCPL B
C C++ ANSIC++
ISOC++
| | | | | | | | |
ProgramaçãoEstruturada
ProjetoEstruturado
AnáliseEstruturada
Orientaçãoa objetos
Análise orientadaa objetos UML
AT&T BellAT&T Bell
Sun Microsoft
Borland
JAVA
1991: Sun Microsystems Projeto Green
1995: Sun MicrosystemsAnunciada Formalmente
Páginas Web com conteúdo dinâmico e interativoAprimora funcionalidades de web serversPermite aplicações para:
Celulares, pagers, palms, …
BASIC E VISUAL BASIC
BASICBeginner’s All-Purpose Symbolic Instruction CodeAnos 60s: Prof. John Kemeny e Thomas Kurtz (Dartmouth College)
BASIC E VISUAL BASIC
Visual Basic1991
Resultado da interface gráfica do Microsoft Windows Graphical User Interface (GUI)
Final dos anos 80 e começo dos 90.
CaracterísticasGUI, 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 padronizadaFaz 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