PCS3413 Engenharia de Software e Banco de Dados

Documentos relacionados
Requisitos de sistemas

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

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Generalização das técnicas de Piloto Automático para VANTs. Aluno: Raphael da Silva Teixeira (ED 14205) Professor: Cel R/R Cícero Garcez

Arquitetura de software

Modelagem de Sistemas. Análise de Requisitos. Modelagem

Banco de Dados I Curso: Sistemas de Informação

Visões Arquiteturais. Visões Arquiteturais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Análise de Sistemas 4º Bimestre (material 3)

Aula 01 Conceito de Banco de Dados e SGBD

UML. Rodrigo Leite Durães.

Análise e Projeto de Software Parte II. Marcos Dósea

PROJETO DE ARQUITETURA (PARTE 2)

CONCEITOS BÁSICOS E MODELO DE PROJETO

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

O que é um sistema distribuído?

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

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

UML UNIFIED MODELING LANGUAGE LINGUAGEM DE MODELAGEM UNIFICADA

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

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais

DIAGRAMAS DE CLASSE UML

UML. Modelando um sistema

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

Modelagem de Sistemas Web. Modelagem de BD

Visibilidade e Encapsulamento

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

4.6. UML Diagramas de componentes

Introdução à Engenharia de Software

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

UML (Unified Modelling Language)

PROJETO DE DESENVOLVIMENTO DE SOFTWARE

Análise e Projeto de Software

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

PCS3413 Engenharia de Software e Banco de Dados

Introdução a UML (Unified Modeling Language)

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

Engenharia de Software

Análise e projeto de sistemas

Engenharia de Software

UML - Linguagem de Modelagem Unificada

Engenharia de Software. Projeto de Arquitetura

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

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

Como Modelar com UML 2

Domínios, grau de dependência e coesão. Unipampa Bagé/RS Engenharia de Computação Disciplina de Engenharia de Software

Engenharia de Software Modelagem de Negócio

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

INF1013 MODELAGEM DE SOFTWARE

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Daniel Wildt

Orientação a objetos. Objetos ou Instâncias I

04/11/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE CLASSE

Capítulo 2. Orientação a Objetos

As Visões. Visões arquiteturais (revisão)

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Banco de Dados Relacional

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Realizando a Análise e Projeto

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Modelo do Mundo Real. Abstração. Interpretação

Linguagem de Modelagem Unificada UML

Modelagem Orientada a Objeto

Guilherme Fernando Gielow

PROJETO DE ARQUITETURA

PCS3413 Engenharia de Software e Banco de Dados

RUP RATIONAL UNIFIED PROCESS

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão

Programação Orientada a Objetos

O Processo Unificado: Workflow de Análise. Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009

From Business Architecture to Software Architecture

Projeto de Sistemas; Projeto Orientado a Objetos; Estruturação em Camadas; Projeto Orientado a Objetos em Camadas; Um Exemplo Ilustrativo.

UML Diagramas Estruturais Diagrama de Componentes

Aula 09. Modelagem de Sistemas. Modelagem 10/10/2012. Modelagem de Sistemas de Informação; Análise e Otimização de Sistemas.

S15 - Engenharia de Requisitos continuação cap.6

From Business Architecture to Software Architecture

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

Engenharia de Requisitos

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

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

REUSO E REUSABILIDADE

Ferramenta de apoio à gerência de requisitos baseada no modelo CMMI. Mariane Meisen. Everaldo Artur Grahl

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Transcrição:

PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1

Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações quando possível: diagrama de sequência. Coesão! medida do quão fortemente são as responsabilidades de uma classe.! atributos e operações de uma classe devem estar altamente correlacionadas Encapsulamento de Objetos! O acesso a informações internas da classe só acessível via sua interface, que permite acesso as operações públicas ou serviços da classe. 2

Dependência entre classes! Uma dependência entre classes indica que uma classe depende dos serviços fornecidos por outra.! Associações entre classes indicam a existência de dependência entre elas.! A forma de dependência entre classes influência a implementação dessas classes. AgendaConsulta HorárioMédico AgendaConsulta depende da classe HorárioMédico Solange N. Alves de Souza 3

Navegabilidade das associações! No modelo de classes de análise as associações são modeladas como sendo bidirecionais.! Para o modelo, se a associação é birecional, então: C 1 C 2 1. Cada objeto de C 1 conhece todos os objetos de C 2 aos quais ele está associado. 2. Cada objeto de C 2 conhece todos os objetos de C 1 aos quais ele está associado. Solange N. Alves de Souza 4

Navegabilidade das associações - continuação! Associações bidirecionais aumentam o acoplamento entre as classes.! Sempre que possível definir o sentido unidirecional para as associações. Cliente -nome: String -datanascimento: Data -telefone: String #/idade: int -limitecrédito: Moeda = 500.0 -quantidadeclientes: int realiza! 1 0..* Pedido -data: Data -hora: Hora -telefone: String -situação: ESitução Associação unidirecional. Cada objeto da classe Pedido conhece o seu objeto correspondente na classe Cliente. Solange N. Alves de Souza 5

Navegabilidade das associações - continuação A definição do sentido da navegabilidade é feita em função dos diagramas de interação construídos para o sistema. Devemos analisar os fluxos das mensagens entre objetos no diagrama de interações. Para dois objetos associados A e B no diagrama de classe, há pelo menos uma mensagem de A para B em algum diagrama de interação, então a associação deve ser navegável da classe A para a B. Se também existir, pelo menos uma mensagem de B para A, então a associação deve ser navegável da classe B para a A. Solange N. Alves de Souza 6

Arquitetura Solange N. Alves de Souza 7

Arquitetura de Software estrutura organizacional do software. Uma arquitetura pode ser recursivamente decomposta em partes que interagem através de interfaces. Relacionamentos conectam as partes e restrições que se aplicam ao agrupamento das partes. Documento de especificação da UML (OMG, 2001) Solange N. Alves de Souza 8

Arquitetura Lógica! Organização das classes em subsistemas! facilita o entendimento do sistema! define de que forma o sistema está dividido e as interfaces entre essas partes (relacionamentos definem interfaces)! Vantagens: q unidades menores de desenvolvimento q maximizar o reuso (uso de componentes já construídas para outros sistemas) q ajuda a gerenciar a complexidade no desenvolvimento 9

Packages! Package é um mecanismo para organizar elementos em grupos.! Para a representação da arquitetura de software, um package é uma coleção de classes para uma determinada aplicação.! Representação: nome Solange N. Alves de Souza 10

Dependência entre Packages A B O package A depende do package B. Solange N. Alves de Souza 11

Subsistema! corresponde a um aglomerado de classes. <<subsistema>> Sistema de Pagamento Relacionamentos de dependência entre subsistemas são usados para representar que um subsistema utiliza serviços de outro. Solange N. Alves de Souza 12

Alocação de classes a subsistemas! modelo de classes do domínio: q classificar classes mais importantes e classes menos importantes. q para cada mais importante criar um subsistema! Acoplamento e coesão q Deve-se manter baixo acoplamento: manter no mínimo a quantidade de associações entre classes de diferentes subsistemas q Dentro de um subsistema deve-se ter máxima coesão: deve haver mais associações dentro de um subsistema do que entre elementos de diferentes subsistemas. Solange N. Alves de Souza 13

Alocação de classes a subsistemas - exemplo! Ex. Sistema de Vendas ela Web <<subsistema>> Pedido classe ItemPedido interna ao subsistema Pedido <<subsistema>> Cliente classe Transportadora interna ao subsistema Entrega <<subsistema>> Entrega Solange N. Alves de Souza 14

<<subsistema>> Sócio <<abstract>> Socio classes com maior acoplamento devem estar no mesmo pacote Diagrama de Sequência maior troca de MSG Piloto Instrutor <<subsistema>> Aluno Aluno Vôo de Aluno Solange N. Alves de Souza 15

Arquitetura em camadas! camada de software: F coleção de unidades de software podem ser executadas ou acessadas.! objetivo: F Atender requisitos não funcionais F portabilidade F manutenabilidade mudanças em camadas mais baixas que não afetem sua interface não implica em mudanças em camadas mais altas. Mudanças em camadas mais altas que não signifiquem em novo serviço em camada mais baixa não altera estas. Solange N. Alves de Souza 16

! a dependência entre camadas pode ser representada por relacionamento de dependência.! camadas mais altas devem depender das camadas mais baixas e não ao contrário. q Isso significa que camadas mais altas têm conhecimento da interface das camadas mais baixas. Solange N. Alves de Souza 17

Mais de duas Camadas! camada de apresentação! camada da aplicação ou de serviço, composta por classe que fornecem a visualização dos dados. Classes de Fronteira Traduz mensagens da camada de apresentação em mensagens compreendidas pelos objetos do domínio. Também controla a navegação do usuário de uma janela para outra. - Classes de Controle! camada de domínio composta por classes que implementam as regras do negócio, validam dados provenientes da camada de aplicação. Classes de Domínio! camada de serviço técnico ou de infraestrutura, Contém classes para permitir que o sistema se comunique com outros sistemas (ex. acesso a um SGBD ou a serviços Web. Todas as camadas superiores são dependentes desta camada. Solange N. Alves de Souza 18

Apresentação Aplicação Arquitetura aberta Camadas mais altas dependem das mais baixas Domínio Serviços Técnico Facilita o gerenciamento da complexidade Facilita o reuso camadas inferiores projetadas para serem independentes das superiores. Solange N. Alves de Souza 19

Arquitetura de três camadas apresentação negócio banco de dados IHC diagrama de classes DAOs Solange N. Alves de Souza 20

Sistema para Hospital! PacotePaciente: coleção de classes relacionadas com paciente (ex.: Paciente, HistóricoPaciente).! PacoteHospital: coleção de classes relacionadas com hospital (Quarto, Leito, Enfermeiro, Médico). PacotePaciente PacoteHospital PacotePaciente depende de PacoteHospital (por exemplo, paciente contém referência a leito) PacoteHospital depende de PacotePaciente (por exemplo, enfermeiro contém referência a paciente) Solange N. Alves de Souza 21

Camada Apresentação Camada Negócio BibliotecaIHC IHCGerência Paciente Aplicativo Gerência Paciente Camada BD BibliotecaBD Pacote AcessoBD Pacote Hospital Pacote Paciente Solange N. Alves de Souza 22

Camada de Negócio! PacotePaciente: coleção de classes relacionadas com paciente (ex.: Paciente, HistoricoPaciente).! PacoteHospital: coleção de classes relacionadas com a instalação do hospital (Quarto, Leito, Enfermeiro, Medico).! AplicativoGerênciaPaciente: contém o software que implementa as políticas e os procedimentos para internação e alta de paciente. Solange N. Alves de Souza 23

Camada de Apresentação! IHCGerênciaPaciente: contém o software para a interface da aplicação! BibliotecaIHC: contém classes para implementar a interface gráfica Solange N. Alves de Souza 24

Camada de BD! Pacote AcessoBD: contém o software para acesso a banco de dados! Pacote BibliotecaBD: contém classes para suporte de banco de dados Solange N. Alves de Souza 25

Vantagens e Desvantagens! manutenabilidade! divisão dos objetos pelas três camadas menor acoplamento entre elas mais fácil reutilização.! maior número de usuários! pode-se dividir a carga de processamento entre camadas de negócio e acesso a dados! menor desempenho F mapeamento dos objetos entre as camadas! maior complexidade na implementação Solange N. Alves de Souza 26