Resumo: Perguntas a fazer ao elaborar um projeto arquitetural



Documentos relacionados
Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Eduardo Bezerra. Editora Campus/Elsevier

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Aspectos técnicos do desenvolvimento baseado em componentes

Padrões de projeto 1

Web Services. (Introdução)


Universidade da Beira Interior

Documento de Arquitetura

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

WebApps em Java com uso de Frameworks

Noções de. Microsoft SQL Server. Microsoft SQL Server

Enterprise Java Bean. Enterprise JavaBeans

Sistemas para internet e software livre

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

J2EE TM Java 2 Plataform, Enterprise Edition

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Sistemas Distribuídos

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UFG - Instituto de Informática

Fundamentos de Banco de Dados

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Modelo para Documento de. Especificação de Requisitos de Software

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Sistemas Distribuídos

Figura 1 - Arquitetura multi-camadas do SIE

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

UFG - Instituto de Informática

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Orientada a serviços: JAX-WS SOAP API

08/04/2013. Agenda. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Disciplina de Banco de Dados Introdução

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Modelo para Documento de. Especificação de Requisitos de Software

Sistemas Distribuídos

Web Technologies. Tópicos da apresentação

Padrão Arquitetura em Camadas

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

ENGENHARIA DE SOFTWARE DESENVOLVIMENTO EM CAMADAS

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

UFG - Instituto de Informática

Programação Web Prof. Wladimir

Sistemas Cliente-Servidor

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

HIBERNATE EM APLICAÇÃO JAVA WEB

2 a Lista de Exercícios

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

MATRIZ CURRICULAR CURRÍCULO PLENO 1.ª SÉRIE 2.ª SÉRIE CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE (ÁREA: INFORMÁTICA)

Engenharia de Software I: Análise e Projeto de Software Usando UML

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Modelos de Arquiteturas. Prof. Andrêza Leite

INTERNET HOST CONNECTOR

SISTEMA GERENCIADOR DE BANCO DE DADOS

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Desenvolvimento Cliente-Servidor 1

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

World Wide Web e Aplicações

Adriano Reine Bueno Rafael Barros Silva

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Arquitetura de Banco de Dados

O Processo de Desenvolvimento de Software

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Persistência e Banco de Dados em Jogos Digitais

Programando em PHP. Conceitos Básicos

Projeto de Arquitetura

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Projeto de Arquitetura

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Kassius Vargas Prestes

Aula 03-04: Modelos de Sistemas Distribuídos

Considerações no Projeto de Sistemas Cliente/Servidor

MVC e Camadas - Fragmental Bliki

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

EVOLUÇÃO DE SOFTWARE

Figura 01 Kernel de um Sistema Operacional

Processo de Desenvolvimento de Software. Engenharia de Software.


Desenvolvendo Websites com PHP

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Transcrição:

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita? Como? Determinação de oportunidades para o reuso de software Há interesse/conveniência/tempo em aproveitar tais oportunidades? Como isso pode ser feito? Com componentes? Construindo um framework? Sobre a organização geral do sistema O sistema é centralizado ou distribuído? Como modularizar em subsistemas? Como minimizar acoplamento entre os pedaços? Lembrando que um sistema pode ser visto como sendo composto de três grandes camadas lógicas... Tais camadas serão lógicas ou terão existência física separada? Onde colocar o business logic (como dividir entre as camadas)? Qual é o nível de acoplamento, freqüência de interações, volumes de dados trocados entre as camadas? Qual será a estrutura de comunicação e controle entre os subsistemas (como ligar as camadas e partições)? Usando o Observer Pattern? Usando o Model-View-Controller Pattern? Que subsistema pode se comunicar com que outros? Página 1 de 6

Quais são as interfaces importantes entre os pedaços? Qual é o formato das mensagens (xml,...)? Como é feita a comunicação remota? CORBA? RPC? RMI? Message Queue? A programação será feita com qual paradigma? OO? Que linguagens e ferramentas serão usadas? Que frameworks serão usados? struts? Tapestry? Java Server Faces? Como será feito a alocação de memória para os elementos do programa? Onde são armazenados os strings? Há considerações especiais de segurança que afetam o sistema? Como é a estratégia de tratamento de erros? Sobre a camada de interface O sistema será acessado usando que tipos de clientes? Browser? Uso de applet? Uso de script cliente? Como fazer a interface gráfica? Com que ferramentas? Com que componentes visuais? Serão desenvolvidos? comprados? Javascript ou outra linguagem de script do lado cliente será usada? Que modelo de componentes visuais será usado? ActiveX? Javabeans? Se a interface usar um browser, como será feita a geração de HTML dinâmico? Servlets? JSP? ASP? Que ferramentas usar para a formatação de Página 2 de 6

relatórios? Há packages a desenvolver que poderiam ser comuns a várias partes da interface? Há considerações de localização (para outras línguas ou outros países)? Sobre a camada de lógica da aplicação Escolha de middleware: qual modelo de componentes de servidor será usado? COM+/.Net? EJB? Quais são os componentes principais a fazer? Serão componentes persistentes? Serão componentes com ou sem estado? Quais são os algoritmos não triviais? Há uso de threads? Como tratar concorrência? reentrância? De que forma atender aos requisitos para uso multiusuário? Soluções para resolver a concorrência Que APIs serão usadas para acesso a: Dados persistentes? Serviço de mail? Serviço de nomes? Há packages a desenvolver que poderiam ser comuns a várias partes da lógica da aplicação? Qual é a organização interna dos módulos executáveis? Determinar sub-camadas e partições Quais são as interfaces importantes entre os pedaços? Onde verificar os business rules? No SGBD? No middleware? Como implementar aspectos de segurança? Como implementar os requisitos de auditoria? Página 3 de 6

Sobre a camada de dados persistentes Quais são as fontes de dados? externas? internas? existentes? novas? Como acessá-las? Que estratégia de persistência será usada: Na memória (com recursos especiais como bateria, memória flash)? Em arquivos? Usando um SGBD? Qual paradigma de SGBD usar? Relacional? O-R? O-O? Onde usar stored procedures para implementar os business rules ou garantir a integridade dos dados? Qual será a estratégia de interação entre a aplicação e os dados? De que forma atender aos requisitos para uso multiusuário (concorrência)? Como resolver o impedance mismatch entre a camada de lógica de aplicação e o esquema de persistência? Para grandes escalas, como oferecer connection pooling? Como implementar a segurança no SGBD? Como será feita a população dos bancos de dados? Sobre requisitos de desempenho Há necessidade de bolar formas especiais de atender aos requisitos de desempenho? Como prover escala? Como prover failover? O que deve ser produzido? Quais são os módulos executáveis a produzir? Executáveis, DLLs,... Quais são os arquivos importantes (de configuração, Página 4 de 6

etc.) e seu formato (xml,...)? Como será resolvida a instalação do produto? O que será comprado, feito, modificado? O que será gerado automaticamente com uma ferramenta especial? Exemplo: geração de esquema através de ferramentas CASE,... Sobre a integração futura Que interfaces devem ser expostas para facilitar a futura integração de aplicações (Enterprise Application Integration - EAI)? Pode-se usar uma camada de API para expor a camada de business logic, colocar uma camada de script acima disso e ainda camada(s) de interface para ativar a business logic através de scripts. Vantagens: Fácil criação de macros e outras formas de automação Fácil criação de testes de regressão Clara separação de business logic da interface para o usuário Como será feita a exposição? Com XML? Através de uma API? Perguntas adicionais Que ferramentas de desenvolvimento serão geradas? Como será o atendimento a outros requisitos (custo, mobilidade, uso de padrões, etc.) Há considerações especiais de administração a levar em conta? Como será a troca de versões? Como será a distribuição do software? Via Internet/Intranet? Via mídia? Página 5 de 6

Há considerações de portabilidade? Pergunta final Você já verificou que a arquitetura bolada pode atender a todos os requisitos levantados? Isso é feito montando um "traceability matrix" programa Página 6 de 6