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

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

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

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

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

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

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

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

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

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

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

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

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

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

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

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

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

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

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

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

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

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

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

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

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Clayton Maciel Costa

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

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

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

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

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

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

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

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

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

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

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

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

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

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

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 DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC CURSO: Bacharelado em Ciência da Computação DISCIPLINA: ANPS Análise e Projeto de Sistemas AULA NÚMERO: 3 DATA: PROFESSOR: Murakami Sumário 1 APRESENTAÇÃO...1 2 DESENVOLVIMENTO...1 2.1 Revisão...1 2.1.1

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

Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots

Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots Roosewelt Sanie Da Silva¹ 1 Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Rodovia

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

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

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

Micro Mídia Informática Fevereiro/2009

Micro Mídia Informática Fevereiro/2009 Micro Mídia Informática Fevereiro/2009 1 UML Introdução Fases de Desenvolvimento Notação Visões Análise de Requisitos Casos de Uso StarUML Criando Casos de Uso Orientação a Objetos Diagrama de Classes

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

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

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

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

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James

Leia mais

RMI: Uma Visão Conceitual

RMI: Uma Visão Conceitual RMI: Uma Visão Conceitual Márcio Castro, Mateus Raeder e Thiago Nunes 11 de abril de 2007 Resumo Invocação de Método Remoto (Remote Method Invocation - RMI) trata-se de uma abordagem Java para disponibilizar

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

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

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

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

DESENVOLVIMENTO DE SISTEMA DE APOIO À GESTÃO DE EVENTO DO PROGRAMA DE EDUCAÇÃO TUTORIAL

DESENVOLVIMENTO DE SISTEMA DE APOIO À GESTÃO DE EVENTO DO PROGRAMA DE EDUCAÇÃO TUTORIAL DESENVOLVIMENTO DE SISTEMA DE APOIO À GESTÃO DE EVENTO DO PROGRAMA DE EDUCAÇÃO TUTORIAL Adler H. Schmidt, Caroline F. Vicentini, Patrick P. Viera, Ronaldo C. M. dos Santos, Andrea S. Charão Universidade

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

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

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

DOCUMENTO DE REQUISITOS

DOCUMENTO DE REQUISITOS DOCUMENTO DE REQUISITOS ID documento: Data: / / Versão : Responsável pelo documento: ID Projeto: HISTÓRICO DE REVISÕES Data de criação/ atualização Descrição da(s) Mudança(s) Ocorrida(s) Autor Versão do

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

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

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

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software Documento Visão e Documento Suplementar Gerenciador de Log Documento Visão Versão 2.0 1 Índice 1. Histórico de Revisões...3 2. Objetivo do Documento...4 3. Sobre o Problema...4 4. Sobre o produto...4 4.1.

Leia mais

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

! Introdução.  Motivação para Processos de Software. ! Processo Unificado (USDP)  Definições  RUP x USDP  Características do Processo Unificado Agenda! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados! Conclusões 2 Processo

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

Notas de Aula 02: Processos de Desenvolvimento de Software

Notas de Aula 02: Processos de Desenvolvimento de Software Notas de Aula 02: Processos de Desenvolvimento de Software Objetivos da aula: Introduzir os conceitos de um processo de desenvolvimento de software Definir os processos básicos Apresentar as vantagens

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

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

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

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

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

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

JOSÉ AUGUSTO FABRI. Uma Proposta de Modelo para a Criação e a Organização de Processos de Produção em um Contexto de Fábrica de Software

JOSÉ AUGUSTO FABRI. Uma Proposta de Modelo para a Criação e a Organização de Processos de Produção em um Contexto de Fábrica de Software JOSÉ AUGUSTO FABRI Uma Proposta de Modelo para a Criação e a Organização de Processos de Produção em um Contexto de Fábrica de Software São Paulo 2007 JOSÉ AUGUSTO FABRI Uma Proposta de Modelo para a Criação

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Sincronização. Sincronização de Relógios. Relógios Físicos

Sincronização. Sincronização de Relógios. Relógios Físicos Sincronização Embora a comunicação entre processos seja essencial em Sistemas Distribuídos, a sincronização de processos é também muito importante. Por exemplo: o É importante que vários processos não

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

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

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

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

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

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

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

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

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

18º Congresso de Iniciação Científica UM ESTUDO EXPLORATÓRIO SOBRE TÉCNICAS DE MODELAGEM DE REQUISITOS DE SOFTWARE PARA SISTEMA EMBARCADO

18º Congresso de Iniciação Científica UM ESTUDO EXPLORATÓRIO SOBRE TÉCNICAS DE MODELAGEM DE REQUISITOS DE SOFTWARE PARA SISTEMA EMBARCADO 18º Congresso de Iniciação Científica UM ESTUDO EXPLORATÓRIO SOBRE TÉCNICAS DE MODELAGEM DE REQUISITOS DE SOFTWARE PARA SISTEMA EMBARCADO Autor(es) MARINA CALÇA Orientador(es) LUIZ EDUARDO GALVÃO MARTINS

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

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

O Processo Unificado: Captura de requisitos

O Processo Unificado: Captura de requisitos O Processo Unificado: Captura de requisitos Itana Gimenes Graduação em Informática 2008 Captura de Requisitos Modelagem do negócio: Visão de negócios Modelo de objetos de negócio de negócio Especificação

Leia mais