Metodologia MaSE
Diagrama de Objectivos
Neste diagrama especificámos os objectivos do projecto, organizados por importância.
Cada nível da hierarquia tem objectivos com grau de importância semelhante, tendo o nível inferior sub-objectivos necessários para satisfazer o objectivo do nível superior.
Como objectivo principal, definimos a classificação de notícias.
No nível imediatamente abaixo definimos 3 objectivos com igual grau de importância: indexação, classificação e pesquisa de notícias.
Para satisfazer cada um desses objectivos, foram definidos num nível inferior os sub-objectivos necessários.
Figura 1 - Diagrama de Objectivos
Casos de Uso
Identificámos 3 casos de uso, um para cada objectivo do 2º nível da hierarquia do diagrama de objectivos.
Para cada um dos casos de uso, foram identificadas algumas tarefas, para as quais foram construídos diagramas de sequência.
A identificação e associação das tarefas foi efectuada tendo em conta o grau de complexidade de cada uma, de maneira a que tivesse interesse a construção de diagramas de sequência, evitando diagramas simples demais e de pouca ou nenhuma relevância para a análise em questão.
Todas as tarefas necessárias estão identificadas e fazem parte de um diagrama de sequência.
- Caso de Uso "Get News"
- Caso de Uso "Classification"
- Caso de Uso "Search"
Diagrama de Papéis
Neste diagrama foram definidos os papéis associados aos vários objectivos.
Para cada um dos papéis foi criado um diagrama com as tarefas associadas, que nos permitiu identificar e visualizar em detalhe as tarefas necessárias para atingir um objectivo.
Ao esquematizar as várias tarefas concorrentes, os seus estados e as acções é possível ter uma melhor noção dos comportamentos que fazem disparar uma determinada situação, e quais as condições necessárias para isso.
Figura 2 - Diagrama de Papéis
Tarefas
- Tarefa "Get News"
- Tarefa "Index News
- Tarefa "Assign News
- Tarefa "Analyse and Classify News"
- Tarefa "Vector"
- Tarefa "Store News"
- Tarefa "Search News"
- Tarefa "Show News"
Diagrama de Agentes
Neste diagrama estão especificados os vários tipos de agentes (Figura 3) a serem implementados, com os respectivos diálogos entre eles.(Figura 4)
Resumindo, o agente Indexer faz a indexação de várias notícias, colocando-as numa pool. De seguida o agente Selector vai seleccionando notícias dessa pool, atribuindo cada uma dessas noticias aos agentes Classifier que as classifica. Finalmente, os agentes Classifier enviam as notícias para o agente DBWriter que se encarregará de as guardar.
Figura 3 - Diagrama de Agentes
Figura 4 - Conversação entre Agentes
Design de Classes e Agentes
Como referido atrás existem 5 agentes principais na nossa aplicação.
Carregando nos links, em baixo, é apresentada uma descrição detalhada do seu comportamento, o diagrama de estados e Diagrama de classes correspondente.
- Agente "Indexer"
- Agente "Selector"
- Agente "Classifier"
- Agente "DBWriter"
- Agente "Searcher"