ANÁLISE ORIENTADA A OBJETOS
Ago/2010
Professor Mário Dantas
Ementa da Disciplina
1.
A UML - Linguagem de Modelagem Unificada
 História
 Métodos
que originaram a UML
 Elementos
 Aplicação
 Processos
 Ferramentas de Apoio
2.
Engenharia de Requisitos

Definição e Etapas
Ementa da Disciplina
3.
Diagramas:
 Caso
de Uso: Aplicação e Notação
 Atividade: Aplicação e Notação
 Classes: Aplicação e Notação
 Objeto: Uso, Notação
 Interação - Seqüência: Aplicação e Notação
 Interação – Interação Geral
 Estrutura Composta: Uso, Notação e Aplicação
 Estados: Uso, Notação e Aplicação
 Demais Diagramas da UML 2.0 e extensões: Uso,
Notação
Bibliografia Básica



WAZLAWICK, Raul Sidnei. Análise e Projeto de
Sistemas de Informação Orientados a Objetos,
Campus, 2004.
RUMBAUGH, James e BLAHA, Michael. Modelagem
e projetos baseados em objetos com UML 2.
Campus, 2006.
MEDEIROS, Ernani. Desenvolvendo Software com
UML 2.0 Definitivo. Makron Books, 2004.
Bibliografia Complementar




TAFNER, Malcon A. & Carlos Henrique Correia.
Análise Orientada a Objetos. 2 Ed., Visual Books,
2006.
MELO, Ana Cristina. Exercitando Modelagem em
UML. Brasport, 2006.
BEZERRA, Eduardo. Princípio de Análise e Projetos
de Sistemas com UML. Elsevier - Campus, 2006.
PENDER, Tom. UML: a Bíblia. 1 ed., Campus, 2004.
Aula 01 - Agenda



Grandes Verdades Sobre Software
Conceitos Fundamentais
A UML - Linguagem de Modelagem Unificada
 História
 Métodos
que originaram a UML
 Elementos
Histórico

Anos 60 – 70
 COBOL,
FORTRAN E C
 Métodos de Análise e Projeto Estruturado

Final dos anos 60
 Simula
(primeira linguagem a incorporar elementos de
OO)

Anos 80 e início dos anos 90
 ADA,
Smalltalk e C++
 Primeiros métodos de OO
Histórico

Restante dos anos 90: início da atração por OO
 Java,
UML e Unified Process
 Proliferação de métodos OO
 Método:
notação + atividades
Métodos OO Precursores

1989 – Wirfs-Brock
 Cartões
CRC ( Classe – Responsabilidade –
Colaborador)

1991 – Coad / Yourdon
 OOA

e OOD
1991 – Grady Booch
 Método

BOOCH
1991 – James Rumbaugh
 Método
OMT (Object Modeling Technique)
Métodos OO Precursores

1992 – Ivar Jacobson
 OBJECTORY

OOSE
1994 – Coleman
 Método
Fusion (Mistura de conceitos presentes nos
métodos Booch, OMT, CRC e Métodos Formais).
Antes da UML


Vários métodos surgem entre 89 e 94 (“Guerra dos
métodos”)
Novas versões dos métodos, incorporando técnicas
uns dos outros (OOSE, OMT-2, Booch’93)
 Reconhecia-se
que havia pontos mais fortes em cada
um dos métodos

Parceria entre Booch e Rumbaugh (Rational) –1994
 Unified
Method (UM)
Antes da UML

Rational a incorpora a Objective Systems
(Objectory) de Jacobson – 1995
 Parceria
Booch/Rumbaugh estendida com Jacobson
 Unified Modeling Language (UML)
Surgimento da UML
BOOCH
UML
 Diagrama de Estados
 Diagrama de Objetos
(Colaboração)
 Diagrama de Processo
(Desenvolvimento)
 Diagrama de Módulos
(Componentes)
OMT
 Diagrama de Estados
 Diagrama de Classes
OOSE




Use Case
Subsistemas (Package)
Diagrama de Interações
MiniEspecificação
Surgimento da UML
Mais Contribuições
UML

A UML - Unified Modeling Language é uma
linguagem para especificação, documentação,
visualização e desenvolvimento de sistemas
orientados a objetos. Por meio de seus diagramas é
possível representar sistemas de softwares sob
diversas perspectivas de visualização.
UML

A 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.
A modelagem visual com UML





Permite a compreensão de detalhes de sistemas
complexos;
Melhora a comunicação entre a equipe de projeto;
Fornece base não ambígua para a implementação;
Permite a formulação de alternativas de solução e
sua comparação a baixo custo;
Captura os requisitos de modo preciso.
A Estrutura de Conceitos do UML
“Elementos”
Relações (relacionam “elementos”)
Diagramas (agrupam “elementos”)
A EC do UML: Elementos

Elementos de Estrutura

Elementos de Comportamento

Elementos de Agrupamento

Elementos de Anotação
A EC do UML: Elementos
Elementos de Estrutura
A EC do UML: Elementos
A EC do UML: Relações
Tipos de Relações
A EC do UML: Diagramas
Visão Funcional
 Diagrama de casos de utilização
 Diagrama de atividade
Visão Dinâmica
 Diagrama de máquina de
estados (state machine diagram)
 Diagrama de interação




Diagrama de sequência
Diagrama de comunicação
Diagrama de visão geral da
interação (interaction overview
diagram)
Diagrama temporal (timing
diagram)
Visão Estática ou Estrutural

Diagrama de pacotes

Diagrama de classes

Diagrama de objetos

Diagrama de estrutura
composta (composite structure
diagram)

Diagrama de componentes

Diagrama de instalação
A EC do UML: Exemplos
Diagrama de Casos de Utilização: representa a visão do sistema na
perspectiva dos seus utilizadores
(e.g., UAnónimo no contexto do WebGTTI)
A EC do UML: Exemplos
Diagrama de Classes: especifica a estrutura estática de um sistema segundo a
abordagem baseada em objectos (e.g., classes do WebGTTI)
A EC do UML: Exemplos
Diagrama de Sequências:
especifica a dinâmica ou o
comportamento de um
sistema
(e.g., registo de membro
no WebGTTI)
A EC do UML: Exemplos
Exemplo de um
Diagrama de Atividades
(processo de negócio
“Fazer Proposta”)
A EC do UML: Exemplos
Diagrama de Distribuição
(e.g., arquitectura hardware de um sistema distribuído)
A EC do UML: Exemplos
Diagrama de (Transição de) Estados
(e.g., da classe “Termo” do WebGTTI)
Aplicação

A UML é uma linguagem para:
 Visualização
 Especificação
 Construção
 Documentação

A UML fornece um método padrão para descrever
um sistema tendo em conta aspectos conceituais
e/ou concretos.
Visualização



Modelos explícitos facilitam a comunicação
Algumas estruturas transcendem o que pode ser
representado por uma linguagem de programação
Cada símbolo tem uma semântica bem definida.
Especificação

A notação UML permite a especificação das
decisões importantes em nível de análise, projeto,
implementação e implantação
Construção

Forward engineering
 Geração

Background engineering
 Geração

de código com base no modelo
do modelo com base no código
Round-Trip engineering
 Ciclo
iterativo de desenvolvimento com geração de
código a parir de um modelo e atualização do modelo
com base no código.
Documentação

A notação UML permite a criação de
documentação do artefatos existentes no sistema:
 Conceitos
do problema
 Cenários de instalação

É possível acrescentar links para documentação
externa:
 Documentos
de requisitos, planos de testes, ...
Razões para modelar




Comunicar a estrutura e o comportamento desejado
(desejável) para o sistema
Visualizar e controlar a arquitetura do sistema
Compreender o sistema e expor oportunidade de
simplificação e reutilização
...
Triângulo para o sucesso

Este conceito pertence a Terry Quatrani, autora do
livro: Modelagem Visual com Rational Rose 2000 e
UML.
Notação
Processo
Ferramenta
Triângulo para o sucesso




Segundo Terry, para um projeto bem sucedido é
necessário conhecer bem três coisas: Notação,
Processo e Ferramenta.
Você pode saber uma notação, mas se não souber
usar (Processar), terá falha;
Você pode ter um ótimo processo, mas se não
souber comunicar (Notação), terá falha
Se não souber documentar seu trabalho
(Ferramenta), terá falha.
Processo de Desenvolvimento

O que é um processo de desenvolvimento?



É a definição de quem faz o que, quando e como, para atingir
um certo alvo.
UML é uma linguagem de modelagem, não é uma
metodologia. Não se consegue fazer uma boa
modelagem sem conhecer processos.
Linguagem de modelagem + processo de
desenvolvimento = método (ou metodologia) de
desenvolvimento.
Processo de Desenvolvimento

As grandes fases de qualquer processo de
desenvolvimento são:
 Planejamento
e elaboração
 Planejamento,
definição de requisitos, construção de
protótipos (opcional)
 Construção
do sistema (inclui codificação e testes)
 Implantação (colocar em produção, treinar usuários, ...)
Processo de Desenvolvimento


UML não depende de processo. Você deve escolher
o que for adequado ao seu projeto.
Existem diversos modelos, e esse modelos são
influenciados por alguns fatores como:
 Tipo
de software que será desenvolvido (real-time,
sistema de informação, etc.)
 Escala (Um desenvolvedor, equipe pequena, etc.)
Processo em cascata
Processo Unificado


O processo unificado (PU) de desenvolvimento de
software é o conjunto de atividades necessárias
para transformar requisitos do usuário em um
sistema de software.
É fundamental na visão de que o avanço de um
projeto deve estar baseado na construção de
artefatos de software, e não apenas em
documentação.
Processo Unificado

Principais Características:
 Dirigido
por casos de uso.
 Descrições
de casos de uso e seus diagramas embasam a
construção do software.
 Centrado
na arquitetura.
O
documento visão, diagrama de componentes e
implantação, diagrama de interação e diagrama de classes
(modelo de dados) fornecem a perspectivas da arquitetura
do software.
 Interativo
e incremental.
Fases do Processo Unificado
• Visão do Software
• Tecnologia
• Riscos
• Áreas críticas
Concepção
Elaboração
• Requisitos em
detalhes
• Protótipos
• Codificação
• Banco de Dados
Construção
Transição
• Avaliação do
software
• Versão de
Produção
Workflows do PU
Requisitos
Testes
Implementação
Análise
Projeto
Processo Unificado
Ferramentas



O que são Ferramentas CASE?
A sigla CASE significa “Computer-Aided Software
Engineering”.
Traduzindo para um bom português: “Engenharia
de Software Auxiliada por Computador”.
Ferramentas

1.
2.
3.
As ferramentas se dividem em três categorias. São
elas:
Lower CASE - ferramentas de codificação (frontend);
Upper CASE - ferramentas de análise, projeto e
implementação;
Integrated CASE - união de Upper e Lower CASE.
Ferramentas



Como escolher a ferramenta?
O primeiro passo é saber qual será o uso da
ferramenta na sua empresa. Isto é, ferramenta
para codificação ou ferramenta para análise.
Outro fator importante é que a ferramenta deve
ser aderente ao conceitos de trabalho na sua
empresa.Como estes conceitos e técnicas evoluem
no tempo.
Ferramentas

Questões importantes para escolha da ferramenta:
1.
2.
3.
O time de desenvolvimento está preparado
tecnicamente para trabalhar com ferramentas case?
Preciso capacitar os recursos de minha empresa?
A metodologia de desenvolvimento em minha
empresa está “amadurecida”?
Ferramentas

Na prática, as ferramentas existentes no mercado
possuem as características das quais destacam-se os
seguintes pontos:
Desenvolvidas sobre uma arquitetura inteligente
(customizável);
 Possuem "facilitadores" para auxiliar nas tarefas
repetitivas;
 Verificação da consistência através de regras específicas;
 Geração de relatórios para acompanhamento do trabalho;
 Interfaces com outros aplicativos de desenvolvimento.

Ferramentas
“Uma ferramenta CASE não é a solução para todos
os problemas da organização. A organização deve
ter certeza de estar pronta para a nova ferramenta.
Desta forma uma ferramenta só deveria ser
selecionada após a definição do processo de
desenvolvimento, dos métodos e de ter sido utilizada
num projeto piloto.” (Reid).
Ferramentas

Comerciais e “Free Editions”
 MagicDraw
($ 1,599,00)
 Together Architect ( $ 11.500,00)
 Poseidon ($ 875,00 )
 Enterprise Architect ($ 2.500,00)
 Rose Technical Developer ($6,880.00)
 Jude/Astah ($280,00 1usuário/1ano)
 Omondo Eclipse UML ($ 84,900.00 / 20 usuários)
 Visual Paradigm ($ 699)
Fonte: http://www.objectsbydesign.com/tools/umltools_byPrice.html
Ferramentas

Livres (BSD e GPL)
 Umbrello
 ArgoUML
 Dia
 BOUML
 Fajuba
 StarUML



Dia é um programa baseado em gtk+ para criação
do diagrama, liberado sob a licença GPL.
É parte do projeto Gnome.
Atualmente tem objetos especiais de lógica,
entidade e relacionamento, diagramas UML,
fluxogramas, diagramas da rede, e circuitos simples
entre outros.
ArgoUML



ArgoUML é uma ferramenta CASE baseada na
notação UML (Unified Modeling Language).
Foi
desenvolvido
pela
comunidade
de
desenvolvedores de código livre Tigris vinculada a
Universidade da California, Berkeley.
Sua interface é bem completa o que a torna um
pouco complexa de manipular.


Umbrello e um Software de Modelagem UML, que
e integrado ao projeto KDE.
Este Software é utilizado para modelar o próprio
projeto do KDE por a grande de seus
desenvolvedores que utilizam UML.



JUDE é uma ferramenta profissional de modelagem
para sistemas a qual suporta UML, diagrama entidade
relacionamento, Flowchart, CRUD, Mini Mapas e
Diagrama de Fluxo de Dados.
Permite também a conversão entre modelos UML, ER
Diagramas, Flowcharts, fluxo de dados e mini mapas.
O nome do programa é um acrônimo de Java and UML
Developers
Environment
(Ambiente
para
Desenvolvedores UML e Java).
Download

Aula 01 – Introdução