Vous êtes sur la page 1sur 12

PROJETO DE PROGRAMAS PARA SISTEMAS DE

AUTOMAÇÃO

Unified Modeling Language (UML)

O objetivo da UML é descrever qualquer tipo de sistema, em termos de


diagramas orientado a objetos. Naturalmente, o uso mais comum é para
criar modelos de sistemas de software, mas a UML também é usada para
representar sistemas mecânicos, por exemplo.

UML é uma linguagem padrão para especificar, visualizar, construir e


documentar sistemas de software.

A UML é uma tentativa de padronizar a modelagem orientada a objetos de


uma forma que qualquer sistema, seja qual for o tipo, possa ser modelado
corretamente, com consistência, fácil de se comunicar com outras
aplicações, simples de ser atualizado e compreensível.

A UML é utilizada como uma importante ferramenta para o


desenvolvimento de software orientado a objeto.

UML não é um método para desenvolvimento de software. Não se encontra


na linguagem a descrição dos passos que se deve seguir para se desenvolver
um sistema, nem as etapas para modelar um sistema.

A linguagem é utilizada para representar um sistema por meio de um


conjunto de diagramas, onde cada diagrama se refere a uma visão parcial
do sistema. O conjunto destes diagramas representam o sistema de forma
integrada e coerente.

Os diagramas da UML são utilizados nas fases de análise, projeto e


implementação de um produto de software.

É um linguagem independente de qualquer linguagem de programação em


particular, ou de qualquer processo de desenvolvimento.

A utilização de uma linguagem como essa auxilia na comunicação entre as


diferentes equipes de um projeto, já que utilizam as mesmas ferramentas.

Projeto de programas para sistemas de automação 1


Notas de aula - Unified Modeling Language (UML)
Unified Modeling Language (UML)

SISTEMAS DE SOFTWARE ONDE A UML SE APLICA

Sistemas de Informação:
Armazenar, pesquisar, editar e mostrar informações para os usuários.
Manter grandes quantidades de dados com relacionamentos
complexos, que são guardados em bancos de dados relacionais ou
orientados a objetos.

Sistemas Técnicos:
Manter e controlar equipamentos técnicos como de
telecomunicações, equipamentos militares ou processos industriais.
Eles devem possuir interfaces especiais do equipamento e menos
programação de software de que os sistemas de informação. Sistemas
Técnicos são geralmente sistemas real-time.

Sistemas Real-time Embutidos:


Executados em simples peças de hardware integrados a telefones
celulares, carros, alarmes etc. Estes sistemas implementam
programação de baixo nível e requerem suporte real-time.

Sistemas Distribuídos:
Distribuídos em máquinas onde os dados são transferidos via rede de
comunicação de dados. Requerem mecanismos de comunicação
sincronizados para garantir a integridade dos dados.

Sistemas de Software:
Definem uma infra-estrutura técnica que outros softwares utilizam.
Sistemas Operacionais, bancos de dados, e ações de usuários que
executam ações de baixo nível no hardware, ao mesmo tempo que
disponibilizam interfaces genéricas de uso de outros softwares.

Sistemas de Negócios:
Descrevem os objetivos, especificações (pessoas, computadores etc.),
as regras (leis, estratégias de negócios etc.), e o atual trabalho
desempenhado nos processos do negócio.

Projeto de programas para sistemas de automação 2


Notas de aula - Unified Modeling Language (UML)
Evolução da UML

UML é regulamentada pela OMG (Object Management Group) juntamente


com vários fabricantes, como Rational Software, HP, Oracle, IBM, Unisys,
Mci, os quais pretendem torná-la um padrão de fato, utilizado para
especificar, visualizar, documentar e construir os elementos que compõem
um sistema.

www.omg.org/uml/

Projeto de programas para sistemas de automação 3


Notas de aula - Unified Modeling Language (UML)
Unified Modeling Language (UML)

As partes que compõem a UML são:

• Visões:

Mostram os diferentes aspectos do sistema que está sendo


modelado.
A visão é uma abstração constituindo em uma série de diagramas.
Cada tipo de visão mostra aspectos particulares do sistema.
uma figura completa do sistema poderá ser construída a partir das
diferentes visões.
As visões também servem de ligação entre a linguagem de
modelagem e o método/processo de desenvolvimento.

• Modelos de elementos

Os conceitos usados nos diagramas são modelos de elementos que


representam definições comuns da orientação a objetos (classes,
objetos, mensagens, relacionamentos, heranças, etc).
Um modelo de elemento é definido por sua semântica e define sua
representação gráfica que é mostrada nos diagramas da UML
Um modelo pode existir em diversos tipos de diagramas.

• Mecanismos gerais

Provêm comentários suplementares, informações ou semântica


sobre os elementos que compõem os modelos.
Provêm mecanismos de extensão para adaptar ou estender a UML
para um processo/método, organização ou usuário.

• Diagramas

São os gráficos que descrevem o conteúdo em cada uma das


visões.
Estes diagramas são utilizados em combinação para prover todas
as visões do sistema.

Projeto de programas para sistemas de automação 4


Notas de aula - Unified Modeling Language (UML)
DIAGRAMAS DA UML (VERSÃO 1.4)

Cada diagrama é projetado para permitir aos desenvolvedores e usuários


visualizar o produto de software de diferentes perspectivas e diferentes
graus de abstração.

DIAGRAMA DE CASO DE USO


mostra o relacionamento entre os atores e os casos de uso.

DIAGRAMA DE CLASSE
modela a estrutura das classes e contém os elementos como classes,
pacotes, e objetos.
mostra os relacionamentos como associação, herança, etc.

DIAGRAMA DE SEQÜÊNCIA
mostra a seqüência de tempo dos objetos participantes na interação.
consiste de uma dimensão vertical que representa o tempo e uma
dimensão horizontal que representa os objetos.

DIAGRAMA DE COLABORAÇÃO
mostra a interação organizada em torno dos objetos e suas ligações
com outros objetos.
utiliza numeração para mostrar a seqüência de mensagens.

DIAGRAMA DE ESTADO
mostra a seqüência de estados que um objeto de uma interação
percorre durante sua vida em resposta aos estímulos recebidos.
juntamente à seqüência, mostra as respostas e ações aos estímulos.

DIAGRAMA DE ATIVIDADE
mostra um diagrama de estado especial, focado para o fluxo
direcionado pelo processamento interno.

DIAGRAMA DE COMPONENTE
mostra a estrutura de alto nível dos componentes "packaged" que são
implementados no código
A dependência entre os componentes é mostrada, incluindo os
componentes de código fonte.

DIAGRAMA DE DESDOBRAMENTO (OU DE EXECUÇÃO)


mostra a arquitetura física do hardware e do software no sistema em
tempo de execução.

Projeto de programas para sistemas de automação 5


Notas de aula - Unified Modeling Language (UML)
DETALHAMENTO DAS VISÕES DO SISTEMA

Um sistema é composto por diversos aspectos:


funcionais: estrutura estática e suas interações dinâmicas.
não funcionais: requisitos de tempo, confiabilidade,
desenvolvimento.
organizacionais: organização do trabalho, mapeamento dos módulos
de código.

Portanto o sistema é descrito em um certo número de visões, cada uma


representando uma projeção da descrição completa e mostrando aspectos
particulares do sistema.

Cada visão é descrita por um número de diagramas que contém


informações que dão ênfase aos aspectos particulares do sistema.

Existe em alguns casos uma certa sobreposição entre os diagramas o que


significa que um deste pode fazer parte de mais de uma visão.

As visões que compõem um sistema são:

VISÃO DE VISÃO DE
LÓGICA COMPONENTES

VISÃO DE
CASO DE USO

VISÃO DE VISÃO DE
COMCORRÊNCIA DESDOBRADMENTO

Projeto de programas para sistemas de automação 6


Notas de aula - Unified Modeling Language (UML)
DETALHAMENTO DAS VISÕES DO SISTEMA

VISÃO DE CASO DE USO


Descreve a funcionalidade do sistema desempenhada pelos atores
externos do sistema (usuários).
É a visão inicial, já que seu conteúdo é base do desenvolvimento das
outras visões do sistema.
Utiliza os diagramas: Caso de uso e Seqüência.

VISÃO LÓGICA
Descreve como a funcionalidade do sistema será implementada
Observa e estuda o sistema internamente.
Descreve e especifica a estrutura estática do sistema (classes, objetos,
e relacionamentos) e as colaborações dinâmicas quando os objetos
enviarem mensagens uns para os outros para realizarem as funções
do sistema.
Utiliza os diagramas: Classes, para o modelamento estático e
Estado, Seqüência, Colaboração e atividade para o modelamento
dinâmico.
VISÃO DE COMPONENTES
Descrição da arquitetura física dos componentes de software e suas
dependências, necessárias à implementação dos módulos do sistema.
Utiliza o diagrama de Componentes.

VISÃO DE CONCORRÊNCIA
Trata da divisão do sistema em processos e processadores.
Aspecto não funcional do sistema que permite uma melhor utilização
do ambiente onde o sistema se encontrará, evidenciando os aspectos
de concorrência, paralelismo e permitindo o gerenciamento de
eventos assíncronos.
Uma vez dividido o sistema em linhas de execução de processos
concorrentes (threads), esta visão de concorrência deverá mostrar
como se dá a comunicação e a concorrência entre as threads.
Utiliza os diagramas: Estado, Seqüência, Colaboração e Atividade
para o modelamento dinâmico Componente e desdobramento para
implementação.

VISÃO DE DESDOBRAMENTO
Mostra a organização física do sistema, os computadores, os
periféricos e como eles se conectam entre si.
Utiliza o diagrama de desdobramento (execução)

Projeto de programas para sistemas de automação 7


Notas de aula - Unified Modeling Language (UML)
Projeto de programas para sistemas de automação 8
Notas de aula - Unified Modeling Language (UML)
Projeto de programas para sistemas de automação 9
Notas de aula - Unified Modeling Language (UML)
Processo de Desenvolvimento utilizando a UML

A OMG inclui nas normas da UML uma sugestão de processo ou


metodologia de desenvolvimento de sistemas orientados a objeto, que pode
ser dividido em etapas.

dimensão/tempo

dimensão/componente Concepção Elaboração Construção Transição


Análise de
Requisitos

Nível de
arquitetura
Design
Nível de
classe

Implementação

Teste

Projeto de programas para sistemas de automação 10


Notas de aula - Unified Modeling Language (UML)
Processo de Desenvolvimento utilizando a UML

Inception – Concepção do Sistema


Processo inicial de definição de escopo e requisitos do sistema, dos quais
partirão os casos de uso

Elaboration – Definição do Sistema


Nesta etapa são feitos o refinamento e a documentação dos requisitos do
sistema, estimativas inicias de tempo para execução do projeto,
formalização do contrato, análise de riscos, criação do diagrama de casos
de uso a partir das anotações tomadas na fase anterior (concepção),
modelagem do domínio do sistema através dos diagramas de classe,
atividade, interação, estados, implementação e pacotes e, por fim, a criação
de um protótipo do sistema.

Construction – Construção do Sistema


Num momento inicial desta fase, é sugerido um planejamento total da fase,
refinamento das estimativas de tempo para o projeto e definição do plano
de lançamento da versão inicial do sistema como um todo. Em seguida, a
construção das diversas partes do sistema é feita em etapas, chamadas
iterações, em que cada uma delas em geral compreende o atendimento de
um ou mais (neste caso, semelhantes) casos de uso do sistema.
Na finalização da fase de construção é realizada a integração das várias
etapas para geração de um código final (versão BETA) e é criada a
documentação do sistema.

Transition – Finalização do Sistema


Nesta etapa final do processo de desenvolvimento é feita a otimização final
do código e eventuais correções de bugs, validação do sistema (testes de
verificação de conformidade com a documentação e métricas estabelecidas)
e lançamento da versão final do sistema.

Projeto de programas para sistemas de automação 11


Notas de aula - Unified Modeling Language (UML)
PROJETO DE PROGRAMAS PARA SISTEMAS DE
AUTOMAÇÃO

Abordagem orientada a objeto

Bibliografia:
G. Booch, I. Jacobson e J. Rumbaugh. The Unified Modeling Language User Guide.
Addison-Wesly, 1999

Bruce Powel Douglas, Real Time UML: Adavances in the UML for Real-Time Systems,
Addison-Wesly, 2004, terceira edição

Martin Fowler e Kendall Scott, UML Distiled, Addison-Wesly, 2000, segunda edição

Martin Fowler e Kendall Scott, UML Distiled , Addison-Wesly, 2003 terceira edição

Tutorias de UML na web:


http://www.eng.uerj.br/~araujo/disciplinas/uml/tutorial/page01.html
http://pigseye.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/

Artigos úteis na web:

P. A. Pagliosa, Projeto de Sistemas Orientado a Objetos


http://www.dct.ufms.br/~pagliosa/SystemAnalysis.html

P. Müller, Introduction to object-oriented Programming Using C++


http://www.desy.de/gna/html/cc/material.html

Exemplos de aplicação disponíveis na web


UML By Examples
http://www.geocities.com/SiliconValley/Network/1582/uml-example.htm#problem-
statement

Practical UML A Hands-On Introduction for Developers


http://www.togethersoft.com/services/practical_guides/umlonlinecourse/index.html

Development of a Cruise Control in UML using Rhapsody


www.rt.el.utwente.nl/RTweb/publications/ Msc2001/002R2001.pdf

Projeto de programas para sistemas de automação 12


Notas de aula - Unified Modeling Language (UML)