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();
};
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
AL-ALAM, W.G. Disponivel em: http://components-oriented-programming.blogspot.com.br/2010/09/comecando-com-orientacao-componentes.html#comment-form,
acesso em 06 de abril de 2013.
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.