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.
|
Excelente!
ResponderExcluir