Desenvolvimento - Modelagem

UML - Unified Modeling Language - Introdução e Histórico

Neste artigo vamos iniciar o estudo sobre UML. A UML - Unified Modeling Language - é um modelo de linguagem para modelagem de dados orientado a objetos, usada para especificar, construir, visualizar e documentar um sistema de software.

por Admilson Nogueira



A UML - Unified Modeling Language - é um modelo de linguagem para modelagem de dados orientado a objetos, usada para especificar, construir, visualizar e documentar um sistema de software.

Com ela podemos fazer uma modelagem visual de maneira que os relacionamentos entre os componentes do sistema sejam melhor visualizados e compreendidos e documentados .

Tecnicamente dizendo, a UML (Unified Modeling Language) é a junção das três mais conceituadas linguagens de modelagem orientados a objetos (Booch de Grady, OOSE de Jacobson e o OMT de Rumbaugh).

A figura abaixo mostra a divisão do conceito da UML:

Termos que serão citados mais a frente

Abstração

Abstração é o princípio de ignorar os aspectos de um assunto não relevante para o propósito em questão, tornando possível uma concentração maior nos assuntos principais [Cood, 1991]. Consiste na seleção que o analista faz de alguns aspectos, ignorando outros. Existem duas formas de abstração, de Procedimentos e de Dados.

Abstração de Procedimentos

Princípio de que qualquer operação com um efeito bem definido pode ser tratada por seus usuários como uma entidade única, mesmo que a operação seja realmente conseguida através de alguma seqüência de operações de nível mais baixo.

Encapsulamento

Encapsular é omitir informações pelo princípio de que uma determinada entidade esconde informações as quais são necessárias apenas à mesma. É fundamental que o objeto proteja seus dados, não permitindo que o usuário do objeto os acesse diretamente. Mas sim através de métodos se houver necessidade[Furlan, 1998].

Polimorfismo

È o conceito usado em linguagens de programação orientada a objetos para denotar a característica de que a linguagem suporta a utilização do mesmo identificador (o mesmo nome) para métodos de classes diferentes.

Um conceito em teoria de tipo no qual um nome (como uma declaração de variável) pode denotar objetos de muitas subclasses diferentes que são relacionadas por alguma superclasse comum, assim, qualquer objeto denotado por esse nome tem a capacidade de responder a algum conjunto comum de operações de modos diferentes [Booch, 2000].

Histórico da UML

Origens

As linguagens de modelagem orientadas a objetos surgiram entre a metade da década de 1970 e o final da década de 1980, à medida que o pessoal envolvido com metodologia, diante de um novo gênero de linguagens de programação orientadas a objeto e de aplicações cada vez mais complexas, começou a experimentar métodos alternativos de análise e projeto. A quantidade de métodos orientados a objetos aumentou de pouco mais de 10 para mais de 50 durante o período de 1989 a 1994. Muitos usuários desses métodos tiveram dificuldades para encontrar uma linguagem de modelagem capaz de atender inteiramente às suas necessidades.

Destacaram-se algumas linguagens como o Booch, o OOSE (Object-Oriented Software Engineering) de Jacobson, e o OMT (Object Modeling Technique) de Rumbaugh. Podemos citar outros métodos importantes como Fusion, Shlaer-Mellor e Coad-Yourdon. Todos eram métodos completos, alguns se destacavam em algum ponto, porém tinham suas limitações. O método Booch destacava-se durante as fases de projeto e construção de sistemas, o OOSE fornecia excelente suporte para captura de requisitos, a análise e o projeto em alto nível; o OMT-2 era mais útil com a análise e sistemas de informações com uso de dados[Booch, 2000].

Na metade da década de 1990, Grady Booch (Rational Software Corporation), Ivar Jacobson (Objectory) e James Rumbaugh (General Electrics) criadores de métodos orientados a objetos, começaram a pegar as melhores idéias e partiram para a criação de uma linguagem unificada de modelagem. Com isso esperavam fornecer ao mercado uma linguagem mais concreta e madura com os quais os desenvolvedores de ferramentas pudessem criar uma ferramenta mais utilizável. Usando técnicas orientadas a objeto criariam uma linguagem que iria desde o conceito até o sistema executável, não somente a sistemas complexos mas também a sistemas menores e também a outros problemas que não fossem sistemas de informação, podendo ser utilizado por seres humanos e máquinas[Furlan, 1998].

A criação da UML iniciou oficialmente em outubro de 1994, quando Rumbaugh se juntou a Booch na Rational. O foco inicial do projeto era a unificação dos métodos Booch e OMT[Furlan, 1998]. O esboço da versão 0.8 do Método Unificado foi lançado em outubro de 1995. Mais ou menos na mesma época Jacobson se associou à Rational com a finalidade de incorporar o OOSE no escopo inicial da versão 0.8, resultando o lançamento da versão 0.9 da UML em junho de 1996[Booch, 2000]. Foi então aprovada pela comunidade de engenharia de software em geral. Muitas empresas ficaram interessadas, foi então criada um consórcio com várias empresas interessadas em dedicar recursos com o propósito de trabalhar uma definição mais forte e completa da UML.

Empresas que contribuíram para a definição da UML 1.0, Digital Equipment Corporationm Hewlett-Packard, I-Logix, Intel-licorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational, Texas Instruments e Unisys. Resultando uma linguagem de modelagem bem definida , expressiva, poderosa, e que poderia ser aplicada a uma grande variedade de tipos de problemas[Booch, 2000]. A UML foi oferecida para a OMG (Object Management Group) em janeiro de 1997, em resposta à solicitação do próprio OMG de propostas para uma linguagem padrão de modelagem[Furlan, 1998].

Entre janeiro a julho de 1997, o grupo original se expandiu, passando a incluir virtualmente todos os participantes e colaboradores da resposta inicial ao OMG, entre os quais se encontravam Andersen Consulting, Ericson, Object Time Limited, Platinum Technology, Ptech, Reich Technologies, Softeam, Sterling Software e Taskon. Um grupo foi formado, liberado por Cris Kobryn da MCI Systemhouse e administrado por Ed Eykholt da Rational, com o propósito de formalizar a especificação da UML e de integrar a linguagem a outros esforços de padronização.

A versão 1.1 foi entregue a OMG em julho de 1997. Em setembro do mesmo ano, essa versão foi aceita pela ADTF (Analysis and Design Task Force) e pelo Architecture Board do OMG e, posteriormente submetida a votação de todos os membros da OMG. A versão 1.1 foi adotada pela OMG em 14 de novembro de 1997[Booch, 2000].

A manutenção da UML foi então assumida pela RTF (Revision Task Force) do OMG, sob a responsabilidade de Cris Kobryn. A RTF lançou uma revisão editorial, a UML 1.2., em junho de 1998. No final do mesmo ano, a RTF lançou a UML 1.3[Furlan, 1998].

Aceitação

Os criadores da UML procuraram desenvolver uma linguagem unificada padrão que pudesse ser de fácil entendimento a todos. Preocuparam- se em deixá-la aberta aos desenvolvedores, onde os mesmos pudessem criar seu próprio método de trabalho.

Empresas desenvolvedoras de ferramentas estão livres para criarem uma ferramenta aqueda ao uso da UML. Devido a necessidade de criação da UML empresas e profissionais liberais da área estão desenvolvendo estudos para melhor aplicá-la.

Padronização OMG

Quando se iniciaram os trabalhos para criação da UML, os criadores tinham como intenção fazer sua aceitação com a distribuição da linguagem a vários desenvolvedores.

A OMG (Object Management Group) fez um requerimento por uma linguagem de modelagem padrão. Então houve interesse dos criadores da UML em padronizá-la, para isso foi preciso que os mesmos aprimorassem a qualidade da linguagem para tal. Pois para serem realmente utilizadas por empresas era necessário sua padronização.

Aplicação

A UML pode ser usada para modelar várias fases de um sistema, desde os primeiros contatos até a geração do código. É aplicada em qualquer tipo de sistemas em termos de diagramas de orientação a objeto.

Geralmente é mais usada na modelagem de Softwares usando o conceito de orientação a objetos, mas também pode ser aplicada em sistemas mecânicos, de engenharia em geral, pode também ajudar na organização de processos de uma organização.

Agora que você já tem uma pequena noção de uma parte do Histórico da UML, no próximo Artigo vamos abordar a prática dos Requisitos, que nada mais é do que documentar a necessidade do Usuário.

Admilson Nogueira

Admilson Nogueira - Empresário, estudioso da Língua Japonêsa, Certificado Intel, Graduado em Matemática com Licenciatura em Física, Analista de Sistemas e Programador. Como especialista Unified Modeling Language e Capability Maturity Model, atuou ativamente em diversos Projetos em empresas como: Infraero, Ministério da Aeronáutica, Embraer, Alcoa, Telefonica, Banco do Brasil (Mainframe), entre outras. Atualmente atua como Analista de Negócios da BM&FBOVESPA em São Paulo, focado em BPM (Business Process Management).
Blog:
http://nogueirajr.spaces.live.com.