Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML – Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML – Guia do usuário Grady Booch – James Rumbaugh – Ivair Jacobson Editora: Campus Modelos Um modelo é uma simplificação da realidade: mapas, desenho de estilista, etc. A engenharia civil usa com frequencia modelos simplificados da realidade, como, por exemplo, plantas de casas e edifícios. As plantas são utilizadas por permitirem o entendimento de como a obra deve ficar depois de pronta. É o modelo utilizado pelo Engenheiro (ou Arquiteto) para se comunicar com o proprietário e com os trabalhadores do projeto (mestre de obras, etc.). Assim a planta viabiliza a troca de informações entre todos os envolvidos no projeto. Com relação a TI, o uso de uma modelagem universal, como o UML, por exemplo, facilita a troca de informações e códigos de programação entre os desenvolvedores. Modelos – Vantagens • Facilita a comunicação • Mensuração da complexidade do trabalho / projeto / problema que será desenvolvido • Ajuda a visualizar o sistema como ele é ou como desejamos que seja • Maior facilidade na comunicação entre as diversas pessoas envolvidas (pela utilização da notação uniforme) • Por ser visual, pode-se afirmar “uma imagem vale mais do que mil palavras”. • Em TI, como o software é dinâmico, a documentação auxilia em manutenções futuras Modelagem orientada a objetos Desenvolver modelos tendo como foco o conceito de objetos. A Orientação a Objetos é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objeto. O desenvolvimento de software baseia-se na utilização de componentes individuais (objetos) que colaboram para construir sistemas mais complexos. A colaboração entre os objetos é feita através do envio de mensagens. Um paradigma é um conjunto de regras que estabelecem fronteiras e descrevem como resolver problemas dentro desta fronteira. Um paradigma ajuda-nos a organizar e coordenar a maneira como olhamos o mundo. A modelagem orientada a objeto surgiu ao longo dos anos 1980 e ficou madura com o surgimento da UML nos anos 1990, um sistema de modelagem que unificou antigas notações. Introdução Orientação a Objetos Objetos Um objeto é uma entidade do mundo real que tem uma identidade. Objetos podem representar entidades concretas (um arquivo no meu computador, uma bicicleta) ou entidades conceituais (uma estratégia de jogo, uma política de escalonamento em um sistema operacional). Cada objeto ter sua identidade significa que dois objetos são distintos mesmo que eles apresentem exatamente as mesmas caraterísticas. Exemplos Uma pessoa Um Veículo Um documento Introdução Orientação a Objetos Classe Uma classe de objetos descreve um grupo de objetos com propriedades (atributos) similares, comportamento (operações) similares, relacionamentos comuns com outros objetos e uma semântica comum. É uma coleção de objetos. Exemplos Classe de Veículos: Carros de passeio, Carros esportivos, Caminhões Introdução Orientação a Objetos Polimorfismo Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas). Introdução Orientação a Objetos Herança Herança (ou generalização) é o mecanismo pelo qual uma classe (subclasse) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. Equipamentos Domésticos Rádio Relógio Elétricos Eletrodomésticos TV DVD Mecânicos Eletromecânicos Motor Elétrico Hidráulicos Torneira UML A UML (Unified Modeling Language)é uma linguagem para especificação, documentação, visualização e desenvolvimento de sistemas orientados a objetos. Sintetiza os principais métodos existentes, sendo considerada uma das linguagens mais expressivas para modelagem de sistemas orientados a objetos. Por meio de seus diagramas é possível representar sistemas de softwares sob diversas perspectivas de visualização. Facilita a comunicação de todas as pessoas envolvidas no processo de desenvolvimento de um sistema - gerentes, coordenadores, analistas, desenvolvedores - por apresentar um vocabulário de fácil entendimento. Linguagem visual para especificação (modelagem) de sistemas orientados a objeto. Fornece representação gráfica para os elementos essenciais do paradigma de objetos. A UML não é uma linguagem de programação, mas uma linguagem de modelagem. Historia da UML A UML surgiu da união de três metodologias de modelagem: o método de Booch, o método OMT (Object Modeling Technique) de Jacobson e o método OOSE (Object-Oriented Software Engineering) de Rumbaugh. Essas eram, até meados da década de 1990, as três metodologias de modelagem orientada a objetos mais populares entre os profissionais da área de engenharia de software. Na década de 90, surge uma organização importante no mundo dos objetos a OMG (Object Management Group), uma entidade sem fins lucrativos onde participam empresas e acadêmicos para definirem padrões de tecnologias OO. • Outubro de 1995: primeira versão rascunho, versão 0.8 draft. • Julho de 1996: revisão devido ao ingresso de Jacobson, versão 0.9 draft. • Parceiros UML (HP, IBM, Microsoft, Oracle e Rational Software) desenvolveram a versão 1.1 e a propuseram a OMG • A OMG aceita a proposta em novembro de 1997 e assume a responsabilidade de realizar manutenção e revisão da UML • Em março de 2003, a OMG lançou a versão 1.5 • Em outubro de 2004, a OMG lançou versão 2.0 Referencias http://www.omg.org Visão geral da UML A UML é uma linguagem destinada a: • • • • Visualizar Especificar Construir Documentar A UML se destina principalmente a sistemas complexos de software, mas também pode ser utilizada para modelar sistemas que não sejam de software, como o fluxo de trabalho do sistema legal, a estrutura e o comportamento de sistemas de saúde e o projeto de hardware. Blocos de construção da UML Os blocos de construção da UML são as matérias-primas utilizadas pelos diagramas para representar partes de um sistema de software. 3 tipos de blocos de construção 1. Itens 2. Relacionamentos 3. Diagramas Itens 1. Itens Estruturais - Classes - Interface - Colaboração - Caso de uso - Classe ativa - Componente - Artefato - Nó 2. Itens Comportamentais 3. Itens de agrupamentos 4. Itens anotacionais Itens Estruturais Classes Uma Classe é um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos. É representada graficamente por retângulos, geralmente incluindo seu nome, atributos e operações, conforme exemplo a seguir.