Aula 1.7 Introdução a APOO e UML

Documentos relacionados
Análise e Projeto Orientado a Objetos

Aula 3.1 Introdução e Visão Geral do Processo Unificado

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

UML Unified Modeling Language Linguagem de Modelagem Unificada

Análise e Projeto Orientados a Objetos

UML e seus diagramas

Requisitos de Sistemas

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Análise e Projeto Orientados a Objetos Aula I Introdução. Prof.: Bruno E. G. Gomes IFRN

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

Especificação de Sistemas de Software e a UML

INF1013 MODELAGEM DE SOFTWARE

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Engenharia de Software. Aula 2.4 Modelos de Casos de Uso. Prof. Bruno Moreno

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Análise de Sistemas. Aula 5

Introdução à UML. Prof. Jesus José de Oliveira Neto

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

UML (Unified Modelling Language)

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

UML. Trabalho Análise e Projeto de Sistemas. Aluna: Luana Alves Businaro

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

RUP Unified Process. Profª Jocelma Rios

Engenharia de Software

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

ANÁLISE E PROJETO ORIENTADOS A OBJETOS

Análise e projeto de sistemas

INE 5417 Engenharia de Software I

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Introdução a UML (Unified Modeling Language)

1. INTRODUÇÃO A MODELAGEM DE DADOS

Tópicos da Aula. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Engenharia de Software: Conceitos Fundamentais

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Engenharia de Software

Modelagem ou Diagrama de Caso de Uso

Professor Emiliano S. Monteiro

Introdução a UML e seus diagramas

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Processos de Software

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Requisitos de Software e UML Básico. Janaína Horácio

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

Modelagem Orientada a Objetos

ENGENHARIA DE SOFTWARE I AULA 3. Análise e diagramação. professor Luciano Roberto Rocha.

2

Engenharia de Software. Projeto de Arquitetura

ARQUITETURA E DESENHO

Engenharia de Software II

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Análise e projeto de sistemas

Laboratório de Engenharia de Software I

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

Modelagem de Sistemas. Análise de Requisitos. Modelagem

Prof. Dr. Thiago Jabur Bittar

Introdução à Análise e Projeto de Sistemas

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

INTRODUÇÃO. Professora Lucélia Oliveira

Prof. Esp. Fabiano Taguchi

Engenharia de Software Orientada a Objetos - OOSE. Método de Jacobson

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

ENGENHARIA DE SOFTWARE

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Diagramas de Use Case Resumo

Engenharia de Software. UML Unified Modeling Language

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Modelagem Orientada a Objetos

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso

Marcelo Henrique dos Santos

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

UML UNIFIED MODELING LANGUAGE LINGUAGEM DE MODELAGEM UNIFICADA

Engenharia de Software

Protótipo de Editor Gráfico de Fluxogramas para Representação de Comandos da Linguagem Portugol

Rational Unified Process (RUP)

PROJETO DE ARQUITETURA

Capítulo 5 Modelação do Sistema 1

Requisitos de sistemas

Princípios de Análise e Projeto Orientados a Objetos com UML

SISTEMAS DE INFORMAÇÃO UML UMA VISÃO GERAL

Análise e Projeto Orientado a Objetos

1.1. Declaração do Problema e Limitações dos Trabalhos Relacionados Um Framework Conceitual para SMAs

Protótipo tipo de um Sistema de Informações Executivas para Representantes Comerciais do Ramo Têxtil

Aula 13 Modelagem da Arquitetura

Transcrição:

APOO Aula 1.7 Introdução a APOO e UML Prof. Bruno Moreno bruno.moreno@ifrn.edu.br

Possuir um lápis e uma régua não te tornam um arquiteto 2

Você pode conhecer toda a API Java, C++ ou qualquer LPOO. 3

Mas para criar sistemas OO de alto nível, você precisa PENSAR EM OBJETOS! 4

A/POO: Motivações Como as responsabilidades devem ser atribuídas à classes de objetos? Como os objetos devem interagir? Quais classes devem fazer o que? Essas questões são importantes no projeto OO. 5

A/POO: Princípios O Projeto OO (e todo projeto de SW) está fortemente relacionado à atividade de prérequisitos: Análise de requisitos. Esta atividade inclui escrever casos de uso Casos de uso descrevem situações em que o sistema será utilizado. 6

A/POO: Princípios A atividade de análise de requisitos está presente na maioria dos processos de desenvolvimento; No contexto dessa disciplina, utilizaremos o Processo Unificado (PU) Entretanto, os conceitos trabalhados aqui poderão ser utilizados no contexto de qualquer processo de desenvolvimento Scrum, Feature-Driven Development, Lean Development, dentre outros. 7

Análise OO A análise pode ser vista como uma investigação dos problemas e dos requisitos; Análise não é uma solução, mas sim uma tentativa de se chegar a ela. Exemplo (sistema de vendas online): Como o sistema será utilizado? Quais são as funções do sistema? 8

Análise OO Durante a análise, tenta-se encontrar e descrever os objetos, ou conceitos, do domínio do problema; Exemplo de conceitos para um sistema de vendas online: Venda, Produto, cliente, etc.; 9

Projeto OO O projeto diz respeito a uma solução conceitual (que pode ser em software ou em hardware); Essa solução deve satisfazer os requisitos investigados na análise; Exemplo: Descrição de um esquema de banco de dados; 10

Projeto OO Durante o projeto OO, a ênfase está na definição dos objetos de software e como eles colaboram para satisfazer os requisitos; Exemplo de conceitos para um sistema de vendas online: O objeto de software produto pode ter um atributo tipo de produto e um método adiciona no carrinho; 11

Faça a coisa certa e faça certo a coisa 12

ANÁLISE Faça a coisa certa e faça certo a coisa PROJETO 13

Exemplo Desenvolver um jogo de dados no qual um jogador lançá dois dados. Se o total for sete, ele vence, caso contrário, perde. 14

Exemplo - Análise OO Roteiro: Definir casos de uso A análise de requisitos pode incluir diversos mecanismos para se investigar os requisitos: Narrativas ou cenários como as pessoas usarão o sistema, por exemplo; Narrativas e cenários podem ser escritos como casos de uso. 15

Exemplo - Análise OO Roteiro: Definir casos de uso Exemplo: Jogar um jogo de dados: um jogador pede que os dados sejam lançados. O sistema apresenta o resultado: se a soma do valor das faces dos dados totalizar sete, ele vence; caso contrário, perde. 16

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio A análise OO se preocupa com a criação de uma descrição do domínio, a partir da perspectiva de objetos; Aqui, identifica-se os principais conceitos, atributos e associações. 17

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio O resultado dessa análise é descrito em um modelo de domínio O modelo de domínio descreve os conceitos (ou objetos) do domínio para auxiliar na compreensão do sistema em desenvolvimento; 18

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio Exemplo: O modelo ilustra os conceitos de interesse, suas associações e atributos; O modelo de domínio não é uma descrição dos objetos de software, mas sim um modelo conceitual de objetos; 19

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio Definir diagramas de interação O projeto OO se preocupa com a definição de objetos e suas responsabilidades e colaborações; Comumente se utiliza o diagrama de sequência em UML Mostra o fluxo das mensagens entre objetos. 20

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio Definir diagramas de interação Exemplo: 21

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio Definir diagramas de interação Definir diagramas de classes de projeto Os diagramas de interação criados na fase anterior são diagramas que demonstram a dinâmica do sistema; É útil, portanto, descrever uma visão estática do sistema: Diagrama de classes de projeto (UML). 22

Exemplo - Análise OO Roteiro: Definir casos de uso Definir modelo de domínio Definir diagramas de interação Definir diagramas de classes de projeto Exemplo: no jogo de dados, uma inspeção do diagrama de sequencia nos leva ao diagrama de classes a seguir: 23

Exemplo - Análise OO Exemplo 24

UML 25

Definição UML: Unified Markup Language (Linguagem de Modelagem Unificada); É uma linguagem visual utilizada para especificar, construir e documentar artefatos dos sistemas; 26

Introdução UML é uma linguagem VISUAL! É uma notação diagramática padrão utilizada para apresentar figuras relacionadas a um software OO; A UML é uma linguagem volumosa! Não trabalharemos com todos os conceitos da linguagem; 27

Aplicação de UML UML pode ser utilizada de, pelo menos, três modos: UML como rascunho; UML como planta de software; UML como linguagem de programação. 28

Aplicação de UML UML podem ser utilizadas de, pelo menos, três modos: UML como rascunho; UML como planta de software; UML como linguagem de programação. 29

UML como rasunho UML é bastante utilizado informalmente; Para tentar-se compreender partes complexas do sistema, por exemplo; 30

Aplicação de UML UML podem ser utilizadas de, pelo menos, três modos: UML como rascunho; UML como planta de software; UML como linguagem de programação. 31

UML como planta de SW UMA planta detalhada de SW em UML pode ser utilizada tanto para (1) engenharia reversa como para (2) engenharia avante 32

Aplicação de UML UML podem ser utilizadas de, pelo menos, três modos: UML como rascunho; UML como planta de software; UML como linguagem de programação. 33

UML como LP Atualmente, ferramentas CASE permitem a geração de código (Java, por exemplo) a partir de diagramas UML; Existem teorias sendo desenvolvidas para que UML seja utilizada, de fato, como linguagem de programação. 34

Como fazer o melhor uso de UML? 35

Melhor uso de UML É subjetivo; Para o desenvolvimento ágil de softwares, sugere-se que UML seja utilizado em forma de rascunho Veremos que uma vasta documentação não é o forte de metodologias ágeis. Não é saudável para o desenvolvimento fazer uso de diagramas complexos UML. 36

UML é a solução ideal para o desenvolvimento de software? 37

Para ajudar a responder essa pergunta, sugiro a leitura do artigo No Silver Bullet de Frederick Brooks. A entrega de um resumo do artigo até o dia 28/04 as 23:59. 38

Perspectivas de aplicação UML pode ser aplicado de acordo com três perspectivas: Perspectiva conceitual; Perspectiva de Especificação; Perspectiva de Implementação; Ou seja, uma mesma notação em UML pode ser utilizada para três perspectivas diferentes 39

Perspectivas de aplicação UML pode ser aplicado de acordo com três perspectivas: Perspectiva conceitual; Perspectiva de Especificação; Perspectiva de Implementação; 40

Perspectiva Conceitual Um notação do tipo Diagrama de Classes pode ser utilizada para representar um modelo de domínio, por exemplo: JogoDeDados Dado valordaface A perspectiva conceitual é utilizada para descrever coisas em uma situação do mundo real ou do domínio de interesse. 41

Perspectivas de aplicação UML pode ser aplicado de acordo com três perspectivas: Perspectiva conceitual; Perspectiva de Especificação; Perspectiva de Implementação; 42

Perspectiva de Especificação A mesma notação de Diagrama de Classes pode ser utilizada para descrever elementos do software: JogoDeDados dado1: Dado dado2: Dado jogar() Dado valordaface: int obtervalordaface(): int lancar() Essa perspectiva não se compromete com uma linguagem em específico. 43

Perspectivas de aplicação UML pode ser aplicado de acordo com três perspectivas: Perspectiva conceitual; Perspectiva de Especificação; Perspectiva de Implementação; 44

Perspectiva de Implementação Neste caso, os diagramas representam implementações de software em uma tecnologia particular Java, por exemplo. 45