360 likes | 456 Views
Rapid Application Development. EDM Solution. ISEL, Outubro 2010. Ricardo Neto (#26657) - Nuno Sousa (#31923) - Paulo Pires (#32223). Agenda. Introdução Caso Prático Arquitectura da Solução Codificação e Geração Observação de Resultados Utilização Conclusões
E N D
RapidApplicationDevelopment EDM Solution ISEL, Outubro 2010 Ricardo Neto (#26657) - Nuno Sousa (#31923) - Paulo Pires (#32223)
Agenda Introdução Caso Prático Arquitectura da Solução Codificação e Geração Observação de Resultados Utilização Conclusões Trabalhos Futuros
Identificação do Problema • Aparecimento crescente de softwaremais barato • Software housesfocadas na quantidade e rapidez de produção em detrimento da qualidade do produto final 1 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Análise do Problema • Compromisso crescente das softwarehousescom os seguintes factores: PRAZO QUALIDADE RECURSOS • Solução? 1 Redução dos custos associados ao desenvolvimento de soluções, permitindo permanência em mercado competitivo. Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Identificação da Solução • Opções disponíveis para conseguir redução de custos de desenvolvimento • Diminuir exigência com recursos utilizados ü ü Utilização de metodologia consistente Desenvolvimento estável, repetivel e previsivel û Menor qualidade no produto final û Maior probabilidade de gastos com manutenção • Automatização de processos de trabalho rotineiros 1 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Definição do Âmbito • Automatização de tarefas repetitivas na fase de implementação do ciclo de desenvolvimento: • Caracterização de tipos de dados e restrições de domínio • Identificação e definição de entidades • Relações entre entidades • Especificação de processos • Definição de mecanismos de persistência • Esquema de segurança 1 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Objectivos Gerais • Definição de Dicionário de Dados (3D) • Agregador dos outputsda análise do problema, estruturando-os em secções próprias 1 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Objectivos Gerais • Criação detemplateVisual Studio (Solução EDM) • Estrutura necessária à representação da solução, dividida em projectos com “especialidades” distintas • Possibilidade de sincronização com o dicionário de dados dando origem à geração de código fonte a ser distribuído por cada projecto da Solução EDM • Possibilidade de geração do modelo físico de suporte à persistência 1 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Objectivos Gerais • Estrutura da Solução EDM 3D 1 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . . .
Problema • FutureView opera no sector do retalho e adquire lojas físicas em zonas de elevada concentração populacional FutureView Loja A Loja B Loja C Loja D • Especificidade do negócio implica investimento inicial elevado na expansão do negócio 2 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . .
Problema • Com vista à redução de custos, a FutureView passou a operar também em regime de parcerias num modelo e-commerce • Opção por solução que dê suporte aos seus processos de negócio Parceiro A Internet FutureView ... Administração Parceiro n Registo Venda 2 Processos Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . .
Modelo Entidade Associação Items Orders • Contact • LastPassword • OrderHeader • OrderItem • Category • SKU LastPasswords Contacts IS-A 2 Has Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . .
Modelo Entidade Associação • Modelação da hierarquia da entidade Contact IS-A IS-A IS-A 2 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . .
Arquitectura .NET Framework 3.5 Solução EDM 3D (Dicionário de Dados) Sincronização Gerador Transformação 1 Pipeline de geração … SGBD Transformação n Base de Dados WebServices Serviços Testes Unitários Entidades Tipos Modelo Físico EDM.FoundationClasses.dll Validação Segurança ORM Excepções 3 Internet NHibernate . . . . > Caso Prático > Arquitectura > Codificação e Geração > Observação > . . . . .
Demo • Codificação no dicionário de dados de: • Tipos de domínio • Suporte à persistência • Entidades e seus campos • Processos de negócio 4 . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Processos de Negócio • Protótipo de operação a ser exposta pela solução • BusinessProcess Parâmetros Retorno • Garantia de validação de parâmetros e retorno respeitando as restrições de domínio 4 . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Modelo de Segurança • Exigência de permissão na execução de processos de negócio e operações CRUD sobre entidades com base em RBAC Acesso a Create de Y Acesso a A1 Internet Exigência da permissão “XA1” 4 Exigência da permissão “YCreate” . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Relações 1 - 1 • E • Relações de herança entre as entidades <entitytype=“base"name=“E"> <fields> . . . </fields> </entity> <entitytype=“abstract"name=“A"> <fields> . . . </fields> </entity> <entitytype=“abstractdependent"name=“C“baseEntity=“A"> <fields> . . . </fields> </entity> <entitytype=“dependent"name=“D“ baseEntity=“C"> <fields> . . . </fields> </entity> <entitytype=“dependent” name=“B“baseEntity=“A"> <fields> . . . </fields> </entity> 4 . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Relações 1 - 1 • Representação emobjectmodel corresponde à herança entre classes • Em modelo relacional representam-se numa única relação TabelaA (a1, a2, b1, b2, c1, c2, d1, d2) Campos de A Campos de C Campos de B Campos de D 4 . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Relações 1 – n e n - 1 • Diferentes materializações em objectmodele modelo relacional • B • A • B • A • A • B <relationtype=“OneToMany"name=“relA"oneEntity=“A"manyEntity=“B“inverse=“false” minOccurs=“1"maxOccurs=“unbounded"nillable=“false"> </relation> “true“ relA ObjectModel Modelo Relacional _relA * … … … … 1 4 A . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Relações n – n • Necessária a criação de uma entidade associativa • AB • A • A • B • B • A • B <relationtype=“ManyToMany"entityName=“AB“minOccurs=“1"maxOccurs=“unbounded“> <entityname=“A"nillable=“false“inverse=“false"relationName=“As“> <entityname=“B"nillable=“false“inverse=“false"relationName=“Bs“> </relation> “true“ “true“ ObjectModel Modelo Relacional A B • AB • AB … … … … … 1 1 4 * * _As _Bs . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Demo • Codificação no dicionário de dados de: • Relações entre entidades • Sincronização do 3D com a Solução EDM • Geração doscript de construção do modelo físico 4 . . . . > Arquitectura > Codificação e Geração > Observação de Resultados > . . . . . .
Arquitectura .NET Framework 3.5 Solução EDM 3D (Dicionário de Dados) Sincronização Gerador Transformação 1 Pipeline de geração … SGBD Transformação n Base de Dados WebServices Serviços Testes Unitários Entidades Tipos Modelo Físico EDM.FoundationClasses.dll Validação Segurança ORM Excepções 5 Internet NHibernate Observação de Resultados
Problema Parceiro A Internet FutureView ... Parceiro n Registo Administração Venda 6 Processos Conclusões
Modelo Entidade Associação LastPasswords Contacts IS-A • LastPassword IS-A IS-A IS-A 6 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . .
Modelo Entidade Associação • Modelação da hierarquia da entidade Contact IS-A IS-A IS-A 2 Introdução > Caso Prático > Arquitectura > Codificação e Geração > . . . . . .
É sustentável ter um desenvolvimento baseado em dicionário de dados. Há um efectivo ganho de eficiência e eficácia no processo de desenvolvimento O EDM não é apropriado a todo tipo de projectos. 7 Conclusões
Trabalhos Futuros Consolidar a solução EDM em casos reais Contemplar a camada de apresentação na solução EDM. Certificação do processo de desenvolvimento utilizando metodologia apropriada. 8 Trabalhos Futuros