Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento...
Transcript of Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento...
![Page 1: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/1.jpg)
Projeto de Sistemas de Informação
Borland Delphi Studio 7
Grupo 4:
•Leandro Bercê do Nascimento
•Vanessa Tavares Nunes
![Page 2: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/2.jpg)
Resumo do Plano de Apresentação
Ambiente de programação que utiliza Object Pascal
Borland Delphi Studio 7 Standard: Mais simples e barata Professional Enterprise Architect: Inclui Bold e ModelMaker
Migração para Microsoft .NET Migração para Kylix
![Page 3: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/3.jpg)
ModelMaker É uma ferramenta de modelagem de classes. Permite
usar UML para criar um diagrama de classes e facilita visualização dos relacionamentos entre as classes dentro do sistema.
Permite a criação, modelagem e representação de regras de negócios em UML.
O ModelMaker possui as funcionalidades de: Modelagem de classes de forma gráfica; Modelagem de relacionamento entre classes; Geração de código para diagrama de classes; Reutilização de código através de herança de classes
e macros; Permite fazer reengenharia inversa de qualquer unit.
![Page 4: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/4.jpg)
ModelMaker – Diagram Editor
![Page 5: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/5.jpg)
ModelMaker – Delphi Integration
![Page 6: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/6.jpg)
Bold
O Bold para Delphi fornece uma poderosa estrutura de objetos de negócio, Model Driven Architecture, que interliga o ambiente de modelagem UML do Rational Rose com o ambiente de projeto de aplicações em Delphi.
![Page 7: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/7.jpg)
Delphi for .net preview Durante a instalação do Borland Delphi 7.0
Enterprise Edition, você encontrará informações sobre o suporte dado ao Framework .NET. Porém, você somente terá acesso a uma versão inacabada de um compilador de comando de linha denominado Delphi for .NET Preview. Atualmente, a Borland já está disponibilizando o Update 3 do Delphi for .NET Preview.
Como será a geração de Delphi .Net no Delphi 8:http://community.borland.com/article/0,1410,30423,00.html
![Page 8: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/8.jpg)
Banco de Dados Pode interagir com SGBDs (Sistemas geradores de
bancos de dados), utilizando consultas SQL. Foi adicionado um novo componente chamado
TSimpleDataset na paleta dbExpress o qual conta agora também com um driver para o SQL Server e versões atualizadas para Oracle, MySQL, Informix, DB2 e
Interbase.
![Page 9: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/9.jpg)
Design
Avaliaremos aqui se o Borland Delphi Studio 7 atinge os princípios de um bom desenho de software.
![Page 10: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/10.jpg)
Legibilidade
Os códigos de programa Delphi são facilmente legíveis e inteligíveis pelos usuários, o que por sua vez facilita a implementação e a manutenção.
![Page 11: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/11.jpg)
Arquitetura
Possui uma interface bem amigável, com várias janelas que tornam a implementação mais fácil.
Possui bom domínio de tipos e funções
![Page 12: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/12.jpg)
...
![Page 13: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/13.jpg)
Congeneridade O Borland Delphi resolve alguns exemplos de
congeneridade porém alguns não podem ser resolvidos mas são detectados em tempo de compilação. Outros porém só podem ser detectados em tempo de execução.
A seguir serão mostrados alguns exemplos de congeneridade.
![Page 14: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/14.jpg)
... Congeneridade de Tipo
OK! Erro!
![Page 15: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/15.jpg)
... Congeneridade de nome
O valor 5 será impresso corretamente.
Será impresso valor vazio na variável x.
![Page 16: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/16.jpg)
... Congeneridade de
posição Em Delphi não existe
congeneridade de posição porque todos os métodos são automaticamente declarados no início do programa. Logo não importa a posição dos métodos dentro da classe.
![Page 17: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/17.jpg)
... Contrageneridade
O Delphi possui contrageneridade de variável: Se a variável y for
trocada para x, então x também deve ser trocada
![Page 18: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/18.jpg)
... Em Delphi não existe Contrageneridade de
herança múltipla porque o Delphi não suporta este tipo de herança.
Ex.:
![Page 19: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/19.jpg)
Encapsulamento O Borland Delphi possui os seguintes níveis de
encapsulamento: Nível 1 – Subrotina Nível 2 – Classe Nível 3 – Pacotes e componentes
![Page 20: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/20.jpg)
Grau de dependência e Coesão Um projetista deve procurar construir módulos
de aplicação bem específica e única. Um exemplo do que não deve ser feito é a construção de um módulo chamado Le_e_Valida. Devemos construir um módulo para leitura e outro para validação. Aliás, qualquer módulo que misturar comandos de I/O com comandos de execução não será coesivo. Todo módulo que trabalhar apenas com variáveis locais e resolver um único problema bem específico será bem coesivo.Para concluir, devemos procurar módulos de baixo acoplamento e alta coesão.
![Page 21: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/21.jpg)
Orientação a Objeto Todos os conceitos de classe, objeto, polimorfismo,
anulação de métodos em classes filhas, etc são implementados em Object Pascal. O programador pode criar/reutilizar suas próprias classes.
Mas há algo muito maior por trás disso: a biblioteca de classes do Delphi (VCL). A VCL é basicamente uma estrutura de classes Pascal disponibilizada pelo ambiente Delphi para uso do programador, que pode criar suas classes em qualquer nível de hierarquia que desejar, de acordo com os atributos e métodos que queira herdar.
![Page 22: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/22.jpg)
Comparação com EIFFEL
A seguir o Borland Delphi Studio 7 será comparado a linguagem e ao IDE do EIFFEL
![Page 23: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/23.jpg)
EIFFEL X DELPHI As operações de instâncias de classes são
designadas : EIFFEL: rotinas DELPHI: métodos
Os atributos de objetos são chamados de: EIFFEL: atributos variáveis DELPHI: variáveis
![Page 24: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/24.jpg)
EIFFEL X DELPHI Em EIFFEL e DELPHI a manipulação de objetos
é sempre por referência. Isso permite que a utilização dos objetos seja desacoplada da sua dimensão e da sua declaração interna.
![Page 25: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/25.jpg)
EIFFEL X DELPHI Mensagens (invocação de uma operação
associada a um objeto): A unicidade de identificação das operações
diverge de linguagem para linguagem. Porém, em DELPHI e EIFFEL, a unicidade é
garantida apenas pelo nome, mesmo que contenham parâmetros diferentes.
![Page 26: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/26.jpg)
EIFFEL X DELPHI Herança
Herança Simples: EIFFEL e DELPHI suportam Herança Múltipla: EIFFEL suporta, porém
quando há colisão de nomes, este é obrigado a utilizar uma cláusula especial de renomeação(rename) para mudar pelo menos um dos designadores do atributo ou operação em colisão. Em DELPHI esse problema não ocorre porque herança múltipla não é suportada.
![Page 27: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/27.jpg)
EIFFEL X DELPHI Ocultação e Visibilidade
Em EIFFEL todos os membros têm, por omissão, acesso público, o que pode ser explicitado indicando a classe ANY. O acesso protegido, designado de “secreto” em EIFFEL, é conseguido indicando a classe NONE.
Em DELPHI todos os membros devem ter acesso indicado.
![Page 28: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/28.jpg)
EIFFEL X DELPHI Polimorfia
Polimorfia de Operações (overriden): Em DELPHI a implementação de uma operação pode ser alterada nos descendentes. Em EIFFEL existe ainda a possibilidade adicional de mudar o nome a um membro herdado (operação ou atributo), ou mesmo cancelá-lo.
![Page 29: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/29.jpg)
EIFFEL X DELPHI
... Polimorfia de Operadores (Overloading):
Delphi: É suportada somente através do uso da cláusula “overload” type
TColecao = classpublicprocedure Adiciona(const Item: TItem); overload; procedure Adiciona(const Colecao: TColecao); overload;end;
EIFFEL: É suportada
![Page 30: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/30.jpg)
EIFFEL X DELPHI Parametrização:
EIFFEL: Suporta DELPHI: Não suporta
![Page 31: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/31.jpg)
EIFFEL X DELPHI Suporte a asserções:
Somente o EIFFEL suporta. Sempre que uma asserção é violada uma interrupção, chamada de “exceção” é desencadeada. A operação coloca o sistema num estado estável e notifica ao utilizador. Se produzirmos componentes de software que
outros utilizem e não conseguimos especificar asserções, então temos que acreditar (i) que os utilizadores do código que escrevemos garantem eles próprios as pré-condições, (ii) que no código não irão ocorrer violações da coerência do estado e (iii) que tudo o que os utilizadores esperam como resultado, nós garantimos implicitamente.
![Page 32: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/32.jpg)
EIFFEL X DELPHI Reciclagem automática de memória não
utilizada (Garbage Collection) EIFFEL : Suporta DELPHI: Não suporta. Deve ser
implementada.
![Page 33: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/33.jpg)
Outras comparações Tecnologia de Compilação
EIFFEL: Combina compilação e interpretação no mesmo ambiente
DELPHI:Compilada e Linkeditada Eficiência do código Gerado
EIFFEL:Executáveis rápidos DELPHI: Executáveis rápidos
Documentação EIFFEL:Documentação gerada automaticamente. DELPHI:Somente através de engenharia reversa
utilizando ModelMaker.
![Page 34: Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes.](https://reader035.fdocument.pub/reader035/viewer/2022062319/552fc130497959413d8d4c30/html5/thumbnails/34.jpg)
Quadro ComparativoEIFFEL DELPHI
Capsulação Sim Sim
Herança Simples Sim Sim
Herança Múltipla Sim Não
Ocultação de Atributos Sim Sim
Ocultação de Operações Sim Sim
Tipificação por Objetos Pura Híbrida
Parametrização de classes Sim Não
Sobrecarga de Operadores Sim Não
Asserções Sim Não
Reciclagem automática de memória
Sim Não
Tratamento de Exceções Sim Sim