Ads 468x60px

Aplicabilidade


Exemplo de projeto utilizando a metodologia ICONIX


Este é um sistema de gerência de rede desenvolvido por Alana de Almeida Brandão e Frederico Ferreira Costa como trabalho de conclusão do curso de Sistemas de Informação da Univas do ano de 2011, iremos ver como a metodologia ICONIX foi implementada neste projeto onde veremos na prática os conceitos explicados neste trabalho.

Descrição básica do Sistema

O sistema em questão foi criado com o objetivo de apoiar a gerência de redes, permitindo a visualização e acompanhamento, em tempo real, das atividades dos usuários, onde possui notificações via SMS e e-mail sobre o estado e possíveis problemas existentes no ambiente computacional.

Requisitos:

Como foram explicados anteriormente, os requisitos definem o que um sistema será capaz de realizar, focando na solução de problemas então com os requisitos em mãos podem ser criados modelos de domínio, casos de uso e protótipos do sistema.

Neste projeto foram implementados os seguintes requisitos:
  •  Saber quais são os host online e off-line do sistema.
  •  Destacar hosts que são desconhecidos.
  •  Visualizar o tráfego de pacotes.
  •  Visualizar gráfico sobre o tráfico de pacotes.
  •  Ser capaz de salvar o gráfico em um arquivo PDF.
  •  Receber alertas por e-mail e SMS de níveis de tráfego.
  •  Visualizar informações detalhadas de determinado host na rede.
  •  Cadastrar os usuários que são da rede.
  •  Editar informações dos usuários da rede.
  •  Configurar para onde e de que forma os alertas serão enviados.
  •  Escolher o período no qual será armazenado o histórico.

Modelo de domínio

Como explicado anteriormente o modelo de domínio contém os objetos e conceitos do mundo real, mostrados através dos requisitos, que serão representados em um diagrama de classes sem atributos nem operações, destacando apenas as principais entidades que serão utilizadas no sistema.
O modelo nunca será perfeito, uma vez que ele será incrementado durante outras etapas do projeto.


A figura abaixo mostra uma primeira visão do modelo de domínio utilizado no projeto.
Obs.: Para melhor visualização de todas as imagens, clique sobre as mesmas para expandi-las. 

                            Modelo de domínio do sistema. Fonte: Elaborado pelos autores.

Este é um exemplo de modelo de domínio, onde é proposta uma primeira visão do diagrama de classes de uso do sistema, não iremos abordar cada um dos itens, pois não é o propósito deste projeto, mas aqui temos o primeiro esboço das principais partes do sistema e suas respectivas funções como, por exemplo, o EmailSender  e SMSSENDER  que são partes da função de notificação.

O ICONIX é uma metodologia de desenvolvimento incremental e iterativa, então em várias outras fases esse modelo de domínio será revisado e complementado. O próximo passo consiste em criar os protótipos das telas do sistema.

Protótipo do sistema

Após as etapas de levantamento de requisitos e criação do modelo de domínio é construído um protótipo do sistema, desenhando as principais interfaces.
A figura abaixo representa a primeira tela do sistema, mostrando os hosts online, offline, um gráfico com o tráfego de pacotes na rede e uma listagem dos pacotes trafegando na rede.


Aba Unificada. Fonte: Elaborado pelos autores.

A figura abaixo representa o painel de configurações, onde o usuário irá colocar as suas opções quanto ao funcionamento do sistema.

Aba de configurações. Fonte: Elaborada pelos autores.

Identificação dos casos de uso

Um caso de uso representa uma sequência de ações que um ator pode realizar para alcançar um determinado objetivo. Ele descreve como um sistema é utilizado e expressa os requisitos em termos que, tanto o time de desenvolvimento, quanto os clientes, podem entender.

A partir dos requisitos do sistema foi criado um diagrama de caso de uso, exibido na figura abaixo, mostrando as ações que um ator, neste caso o gerente de redes, pode realizar no sistema.




                       Diagrama de caso de uso do software. Fonte: Elaborado pelos autores.

Na figura pode-se visualizar que foram adicionados todos os requisitos definidos anteriormente, como visualizar o tráfego de pacotes e receber notificações de entrada de hosts desconhecidos, entre outros.

Análise e projeto preliminar

Após a análise dos requisitos, criação do modelo de domínio e a elaboração do protótipo das telas e a criação do caso de uso vem a fase de análise e projeto preliminar que se dedica a entender melhor o sistema proposto, fixando o detalhamento dos casos de uso em fluxos de eventos, diagramas e robustez e atualização do modelo de domínio.

Descrição dos casos de uso

Após a identificação dos casos de uso foram criados os fluxos de eventos, que detalham os casos de uso. O quadro abaixo representa o fluxo que existe quando o gerente de redes for receber uma mensagem de notificação sobre o nível do tráfego de pacotes.

Nome do caso de uso
Receber notificações sobre o nível de tráfico
Ator principal
Gerente de redes
Fluxo Principal
Ator
Sistema

1 - Busca a configuração para o nível de tráfego que ativa a notificação.
2 - Observa o tráfego de pacotes.
3 - Envia a notificação para o gerente de redes.
4 - Recebe a notificação conforme a maneira escolhida.


 Receber notificações sobre o nível de tráfego. Fonte: Elaborado pelos autores.

Neste caso, foi selecionado um caso de uso e ele foi detalhado, mostrando as tarefas que o sistema deverá implementar para que o ator possa realizar as ações que ele deseja.
O gerente de redes, conforme os requisitos, também é capaz de cadastrar os usuários da rede, conforme detalha o fluxo de eventos mostrado no quadro abaixo.

Nome do caso de uso
Cadastrar usuários no sistema
Ator principal
Gerente de redes
Fluxo Principal
Ator
Sistema
 1 – Aciona a aba unificada
 2 – Clica em cima de um usuário  desconhecido na lista
 3 – Clica no link Editar 
 4 – Preenche as informações
 5 – Clica em Salvar
 6 – Salva as informações do usuário
 7 – Modifica o status do usuário de   “desconhecido” para “online”
Fluxo alternativo 1
 1 – No item 5, clica em cancelar
 2 – Fecha a tela
Fluxo alternativo 2
 1 – No item 4, o usuário não preenche as informações
 2 – Clica em salvar
 3 – Exibe mensagem com erro dizendo que os dados devem ser informados.
                         Cadastrar usuários no sistema. Fonte: Elaborado pelos autores.

Detalhar os casos de uso faz com que se tenha uma ideia melhor de como cada um será implementado, mostrando os principais fluxos e fluxos alternativos que podem ocorrer.

Diagramas de robustez

A partir do diagrama de robustez é possível verificar se os casos de uso foram escritos corretamente e atualizar o modelo de domínio com novas classes que possam ter sido identificadas, no diagrama de robustez, conforme citam Rosenberg e Scott (1999), são utilizados os seguintes tipos de objetos:
Objetos do diagrama de robustez. Fonte: Elaborado pelos autores com base em Rosenberg e Scott (1999).

  • Fronteira: objetos que os atores utilizam para se comunicar com o sistema. Geralmente são janelas, caixas de diálogo ou menus;
  • Entidade: objetos que são do modelo de domínio e geralmente estão relacionados com tabelas do banco de dados ou arquivos que armazenam as informações;
  • Controle: objetos que fazem a ligação entre os objetos de limite e os de entidade, envolvendo a lógica da aplicação;


Para cada caso de uso foram criados diagramas de robustez. A figura abaixo mostra um dos diagramas de robustez do sistema, que detalha as ações de quando o gerente de redes deseja editar as informações de um host:


Diagrama de robustez do sistema. Fonte: Elaborado pelos autores.

A próxima figura apresenta mais um diagrama de robustez do sistema, que mostra o fluxo utilizado para destacar os hosts desconhecidos pelo sistema:



             Diagrama de robustez do sistema para destacar hosts desconhecidos. Fonte: Elaborado pelos autores.

A criação dos diagramas de robustez, segundo Rosenberg e Scott (1999), é uma forma de ajudar na identificação de novos objetos e atributos, além de permitir que se verifique se os fluxos dos casos de uso estão corretos. Além disso, através dele é possível modelar o sistema através do paradigma Model-View-Controller (MVC), pois as Entidades se tornarão o Model, os objetos de Fronteira serão o View e os Controles serão o Controller.

Atualização do modelo de domínio

Com criação dos diagramas de robustez, foram descobertos novos objetos que devem ser inseridos no modelo de domínio, representando novas classes do sistema.




Diagramas de sequência

Como foi explicado anteriormente esta fase representa realmente o início do design do sistema, pois as funções e métodos que existirão no software começam a aparecer.

Na próxima figura pode-se visualizar um dos diagramas de sequência criados no projeto Netz, ele representa o requisito para se visualizar o tráfego de pacotes.



Diagrama de sequência para a exibição do tráfego de pacotes. Fonte: Elaborado pelos autores.

A criação dos diagramas de sequência é geralmente um processo trabalhoso, porque inclui a representação de todo o fluxo de uma tarefa no software.

Nova atualização do modelo de domínio

Com criação dos diagramas de sequência, foram descobertos novos objetos que precisaram ser inseridos no modelo de domínio, representando novas classes do sistema.

Atualização do modelo de domínio. Fonte: Elaborado pelos autores.

Desenvolvimento do projeto

Após a conclusão de todas as fases e elaboração dos diagramas sugeridos pelo ICONIX, o desenvolvimento do código fonte do programa é iniciado. Essa fase inclui a geração do código e a criação de testes.


Implementação

A implementação não é foco do ICONIX, pois depende da tecnologia utilizada e das especificidades de cada linguagem, mas o processo mostra algumas dicas de como fazer com que essa fase seja bem sucedida. É importante não perder o foco nos processos de desenvolvimento, como, por exemplo, não atualizar o modelo de domínio com novas classes ou mudanças encontradas no momento da codificação. A atualização é importante para que se tenha uma ideia dos novos conhecimentos que foram adquiridos. Outro erro seria partir para um teste de integração do sistema sem antes realizar testes unitários.


Testes

A criação de testes no desenvolvimento de software é uma prática importante, pois visa o aprimoramento e o aperfeiçoamento do programa, com a elaboração de um produto de melhor qualidade.

1 comentários: