Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática

Tamanho: px
Começar a partir da página:

Download "Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática"

Transcrição

1 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Aspectos importantes de uma metodologia para desenvolvimento de software com objetos distribuídos Juliana Pelandré Gravena TG Maringá - Paraná Brasil

2 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática i Aspectos importantes de uma metodologia para desenvolvimento de software com objetos distribuídos Juliana Pelandré Gravena TG Trabalho de Graduação apresentado ao Curso de Ciência da Computação, do Centro de Tecnologia, da Universidade Estadual de Maringá. Orientadora: Profa. Dra. Elisa Hatsue Moriya Huzita Maringá - Paraná 2000

3 ii Juliana Pelandré Gravena Aspectos importantes de uma metodologia para desenvolvimento de software com objetos distribuídos Este exemplar corresponde à redação final da monografia aprovada como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação da Universidade Estadual de Maringá, pela comissão formada pelos professores: Orientadora: Profa. Dra. Elisa Hatsue Moriya Huzita Departamento de Informática, CTC, DIN Profa. Dra. Tânia Fátima Calvi Tait Departamento de Informática, CTC, DIN Profa. Maria Madalena Dias Departamento de Informática, CTC, DIN Maringá, Dezembro de 2000

4 iii Agradecimentos Agradeço primeiramente a Deus que permitiu a conclusão de mais essa fase na minha vida. Agradeço a minha família, especialmente a minha mãe Joana, a minha irmã Beatriz e aos meus avós Francisco e Maria, pelo apoio, incentivo e paciência durante o tempo em que precisei me dedicar para a realização dos trabalhos. Sei que muitas vezes me tornei ausente e distante principalmente quando estava preocupada com os estudos. Agradeço, ao Danillo que foi o maior incentivador, e a pessoa mais presente não só no desenvolvimento desse trabalho, mas durante toda a graduação. E nas horas mais difíceis onde eu queria mesmo era desistir, lá estava ele para me dar forças para continuar. Que Deus permita que um dia eu possa retribuir tudo o que ele foi e continua sendo para mim. Aos amigos que fiz durante esses 4 anos, e que continuarão sempre presentes nos meus pensamentos especialmente: Luciano, Paulinha, Renato, Dequech, Gustavo, Suzete e Daniella Patricia sei que agora cada um segue seu caminho e esses anos da graduação vão ficar para trás, mas com certeza não serão esquecidos. Houve muitos momentos de realizações e de uma forma ou de outra chegamos ao fim dessa fase. Desejo boa sorte a todos e um futuro de sucesso. A minha orientadora Profa. Elisa Hatsue Moriya Huzita, pelo apoio, paciência e esforço dedicados no desenvolvimento desse trabalho. Aos professores Marcio Eduardo Delamaro e Edmundo Sérgio Spoto, que além de professores tornaram-se grandes amigos e com certeza vão estar sempre nas minhas lembranças. Aprendemos nessa vida que a verdadeira amizade se conquista através das ações e sinceridades embora muitas vezes só nos resta lembrar que foi bom o pouco que durou.

5 iv Resumo A busca por inovações, os avanços tecnológicos e a utilização de aplicações cada vez mais complexas têm impulsionado os estudos referentes a sistemas distribuídos. Percebendo o interesse por parte da comunidade de engenharia de software, emergente no que se refere a esse tipo de sistemas, surgiu a motivação pelo estudo das características e problemas de um sistema distribuído com o objetivo de propor uma representação adequada aos modelos elaborados durante o processo de desenvolvimento dos mesmos. Assim, foram efetuados estudos de metodologias para desenvolvimento de software, em particular: Unified Software Development Process e MOOPP (Metodologia Orientada a objeto para processamento paralelo), afim de, analisar os recursos oferecidos pelas mesmas para tratar os aspectos relacionados a sistemas distribuídos. Dentre as adequações a serem realizadas foram propostas as fases para um processo de desenvolvimento de software distribuído, bem como as atividades importantes em cada uma dessas fases. Além disso, foi proposta uma representação adequada, pelo nosso entendimento, levando em consideração as características de um sistema distribuído. Como forma de validar essas adequações foi especificado um sistema de controle de eventos científicos, como exemplo.

6 v Abstract The search for innovations, the technological progresses and the use of applications more and more complex they have been impelling the referring studies to distributed systems. The growing use of nets of computers that come happening due to the increase in the search for innovations, to the technological progresses and the use of applications more and more complex have been impelling the referring studies to distributed systems. The emergent interest of that type of systems have motivated studies about the characteristics and problems of a distributed system with the aim to proposing a more adequate representation for the models that will be elaborated during development of them. Studies of methodologies for software development, were made in particular by: Unified Software Development Process and MOOPP, aiming to evaluate the resources offered by them regard to the aspects of distributed systems. Among the adaptations that will accomplished, the definition of the phase for a process of development of distributed software were proposed, as well as the main activities in each one. Besides, an appropriate representation was proposed taking in account the characteristics of a distributed system. Finally, case study was accomplished aiming to validate the adaptations, which were proposed.

7 vi Índice 1.INTRODUÇÃO MOTIVAÇÃO OBJETIVOS DO TRABALHO ORGANIZAÇÃO DO TRABALHO 3 2. SISTEMAS DISTRIBUÍDOS INTRODUÇÃO ESTRUTURA BÁSICA DE UM SISTEMA DISTRIBUÍDO PRINCIAPAIS CARACTERÍSTICAS SUPORTE AOS RECURSOS COMPARTILHADOS MAIOR GRAU DE ABERTURA DO SISTEMA CONCORRÊNCIA TOLERÂNCIA A FALHAS TRANSPARÊNCIA PRINCIPAIS PROBLEMAS PROBLEMAS DE COMIUNICAÇÃO PROBLEMAS DE SINCRONIZAÇÃO QUEDAS CONSIDERAÇÕES FINAIS 9 3.OBJETOS DISTRIBUÍDOS E COMPONENTES INTRODUÇÃO OBJETOS DISTRIBUÍDOS PRINCIPAIS CARACTERÍSTICAS DOS OBJETOS DISTRIBUÍDOS TENDÊNCIAS DESENVOLVIMENTO BASEADO EM COMPONENTES CARACTERÍSTICAS DE UM COMPONENTE 14

8 vii ALGUMAS VANTAGENS DA UTILIZAÇÃO DE COMPONENTES CONSIDERAÇÕES FINAIS METODOLOGIAS DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE UNIFIED PROCESS PRINCIPAIS CARACTERÍSTICAS CICLO DE VIDA DO UNIFIED PROCESS MODELOS MOOPP FASES CONSIDERAÇÕES FINAIS MDSODI INTRODUÇÃO FASES REQUISITOS ANÁLISE PROJETO IMPLEMENTAÇÃO TESTES REPRESENTAÇÕES SISTEMA EXEMPLO ESPECIFICAÇÃO DO SISTEMA EXEMPLO DIAGRAMA DE DOMÍNIO DIAGRAMAS DE USE-CASES DIAGRAMA DE CLASSES DIAGRAMA DE SUBSISTEMAS DIAGRAMAS DE COLABORAÇÃO DIAGRAMAS DE SEQUÊNCIA 55

9 viii 6. CONCLUSÕES 61 REFERÊNCIAS BIBLIOGRÁFICAS 63 BIBLIOGRAFIA 64 APÊNDICE A A.1 A.1 CÓDIGO DO CADASTRO DO SISTEMA DE CONTROLE DE EVENTOS A.1

10 ix Índice de figuras Figura 2.1 Estrutura básica de um sistema distribuído 5 Figura 4.1- Ciclo de vida do Unified Software Development Process 20 Figura 4.2- Objetos exclusivos 25 Figura 4.3- Objetos parcialmente paralelos 25 Figura 4.4 Objetos totalmente paralelos 26 Figura 4.5 Classes exclusivas 26 Figura 4.6 Ciclo de vida 26 Figura 5.1 Modelo de domínio 43 Figura 5.2 Controle de reservas 44 Figura 5.3 Emissão de relatório final 45 Figura 5.4 Controle da programação para divulgação do evento 45 Figura 5.5 Confecção de anais 46 Figura 5.6 Controle de presença para emissão de certificados 46 Figura 5.7 Submissão de trabalhos e cadastro de trabalhos aceitos 46 Figura 5.8 Cadastro de participantes e emissão de crachás 47 Figura 5.9 Controle financeiro 47 Figura 5.10 Diagrama de classes 49 Figura 5.11 Diagrama de subsistemas 50 Figura 5.12 Diagrama de colaboração cadastrar participantes 51 Figura 5.13 Diagrama de colaboração confeccionar anais 51 Figura 5.14 Diagrama de colaboração contabilizar despesas 52 Figura 5.15 Diagrama de colaboração contabilizar presença 52 Figura 5.16 Diagrama de colaboração contabilizar receitas 52 Figura 5.17 Diagrama de colaboração controlar programação 53 Figura 5.18 Diagrama de colaboração distribuir trabalhos 53 Figura 5.19 Diagrama de colaboração emitir certificados 53 Figura 5.20 Diagrama de colaboração emitir crachás 54 Figura 5.21 Diagrama de colaboração emitir relatório final 54

11 x Figura 5.22 Diagrama de colaboração reservar hotel 54 Figura 5.23 Digrama de colaboração reservar passagens 55 Figura 5.24 Diagrama de colaboração selecionar trabalhos 56 Figura 5.25 Diagrama de seqüência cadastrar participantes 56 Figura 5.26 Diagrama de seqüência confeccionar anais 56 Figura 5.27 Diagrama de seqüência contabilizar despesas 56 Figura 5.28 Diagrama de seqüência contabilizar presença 57 Figura 5.29 Diagrama de colaboração contabilizar receitas 52 Figura 5.30 Diagrama de seqüência controlar programação 57 Figura 5.31 Diagrama de seqüência distribuir trabalhos 58 Figura 5.32 Diagrama de seqüência emitir certificados 58 Figura 5.33 Diagrama de seqüência emitir crachás 58 Figura 5.34 Diagrama de seqüência emitir relatório final 59 Figura 5.35 Diagrama de seqüência reservar hotel 59 Figura 5.36 Digrama de seqüência reservar passagens 60 Figura 5.37 Diagrama de seqüência selecionar trabalho 60

12 xi Índice de tabelas Tabela 5.1 Ordem de execução de use-cases seqüenciais 31 Tabela 5.2 Tabela comparativa entre os tipos de use-cases 36 Tabela 5.3 Tabela comparativa entre os tipos de atores 37 Tabela 5.4 Tabela comparativa entre os tipos de classes 38 Tabela 5.5 Tabela comparativa entre os tipos de relacionamentos 41 Tabela 5.6 Ordem de execução dos use-cases seqüências 44

13 1 Capítulo 1 Introdução 1.1 Motivação Atualmente, tem se deixado de lado, ou pelo menos diminuído, o interesse por aplicações monousuário e a atuação tem se voltado em direção a aplicações que envolvem a utilização de redes de computadores. Isso vem ocorrendo, principalmente devido ao aumento na procura por inovações, pelos avanços tecnológicos que têm ocorrido bem como ao desenvolvimento e utilização de aplicações cada vez mais complexas. Nesse contexto o estudo relacionado ao desenvolvimento de sistemas distribuídos, tem se tornado cada vez mais atraente. Sistemas distribuídos consistem em uma coleção de computadores autônomos ligados por uma rede, buscando-se desta forma coordenar as atividades, de maneira eficiente, além de propiciar o compartilhamento de recursos [Cou96]. Esse tipo de sistema suporta um número muito maior de aplicações quando comparado aos sistemas monousuários, o que vem intensificando sua utilização. A eficiência desses sistemas em comparação com os sistemas convencionais pode ser notada pelas características diferenciadas que os mesmos proporcionam: (i) suporte aos recursos compartilhados quer sejam de hardware quanto de software; (ii) maior grau de abertura do sistema permitindo a inclusão ou exclusão de serviços compartilhados sem prejudicar a performance do sistema; (iii) tolerância a falhas tanto de hardware quanto de software; (iv) transparência permitindo que o usuário utilize as vantagens de se trabalhar com um sistema distribuído, mas visualize o sistema como uma única máquina e (v) concorrência o que permite que mais de um programa seja executado simultaneamente.

14 2 Contudo, como não poderia deixar de ser, apresentam alguns problemas que na maioria das vezes chegam a ser mais complexos do que os que ocorrem com os sistemas convencionais. Esses problemas, devem ser tratados diferenciadamente, a fim de evitar maiores complicações futuras. São eles: (i) problemas de comunicação: os computadores precisam se comunicar para executarem suas tarefas para isso é necessário a utilização de mecanismos específicos, síncronos ou assíncronos; (ii) sincronização: em um sistema distribuído as tarefas podem ocorrer concorrentemente sendo portanto, importante delimitar o início e o fim de tarefas que concorrem na utilização de recursos e (iii) quedas: é importante entender os tipos de mecanismos que podem ser utilizados na recuperação de um sistema distribuído. Portanto projetistas devem considerar esses aspectos quando do desenvolvimento de software distribuído. A comunidade de engenharia de software tem se preocupado no longo dos tempos, em desenvolver estudos a fim de oferecer técnicas/ferramentas adequadas que ofereçam o suporte necessário ao desenvolvimento de software de acordo com diferentes paradigmas. Esta trajetória teve início com a abordagem estruturada, a abordagem OO, a abordagem baseada em componentes e com fortes tendências a ser baseada em agentes. Os estudos realizados mostraram a importância da utilização do paradigma de orientação a objetos, conceitos de sistemas baseados em componentes e objetos distribuídos [Bro97], [Orf96], [Huz95], [Jac99], [Sam98] para o desenvolvimento de sistemas distribuídos. Isso se deve ao fato de que os mesmos proporcionam recursos, tais como: reusabilidade, composição, extensibilidade e portabilidade, que permitem atender as características desse tipo de sistema. Logo, percebe-se a importância da utilização de uma metodologia de desenvolvimento de software, adequada para a especificação de tais tipos de sistemas, principalmente devido a sua complexidade.

15 3 1.2 Objetivos do trabalho O objetivo geral do trabalho é propor a definição de um método de desenvolvimento de software, que permita representar os aspectos importantes a serem considerados no desenvolvimento de software distribuído. Além da metodologia o trabalho também propõe representações gráficas para a elaboração de modelos gerados durante o desenvolvimento de software. Como forma de validar a metodologia proposta é apresentado um sistema exemplo, especificado segundo a proposta. 1.3 Organização do trabalho No capítulo 02 são apresentados os conceitos básicos sobre sistemas distribuídos; suas características e seus problemas. No capítulo 03 estão apresentados os conceitos relacionados a objetos distribuídos e componentes, associando-os às características dos sistemas distribuídos. No capítulo 04 são apresentados os conceitos de processo de desenvolvimento de software e como uma visão geral das metodologias estudadas: Unified Software Development Process e MOOPP (Metodologia orientada a objeto para processamento paralelo). No capítulo 05 é apresentada a proposta da Metodologia para Desenvolvimento de Software Distribuído MDSODI; suas fases e as propostas de representações. Além disso, é especificado um sistema exemplo. No capítulo 06 é apresentada a conclusão do presente trabalho. No apêndice A é apresentada implementação da parte referente ao cadastro do sistema exemplo, implementado em Java.

16 4 Capítulo 2 Sistemas Distribuídos 2.1 Introdução Sistemas distribuídos consistem em uma coleção de computadores autônomos ligados por uma rede, buscando-se desta forma coordenar as atividades, de maneira eficiente, além de propiciar o compartilhamento de recursos, quer sejam de hardware ou de software [Cou96]. A crescente utilização de redes de computadores, assim como de computadores cada vez mais potentes aliados ao desenvolvimento de aplicações mais complexas contribuíram para impulsionar o interesse por estudos relacionados a software distribuído. Um outro fator que vem popularizando a utilização dos sistemas distribuídos é o fato do mesmo oferecer suporte a diversos tipos de aplicações: aplicações comerciais concorrentes, demais aplicações que trabalhem com acesso concorrente às informações em banco de dados, aplicações que envolvem compartilhamento de informações, entre outras. 2.2 Estrutura básica de um sistema distribuído Um sistema distribuído é constituído basicamente por: servidores de arquivo, computadores pessoais, estações de trabalho e outros servidores, como por exemplo, impressão e login ligados em rede. A Figura 2.1, apresentada a seguir, extraída de [Cou96] ilustra simplificadamente a estrutura de um sistema distribuído.

17 5 estação de trabalho estação de trabalho estação de trabalho estação de trabalho computador pessoal LAN (Local Area Network) computador pessoal computador pessoal WAN (Wide Area Network) servidores de arquivo servidores de login, impressão e outros computador pessoal Figura 2.1-Estrutura básica de um sistema distribuído 2.3 Principais características Os sistemas distribuídos se distinguem dos tradicionais, basicamente, devido às características descritas a seguir Suporte aos recursos compartilhados Permitem que recursos tanto de hardware, como impressoras, scanner, ou mesmo de software, sejam utilizados de forma compartilhada entre os usuários. É interessante lembrar que esse compartilhamento de recursos é permitido entre todos os usuários que estejam conectados ao sistema, o que oferece muitas vantagens, sendo as principais: compartilhamento de recursos de custo elevado entre os usuários e compartilhamento de dados que sejam de interesse comum a mais de um usuário.

18 Maior grau de abertura do sistema Os sistemas distribuídos permitem que novos serviços compartilhados possam ser adicionados sem com isso prejudicar os serviços existentes. Essa característica, torna o sistema receptivo a modificações, mais flexível que os sistemas convencionais, sem que para isso sejam necessárias modificações complexas no sistema. Segundo [Cou96] um sistema aberto apresenta algumas características: possuírem interface pública e poderem ser construídos a partir de hardware e software de diferentes fornecedores, sem com isso acarretar problemas para o sistema Concorrência Os processos em um sistema distribuído podem trabalhar concorrentemente e paralelamente, o que permite a execução de vários programas simultaneamente, sem com isto afetar o desempenho do sistema. A concorrência, segundo [Bac97], pode ocorrer de duas formas: As atividades concorrentes podem trabalhar de forma conjunta, cooperando para atingir um objetivo comum; Em outros casos as atividades concorrentes são completamente independentes e têm seus métodos executados em um sistema comum e assim, precisarão competir para a utilização dos recursos. Quando se trata de concorrência em sistemas distribuídos deve-se tratar os aspectos relacionados à sincronização. Os acessos que ocorrem de forma concorrente assim como as atualizações feitas em recursos compartilhados devem ser atividades sincronizadas. Com a utilização dos clocks objetiva-se evitar falhas na execução das tarefas concorrentes, delimitando o ponto inicial e final de execução.

19 Tolerância a falhas Diferente de um sistema centralizado onde o sistema se torna não disponível frente a uma falha de hardware, nesses sistemas o usuário pode simplesmente mudar de estação e continuar a realização de suas atividades normalmente, a partir do ponto em que estava quando a falha ocorreu. A recuperação de falhas de software, utiliza a técnica conhecida como rollback, que permite que o estado em que o sistema se encontrava possa ser recuperado a partir do ponto em que estava quando uma falha foi detectada. Essas facilidades de recuperação impulsionam o uso de tais sistemas, principalmente por facilitar a manutenção da integridade das informações com as quais se está trabalhando Transparência Segundo [Cou96] a transparência em um sistema distribuído permite ao usuário enxergar um sistema distribuído como uma única máquina e não como uma coleção de componentes independentes. Isso faz com que o sistema apresente um desempenho melhor quando comparado aos sistemas de tempo compartilhado (timesharing) que possuam apenas um processador. Segundo o Manual da Ansa [Cou96], existem oito formas de transparências que podem ocorrer. As duas formas mais importantes, principalmente quando se trata de um sistema distribuído são: transparência de acesso e transparência de localização, as quais estão brevemente descritas a seguir: Transparência de acesso: permite que as informações de objetos, independentemente de sua localização, sejam acessadas através de operações similares; Transparência de localização: permite que se acesse informações de objetos sem que para isso seja necessário saber a respeito de sua localização no sistema.

20 8 2.4 Principais problemas Apesar de suportar um domínio muito maior de aplicações do que os sistemas monousuários, os sistemas distribuídos também apresentam problemas que, na grande maioria das vezes, quando ocorrem, são mais complexos, e por isso precisam ser tratados diferentemente. Os principais estão apresentados, sucintamente, a seguir: Problemas de comunicação Para executarem suas tarefas os sistemas distribuídos precisam se comunicar. Para isso faz-se necessário a utilização de mecanismos específicos para a transmissão dos dados. Os mecanismos podem ser de dois tipos: Síncronos: corresponde aos casos onde o emissor espera depois de transmitir uma mensagem até que o receptor realize uma operação de recepção. Um processamento seqüencial, como o caso de processamento de uma fila é um tipo de mecanismo que trabalha sincronamente; Assíncronos: nesse tipo de mecanismo a mensagem é colocada em uma fila de mensagens esperando que o receptor aceite-as e enquanto isto o processo emissor pode realizar a transmissão de outras mensagens. As ferramentas de trabalham de forma assíncrona Problemas de sincronização A possibilidade de compartilhamento de recursos oferecida pelos sistemas distribuídos, bem como a concorrência, podem levar a problemas de sincronização. A utilização de recursos compartilhados exige mecanismos que controlem a execução das tarefas. Assim, por exemplo, a execução de uma tarefa em um processo que depende de resultados ou recursos oriundos de outra tarefa só poderá ocorrer quando os mesmos estiverem disponíveis, resultando assim na sincronização entre os processos.

21 9 Muitas vezes pode-se ter associado à sincronização temporizadores altamente precisos, que podem gerar interrupção a fim de controlar a execução das tarefas. Isso pode ser associado à ordem de clocks que o sistema operacional pode estar submetido. A precisão do temporizador utilizado é um fator essencial já que qualquer falha, por menor que seja, pode afetar a execução dos processos Quedas Como os sistemas envolvem a utilização de mais de um recurso simultaneamente, conseqüentemente, está mais propenso a quedas. Para que o usuário obtenha maior segurança é importante a utilização de mecanismos que facilitem a recuperação de um sistema distribuído, após essas quedas. A recuperação pode ser em nível de hardware, ou de software. Em nível de hardware ocorreria de forma a permitir que o usuário continue seu trabalho no ponto em que estava em outra máquina. Já em nível de software, proporciona ao usuário que o mesmo recupere a tarefa a partir do ponto em que estava antes da falha, e possa prosseguir seu trabalho. 2.5 Considerações finais Como se pode perceber é crescente o interesse por estudos em sistemas distribuídos e a principal justificativa para isso, são as características diferenciadas quando comparados aos sistemas monousuários. As características e os problemas apresentados mostram que os sistemas distribuídos são bastante complexos o que conseqüentemente fica refletido também no desenvolvimento do software que daria suporte aos usuários. Assim, observa-se a necessidade de tratar aspectos desse tipo de sistema já nas fases iniciais do projeto. Neste trabalho consideram-se os seguintes aspectos de um sistema distribuído: paralelismo/concorrência, distribuição, comunicação e sincronização.

22 10 Capítulo 3 Objetos Distribuídos e Componentes 3.1 Introdução O trabalho em questão trata de sistemas distribuídos, que não é um tipo de sistema simples, na verdade, pelo contrário, trata-se de sistemas bastante complexos, como se pode perceber pelas características e problemas expostos no capítulo 02. Pensando nesses aspectos, da complexidade e da compatibilidade de características buscou-se conceitos/ tecnologias que oferecessem o suporte necessário aos sistemas descritos. A utilização de conceitos de orientação a objeto associados a componentes e objetos distribuídos mostraram-se propícios para o desenvolvimento do trabalho, conforme se observa nos parágrafos que se seguem. Segundo [HUZ95] a abordagem OO permite uma exploração implícita do paralelismo, o que está intimamente relacionado ao encapsulamento de dados, oferece mecanismos para tratar da sincronização entre objetos além do que proporciona suporte a concorrência. Como se pode perceber, essas características estão intimamente relacionadas aos sistemas distribuídos. A metodologia OO proporciona uma série de outras vantagens, sendo as principais: facilidade de aplicar técnicas de reusabilidade, facilidade de manutenção, proximidades das situações com eventos do mundo real, modularidade e extensibilidade. Em se tratando de um sistema distribuído, cada parte que o compõe pode ser entendida como um componente organizado de forma distribuída no sistema, por esse motivo, percebemos uma conveniência em se adotar técnicas de objetos distribuídos e desenvolvimento baseado em componentes (CBD), no presente trabalho.

23 Objetos distribuídos Objetos distribuídos são na verdade objetos que se encontram distribuídos pela rede, que interagem e se comunicam de alguma forma. Esse conceito nos permite associar técnicas de objetos distribuídos aos sistemas distribuídos. Segundo [Wei98] A tecnologia de objetos distribuídos é capaz de revolucionar a computação cliente servidor, por produzir software com desenvolvimento rápido e fácil por parte dos programadores, que sejam de fácil utilização pelos usuários e de fácil gerenciamento pelos administradores do sistema. Assim, a tecnologia de objetos distribuídos permite a criação de sistemas cliente/ servidor mais flexíveis, visto que os dados são encapsulados nos objetos que ficam distribuídos pela rede, o que facilita a localização destes em qualquer parte do sistema Principais características dos objetos distribuídos Um objeto possui muitas características que favorecem a sua utilização quando se pensa em especificação e implementação de um sistema. As principais são: encapsulamento, abstração, herança, polimorfismo e principalmente o reuso. Existem também muitos outros motivos, particulares à distribuição dos objetos que tornam interessante associar objetos distribuídos a sistemas distribuídos. Segundo [SAM98], [Orf96] os principais seriam: Flexibilidade e distribuição dos dados: tudo o que se refere a dados são encapsulados dentro dos objetos, permitindo-se dessa forma que seja localizado em qualquer parte de um sistema distribuído, por qualquer outro objeto ou processo. Isso aumenta a interação entre os objetos já que a informação não fica restrita a um local específico, ao contrário, pode ser acessado em qualquer parte da rede onde o objeto estiver localizado;

24 12 Independência da plataforma e do sistema operacional: permite que um mesmo objeto tenha seus métodos executados em diferentes plataformas e diferentes sistemas operacionais; Independência no gerenciamento de informações: os objetos ficam distribuídos em locais variados na rede, o que lhe confere a independência no sentido de que cada qual pode se auto-gerenciar, além de gerenciar os recursos sob seu controle. Um outro fator associado à independência é o fato de se poder alterar ou mesmo modificar a localização de um objeto sem que isso afete seu desempenho no sistema como um todo; Transparência: os clientes não precisam de informações a respeito de onde o objeto se localiza ou mesmo em que sistema operacional é executado, pode ser na mesma máquina ou em qualquer outra distribuída pela rede, sem interferir no desempenho; Interoperabilidade entre os objetos, independente dos sistemas operacionais; Reuso em outra aplicação, sem a necessidade de mudanças significativas Tendências Em um sistema distribuído, a comunicação, a independência de plataformas e a interoperabilidade são aspectos importantes que devem ser considerados. Embora a tecnologia de objetos distribuídos ofereça recursos para dar suporte a essas características, é necessário a utilização de um padrão de comunicação. Os padrões foram desenvolvidos buscando facilitar e melhorar a qualidade da interação entre os diversos objetos distribuídos pela rede. Com base nisso os padrões estabelecem regras de como criar, armazenar e definir objetos de forma a facilitar a comunicação mesmo que em ambientes distintos.

25 13 Na luta pela padronização alguns grandes grupos lideram o mercado, sendo eles a Sun Microsytsem desenvolvedora da JINI [Orf96], a Microsoft desenvolvedora da arquitetura DCOM 1 [Orf96], a OMG 2 que desenvolveu a arquitetura CORBA 3 [Orf96], entre outras. A arquitetura JINI é um ambiente de computação distribuído, trata-se de um grupo de clientes e serviços que se comunicam através de protocolos JINI. É um conjunto de aplicações escritas em Java que se comunicam através de Java RMI 4. Sua utilização é interessante visto que facilita a utilização de objetos distribuídos associados à linguagem Java. O padrão DCOM utiliza o COM 5 como meio de comunicação entre os objetos distribuídos pela rede. Aqui, é interessante ressaltar que enquanto o CORBA pode ser utilizado em qualquer plataforma sem grandes problemas o DCOM apresenta deficiências quando utilizado em um sistema operacional diferente do Windows. O padrão CORBA vem sendo o mais utilizado atualmente. Utiliza como elo de comunicação um ORB 6 através do qual especifica uma arquitetura completa para a comunicação entre quaisquer objetos distribuídos pela rede. Isto faz com que o CORBA venha se tornando um padrão, principalmente pela sua flexibilidade e portabilidade, características importantes quando se fala em objetos distribuídos. A arquitetura CORBA oferece alguns componentes, sendo um deles a IDL (linguagem de definição de interface) estabelecida pela OMG, e tem como função especificar os objetos, definindo sua interface. É estabelecido um padrão no desenvolvimento das interfaces dos objetos, o que permite que a comunicação entre os objetos seja realizada independente da linguagem de programação utilizada na implementação. 1 DCOM- Distributed Commom Object Model 2 OMG- Object Managment Group 3 CORBA- Commom Object Request Broker Architeture 4 RMI- Remote Method Invocation 5 COM- Component Object Model 6 ORB- Object Request Broker

Unified Process. Sueleni Mendez Batista. Orientadora: Dra. Elisa Hatsue Moriya Huzita

Unified Process. Sueleni Mendez Batista. Orientadora: Dra. Elisa Hatsue Moriya Huzita Unified Process Sueleni Mendez Batista Orientadora: Dra. Elisa Hatsue Moriya Huzita Processo de Desenvolvimento de Software 8O processo de desenvolvimento de software é um conjunto de atividades e resultados

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

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

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SIGLAS E ABREVIATURAS Pág. CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 2.1 A tecnologia de orientação a objetos 25 2.1.1 Projeto de software

Leia mais

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

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

MODELAGEM DE UM COMPONENTE DE SOFTWARE DISTRIBUÍ- DO: COMPONENTE BASE

MODELAGEM DE UM COMPONENTE DE SOFTWARE DISTRIBUÍ- DO: COMPONENTE BASE JOSÉ ANDRÉ GOMES JÚNIOR MODELAGEM DE UM COMPONENTE DE SOFTWARE DISTRIBUÍ- DO: COMPONENTE BASE Trabalho de conclusão de curso apresentado ao Curso de Ciência da Computação. UNIVERSIDADE PRESIDENTE ANTÔNIO

Leia mais

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS RESUMO Este artigo apresenta a especificação de um sistema gerenciador de workflow, o ExPSEE, de acordo com a abordagem de desenvolvimento baseado

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

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

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Uma Abordagem usando PU

Uma Abordagem usando PU Uma Abordagem usando PU Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Baseada em: Rational Software Corpotation G. Booch, Ivar Jacobson,

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Estudo de Caso Sistema de Caixa Automático

Estudo de Caso Sistema de Caixa Automático Estudo de Caso Sistema de Caixa Automático Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Notas de Aula Ulrich Schiel Notas de Aula Ariadne

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

Leia mais

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA Introduçãoa Engenhariade Software Prof. Anderson Cavalcanti UFRN-CT-DCA O que é Software? O que é software? São programas de computadores, em suas diversas formas, e a documentação associada. Um programa

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Testes de Software Fases. Baseado em notas de aula da profa. Eliane Martins

Testes de Software Fases. Baseado em notas de aula da profa. Eliane Martins Testes de Software Fases Baseado em notas de aula da profa. Eliane Martins Tópicos Testes de Unidades Testes de Integração Testes de Aceitação e de Sistemas Testes de Regressão Testes de Unidades Visam

Leia mais

Componentes para Computação Distribuída

Componentes para Computação Distribuída Componentes para Computação Distribuída Conceitos Foi a partir do fenômeno da Internet (WWW), no início dos anos noventa, que a computação distribuída passou a ter relevância definitiva, a ponto de a Internet

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Prototipação de um Componente Agenda de Tarefas a partir de Framework de Modelo Alexandre Dequech TG-25-2000 Maringá Paraná

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

Redes de Computadores e suas classificações. Maurício Severich

Redes de Computadores e suas classificações. Maurício Severich Redes de Computadores e suas classificações Maurício Severich Sumário O computador pessoal e a demanda Redes e suas classificações Conectividade Cliente/Servidor Topologia Distância O computador pessoal

Leia mais

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

guia prático 2a Edição Gilleanes T.A. Guedes Novatec

guia prático 2a Edição Gilleanes T.A. Guedes Novatec guia prático 2a Edição Gilleanes T.A. Guedes Novatec Copyright 2007, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 4 Estilos Arquitetônicos Estilos Arquiteturais Dataflow

Leia mais

Suporte à Engenharia Reversa para o ambiente SEA

Suporte à Engenharia Reversa para o ambiente SEA Otavio Pereira Suporte à Engenharia Reversa para o ambiente SEA Orientador: Ricardo Pereira e Silva Universidade Federal de Santa Catarina - UFSC Departamento de Informática e Estatística - INE Florianópolis

Leia mais

Paradigma Cliente/Servidor

Paradigma Cliente/Servidor Paradigma Cliente/Servidor Mário Meireles Teixeira UFMA Departamento de Informática Dezembro, 2012 Comunicação em Sistemas Distribuídos! Os processos em um SD estão lógica e fisicamente separados. Precisam

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Unified Modeling Language Benno Eduardo Albert benno@ufrj.br O que é modelagem Tripé de apoio ao desenvolvimento. Notação: UML Ferramenta: Rational Rose. 2 O que é modelagem

Leia mais

Documentação de um Produto de Software

Documentação de um Produto de Software Documentação de um Produto de Software Versão 3.0 Autora: Profª Ana Paula Gonçalves Serra Revisor: Prof. Fernando Giorno 2005 ÍNDICE DETALHADO PREFÁCIO... 4 1. INTRODUÇÃO AO DOCUMENTO... 6 1.1. TEMA...

Leia mais

Engenharia de Software na Prática Hélio Engholm Jr.

Engenharia de Software na Prática Hélio Engholm Jr. Engenharia de Software na Prática Hélio Engholm Jr. Novatec Sumário Agradecimentos... 17 Sobre o autor... 18 Prefácio... 19 Capítulo 1 Desenvolvimento de software para o valor de negócios... 20 1.1 Qualidade

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Introdução Redes de Computadores é um conjunto de equipamentos que são capazes de trocar informações e compartilhar recursos entre si, utilizando protocolos para se comunicarem e

Leia mais

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros (regras de interação)

Leia mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

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

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem

Leia mais

UML (Unified Modeling Language) Linguagem de Modelagem Unificada

UML (Unified Modeling Language) Linguagem de Modelagem Unificada UML (Unified Modeling Language) Linguagem de Modelagem Unificada Introdução É a padronização das metodologias de desenvolvimento de sistemas baseados na orientação a objetos. Foi criada por três grandes

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

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

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes

Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes Edson Alves de Oliveira Junior 1, Itana Maria de Souza Gimenes 1 1 Departamento de

Leia mais

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

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Características do Software

Características do Software Questionamentos Por que tanta demora para entregar? Por que os prazos se atrasam? Por que os custos são altos? Por que não achar todos os erros antes de entregar? Por que dificuldade em medir o progresso

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO

Leia mais

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML.

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML. MODELAGEM ORIENTADA A OBJETOS APLICADA À ANÁLISE E AO PROJETO DE SISTEMA DE VENDAS ALTEMIR FERNANDES DE ARAÚJO Discente da AEMS Faculdades Integradas de Três Lagoas ANDRE LUIZ DA CUNHA DIAS Discente da

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Definições Características Desafios Vantagens Desvantagens 2 Definições DEFINIÇÕES Um sistema distribuído é uma coleção

Leia mais

4. Exemplo de Levantamento de Classes...26. 3. Levantamento das Classes...24. 1. Conceito de Classe e Objeto... 15. 1. Modelo de Casos de Uso...

4. Exemplo de Levantamento de Classes...26. 3. Levantamento das Classes...24. 1. Conceito de Classe e Objeto... 15. 1. Modelo de Casos de Uso... Projeto de Software usando UML Sumário Capítulo I : Casos de Uso...3 1. Modelo de Casos de Uso... 3 2. Diagramas de Casos de Uso... 3 3. Exemplo... 9 4. Conclusão... 13 Capítulo II : Levantamento de Classes...15

Leia mais

UTFPR - Sistemas Distribuídos Prof. Cesar Augusto Tacla. Anotações. Copyright Cesar Augusto Tacla 2008 - 1 -

UTFPR - Sistemas Distribuídos Prof. Cesar Augusto Tacla. Anotações. Copyright Cesar Augusto Tacla 2008 - 1 - - 1 - - 2 - - 3 - Segundo (Garg, 2004), são sistemas compostos por múltiplos processadores conectados por uma rede de comunicação, sendo a rede de comunicação uma LAN (Ethernet) ou WAN (Internet). - 4

Leia mais

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados SISTEMA DE BANCO DE DADOS Banco e Modelagem de dados Sumário Conceitos/Autores chave... 3 1. Introdução... 4 2. Arquiteturas de um Sistema Gerenciador... 5 3. Componentes de um Sistema... 8 4. Vantagens

Leia mais

Padrões de Projeto Implementados em Infraestrturas de Componentes

Padrões de Projeto Implementados em Infraestrturas de Componentes Padrões de Projeto Implementados em Infraestrturas de Componentes Paulo Pires paulopires@nce.ufrj.br http//genesis.nce.ufrj.br/dataware/hp/pires 1 distribuídas baseadas em componentes Comunicação transparente,

Leia mais

CAPÍTULO 3 MIDDLEWARE. Para entender-se o aparecimento da tecnologia middleware é descrita a seguir, e, brevemente, a sua evolução.

CAPÍTULO 3 MIDDLEWARE. Para entender-se o aparecimento da tecnologia middleware é descrita a seguir, e, brevemente, a sua evolução. CAPÍTULO 3 MIDDLEWARE Para entender-se o aparecimento da tecnologia middleware é descrita a seguir, e, brevemente, a sua evolução. 3.1 ARQUITETURA CLIENTE/SERVIDOR Primeiramente, surgiu a arquitetura centralizada

Leia mais

3 OOHDM e SHDM 3.1. OOHDM

3 OOHDM e SHDM 3.1. OOHDM 32 3 OOHDM e SHDM Com a disseminação em massa, desde a década de 80, de ambientes hipertexto e hipermídia, principalmente a Web, foi identificada a necessidade de elaborar métodos que estruturassem de

Leia mais

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

Uma Arquitetura de Linha de Produto Baseada em Componentes para Sistemas de Gerenciamento de Workflow

Uma Arquitetura de Linha de Produto Baseada em Componentes para Sistemas de Gerenciamento de Workflow Uma Arquitetura de Linha de Produto Baseada em Componentes para Sistemas de Gerenciamento de Workflow Itana M. S. Gimenes 1 itana@din.uem.br Fabrício R. Lazilha 2 fabricio@cesumar.br Edson A. O. Junior

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br MC302A Modelagem de Sistemas com UML Prof. Fernando Vanini vanini@ic.unicamp.br Modelamento de Sistemas e Orientação a Objetos O paradigma de Orientação a Objetos oferece um conjunto de características

Leia mais

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com REVISÃO ENGENHARIA DO SOFTWARE Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Software Sequencia de Instruções a serem seguidas ou executadas Dados e rotinas desenvolvidos por computadores Programas

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Qualidade de software

Qualidade de software Faculdade de Ciências Sociais e Aplicadas de Petrolina - FACAPE Curso: Ciência da Computação Disciplina:Projeto de Sistemas Qualidade de software cynaracarvalho@yahoo.com.br Qualidade de software Qualidade

Leia mais

Iteração 2 Design inicial

Iteração 2 Design inicial Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Engenharia de Software Iteração 2 Design inicial Projecto: FX-Center Grupo: BEDS David Pacheco (nº 32665) Cesário Lucas

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

UNIP Ciência da Computação AES Análise Essencial de Sistemas

UNIP Ciência da Computação AES Análise Essencial de Sistemas 1 Análise Essencial UNIP Ciência da Computação A análise essencial pode ser considerada um refinamento da análise estruturada. O problema existente (ou situação que requer a informatização) é estudado,

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE RESUMO Fazer um bom levantamento e especificação de requisitos é algo primordial para quem trabalha com desenvolvimento de sistemas. Esse levantamento

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software

Metodologia e Gerenciamento do Projeto na Fábrica de Software .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

Sistemas Cliente-Servidor

Sistemas Cliente-Servidor Sistemas Cliente-Servidor Disciplina Bancos de Dados II (INE 5616 2006-1) Curso de Sistemas de Informação Prof. Renato Fileto INE/CTC/UFSC 1 1 Cliente - Servidor Arquitetura cliente/servidor: Os servidores

Leia mais

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação Use of UML modeling in a management system for a food franchising Richard B. N. Vital, Tatiane M. Vital.

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO Contribuições do MDA para o desenvolvimento de software Anna Carla Mohr Verner Helder Eugenio dos Santos Puia Florianópolis,

Leia mais