quarta-feira, 17 de abril de 2013

Programação Orientada a Componentes



Faculdade de Educação São Luís de Jaboticabal    





                        Engenharia de Software

        Programação Orientada a Componentes

 

        

                     Professor: Maurício Perecim 
             Alunos:  Héber Silva
                                                            Marcelo Ferreira dos Santos
                                                                                  Rafael Tomaz Fernandes                           
                            











Jaboticabal/2013




Introdução


Antigamente se tinha uma grande dificuldade de se reutilizar os softwares, pois esses softwares mais antigos ou não tinham documentação ou era muito precária. Quando algum software mais antigo precisava ser reformulado com uma tecnologia mais recente isso era um grande impecilio, com isso com o passar do tempo vieram surgindo novas tecnologias como a orientação a componentes.
A primeira vez que se citou componentização para o desenvolvimento de software foi em 1968, durante uma conferência de Engenharia de Software nos Estados Unidos. Nela McIlory apresenta uma proposta de produzir software reutilável e propiciar aos desenvolvedores a possibilidade de escolher os componentes que querem utilizar segundo as suas necessidades.
Em 1976, DeRemer propõe um paradigma de desenvolvimento baseado na construção de módulos independentes e depois interligá-los. Na década de 80, surge o paradigma de orientação a objetos que fortaleceu esta visão pela possibilidade de reutilização. Com a necessidade de construir software de forma rápida e com qualidade, no final dos anos 90 surgiu à proposta de desenvolvimento reutilizando componentes, uma das suas motivações foi à frustração dos projetistas de software com o desenvolvimento orientado a objetos, que não conseguia atingir amplo nível de reuso, como esperado originalmente.
Esse tipo de programação tem um alto grau de reutilização, pois um componente pode ser reutilizado em diversas outras aplicações, pode se montar uma aplicação apenas com a colagem de alguns componentes. A tecnologia de programação com componentes é especialmente importante no desenvolvimento de aplicações que são distribuídas por várias máquinas, uma vez que a distribuição dos componentes pelas máquinas é mais fácil do que utilizar alguma outra tecnologia.
A programação com componentes pretende aumentar o grau de reutilização do software, no entanto, o seu sucesso apenas foi significativo no desenvolvimento das interfaces gráficas das aplicações.



Conceitos

Oque é um componente?

Um componente pode ser um bloco de código, uma função, um objeto ou uma aplicação onde foi adicionada lógica para implementar uma interface, ou seja, um componente nada mais é do que uma peça de software que pode ser implementada com uma determinada funcionalidade e que pode ser configurada alterando-se suas propriedades de acordo com o contexto onde ele vai ser utilizado.
A programação por componentes permite desenvolver aplicações simplesmente através da colagem de vários componentes, possivelmente de diferentes fabricantes. A colagem consiste em identificar as interligações entre componentes e as propriedades de cada componente. Uma forma de se desenvolver aplicações com componentes é utilizando um ambiente visual de programação que permite, através de uma interface gráfica, fazer a configuração da aplicação.
O uso da programação orientada a componentes tem algumas vantagens que são a possibilidade de reutilização do componente em outra aplicação, a facilidade de uso e uma produtividade maior, pois você pode montar uma aplicação apenas colando componentes de software.
Cada componente implementa um conjunto de serviços e pode basear-se em serviços fornecidos por outros componentes. Os componentes são frequentemente utilizados em ambientes de programação visual, os quais devem ser capazes de determinar os intefaces implementados por cada componente.

Estudo de caso:

Sistema de Alocação de Salas

 Pensando em melhorias na Universidade de Brasília-UnB, no uso de laboratórios de informática, os alunos desenvolveram um sistema de automatização de alocação de salas, pois tudo é feito manualmente, as reservas dos laboratórios através de formulários, que por sua vez eram preenchidos pelos professores e outros usuários diante da necessidade do uso e de instalações de softwares específicos para cada tipo de aula a ser ministrada.
Com uso de formulários acabavam gerando conflitos por horários e datas, portanto com esse sistema organizaria de forma simples e prática. 

      Os principais atores do sistema são:

·                    Os requerentes de sala;
·                    Os gestores do Laboratório.
   
Explicando quem são os requerentes de sala, que se enquadram no contexto, por exemplo: usuários, palestrantes e professores, e os outros três atores relacionados como:

·                    Secretária;
·                    Bolsista;
·                    Coordenador.

    A secretária seria responsável por receber todos os pedidos de alocação de salas de informática, e também faz o encaminhamento das necessidades de instalações de alguns tipos softwares específicos de cada requerente para o bolsista, no qual desempenha a responsabilidade por fazer o atendimento no suporte técnico do laboratório, assim cuidando da manutenção do hardware, softwares e redes. E o coordenador supervisiona os trabalhos e atividades da sala, do sistema e do Bolsista.
       Representação dos principais atores e casos de uso.


     
                                                       Figura, de atores e casos de uso.

Os formulários preenchidos depois de ser avaliada pelo coordenador e pela secretária para as constatações de mudanças nos horários e nas instalações de softwares controlados com auxílio de planilhas do programa Microsoft Excel, após esses procedimentos, o bolsista vai fazer a adequação da sala, e depois faz a comunicação com o requerente que já pode ser utilizada a sala no horário reservado.
  Com o novo sistema seria possível diminuir os conflitos de horários, com a proposta de um sistema Web, feita de modo on-line fazendo integração com o banco de dados MySQL e a programação na linguagem Java.

     
 Funcionamento do Programa.

     Manter Requerente

Primeiramente o usuário fará o cadastro dos dados pessoais no site, para depois a secretária fazer sua ativação, quando estiver liberado poderá requisitar a reserva de salas de informática. Demonstração da figura abaixo como é o procedimento.
 



                                                
                                                     Figura Tela de pesquisar requerente.

Manter Sala



Os responsáveis pela manutenção terão um papel importante, de manter todos os equipamentos de informática em pleno funcionamento para que o requerente possa utiliza-los sem problemas, na figura abaixo demonstra todos os detalhes de horários, se estão ocupados ou não, número de máquinas, projetor e softwares instalados.




                                  Figura Tela de exibição de detalhes das informações das sala.



 Manter Software



O Bolsista tem como por objetivo escolher o melhor software para utilização, podendo exclui-lo ou altera-lo de acordo com a versão, respeitando as necessidades do requerente.

Solicitar Software



A solicitação do software é a escolha feita pelo Professor ou Palestrante, de quais programas que eles vão utilizar no horário requisitado. 

 



                Figura Tela de pesquisar software.


Na figura demonstra os atores envolvidos em relação com os dois casos de uso reserva de sala.



                                      
                                                   Diagrama de caso de uso de reserva de sala


Manter Reserva

A principal ação é a reserva de sala, tendo o cadastro no sistema para poderá preencher todos os dados como:
·                  Tempo de reserva, ou seja, o horário;
·                  Programas a serem utilizados,
·                  Identificação do usuário (Professor ou Palestrante),
·                  Motivo da reserva da sala.

Feito todos esses procedimentos serão avaliados pela Secretária, pela Coordenação e por último o Bolsista.



                       Figura Tela de pesquisar salas de informática para aloca-las.

   

O processo segundo Cheesman e Daniels

    Para mostrar o relacionamento entre os casos de uso identificados para o sistema e os atores envolvidos pode-se utilizar o diagrama de Casos de Uso da UML. Pode-se definir o que vem a ser o Modelo Conceitual do Negócio que foi utilizado para fazer o sistema de Alocação de Salas, apenas de superficial a apresentação desse modelo, e algumas figuras que demonstram o mapeameanto e os artefatos do sistema.





                                                       Modelagem Conceitual de Negócios.





                                                      Mapeamento do ManterRequerente



                               

                                                       Mapeamento do Manter Software.





                                                     Modelo do Tipo de Negócio.


                           

                                             Arquitetura dos Componentes.


Software


As aplicações podem ser implementada com nas linguagem Visual Basic, C++, Java.
Exemplo em C++:
class Concreta_A {
public:
  void f1();
  virtual void f2();
};
class Concreta_B :
   public Concreta_A {
public:
  void f2();
  void f3();
};
Neste exemplo mostra uma classe concreta, derivada de outra classe concreta, ou seja e feita uma classe que depois e utilizada na constituição de outra classe.

        Com a reutilização, alguns benefícios surgem, como por exemplo a robustez, pois se um componente já foi utilizado mais de uma vez, ele provavelmente já foi corrigido e aprimorado, se tornando um componente estável, otimizado e robusto. Com a reutilização também reduz-se o risco, pois os componentes já são estáveis e uma pequena parte do código será criada do zero, então o risco é bem menor que se fôssemos partir do rascunho. 
Plataformas
          As plataformas são ferramentas que oferecerem diversos recursos que tornam a programação e o desenvolvimento de aplicativos

COM

Component Object Model (COM)(30) é uma plataforma da Microsoft para componentes.Ela viabiliza comunicação entre processos e criação dinâmica de objetos em diferentes linguagens. A sigla COM é muitas vezes usada como sinônimo para um grupo de tecnologias, dentre elas: Object Linking and Embedding (OLE), OLE Automation, ActiveX, COM+ e DCOM. Apesar de introduzido em 1993 no desenvolvimento dos produtos, a Microsoft não divulgou sua biblioteca até 1997.
COM é uma tecnologia independente de linguagem de programação para o desenvolvimento dos seus componentes.

COM+

COM+ é o nome da tecnologia baseada nos serviços e funcionalidades da COM e sua primeira versão foi lançada noWindows 2000. COM+ acrescentou à COM componentes para suportar as funcionalidades da Microsoft Transaction Server (MTS).
Essa tecnologia também encapsula algumas atividades de baixo nível, como manutenção do pool de conexões, finalização de conexões, controle transacional e distribuição e controle de submissões.
Para fornecer aos desenvolvedores suporte a transações distribuídas e melhor
gerenciamento de memória e processamento, assim como para posicionar o Windows como uma alternativa a outros sistemas operacionais corporativos, a Microsoft introduziu a tecnologia Microsoft Transaction Server no Windows NT .


 NET

A plataforma COM vem sendo substituída pela Microsoft .NET, fornece ferramentas de desenvolvimento rápido similares ao Visual Basic tanto para Windows Forms quanto para Web Forms com Just-in-Time(JIT), o código de alto desempenho pode ser implementado em C#.

EJB

Os EJBs são conhecidos por serem o núcleo da plataforma J2EE (Java 2 Plataform Enterprise Edition) justamente por sustentarem de uma maneira robusta e simples o desenvolvimento de aplicações de grande porte, provendo um modelo distribuído de componentes de negócio e provedores de serviços dentro do contêiner da aplicação.
Em EJB, os beans são considerados remotos; então, mesmo na implementação de um bean descrito como local, deve-se fazer uma busca pela implementação da interface e então pode-se utilizar suas funcionalidades. O responsável por achar, instanciar e retornar a implementação da interface é o contêiner onde executa-se.

Referências
 OBJECT MANAGEMENT GROUP. The unified modeling language - uml omg, Outubro 2013. Disponível em http://www.uml.org/.

CHEESMAN, J.; DANIELS, J. Uml components: A simple process for specifying
component-based software. 1. ed. Addison-Wesley, 2000.

CASTAÑON, F.O.; LOPES, L.P . Engenharia de Software baseada em componentes: uma abordagem prática em ambientes Web. Monografia, Pg.88. Universidade de Brasília- UnB, 2009.