INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · •...
Transcript of INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · •...
05/03/2015
1
Departamento de Informática – PUC-Rio
Ivan Mathias [email protected]
INF1013 – MODELAGEM DE SOFTWARE
Programa – Capítulo 1
• O Paradigma Orientado a Objetos
• A Linguagem UML
• Descrição da Arquitetura
© LES/PUC-Rio
05/03/2015
2
Programa – Capítulo 1
• O Paradigma Orientado a Objetos
• A Linguagem UML
• Descrição da Arquitetura
© LES/PUC-Rio
O Paradigma da Orientação a Objetos (1)
• A Análise Orientada a Objetos enfatiza a descoberta e a descrição dos objetos de um domínio de aplicação;
• O Projeto Orientado a Objetos foca no mapeamento dos objetos de domínio para objetos de software.
© LES/PUC-Rio
05/03/2015
3
O Paradigma da Orientação a Objetos (2)
“A modelagem orientada a objetos, usada emconjunto com alguma linguagem orientada aobjetos, ajuda a diminuir o gap semântico entre oscomponentes de software e a concepção humanade um domínio de aplicação, facilitando, assim, acompreensão do design de um sistema”.
© LES/PUC-Rio
© LES/PUC-Rio
Programa – Capítulo 1
• O Paradigma Orientado a Objetos
• A Linguagem UML
• Descrição da Arquitetura
05/03/2015
4
© LES/PUC-Rio
A Linguagem UML
• UML significa Unified Modeling Language;
• Tem por objetivo especificar, visualizar, construir e documentar artefatos de software;
• Aplicada em todas as etapas do ciclo de vida de software;
• Adequada à construção de modelos gráficos.
© LES/PUC-Rio
A UML é uma Linguagem
• Uma linguagem fornece um vocabulário e regras para a combinação de “palavras” desse vocabulário, com o objetivo de comunicar algo;
• Uma linguagem de modelagem é uma linguagem cujo vocabulário e as regras têm seu foco voltado para a representação conceitual e física de sistemas;
• O vocabulário e as regras de uma linguagem de modelagem indicam como criar e ler modelos bem formados, mas não apontam quais modelos devem ser criados nem em que sequência.
05/03/2015
5
© LES/PUC-Rio
A UML para Visualização e Especificação
• Facilita a construção de modelos visuais de sistemas, descrevendo detalhadamente a estrutura (parte estática ) e o comportamento (parte dinâmica);
• Fornece os símbolos gráficos para a representação de artefatos de software;
• Emprega símbolos com sintaxe e semântica bem definidas;
• Favorece a construção de modelos precisos, completos e sem ambiguidades.
© LES/PUC-Rio
A UML para Construir
• Os modelos UML podem ser diretamente ”traduzidos” para várias linguagens de programação;
• Isso significa que é possível mapear modelos UML para linguagens de programação tais como, Java, C++ e C#;
• Esse mapeamento permite a realização de uma engenharia de produção (geração de código) a partir de modelos UML;
• Permite reconstruir alguns modelos a partir do código fonte escrito em alguma linguagem de programação. Este processo inverso é chamado de engenharia reversa.
05/03/2015
6
© LES/PUC-Rio
Interface com o usuário(Swing, .NET, HTML)
Projete o seu sistemaindependente da
tecnologia de implementação
Persistência (SQL, EJB, Hibernate)
Lógica do negócio(Java, C++, C#)
Suporte a Diferentes Tecnologias
© LES/PUC-Rio
Múltiplas Plataformas
Componentes Reutilizáveis
Promoção da Reutilização
05/03/2015
7
© LES/PUC-Rio
A UML para Documentar
• Os requisitos do sistema;
• A arquitetura do sistema e todos os seus detalhes;
• As atividades de planejamento do projeto;
• As atividades de realização de testes;
• O gerenciamento de versões.
© LES/PUC-Rio
As Vantagens da UML
• Padrão aberto e não proprietário (OMG);
• Independência de processo de desenvolvimento;
• Aplicável em todas as fases do ciclo de desenvolvimento;
• Independência de linguagem de programação;
• Integração das melhores práticas de modelagem;
• É uma linguagem extensível.
05/03/2015
8
© LES/PUC-Rio
A História da UML (1)
• É o resultado da unificação das notações utilizadas nos métodos Booch, OMT (Object Modeling Technique) e OOSE (Object-Oriented Software Engineering);
• Adotada como linguagem padrão de modelagem por grande parte da indústria de software e por fornecedores de ferramentas CASE.
© LES/PUC-Rio
A História da UML (2)
05/03/2015
9
© LES/PUC-Rio
Programa – Capítulo 1
• O Paradigma Orientado a Objetos
• A Linguagem UML
• Descrição da Arquitetura
© LES/PUC-Rio
Descrição da Arquitetura
• Diferentes participantes têm visões e interesses distintos em relação a um sistema;
• Eles trazem contribuições próprias em diferentes momentos ao longo do desenvolvimento;
• A descrição da arquitetura de um sistema deve permitir o gerenciamento adequado destes diferentes pontos de vista ao logo do ciclo de vida de um sistema.
05/03/2015
10
© LES/PUC-Rio
O Que é Arquitetura?
• A arquitetura é o conjunto de decisões significativas sobre:
– A organização de um sistema de software;
– A seleção dos elementos estruturais que irão compor um sistema;
– O comportamento de um sistema, conforme especificado nas colaborações entre esses elementos;
– A decomposição desses elementos estruturais e comportamentais em subsistemas progressivamente maiores;
– O estilo arquitetural que orienta a organização desses elementos – aspectos estáticos, dinâmicos, suas interfaces, colaborações e composições.
© LES/PUC-Rio
A arquitetura de um sistema
complexo pode ser
adequadamente descrita
através de cinco visões
complementares:
Visões da Arquitetura
05/03/2015
11
© LES/PUC-Rio
Descreve um sistema do ponto
de vista externo, através das
interações entre esse sistema e
os agentes externos a ele.
Visão de Casos de Uso (1)
© LES/PUC-Rio
• Descrição textual
• Diagramas de casos de uso
• Diagramas de estados
• Diagramas de interações
• Diagramas de atividades
Utiliza os seguintes recursos:
Visão de Casos de Uso (2)
05/03/2015
12
© LES/PUC-Rio
Enfatiza as características de
um sistema que dão suporte,
tanto estrutural quanto
comportamental, às
funcionalidades externamente
visíveis desse sistema.
Visão de Projeto (1)
© LES/PUC-Rio
• Diagramas de classes
• Diagramas de interações
• Diagramas de estados
Utiliza os seguintes recursos:
Visão de Projeto (2)
05/03/2015
13
© LES/PUC-Rio
Mostra o fluxo de controle
entre as várias partes,
incluindo mecanismos de
concorrência e sincronização.
Essa visão cuida
principalmente das questões
referentes ao desempenho, à
escalabilidade e ao throughput
de um sistema.
Visão de Processos (1)
© LES/PUC-Rio
Utiliza os mesmos diagramas
que a visão de projeto, mas
com foco voltado para as
classes ativas (processos ou
threads) que controlam um
sistema e as mensagens que
passam por essas classes.
Visão de Processos (2)
05/03/2015
14
© LES/PUC-Rio
Abrange o gerenciamento de
versões de um sistema e dos
componentes e artefatos
utilizados para a montagem e
distribuição do mesmo. Diz
respeito também ao
mapeamento dos
componentes lógicos para os
artefatos físicos.
Visão de Implementação (1)
© LES/PUC-Rio
• Diagramas de componentes
• Diagramas de interações
• Diagramas de estados
• Diagramas de atividades
Utiliza os seguintes recursos:
Visão de Implementação (2)
05/03/2015
15
© LES/PUC-Rio
Abrange os nós que formam a
topologia do hardware em que
um sistema será executado.
Essa visão trata
principalmente da distribuição,
do fornecimento e da
instalação dos componentes
físicos de um sistema.
Visão de Implantação (1)
© LES/PUC-Rio
• Diagramas de implantação
• Diagramas de interações
• Diagramas de estados
• Diagramas de atividades
Utiliza os seguintes recursos:
Visão de Implantação (2)
05/03/2015
16
© LES/PUC-Rio
Bibliografia (1)
• Bezerra, E. Princípios de Análise e Projeto de Sistemas com UML. 1ª edição, Campus, 2006.
• Larman, C. Utilizando UML e Padrões. 3ª edição, Bookman, 2007.
• Meyer, B. Object-Oriented Software Construction. 2nd edition, Prentice Hall PTR, 2000.
• Page-Jones, M. Practical Guide to Structured Systems Design. 2nd edition, Prentice Hall PTR, 1988.
© LES/PUC-Rio
Bibliografia (2)
• Pressman, R.S. Software Engineering: A Practitioner's Approach. 5th edition. McGraw-Hill, 2003.
05/03/2015
17
© LES/PUC-Rio
Exemplo – Descrição de Caso de Uso
© LES/PUC-Rio
Exemplo – Diagrama de Casos de Uso
05/03/2015
18
© LES/PUC-Rio
Exemplo – Diagrama de Estados
© LES/PUC-Rio
Exemplo – Diagrama de Interação
05/03/2015
19
© LES/PUC-Rio
Exemplo – Diagrama de Atividades
© LES/PUC-Rio
Exemplo – Diagrama de Classes
05/03/2015
20
© LES/PUC-Rio
Exemplo – Diagrama de Atividades
© LES/PUC-Rio
Exemplo – Diagrama de Interação
05/03/2015
21
© LES/PUC-Rio
Exemplo – Diagrama de Componentes
© LES/PUC-Rio
Exemplo – Diagrama de Implantação