MedEl: Uma solução de ELearning utilizando tecnologia Microsoft ASP.NET Autores: Glaucon Henrique Mauricio Maia CoAutores: Atila Correia, Waner Tavares, Jorge Bergson, Rui Gomes, Marcelo Iury, João Neto e José Candido Brasil Introdução Crescimento da demanda por produtos e serviços na área de educação à distância Aplicações Web: Atendem a uma grande gama de clientes; Independência de localidade e configuração; Acessibilidade via Internet A tecnologia Microsoft: Plataforma ASP.NET Framework .NET Desenvolvimento de aplicações Web robustas e de grande escala. Ambiente de Educação a Distância Para comprovar a eficiência das tecnologias Microsoft .NET e atender a demanda citada anteriormente (software de ensino a distância para profissionais da saúde) foi desenvolvida a aplicação MedEl (Medical E-Learning). Metodologia A definição da arquitetura do sistema preocupou-se com um baixo custo de implantação e com uma fácil extensão e manutenção da ferramenta gerada. Para isso foram utilizados o paradigma da Orientação a Objetos e Padrões de Projeto (Design Patterns) No processo de análise foram realizadas entrevistas com estudantes e professores da área (Curso de Medicina da Universidade Federal do Ceará), facilitando: Especificação dos requisitos adequados; IHC mais adequada. Orientação a Objetos O paradigma da Orientação a Objetos (OO) Baseado na construção de sistemas a partir de componentes reutilizáveis, chamados de classes; Relacionamento entre dados (atributos) e comportamentos (métodos); Encapsulamento; Herança; Polimorfismo. Orientação a Objetos O que são Classes e Objetos Classes: São como “plantas” de objetos Contém comportamentos (métodos) e atributos (dados) Classe Covered Porch kitchen Dining Room Objetos: São instâncias de uma classe Criados usando a palavra-chave new Executam ações Objeto Living Room Bath Office Family Room Encapsulamento Separação dos aspectos externos de um objeto, que são acessíveis para outros objetos, dos detalhes internos de implementação do objeto. [Rumbaugh] Mecanismo para “esconder” a implementação do objeto fazendo com que outros componentes do sistema não tenham conhecimento do conteúdo interno dos dados armazenados no objeto. [Yourdon] Orientação a Objetos Encapsulamento... Conseqüências: Comunicação entre os objetos é feita através de mensagens enviadas para as operações Implementação de um objeto pode ser mudada sem afetar as aplicações que o usam Facilidade de depuração, portabilidade, etc Lei da OO Os dados não podem ser acessados diretamente (são encapsulados) Orientação a Objetos Polimorfismo Linguagens convencionais, como Pascal e C são baseadas na idéia de que funções têm um tipo único: são linguagens monomórficas. Linguagens polimórficas, por sua vez, permitem que funções de mesmo nome, desde que pelo menos um de seus parâmetros perfaça uma distinção (quantidade, nome ou tipo), sejam invocadas para objetos diferentes. Significa que a mesma operação pode se comportar diferentemente em classes diferentes. [Rumbaugh] Herança Todos os objetos criados a partir da mesma classe vão compartilhar (herdar) as características descritas por ela. Usando a herança é possível montar uma classe nova (subclasse ou classe-filho), definindo-a em termos de outra classe existente (superclasse ou classe pai). AB AB C CLASSE BASE Características Herdadas AB E F D CLASSES DERIVADAS Herança... Na prática, a herança é uma maneira de evitar repetição de código. Especialização, você pode considerar uma subclasse um caso especial da classe-pai. Generalização, você pode usar a classe-pai para compartilhar os elementos comuns, e também parte do código. Automóvel Generalização Automóvel esportivo Porsche Especialização Padrões de Projeto Padrões de Projeto: Soluções genéricas e reutilizáveis Aplicáveis em classes de problemas bem conhecidos. Soluções que um dia funcionaram, tornam-se receitas para situações similares (desde que estas soluções tenham sido projetadas com flexibilidade). Fornece um conjunto de interações específicas que podem ser aplicadas para objetos genéricos para resolver problemas conhecidos. Orientação a Objetos Padrões de Projeto - MVC Model-View-Controller (MVC): Padrão fundamental Desenvolvido para atuar na separação da interface do usuário das Regras de Negócio e acesso aos Dados. Orientação a Objetos Padrões de Projeto - DAO O Data Access Object (DAO) Fornece interface flexível entre a lógica de negócio e as fontes de dados reais. Desenvolvedores implementam um objeto unicamente responsável por receber informação de um armazenamento persistente, onde quer que ele esteja. Isto abstrai a visão do dado usada por uma aplicação do layout da tabela, esquema XML ou arquivo em disco. Orientação a Objetos Padrões de Projeto - Singleton Utilizado quando se necessita assegurar que só pode existir uma e somente uma instância de uma classe. Pode utilizar construtores privados Se a instância não existir, ela será criada a primeira vez e sempre que o método for chamado, ele irá retornar o mesmo objeto. Orientação a Objetos Padrões de Projeto – Abstract Factory Provê uma interface para criar famílias de objetos relacionados sem especificar suas classes concretas. As Classes e/ou objetos que participam deste padrão são: AbstractFactory - declara uma interface para operações que cria objetos produto abstratos ConcreteFactory - implementa as operações para criar objetos produto concretos AbstractProduct - declara uma interface para um tipo objeto produto Product - define um objeto produto a ser criado pelo factory concreto correspondente Client – usa interfaces declaradas pelas classes AbstractFactory e AbstractProduct Orientação a Objetos Padrões de Projeto – Abstract Factory Diagrama UML Orientação a Objetos Arquitetura da Solução Dividida em três partes MedElUI MedElBusiness MedElDAO Orientação a Objetos Arquitetura da Solução - MedElUI MedElUI ASP.NET WebForms Navegabilidade simples e intuitiva Orientação a Objetos Arquitetura da Solução - MedElBusiness MedElBusiness Manipular chamadas vindas da camada de apresentação Utiliza Facade para interceptar as chamadas e enviá-las para o(s) Business correspondentes. Implementa Interface DAO, que implementa o padrão de projeto Data Acess Object, é utilizada através da Camada de Dados. Orientação a Objetos Arquitetura da Solução - MedElDAO MedElDAO Camada flexível para diversas formas de acesso a dados Banco de dados SQL Server 2000 Através de um nome, podemos recuperar a query SQL responsável por uma operação. Orientação a Objetos Resultados Grande produtividade da arquitetura utilizada e da ferramenta RAD (Visual Studio .NET) Um protótipo de alta qualidade, comparável com produtos existentes no mercado A arquitetura foi montada a fim de poder ser facilmente estendida a outros tipos de aplicações de e-learning. Telas – Cadastro de Tutorial Telas – Listagem de Tutoriais Telas – Visualização de Tutorial2 Telas – Gerenciamento de Usuários Contatos www.atlantico.com.br/~ctxml [email protected]