quinta-feira, 10 de maio de 2012

INTRODUÇÃO A UML



A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira geração. A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos.

Basicamente, a UML permite que desenvolvedores visualizem os produtos de seus trabalhos em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML.

É importante distinguir entre um modelo UML e um diagrama (ou conjunto de diagramas) de UML. O último é uma representação gráfica da informação do primeiro, mas o primeiro pode existir independentemente. O XMI (XML Metadata Interchange) na sua versão corrente disponibiliza troca de modelos mas não de diagramas.

Um pouco da historia da UML:

Quando vários autores propunham metodologias para o desenvolvimento de software
orientado a objetos, três estudiosos se juntaram e criaram uma linguagem unificada de
modelagem, a UML. Estamos falando dos norte-americanos Grady Booch, e James
Rumbaugh e do suíço Ivar Jacobson, que, em 1995, lançaram a UML 0.8 , unificando
os respectivos métodos, os quais, na verdade, estavam confluindo naturalmente:

• Método de Booch, desenvolvido por Grady Booch, da Rational Software Corporation,
expressivo principalmente nas fases de projeto e construção de sistemas;

• OOSE (Object-Oriented Software Engineering), de Ivar Jacobson, que fornecia
excelente suporte para casos de usos como forma de controlar a captura
de requisitos, a análise e o projeto de alto nível;

• OMT (Object Modeling Technique), de James Rumbaught, que era mais
útil para análise e sistemas de informações com o uso intensivo de dados.

Mas podemos dizer que essa história começou bem antes, nos anos 1960, com
Alan Curtis Kay, na Universidade de Utah, Estados Unidos. Considerado um
dos pais da orientação a objetos com sua “analogia algébrico-biológica”, Kay
postulou que o computador ideal deveria funcionar como um organismo vivo,
isto é, cada célula, mesmo autônoma, deveria se relacionar com outras a fi m de
alcançar um objetivo. As células poderiam também se reagrupar para resolver
outros problemas ou desempenhar outras funções. Kay, que era pesquisador da
Xerox quando surgiu a linguagem Smalltalk, no centro de pesquisas da empresa,
em 1970, foi o primeiro a usar o termo orientação a objetos.
Por oferecer ferramentas que podem ser utilizadas em todas as fases do desenvolvimento
de software, a UML acabou se tornando padrão de desenvolvimento de
software orientado a objetos.

Entendendo o Diagrama de Casos de Uso

O diagrama de casos de uso é um diagrama da UML cujo objetivo é representar um requisito do sistema que será automatizado. Considere como requisito uma necessidade do sistema.
Simbologia de um caso de uso (requisito que será automatizado):
casos_de_uso.jpg
Usamos atores para representar as entidades que interagem com o sistema. Podem ser usuários, máquinas, sensores, etc… Um ator representa um papel no sistema, mas um papel pode ser representando por vários atores.
Simbologia de um ator:

Simbologia de um Ator

Exemplo de um diagrama de casos de uso (sistema bancário):

Exemplo de um Diagrama de Casos de Uso
O ator cliente executará os casos de uso “realizar saque” e “consultar saldo”, enquanto o gerente poderá iteragir com os casos de uso “abrir conta” e “vender seguro”.
Relacionamentos entre casos de uso
Os casos de usos podem se relacionar de duas formas:
include: Quando um caso de uso “A” inclui (include) outro caso de uso “B”. Isto implica que ao executar o caso de uso “A” executa-se também o caso de uso “B”.
Relacionamento include
extends: Quando um caso de uso “A” tem um relacionamento do tipo extends com outro caso de uso “B”. Implica que ao executar o caso de uso “A” não necessáriamente “B” será exeutado.
Relacionamento extends

Relacionamento entre Atores
O ator pode herdar as funcionalidades (casos de uso) de outro ator.
Relacionamento entre atores
——————————————————