Modelagem de Arquitetura com UML



Documentos relacionados
Arquitetura de Software

Arquitetura de Software

UFG - Instituto de Informática

Eduardo Bezerra. Editora Campus/Elsevier

Documento de Arquitetura

Wilson Moraes Góes. Novatec

Engenharia de Software

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

A contribuição da Análise para Arquitetura de Software

Análise e Projeto de Sistemas

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Engenharia de Software I: Análise e Projeto de Software Usando UML

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

1 UML (UNIFIED MODELING LANGUAGE)

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

Visões Arquiteturais. Arquitetura de Software Thaís Batista

Engenharia de Requisitos

Análise e Projeto Orientados por Objetos

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação

O Processo Unificado: Captura de requisitos

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Projeto de Arquitetura

Documento de Análise e Projeto VideoSystem

Unified Modeling Language. Diagramas de Implementação

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Fase 1: Engenharia de Produto

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Uma Abordagem usando PU


Concepção e Elaboração

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Sistemas de Informação I

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

O Processo de Desenvolvimento de Software

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Web Services. (Introdução)

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

UML - Unified Modeling Language

Disciplina de Banco de Dados Introdução

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Modelo para Documento de. Especificação de Requisitos de Software

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

SISTEMAS DISTRIBUÍDOS

Introdução à Engenharia de Software

Produtos da Fábrica de Software

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Engenharia de Requisitos Estudo de Caso

Processo de Desenvolvimento de Software. Engenharia de Software.

Feature-Driven Development

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva

Visões Arquiteturais. Visões Arquiteturais

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93

Relatório do GPES. Arquitetura Geral do Framework

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Servidor, Proxy e Firewall. Professor Victor Sotero

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Quadro de consulta (solicitação do mestre)

Engenharia de Software I

Diagrama de Estrutura Composta

Rational Unified Process

Programa do Módulo 2. Processo Unificado: Visão Geral

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Especificação de Requisito de Software <Nome do Projeto> Especificação de Software Para <Subsistema ou Recurso> Versão <x.y>

2 Diagrama de Caso de Uso

Engenharia de Software

Modelos. Comunicação com clientes

Persistência e Banco de Dados em Jogos Digitais

UML Aspectos de projetos em Diagramas de classes

Projetar Arquitetura

Sistemas Distribuídos

Modelo para Documento de. Especificação de Requisitos de Software

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

ENGENHARIA DE SOFTWARE

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

Lógica e Programação Java

Padrões Arquiteturais e de Integração - Parte 1

Engenharia de Software

Introdução. Arquitetura de Rede de Computadores. Prof. Pedro Neto

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

Design de Software e Projeto Arquitetural de Software. Prof. Edison A M Morais prof@edison.eti.br

Modelagem de Processos. Prof.: Fernando Ascani

Transcrição:

Modelagem de Arquitetura com UML 1 Arquitetura de software Uma arquitetura de software deve conter: a definição dos elementos de projeto que compõem o software; a descrição das interações entre estes elementos; os padrões de composição dos elementos; e um conjunto de restrições sobre estes padrões. [Shaw 96] 2 1

Arquitetura de software Modelo de Shaw, 1996 componentes conectores configuração 3 Arquitetura de software Componente modela a computação e/ou armazenamento de informações desenvolvido independentemente exemplos de componentes cliente servidor banco de dados aplicação inteira 4 2

Arquitetura de software Conector modela as interações entre os componentes desenvolvido independentemente exemplos de conectores protocolos de comunicação Middleware (ex: CORBA, RMI) 5 Arquitetura de software Configuração topologia conjunto de componentes combinados usando-se os conectores grafo de componentes e conectores ligados, descrevendo uma estrutura arquitetural 6 3

Arquitetura de software Principais motivações para definição de uma Arquitetura de Software: reuso de elementos de projeto permitindo maior rapidez na construção do software; facilita a comunicação entre os stakeholders do sistema. 7 Uso de UML como uma ADL (Architecture Description Language) Mesmo havendo uma perda em capturar todos os aspectos de uma arquitetura, o uso de UML tem sido crescente Vantagens: Uso de uma notação amplamente conhecida em oposição às ADLs Notação acessível para arquitetos, desenvolvedores e gerentes Permite ilustrar múltiplas visões 8 4

Múltiplas Visões Vários stakeholders têm diferentes conceitos e interesses em aspectos distintos da arquitetura. Assim como na construção civil, diferentes tipos de plantas são usadas para representar diferentes aspectos da arquitetura. 9 Múltiplas Visões De forma similar, na arquitetura de software pode-se usar várias plantas para diversos propósitos: Para organizar a funcionalidade do sistema em termos de elementos do domínio; Para tratar da decomposição lógica do sistema; Para tratar aspectos de concorrência (em tempo de execução); Para tratar do mapeamento de módulos e interfaces para arquivos fontes. 10 5

Múltiplas Visões Diferentes visões tratam de aspectos distintos durante o desenvolvimento de um sistema. Exemplo de abordagens: Kructhen - O Modelo 4 + 1: Lógica, Processo, Física, Implantação e Casos de Uso. 11 Múltiplas Visões Soni, Nord e Hofmeister: Consideram a representação da arquitetura de software em 4 visões: visão conceitual visão de módulo visão de execução visão de código 12 6

Múltiplas Visões: Relação entre as visões elementos arquiteturais conceitual módulos módulos código execução arquivos elementos de execução (processos) 13 Visão Conceitual Captura aspectos funcionais do sistema Stakeholder interessado: Usuário final Descrição da arquitetura em termos de elementos arquiteturais Elementos: componentes, portas e conectores 14 7

Visão Conceitual Componentes, portas e conectores são modelados através do diagrama de classes de UML ( stereotyped class ) Interação entre componentes através de Diagrama de Seqüência 15 Visão Conceitual - Exemplo O sistema de captura de imagem capta um conjunto de imagens digitalizadas. O usuário controla a captura pela seleção de um procedimento a partir de um conjunto de procedimentos prédefinidos. Então, inicia tal procedimento e provavelmente ajusta-o durante a captura. O dado bruto para as imagens é capturado por um dispositivo de hardware, uma câmera, sendo então enviado para o processador de imagem (image pipeline) onde é convertido para imagens. O image pipeline faz esta conversão, primeiro compondo o dado bruto em imagens discretas, e então executa um ou mais padrões de transformações de imagem para melhorar a resolução das imagens resultantes. 16 8

Visão Conceitual modelo informal Componentes, Conectores e Portas ( Visão Tradicional ) acqcontrol PipelineMgr ImagePipeline client/server acqcontrol pipeline Control client/server Framer stagecontrol Imager stagecontrol packetin packetin imageout imagepipe imagein imageout framed Out 17 Visão Conceitual - Diagrama de Classes UML Modelo Preliminar ImagePipeline PipelineMgr Framer Imager <<Conector>> Client/Server <<Conector>> imagepipe 18 9

Visão Conceitual - Diagrama de Classes UML packetin ImagePipeline acqcontrol framedout acqcontrol PipelineMgr pipelinecontrol <<Conector>> Client/Server sender receiver <<Conector>> Client/Server receiver packetin stagecontrol Framer sender imageout source <<Conector>> imagepipe dest imagein stagecontrol Imager ImageOut 19 Visão Conceitual - Diagrama de Classes UML packetin <<Papel>> receiver <<Componente> > ImagePipeline acqcontrol <<Conector>> Client/Server <<Componente> > Framer <<Papel>> sender framedout <<Papel>> sender acqcontrol <<Conector>> Client/Server <<Papel>> receiver PipelineMgr pipelinecontrol <<Componente >> Imager packetin imageout stagecontrol <<Papel>> <<Conector>> imagepipe <<Papel>> stagecontrol imagein ImageOut source dest 20 10

Visão de Módulo Subsistemas são decompostos em módulos os quais são organizados em camadas Stakeholders interessados: Analistas e Programadores Elementos: módulos, subsistemas e camadas Elementos conceituais são mapeados em módulos 21 Visão de Módulo Componentes são implementados por módulos e subsistemas Portas, conectores e componentes podem ser combinados em um único módulo Dependências de uso entre módulos são derivadas das associações entre os elementos conceituais 22 11

Visão de Módulo Módulos são representados por classes estereotipadas Subsistemas e camadas são representados por pacotes estereotipados Dependências de uso são representadas por dependências UML 23 Visão de Módulo <<subsystem>> SPipeline MPipelineAPI MPipelineControl MFramer MImageMgrAPI MImageBUffer MImager Elemento Conceitual ImagePipeline (cp) acqcontrol(pt),pipelinecontrol(pt) pipelinemgr(cp), ImagePipe(cn),Client/Server (cn) stagecontrol(pt), imagein(pt), imageout(pt) Framer (cp) Imager(cp) Subsistema ou Módulo SPipeline MpipelineAPI MpipelineControl, MImageBuffer MImageMgrAPI MFramer MImager 24 12

Visão de Módulo - Dependências de Uso MClient <<layer>> ApplicationService MImager MFramer <<layer>> ImageProcessing interface MPipelineAPI MImageMgrAPI MPipelineControl MImageBuffer MDataMgrAPI 25 Visão de Execução Visão do sistema em tempo de execução (TE) Stakeholder interessado: Integradores do sistema Define o mapeamento dos módulos em elementos de TE (processos, threads, etc) Define a comunicação entre os elementos de TE, e os atribui a recursos físicos 26 13

Visão de Execução Elementos: cenário de tempo de execução e caminho de execução Conceitos principais: Uso de recursos e performance Classes UML estereotipadas são usadas para representar elementos de TE Estereótipos de acordo com o nome do elementos da plataforma: <<process>> <<shared data>> 27 Visão de Execução Mclient << process >> Eclient << process >> EpipelineMgr MpipelineControl << process >> EImager MPipeLineAPI MDataMgrAPI MFramer << process >> EFramer MImageMgrAPI << shared Data >> EImageBUffer MImageBuffer MImageMgrAPI MImager 28 14

Visão de Código Contém arquivos e diretórios Stakeholder interessado: Engenheiros de Sistema (topologia, entrega, instalação, etc) Mapeamento dos módulos e interfaces da visão de módulo em arquivos fonte Elementos de TE da visão de execução são mapeados em arquivos executáveis 29 Visão de Código Elementos: código fonte, código intermediário, código executável, diretório Arquivos são representados por componentes UML estereotipados Diretórios são representados por pacotes UML estereotipados 30 15

Visão de Código Dependência entre arquivos fonte CPipelineControl.CPP <<directory>> PipelineControl CPipelineControlPvt.H CPipelineControl.H CstageControl.H <<directory>> <<directory>> CPipelineAPI.CPP PipelineAPI CImageMgrAPI.CPP ImageMgrAPI CPipeline.H CImageMgr.H CPipelinePvt.H CImageMgrPvt.H 31 Conclusão Arquitetura de Software promove o reuso em alta escala A UML pode ser usada como uma ADL (apresenta algumas deficiências). Existem propostas para sua extensão. A grande motivação do uso da UML é que ela é um padrão largamente aceito e difundido 32 16