Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Modelagem de Sistemas Orientado a Objeto por Rita Suzana Pitangueira Maciel 2009 © ritasuzana@dcc.ufba.br © ritasuzana@dcc.ufba.br 2 Bibliografia �UML – Guia do Usuário ִJames Rumbaugh, Grady Booch, e al. ִUML e padrões. Craig Larman �Princípios de Análise e Projeto de Sistemas com UML ִEduardo Bezerra �Especificação da UML ִ http://www.omg.org/technology/documents/formal/uml.htm. © ritasuzana@dcc.ufba.br 3 Avaliação �Estudo de Caso – Modelagem �Exercícios em sala © ritasuzana@dcc.ufba.br 4 Roteiro �Desenvolvimento de Software �Engenharia de Software �Conceitos Básicos da Orientação a Objeto �Análise Orientada a Objeto �UML © ritasuzana@dcc.ufba.br 5 Desenvolvimento de Software �Utilização de computadores na sociedade ִcrescente demanda por soluções computadorizadas �Evolução do hardware tem sido mais acentuada ִmáquinas cada vez mais velozes e com maior capacidade de processamento © ritasuzana@dcc.ufba.br 6 Desenvolvimento de Software �Crise de Software ִdemanda muito superior à capacidade de desenvolvimento ִqualidade insuficiente dos produtos ִestimativas de custo e tempo raramente cumpridas nos projetos © ritasuzana@dcc.ufba.br 7 Engenharia de Software �Área de pesquisa �Objetivos ִmelhoraria da qualidade dos produtos de software ִaumento da produtividade no processo de desenvolvimento © ritasuzana@dcc.ufba.br 8 Engenharia de Software �Construção de uma solução computadorizada ִConsiste mapeamento do problema a ser resolvido no mundo real num modelo de solução no Espaço de Soluções Espaço de Soluções • meio computacional © ritasuzana@dcc.ufba.br 9 Engenharia de Software �A modelagem envolve ִidentificação de objetos e operações relevantes no mundo real ִmapeamento desses em representações abstratas no Espaço de Soluções © ritasuzana@dcc.ufba.br 10 Engenharia de Software �Gap Semântico ִHiato semântico ִdistância existente entre o problema no mundo real e o modelo abstrato construído ִquanto menor ele for, mais direto será o mapeamento mais rapidamente serão construídas soluções para o problema ִárea de atuação da Engenharia de Software © ritasuzana@dcc.ufba.br 11 Engenharia de Software Objeto 1 Objeto 2 Objeto 3 Programas Dados Hiato Semântico Mundo Real Mundo Computacional © ritasuzana@dcc.ufba.br 12 Engenharia de Software �Técnicas e métodos têm sido propostos para as diferentes fases do processo de desenvolvimento, buscando minimizar o gap. �Abordagens para o Desenvolvimento de Software ִMétodos Orientados a Funções ִMétodos Orientados a Dados ִMétodos Orientados a Objeto © ritasuzana@dcc.ufba.br 13 Engenharia de Software �Funções ִ são ativas e têm comportamento �Dados ִsão repositórios passivos de informação ִafetados por funções �Divisão tem origem na arquitetura de hardware de Von Neumann ִseparação entre programa e dados é fortemente enfatizada. © ritasuzana@dcc.ufba.br 14 Engenharia de Software �Métodos Orientados a Funções ִconduzem o desenvolvimento de software estruturando as aplicações segundo a ótica das funções (ações) que o sistema deverá realizar ִO sistema é decomposto em funções dados são enviados entre elas ִAnálise Estruturada Cris Gane © ritasuzana@dcc.ufba.br 15 Engenharia de Software �Métodos Orientados a Dados ִenfatizam a identificação e estruturação dos dados ִsubjulgando a análise das funções para um segundo plano ִOrigem Modelo de Entidades e Relacionamentos (MER) Peter Chen,1979 © ritasuzana@dcc.ufba.br 16 Engenharia de Software �Métodos Orientados a Dados - Motivação ִA ênfase nas funções leva a sistemas com muita redundância ִInconsistentes e difíceis de serem integrados ִDados possuem existência própria nas organizações independentemente dos processos que os manipulam ִDados são muito mais estáveis que as funções em uma organização © ritasuzana@dcc.ufba.br 17 Engenharia de Software �Metodologias Dados X Função ִmodelo de dados deve representar a realidade conhecimento da realidade, muitas vezes, passa pelo conhecimento das funções ִtodas as funções têm de conhecer como os dados estão armazenados (estrutura dos dados) ִmudanças na estrutura dos dados quase sempre acarretam modificações em todas as funções relacionadas a essa estrutura © ritasuzana@dcc.ufba.br 18 Engenharia de Software �Metodologias Dados X Função ִambas as abordagens afastam-se do mundo real ִdados e funções são aspectos fundamentais que guardam estreita inter-relação na concepção de um sistema devem ser tratados em conjunto ִinterpretação dos dados é provida pelos programas que lêem ou escrevem dados ִprogramas podem dar diferentes interpretações aos dados necessário conhecer como eles foram projetados para poder interpretá-los corretamente © ritasuzana@dcc.ufba.br 19 Engenharia de Software �Métodos Orientados a Objeto ִpartem de um ponto de vista distinto e intermediário ִmundo real é composto de objetos ִobjeto é uma entidade que combina estrutura de dados e comportamento funcional ִsistemas são modelados como um número de objetos que interagem entre si © ritasuzana@dcc.ufba.br 20 Engenharia de Software �Métodos Orientados a Objeto ִobjetivos diminuir o gap semântico trabalhar com noções intuitivas durante todo o ciclo de vida retardar, ao máximo, a introdução de conceitos de implementação ִperspectiva mais humana de observação da realidade © ritasuzana@dcc.ufba.br 21 Engenharia de Software �Métodos Orientados a Objeto • Capacidade de enfrentar novos domínios de aplicação; • Melhoria da interação entre analistas e especialistas; • Aumento da consistência interna dos resultados da análise; • Uso de uma representação básica consistente para a análise e projeto; • Alterabilidade, legibilidade e extensibilidade; • Possibilidade de ciclos de desenvolvimento variados; • Apoio à reutilização. © ritasuzana@dcc.ufba.br 22 Conceitos Básicos �Objeto ִunidade real ou abstrata ִindividualizada ִrepresenta um conceito da realidade humana ִocupa espaço físico (mundo físico) lógico (memória) ִentidade que incorpora uma abstração relevante para o conceito da aplicação © ritasuzana@dcc.ufba.br 23 Conceitos Básicos �Objeto ִAbstração © ritasuzana@dcc.ufba.br 24 Conceitos Básicos �Estado ִconjunto das propriedades de um objeto ִatributos e aos valores a eles associados © ritasuzana@dcc.ufba.br 25 Conceitos Básicos �Comportamento ִconjunto de serviços (operações) que outros objetos (clientes) podem requisitar © ritasuzana@dcc.ufba.br 26 Conceitos Básicos �Operações ִrecuperam ou manipulam a informação de estado de um objeto ִreferem-se apenas às estruturas de dados do próprio objeto não devem acessar diretamente estruturas de outros objetos ִalvo invocado por um objeto ִserviço de uma classe © ritasuzana@dcc.ufba.br 27 Conceitos Básicos �Identidade ִcada objeto tem uma identidade própria ִobjetos têm existência própria ִobjetos são distintos mesmo se seu estado e comportamento forem iguais ִcada objeto dispõe de um identificador único pelo qual pode ser referenciado inequivocamente © ritasuzana@dcc.ufba.br 28 Conceitos Básicos �Um objeto possui estado, exibe algum comportamento bem definido e possui identidade própria © ritasuzana@dcc.ufba.br 29 Conceitos Básicos �Encapsulamento ִInteração entre objetos sem conhecimento do funcionamento interno © ritasuzana@dcc.ufba.br 30 Conceitos Básicos �Encapsulamentoִocultamento de informação ִseparação dos aspectos externos de um objeto acessíveis por outros objetos ִdetalhes internos de implementação ocultos dos demais objetos ִa estrutura de um objeto e a implementação de seus métodos são encapsuladas © ritasuzana@dcc.ufba.br 31 Conceitos Básicos �Encapsulamento ִusuários têm conhecimento operações que podem ser requistadas do que as operações realizam ִnão é necessário saber como foram implementadas © ritasuzana@dcc.ufba.br 32 Conceitos Básicos �Encapsulamento ִMotivação facilitar a reutilização de objetos garantir estabilidade aos sistemas base para a localização de decisões de projeto que necessitam ser alteradas Se a operação está encapsulada • apenas o objeto que a define precisa ser modificado, garantindo estabilidade ao sistema. © ritasuzana@dcc.ufba.br 33 Conceitos Básicos �Classe ִmodelo que descreve a estrutura e o comportamento de objetos ִdescrição de atributos e operações ִos objetos compartilham atributos operações relações semântica ִconjunto de objetos © ritasuzana@dcc.ufba.br 34 Conceitos Básicos �Instância ִum membro descrito por uma classe ִobjetos que se comportam da maneira especificada pela classe ִuso informal objeto -> instância © ritasuzana@dcc.ufba.br 35 Conceitos Básicos �Método ִprocedimento ִimplementação de uma operação �Métodos Construtores ִChamados quando objetos são inicializados �Os objetos se comunicam através de mensagens ִOperações são executadas sempre que um objeto recebe uma mensagem de outro objeto © ritasuzana@dcc.ufba.br 36 Conceitos Básicos �Persistência ִpropriedade de objetos através da qual sua existência transcende o tempo e/ou o espaço ִobjeto poder continuar a existir após seu criador ter deixado de existir ִtempo de vida é independente do tempo de vida do programa que o criou © ritasuzana@dcc.ufba.br 37 Conceitos Básicos �Polimorfismo ִQuando a mesma operação possui métodos (implementação) diferentes em classes distintas ִExemplos Mover uma janela Mover uma figura Transferir um funcionário Transferir um departamento © ritasuzana@dcc.ufba.br 38 Conceitos Básicos �Polimorfismo -Vantagens ִPermite envio de mensagens a um objeto sem a determinação exata do seu tipo. extensibilidade do sistema com pouco ou nenhum impacto nas classes existentes. construção de classes genéricas para efetuar tarefas gerais comuns aos softwares, como as estruturas de dados. © ritasuzana@dcc.ufba.br 39 Conceitos Básicos �Sobrecarga • Um método pode ter o mesmo nome que outro método na mesma classe. • Isto é usual quando existem duas ou mais formas diferentes de se realizar a mesma tarefa. • Neste caso diz-se que o método está sobrecarregado. © ritasuzana@dcc.ufba.br 40 Conceitos Básicos �Sobrecarga • Uma sobrecarga é válida se a assinatura do método difere no número ou no tipo dos parâmetros. • Diferenças no nome dos parâmetros não são relevantes. • Diferenças no tipo de retorno são permitidas, mas não são relevantes. © ritasuzana@dcc.ufba.br 41 Conceitos Básicos �Herança ִÉ o compartilhamento de atributos e operações entre classes baseado em uma relação de hierarquia ִHierarquia CLASSES E SUB CLASSES ִUma subclasse herda todas as propriedades da sua superclasse ִÉ adicionado suas próprias propriedades ou atributos Ex: WINDOWS • Scrolling Windows • Fixed Windows © ritasuzana@dcc.ufba.br 42 Conceitos Básicos �Herança ִum mecanismo para modelar similaridades entre classes ִpossibilita tornar explícitos atributos e serviços comuns em uma hierarquia de classes ִpossibilita reutilização, captura explícita de características comuns e definição incremental de classes © ritasuzana@dcc.ufba.br 43 Conceitos Básicos �Herança Simples ִquando uma subclasse herda características de uma única superclasse �Herança Múltipla ִquando uma classe é definida a partir de duas ou mais superclasses ִproblema colisão de atributos e/ou métodos © ritasuzana@dcc.ufba.br 44 Análise Orientada a Objeto �Sistemas concebidos e implementados em uma forma próxima de como a mente humana percebe o mundo da aplicação �Aplicação ִobjetos ִinteração entre objetos distintos ִobjetos com comportamento próprio ִobjetos com propriedades diversas ִcomunicação entre objetos © ritasuzana@dcc.ufba.br 45 Análise Orientada a Objeto �Desenvolvimento incremental e evolutivo �Reusabilidade �Possibilidade de incorporação de pequenas diferenças a elementos do sistema ִgeneralização/especialização �Modularidade © ritasuzana@dcc.ufba.br 46 Análise Orientada a Objeto �Propósito ִDefinição de todas as classes (e os relacionamentos e comportamento associados a ela) que são relevantes para o problema a ser resolvido. © ritasuzana@dcc.ufba.br 47 Análise Orientada a Objeto �Tarefas (fases) • Levantamento de Requisitos • Identificação de Classes • Especificação de Hierarquias de Classes • Identificação de Associações e Atributos • Modelagem do Comportamento • Definição das Operações © ritasuzana@dcc.ufba.br 48 Análise Orientada a Objeto � Fases ִ Modelagem conceitual ִ Projeto e Design ִ Implementação © ritasuzana@dcc.ufba.br 49 UML �Unified Modeling Language ִLinguagem de modelagem ִNão é uma metodologia não prescreve procedimentos de utilização ִBaseada OMT • James Rumbaugh BOOCH • Grady Booch OOSE • Jacobson © ritasuzana@dcc.ufba.br 50 UML © ritasuzana@dcc.ufba.br 51 UML �Objetivos ִLinguagem de modelagem visual ִExtensibilidade e especialização para apoiar conceitos essenciais ִIndependente de linguagens de programação e processos de desenvolvimento ִEncorajar o crescimento do número de ferramentas orientadas a objeto no mercado © ritasuzana@dcc.ufba.br 52 UML 2.0 © ritasuzana@dcc.ufba.br 53 UML 2.0 �Motivação ִApoio ao Desenvolvimento Dirigido a Modelos ִDesenvolvimento Baseado em Componentes ִ Sistemas de Tempo Real ִMais “formalização” OCL – Object Constraint Language © ritasuzana@dcc.ufba.br 54 UML �Visões ִA documentação de um sistema pode ser refletida em visões distintas. © ritasuzana@dcc.ufba.br 55 UML - Visões �Caso de Uso ִComportamento do sistema através da ótica do usuário ִFuncionalidades do sistema ִNão especifica a organização do sistema ִPode ser especificada: Diagrama de casos de uso Diagramas de interação, estados e atividades © ritasuzana@dcc.ufba.br 56 UML - Visões �Projeto ִVocabulário do problema e a sua solução ִDefine o aspecto lógico e interno do sistema ִEstrutura estática e dinâmica dos objetos © ritasuzana@dcc.ufba.br 57 UML - Visões � Processo ִFoco em questões relacionadas a mecanismos de concorrência e sincronismo ִTrata a divisão do sistema em processos e processadores: execuções paralelas; gerenciamento de eventos assíncronos; comunicação e a concorrência de threads. � Possui foco no desempenho e escalabilidade do sistema © ritasuzana@dcc.ufba.br 58 UML - Visões �Implementação ִMontagem e funcionamento do sistema físico ִComponentes ִArquivos �Implantação ִTopologia de hardware em que o sistema é executado © ritasuzana@dcc.ufba.br 59 UML �Modelagem Estrutural ִDiagrama de Classe ִDiagrama de Objeto ִDiagrama de Componente ִDiagrama de Estrutura Composta ִDiagrama de Pacotes ִDiagramas de Implantação © ritasuzana@dcc.ufba.br 60UML �Modelagem Comportamental ִDiagrama de Caso de Uso ִDiagrama de Seqüência ִDiagrama de Comunicação ִDiagrama de Tempo ִDiagrama de Estado ִDiagramas de Atividades © ritasuzana@dcc.ufba.br 61 UML - Diagramas Diagrama de Comunicação © ritasuzana@dcc.ufba.br 62 Diagrama de Caso de Uso Sistema Caso de usointeração ator © ritasuzana@dcc.ufba.br 63 UML �Diagrama de Caso de Uso ִDescreve a visão externa do sistema ִInteração típica entre um usuário e um sistema ִInterações com o mundo exterior ִVisão de alto nível da resposta do sistema em relação a uma requisição do usuário ִApresenta possíveis situações do mundo real para o sistema © ritasuzana@dcc.ufba.br 64 Diagrama de Caso de Uso �Ferramenta essencial ִna captura dos requisitos de um sistema ִplanejamento e controle de projetos iterativos � A captura dos casos de uso é a primeira atividade a ser realizada na fase de análise de requisitos. � A maioria dos casos de uso será gerada durante a fase de análise de requisitos � Outros casos de uso podem ser descobertos à medida que o trabalho prossegue © ritasuzana@dcc.ufba.br 65 Diagrama de Caso de Uso � Requisitos Funcionais ִ Requisitos do Usuário ִ Requisitos de Sistema � Um modelo que descreve os requisitos de um sistema através de casos de uso. ִ Contrato entre o cliente e os desenvolvedores � Uso ִ clientes - melhor entender o sistema ִ projetistas - base do trabalho ִ testadores - projetar atividades de teste ִ gerente - planejar as atividades de desenvolvimento ִ arquiteto - identificar requisitos da arquitetura © ritasuzana@dcc.ufba.br 66 Diagrama de Caso de Uso � Elementos ִAtores e Casos de Uso ִAtor Agente externo que interage com o sistema. Comunica-se com o sistema enviando e recebendo mensagens. Pode representar: pessoas, papéis, outros sistemas, outros órgãos,etc... • Mais comum • Papel que um usuário desempenha com respeito ao sistema Qualquer coisa que troque informação com o sistema Leitor © ritasuzana@dcc.ufba.br 67 Diagrama de Caso de Uso ִElementos Casos de uso • Funcionalidades requeridas externamente. • Modelam um diálogo entre um ator e o sistema • É sempre iniciado por um ator (direta ou indiretamente). • Deve ser completo (atômico). • Despacha algum valor para o ator. © ritasuzana@dcc.ufba.br 68 Diagrama de Caso de Uso Ator1 Ator2 Caso de Uso1 Caso de Uso2 Caso de Uso3 ator caso de uso © ritasuzana@dcc.ufba.br 69 �Modelo de Caso de Uso ִUm conjunto de casos incluídos por um limite de domínio � Resumindo ... ִ“É uma descrição de um conjunto de seqüências de ações, inclusive variantes, que um sistema executa para produzir um resultado de valor observável por um ator” ִEspecifica o que o sistema irá fazer, mas não como Diagrama de Caso de Uso © ritasuzana@dcc.ufba.br 70 Diagrama de Caso de Uso Marcação de Consulta ou exames Consulta Médica Encaminhamento do associado para exames Coleta do Material do Exame Diagnose Associado Credenciado © ritasuzana@dcc.ufba.br 71 Diagrama de Caso de Uso N Caso de Uso Quem Inicia Ação Descrição do Caso de Uso 1 Marcação de consultas ou exames Associado O associado entra em contato com o credenciado para marcar consultas ou exames 2 Consulta Médica Associado O associado encaminha-se ao local da consulta e é atendido pelo credenciado 3 Encaminhamento do associado para exames Credenciado O credenciado encaminha o associado para a realização de exames laboratoriais © ritasuzana@dcc.ufba.br 72 Diagrama de Caso de Uso �Atores são externos ao sistema ִdefinir fronteiras entre atores e casos de uso, está-se delimitando o escopo do sistema �Atores não precisam ser descritos em detalhes © ritasuzana@dcc.ufba.br 73 Diagrama de Caso de Uso �Relacionamentos entre casos de usos ִusa (include) ִestende (extends) © ritasuzana@dcc.ufba.br 74 Diagrama de Caso de Uso �Relacionamento usa ִocorre quando há uma porção de comportamento que é similar ao longo de um ou mais casos de uso e não se deseja repetir a sua descrição ִatividades duplicadas em outros casos de uso ִum caso de uso inicia o outro © ritasuzana@dcc.ufba.br 75 Diagrama de Caso de Uso �Relacionamento usa - Exemplo Comprar Itens Pagar com Dinheiro Pagar com Cheque Pagar com Cartão Cliente Caixa <<include>> <<include >> <<include>> © ritasuzana@dcc.ufba.br 76 Diagrama de Caso de Uso �Relacionamento usa – Exemplo N Caso de Uso Quem Inicia Ação Descrição do Caso de Uso 1 Comprar Itens Cliente O Cliente se dirige ao caixa com os itens que deseja comprar, paga, recebe nota e leva os itens. 2 Pagamento com Dinheiro Cliente O cliente paga com dinheiro, o caixa registra a entrada da quantia e saída do troco. 3 Pagamento com Cheque Cliente O cliente paga com cheque, o caixa registra informações, solicita autorização e registra a entrada da quantia. © ritasuzana@dcc.ufba.br 77 Diagrama de Caso de Uso �Relacionamento estende ִquando se tem um caso de uso que é similar a outro, mas faz alguma coisa a mais ִvariações de um caso de uso tais como tratamento de exceções ִdescreve-se o comportamento normal em um caso de uso e o comportamento não usual em outro © ritasuzana@dcc.ufba.br 78 Diagrama de Caso de Uso �Relacionamento Estende-Exemplo Aluno Matricular Aluno Matricular Aluno Transferido <<extend>> extension points Solic.Transfer. © ritasuzana@dcc.ufba.br 79 Diagrama de Caso de Uso �Relacionamento Estende-Exemplo © ritasuzana@dcc.ufba.br 80 Diagrama de Caso de Uso �Relacionamento estende ִdeve ser usado da seguinte forma: Em primeiro lugar, capture o caso de uso normal, simples; Para cada passo neste caso de uso, pergunte: • “O que pode andar errado aqui?” e “Como isto pode funcionar de forma diferente?”; Descreva todas as variações como extensões do caso de uso dado Pode haver um número relativamente alto de extensões e, ao listá-las separadamente, fica mais fácil de entender. © ritasuzana@dcc.ufba.br 81 Diagrama de Caso de Uso �Utilize o relacionamento estende quando estiver descrevendo uma variação de um comportamento normal �Utilize o relacionamento usa quando houver repetição em dois ou mais casos de uso separados e for desejável evitar esta repetição © ritasuzana@dcc.ufba.br 82 Diagrama de Caso de Uso �Casos de uso enfocam uma particular funcionalidade ִanalise da funcionalidade total do sistema de maneira incremental �Casos de uso para áreas funcionalmente diferentes podem ser desenvolvidos independentemente ִreunião posterior para formar um modelo de requisitos completo �Desenvolvimento em paralelo © ritasuzana@dcc.ufba.br 83 Diagrama de Caso de Uso �Uma vez que a funcionalidade do sistema tiver sido capturada nos casos de uso, ela deve ser alocada a diferentes classes ִUma classe pode ser comum a diversos casos de uso © ritasuzana@dcc.ufba.br 84 UML - Diagrama de Classe �Após a análise de requisitos �Modelo cerne �A identificação das classes é uma tarefa crucial para o desenvolvimento de um sistema OO © ritasuzana@dcc.ufba.br 85 Diagrama de Classe �Diagrama de Classe ִEstrutura estática do sistema ִDefinição de Classes Atributos Métodos © ritasuzana@dcc.ufba.br 86 Diagrama de Classe �Identificação das classes do sistema • Estude o domínio de aplicação; • Faça uma observação geral no ambiente real onde existe o problema; • Procure ouvir atentamente os especialistas do domínio do problema;• Verifique, se existirem, resultados de AOOs anteriores em domínios semelhantes; • Observe outros sistemas no mesmo domínio ou em domínios similares; • Consulte fontes bibliográficas © ritasuzana@dcc.ufba.br 87 Diagrama de Classe �Observe os seguintes elementos ִobjetos físicos ou conceituais que formam uma abstração coesa sistema precisa manipular informações ִoutros sistemas e “terminadores externos” que se comunicam ou interagem com o sistema • informações estão sendo trocadas; ִdispositivos físicos com os quais o sistema em estudo terá de interagir sem considerar a tecnologia para implementar o sistema em si © ritasuzana@dcc.ufba.br 88 Diagrama de Classe �Potenciais candidatos a classes • coisas que são parte do domínio de informação do problema; • ocorrências ou eventos que precisam ser registrados e lembrados pelo sistema; • papéis desempenhados pelas diferentes pessoas que interagem direta ou indiretamente com o sistema; • locais físicos ou geográficos e lugares que estabelecem o contexto do problema; • unidades organizacionais (departamentos, divisões, etc...) que possam ser relevantes para o sistema. © ritasuzana@dcc.ufba.br 89 UML - Classes �Exemplos Professor nome: String titulação:integer altera-gratificação ( ): Real Professor Professor nome: String titulação:integer © ritasuzana@dcc.ufba.br 90 UML - Diagrama de Classes �Generalização / Especialização Pessoa EstudanteProfessor Técnico Pessoa EstudanteProfessor Técnico © ritasuzana@dcc.ufba.br 91 UML - Diagrama de Classes �Generalização/Especialização ִExemplos Pessoa EstudanteProfessor Técnico {disjunta, incompleta} © ritasuzana@dcc.ufba.br 92 UML - Diagrama de Classes �Generalização/Especialização ִClasse Abstrata Uma classe que não possui instâncias ִClasse Concreta Uma classe que é diretamente instanciada © ritasuzana@dcc.ufba.br 93 UML - Diagrama de Classes �Herança Múltipla ִUma classe pode possuir mais de uma superclasse e herdar características de todas estas classes ִClasse de junção classe com mais de uma superclasse © ritasuzana@dcc.ufba.br 94 UML - Diagrama de Classes �Herança Múltipla ִExemplo Veículo Veículo Terrestre Veículo Aquático Carro VeículoAnfíbio Barco © ritasuzana@dcc.ufba.br 95 UML - Diagrama de Classes �Diretrizes podem ser usadas analisar as hierarquias modeladas • modelam relações “é-um-tipo-de” • toda subclasse deve ser um tipo específico das suas superclasses. • uma subclasse deve suportar toda a funcionalidade (atributos, relacionamentos e operações) definida por suas superclasses, e possivelmente mais. • a funcionalidade comum a diversas classes deve ser posicionada o mais alto possível na hierarquia. • Classes abstratas não podem herdar de classes concretas. • Classes que não adicionam funcionalidade devem ser eliminadas. © ritasuzana@dcc.ufba.br 96 UML - Diagrama de Classes �Se uma classe é dita sub-classe de outra ִ todas as instâncias da sub-classe têm de ser também, por definição, instâncias da super- classe. ִTudo que válido para a super-classe (relacionamentos, atributos e operações) têm de ser válido também para a sub-classe © ritasuzana@dcc.ufba.br 97 UML - Diagrama de Classes �Associação ִRelacionamento estrutural ִ“Conexão” entre objetos ִDescreve um conjunto de ligações em potencial Professor ensina Disciplina © ritasuzana@dcc.ufba.br 98 UML - Diagrama de Classes �Associação - Grau Disciplina requer Professor ensina Disciplina Professor Sala de Aula Disciplina ensina-em © ritasuzana@dcc.ufba.br 99 UML - Diagrama de Classes �Associação - Multiplicidade 0..1 - a cardinalidade pode ser 0 ou 1; 1 - a cardinalidade só pode ser 1; 0..* - a cardinalidade pode variar de 0 até infinito; * - a cardinalidade pode variar de 0 até infinito; 1..* - a cardinalidade pode variar de 1 até infinito; 1..6 - a cardinalidade pode variar de 1 até 6; 1..3,7..10,15,19..* - a cardinalidade pode ser 1, 2, 3, 7, 8, 9, 10, 15, e a partir de 19 até infinito. © ritasuzana@dcc.ufba.br 100 UML - Diagrama de Classes ensina Disciplina1 1..*Professor �Multiplicidade - Exemplo © ritasuzana@dcc.ufba.br 101 UML - Diagrama de Classes �Papel ִIdentifica a função exercida por um objeto em uma associação. ִÉ uma extremidade de uma associação Trabalha-Para Pessoa Empresa Empregado Empregador 0..*1 © ritasuzana@dcc.ufba.br 102 UML - Diagrama de Classes �Associação – Navegabilidade ִComo é possível chegar em um objeto a partir de outro ִPor padrão associações são bidirecionais Ambas classes sabem do seu relacionamento com a outra © ritasuzana@dcc.ufba.br 103 UML - Diagrama de Classes �Associação Bidirecional Vôo Aeronave -vooAssociado -aeronaveAssociado 0..* 0..1 © ritasuzana@dcc.ufba.br 104 UML - Diagrama de Classes �Associação Unidirecional ִMostra que as classes são relacionadas, mas que só uma delas está ciente desta relação ִContêm apenas um nome de papel, um valor de multiplicidade e um atributo de visibilidade © ritasuzana@dcc.ufba.br 105 UML - Diagrama de Classes � Associação Unidirecional © ritasuzana@dcc.ufba.br 106 UML - Diagrama de Classes �Associação Unidirecional RelatorioVôoOverbook Vôo -vooOverbook 0..* © ritasuzana@dcc.ufba.br 107 UML - Diagrama de Classes �Ordenação ִNo relacionamento 1:N ou N:M existe uma ordenação entre os elementos ִNão especifica como a ordenação é estabelecida Janela Tela visível {ordenadas} 11..* © ritasuzana@dcc.ufba.br 108 titulação: String avaliação: Integer UML - Diagrama de Classes �Classe de Associação / Relacionamento � Quando um relacionamento entre classes possui atributos ou outras informações necessárias Professor Estudante*1..* Orientação © ritasuzana@dcc.ufba.br 109 UML - Diagrama de Classes �Agregação ִum objeto é composto por outros objetos ִdefine a relação “é parte de” Laboratório Equipamento 1..*1 © ritasuzana@dcc.ufba.br 110 UML - Diagrama de Classes �Agregação Composição ִTipo mais forte de agregação ִObjetos agregados dependem fortemente objeto agregador ִSó existem enquanto o objeto agregador existir parágrafo frase1..*1 © ritasuzana@dcc.ufba.br 111 UML - Diagrama de Classes �Agregação Composição ִTempo de vida vinculados ִOs objetos que fazem parte do composto e são criados após o composto e são destruídos junto com o composto ִObjeto agregado só pode fazer parte de um agregador em um determinado momento parágrafo frase1..*1 © ritasuzana@dcc.ufba.br 112 UML - Diagrama de Classes �Agregação Composição ִNo “Baixo nível” Agregação Simples • Termos de passagem por parâmetro, seria uma passagem por valor. Agregação Composição • Passagem por referência. • O todo contém as partes (e não referências para as partes). Quando o todo desaparece, todas as partes também desaparecem. © ritasuzana@dcc.ufba.br 113 UML - Diagrama de Classes public class A { private B b; public A( ){ b = new B(); } } public class B { public B( ){ } } �Agregação Composição © ritasuzana@dcc.ufba.br 114 UML - Diagrama de Classes �Intefaces ִColeção de operações ִEspecificam serviço de uma classe ou componente ִComportamento externo e visível Assinatura das operações IJanela abrir() fechar() mover() exibir() IJanela abrir() fechar() mover() exibir() <<Interface>> © ritasuzana@dcc.ufba.br 115 UML - Diagrama de Classes �Interfaces ִRepresentação através de classe estereotipada(<<interface>>) ou por um círculo. ִPodem participar de associações, generalizações e dependências. © ritasuzana@dcc.ufba.br 116 UML - Diagrama de Classes �Dependência ִRelacionamento de utilização ִEspecifica que a alteração em um item poderá afetar o outro que o utiliza ִRepresentada por uma seta com linha tracejada DeclaracaoIR Calculadora usa 1 1 © ritasuzana@dcc.ufba.br 117 UML - Diagrama de Classes �Perspectivas ִConceitual Representa os conceitos do domínio em estudo. Perspectiva destinada ao cliente. ִEspecificação Tem foco nos principais aspectos da arquitetura, nos principais métodos. • Foco no o que e não como eles irão ser implementados. Perspectiva destinada as pessoas que não precisam saber detalhes de desenvolvimento. • Tais como gerentes de projeto © ritasuzana@dcc.ufba.br 118 UML - Diagrama de Classes �Implementação ִ Vários detalhes de implementação Navegabilidade, tipo dos atributos, etc. ִPerspectiva destinada ao time de desenvolvimento. UML – Diagrama de Pacotes Se um sistema é composto de uma quantidade pequena de classes, é fácil gerenciá-las Sistemas grandes podem ser compostos por centenas de classes Nestes casos é necessário um mecanismo para agrupá-las de modo a facilitar a sua utilização e manutenção© ritasuzana@dcc.ufba.br 119 © ritasuzana@dcc.ufba.br 120 UML – Diagrama de Pacotes �Pacotes ִsão mecanismos de propósito geral para organizar elementos em grupos. ִElemento de um modelo que pode conter outros elementos do modelo. ִAgrupam logicamente classes e outros pacotes. Artefatos de Controle © ritasuzana@dcc.ufba.br 121 UML – Diagrama de Pacotes � Visão de alto nível �Pacotes possuem uma interface pública, que é realizada por suas classes componentes Artefatos da GUI Artefatos de Controle © ritasuzana@dcc.ufba.br 122 UML- Diagrama de Interação Evento de saída (resposta) Objeto 1 Objeto 2 mensagem Ator Ator Evento de entrada (estímulo) Tempo �Descrevem como grupos de objetos colaboram em um certo comportamento interno do sistema © ritasuzana@dcc.ufba.br 123 UML- Diagrama de Interação �O fluxo de execução de um cenário é capturado através de diagramas de interações ִDiagrama de Sequência ִDiagrama de Comunicação © ritasuzana@dcc.ufba.br 124 Diagramas de Interação �Diagramas de Seqüência ִÊnfase na ordenação temporal de mensagens �Diagramas de Comunicação ִÊnfase nas mensagens trocadas por objetos relacionados © ritasuzana@dcc.ufba.br 125 UML- Diagrama de Seqüência �Comportamento dos objetos em um sistema ִExibe as classes e objetos que participam de um cenário ִExibe as mensagens trocadas pelos participantes para possibilitar a funcionalidade no cenário Seqüência temporal de mensagens © ritasuzana@dcc.ufba.br 126 UML- Diagrama de Seqüência �Notação para objetos © ritasuzana@dcc.ufba.br 127 UML- Diagrama de Seqüência �Componentes Classe-1 Classe-2 [condição] * msg() descrição textual do que está acontecendo. ... © ritasuzana@dcc.ufba.br 128 UML- Diagrama de Seqüência �Nível mais detalhado © ritasuzana@dcc.ufba.br 129 UML- Diagrama de Seqüência �Nível elementar © ritasuzana@dcc.ufba.br 130 UML - Diagrama de Seqüência �Mensagem Reflexiva ִAutomensagem Remetente é também o receptor. Corresponde a uma mensagem para this (self). © ritasuzana@dcc.ufba.br 131 UML - Diagrama de Seqüência �Mensagem criação © ritasuzana@dcc.ufba.br 132 UML - Diagrama de Seqüência �Mensagem exclusão © ritasuzana@dcc.ufba.br 133 UML - Diagrama de Seqüência �Exemplo : cliente Solicitação_Pedido Pedido Itens de Estoque Item Pedido solicita_pedido(dados_cliente, lista de i tens) inclui_pedido(numero,data,dados_cliente) verifica_itens_estoque(item, qtd) inclui_item_pedido(item_estoque) atualiza_estoque(item,qtd) © ritasuzana@dcc.ufba.br 134 UML - Diagrama de Seqüência �Exercício ִAlterar o diagrama anterior © ritasuzana@dcc.ufba.br 135 UML - Diagrama de Comunicação �Colaboração ִvisão de um conjunto de elementos de modelagem ִpropósito particular ִInteração organizada em torno de objetos © ritasuzana@dcc.ufba.br 136 UML - Diagrama de Comunicação �Componentes : Nome_classe_2 1*: [condição] msg() : Nome_classe_1 © ritasuzana@dcc.ufba.br 137 UML - Diagrama de Comunicação funcionário pedido Item de pedido Item de estoque Item de entrega 1: preparar pedido 2:incluir itens 3: remover 4:atualizar pedido © ritasuzana@dcc.ufba.br 138 Diagrama Seqüência versus Diagrama de Comunicação �Ambos expressam informações semelhantes porém de maneira diferente �Diagrama de Colaboração ִrelacionamento entre objetos ִtempo é uma dimensão separada �Diagrama de Seqüência ִseqüência explícita das mensagens © ritasuzana@dcc.ufba.br 139 UML - Modularização das Interações � Embora ainda sejam válidos na UML 2.0, os elementos de controle (condição e iteração) foram parcialmente substituídos por outros elementos na UML 2.0: ִ Quadros de interação ִ Fragmentos combinados ִ Operadores de Interações ִ Quadro de interação (interaction frame) � Fornecem um contexto no interior do qual pode-se posicionar os elementos dos diagramas de interação. � Elemento gráfico que serve para modularizar a construção de diagramas de seqüência e comunicação © ritasuzana@dcc.ufba.br 140 UML - Modularização das Interações �Quadros e Fragmentos ִObjetivos específicos: Dar um nome ao diagrama que aparece dentro do quadro; Fazer referência a um diagrama definido separadamente; Definir o fluxo de controle da interação. © ritasuzana@dcc.ufba.br 141 UML - Modularização das Interações �Digramas Nomeados ִNome do diagrama Na UML 2.0 todo diagrama de interação pode ser posicionado dentro de um quadro A orelha do quadro deve conter uma expressão da forma: • TipoDiagrama NomeDiagrama – Onde TipoDiagrama pode ser: – sd - para diagramas de sequência – comm – para diagramas de comunicação – activity – para diagramas de atividades © ritasuzana@dcc.ufba.br 142 UML - Modularização das Interações �Exemplo Geral © ritasuzana@dcc.ufba.br 143 UML - Modularização das Interações �Referencias a Diagramas ִA orelha de um quadro pode também servir para indicar que este corresponde a uma ocorrência de interação ִ Graficamente: é um quadro rotulado com a palavra-chave ref o nome da interação é posicionado no interior do quadro ִPode ser usada para fatorar interações comuns a vários diagramas em um único quadro e reutilizar o quadro várias vezes © ritasuzana@dcc.ufba.br 144 UML - Modularização das Interações �Referências Exemplos © ritasuzana@dcc.ufba.br 145 UML - Modularização das Interações �Fluxo de controle ִPermite definir a lógica procedimental (fluxo de controle) nos diagramas de interação Fragmento combinado: graficamente corresponde a uma ou mais interações (sequências de mensagens) encapsuladas em um quadro Operador de interação é representado na orelha do quadro correspondente ao fragmento Operandos do fragmento (que são as interações)posicionados dentro do quadro ִ Se houver mais de um operando, são separados por uma linha tracejada © ritasuzana@dcc.ufba.br 146 UML - Modularização das Interações �Composição interna de um fragmento combinado: ִ Um ou mais operandos de interação ִ Zero ou mais condições de guarda (restrição da interação) ִ Um operador de interação © ritasuzana@dcc.ufba.br 147 UML - Modularização das Interações �Exemplo– Fluxo de controle © ritasuzana@dcc.ufba.br 148 UML - Modularização das Interações �Possíveis operadores de interação. ִ “alt” (alternativa) modela construções do tipo se-então-senão dos operandos definidos com alt, apenas um é executado ִ “opt” (opção) modela a construção do tipo se-então similar ao alt, porém associado a apenas um operando ִ “loop” (iteração) representa que o operando deve ser executado zero ou mais vezes após o nome do operador é possível representar oslimites mínimo e máximo do número de iterações Sintaxe: loop [(<minint>[,<maxint>])]; * indefinido © ritasuzana@dcc.ufba.br 149 UML - Modularização das Interações �Exemplo alt © ritasuzana@dcc.ufba.br 150 UML - Modularização das Interações �Exemplo opt © ritasuzana@dcc.ufba.br 151 UML - Modularização das Interações �Exemplo interações © ritasuzana@dcc.ufba.br 152 UML - Modularização das Interações © ritasuzana@dcc.ufba.br 153 UML - Diagrama de Estado �Descrevem o comportamento de um sistema ִpara cada classe ִmostrar o comportamento ao longo do tempo de vida de um objeto © ritasuzana@dcc.ufba.br 154 UML - Diagrama de Estado �Componentes Estado-1 faça: atividade-A1 Evento [Condição] / Ação Estado-2 © ritasuzana@dcc.ufba.br 155 �Estado ִabstração dos valores dos atributos de um objeto ִum estado ocupa uma duração no tempo ִa resposta de um objeto para um evento depende dos valores dos seus atributos no momento UML - Diagrama de Estado © ritasuzana@dcc.ufba.br 156 Diagrama de Estado �Estado (cont) ִa resposta de um objeto para um evento depende dos valores dos seus atributos no momento ִé normalmente associada a uma atividade continua fax chamando alterando pedido registrando pedido © ritasuzana@dcc.ufba.br 157 Diagrama de Estado �Nome: deve descrever claramente o estado; �Atividades: ִDe entrada: ocorrem ao entrarmos no estado; ִDe saída: ocorrem ao saírmos do estado; ִConvencional: ocorrem enquanto o objeto estiver naquele estado. © ritasuzana@dcc.ufba.br 158 Diagrama de Estado �Evento ִOcorrência relevante para o sistema com localização no tempo e espaço ִEstímulo de um objeto para o outro ִeventos podem ser concorrentes ִeventos precedem ou sucedem outros eventos ִpodem conter informações © ritasuzana@dcc.ufba.br 159 Diagrama de Estado �Evento (cont) ִÉ uma transmissão unidirecional de um objeto para outro ִExemplos partida de aviões • empresa aérea, número do vôo, cidade botão do mouse apertado telefone levantado solicitação de pedido © ritasuzana@dcc.ufba.br 160 Diagrama de Estado �Estados e eventos se complementam ִo estado especifica a resposta do objeto para eventos de entrada ִum estado corresponde a um intervalo de tempo entre dois eventos © ritasuzana@dcc.ufba.br 161 Diagrama de Estado �Resumindo © ritasuzana@dcc.ufba.br 162 Diagrama de Estado FAX EMPRESA ocioso discando chamando digito n Aciona o fax Emitindo tom discagem Primeiro Dígito sinal de chamada recebendo sinal fax sinal do fax cliente Enviando documento documento Deslig a Final do documentoAguardando novo documento documento desconectado © ritasuzana@dcc.ufba.br 163 Diagrama de Estado �Mais um exemplo © ritasuzana@dcc.ufba.br 164 UML – Diagrama de Atividades � Gráfico de Fluxo ִFluxo de controle de uma atividade para outra �Modelagem de Etapas de um processo computacional ִSequenciais ִConcorrentes © ritasuzana@dcc.ufba.br 165 UML – Diagrama de Atividades �Atividade ִExecução não atomica em andamento em um máquina de estados. ִTrabalho ou tarefa a ser realizada Passos em um workflow Execução de uma operação ִSeqüenciais ou concorrentes. ִResultam em ações Computações atômicas executáveis • Mudanças de estado • Resultado de valor © ritasuzana@dcc.ufba.br 166 UML – Diagrama de Atividades �Componentes ִEstados Atividade Ação ִTransições ִObjetos © ritasuzana@dcc.ufba.br 167 UML – Diag. de Atividades �Componentes ִEstados Atividades Ação ִTransições ִObjetos �Exemplo ִConstrução de uma casa Estado Inicial Estado Final EstadoAção/Atividade Ramificação Sequencial Bifurcação Concorrente União Concorrente © ritasuzana@dcc.ufba.br 168 UML – Diagrama de Atividades �Estados de Ação ִSão atômicos e não podem ser decompostos ִTempo de execução NÃO é relevante © ritasuzana@dcc.ufba.br 169 UML – Diagrama de Atividades �Estado de Atividade ִNão são atômicos e podem ser decompostos ִTempo de execução um tanto quanto relevante © ritasuzana@dcc.ufba.br 170 UML – Diagrama de Atividades �Raias © ritasuzana@dcc.ufba.br 171 UML - Diagramas de Implantação �Descreve o hardware e o software que implementam o sistema ִmapeamento da arquitetura lógica de classes para uma arquitetura física componentes nós de processamento comunicação entre nós �Diagrama de Componente �Diagrama de Implantação © ritasuzana@dcc.ufba.br 172 UML - Diagrama de Componente �Modela os componentes do sistema e dependências entre eles. �Elementos de Modelagem ִcomponente unidade de software usada para compor o sistema; ִinterface conjunto de operações suportado (realizado) por um componente; cada componente pode prover múltiplas interfaces; componentes podem utilizar (depender) interfaces de outros componentes. © ritasuzana@dcc.ufba.br 173 UML - Diagrama de Componente Pedido.exe Estoque.exe Pedido.cls © ritasuzana@dcc.ufba.br 174 Diagrama de Implantação �Descreve o arranjo de componentes executáveis em nós de execução. ִPermite avaliar conseqüências da distribuição e alocação de recursos. ִSão apresentados em dois níveis: Descritivo (geral); De instância (específico). ִNó Recurso computacional (tempo de execução) • Computadores, memória, dispositivos periféricos. © ritasuzana@dcc.ufba.br 175 Diagrama de Implantação �Nível descritivo (geral) ִDescreve os elementos contidos em cada nó. ִEspecifica as dependências entre elementos (possivelmente em nós distintos). ִPadrão de comunicação entre nós. © ritasuzana@dcc.ufba.br 176 Diagrama de Implantação nódependência comunicação © ritasuzana@dcc.ufba.br 177 Diagrama de Implantação �De Instância (específico) ִApresenta instâncias de nós, e comunicação efetiva entre eles. ִApresenta os nós para uma versão/configuração especifica do sistema. Nó Comunicação © ritasuzana@dcc.ufba.br 178 Projeto Orientado a Objeto �Análise Orientada a Objetos ִidentifica e define classes que refletem diretamente o domínio do problema responsabilidades do sistema �Projeto Orientado a Objetos ִtransforma o modelo de análise em um modelo de projeto ִserve de base para a construção do software © ritasuzana@dcc.ufba.br 179 Projeto Orientado a Objeto �Decisões estratégicas de alto nível �Dependente de aspectos: ִcaracterísticas da linguagem de programação a ser utilizada ִmodelo de persistência de objetos ִcaracterísticas da plataforma de implementação ִcaracterísticas da interface com o usuário ִModularização do projeto em subsistemas ִEstrutura de comunicação e controle entre os subsistemas ִInterfaces entre subsistemas possibilitar o trabalho paralelo de desenvolvimento © ritasuzana@dcc.ufba.br 180 Projeto Orientado a Objeto �Identifica e define classes adicionais ִrefletem os requisitos de implementação �Diagramas da fase de análise ִutilizados para capturar os requisitos de implementação �UML não especifique explicitamenteque notações destes diagramas ִDiagrama de Componente ִDiagrama de Implantação © ritasuzana@dcc.ufba.br 181 Projeto Orientado a Objeto �Projeto da Arquitetura do Sistema ִdescreve subsistemas ִcomunicações entre eles �Projeto de Objetos ִdescreve aspectos de implementação de cada uma das classes ִprojeto procedural de cada operação ִdefinição de classes internas ִprojeto de estruturas de dados para os atributos das classes © ritasuzana@dcc.ufba.br 182 Projeto da Arquitetura �Uma estrutura elegante pode freqüentemente ser elaborada usando camadas e partições �Camada ִé um subsistema que adiciona valor a subsistemas de menor nível de abstração �Partição ִé um subsistema "paralelo" a outros subsistemas © ritasuzana@dcc.ufba.br 183 Projeto da Arquitetura �Camadas e Partições © ritasuzana@dcc.ufba.br 184 Projeto da Arquitetura �Sistemas de informação ִNormalmente incluem uma interface com o usuário e persistência (quase todos!) ִ Arquitetura em 3 camadas (3-tier architecture) © ritasuzana@dcc.ufba.br 185 Projeto da Arquitetura �Arquitetura em Três Camadas © ritasuzana@dcc.ufba.br 186 Projeto da Arquitetura �Arquitetura em Três Camadas ִApresentação Trata toda a interface com o usuário Janelas, relatórios, etc. Também chamada • Camada de Interface com o Usuário • Camada de Serviços do Usuário © ritasuzana@dcc.ufba.br 187 Projeto da Arquitetura �Arquitetura em Três Camadas (cont) ִ Lógica da Aplicação Tarefas e regras que governam o processo Domínio do problema Também chamada • Camada de Aplicação • Camada de Serviços de Aplicação • Negócios © ritasuzana@dcc.ufba.br 188 Projeto da Arquitetura �Arquitetura em Três Camadas (cont) ִ Dados Mecanismo de armazenamento persistente Também chamada • Camada de Gerência de Dados • Camada de Serviços de Dados • Camada de Armazenamento © ritasuzana@dcc.ufba.br 189 Projeto da Arquitetura �Arquitetura em Três Camadas (cont) ִO que vai em cada camada pode mudar ligeiramente ִExemplo lógica de aplicação na camada de dados usando Stored Procedures (bom) lógica de aplicação na camada de apresentação usando linguagens de scripts(?) © ritasuzana@dcc.ufba.br 190 Projeto da Arquitetura �Por que uma arquitetura em 3 camadas? ִAproveitamento dos PCs da empresa e oferecer sistemas com interface gráficas amigáveis e integradas ao desktop ִOs primeiros sistemas cliente-servidor Duas camadas Juntando as camadas de apresentação e de aplicação Problemas • Falta de escalabilidade (conexões a bancos de dados) • Enormes problemas de suporte (mudanças à lógica de aplicação forçava instalações) • Nenhum suporte a Thin Clients (PDA, celulares, smart cards, quiosques, ...) • Dificuldade de acessar fontes heterogêneas (legado CICS, 3270, ...) • Dificuldade de criar software reutilizável para rodar em clientes © ritasuzana@dcc.ufba.br 191 Projeto da Arquitetura �A arquitetura em 3 camadas permite: ִUsar o browser como cliente universal levando ao conceito de Intranet ִEvitar instalação em computadores de clientes, parceiros, fornecedores, etc. ִImplementar serviços automáticos de persistência, gerência de transações, balanceamento de carga,etc. © ritasuzana@dcc.ufba.br 192 Projeto da Arquitetura �UML provê o conceito de package para agrupar elementos �Este mecanismo pode ser utilizado para evidenciar os subsistemas e suas dependências © ritasuzana@dcc.ufba.br 193 Projeto da Arquitetura �A arquitetura em camadas pode ser representada em UML: © ritasuzana@dcc.ufba.br 194 Projeto Orientado a Objeto �Projeto de Objetos ִum projeto detalhado dos atributos e das operações que compõem cada classe ִespecificação das mensagens que conectam as classes com seus colaboradores ִespecificação dos métodos © ritasuzana@dcc.ufba.br 195 Conclusão �Paradigma da Orientação a Objeto ִRealidade ִSistemas Distribuídos (objetos distribuídos) ִSistemas Hipermídia �UML 2.0 ִUm passo além �Maior necessidade de modelagem ִMaior complexidade do ambiente �Problemas de décadas continuam ִausência da modelagem
Compartilhar