UML - Unified Modeling Language (Linguagem Unificada de modelagem)
Recife 2014 Escola Tcnica Leiaut Cariele
Gustavo Grauzely da Silva Alves
UML - Unified Modeling Language (Linguagem Unificada de modelagem)
Trabalho apresentado para avaliao parcial da cadeira de Analise de Orientao a Objetos do Curso de Informtica, Nvel Tcnico, da Escola Tcnica Leiaut Cariele de Recife, PE. Orientador: Prof. Cloves Alberto
Recife 2014 Resumo UML (Linguagem de Modelagem Unificada) nada mais do que uma linguagem visual para especificao, construo e documentao de artefatos de software. O foco principal da modelagem a criao de esquemas em UML para entendimento do projeto, ou seja, a UML um modo de padronizar as formas de modelagem. A UML no uma metodologia de desenvolvimento. A UML basicamente permite que as pessoas envolvidas em um projeto possam visualizar os produtos de seus trabalhos em diagramas padronizados. importante distinguir entre um modelo UML e um diagrama UML. Um modelo representado por um ou mais diagramas. Desta forma, um diagrama pode ser visto como uma viso dentro de um modelo. Um diagrama pode ser representado de vrias formas, dependendo de quem ir interpret-lo e servem para capturar diferentes vises do sistema. Abstract UML (Unified Modeling Language) is nothing more than a visual language for specifying, constructing, and documenting software artifacts. The main focus of modeling is the creation of UML diagrams to understand the project, ie, the UML is a way to standardize the forms of modeling. The UML is not a development methodology. The UML basically allows people involved in a project can view the products of their work in standardized diagrams. It is important to distinguish between a UML model and a UML diagram. A model is represented by one or more diagrams. Accordingly, a diagram can be viewed as a vision within a model. A diagram can be represented in various ways, depending on who will play him and serve to capture different views of the system.
Introduo
O inicio dos processos de desenvolvimento de software, ainda com os Mainframes, j existiam metodologias para anlise e desenvolvimento de software. Estas metodologias no especificam a tecnologia e sim modelos administrativos, documentais e organizacionais. Abrangendo desde a concepo at a entrega final da soluo, metodologias baseadas no modelo UML hoje se tornaram o padro entre as empresas e profissionais de informtica. Quando a "Unified Modeling Language" (UML) foi lanada, muitos desenvolvedores da rea da orientao a objetos ficaram entusiasmados j que essa padronizao proposta pela UML era o tipo de fora que eles sempre esperaram. A UML muito mais que a padronizao de uma notao. tambm o desenvolvimento de novos conceitos no normalmente usados. Por isso e muitas outras razes, o bom entendimento da UML no apenas aprender a simbologia e o seu significado, mas tambm significa aprender a modelar orientado a objetos no estado da arte. UML foi desenvolvida por Grady Booch, James Rumbaugh, e Ivar Jacobson que so conhecidos como "os trs amigos". Eles possuem uma extenso conhecimento na rea de modelagem orientado a objetos j que as trs mais conceituadas metodologias de modelagem orientado a objetos foram eles que desenvolveram e a UML a juno do que havia de melhor nestas trs metodologias adicionado novos conceitos e vises da linguagem. Veremos caractersticas de cada uma destas metodologias no desenvolver deste trabalho. Veremos como a UML aborda o carter esttico e dinmico do sistema a ser analisado levando em considerao, j no perodo de modelagem, todas as futuras caractersticas do sistema em relao utilizao de "packages" prprios da linguagem a ser utilizada, utilizao do banco de dados bem como as diversas especificaes do sistema a ser desenvolvido de acordo com as mtricas finais do sistema.
1. O UML Na necessidade de resolver um grande problema do desenvolvimento de novos sistemas utilizando a orientao a objetos nas fases de anlise de requisitos, de sistemas e design que no existia uma notao padronizada e realmente eficaz que abranja qualquer tipo de aplicao que se deseje. Onde cada um possua seus prprios conceitos, grficos e terminologias gerava uma grande confuso. Quando a UML (Unified Modeling Language, em portugus, linguagem unificada de modelagem) foi laada os desenvolvedores da rea da orientao a objetos ficaram entusiasmados, pois a UML tinha a proposta de padronizao. O UML no uma linguagem de programao, e sim uma linguagem de modelagem padro utilizada para modelar sistemas computacionais por meio de paradigma de orientao a objetos, cujo qual nos auxilia a visualizar o desenho e a comunicao entre objetos, definir as caractersticas do software, tais como seus requisitos, seu comportamento, sua estrutura lgica, a dinmica de seus processos e at mesmo suas necessidades fsicas em relao a equipamento sobre o qual o sistema dever ser implantado, permitindo o desenvolvedor uma viso de seu projeto em diagramas padronizado. O UML controlado pelo Object Management Group (OMG) que uma organizao sem fins lucrativos, compostas por representantes de diversas empresas que trabalham no desenvolvimento de software orientado a objetos, que se dedica ao esforo de desenvolver normas relacionadas ao desenvolvimento de software de orientao a objetos.
2.Diagramas
Os diagramas UML podem ser entendidos como uma representao de um sistema com reas com textos que se ligam com outras atravs de linhas continuas ou pontilhadas com decoraes nas pontas. Os diagramas utilizados pela UML so compostos de nove tipos: diagrama de use case, de classes, de objeto, de estado, de sequncia, de colaborao, de atividade, de componente e o de execuo. Todos os sistemas possuem uma estrutura esttica e um comportamento dinmico. A UML suporta modelos estticos (estrutura esttica), dinmicos (comportamento dinmico) e funcional. A Modelagem esttica suportada pelo diagrama de classes e de objetos, que consiste nas classes e seus relacionamentos. Os relacionamentos podem ser de associaes, herana (generalizao), dependncia ou refinamentos. Os modelamentos dinmicos so suportados pelos diagramas de estado, sequncia, colaborao e atividade. E o modelamento funcional suportado pelos diagramas de componente e execuo. Os diagramas em questo so os seguintes: 2.1 Diagramas Estruturais Estticos (Diagramas de Classes) a representao do sistema no conceito de classes como seus atributos e mtodos e suas relaes. Classes podem se relacionar com outras atravs de diversas maneiras: associao (conectadas entre si), dependncia (uma classe depende ou usa outra classe), especializao (uma classe uma especializao de outra classe), ou em pacotes (classes agrupadas por caractersticas similares). 2.2 Diagramas de Componentes Seria um diagrama que mostra o sistema por um lado funcional, mostrando as relaes entre seus componentes e a organizao de seus mdulos durante a execuo, ou seja, descreve os componentes de software e suas dependncias entre si, representando a estrutura do cdigo gerado.
2.3 Diagramas de objeto uma variao do diagrama de classes e utiliza quase o mesma notao, mas a diferena que o diagrama de objetos mostra os objetos que foram instanciados das classes e os objetos so escritos com seus nomes subliados. 2.4 Diagramas de Casos de Uso uma tcnica usada para descrever e definir os requisitos funcionais de um sistema. Para os desenvolvedores os casos de uso so uma ferramenta muito til, pois ele pode ser considerado uma tcnica do tipo tentativa e erro para obter os requisitos do sistema a partir do viso do cliente. 2.5 Diagramas de Sequncia Um diagrama de sequencia descreve a maneira como os objetos colaboram em algum comportamento ao longo do tempo e registra o comportamento de um nico caso de uso. Esse diagrama simples e lgico, com o objetivo de bvios a sequencia e o fluxo de controle, ou seja, mostra a colaborao dinmica entre os vrios objetos de um sistema. O mais importante aspecto deste diagrama que a partir dele percebe-se a sequncia de mensagens enviadas entre os objetos. Ele mostra a interao entre os objetos, alguma coisa que acontecer em um ponto especfico da execuo do sistema. O diagrama de sequncia consiste em um nmero de objetos mostrado em linhas verticais. O decorrer do tempo visualizado observando-se o diagrama no sentido vertical de cima para baixo. As mensagens enviadas por cada objeto so simbolizadas por setas entre os objetos que se relacionam. 2.6 Diagramas de Comunicao (Colaborao) Mostra de maneira semelhante ao diagrama de sequncia, a colaborao dinmica entre os objetos. Normalmente pode-se escolher entre utilizar o diagrama de colaborao ou o diagrama de sequncia. No diagrama de colaborao, alm de mostrar a troca de mensagens entre os objetos, percebe-se tambm os objetos com os seus relacionamentos. A interao de mensagens mostrada em ambos os diagramas. Se a nfase do diagrama for o decorrer do tempo, melhor escolher o diagrama de sequncia, mas se a nfase for o contexto do sistema, melhor dar prioridade ao diagrama de colaborao. 2.7 Diagramas de Estado tipicamente um complemento para a descrio das classes. Este diagrama mostra todos os estados possveis que objetos de uma certa classe podem se encontrar e mostra tambm quais so os eventos do sistemas que provocam tais mudanas. Em um determinado momento um objeto possui um estado particular. No caso de uma pessoa ela pode ser: recm-nascida, criana, adolescente ou adulto. A representao UML que captura este comportamento chama-se diagrama de estado 2.8 Diagramas de Atividade Capturam aes e seus resultados, mostrando o fluxo de atividades em um nico processo. O diagrama mostra como uma atividade depende uma da outra. Eles focam o trabalho executado na implementao de uma operao (mtodo), e suas atividades numa instncia de um objeto. 2.9 Diagramas de Depurao Representa uma coleo de componentes e mostra como esses so distribudos em um ou vrios ns de hardware. 2.1.1 Diagramas de pacotes Representa uma coleo de outros elementos de modelagem e diagramas. 2.1.2 Diagramas de Distribuio Mostram a distribuio de hardware do sistema, identificando os servidores como ns do diagrama e a rede que relaciona os ns. Os componentes de software vo estar mapeados nestes ns. Ele permite apresentar a topologia de uma rede de mquinas'' e qual processo (um componente executvel) cada mquina'' vai rodar. As maquinas'' so chamadas de nos. Um n apresenta uma fonte computacional, sendo normalmente um processador com alguma memria. (VOXXEL) Concluso Como vimos no desenvolvimento do trabalho, o uml uma grande ajuda no desenvolvimento de projetos orientados a objetos , realmente incorporou muitos recursos com do a linguagem uma extensibilidade muito grande. A modelagem visual orientada a objetos agora possui um padro, e esse padro extremamente simples de ser escrito a mo, sendo robusto para especificar e descrever a grande maioria das funes, relacionamentos e tcnicas de desenvolvimento orientado a objetos que hoje so utilizados. Sem dvida alguma a UML facilitar s grandes empresas de desenvolvimento de software uma maior comunicao e aproveitamento dos modelos desenvolvidos pelos seus vrios analistas envolvidos no processo de produo de software j que a linguagem que ser utilizada por todos ser a mesma, acabando assim com qualquer problema de interpretao e mal-entendimento de modelos criados por outros desenvolvedores. Os modelos criados hoje podero ser facilmente analisados por futuras geraes de desenvolvedores acabando com a diversidade de tipos de nomenclaturas de modelos, o grande empecilho do desenvolvimento de softwares orientados a objetos.