Modelagem de classes estática: Conhecendo a análise textual
Artigos Modelagem de classes estática: Conhecendo a análise textual
Por que eu devo ler este artigo: Nesse artigo será abordada a técnica de Análise textual, a qual se encontra dentro da modelagem estática da Análise Orientada a Objetos, e como essa técnica ajuda na identificação das classes, seus atributos, operações e suas relações a fim de construir um diagrama de classes do sistema, baseado na análise de um caso de uso. A técnica de Análise textual é utilizada para produzir um diagrama de classes, a partir de diversos artefatos textuais, esse diagrama tem finalidade de facilitar o entendimento, contribuir para o vocabulário do problema e comunicação entre os desenvolvedores. Além disso, esse documento produzido será a fonte principal de informação junto com a especificação do caso de uso para os desenvolvedores durante a fase de implementação.
Os conceitos de orientação objetos podem ser aplicados nas práticas de desenvolvimento de software para a resolução de velhos problemas com uso de novas soluções. Nesses velhos problemas, as fases de desenvolvimento de softwares eram aplicadas no software como um todo, mas com esse novo conceito é aplicado em partes menores, os objetos. Esta nova abordagem recebeu o nome de Análise Orientada a Objetos (OOA).
A OOA consiste basicamente na definição das classes relevantes para o problema a ser resolvido, sistema a ser construído/modificado, a relação entre as classes, seus atributos e operações.
A OOA começa com um modelo descritivo contendo termos e entidades do domínio do problema para especificar os requisitos do sistema. O artefato base para esse modelo é o documento de requisitos, glossários, conhecimentos sobre o domínio, documento de uma entrevista ou até mesmo as especificações de um caso de uso, os quais serão traduzidos em diversos diagramas e irão auxiliar tanto na fase de análise quanto na de projetos. Durante essa análise serão modelados os aspectos estáticos e dinâmicos do problema.
Na modelagem dinâmica são representados os aspectos do sistema que mudam de acordo com o tempo, devido a eventos, ou seja, nessa modelagem podem ser identificadas as operações de cada classe. Essa modelagem gera os diagramas de sequência, atividade e colaboração.
Na modelagem estática são representadas as classes e seus relacionamentos relevantes ao domínio do problema. Essa modelagem gera o diagrama de classes. A modelagem estática é uma abstração da implementação de um software e engloba as classes e seus relacionamentos (generalização/especialização, agregação/decomposição ou associação entre classes).
Neste artigo será discutido o conceito de modelagem estática dentro da Análise Orientada a Objetos para apoiar a identificação das classes e relacionamentos entre elas. Após a definição desses conceitos, será utilizada a técnica de Análise textual para a criação de um diagrama de classes para um sistema de supermercado.
O objetivo dessa técnica é identificar as classes, associações, operações e atributos relevantes para o domínio do problema. Durante essa análise os substantivos, verbos de ligação, verbos e adjetivos são destacados, pois esses podem ser possíveis classes, atributos, relacionamentos ou operações. Após a identificação desses elementos, analisamos os que não fazem sentido para o domínio do problema e os que não se enquadram são eliminados. Nesse artigo, o domínio do problema pode ser entendido como a especificação do sistema, com seus requisitos, restrições e outras características relacionadas ao software.
Após essa breve explicação, surge a seguinte pergunta: onde podemos aplicar essa análise? Podemos aplicá-la em diversas fontes de informação sobre o sistema, tais como: documento de requisitos, glossários, conhecimentos sobre o domínio, documento de uma entrevista ou até mesmo as especificações de um caso de uso, pois esse último se baseia em descrições textuais.
Essa técnica depende muito da clareza do documento a ser analisado, pois de acordo com a forma em que se encontra escrito o documento, pode ocorrer de classes identificadas nessa análise não gerarem classes relevantes para o domínio do problema porém, por outro lado também ocorre o risco da não identificação de uma classe relevante. Isso depende muito da qualidade do artefato a ser analisado.
Apesar desse ponto negativo, essa análise é útil para uma fase inicial de identificação de classes candidatas, seus atributos e relacionamentos, finalizando com um diagrama de classes.
Nesse tópico iremos descrever brevemente alguns conceitos de Orientação a Objetos (OO) e do processo de desenvolvimento de software, apenas para apoio na parte prática desse artigo.