Você está na página 1de 56

ANÁLISE DE

DESENVOLVIMENTO
ORIENTADA A
OBJETOS
Profº. Carvalho
Aula 1
Origem da UML
Princípio e Características da
UML
Evolução e Versões da UML
A UML na Modelagem de
Sistemas
Origem da UML
Origem da UML
 A origem da UML (Unified Modeling Language) está relacionada a um esforço
para unificar e padronizar as diversas metodologias de modelagem orientada a
objetos que surgiram nos anos 80 e 90. A UML foi desenvolvida por três
renomados especialistas em engenharia de software: Grady Booch, James
Rumbaugh e Ivar Jacobson. Cada um desses especialistas trouxe suas próprias
contribuições para a linguagem, resultando em uma abordagem mais completa e
abrangente para a modelagem de sistemas de software.
Origem da UML
 Grady Booch: Ele é conhecido por ter desenvolvido o método Booch, que foi um
dos primeiros métodos de modelagem orientada a objetos. O método Booch
enfatizava a análise e o design do sistema em termos de classes e objetos. Grady
Booch trouxe para a UML a ideia de classificação das relações entre classes e a
notação gráfica para representar essas relações.
Origem da UML
 James Rumbaugh: Rumbaugh trouxe sua experiência com o método OMT (Object
Modeling Technique), que focava em modelar os aspectos estruturais e
comportamentais de um sistema. Suas contribuições para a UML incluem a noção
de diagramas de estados para modelar comportamentos e a ideia de diagramas de
colaboração para representar interações entre objetos.
Origem da UML
 Ivar Jacobson: Ele trouxe o método OOSE (Object-Oriented Software
Engineering), que se concentra em modelar os requisitos do sistema e como eles se
relacionam com as funcionalidades do software. Ivar Jacobson introduziu o
conceito de casos de uso e colaborou para incorporar essa abordagem à UML,
tornando-a mais centrada no usuário e na funcionalidade.
Origem da UML
 A necessidade de unificar essas metodologias surgiu da demanda por uma
linguagem de modelagem mais abrangente e universalmente compreensível. À
medida que sistemas de software se tornaram mais complexos e as equipes de
desenvolvimento se tornaram mais diversas, a necessidade de uma linguagem
comum para comunicar e documentar os projetos se tornou evidente. A UML surgiu
como uma resposta a essa necessidade, unificando as melhores práticas desses
especialistas em uma única linguagem.
Origem da UML
 A UML 1.0 foi introduzida em 1997 como um resultado dessa colaboração,
representando uma linguagem de modelagem visual que abrangia uma ampla gama
de conceitos de modelagem orientada a objetos. Desde então, a UML evoluiu com
várias versões, incorporando feedback da comunidade de desenvolvimento de
software e se adaptando às mudanças tecnológicas e práticas de engenharia de
software ao longo dos anos.
Origem da UML
 Após a introdução da UML 1.0 em 1997, a linguagem passou a ser amplamente
adotada pela indústria de desenvolvimento de software. A padronização da UML
pela Object Management Group (OMG) ajudou a consolidar sua posição como a
principal linguagem de modelagem orientada a objetos. A adoção da UML trouxe
vários benefícios para a engenharia de software:
Origem da UML
 Comunicação Aprimorada: A UML forneceu uma linguagem comum que permitia
que desenvolvedores, analistas, arquitetos e stakeholders discutissem e
entendessem os sistemas de software de maneira mais eficaz. Os diagramas visuais
facilitaram a comunicação entre as partes envolvidas.
 Documentação Abundante: Com a UML, os sistemas puderam ser documentados
de maneira mais abrangente e detalhada. Diagramas como o de classes, sequência e
estados tornaram a documentação mais compreensível e prática.
Origem da UML
 Design Mais Sólido: A UML ajudou a estabelecer práticas sólidas de análise e
design orientado a objetos. Ela permitiu que os desenvolvedores visualizassem e
planejassem sistemas de software de maneira estruturada e modular.
 Padronização Global: Como uma linguagem padronizada, a UML permitiu que
desenvolvedores de diferentes partes do mundo se comunicassem e colaborassem
em projetos de software, independentemente de sua localização.
Origem da UML
 Evolução Contínua: A UML continuou a evoluir para se adaptar às novas
tendências da indústria de software. A UML 2.0, lançada em 2005, introduziu
conceitos avançados e melhorias na notação. Ela também incluiu suporte para
modelagem orientada a serviços e sistemas distribuídos.
Origem da UML
 Além do Software: A UML também encontrou aplicação em áreas além do
desenvolvimento de software, como engenharia de sistemas, modelagem de
processos de negócios e até mesmo em design de hardware.
 UML Atualmente: A UML continua sendo uma linguagem de modelagem poderosa
e amplamente utilizada. Ela não apenas permanece relevante para a modelagem de
software, mas também se adapta a novas metodologias ágeis e práticas de
desenvolvimento.
Origem da UML
 Em resumo, a origem da UML foi uma resposta à necessidade de uma linguagem
comum e abrangente para modelagem orientada a objetos. Ela trouxe um novo
nível de padronização, comunicação e documentação à engenharia de software,
influenciando positivamente a forma como os sistemas são projetados,
implementados e mantidos.
Princípio e Características da UML
Princípio da UML: Notação Gráfica
Unificada
 O princípio fundamental da UML é fornecer uma notação gráfica unificada para a
modelagem de sistemas complexos, sejam eles de software ou de outros domínios.
Essa notação visual utiliza uma variedade de diagramas para representar diferentes
aspectos e perspectivas do sistema, facilitando a comunicação, análise e
documentação entre membros da equipe e stakeholders.
Princípio da UML: Notação Gráfica
Unificada
 A notação gráfica unificada da UML tem vários objetivos e benefícios:
 1. Comunicação Clareza: A notação visual é altamente compreensível e supera as
barreiras linguísticas e técnicas. Equipes multidisciplinares podem compartilhar ideias e
compreender complexidades do sistema por meio de diagramas.

 2.Agrupamento Lógico: A UML organiza os elementos do sistema em categorias


lógicas, como classes, objetos, estados e fluxos. Isso permite que os modeladores
representem e entendam diferentes partes do sistema de maneira estruturada.
Princípio da UML: Notação Gráfica
Unificada
 A notação gráfica unificada da UML tem vários objetivos e benefícios:
 3.Visão Geral e Detalhes: A notação da UML permite que você apresente uma visão
geral do sistema por meio de diagramas de contexto ou de casos de uso, ao mesmo
tempo em que pode mergulhar em detalhes técnicos usando diagramas de estrutura e
comportamento.

 4.Representação da Dinâmica: Além da estrutura estática, a UML representa o


comportamento dinâmico do sistema, como sequências de eventos, transições de
estados e interações entre objetos. Isso ajuda a modelar como o sistema realmente
funciona.
Princípio da UML: Notação Gráfica
Unificada
 A notação gráfica unificada da UML tem vários objetivos e benefícios:
 5.Documentação Completa: A notação gráfica da UML permite a criação de
documentação visual abrangente, que vai desde diagramas de alto nível até detalhes
específicos. Isso é valioso para compreensão, aprendizado, manutenção e até mesmo
auditorias.

 6.Apoio a Padrões de Projeto: A UML não apenas permite modelar sistemas, mas
também ajuda a identificar e comunicar padrões de projeto. Diagramas de colaboração e
sequência, por exemplo, podem esclarecer como os objetos interagem seguindo padrões
conhecidos.
Princípio da UML: Notação Gráfica
Unificada
 A notação gráfica unificada da UML tem vários objetivos e benefícios:
 7. Design e Análise Iterativos: A notação visual da UML facilita a modelagem
iterativa. À medida que o sistema evolui, você pode refinar os diagramas existentes,
adicionar novos detalhes e garantir que as representações estejam sempre alinhadas com
as mudanças no sistema.

 8.Suporte à Decisão e Planejamento: Diagramas UML ajudam as equipes a tomar


decisões informadas e planejar etapas futuras do projeto. Eles oferecem uma visão clara
das interações, estrutura e comportamento do sistema.
Princípio da UML: Notação Gráfica
Unificada
 O princípio da notação gráfica unificada é a espinha dorsal da UML, permitindo
que engenheiros, analistas e stakeholders compreendam e colaborem na modelagem
de sistemas complexos. É essa notação visual que faz da UML uma linguagem
poderosa e eficaz para a engenharia de software e outros campos relacionados.
Características da UML:
 1. Notação Visual Padrão: A UML é conhecida por sua notação visual
padronizada, que utiliza símbolos gráficos e diagramas para representar elementos e
relações dos sistemas. Isso torna a comunicação mais clara e eficaz, permitindo que
as equipes compreendam rapidamente os conceitos e interações do sistema.
Características da UML:
 2. Diagramas para Diferentes Perspectivas: A UML oferece uma variedade de
diagramas, cada um focando em uma perspectiva específica do sistema. Diagramas
estruturais, como de classes e componentes, mostram a organização de elementos,
enquanto diagramas de comportamento, como de sequência e estado, exibem como
os elementos interagem.
Características da UML:
 3. Apoio à Modelagem Abstrata e Detalhada: A UML permite modelagem em
diferentes níveis de abstração. Ela pode ser usada para representar visões de alto
nível do sistema, bem como detalhes técnicos específicos. Isso é valioso para
diferentes públicos, desde stakeholders até desenvolvedores.
Características da UML:
 4. Flexibilidade na Escolha de Diagramas: A UML não prescreve quais
diagramas devem ser usados em um projeto. Isso permite que as equipes escolham
os diagramas mais relevantes para seus objetivos e contexto. Por exemplo, um
projeto pode usar diagramas de caso de uso, diagramas de classes e diagramas de
sequência, dependendo das necessidades.
Características da UML:
 5. Abordagem Multidimensional: Os diagramas UML representam diferentes
dimensões do sistema, incluindo estrutura, comportamento e interação. Isso oferece
uma visão completa e multifacetada, permitindo que as equipes analisem e
entendam o sistema de maneira profunda.
Características da UML:
 6. Suporte à Modelagem de Processos e Negócios: A UML não se limita à
modelagem de software. Ela pode ser usada para modelar processos de negócios,
fluxos de trabalho e até interações humanas. Isso a torna uma ferramenta versátil
para diversos domínios.
Características da UML:
 7. Documentação Viva: A UML oferece uma documentação dinâmica que
pode ser atualizada à medida que o sistema evolui. Isso é especialmente útil para
manutenção e evolução contínua, permitindo que a documentação permaneça
alinhada com a realidade do sistema.
Características da UML:
 8. Apoio a Padrões e Melhores Práticas: A UML promove a utilização de
padrões de design comuns. Ela ajuda a identificar e comunicar padrões de projeto,
permitindo que as equipes aproveitem soluções comprovadas para problemas de
design.
Características da UML:
 9. Colaboração e Comunicação Eficientes: A UML é uma linguagem comum
que equipes de diferentes disciplinas podem entender e usar. Ela promove a
colaboração, ajudando a evitar mal-entendidos e a alinhar as expectativas entre os
membros da equipe.
Características da UML:
 10. Documentação para Testes e Validação: A UML fornece informações
detalhadas sobre como o sistema deve se comportar. Isso é valioso para a criação de
cenários de teste e validação, garantindo que o sistema atenda aos requisitos
estabelecidos.
Características da UML:
 Em resumo, as características da UML fazem dela uma linguagem de modelagem
altamente eficaz e versátil. Ela oferece um conjunto abrangente de ferramentas para
representar sistemas complexos de maneira clara e compreensível, promovendo a
colaboração, comunicação e tomada de decisões informadas em todos os estágios
do desenvolvimento.
Evolução e Versões da UML
Evolução e Versões da UML
 1. UML 1.x (1997-2001): A primeira versão da UML estabeleceu os
fundamentos da linguagem e reuniu os principais conceitos de modelagem
orientada a objetos em um conjunto de diagramas padronizados. Isso incluía
diagramas de classes, objetos, estados, sequência, colaboração e atividades. Embora
tenha sido um marco importante na padronização da modelagem, havia espaço para
aprimoramentos na notação e na clareza da representação.
Evolução e Versões da UML
 2. UML 2.0 (2005): A UML 2.0 foi uma revisão significativa que trouxe uma
série de avanços. Ela introduziu o conceito de "profiles", permitindo que a UML
fosse adaptada para diferentes domínios, como engenharia de sistemas e
desenvolvimento de software em tempo real. A adição de novos diagramas, como
diagramas de atividades, diagramas de componentes e diagramas de implantação,
aumentou a gama de representações possíveis.
Evolução e Versões da UML
 3. UML 2.1 (2007): Esta versão trouxe melhorias em várias áreas, incluindo
clareza na notação e refinamentos em diagramas existentes. Além disso, adicionou
suporte a mais recursos e aspectos da modelagem, garantindo uma experiência mais
completa para os modeladores.
Evolução e Versões da UML
 4. UML 2.2 (2009): O foco da UML 2.2 foi em sistemas distribuídos e de
larga escala. Introduziu melhorias nos diagramas de sequência para modelar
cenários de interação mais complexos, que envolviam múltiplos sistemas e
componentes.
Evolução e Versões da UML
 5. UML 2.3 (2010): Nesta versão, a UML avançou na representação de
restrições e valores literais. Isso permitiu que os modeladores fossem mais precisos
na descrição dos elementos do sistema e em suas características.
Evolução e Versões da UML
 6. UML 2.4 (2011): O foco foi na melhoria dos diagramas de perfil. Isso
ajudou a tornar a criação de perfis personalizados mais intuitiva e eficaz,
permitindo que as equipes adaptassem a UML para suas necessidades específicas.
Evolução e Versões da UML
 7. UML 2.5 (2015): Uma das versões mais substanciais, a UML 2.5 trouxe
melhorias em vários aspectos. Introduziu os diagramas de estrutura composta, que
permitem representar partes internas de um elemento em detalhes. Também refinou
os diagramas de colaboração e adicionou suporte para casos de uso expandidos,
permitindo capturar mais informações sobre a interação entre atores e casos de uso.
Evolução e Versões da UML
 8. UML 2.5.1 (2017): Essa atualização trouxe mais refinamentos na notação e
correções, garantindo a precisão e consistência da UML. Pequenas melhorias foram
feitas em vários diagramas para torná-los mais compreensíveis e úteis.
Evolução e Versões da UML
 9. UML 2.5.2 (2020): A versão mais recente mantém o foco em melhorias
incrementais. Ela continuou a esclarecer certos aspectos da notação e corrigiu
possíveis ambiguidades, assegurando que a UML permaneça uma linguagem clara
e confiável para a modelagem.
Evolução e Versões da UML
 Cada versão da UML foi projetada para melhorar a usabilidade, a clareza e a
capacidade de modelagem da linguagem, à medida que a tecnologia e as práticas de
desenvolvimento evoluíram. A UML continua a ser uma ferramenta crucial para a
comunicação, documentação e design de sistemas complexos, acompanhando as
mudanças na indústria de software e contribuindo para a construção de sistemas
mais eficientes e confiáveis.
A UML na Modelagem de Sistemas
A UML na Modelagem de Sistemas:
 A Unified Modeling Language (UML) desempenha um papel fundamental na
modelagem de sistemas, permitindo que os profissionais de software representem,
comuniquem e compreendam os sistemas de maneira mais eficaz. A UML fornece
uma notação visual padronizada que transcende barreiras linguísticas e técnicas,
tornando a modelagem mais acessível e precisa. Aqui estão os principais aspectos
da UML na modelagem de sistemas:
A UML na Modelagem de Sistemas
 1. Representação Estrutural: A UML oferece uma variedade de diagramas para
representar diferentes aspectos dos sistemas. Diagramas de classes, objetos e
componentes mostram a estrutura estática dos elementos do sistema e suas relações.
Esses diagramas ajudam a capturar a organização dos componentes, suas
propriedades e as relações entre eles.
A UML na Modelagem de Sistemas
 2. Representação de Comportamento: Além da estrutura estática, a UML
também permite a representação do comportamento dinâmico dos sistemas.
Diagramas de sequência, de atividades e de estados descrevem como os elementos
interagem e se comportam ao longo do tempo. Esses diagramas são valiosos para
modelar processos, interações e fluxos de trabalho.
A UML na Modelagem de Sistemas
 3. Visualização de Interações: Os diagramas de interação, como de sequência
e de comunicação, mostram as trocas de mensagens entre objetos, permitindo que
os modeladores visualizem as interações complexas entre partes do sistema. Isso é
particularmente útil para entender como os elementos colaboram para atingir
objetivos específicos.
A UML na Modelagem de Sistemas
 4. Modelagem de Casos de Uso: Os diagramas de casos de uso são usados
para modelar os requisitos e os cenários de interação do sistema com seus atores.
Eles ajudam a identificar os principais recursos do sistema e como eles são
utilizados pelos usuários, ajudando a garantir que o sistema atenda às necessidades
do cliente.
A UML na Modelagem de Sistemas
 5. Documentação Completa: A UML permite que os modeladores criem
documentação visual abrangente para o sistema. Essa documentação não apenas
auxilia no desenvolvimento inicial, mas também é valiosa para manutenção, testes e
auditorias posteriores.
A UML na Modelagem de Sistemas
 6. Colaboração e Comunicação: A UML promove a colaboração entre equipes
multidisciplinares. A notação visual ajuda a superar barreiras de comunicação,
permitindo que todos os envolvidos compreendam e contribuam para o design e
desenvolvimento do sistema.
A UML na Modelagem de Sistemas
 7. Planejamento e Tomada de Decisão: A UML auxilia na tomada de decisões
informadas durante o planejamento do sistema. Diagramas como de sequência e de
atividades podem ser usados para visualizar cenários de uso e entender como
diferentes partes do sistema interagem para atingir metas específicas.
A UML na Modelagem de Sistemas
 8. Validação e Testes: Os modelos UML podem ser usados para criar cenários
de teste e validar o comportamento do sistema antes da implementação. Diagramas
de estados, por exemplo, ajudam a entender o comportamento do sistema em
diferentes situações.
A UML na Modelagem de Sistemas
 9. Manutenção e Evolução: A UML não é apenas valiosa durante o
desenvolvimento inicial, mas também durante a manutenção e evolução contínuas
do sistema. Os modelos ajudam a compreender a estrutura e o comportamento do
sistema existente, facilitando alterações e melhorias.
A UML na Modelagem de Sistemas
 Em resumo, a UML desempenha um papel vital na modelagem de sistemas complexos, permitindo que os
engenheiros de software representem visualmente a estrutura, o comportamento e as interações de
sistemas de maneira padronizada. A linguagem promove a comunicação eficaz, colaboração,
planejamento e design informado, contribuindo para o desenvolvimento bem-sucedido de sistemas
confiáveis e funcionais.

Você também pode gostar