Apresentação

 

Você conhece os treze diagramas da nova versão da linguagem de especificação UML? Conhecia os nove diagramas da versão anterior? Mais importante que isso: sabe usá-los em um processo de desenvolvimento orientado a objetos? É grande o número de profissionais de nível superior atuantes em desenvolvimento de software que responderiam “Não” a essas perguntas. Por isso, o foco deste trabalho é capacitar quem tem noções de programação orientada a objetos a usar UML em análise e projeto orientados a objetos, o que possibilita o desenvolvimento de softwares de mais alta complexidade, com garantia de estruturação adequada.

 

A primeira versão de UML foi produzida em 1997 e, de lá para cá, tornou-se padrão de notação para especificações orientadas a objetos, levando ao desuso dezenas de notações até então existentes. A versão 2 da linguagem vem tratar deficiências presentes na primeira versão e é proposta quase uma década após o lançamento desta.

 

Várias metodologias de análise e projeto abandonaram suas notações originais, adotando UML ao longo da última década. Outras novas surgiram já incorporando UML. Porém, de um modo geral, observa-se uma subutilização do potencial expressivo da linguagem nessas metodologias. Com o lançamento recente de UML 2, essa característica tornou-se ainda mais evidente. É importante ressaltar esse aspecto, pois, em pleno século XXI, há que se perguntar se ainda faz sentido produzir uma publicação voltada a análise e projeto orientados a objetos. A resposta é “Sim” e existem algumas razões para isso:

 

·        Desafios de ordem prática em análise e projeto não são completamente solucionados pelas propostas ora publicadas. Na elaboração desta obra, buscaram-se respostas para várias questões levantadas no dia-a-dia da prática de modelagem;

·        Não se encontrou nenhum material disponível que descrevesse a segunda versão de UML de uma forma completa e didática. Existem várias publicações voltadas à primeira versão, adaptadas para a segunda, sem de fato mostrarem ao leitor a segunda versão de UML de forma completa;

·        As metodologias de análise e projeto que adotam UML não prevêem a possibilidade de uso de todos os seus diagramas, o que leva a uma subutilização da linguagem. O conhecimento de UML possibilita uma releitura dessas metodologias.

 

Uma outra questão relevante é a finalidade de proceder a uma modelagem no desenvolvimento de software, isto é, de gerar especificações baseadas em UML durante as etapas de análise e projeto. Um dos objetivos da presente obra é tornar claro como e porque o processo de modelagem, a partir da possibilidade de tratar um software em diferentes níveis de abstração, através de diferentes pontos de vista, auxilia na identificação e seleção de alternativas mais adequadas, levando a um resultado de melhor qualidade. Isso significa “software melhor estruturado”, o que tem um reflexo direto na sua manutenibilidade (porque será de mais fácil compreensão), bem como na reusabilidade de suas partes. Com isso, o processo de modelagem torna-se um excelente auxílio para administrar a complexidade em um desenvolvimento, para levar a um melhor resultado, bem como para aumentar a produtividade da atividade de desenvolvimento de software. Sem a adoção de abordagens metódicas de desenvolvimento (o que inclui modelagem de análise e projeto) não há capacitação para grandes desafios, isto é, para software extenso. Nesta obra procura-se deixar esses aspectos muito nítidos para o leitor, pois se a prática de modelagem não pudesse ajudá-lo, consistiria apenas em mais uma demanda de esforço em um processo de desenvolvimento.

 

A primeira parte deste livro é voltada a introduzir o tema modelagem em desenvolvimento de software – e mais especificamente, no desenvolvimento de software orientado a objetos. Introduz conceitos fundamentais a um processo de modelagem. A seguir, discute-se a estrutura de um programa orientado a objetos tanto em tempo de desenvolvimento – classes – como em tempo de execução – objetos interagindo. Os dois pontos de vista devem ser abordados em um processo de modelagem. Introduzem-se critérios de avaliação de especificações de projeto orientado a objetos: os pontos de vista essenciais – o que envolve tanto a necessidade de tratar diferentes níveis de abstração quanto de abranger modelagem estrutural e dinâmica.

 

A segunda parte é voltada à apresentação da versão 2 da linguagem UML, inclusive comparando-a com a versão anterior. Um capítulo inicial apresenta uma visão geral de UML, descrevendo em linhas gerais todos os diagramas, seus principais elementos e sua aplicabilidade em um processo de modelagem. Outros oito capítulos detalham os treze tipos de diagrama da segunda versão de UML. Seus elementos sintáticos são apresentados e seu uso é ilustrado através de exemplos.

 

O último capítulo discute sucintamente as próximas necessidades, no sentido de compor um processo de desenvolvimento de software. A primeira, definir a seqüência de etapas para produzir uma modelagem orientada a objetos usando UML e que atenda ao requisito de produzir uma especificação que possa ser considerada completa – que trate os possíveis pontos de vista, em diferentes níveis de abstração. Além de passos a seguir, uma outra necessidade de um procedimento metodológico é prever critérios para avaliar e validar a modelagem produzida – no sentido de maximizar a qualidade, consistência, legibilidade e coesão da especificação.

 

O conteúdo apresentado é resultado de anos de prática do autor, tanto modelando, como ensinando a modelar – em graduação, pós-graduação e em empresas. A forma de apresentar os conteúdos, a seqüência e o destaque de questões importantes adotadas ao longo dos capítulos vêm principalmente do contato com estudantes e profissionais, das dúvidas manifestadas por eles, bem como da observação de erros freqüentes de modelagem. O autor espera que mais pessoas possam se valer dessa experiência.

 

Ricardo Pereira e Silva