Projeto de Sistemas de Informação

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
Análise e Projeto Orientado a Objetos
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Paulo Marques Hernâni Pedroso
Rational Unified Process
Projeto 1.
Engenharia de Software
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
Rational Unified Process(RUP)
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
CAPÍTULO Sistemas de supervisão 2. Sistema SCADA
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Diagrama de Classes.
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Programação Orientada a Objetos
Programação orientada a objetos com Java
Análise e Projeto de Sistemas
Projeto da Camada de Domínio
Classes e objetos P. O. O. Prof. Grace.
TÉCNICAS DE PROGRAMAÇÃO II
Diagramas de Sequência e Comunicação
DIAGRAMA DE COMPONENTES
Diagrama de Componentes
Engenharia de Software e Sistemas de Informação e Gestão
Programação Orientada a Objetos em Delphi
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Projeto de Sistemas de Informação
Análise da linguagem Java Planejamento. Objetivos Apresentar as soluções de implementação em Java para os conceitos de Orientação a Objetos introduzidos.
Conceitos básicos de orientação a objetos
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Métodos de Construção de Software: Orientação a Objetos
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Referências: Booch, G. et al. The Unified Modeling Language User Guide
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Casos de Uso no Engenharia de Software e Sistemas {abab, dtvp, jmmn, mscla, rmb2,
Professor: Márcio Amador
Orientação a Objetos Parte I
Programação Orientada à Objetos
DCC / UFRJ Projeto de Sistemas de Informação Borland Delphi 7 Studio Grupo:Daniel Leitão Eduardo Lima Luciana Netto.
Programação Orientada a Objetos - Java
SISTEMAS DISTRIBUIDOS Aula 4
Analise Semântica aula-10-analise-semântica.pdf.
Top Systems Alexandre Kourbatov. 2 T-FLEX é o sistema CAD/CAPP/CAM/CAE/PDM integrado paramétrico que permite fazer preparação construtiva e tecnológica.
Padrão- MVC Model, View, Controller
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
UML e a Ferramenta Astah
Introdução a Programação Orientada a Objetos
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Introdução a Orientação a Objetos
20/04/2017 Orientação a Objetos 1 1.
Módulo II Capítulo 1: Orientação a Objetos
Palavras-Chaves Linguagem gráficas e utilizações de símbolos.
Gerenciamento de Configuração de Software
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
Programação para Web I AULA 2 BANCO DE DADOS.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Padrões de Projeto Aula 9 – Padrão Adapter.
Projeto de Arquitetura de Software
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Persistência de dados e padrão DAO
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Projeto de Sistemas de Informação Borland Delphi Studio 7 Grupo 4: Leandro Bercê do Nascimento Vanessa Tavares Nunes

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

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. Além de possui uma série de Design Patterns implementados que podem ser utilizados diretamente. Durante a criação e especificação de uma classe, podemos aplicar estes padrões pré-definidos, embutindo os métodos e propriedades necessárias de forma automática. É permitido também a criação de seus próprios padrões. Aspectos Favoráveis: A ferramenta possui alto grau de visualização de informações através de diversos níveis de interface. A interface é similar em funcionalidade ao SmallTalk É possível gerar código, a princípio razoavelmente bem. Principalmente se forem aplicados os design patterns Muitos padrões já foram implementados e pré-definidos na ferramenta, entretanto a possibilidade de criar o seu próprio padrão é muito útil para padronização de grandes empresas.   Deficiências: A ferramenta é um tanto burocrática para a sua utilização. Entretanto isso não difere muito do que em geral é uma ferramenta CASE, com todos os seus procedimentos bastante rígidos a fim de forçar a documentação A ferramenta tenta substituir de forma inferior a interface gráfica de programação do Delphi. Seus recursos de localização de texto, identificador de sintaxe, etc, citados no Delphi como pontos fortes, no ModelMaker não são tão bem utilizados. Foram encontrados alguns bugs na versão 4.01. Erros um tanto inaceitáveis, como na alocação do design pattern Adapter a uma classe. Entretanto o pattern alocado foi na verdade o SingleTon.

ModelMaker – Diagram Editor

ModelMaker – Delphi Integration

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. Algumas soluções para persistência de objetos no delphi, oferecem também componentes visuais para serem ligados diretamente aos objetos e às coleções de objetos. É o caso do Bold (que vem no Delphi 7 Architect). O Bold contém uma paleta (Bold Controls) que possui vários componentes para serem ligados diretamente aos objetos (BoldNavigator, BoldCheckBox, BoldGrid. Se a sua solução de persistência de objetos não possui componentes para serem ligados aos objetos, você deve criar os próprios componentes ou então utilizar apenas os componentes padrões do delphi, como o TEdit, TGrid, TComboBox, etc.

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 O Runtime Enviroment da estrutura .NET pode ser baixado gratuitamente no site Web MSDN da Microsoft. O .NET Framework SDK (Software Development Kit), que é mais completo e inclui documentação e ferramentas para desenvolvedores também pode ser baixado dali. Antes de rodar o Delphi for .NET Preview, uma dessas estruturas deve estar instalada

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.

Design Avaliaremos aqui se o Borland Delphi Studio 7 atinge os princípios de um bom desenho de software.

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.

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

...

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.

... Congeneridade de Tipo OK! Erro!

... Congeneridade de nome O valor 5 será impresso corretamente. Será impresso valor vazio na variável x.

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

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

... Em Delphi não existe Contrageneridade de herança múltipla porque o Delphi não suporta este tipo de herança. Ex.:

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

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.

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. Essa é a maneira pela qual novos componentes Delphi são criados. Se o programador quiser criar um novo tipo de botão de comando, por exemplo, ele pode percorrer a hierarquia de classes da VCL em busca da classe que possua o maior número de características que ele queira que seu componente herde. Localizado na estrutura, ele pode criar sua classe como filha da classe previamente definida na VCL, aproveitando o que já existe na classe-mãe, criando novos atributos e métodos onde necessário, ou ainda alterando ou sobrepondo os herdados.

Comparação com EIFFEL A seguir o Borland Delphi Studio 7 será comparado a linguagem e ao IDE do EIFFEL

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

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.

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.

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.

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. - A classe ANY é ascendente, por omissão, de todas as outras classes (à excepção das classes “Platform” e “General” que são, por sua vez, suas ascendentes) - A classe abstracta NONE é descendente de todas as classes existentes, não tendo assim descendentes. Não há acesso privado porque os membros visíveis numa classe, são-no sempre para todas as suas descendentes. Existe ainda a possibilidade de discriminar os clientes de cada membro de uma classe numa lista junto à sua definição, o que é designado de disponibilidade selectiva e não é suportado em UML

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.

EIFFEL X DELPHI ... Polimorfia de Operadores (Overloading): Delphi: É suportada somente através do uso da cláusula “overload” type TColecao = class public procedure Adiciona(const Item: TItem); overload; procedure Adiciona(const Colecao: TColecao); overload; end; EIFFEL: É suportada

EIFFEL X DELPHI Parametrização: EIFFEL: Suporta DELPHI: Não suporta A polimorfia paramétrica, também designada de polimorfia estática [Martin1997b], é a que pode ocorrer quando uma classe é parametrizável. Diferentes instâncias de parametrização corresponderão a situações polimórficas se os parâmetros actuais forem de tipos distintos. Uma classe parametrizável é como que um escantilhão para a criação de um qualquer número de classes instanciadas que adoptem o seu formato. Daí que também seja designada de classe genérica. Uma classe parametrizável declara um ou mais parâmetros formais. Podemos ver uma classe parametrizável como representante de uma família de classes cuja estrutura e comportamento é definida de forma independente dos seus parâmetros formais. Só se podem criar instâncias de classes parametrizáveis cujos parâmetros forem instanciados. Uma das formas mais recorrentes de utilizar as classes parametrizáveis é como classes contentoras (conjuntos, pilhas, filas de espera, listas, árvores, grafos, etc.).

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.

EIFFEL X DELPHI Reciclagem automática de memória não utilizada (Garbage Collection) EIFFEL : Suporta DELPHI: Não suporta. Deve ser implementada.

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.

Quadro Comparativo EIFFEL DELPHI Capsulação Sim Herança Simples Herança Múltipla Não Ocultação de Atributos Ocultação de Operações Tipificação por Objetos Pura Híbrida Parametrização de classes Sobrecarga de Operadores Asserções Reciclagem automática de memória Tratamento de Exceções