Sie sind auf Seite 1von 80

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN CMPUS PATO BRANCO CURSO SUPERIOR DE TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS

GEOVANI FABRICIO WELTER

SISTEMA PARA INTERAO COM O EQUIPAMENTO ROUTERBOARD

TRABALHO DE CONCLUSO DE CURSO

PATO BRANCO

2012

GEOVANI FABRICIO WELTER

SISTEMA PARA INTERAO COM O EQUIPAMENTO ROUTERBOARD

Trabalho de Concluso de Curso de graduao, apresentado disciplina de Trabalho de Diplomao, do Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas, da Universidade Tecnolgica Federal do Paran, Cmpus Pato Branco, como requisito parcial para obteno do ttulo de Tecnlogo. Orientadora: Profa. Beatriz Terezinha Borsoi

PATO BRANCO

2012

RESUMO

WELTER, Geovani Fabricio. Sistema para interao com o equipamento RouterBoard. 2012. 79 f. Trabalho de Concluso de Curso - Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas, Universidade Tecnolgica Federal do Paran. Pato Branco, 2012.

A orientao a objetos possibilita entender e representar um sistema como um conjunto de objetos. Esses objetos possuem atributos que os caracterizam e realizam aes. As aes so realizadas tendo como base esses atributos. Esses objetos tambm se comunicam por meio da troca de mensagens. O uso de conceitos de orientao a objetos facilita o entendimento do sistema para o qual ser elaborada uma soluo computacional (software ou aplicativo, dentre outras denominaes) a ser desenvolvida a partir do seu conceito de negcio. Isso porque o mundo real composto por objetos sejam eles fsicos ou conceituais. Em termos de anlise e projeto de sistemas computacionais comum que sejam criados objetos que no possuem correspondncia direta com objetos do mundo real. Visando utilizar as facilidades e os recursos para modelagem de sistemas computacionais oferecidos pelos conceitos de orientao a objetos, este relatrio de estgio apresenta a anlise e o projeto de um aplicativo que ser desenvolvido para interagir por meio de uma API com um equipamento de rede denominado RouterBoard.

Palavras-chave: Orientao a objetos. Controle do equipamento RouterBoard. UML.

ABSTRACT

WELTER, Geovani Fabricio. System to interact with RouterBoard. 2012. 79 f. Trabalho de Concluso de Curso - Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas, Universidade Tecnolgica Federal do Paran. Pato Branco, 2012.

Object orientation make to understand and represent a system as a set of objetct possible. These objects have attributes that characterize them and perform actions. The actions are performed based on these attributes. The objects communicate by exchanging messages. Using concepts of object orientation facilitates the understanding of the system for which a computational solution (software or application, among other names) will be developed from its business processes. The real world is composed of objects whether physical or conceptual. In terms of analysis and design of computer systems is common that objects have no direct correspondence with real world objects. Aiming to use the facilities and resources for modeling computational systems offered by concepts of object orientation, this text presents the development of an application that is designed to interact through an API with a network equipment called RouterBoard.

Palavras-chave: Object orientation. RouterBoard. UML.

LISTA DE QUADROS Quadro 1 Casos de uso do sistema..................................................................................... 39 Quadro 2 Requisito cadastro de clientes ............................................................................ 40 Quadro 3 Requisito listar clientes base .............................................................................. 41 Quadro 4 Requisito listar clientes online ........................................................................... 42 Quadro 5 Requisito PPPoe online...................................................................................... 43 Quadro 6 Requisito alterar senha....................................................................................... 43 Quadro 7 Requisito cadastrar usurio ................................................................................ 44 Quadro 8 Requisito cadastrar base..................................................................................... 44 Quadro 9 Requisito cadastrar responsvel cidade .............................................................. 45 Quadro 10 Requisitos suplementares................................................................................. 45 Quadro 11 Interfaces de usurio ........................................................................................ 46

LISTA DE FIGURAS Figura 1 Exemplo de Classe .............................................................................................. 16 Figura 2 Exemplo de Atributo ........................................................................................... 16 Figura 3 Exemplo de Polimorfismo................................................................................... 18 Figura 4 Exemplo de Herana ........................................................................................... 19 Figura 5 Diagramas da UML 2.......................................................................................... 21 Figura 6 Diagrama de casos de uso.................................................................................... 22 Figura 7 Diagrama de classes ............................................................................................ 23 Figura 8 Diagrama de objetos............................................................................................ 24 Figura 9 Diagrama de atividades ....................................................................................... 25 Figura 10 Diagrama de sequncia...................................................................................... 25 Figura 11 Diagrama de mquina de estados....................................................................... 26 Figura 12 Diagrama de pacotes ......................................................................................... 26 Figura 13 Diagrama de componentes................................................................................. 27 Figura 14 Tela principal do Astah Community .................................................................. 29 Figura 15 IDE NetBeans ................................................................................................... 30 Figura 16 IDE MySQL-Front ............................................................................................ 33 Figura 17 IDE Winbox da Mikrotik................................................................................... 34 Figura 18 Equipamento RouterBoard ................................................................................ 34 Figura 19 Diagrama de casos de uso.................................................................................. 38 Figura 20 Diagrama de classes .......................................................................................... 47 Figura 21 Diagrama de atividade incluso de cliente no equipamento................................ 48 Figura 22 Diagrama de atividade listar clientes online....................................................... 48 Figura 23 Diagrama de sequncia adicionar cliente ........................................................... 49 Figura 24 Diagrama de sequncia listar clientes online...................................................... 49 Figura 25 Tela de login ..................................................................................................... 50 Figura 26 Tela inicial do sistema....................................................................................... 50 Figura 27 Cadastro de novo usurio .................................................................................. 51 Figura 28 Alterar senha de usurio logado......................................................................... 51 Figura 29 Responsvel cidade ........................................................................................... 52 Figura 30 Lista responsvel cidade.................................................................................... 52 Figura 31 Detalhe responsvel cidade ............................................................................... 53 Figura 32 Editar responsvel cidade .................................................................................. 53 Figura 33 Excluir responsvel cidade ................................................................................ 54 Figura 34 Cadastro base .................................................................................................... 55 Figura 35 Lista de bases cadastradas ................................................................................. 55 Figura 36 Detalhes da base................................................................................................ 56 Figura 37 Editar base ........................................................................................................ 56 Figura 38 Excluir base ...................................................................................................... 57 Figura 39 Adicionar cliente base ....................................................................................... 58 Figura 40 Clientes liberados .............................................................................................. 59 Figura 41 Filtro buscar cliente........................................................................................... 60 Figura 42 Excluir cliente do access-list ............................................................................. 60 Figura 43 Editar cliente no access-list ............................................................................... 61 Figura 44 Clientes online na base ...................................................................................... 62 Figura 45 PPPoe online ..................................................................................................... 63 Figura 46 Cadastro servidor PPPoe ................................................................................... 63 Figura 47 Filtro de busca cliente PPPoe ............................................................................ 64 Figura 48 Pacotes do projeto ............................................................................................. 64

LISTAGENS DE CDIGO

Listagem 1 ValidaLogin() ................................................................................................. 65 Listagem 2 Interface OperacoesBancoImpl ....................................................................... 66 Listagem 3 Classe BdConnection ...................................................................................... 67 Listagem 4 inserirBase() ................................................................................................... 68 Listagem 5 IPehValido(String ip)...................................................................................... 69 Listagem 6 incluirBase(Base base).................................................................................... 70 Listagem 7 Listar bases ..................................................................................................... 70 Listagem 8 editarBase() .................................................................................................... 71 Listagem 9 editarBase(Base base) ..................................................................................... 72 Listagem 10 excluirBase()................................................................................................. 72 Listagem 11 excluirBase(int cod) ...................................................................................... 73 Listagem 12 Conectar RouterOS ....................................................................................... 74 Listagem 13 Login com RouterOS .................................................................................... 75 Listagem 14 Enviar comandos .......................................................................................... 75 Listagem 15 Exemplo do uso dos mtodos ........................................................................ 76 Listagem 16 ConectarMKT() ............................................................................................ 77

LISTA DE SIGLAS

ACID API BGP CDC CLDC DLL HTTP IDE IP JDK Java EE Java ME JRE Java SE MAC MPLS OMG OSPF PPPoe RIP SPF SQL SSH UML VPLS VPN

Atomicidade, Consistncia, Isolamento, Durabilidade Application Programming Interface Border Gateway Protocol Connected Device Configuration Connected Limited Device Configuration Dynamic-Link Library Hypertext Transfer Protoco
Integrated Development Environment Internet Protocol

Java Development Kit Java Enterprise Edition Java Micro Edition Java Runtime Edition Java Standard Edition Media Access Control Multiprotocol Label Switching Object Management Group Open Shortest Path First Point-to-Point Protocol over Ethernet Routing Information Protocol Small Form-Factor Pluggable Structured Query Language Secure Shell Unified Modeling Language Virtual Private LAN Service Virtual Private Network

SUMRIO 1 INTRODUO ................................................................................................................ 10 1.1 CONSIDERAES INICIAIS ...................................................................................... 10 1.2 OBJETIVOS .................................................................................................................. 11 1.2.1 Objetivo Geral............................................................................................................. 11 1.2.2 Objetivos Especficos .................................................................................................. 11 1.3 JUSTIFICATIVA .......................................................................................................... 12 2 MODELAGEM DE SISTEMAS UTILIZANDO ORIENTAO A OBJETOS ............... 13 2.1 ORIENTAO A OBJETOS ........................................................................................ 13 2.2 Unified Modeling Language........................................................................................... 19 2.1.1 Diagramas da UML..................................................................................................... 20 3 MATERIAIS E MTODO................................................................................................ 28 3.1 MATERIAIS.................................................................................................................. 28 3.3.1 Astah Community ....................................................................................................... 28 3.3.2 NetBeans..................................................................................................................... 29 3.3.3 Linguagem Java .......................................................................................................... 30 3.3.4 MySQL ....................................................................................................................... 31 3.3.5 MySQL-Front ............................................................................................................. 32 3.3.6 Equipamento RouterBoard .......................................................................................... 33 3.2 MTODO ...................................................................................................................... 35 4 MODELAGEM DO SISTEMA ........................................................................................ 37 4.1 A EMPRESA ................................................................................................................. 37 4.2 MODELAGEM DO SISTEMA...................................................................................... 37 4.3 DESCRIO DO SISTEMA......................................................................................... 49 4.4 IMPLEMENTAO DO SISTEMA ............................................................................. 64 5 CONCLUSO.................................................................................................................. 78 REFERNCIAS .................................................................................................................. 79

10

1 INTRODUO Este captulo apresenta uma viso geral do trabalho, os objetivos e a justificativa. Por fim est a organizao do texto por meio da apresentao dos seus captulos.

1.1 CONSIDERAES INICIAIS As empresas precisam ser mais competitivas para expandir-se ou mesmo manter-se no mercado. Uma das formas de aumentar a competitividade por meio da agregao de valor e eficincia em atender seus clientes pelo uso de sistemas computacionais. As tecnologias de informao e comunicao tm facilitado e contribudo para a melhora dos produtos, o atendimento e o oferecimento de solues aos usurios. So equipamentos e sistemas computacionais mais eficientes, seja em termos de desempenho, segurana ou de funcionalidades. Uma das formas, denominada tambm de paradigma, de definir e implementar esses sistemas por meio do uso de conceitos da orientao a objetos. Cada objeto possui identidade permitindo individualiz-lo dos demais objetos. Esses so caracterizados por atributos e possuem operaes que so realizadas utilizando esses atributos. Assim, os dados e a manipulao desses dados ficam incorporados ao objeto. uma forma de proteger os dados, assegurando que os mesmos no sejam indevidamente manipulados. Apesar desse encapsulamento de dados e operaes, esses objetos se comunicam por meio da troca de mensagens. O objeto destinatrio da mensagem torna explcito o formato dessa mensagem indicando parmetros e retorno da mesma. Visando utilizar conceitos de orientao a objetos na anlise e no projeto de um sistema, esse trabalho apresenta conceitos de anlise orientada a objetos e da UML (Unified Modeling Language) aplicados no desenvolvimento de um sistema para manipular aes e informaes dentro de um RouterBoard utilizado em provedores de acesso a internet. A UML utilizada como linguagem para representar um sistema computacional utilizando conceitos da orientao a objetos. O RouterBoard utiliza o sistema operacional RouterOS que baseado em Linux e voltado para solues em redes de computadores. Muitos provedores de acesso Internet utilizam esse sistema operacional, pelo mesmo apresentar uma gama muito grande de solues para diversos tipos de servio e pela facilidade que sua interface grfica proporciona.

11

A Mikrotik, empresa da Letnia fabricante do equipamento RouterBoard e desenvolvedora do sistema operacional RouterOS disponibiliza em seu site uma API (Application Programming Interface) para comunicao com o RouterBoard em Java. Os provedores de acesso Internet esto buscando sempre novas solues e a World Line Net, pioneira na utilizao desse sistema operacional, est buscando agregar valor aos servios oferecidos aos seus clientes por meio de um sistema computadorizado para manipular aes e informaes dentro do sistema RouterOS de forma segura e padronizada.

1.2 OBJETIVOS O objetivo geral se refere ao resultado principal pretendido com a realizao deste trabalho e os objetivos especficos o complementam. 1.2.1 Objetivo Geral Implementar sistema, aplicando conceitos de anlise orientados a objeto, para manipular aes e informaes dentro de um equipamento eletrnico denominado RouterBoard que executa um sistema operacional RouterOS. 1.2.2 Objetivos Especficos Apresentar os conceitos bsicos de orientao a objetos e sua modelagem utilizando a UML. Apresentar a modelagem de um sistema computacional para execuo em um equipamento RouterBoard. Desenvolver o sistema, incluindo o uso da Application Programming Interface em Java para comunicao com o equipametno RouterBoard

12

1.3 JUSTIFICATIVA A sistema implementado tem como base a necessidade verificada dentro da empresa World Line Net de possuir um sistema de controle de aes e manipulao de informaes dentro de um equipamento de rede. Esse equipamento o RouterBoard. Com um sistema informatizado para manipular aes e informaes dentro de um equipamento de rede a empresa ter um ganho considervel em segurana e padro de configurao de equipamentos em diferentes cidades. Um funcionrio inexperiente, por exemplo, que atualmente precisa de permisso de administrador para trabalhar dentro do ambiente RouterOS contar com o auxlio de um sistema computacional. Esse sistema permitir que o funcionrio realize as atividades de forma segura e eficaz, inibindo possveis erros na configurao , j que atualmente este processo feito manualmente. A implementao do sistema ser feita utilizando a linguagem Java que foi escolhida como ferramenta de programao. A escolha dessa linguagem decorre dos recursos que a mesma possui e de ser baseada em orientao a objetos, por trabalhar em arquiteturas distintas necessitando apenas de uma JDK (Java Development Kit), ter compiladores gratuitos que atendem as necessidades do sistema a ser implementado e que facilitam a implementao orientada a objetos. A anlise orientada a objetos foi utilizada por facilitar a modelagem e a implementao do sistema propriamente dito. Alm de proporcionar a reutilizao e entendimento do cdigo no prprio projeto e posteriormente por outros desenvolvedores.

1.4 ORGANIZAO DO TEXTO Este texto est organizado em captulos, dos quais este o primeiro e apresenta a introduo, com os objetivos e a justificativa. O Captulo 2 apresenta o referencial terico sobre orientao a objetos e a linguagem de modelagem UML. No Captulo 3 apresentado o material e o mtodo utilizados na realizao das atividades para alcanar os objetivos definidos. O Captulo 4 contm a modelagem do sistema. No Captulo 5 est a concluso com as consideraes finais.

13

2 MODELAGEM DE SISTEMAS UTILIZANDO ORIENTAO A OBJETOS A fundamentao terica do trabalho tem como base a orientao a objetos e a modelagem de sistemas utilizando a UML.

2.1 ORIENTAO A OBJETOS Durante os anos 1960 foi introduzido um novo conceito de programao orientada a objetos atravs da implementao de uma linguagem de programao chamada Simula (FERRANTE; RODRIGUEZ, 2000). Esse conceito representa como os dados so tratados dentro de um software. Durante anos o termo orientado a objetos foi usado para denotar uma abordagem de desenvolvimento de software que utiliza linguagens orientadas a objetos. Atualmente o paradigma de orientao a objetos abrange um enfoque completo de engenharia de software (PRESSMAN, 2002). Isso significa que orientao a objetos est envolvida desde a representao do negcio (objetos de negcio) e no somente na implementao do sistema. E como ressalta Berard (1993) citado em Pressman (2002), os benefcios da orientao a objetos so ampliados se ela adotada no inicio e ao longo de todo o processo de engenharia de software. Na orientao a objetos, os dados so tratados como objetos ou um conjunto de objetos que possuem caractersticas ou atributos definidos pelos usurios. Isso porque esses objetos representam entidades do domnio de negcio. Para que possa ser utilizada com efetividade a viso orientada objetos exige uma abordagem evolutiva (PRESSMAN, 2002), como a fornecida pelo processo iterativo e incremental (SCOTT, 2003). Um modelo evolutivo vinculado a uma abordagem que facilita e incentiva o reuso o melhor paradigma para a engenharia de software orientada a objetos (PRESSMAN, 2002). Se os objetos representam entidades ou coisas do cenrio ou contexto do que est sendo modelado, a orientao a objetos, como tcnica para modelagem de sistemas, diminui a diferena semntica entre e a realidade sendo modelada o os modelos construdos (BEZERRA, 2006). A realidade representa o que ser informatizado. Em termos de cdigo, o reuso est vinculado orientao a objetos pelo mecanismo de herana. A orientao a objeto permite criar objetos a partir de outros objetos e cada qual pode ter atributos e comportamento especficos. Essa tcnica se preocupa, principalmente,

14

com o comportamento do objeto. Contudo, a orientao a objetos facilita o reuso de componentes de cdigo, entendidos como a implementao de funcionalidades quer estejam sob a forma de DLLs (Dynamic-link library), bibliotecas, rotinas ou outros. O encapsulamento padroniza a forma de interao com esses componentes, protegendo os seus dados. O reuso tambm se aplica ao reuso de artefatos de anlise e projeto que tambm facilitado pelo uso da orientao a objetos. Artefatos se referem a tudo o que produzido durante o ciclo de vida, seja direta ou indiretamente vinculado ao resultado. Documento de requisitos, diagramas de classe, scripts de banco de dados e planos de testes so considerados diretamente relacionados. Padronizaes para documentao de cdigo e check-list para verificao de requisitos so considerados indiretamente relacionados. Utilizando diagramas da UML, as entidades que definem o problema e a soluo so documentadas de maneira que elas possam mais facilmente ser reusados em outros projetos. Isso porque essas entidades so definidas como agrupamentos relacionados de dados associados ao seu comportamento. Os conceitos principais relacionados orientao a objetos: objeto e classe (incluindo os conceitos de identidade, atributo, mtodo e mensagem), encapsulamento, polimorfismo e herana. A notao utilizada para representar graficamente esses conceitos proveniente da UML. Outro conceito bastante importante na orientao a objetos o de abstrao. Uma abstrao significa um modelo que representa uma realidade de acordo com determinados interesses. Nesse sentido so representados apenas os aspectos considerados importantes ou relevantes para o objetivo da representao. A abstrao permite gerenciar a complexidade e concentrar a ateno nas caractersticas essenciais dos objetos, ou seja, do que est sendo modelado utilizando o paradigma da orientao a objetos (BEZERRA, 2006). a) Objeto O mundo real composto por elementos fsicos ou conceituais, como, clientes, pedidos de compra, frmula de clculo de juros e carros, dentre muitos outros. Na terminologia da orientao a objetos, essas coisas do mundo real so denominadas objetos (BEZERRA, 2006). Um objeto um conceito, abstrao ou coisa com identidade que possui significado para uma aplicao (BLAHA; RUMBAUGH, 2006, p. 23). Um objeto em termos de uma aplicao computacional pode ter uma representao correspondente no mundo real, como, por exemplo, Joo da Silva que representa um cliente para o sistema computacional em uma determinada empresa. Um objeto pode no ter representao correspondente no mundo real como a frmula para o clculo de juros compostos utilizada em um sistema financeiro. Os

15

objetos podem ser bastante distintos entre si e representados de maneiras distintas, mas todos os objetos possuem identidade e so distinguveis uns dos outros. Booch (1998) caracteriza um objeto por possuir estado, exibir comportamento bem definido e ter uma identidade nica. O estado descreve as variveis que contm os dados que caracterizam um objeto. O comportamento representa os mtodos ou as aes realizados sobre os dados. E a identidade est relacionada a fato que cada objeto nico e que existe uma forma de individualiz-lo. Por exemplo, uma empresa pode ter milhares de clientes, mas h algum dado (varivel) que compe o seu estado que permite individualizar cada cliente dos demais. b) Classe Uma classe descreve um grupo de objetos com as mesmas propriedades (atributos), comportamento (operaes, mtodos), tipos de relacionamentos e semntica (BLAHA; RUMBAUGH, 2006). A interpretao semntica depende do objetivo da classe em relao aplicao. Por exemplo: pessoa e carro podem ser considerados como pertencentes a mesma classe em um sistema para seguradora. Isso porque ambos possuem um determinado valor de seguro. Em um sistema para uma locadora de veculos ou mesmo uma revendedora de automveis, pessoa pode representar cliente ou mesmo funcionrio e veculo ser uma classe completamente distinta porque o objeto que ser locado ou vendido/comprado. Um objeto uma instncia ou uma ocorrncia de uma classe. Uma classe instancia um objeto ou a partir de uma classe so originados os objetos. A classe define como o objeto . E o objeto personifica os atributos e o comportamento definidos na classe. Assim, uma classe pode ser considerada um conjunto de objetos que possuem as caractersticas definidas na classe. Na Figura 1 est representada uma classe denominada Cliente com os atributos nome, cpf, email, telefone endereo, numero e complemento. E os mtodos: verificarcpf() e incluircliente(), excluircliente().

16

Figura 1 Exemplo de Classe

Os atributos so os elementos que definem a estrutura de uma classe e armazenam as caractersticas dos objetos instanciados. Os atributos tambm so conhecidos como variveis de classe. Cada atributo pode ser seguido por dados opcionais como o tipo e o valor padro. A Figura 2 apresenta uma classe denominada pessoa com um atributo nome. Esse atributo possui o valor padro Nome 1.

Figura 2 Exemplo de Atributo

Os mtodos definem as aes dos objetos. A ao s vai ocorrer se existir um objeto instanciado e se este objeto invocar (chamar ou acessar) o mtodo. Os mtodos manipulam os dados do objeto. Os objetos se comunicam por meio de mensagens. Essas mensagens podem dizer que um mtodo de um objeto necessita utilizar outro mtodo de um objeto distinto. As mensagens podem ser utilizadas para passar objetos por parmetro ou algum resultado obtido com a execuo de um mtodo. As mensagens podem invocar mtodos, porm elas no podem dizer quando e como eles devem ser executados. Uma mensagem uma solicitao para executar uma operao indicada sobre determinado objeto e retornar um resultado (MARTIN, 1995).

17

b) Encapsulamento Encapsulamento significa que os dados e as operaes que trabalham com esses dados so agrupados pelo objeto ou a classe. O encapsulamento uma forma de proteger os dados de um objeto instanciados na classe. Alm de controlar o acesso aos atributos e mtodos, o encapsulamento torna os atributos e mtodos de um objeto ocultos aos outros objetos. O encapsulamento oferece os seguintes benefcios (PRESSMAN, 2002): Os detalhes internos da implementao dos dados e procedimentos (operaes) so ocultados de acesso externo; As estruturas de dados e as operaes que as manipulam so agrupadas em uma nica entidade, a classe. O que facilita o reuso. As interfaces entre objetos encapsulados so simplificadas. Um objeto que envia uma mensagem no precisa ter conhecimento da estrutura interna dos dados. c) Polimorfismo O polimorfismo indica a capacidade de abstrair vrias implementaes diferentes em uma nica interface (BEZERRA, 2006, p. 10). Interface estabelece a forma de comunicao, os parmetros para troca de mensagens, entre os objetos. Isso no sentido de definir a interao com os objetos. O polimorfismo ocorre quando h duas ou mais classes derivadas de uma superclasse e as classes derivadas invocam os mtodos de classe abstrata (superclasse), porm com comportamentos diferentes em cada classe derivada (subclasse). Os mesmos atributos e objetos podem ser utilizados em objetos distintos, porm, com implementaes lgicas diferentes. Na Figura 3 est representada uma classe abstrata chamada Impresso e duas classes derivadas. As classes derivadas herdaro o mtodo gerarimpressao() da classe pai e podem ter algumas caractersticas prprias. Se o mtodo gerarimpressao() for invocado por um objeto do tipo ArquivoPDF a ao apesar de ser o mesmo mtodo da classe Impressora ter suas caractersticas, representando o polimorfismo.

18

Figura 3 Exemplo de Polimorfismo

h) Herana A herana utilizada com o propsito de reaproveitar atributos e mtodos atravs de compartilhamento entre classes. O uso de herana em uma linguagem de programao orientada a objetos possibilita criar classes derivadas a partir de classes j existentes. Na herana, classes semelhantes so agrupadas em hierarquias, em que cada nvel de uma hierarquia pode ser visto como um nvel de abstrao (BEZERRA, 2006). Os termos herana, generalizao e especializao referem-se a uma mesma ideia. Generalizao e especializao tratam de um relacionamento entre classes e assumem pontos de vista opostos, da superclasse ou das subclasses. E generalizao se refere a que a superclasse generaliza as subclasses (BLAHA; RUMBAUGH, 2006). E, ainda, segundo esses autores a especializao indica que as subclasses refinam ou especializam a superclasse. Ao passo que herana se refere ao mecanismo para compartilhamento de atributos, operaes e associaes por meio do relacionamento de generalizao/especializao. A Figura 4 apresenta um exemplo de herana. Nesse exemplo a classe PessoaFisica e a classe PessoaJuridica, alm de definir atributos especficos, herdam os atributos da classe Cliente.

19

Figura 4 Exemplo de Herana

2.2 Unified Modeling Language A Unified Modeling Language uma linguagem visual para especificar, visualizar, construir e documentar modelos de software orientados a objetos (BOOCH; RUMBAUGH; JACOBSON, 2000). E sendo uma linguagem visual ela constituda de elementos grficos que permitem representar os conceitos da orientao a objetos na modelagem de sistemas. A UML composta por elementos de modelo que representam as diferentes partes e funcionalidades de um sistema de software. Esses elementos representam, por meio de diagramas e desenhos, vises distintas do sistema, de acordo com os interesses dos envolvidos no projeto. Assim, cada diagrama representa pontos de vista diferentes do sistema. Cada elemento possui uma sintaxe (uma forma predeterminada de representar o elemento) e uma semntica (o significado definido para cada elemento e a definio do seu uso) (BEZERRA, 2006). Essas vises permitem representar abstraes distintas de uma mesma realidade. No desenvolvimento de sistemas orientados a objetos essa realidade o sistema modelado e posteriormente implementado em uma linguagem de programao. Modelos distintos so importantes porque se complementam na representao do sistema, mas atendem a interesses especficos, embora se refiram ao mesmo propsito.

20

2.1.1 Diagramas da UML A UML permite representar diferentes vises de um sistema por meio de diagramas. Cada diagrama representa determinados aspectos do sistema, mas os diagramas possuem dependncia entre si. A relao entre os diagramas deve manter a coerncia do projeto. Blaha e Rumbaugh (2006) definem a modelagem de um sistema a partir de trs pontos de vista distintos, mas relacionados, cada qual representando aspectos relevantes do sistema, mas todos necessrios para uma descrio completa. Esses pontos de vista so: modelo de classes, modelo de estados e modelo de interaes. O modelo de classes representa os aspectos estticos, estruturais, de dados de um sistema. As classes descrevem a estrutura dos objetos de um sistema: sua identidade, relacionamentos com outros objetos, seus atributos e operaes. Esse modelo fornece o contexto para os modelos de estados e de interaes (BLAHA; RUMBAUGH, 2006). A generalizao permite que as classes compartilhem estrutura (dados) e comportamento (operaes) e as associaes relacionam as classes entre si. O modelo de estados representa os aspectos temporais, comportamentais, de controle de um sistema. Esse modelo descreve os aspectos dos objetos que tratam do tempo e da sequncia de operaes e captura o controle (BLAHA; RUMBAUGH, 2006). Os estados so representados por diagramas de mquinas de estados que mostram a sequncia de estados e eventos em permitidas em um sistema para uma classe de objetos. O modelo de interaes representa a colaborao de objetos de forma a alcanar o comportamento do sistema como um todo. O modelo de interaes pode ser documentado por meio de casos de uso, diagramas de sequncia e de atividades (BLAHA; RUMBAUGH, 2006), dentre outros. A Figura 5 mostra os diagramas da UML. Essa representao hierrquica dos modelos foi feita de acordo com o exposto na especificao da superestrutura da UML definida pela OMG (Object Management Group). Nessa figura os diagramas de estados e de interaes so representados como diagramas comportamentais.

21

Figura 5 Diagramas da UML 2 Fonte: composto a partir da especificao OMG 2.4.1 (2011).

A seguir so exemplificados alguns dos diagramas representados na Figura 5. a) Diagrama de casos de uso Diagramas de caso de uso descrevem relacionamentos e dependncias entre um grupo de caso de uso e os atores participantes. Caso de uso representa uma funcionalidade completa de um sistema, subsistema ou classe, que externamente perceptvel (SILVA, 2007). O Ator representa qualquer entidade que interage com o sistema. Pode ser uma pessoa, um dispositivo fisco ou outro sistema. So caractersticas dos atores (MACORATTI, 2012): No parte do sistema. Representa os papis que o usurio do sistema pode desempenhar; Pode interagir ativamente com o sistema; Pode ser um receptor passivo de informao.

Os casos de uso tambm podem se relacionar entre si. Os quatro tipos de relacionamento entre casos de uso so (BOOCH; RUMBAUGH; JACOBSON, 2000; SILVA, 2009) Associao - representa a interao do ator com o caso de uso. Essa associao representa participao da entidade externa modelada pelo ator no caso e uso a ele associado (SILVA, 2009). Generalizao - um caso de herda o comportamento e o significado de outro caso de uso e o comportamento herdado dever ser acrescido ou sobrescrito (BOOCH; RUMBAUGH; JACOBSON, 2006).

22

Extenso - o caso de uso base incorpora implicitamente o comportamento de outro caso de uso em um local especificado indiretamente pelo caso de uso estendido (BOOCH; RUMBAUGH; JACOBSON, 2006). O caso de uso poder permanecer isolado, mas sob certas condies seu comportamento poder ser estendido pelo outro caso de uso. A extenso tem a conotao de ser ser relacionamento opcional (SILVA, 2009). Incluso - Indica que um caso de uso base incorpora explicitamente o comportamento de outro caso de uso em uma localizao especificada (BOOCH; RUMBAUGH; JACOBSON, 2006). Um relacionamento de incluso tem a conotao de obrigatoriedade (SILVA, 2009).

A Figura 6 representa um exemplo de diagrama de caso de uso.

Figura 6 Diagrama de casos de uso

b) Diagrama de Classes Um diagrama de classes define as classes que compe um sistema e como elas se relacionam. um diagrama que representa a viso esttica do sistema (BOOCH, RUMBAUGH; JACOBSON, 2000) porque representa na sua estrutura as informaes dos mtodos, atributos, nome das funes bem como os relacionamentos entre as classes. As relaes entre as classes podem ser (BOOCH; RUMBAUGH; JACOBSON, 2000): Herana - quando uma classe herda todos os atributos e as operaes de outra classe. Esses atributos e operaes herdados podem ser sobrepostos e modificados e podem ser adicionados outros atributos e operaes prprias. Associao - representa um relacionamento entre classes.

23

Agregao - um tipo especial de associao em que o objeto parte do outro sem necessariamente ser todo. Composio - uma associao que representa a parte no existe sem o todo.

A Figura 7 mostra as classes Cliente e Livro que representam os cadastros bsicos. A classe Pessoa representa uma generalizao da classe Cliente, incluindo seu Endereo. A classe Pedido registra as compras realizadas pelos clientes. A classe ItemPedido representa os pedidos de Livros realizados por um cliente em um pedido.

Figura 7 Diagrama de classes

g) Diagrama de Objetos Um diagrama de objetos mostra um conjunto de objetos e seus relacionamentos em um ponto no tempo (BOOCH; RUMBAUGH; JACONSON, 2000). Na Figura 8, os objetos Livro e Autor so mostrados aps terem sido instanciados, apresentando os atributos valorizados.

24

Figura 8 Diagrama de objetos

c) Diagrama de atividades Um diagrama de atividades mostra o fluxo de uma atividade para outra (BOOCH; RUMBAUGH; JACOBSON, 2000). uma representao de um modelo sequencial de aes. Esse diagrama utilizado para modelar o aspecto comportamental dos processos. usado para apresentar uma sequncia de atividades que so conectadas entre si por transaes que mostram as dependncias entre elas. Na Figura 9 est representado um diagrama de atividades para processamento de um pedido de compras. O estado inicial da atividade como um crculo em cor preta. Em seguida, est a ao de receber o pedido. Dessa ao so originadas duas outras aes em execuo em paralelo. Elas representam as aes possveis de serem tomadas a partir do recebimento do pedido. Independentemente da ao tomada elas seguem para uma mesma ao na sequncia. Isso e determinado por um ponto de juno. Da ao Solicitar confirmao do pedido duas aes podem ser decorrentes de uma deciso. Ou o pedido confirmado ou cancelado. Dependendo ao realizada a ao seguinte tomada. Um ponto de tomada de decises que confirma ou cancela o pedido, chegando ao estado final da atividade que representado por um crculo de cor preta com borda dupla.

25

Figura 9 Diagrama de atividades

d) Diagrama de sequncia O diagrama de sequncia representa a sequncia dos processos de um sistema de forma simples e lgica atravs de mensagens que so passadas entres os objetos. Esse diagrama mostra os participantes nas interaes e a sequncia das mensagens entre eles. Um diagrama de sequncia mostra as interaes de um sistema com os seus atores para realizar casos de uso completos ou partes dos mesmos (BLAHA; RUMBAUGH, 2006). A Figura 10 representa a troca de mensagens do cliente com os objetos e a sequncia delas.

Figura 10 Diagrama de sequncia

26

e) Diagrama de Estado O diagrama de estado, ou de mquina de estados, representa o ciclo de vida dos objetos e como eles so afetados pelos eventos (BOOCH; RUMABUGH; JACOBSON, 2000). Na Figura 11 representado o ciclo de um pedido com seus possveis estados e a transio de desligada para ligada.

Figura 11 Diagrama de mquina de estados

f) Diagrama de Pacotes O Diagrama de pacotes descreve os agrupamentos lgicos do sistema mostrando as dependncias entre eles, basicamente ilustra a arquitetura de um sistema mostrando o agrupamento de suas classes. Um pacote pode ser composto por vrios elementos entre eles: classes, interfaces, componentes, casos de uso. Um pacote pode ser composto por outros pacotes. A Figura 12 mostra um exemplo de diagrama de pacotes.

Figura 12 Diagrama de pacotes

27

g) Diagrama de Componentes O Diagrama de componentes ilustra a organizao das classes e tem o objetivo de apresentar a disposio dos componentes fsicos dentro de um sistema. A Figura 13 apresenta o tipo do componente representado pelo esteretipo da UML.

Figura 13 Diagrama de componentes

28

3 MATERIAIS E MTODO Este captulo apresenta os materiais utilizados no projeto e o mtodo empregado para a realizao das atividades.

3.1 MATERIAIS As ferramentas e as tecnologias utilizadas na modelagem e na implementao do sistema foram as seguintes. a) AstahCommunity - para modelagem do sistema; b) NetBeans 7.0.1 IDE (Integrated Development Environment) para desenvolvimento; c) Java - linguagem de programao; d) MySQL - banco de dados; e) MySQL - Front - gerenciador do banco de dados; f) Equipamento RouterBoard 433 com sistema RouterBoard.

3.3.1 Astah Community Astah Community (ASTAH, 2012) uma ferramenta gratuita para modelagem de sistemas orientados a objeto. Essa ferramenta baseada em diagramas definidos com a notao da UML 2.0. Com a ferramenta Astah possvel desenhar os diagramas necessrios para representar um projeto orientado a objetos de forma fcil. A escolha da ferramenta Astah deuse devido a esse motivo e por ser um software gratuito. A Figura 14 apresenta a tela principal da ferramenta Astah Community utilizada para modelagem de projetos.

29

Organizao do projeto

Edio dos diagramas

Propriedades

dos

Figura 14 Tela principal do Astah Community

As partes principais da ferramenta Astah Community marcadas na Figura 14 so: a) Organizao do projeto apresenta os arquivos e os elementos do projeto de acordo com vises distintas que so: a.1) structure a rvore de estrutura do projeto composta por pastas, diagramas e elementos de diagramas; a.2) inheritance exibe as heranas identificadas entre os elementos definidos; a.3) map apresenta todo o diagrama em edio e possibilita definir a rea a ser visualizada; a.4) diagram apresenta a lista de diagramas do projeto em edio. b) Propriedades dos elementos apresentada as propriedades do elemento selecionado do diagrama. c) Editor dos diagramas a rea para composio dos diagramas e para edio de diagramas. A barra de ferramentas que fica na parte superior dessa rea apresenta os elementos para composio diagramas. Esses elementos so apresentados de acordo com o tipo de diagrama selecionado para edio.

3.3.2 NetBeans A IDE Netbeans (NETBEANS, 2012) um ambiente de desenvolvimento utilizado para produzir cdigo fonte de acordo com a sintaxe e a semntica de linguagens como Java,

30

JavaScript, PHP e Phtyton, embora esta seja na maioria das vezes utilizada para o desenvolvimento. Embora est muito associada ao desenvolvimento Java. um ambiente de desenvolvimento multiplataforma com recursos para editar, compilar e depurar programas e gerar instaladores. A IDE NetBeans facilita o trabalho de desenvolvimento de aplicativos por possuir um grande conjunto de bibliotecas, mdulos e APIs que so basicamente um conjunto de rotinas, protocolos e ferramentas para desenvolvimento. A Figura 15 apresenta a tela principal da IDE NetBeans.

Figura 15 IDE NetBeans

Na Figura 15, na rea mais a esquerda esto os artefatos de cdigo produzido. Eles ficam organizados em pastas. Na rea central e a direita da figura est o editor de cdigo. E na parte superior da rea de edio est uma barra de ferramentas e abas com os arquivos em edio.

3.3.3 Linguagem Java Java uma linguagem orientada a objetos em que a maior parte dos elementos de um programa Java so objetos, tambm denominada plataforma ou tecnologia. Os tipos bsicos, como int e o float no so objetos. O cdigo organizado em classes, que podem estabelecer somente relacionamentos de herana simples entre si. Como os programas Java executam em

31

uma mquina virtual, os programas criados nessa linguagem podem ser executados em qualquer sistema operacional que suporte a linguagem C++. A mquina virtual Java um compilador C/C++. A linguagem Java prov o gerenciamento de memria por meio de garbage collection (coleta de lixo). Sua funo a de verificar a memria de tempos em tempos, liberando automaticamente os blocos que no esto sendo utilizados. Esse procedimento pode deixar o sistema de software com execuo mais demorada por manter uma thread paralela execuo do programa. Porm, evita problemas como referncias perdidas e avisos de falta de memria quando ainda h memria disponvel na mquina. A tecnologia Java dividida em trs verses bsicas: a) Java Standard Edition (Java SE) - a tecnologia Java para computadores pessoais, portteis e arquiteturas com capacidade de processamento e memria considerveis. Vrias APIs acompanham essa verso e tantas outras podem ser obtidas no site da Sun (http://www.sun.com). JSE possui duas divises: a.1) Java Development Kit (JDK) ou Standard Development Kit (SDK) - um conjunto padro de recursos para desenvolvimento em Java. a.2) Java Runtime Edition (JRE) - uma verso do JDK que executar os sistemas construdos com o SDK. b) Java Micro Edition (Java ME) a tecnologia Java para dispositivos mveis com limitaes de memria e/ou processamento. Possui APIs que visam otimizar o uso de espao, de memria e de processamento. Java ME se divide em dois grupos de bibliotecas: b.1) Connected Limited Device Configuration (CLDC) para dispositivos mveis mais limitados em recursos como celulares e smartphones. b.2) Connected Device Configuration (CDC) para dispositivos com mais recursos como palmtops e pocket pcs. c) Java Enterprise Edition (Java EE) - para aplicaes corporativas que podem estar na Internet. JEE possui um grande nmero de APIs. ideal para servidores de aplicao, integrao de sistemas ou distribuio de servios para terceiros.

3.3.4 MySQL O MySQL um servidor e gerenciador de banco de dados relacional que utiliza a linguagem SQL (Structured Query Language) (MYSQL, 2012). Ele possui licena livre e

32

paga. E foi inicialmente projetado para trabalhar com aplicaes de pequeno e mdio portes, mas atualmente atende tambm aplicaes de grande porte. As principais caractersticas incorporadas na verso 5 do MySQL (MILANI, 2007) so: a) Vises - so consultas pr-programadas ao banco de dados que permitem unir duas ou mais tabelas e retornar uma nica tabela como resultado. As vises podem ser utilizadas para filtrar informaes de tabelas. possvel tambm utiliz-las para permitir que determinados usurios acessem dados de uma viso, mas no as tabelas utilizadas para compor a referida viso, restringindo acesso a informaes. b) Cursores - cursores possibilitam a navegao em conjuntos de resultados. possvel navegar pelos registros de uma tabela a partir de estruturas de repetio, permitindo realizar operaes necessrias e transaes parte para cada linha da tabela. c) Information Schema - so tabelas responsveis apenas pela organizao dos recursos do banco de dados, conhecidos como dicionrio de dados, ou metadados. d) Transaes distribudas XA - so uma espcie de extenso da ACID (Atomicidade, Consistncia, Isolamento, Durabilidade) que fornece a possibilidade de gerenciamento das transaes realizadas com a unio de bancos de dados (transaes distribudas) para a execuo de uma mesma transao. e) Integridade referencial - os relacionamentos entre tabelas so gerenciados pelo banco de dados na realizao de operaes de incluso, alterao e excluso. f) Clusterizao - a clusterizao baseada na integrao e sincronismo de dois ou mais servidores para dividirem a demanda de execues entre si e o balanceamento de carga.

3.3.5 MySQL-Front MySQL-Front (MYSQL-FRONT, 2012) um software Windows front-end para o servidor de banco de dados MySQL. A estrutura da base de dados e os dados podem ser manipulados por meio de dilogos ou comandos SQL. possvel importar e exportar dados em diversos formatos. O acesso ao MySQL Server pode ser feito diretamente ou por meio de HTTP (Hypertext Transfer Protoco). A Figura 16 apresenta a tela principal da ferramenta MySQL-Front.

33

Figura 16 IDE MySQL-Front

Na rea esquerda da Figura 16 fica a estrutura de pastas com os arquivos. Os arquivos so tabelas do banco de dados, por exemplo. Na rea direita est a regio de edio das tabelas.

3.3.6 Equipamento RouterBoard Fundada em 1995, a Mikrotik uma empresa da Letnia que fabrica equipamentos para redes de computadores, esses equipamentos so muito utilizados por provedores de acesso a internet. O principal produto da empresa o sistema operacional baseado em Linux chamado de RouterOS. Esse sistema operacional permite que os equipamentos fabricados pela empresa ou qualquer computador se torne um roteador com funes como firewall, VPN (Virtual Private Network), Proxy, QoS, protocolos de roteamento do tipo BGP (Border Gateway Protocol), RIP (Routing Information Protocol), OSPF (Open Shortest Path First), MPLS (Multiprotocol Label Switching), VPLS (Virtual Private LAN Service). O nvel da licena do sistema determinar as funes liberadas para configurao. O sistema operacional RouterOS pode ser administrado atravs de terminais SSH, Telnet, pgina web ou pelo software de configurao WinBox. A Figura 17 apresenta a interface do software Winbox desenvolvido pela empresa Mikrotik.

34

Figura 17 IDE Winbox da Mikrotik

Algumas opes de configurao do Winbox no so disponveis nessa interface apenas em terminais Telnet ou SSH (Secure Shell). O equipamento fabricado pela empresa combinado com o sistema operacional RouterOS leva o nome de RouterBoard. A Figura 18 representa um RouterBoard 433.

Figura 18 Equipamento RouterBoard

Esse equipamento muito utilizado pelos provedores de acesso para fazer links wireless. O equipamento possui trs slots MiniPCI onde so conectados os cartes wireless para fazer links de rdio. A empresa tambm possui vrias outras solues em equipamentos

35

como antenas, roteadores com portas SFP (Small Form-Factor Pluggable) entre outros. Todos os produtos RouterBoard so agregados ao Sistema Operacional RouterOS.

3.2 MTODO O projeto para a modelagem do sistema para interao com o equipamento RouterBoard foi desenvolvido tendo como base a empresa onde o autor deste trabalho funcionrio. Para a realizao do trabalho algumas etapas foram organizadas e seguidas, sendo elas planejamento, embasamento terico, levantamento de requisitos, anlise e projeto do sistema. O planejamento esteve voltado para a definio da forma de levantamento dos requisitos e do referencial terico necessrio para fundamentar o sistema que seria modelado. O embasamento terico ou levantamento bibliogrfico foi fundamental para o desenvolvimento do projeto, porque permitiu a reviso de conceitos de orientao a objetos. Os diagramas criados a partir da ferramenta Astah facilitaram a compreenso do projeto porque forneceu a viso geral do projeto a partir de pontos de vista distintos. A UML foi bastante til para organizar e documentar o projeto. Os diagramas de casos de uso, classes e atividades forneceram esses pontos de vista. Considerando que a linguagem Java foi a escolhida para implementar o projeto, o estudo da orientao a objeto trouxe o conhecimento necessrio para saber lidar com os objetos de software. O levantamento de requisitos ocorreu por meio de entrevistas com funcionrios da rea na qual o software vai abranger e observaes de processos. E pelo conhecimento do autor deste trabalho, que tambm funcionrio da referida empresa. A empresa World Line Net atua na regio do Sudoeste do Paran como provedor de acesso Internet. O autor sendo funcionrio dessa empresa identificou falhas de segurana e a dificuldade dos funcionrios do setor de triagem em lidar com um sistema proprietrio Mikrotik chamado de RouterOS que normalmente instalado em dispositivos eletrnicos de rede. Buscando colher informaes, o autor deste trabalho conversou com funcionrios da triagem de ordem de servio que sero os principais beneficiados com o desenvolvimento do projeto. Essas pessoas foram indagadas sobre procedimentos utilizados para realizar a sua atividade.

36

O autor procurou saber quais as maiores dificuldades desses funcionrios na realizao das suas funes e como um software poderia auxili-los. Todas as informaes adquiridas foram utilizadas para identificar os requisitos do sistema. A observao dos processos foi realizada por meio de acompanhamento das atividades e da sequncia de processos. A observao tambm auxiliou na identificao dos requisitos. Diagramas de casos de uso foram modelados com base nos requisitos levantados apresentando uma viso geral do sistema. Os diagramas de classes, atividades e sequncia tambm foram criados para melhor visualizar o sistema que ser desenvolvido.

37

4 MODELAGEM DO SISTEMA Neste captulo apresentada a modelagem resultante das atividades de anlise e projeto realizadas. Essa modelagem representa o software que manipular as informaes e as aes em um equipamento denominado RouterBoard. Esse equipamento possui o sistema operacional RouterOS e proprietrio da empresa Mikrotik. 4.1 A EMPRESA A empresa World Line Net foi o primeiro provedor de acesso internet de Francisco Beltro. Desde sua fundao em 1996 a empresa sempre buscou as melhores solues em internet para atender seus clientes de forma satisfatria e eficiente. Atualmente levando o nome de WI Telecom a empresa se tornou o maior provedor de internet banda larga do Paran atuando em mais de 160 cidades. Preocupada com a qualidade dos servios oferecidos a empresa World Line Net est em constante atualizao das tecnologias utilizadas e capacitao de seus funcionrios. A Internet por ondas de rdio uma forma eficaz de levar internet em locais mais distantes dos grandes centros com timas opes de velocidades. Solues de firewall, hospedagem, e-mail, links dedicados atravs de fibra ptica tambm so oferecidos pelo WLN/W.i.

4.2 MODELAGEM DO SISTEMA O sistema modelado tem como objetivo manipular as aes e as informaes dentro de um equipamento que rede, o RouterBoard, que possui um sistema operacional proprietrio da Mikrotik, baseado em Linux, chamado de RouterOS. Por intermdio do sistema a ser desenvolvido o usurio poder adicionar, remover e editar clientes de uma lista de acesso que fica na memria do equipamento citado, bem como obter informaes de clientes conectados. Cadastros de responsveis tcnicos e equipamentos tambm sero criados e salvos em banco de dados. A Figura 17 apresenta o diagrama de casos de uso. Foram identificados trs autores. O usurio Administrador com acesso a todas as funcionalidades do sistema. O usurio triagem com funcionalidades relacionadas a clientes e o usurio Routerboard (o prprio equipamento).

38

Figura 19 Diagrama de casos de uso

No Quadro 1 est a descrio de cada caso de uso do modelo de sistema.


Caso de uso Adicionar Clientes Descrio Atravs da interface do sistema o usurio vai escolher a cidade, base e interface para cadastrar o MAC (Media Access Control) e nome do cliente no equipamento que est na torre. A base se refere a um equipamento RouterBoard. O MAC identifica o equipamento do cliente. Incluso Incluir MAC e nome do cliente no access list do equipamento routerboard que esta na torre. O usurio identifica a cidade e a base, o sistema deve conectar no equipamento que esta na torre e listar o nome dos clientes e respectivas MACs que esto liberados no access list do equipamento. Editar Editar o registro de algum cliente dentro do access list do equipamento. Excluso Excluir o registro do cliente do access list. Habilitar Habilitar o cliente no access list. Desabilitar Desabilitar o cliente no access list. Busca Buscar algum cliente por nome. O usurio identifica a cidade e a base, o sistema deve conectar no

Listar Clientes Base

Listar Clientes Online

39 equipamento que esta na torre e listar o nome dos clientes e respectivas MACs que esto conectados na base neste momento. Derrubar Derrubar a conexo do cliente. Buscar Buscar algum cliente por nome. O sistema deve listar na tela os Servidores de PPPoe (Point-to-Point Protocol over Ethernet) que esto cadastrados, selecionando um servidor PPPoe o sistema deve listar na interface os clientes PPPoe que esto conectados no momento. Incluso Cadastrar servidores PPPoe. Excluso Excluir servidores PPPoe. Buscar Buscar algum cliente PPPoe por nome. Alterao da senha pessoal de acesso ao sistema. O sistema dever cadastrar os usurios que utilizaro o sistema, definindo se administrador ou no. Incluso Cadastrar usurios no sistema. O sistema dever cadastrar as bases no sistema Incluso cadastrar base no sistema. Listar Listar as bases cadastradas. Excluso Excluir bases do sistema. Alterao Alterar algum dado da base no sistema. Detalhe Apresentar alguma informao extra da base. O sistema devera cadastrar o responsvel pela cidade. Incluso cadastrar responsvel pela cidade no sistema. Listar Listar responsveis. Excluso Excluir responsvel pela cidade do sistema. Alterao Alterar algum dado do responsvel pela cidade no sistema. Detalhe Apresentar alguma informao extra do responsvel pela cidade.
Quadro 1 Casos de uso do sistema

PPPoe Online

Alterar Senha Cadastro de Usurio

Cadastro Base

Cadastro Responsvel Cidade

Nos quadros a seguir so apresentados os requisitos funcionais e no-funcionais detalhados de todos os casos de uso do sistema. O Quadro 2 mostra o requisito funcional Cadastrar MAC de Clientes. Esse requisito funcional possibilitar ao usurio adicionar a MAC e o nome do cliente a lista de acessos do equipamento escolhido na interface. Os requisitos no funcionais tambm esto representados.
F1 Cadastrar MAC de Clientes Oculto ( )

Descrio: O sistema apresentar na interface da tela um GroupBox Cidade, escolhendo a cidade o sistema preencher outro GroupBox Base com as bases dessa cidade. O usurio escolhe a base e a interface da base, preenche os campos de MAC e nome do usurio. O sistema dever conectar no equipamento escolhido por uma API (Application Programming Interface) e cadastrar a MAC e usurio no access list do equipamento escolhido. O sistema cadastrar o

40 nome do usurio e MAC em banco de dados. Requisitos no-funcionais Nome NF 1.1 Identificao de cidade, base e interface. Restrio O sistema deve identificar a cidade escolhida dentro do GroupBox, as bases que esta cidade possui e dentro do GroupBox interface dever preencher com os SSIDs da base escolhida no campo anterior. O sistema dever conectar na base atravs de uma API utilizando de um IP (Internet Protocol) e porta especifica para cada base. O sistema no permitir que seja cadastrado um cliente com o campo MAC em branco ou com MAC invlida. Todas as funes relacionadas ao cadastro de clientes devem ser efetuadas em uma nica janela. Categoria Desejvel Permanente

Segurana

( )

(X)

NF 1.2 Conexo

Segurana

( )

(X)

NF 1.3 Campo em branco

Segurana

( )

(X)

NF 1.4 Janela nica

Interface

(X)

( )

Quadro 2 Requisito cadastro de clientes

O Quadro 3 apresenta o requisito funcional Listar Clientes Base. Esse requisito possibilitar ao usurio listar os clientes que esto liberados dentro da lista de acesso do equipamento e ser possvel editar e excluir clientes atravs dessa lista. Adicional ao requisito funcional est lista de requisitos no-funcionais associados.
F2 Listar Clientes Base Oculto ( )

Descrio: O usurio selecionar a cidade e a base que ser acessada. O sistema acessar essa base atravs de uma API com um IP e porta especifica da base. O sistema listar as MACs e informaes de cada cliente que esta cadastrado no access list do equipamento em questo. Requisitos no-funcionais Nome Restrio Categoria Desejvel Permanente

41 NF 2.1 Identificao base. NF 2.2 Conexo O sistema dever identificar qual foi a base escolhida dentro do GroupBox para fazer o acesso. O sistema dever conectar na base atravs de uma API utilizando de um IP e porta especifica da base. O sistema permitir fazer uma busca por nome dentro dos clientes listados na tela. O sistema deve permitir alterar e excluir cadastros que esto dentro do access list do equipamento. Todas as funes relacionadas lista de clientes devem ser efetuadas em uma nica janela.

Segurana

( )

(X)

Segurana

( )

(X)

NF 2.3 Busca de Cliente por Nome NF 2.4 Editar e Excluir cadastro do cliente. NF 2.5 Janela nica

Segurana

( )

(X)

Segurana

( )

(X)

Interface

(X)

( )

Quadro 3 Requisito listar clientes base

O requisito funcional Listar Clientes Online est descrito no Quadro 4. O usurio poder verificar quais so os clientes que esto online no equipamento escolhido na interface do sistema. A lista dos requisitos no-funcionais apresentada nesse mesmo quadro.
F3 Listar Clientes Online Oculto ( )

Descrio: O usurio selecionar a cidade e a base que ser acessada. O sistema acessar essa base atravs de uma API com um IP e porta especifica da base e listar as MACs e informaes de cada cliente que est conectado na base no momento. Requisitos no-funcionais Nome NF 3.1 Identificao base. NF 3.2 Conexo Restrio O sistema dever identificar qual foi a base escolhida dentro do GroupBox para fazer o acesso. O sistema dever conectar na base atravs de uma API utilizando de um IP e porta especifica da base. Categoria Desejvel Permanente

Segurana

( )

(X)

Segurana

( )

(X)

42 NF 3.3 Busca de Cliente por Nome NF 3.4 Derrubar conexo O sistema permitir fazer uma busca por nome dentro dos clientes listados na tela. O sistema deve derrubar a conexo do cliente quando clicado no boto correspondente. Todas as funes relacionadas lista de clientes online devem ser efetuadas em uma nica janela.

Segurana

( )

(X)

Segurana

( )

(X)

NF 3.5 Janela nica

Interface

(X)

( )

Quadro 4 Requisito listar clientes online

O Quadro 5 descreve os requisitos funcionais e no-funcionais do PPPoe online.


F4 PPPoe Online Oculto ( )

Descrio: O sistema listar na tela os Servidores de PPPoe que esto cadastrados, selecionando um servidor PPPoe. O sistema deve listar na interface os clientes PPPoe que esto conectados no momento. Cadastro e excluso de servidores so possveis dentro dessa interface. O sistema ter um mecanismo de busca por nome aos clientes PPPoe. Requisitos no-funcionais Nome NF 4.1 Identificao do servidor selecionado NF 4.2 Conexo Restrio O sistema deve identificar o servidor selecionado e listar na interface os clientes PPPoe que esto conectados nesse servidor. O sistema dever conectar no Servidor PPPoe atravs de uma API utilizando de um IP e porta especifica. O sistema deve permitir adicionar, alterar e excluir cadastros de Servidores PPPoe. Categoria Desejvel Permanente

Segurana

( )

(X)

Segurana

( )

(X)

NF 4.3 Adicionar, Editar e Excluir cadastro de Servidores PPPoe NF 4.4 Janela nica

Segurana

( )

(X)

Todas as funes relacionadas ao cadastro de clientes devem ser efetuadas em uma nica janela.

Interface

(X)

( )

43 NF 4.5 Validar campo IP. O sistema deve validar o IP digitado na hora do cadastramento do servidor PPPoe.

Segurana

( )

(X)

Quadro 5 Requisito PPPoe online

O usurio pode alterar a senha de seu acesso atravs do sistema. O Quadro 6 contm o requisito funcional e os requisitos no-funcionais para Alterar a Senha.
F5 Alterar Senha Oculto ( )

Descrio: O sistema poder alterar a senha do usurio logado. Requisitos no-funcionais Nome NF 5.1 Identificar usurio logado NF 5.2 Verificar senha atual Restrio O sistema dever identificar qual o usurio que est logado e solicitando alterao de senha. O sistema dever verificar se a senha atual digitada corresponde senha do usurio logado. O sistema dever verificar se a nova senha digitada igual nos campos senha e confirmao de senha. Todas as funes relacionadas alterao de senha devem ser efetuadas em uma nica janela. Categoria Desejvel Permanente

Segurana

( )

(X)

Segurana

( )

(X)

NF 5.3 Confirmar nova senha NF 5.4 Janela nica

Segurana

( )

(X)

Interface

(X)

( )

Quadro 6 Requisito alterar senha

O requisito funcional Cadastrar Usurio est apresentado no Quadro 7. Esse requisito possibilitar ao administrador cadastrar novos usurios para o sistema. Os requisitos no funcionais tambm esto representados nesse quadro.
F6 Cadastro de Usurio Oculto ( )

Descrio: O sistema poder cadastrar um novo usurio para usar o sistema. Este usurio poder ser administrador ou usurio padro.

44 Requisitos no-funcionais Nome NF 6.1 Confirmar nova senha NF 6.2 Janela nica Restrio O sistema dever verificar se a nova senha digitada igual nos campos senha e confirmao de senha. Todas as funes relacionadas a cadastro de usurio devem ser efetuadas em uma nica janela. Categoria Desejvel Permanente

Segurana

( )

(X)

Interface

(X)

( )

Quadro 7 Requisito cadastrar usurio

O Quadro 8 apresenta o requisito funcional Cadastrar Base. Esse requisito possibilitar ao usurio cadastrar as bases existentes em cada cidade. Adicional ao requisito funcional est a lista de requisitos no-funcionais associados.
F7 Cadastrar Base Oculto ( )

Descrio: O sistema vai permitir cadastrar as bases no banco de dados. Requisitos no-funcionais Nome NF 7.1 Validar campo IP. Restrio O sistema deve validar o IP digitado no momento do cadastramento para verificar se o mesmo vlido. O sistema deve, atravs de um boto, listar em uma nova tela as bases que j esto cadastradas no sistema. O sistema deve permitir a alterao e excluso de cadastros das bases. Categoria Desejvel Permanente

Segurana

( )

(X)

NF 7.2 Listar Bases Existentes

Segurana

( )

(X)

NF 7.3 Editar e Excluir cadastros

Segurana

( )

(X)

Quadro 8 Requisito cadastrar base

No Quadro 9 est o requisito funcional Cadastrar Responsvel Cidade e seus respectivos requisitos no-funcionais.

45 F8 Cadastrar Responsvel Cidade Oculto ( )

Descrio: O sistema permitir cadastrar os responsveis pelas cidades onde a WLN atua no banco de dados. Requisitos no-funcionais Nome NF 8.1 Campos formatados. NF 8.2 Listar Responsveis Existentes NF 8.3 Editar e Excluir cadastros Restrio Os campos de telefone esto formatados para evitar erros de digitao. O sistema deve atravs de um boto listar em uma nova tela os responsveis que j esto cadastradas no sistema. O sistema deve permitir a alterao e excluso de cadastros dos responsveis. Categoria Interface Desejvel ( ) Permanente (X)

Segurana

( )

(X)

Segurana

( )

(X)

Quadro 9 Requisito cadastrar responsvel cidade

Os requisitos suplementares so requisitos que definem atributos de qualidade do sistema, tais como desempenho, usabilidade, funcional, suportabilidade, confiabilidade e restries. O Quadro 10 mostra alguns requisitos suplementares definidos para o sistema.
Nome S1 Tipo de Interface S2 Informaes das bases S3 Acesso aos equipamentos Restrio As Interfaces do sistema devem ser simples e funcionais. As informaes dos cadastros das bases (IP, porta, usurio e senha) devem ser tratadas como informaes sigilosas. O sistema deve esperar no mximo 30 segundos para obter acesso a alguma base, caso contrrio deve abortar a execuo e informar ao usurio sem conexo com a base. Os perfis de usurio para acesso ao sistema so: 1 Administrador pode efetuar todas as operaes. 2 Triagem pode efetuar as operaes bsicas do sistema. Categoria Interface Segurana ( ) Desempenho ( ) (X) (X) Desejvel ( ) Permanente (X)

S4 Perfis de usurio

Segurana ( ) (X)

Quadro 10 Requisitos suplementares

46

O Quadro 11 lista as interfaces definidas para o sistema, com os atores e os casos de uso relacionados, todos com uma descrio complementar.
No. 01 02 03 04 Nome Tela de Login Tela Principal Tela de Cadastro de Usurios Tela para Alterar Senha Ator Usurio Triagem / Administrador Usurio Triagem / Administrador Administrador Usurio Triagem / Administrador Usurio Triagem / Administrador Caso de Uso Cadastro de Usurio Alterar Senha Descrio Interface para login de acesso ao sistema Interface para escolha que qual mdulo desejase utilizar Interface para incluso de novos usurios Interface para alterar senha de Usurio Interface para incluso, alterao e excluso de servidores PPPoe. Tambm lista todos os servidores e seus clientes conectados, faz busca por nome de cliente Interface para incluso, alterao e excluso de Responsvel Cidade. Tambm lista os responsveis cadastrados Interface para incluso, alterao e excluso de Base. Tambm lista as Bases cadastrados Interface para incluso de clientes na base escolhida Interface para listar, editar e excluir clientes cadastrados no access list do equipamento acessado. Interface para listar os clientes que esto conectados no equipamento acessado

05

Tela PPPoe Online

PPPoe Online

06

Tela para Cadastro de Responsvel Cidade

Administrador

Cadastro de Responsvel Cidade

07

Tela para Cadastro de Base Tela para Adicionar Cliente Tela para Listar Clientes Base

Administrador Usurio Triagem / Administrador Usurio Triagem / Administrador Usurio Triagem / Administrador

Cadastro de Base Cadastro de MAC Clientes Listar Clientes Base

08

09

10

Tela para Listar Clientes Online

Listar Clientes Online

Quadro 11 Interfaces de usurio

O diagrama de classes representa o sistema de acordo com os conceitos da orientao a objetos, tendo em vista que ele descreve os objetos e os relacionamentos que existem entre eles. O diagrama de classes descreve a estrutura e as relaes entre as classes, uma viso esttica do sistema em termos de classes e relacionamento entre as classes. A Figura 18 representa o diagrama de classes do sistema com seus respectivos relacionamentos.

47

Figura 20 Diagrama de classes

A Figura 21 apresenta o diagrama de atividades de incluso de clientes. De acordo com a representao desse diagrama, verifica-se que o usurio do sistema informar os dados nos campos da interface do sistema, o sistema por sua vez, atravs de um mecanismo de validao, validar a MAC digitada pelo usurio informando vlida ou invalida. Sendo a MAC validada, o sistema conecta a base selecionada pelo usurio e libera dentro da lista de acesso do equipamento o cliente informado. O sistema por sua vez pode conseguir a conexo ou no ao equipamento, esse deve fornecer um feedback do sucesso ou falha na conexo.

48

Figura 21 Diagrama de atividade incluso de cliente no equipamento

A Figura 22 representa a atividade de listar os clientes online no equipamento. O usurio seleciona a base a ser acessada. O sistema, por sua vez, conecta na base e lista na tela os clientes que esto online no momento.

Figura 22 Diagrama de atividade listar clientes online

A Figura 23 mostra a sequncia das mensagens para adicionar um cliente na base escolhida pelo usurio na etapa onde o mesmo preencheu os campos.

49

Figura 23 Diagrama de sequncia adicionar cliente

A Figura 24 representa a sequncia para listar na tela os clientes que esto conectados em uma base escolhida pelo usurio.

Figura 24 Diagrama de sequncia listar clientes online

4.3 DESCRIO DO SISTEMA O acesso ao sistema ocorre por meio de validao de login, apenas o usurio administrador ter permisso dentro do sistema para cadastrar novos usurios. Na Figura 25 est a tela de login ao sistema. Se o usurio no informar os dados corretos de login (usurio e senha) uma mensagem ser informada contendo o texto: Usurio e senha invlidos, digite novamente.

50

Figura 25 Tela de login

Assim que validado o usurio e a senha junto ao banco de dados o sistema salva em uma classe o usurio que fez o login. Essa informao til para alterar a senha do login conectado e verificar o tipo do usurio e consequentemente saber quais funes o usurio ter acesso. Realizada a validao de acesso, a tela principal do sistema apresentada. A Figura 26 representa a tela principal do sistema.

Figura 26 Tela inicial do sistema

No topo da tela esto os menus de acesso aos cadastros e as funes do sistema. O primeiro menu Arquivo tem as funes de Cadastrar Novo Usurio e Alterar Senha. Apenas o usurio administrador ter a opo de cadastrar novo usurio e todos os usurios tero permisso para alterar senha. A Figura 27 apresenta a tela de Novo Usurio aberta.

51

Figura 27 Cadastro de novo usurio

Utilizando da Classe SessaoUsuLogado recuperado o usurio logado, o que possibilita alterar a senha do funcionrio que est utilizando o sistema. representa a tela de Alterar Senha. A Figura 28

Figura 28 Alterar senha de usurio logado

O segundo menu, Cadastro, possui as funes de Cadastrar Responsvel Cidade e Cadastrar Base. A opo Responsvel Cidade (Figura 29) abre a tela para cadastrar um novo

52

Responsvel.

Figura 29 Responsvel cidade

Se selecionada a opo Cancelar a tela ser finalizada. Caso a escolha seja Salvar o cadastro do responsvel ser salvo no banco de dados e uma mensagem na tela ser apresentada Incluso efetuada com Sucesso ou Erro na Incluso. O boto Listar abre uma nova tela e lista os responsveis que esto cadastrados conforme a apresenta a Figura 30.

Figura 30 Lista responsvel cidade

53

Caso o usurio clique no boto Detalhe, todos os dados referentes ao responsvel sero apresentados conforme apresenta a Figura 31.

Figura 31 Detalhe responsvel cidade

A Figura 32 mostra a tela que ser aberta quando o usurio clicar em Editar. O usurio pode confirmar as modificaes ou cancel-las.

Figura 32 Editar responsvel cidade

Quando a opo for Excluir (Figura 33) uma confirmao de excluso solicitada ao usurio podendo assim o mesmo confirmar ou cancelar a operao, essa operao excluir

54

do banco todas as informaes do responsvel selecionado na lista.

Figura 33 Excluir responsvel cidade

No mesmo menu Cadastro tem a funo de Base (Figura 34) que permite o cadastro da base. A Base cadastrada no sistema nada mais que um equipamento Routerboard executando um sistema Operacional RouterOS que est instalado em uma torre ou prdio e possui a funo de gerar ondas de rdio (sinal wireless) para os clientes. Esse equipamento por sua vez possui uma lista dos clientes liberados (access-list) e uma lista dos clientes que esto conectados no momento. O boto Salvar confirma o cadastro e apresenta uma mensagem de sucesso ou falha na operao. O boto Cancelar cancela a operao e fecha a tela. O boto Listar apresenta exatamente as mesmas funes do Listar Responsvel Cidade.

55

Figura 34 Cadastro base

O boto Listar apresenta uma lista com as bases cadastradas. Sendo possvel obter detalhes, editar e excluir bases. Conforme mostra a Figura 35.

Figura 35 Lista de bases cadastradas

A Figura 36 apresenta o boto Detalhe da lista de base, selecionando uma base na lista so disponibilizadas mais informaes da base selecionada.

56

Figura 36 Detalhes da base

O boto Editar da Lista de Base representado pela Figura 37. possvel fazer alteraes no cadastro da base utilizando esse recurso.

Figura 37 Editar base

Tambm possvel excluir uma base desde que esta seja seleciona na lista e utilizando do boto Excluir representado na Figura 38.

57

Figura 38 Excluir base

O terceiro Menu da Tela Principal cujo nome Triagem destinada para as operaes que sero realizadas dentro dos equipamentos Base que esto cadastrados no sistema. As operaes realizadas diretamente no equipamento so: a) Adicionar Cliente Essa funo (Figura 39) permite cadastrar um cliente no access-list da base selecionada. Informaes padro so solicitadas como nome do cliente, Mac Address esse campo est formatado como Hexadecimal o que inibe um possvel endereo fsico invlido. Ao selecionar o campo Cidade selecionado, o sistema busca em seu banco de dados quais so as bases dessa cidade e lista no campo Base. Logo lista quais so ou ssids, ou melhor, as interfaces wireless disponveis na base selecionada. O campo Signal Strength Range permite informar qual ser o mnimo de sinal que o cliente vai precisar para se conectar na base. O campo Authentication libera a autenticao do cliente ou no e por fim o campo Forwarding que serve para no deixar um cliente visualizar outro.

58

Figura 39 Adicionar cliente base

b) Clientes Liberados A tela Clientes Liberados representada pela Figura 40 permite verificar quais so os clientes que esto liberados dentro do access-list do equipamento. Assim que escolher a cidade, o sistema busca quais so as bases dessa cidade e as carrega no combo Base. O boto Listar acessa o equipamento e lista quais so os clientes que esto liberados nessa Base. O boto Disable e Enable desativa e ativa, respectivamente, o cliente dentro do equipamento.

59

Figura 40 Clientes liberados

O boto Buscar (Figura 41) nada mais que um filtro na coluna Radio Name.

60
Figura 41 Filtro buscar cliente

O boto Excluir (Figura 42) exclui o cliente selecionado do access-list da base, para isso solicita uma confirmao de excluso.

Figura 42 Excluir cliente do access-list

O boto Editar abre uma nova Janela onde o usurio pode editar informaes do cadastro do cliente. Essa janela representada pela Figura 43. O boto Salvar confirma as alteraes do cliente dentro do access-list da Base e o boto Cancelar cancela a operao.

61

Figura 43 Editar cliente no access-list

b) Clientes Online Nessa tela (Figura 44) o usurio consegue listar os clientes que esto conectados na Base selecionada pelo usurio. O mecanismo de busca um filtro na coluna Radio Name e o boto Derrubar Cliente finaliza a conexo do cliente selecionado na lista por alguns segundos. Vrias informaes de valor relevante para o Setor de Triagem so mostrados nesse list, como o sinal do cliente, h quanto tempo est conectado, em qual interface est conectado e o endereo fsico do cliente.

62

Figura 44 Clientes online na base

d) PPPoe Online Para o cliente conseguir o acesso Internet precisa estar conectado em uma base. Aps isso estabelecer uma conexo com um equipamento RouterBoard (Servidor PPPoe) que tambm possui um sistema Operacional RouterOS. Essa nova conexo se faz necessria para trocar as chaves de acesso, usurio e senha do cliente obtendo assim a conexo ou no. A Figura 45 representa a tela na qual possvel cadastrar e excluir esses Servidores de PPPoe, tambm possvel verificar os clientes que esto conectados nesse servidor . O boto Buscar um filtro na coluna Username da tabela em que esto listados os clientes conectados no Servidor.

63

Figura 45 PPPoe online

O boto Criar Server abre a tela que esta representada na Figura 46 na qual feito o cadastro do Servidor de PPPoe. O campo IP possui uma funo que verifica se o IP digitado vlido ou no. O boto Salvar confirma o cadastro e o Cancelar cancela a operao.

Figura 46 Cadastro servidor PPPoe

A Figura 47 representa o filtro de busca por username na tabela.

64

Figura 47 Filtro de busca cliente PPPoe

4.4 IMPLEMENTAO DO SISTEMA Pacotes podem facilmente definir as classes com funes parecidas que ficaro dentro do projeto, facilitam a localizao das classes e criam uma estrutura hierrquica de diretrios. Empacotar classes significa criar uma estrutura que ajuda a manuteno e fomenta os princpios de encapsulamento e modularidade da orientao a objetos. O sistema desenvolvido como resultado deste trabalho foi dividido em pacotes permitindo organizar as classes com finalidades comuns. A Figura 48 representa o projeto e seus pacotes.

Figura 48 Pacotes do projeto

65

O projeto est dividido nos pacotes: a) bean contendo as classes dos objetos do sistema; b) dao com as operaes no banco, trata a parte de dados do sistema; c) factory contm a classe responsvel por fazer a conexo com o banco de dados; d) gui - nesse pacote esto as classes que faro a interface com o usurio; e) gui.image com as imagens e cones necessrios no sistema; f) mkt armazena as duas classes responsveis pela conexo e troca de comando atravs de uma API com o equipamento routerboard; Assim que o usurio tenta se logar no sistema atravs da interface de login o mtodo validaLogin() (Listagem 1) chamado. Os objetos das classes Usuario e OperacoesDao respectivamente usu e dao esto declarados e instanciados dentro da classe Principal. Esse mtodo consiste em recuperar em duas Strings o usurio e senha digitados. O objeto dao ir fazer uma pesquisa no banco procurando pelo usurio digitado, se encontrar retorna um objeto do tipo Usuario. Em seguida faz a verificao do retorno com o usurio e senha digitados. Por fim salva na classe SessaoUsuLogado o usurio que est conectando, fecha a tela de login e abre a tela principal do sistema.

Listagem 1 ValidaLogin()

A interface OperacoesBancoImpl (Listagem 2) define que comportamentos uma classe que implementa essa interface deve ter. Essa interface mostra com clareza e facilidade quais so os mtodos que iro ser implementados na classe OperacoesDao.

66

Listagem 2 Interface OperacoesBancoImpl

Como o sistema ter que acessar o banco e salvar algumas informaes foi necessria a instalao de um banco de dados, o escolhido foi o MySQL e por meio da ferramenta MySQL-Front foi criado o banco e as tabelas. Em seguida foi adicionado o driver JDBC, mysql-connector-java-5.1.13, que encapsula uma interface com os comandos padres do banco, os mtodos de insero, pesquisa, update e delete so os mesmos para os bancos que utilizam dessa JDBC. O Class.forName carrega o driver JDBC na memria passando o caminho do arquivo. A classe Connection responsvel por armazenar a conexo com o banco. A classe DriverManager estabelece a conexo atravs do mtodo getConnection passando por parmetro o caminho do banco, usurio e senha para conexo. A classe BdConnection que esta dentro do pacote factory responsvel por fazer a conexo com o banco de dados. A Listagem 3 apresenta essa classe.

67

Listagem 3 Classe BdConnection

O sistema vai permitir incluir, editar e excluir bases, responsveis pelas cidades, servidores PPPoe e usurios do sistema. Em seguida ser apresentado o incluir, o editar e o excluir bases. A lgica para incluir, editar e excluir responsveis, servidores e usurios so praticamente a mesma por esse motivo no ser representada nesse relatrio. Na interface do cadastro da base o boto Salvar chama o mtodo inserirBase(). Ele responsvel por validar as informaes digitadas e em seguida chamar o mtodo incluirBase(Base base) da Classe OperacoesDao que responsvel por incluir a base no banco. A Listagem 4 contm o cdigo dessa funo.

68

Listagem 4 inserirBase()

A funo da linha 321 na Listagem 5 responsvel por verificar se o IP digitado na tela vlido. Caso o IP seja invlido entra em um loop, saindo somente quando o IP for digitado corretamente. Na Figura 51 est a funo IPehValido(String ip). Essa funo verifica se o tamanho da string menor que sete e maior que 15, aps quebrar a string verifica se esta foi quebrada em 4 pedaos e por ltimo verifica se cada bloco esta entre 1 e 255 retornando verdadeiro ou falso.

69

Listagem 5 IPehValido(String ip)

Assim que o IP validado, criado e instanciado um objeto do tipo Base e so atribudos valores a seus atributos atravs dos mtodos set. A linha boolean ret = dao.incluirBase(base) executa o mtodo da classe OperacoesDao responsvel por incluir a base passada por parmetro ao banco. O retorno desse mtodo corresponde ao sucesso ou fracasso na operao. Primeiramente estabelecido a conexo com o banco atravs do mtodo getConexao() na classe BdConnection. Em seguida o preparedStatement prepara o SQL para fazer o insert no banco. O mtodo incluirBase(Base base) (Listagem 6) responsvel por atribuir os valores ao preparedStatement que ao final executado.

70

Listagem 6 incluirBase(Base base)

A interface do Cadastro de Base possui um boto Listar que abre uma nova janela (ListaBase) na qual so exibidas em uma lista todas as bases cadastradas no banco de dados. A partir dessa lista possvel ver detalhes das bases, editar e excluir as mesmas. A Listagem 7 mostra como as bases so listadas na tela. Foi declarado um objeto do tipo OperacoesDao e um ArrayList do tipo Base. A linha 44 executa o mtodo listarBase() da Classe OperacoesDao. Esse mtodo retorna uma array de bases. Em seguida percorrido esse array e listado as informaes em um list na tela.

Listagem 7 Listar bases

71

O boto editar da interface ListaBase chama uma nova tela e passa por parmetro a base selecionada. Nessa nova interface os valores da base passada por parmetro so atribudos aos campos. O usurio pode fazer as alteraes que achar necessrio e em seguida salvar. O boto Salvar ir chamar a funo (Listagem 7) que criar, instanciar e atribuir os valores a base. A linha 327 executa o mtodo editarBase(Base base) (Listagem 8) da Classe OperacoesDao passando a base por parmetro.

Listagem 8 editarBase()

O prepareStatement (Listagem 9) prepara o SQL para editar o cadastro no banco, o mtodo editarBase(Base base) recebe uma base por parmetro e atribui os valores ao prepareStatement que ao final faz o executeUpdate().

72

Listagem 9 editarBase(Base base)

O boto Excluir da interface Lista Base chama uma funo (Listagem 10) responsvel por identificar a base selecionada na lista e em seguida chamar o mtodo excluirBase(int cod) da Classe OperacoesDao passando o cdigo da base a ser excluda por parmetro.

Listagem 10 excluirBase()

O prepareStatement (Listagem 11) prepara o SQL para excluir o cadastro no banco, o mtodo excluirBase(int cod) recebe o cdigo por parmetro e ao final faz o executeUpdate();

73

Listagem 11 excluirBase(int cod)

A seguir apresentado sobre a conexo do sistema com o equipamento de rede. Essa talvez seja a principal funcionalidade do software desenvolvido. Para essa etapa foi necessrio a utilizao de uma API(libAPI.jar) e das classes responsveis pela conexo, envio de comandos e recebimento de informaes. Tanto a API quanto as classes esto disponveis na pgina do fabricante do equipamento (http://wiki.mikrotik.com/wiki/Manual:API). A API permite aos desenvolvedores criar solues de software para interagir com o RouterOS, que o sistema operacional dos equipamentos routerboard. Para o funcionamento da API necessrio que esteja instalado no equipamento de rede uma verso RouterOS 3.x ou superior. A conexo feita atravs da porta padro reservada para esse servio, a 8728. A comunicao ocorre por meio de comandos que so enviados ao roteador e retornam com as mensagens de resposta. Os comandos utilizados na conexo atravs da API so semelhantes aos usados no terminal do RouterOS, porm alguns so particulares da API java. Alguns exemplos de comandos API utilizados no sistema: a) O comando a seguir acessa o access-list do equipamento e solicita todos os registros. O proplist fica encarregado de retornar apenas as propriedades solicitadas. "/interface/wireless/access-list/getall\n" + "=.proplist=comment,mac-address,interface,signalrange,authentication,forwarding" b) Esse faz uma consulta no access-list buscando apenas o atributo id em que o mac-address igual ao passado por parmetro. "/interface/wireless/access-list/getall\n" + "=.proplist=.id\n" + "?mac-address=" + macAddress.toUpperCase(); c) Acessa o access-list e remove o registro no qual o id igual ao passado por parmetro.

74

"/interface/wireless/access-list/remove\n" + "=.id=" + id; d) Desabilita o registro do access-list usando o id "/interface/wireless/access-list/disable\n" + "=.id=" + id; e) Habilita o registro do access-list usando o id "/interface/wireless/access-list/enable\n" + "=.id=" + id; Como mencionado foram utilizadas duas classes fornecidas pelo fabricante do equipamento routerboard. As classes so encontradas no wiki da API java no site do fabricante. A classe OperacoesMkt que esta no pacote mkt possui alguns mtodos para obter a conexo com o equipamento, enviar comandos e receber os retornos. Os mtodos dessa classe so: a) Connect: espera um IP e a porta de conexo, estabelece a conexo. Na Listagem 12 est o cdigo desse mtodo.

Listagem 12 Conectar RouterOS

b) Login: espera o login e a senha de acesso, tambm utiliza a classe MessageDigestHelper presente no mesmo pacote para estabelecer o acesso. A Listagem 13 representa esse mtodo.

75

Listagem 13 Login com RouterOS

c) Writeln: utilizado para enviar os comandos para o RouterOS; d) Write: envia apenas uma linha de comando; e) Read: faz a leitura do material retornado pela API RouterOS; f) progTalk: esse mtodo (Listagem 13), talvez o mais usado utilizado para enviar os comandos e ao mesmo tempo retorna um array de string com o material de resposta da API RouterOS. Esse mtodo faz uso dos mtodos writeln(), write() e read().

Listagem 14 Enviar comandos

g) Disconnect: esse mtodo apenas desconecta o socket.

76

Todas esses mtodos listados so utilizados pelo sistema para estabelecer a conexo e interagir com o RouterOS. A Listagem 15 exemplifica o uso desses mtodos pelo sistema.

Listagem 15 Exemplo do uso dos mtodos

Essa funo mostrada no exemplo da Listagem 16 est presente na interface ClientesOnlineBase. Consiste em conectar ao equipamento e listar os registros dos clientes que esto online na base no momento da conexo. A linha 373 chama uma funo (Listagem 15) que fica responsvel por conectar ao equipamento. A linha 375 possui uma varivel do tipo array de string que espera o retorno do comando passado pela API. O comando busca todos os registros no registration-table do equipamento retornando apenas os atributos listados no proplist. Em seguida percorrido esse array de retorno e atribudo s informaes a uma tabela. Por fim desconectado do equipamento.

77

Listagem 16 ConectarMKT()

Essa funo (Listagem 16) verifica qual a base selecionada pelo usurio, faz uma conexo com o bando de dados e retorna todas as informaes dessa base necessrias para em seguida estabelecer a conexo (linha 467) e fazer a login (linha 473).

78

5 CONCLUSO Com o desenvolvimento deste projeto foi possvel colocar em prtica o conhecimento adquirido nas disciplinas cursadas no curso superior de Tecnologia em Anlise e Desenvolvimento de Sistemas da UTFPR, Cmpus Pato Branco. Independentemente da linguagem, a lgica para implementar um sistema a mesma. E todas as matrias e os professores contriburam de certa forma para o desenvolvimento desse projeto. Diversas dificuldades surgiram durante o desenvolvimento do sistema, tanto na modelagem quanto na implementao. possvel que isso tenha ocorrido pelo autor deste trabalho no trabalhar na rea e assim no ter lgica to apurada e nem fluncia com codificao. Contudo, isso no foi utilizado como justificativa, seguiu-se em frente buscando busquei relembrar alguns conceitos em exemplos e vdeo-aulas guardadas do curso. A conexo com o equipamento routerboard foi o ponto forte do projeto. Sem nunca ter desenvolvido nada parecido foi a oportunidade de testar o conhecimento adquirido no curso e buscar entender a API para ento fazer a conexo com o equipamento e a troca de informaes. Os comandos no seriam problema, pois a sintaxe praticamente a mesma do terminal RouterOS, do qual j tinha conhecimento. Tendo em mos o manual da API disponibilizado no site do fabricante o desenvolvimento deste projeto foi a oportunidade de verificar algumas particularidades da mesma e encontrar as solues. O grande facilitador no perodo de desenvolvimento foi a prpria linguagem Java que por meio do seu JavaDoc auxiliou nas muitas dvidas e na soluo de problemas. A ferramenta de desenvolvimento NetBeans tambm foi de grande valia pela facilidade de sua interface, localizao de erros e depurador. Por fim, como autor deste trabalho, fica-se satisfeito com o produto final do trabalho de concluso. E espera-se que esse seja apenas o incio para a continuidade do projeto de um software para provedores de Internet. Dentre os trabalhos futuros para melhoria e agregao de funcionalidades ao sistema desenvolvido podem ser citados: o armazenamento de logs para o controle do que foi alterado por cada um dos usurios e melhorias na interface.

79

REFERNCIAS BEZERRA, Eduardo. Principios de anlise e projeto de sistemas com UML. Campus, 2006. BOOCH, Grady. Object-oriented analysis and design, 2 edio, Addison-Wesley, 1998. BOOCH, Grady; RUMBAUGH, James. Modelagem e projetos baseados em objetos com UML 2, 2 edio, Rio de Janeiro: Campus, 2000. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usurio, 7 edio, Rio de Janeiro: Campus, 2000, FERRANTE, Agustin Juan, RODRIGUEZ, Vicente Rodrigues y. Tecnologia de informao e gesto empresarial. Rio de Janeiro: E-Papers, 2000 MACORATTI, Jos Carlos. UML - Conceitos Bsicos <http://www.macoratti.net/vb_uml2.htm>. Acesso em: 27 jul. 2012. II. Disponvel em

MYSQL-FRONT. Mysql_Front. Disponvel em: <http://www.mysqlfront.de/>. Acesso em: 04 set. 2012. OMG. Unified Modeling Language (OMG UML), Superstructure, Version 2.4.1, 2011. PRESSMAN, Roger. Engenharia de software, 5 ed. Rio de Janeiro: McGraw-Hill, 2002. MARTIN, James. Anlise e projeto orientados a objeto. So Paulo: Makron Books, 1995. SCOTT, Kendall. O processo unificado explicado, Bookamn, 2003. Disponvel em <http://booklens.com/kendall-scott/processo-unificado-explicado>. Acesso em 20 jun. 2012. SILVA, Ricardo Pereira E. Como modelar com a UML 2. Florianpolis: Visual Books, 2009. SILVA, Ricardo Pereira E. UML 2 em modelagem orientada a objetos. Florianpolis: Visual Books, 2007.

Das könnte Ihnen auch gefallen