INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · •...

21
05/03/2015 1 Departamento de Informática – PUC-Rio Ivan Mathias Filho [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

Transcript of INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · •...

Page 1: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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

Page 2: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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

Page 3: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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

Page 4: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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.

Page 5: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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.

Page 6: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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

Page 7: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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.

Page 8: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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)

Page 9: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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.

Page 10: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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

Page 11: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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)

Page 12: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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)

Page 13: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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)

Page 14: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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)

Page 15: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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)

Page 16: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

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.

Page 17: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

05/03/2015

17

© LES/PUC-Rio

Exemplo – Descrição de Caso de Uso

© LES/PUC-Rio

Exemplo – Diagrama de Casos de Uso

Page 18: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

05/03/2015

18

© LES/PUC-Rio

Exemplo – Diagrama de Estados

© LES/PUC-Rio

Exemplo – Diagrama de Interação

Page 19: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

05/03/2015

19

© LES/PUC-Rio

Exemplo – Diagrama de Atividades

© LES/PUC-Rio

Exemplo – Diagrama de Classes

Page 20: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

05/03/2015

20

© LES/PUC-Rio

Exemplo – Diagrama de Atividades

© LES/PUC-Rio

Exemplo – Diagrama de Interação

Page 21: INF1013 – MODELAGEM DE SOFTWARE - inf.puc-rio.brivan/INF1013/NotasAula/INF1013-CAP-01.pdf · • A Linguagem UML • Descrição da Arquitetura ... • Larman, C. Utilizando UML

05/03/2015

21

© LES/PUC-Rio

Exemplo – Diagrama de Componentes

© LES/PUC-Rio

Exemplo – Diagrama de Implantação