1. Um processo para utilizar a UML
A UML contém notações e regras que tornam possível expressar modelos orientados a objetos. Mas ela não prescreve como o trabalho tem que ser feito, ou seja, não possui um processo de como o trabalho tem que ser desenvolvido. Já que a UML foi desenvolvida para ser usada em diversos métodos de desenvolvimento. Para usar a UML com sucesso é necessário adotar algum tipo de método de desenvolvimento, especialmente em sistema de grande porte onde a organização de tarefas é essencial. A utilização de um processo de desenvolvimento torna mais eficiente calcular o progresso do projeto, controlar e melhorar o trabalho. Um processo de desenvolvimento descreve "o que fazer", "como fazer", "quando fazer", e "porque deve ser feito". Este também descreve um número de atividades que devem ser executadas em uma certa ordem. Quando são definidas e relacionadas as atividades de um processo, um objetivo específico é alcançado. Em seu uso normal, a palavra "processo" significa uma relação de atividades que devem ser executadas em uma certa ordem sem importar o objetivo, regras ou material a ser usado. No processo de desenvolvimento da engenharia de software, é necessário saber o objetivo final do processo, definir regras a serem seguidas e adotar um método fixo de desenvolvimento. Um método (processo) tradicional de desenvolvimento orientado a objetos é dividido em análise de requisitos, análise, design (projeto), implementação, e testes. A análise de requisitos captura as necessidades básicas funcionais e não-funcionais do sistema que deve ser desenvolvido. A análise modela o problema principal (classes, objetos) e cria um modelo ideal do sistema sem levar em conta requisitos técnicos do sistema. O design expande e adapta os modelos da análise para um ambiente técnico, onde as soluções técnicas são trabalhadas em detalhes. A implementação consiste em codificar em linguagem de programação e banco de dados os modelos criados. E as atividades de testes devem testar o sistema em diferentes níveis, verificando se o mesmo corresponde as expectativas do usuário. Existe um processo desenvolvido pela Rational Inc., mesma empresa que desenvolveu a UML, que monta duas visões do desenvolvimento de um sistema: visão gerencial e técnica. A visão técnica utiliza as tradicionais atividades de análise, design e implementação, enquanto a visão gerencial utiliza as seguintes fases no desenvolvimento de cada geração do sistema. ·         Início: Define o escopo e objetivo do projeto; ·         Elaboração: Desenvolve o produto em detalhes através de uma série de interações. Isto envolve mais análise, design e programação; ·         Transição: Gera o sistema para o usuário final, incluindo as atividades de marketing, suporte, documentação e treinamento. Cada fase no ciclo é executada em séries de interações que podem sobrepor outras fases. Cada interação consiste tipicamente em atividades tradicionais como análise e design, mas em diferentes proporções dependendo da fase em que esteja a geração do sistema em desenvolvimento. Ferramentas modernas devem dar suporte não apenas para linguagens de modelagem e programação, mas devem suportar um método de desenvolvimento de sistemas também. Isso inclui conhecimento das fases em um processo, ajuda online, e aconselhamentos do que fazer em cada fase do desenvolvimento, suporte a desenvolvimento interativo e fácil integração com outras ferramentas.