Um Perfil UML para Projeto de Frameworks Transversais

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

Download "Um Perfil UML para Projeto de Frameworks Transversais"

Transcrição

1 Um Perfil UML para Projeto de Frameworks Transversais José Uetanabara Júnior *, Valter Vieira de Camargo # *Centro Universitário Eurípides de Marília UNIVEM Marília São Paulo, Caixa Postal 2041 CEP # Departamento de Computação da Universidade Federal de Lavras (DCC-UFLA) Campus Universitário, Lavras, Minas Gerais CEP miklotovx@gmail.com, valtercamargo@hotmail.com Abstract. This paper presents a UML profile to support the modeling of Crosscutting Frameworks, which makes evident their main characteristics. The profile was developed based on an existing profile for aspect-oriented programming, on some idioms for the development of crosscutting frameworks and on a conventional framework profile called UML-F. The profile provides uniformity of the vocabulary used by the developers, eases the understanding of the framework and application architectures and serves as a guide for creating good crosscutting framework designs. The proposed profile was evaluated through its application in a persistence crosscutting framework. Resumo. Neste artigo é apresentado um perfil UML para a modelagem de Frameworks Transversais que evidencia suas características importantes. O perfil foi desenvolvido com base em um perfil existente para programação orientada a aspectos, em alguns idiomas para implementação de frameworks transversais e em um perfil para frameworks convencionais chamado UML-F. Sua utilização propicia uniformidade do vocabulário usado pelos projetistas, facilita a compreensão da arquitetura do framework e da aplicação desenvolvida e serve como guia para a obtenção de bons projetos de FTs. O perfil proposto foi avaliado por meio de sua aplicação em um FT de persistência. 1. Introdução Depois do surgimento da programação orientada a aspectos (POA) (Kiczales et al.,1997), alguns frameworks orientados a aspectos (FOAs) começaram a aparecer na literatura (Pinto et al., 2002; Rashid et al., 2003; Soares et al., 2004; Camargo e Masiero, 2008) e também foi proposto um conjunto de idiomas (idioms) para o projeto e implementação desses frameworks (Hanenberg et al., 2003). Esses idiomas auxiliam na estruturação do código e fornecem soluções genéricas de programação que são úteis no desenvolvimento desse tipo de software. No contexto deste artigo, um Framework Transversal (FT) é um tipo de FOA que encapsula apenas um tipo de interesse transversal, como por exemplo, persistência, segurança ou concorrência (Camargo e Masiero, 2008). Os FTs são usados como apoio para o desenvolvimento de novas aplicações ou de partes de novas aplicações. De forma geral, o desenvolvimento com apoio de frameworks * Esta pesquisa é apoiada pela CAPES. # Esta pesquisa é parcialmente apoiada pelo CNPq: Projeto Latin-AOSD - PROSUL-Proc. no /

2 resulta em arquiteturas complexas, pois envolve conjuntos de unidades que pertencem ao framework e à aplicação. Também, há muitos detalhes específicos que não ocorrem no desenvolvimento tradicional, detalhes que são características essenciais que não podem ser modelados com a UML convencional. No contexto de FTs, o problema se torna ainda mais grave, pois o desenvolvimento de uma aplicação pode ser apoiado por vários FTs, já que cada um envolve um único interesse transversal. Os modelos de análise e projeto que representam a arquitetura final da aplicação são complexos e dificultam a compreensão e, consequentemente, os processos de manutenção e evolução (Camargo e Masiero, 2008). Além disso, o processo de utilização e construção de um framework exige compreensão de sua estrutura e da interação entre suas classes/componentes. Esse processo pode ser facilitado se a documentação do framework fornecer indícios claros tanto de sua estrutura quando do processo de instanciação. Essa documentação geralmente é formada por um manual que descreve o processo de instanciação do framework, e por artefatos de análise e de projeto que geralmente são expressos em alguma linguagem de modelagem, como por exemplo, a UML. Uma notação pode auxiliar tanto o engenheiro do framework quanto o engenheiro de aplicação. Contudo, a UML padrão não apóia a representação de características específicas de frameworks (por exemplos: os pontos de instanciação do framework). Uma possível solução é a criação de perfis. Um perfil (profile) é um conjunto de elementos notacionais, como estereótipos (stereotypes) e etiquetas valoradas (tagged values) que estendem o meta-modelo da UML para representar mais adequadamente características específicas de um domínio. A UML-F (UML-Framework), por exemplo, é um perfil da UML específico para a modelagem de Frameworks Orientados a Objetos (FOO) que fornece elementos notacionais que representam características específicas desse tipo de framework (Fontoura et al., 2002). Contudo, os elementos notacionais da UML-F não são suficientes para modelar todas as características de um FT, pois esse tipo de framework possui conceitos adicionais aos FOO. Neste trabalho é apresentado um perfil UML para modelagem de FTs. O perfil proposto é uma adaptação do perfil de Evermann (2007) e também utiliza conceitos já definidos no perfil UML-F, proposto por Fontoura (2002). Além disso, dois dos idiomas propostos por Hanenberg (2003) são representados na forma de estereótipos e um na forma de tipo enumerado. Foi utilizado um framework de persistência (Camargo e Masiero, 2008) como estudo de caso modelado com a ferramenta Magic Draw. A aplicação do perfil no estudo de caso torna mais explícita as partes que interessam ao engenheiro do framework e as que interessam ao engenheiro de aplicação, pois há estereótipos que evidenciam características específicas para esses dois profissionais. Essa separação facilita a manutenção e o reúso do framework. Este artigo está estruturado da seguinte forma: na Seção 2 são apresentados os conceitos fundamentais; na Seção 3 é apresentado um perfil para projeto de frameworks transversais; na Seção 4 é mostrado o estudo de caso com o framework de persistência; na Seção 5 os trabalhos relacionados e na Seção 6 é feita a conclusão e trabalhos futuros. 71

3 2. Conceitos Fundamentais Fazendo o uso da UML 2.0, Evermann (2007) desenvolveu um meta-modelo que é um perfil UML específico para AspectJ. O autor escolheu essa linguagem pelo fato da maturidade que ela possui para implementação de aspectos. Por questões de espaço, na Figura 1 é mostrado tanto o perfil original de Evermann, quanto as adaptações realizadas. Ao invés de especializar as meta-classes da UML por meio da criação de novas meta-classes, Evermann (2007) estendeu as meta-classes existentes da UML por meio da criação de estereótipos. Essa extensão é visualizada por meio dos colchetes ([]). Por exemplo, o estereótipo Aspect possui Class entre colchetes, indicando que esse estereótipo, estende a meta-classe Class. Assim, cada classe que aparece na Figura 1, é um estereótipo que pode ser utilizado em nível de modelo. Atributos dos estereótipos se tornam etiquetas quando o perfil é aplicado em nível de modelo. Figura 1. Meta-modelo adaptado de Evermann (2007). Esse perfil foi utilizado como base para a criação do perfil proposto pelo fato de ser o perfil que reúne as principais características de um sistema orientado a aspectos implementado em AspectJ. Além disso, esse perfil é uma extensão light-weight da UML. A UML-F (Fontoura et al., 2002) contém elementos notacionais que descrevem certas características básicas em FOOs. Na UML-F, tanto os estereótipos quanto as etiquetas valoradas da UML foram agrupados em um único elemento chamado de etiqueta 72

4 UML-F. A representação dessa etiqueta é a mesma de um estereótipo da UML, contudo ele também pode possuir um valor, assim como as etiquetas valoradas. Essas etiquetas são divididas em três categorias. Na Tabela 1 são mostradas algumas das etiquetas propostas. Tabela 1. Etiquetas da UML-F Etiqueta Descrição Categoria de Etiquetas de Modelagem de Framework <<application>> O elemento pertence à aplicação e não ao framework <<framework>> O elemento pertence ao framework e não à aplicação. <<utility>> O elemento pertence a uma classe de biblioteca. <<fixed>> O elemento é fixo, isto é, nenhuma alteração pode ser feita nele. <<adapt-static>> O elemento deve ser modificado durante o projeto; durante a execução ele é fixo. <<adapt-dyn>> O elemento pode ser modificado em tempo de execução. Categoria de Etiquetas para Princípios Essenciais de Construção de FOO <<template>> O método é um método gabarito ou a classe possui um método gabarito. <<hook>> A existência desta etiqueta denota que o método é um método gancho Categoria de Etiquetas para Padrões utilizados em Frameworks <<PatternName-ClassName>> Onde: PatternName deve ser substituído pelo nome do padrão que está sendo utilizado e ClassName pelo nome da classe que determina o papel do padrão. A categoria Etiquetas de Modelagem de Framework possui etiquetas que auxiliam a documentação do framework, principalmente para o projetista/desenvolvedor de aplicações. Essas etiquetas permitem identificar as classes do framework e as da aplicação, métodos fixos e adaptáveis etc. A categoria Etiquetas para Princípios Essenciais de Construção de FOO possui etiquetas que representam dois papéis impostos pela utilização do padrão de projeto método gabarito (template method): os métodos gabarito e os métodos gancho (hook method). Essas etiquetas facilitam a identificação dos pontos de instanciação do framework e são utilizadas pelo perfil proposto pelos autores. A categoria Etiquetas para Padrões Utilizados em Frameworks agrupa etiquetas que denotam o papel de cada classe nos padrões de projeto utilizados no framework (exemplos: estratégia e composição). Hanenberg (2003) propôs um conjunto de oito idiomas para a linguagem AspectJ com o objetivo de estruturar o código para alcançar bons níveis de reúso e abstração. Embora os idiomas também possam ser utilizados para desenvolvimento de software convencional, sua maior utilidade é para o desenvolvimento de frameworks, pois visam a abstrair os detalhes da aplicação para deixar o código genérico e independente. Os oitos idiomas propostos por Hanenberg são: Recipiente de Introdução (Container Introduction), Interface Marcadora (Marker Interface), Conjunto de Junção Composto (Composite Pointcut), Conjunto de Junção Abstrato (Abstract Pointcut), Adendo Gabarito (Template Advice), Método de Conjunto de Junção (Pointcut Method), Adendo Encadeado (Abstract Chain) e Adendo Fábrica (Factory Advice). Desses oitos idiomas propostos, três deles são utilizados nesse trabalho: recipiente de introdução, interface marcadora e adendo gabarito. O idioma recipiente de introdução permite que atributos e métodos sejam inseridos nas classes de aplicação em tempo de composição. O idioma interface marcadora consiste na existência de um tipo base para todos os objetos da aplicação para que o conjunto de junção apenas referencie esse tipo base. O idioma adendo gabarito fornece diferentes comportamentos para um adendo. O idioma conjunto de junção composto, não foi adicionado por já haver um estereótipo para ele no perfil de Evermann. 73

5 3. Um Perfil para Projeto de Frameworks Transversais Nesta seção é apresentado o perfil para FTs proposto pelos autores. Na Figura 1 é mostrado o meta-modelo proposto que é resultado da adaptação do perfil de Evermann. Os retângulos que possuem uma bolinha preenchida representam a parte do meta-modelo que foi adicionada pelos autores desse trabalho (os estereótipos). Já o retângulo que possui um quadrado preenchido representa a parte que foi modificada (tipos enumerados). No total, foram criados treze estereótipos e adicionados cinco tipos enumerados ao tipo enumerado AdviceExecutionType. Dos treze estereótipos criados, oito são mostrados na Tabela 2 e os outros cinco são mostrados na Tabela 3. Tabela 2. Estereótipos Descritivos para o Projeto de FOAs Estereótipos para Projeto Físico Estereótipo Classes Base Meta-modelo Aplicado a <<aspect-app>> Aspect Evermann Aspectos <<aspect-f>> Aspect Evermann Aspectos <<class-app>> Class UML Classes <<class-f>> Class UML Classes <<interface-f>> Interface UML Interfaces <<interface-app>> Interface UML Interfaces <<pointcuthook>> StructuralFeature UML Conjuntos de Junção <<hook>> Operation UML Métodos, conjuntos de junção e declarações entre tipos. Os estereótipos aspect-app e aspect-f foram criados para representar se o aspecto pertence à aplicação ou ao framework, respectivamente. A parte que interessa ao engenheiro da aplicação são as classes e os aspectos que são criados durante o processo de reutilização do framework. A parte que interessa ao engenheiro de framework consiste em classes e aspectos que pertencem à estrutura interna do framework e que sofrem manutenção no sentido de evoluir o framework, como por exemplo, a adição de variabilidades. Esses dois estereótipos evitam que haja confusão na identificação dos aspectos por parte desses engenheiros. Eles herdam as características da classe base Aspect do meta-modelo de Evermann (2007). O mesmo vale para os estereótipos interface-app, interface-f, porém, eles herdam da meta-classe Interface da UML. Por fim os estereótipos class-app e class-f são semelhantes aos apresentados, porém, eles são aplicados a classes e estendem da meta-classe Class da UML. O estereótipo pointcuthook foi criado para indicar que o conjunto de junção estereotipado deve ser redefinido se a variabilidade referente a ele for necessária na aplicação. Este estereótipo herda da meta classe StructuralFeature já que o estereótipo PointCut do meta-modelo de Evermann (2007) herda dessa meta-classe da UML. O último estereótipo hook foi herdado da UML-F e denota que o método é um método gancho; um método que deve ser concretizado pelo engenheiro de aplicação. Os estereótipos mostrados na Tabela 2 não informam detalhes de implementação e organização de código, já os tipos enumerados e estereótipos mostrados na Tabela 3 representam a utilização dos idiomas template advice, marker interface e container introduction propostos por Hanenberg (2003). Eles podem auxiliar um desenvolvedor a estruturar o código para alcançar bons níveis de reúso. Além dos benefícios oriundos da 74

6 utilização de padrões de projeto e dos idiomas, outro grande benefício é a uniformidade de vocabulário para comunicação entre desenvolvedores. Tabela 3. Tipos Enumerados para a Representação de Idiomas Tipos Enumerados para a Representação de Idiomas Idioma Tipo Enumerado before-template after-template Adendo Gabarito around-template after-returning-template after-throwing-template Idioma Estereótipos Interface Marcadora <<markerinterface>> e <<aspectspecification>> Recipiente de Introdução <<container>>, <<containerconnector>> e <<containerloader>> Os tipos enumerados before-template, after-template, aroundtemplate, after-returning-template e after-throwing-template, representam a maneira que o método-gabarito será afetado. O tipo enumerado beforetemplate representa que o método gabarito será afetado no contexto antes. O tipo enumerado after-template representa que o método gabarito será afetado no contexto depois. O tipo enumerado around-template representa que o método gabarito será afetado no contexto durante. O tipo enumerado after-returnig-template representa que o método gabarito será afetado no contexto após o retorno. Por fim o tipo enumerado after-throwing-template representa que o método gabarito será afetado no contexto após o lançamento. O estereótipo markerinterface especifica características transversais dependentes de uma interface, que são conectadas a aplicação mais tarde. As características transversais são especificadas pelo estereótipo aspectspecification. O estereótipo container encapsula um número de características extrínsecas que são introduzidas mais tarde em uma classe alvo. O estereótipo containerloader especifica essas características extrínsecas e o estereótipo containerconnector faz a ligação entre container e a classe alvo. 4. Estudo de caso Na Figura 2 é apresentado um estudo de caso com a aplicação do perfil proposto. Um framework de persistência (Camargo e Masiero, 2008) é usado juntamente com uma aplicação de oficina eletrônica. É possível observar que a Figura 2 está dividida em três partes: a parte que compete ao engenheiro do framework, a parte que compete ao engenheiro da aplicação e a parte da aplicação base. A parte do engenheiro do framework é a parte onde se localiza o framework de persistência, que é a parte onde esse engenheiro pode realizar a manutenção do framework. A parte do engenheiro de aplicação possui os aspectos concretizados que afetarão a aplicação base. Essa divisão auxilia no trabalho dos engenheiros de framework e de aplicação deixando explícita apenas a parte do framework que lhes interessa. É ressaltado que na Figura 2, essas partes estão separadas por meio da linha tracejada para facilitar o entendimento da aplicação do perfil. Na prática, em sistemas de maior porte isso não ocorre: as classes e aspectos estarão misturados e os estereótipos identificam se determinada classe ou aspecto é de interesse do engenheiro do framework ou do engenheiro de aplicação, melhorando a legibilidade. 75

7 Figura 2 Estudo de caso. A parte do engenheiro do framework, onde se encontra o framework de persistência, utiliza os estereótipos aspect-f, class-f, interface-f. Esses estereótipos indicam respectivamente que o aspecto, a classe e a interface são de interesse do engenheiro de framework. Já a parte do engenheiro de aplicação é a parte onde ocorre o reúso e a instanciação do framework. A instanciação é o processo de reúso do framework feita pelo engenheiro de aplicação. Os estereótipos aspect-app e class-app indicam um aspecto e uma classe respectivamente que são de interesse do engenheiro de aplicação. A facilidade que esses estereótipos proporcionam na identificação das classes/aspectos, facilita o trabalho desses engenheiros na realização de suas tarefas. Note-se que o aspecto DirtyObjectController faz uso do estereótipo <<CrossCuttingFeature>>. Esse estereótipo representa que alguns métodos e atributos 76

8 estão sendo adicionados em uma classe ou aspecto. A expressão <<StaticCrossCuttingFeature>> -Dirty : boolean {ontype = PersistentRoot} representa a adição de um atributo denominado Dirty do tipo boolean na interface PersistentRoot. Já a expressão <<StaticCrossCuttingFeature>> +isdirty ( ) {ontype = PersistentRoot} representa a adição de um método denominado isdirty na interface PersistentRoot. O mesmo raciocínio é válido para a expressão <<StaticCrossCuttingFeature>>+setDirty( ){ontype = PersistentRoot}. Os aspectos abstratos PersistentEntities e ConnectionCompositon fazem uso do estereótipo <<PointCutHook>>. A expressão <<PointCutHook>> OpenConnection() representa que o conjunto de junção gancho OpenConnection() é abstrato e deve ser concretizado pelo engenheiro de aplicação em um aspecto concreto. O aspecto abstrato PersistentEntities é utilizado pelo engenheiro de aplicação (quando concretizado) para definir os métodos persistentes. Já o aspecto abstrato ConnectionCompositon é utilizado para definir os adendos com os respectivos conjuntos de junção que atuarão sobre os métodos persistentes (quando for concretizado). O aspecto abstrato PersistentEntities possui também o estereótipo <<containerloader>> pois esse aspecto possui métodos que são adicionados à interface PersistentRoot. Assim a interface PersistentRoot recebe o estereótipo <<container>> já que essa interface encapsula esses métodos. O aspecto concreto MyPersistentEntities possui o estereótipo <<containerconnector>> por referenciar onde os métodos de PersistentEntities serão encapsulados. O aspecto XOORelationalMapping é uma interface de entrecorte (Crosscutting Interface) (Griswold et al., 2006). Esse aspecto possui só os conjuntos de junção e o aspecto OORelationalMapping possui só os adendos. Assim, o aspecto OORelationalMapping é estereotipado com <<aspectspecification>> por especificar as características do entrecorte. Isso estereotipa a interface PersistentRoot com <<markerinterface>> por especificar as características de entrecorte dependentes de uma interface. O relacionamento de dependência entre os aspectos indica que os adendos dependem dos conjuntos de junção declarados no aspecto XOORelationalMapping. A classe abstrata ConnectionManager define a maneira pelo qual será feita a conexão pelo banco de dados. O engenheiro de aplicação poderá definir o banco de dados apropriado quando ele concretizar a classe abstrata OdbcConnection. O aspecto MyPersistentEntities que está na parte do engenheiro de aplicação, possui a etiqueta declaredimplements. Ela permite a declaração de interface do tipo realize. Dessa forma declaredimplements = myimplementation mostra que as classe employee, event, basesalary e function realizes PersistentRoot. Isso é notado pelos relacionamentos de cada uma das classes com a interface PersistentRoot. Os aspectos ConnectionComposition e MyConnectionComposition utilizam dois estereótipos: <<Advice>> e <<ExecutionPointCut>> respectivamente. A expressão <<ExecutionPointCut>>-openConnection {operation = 77

9 registerevent} representa que um conjunto de junção denominado openconnection foi criado e que o método que ele afeta é o registerevent. O estereótipo <<Advice>> é utilizado para denotar adendos, assim a expressão <<Advice>> +open(){poincut = openconnection, adviceexecution = BeforeAdvice} representa que o conjunto de junção openconnection será afetado no contexto antes. É assim que os estereótipos atuam nos métodos da aplicação. Não são utilizados relacionamentos de entrecorte. É interessante perceber que a utilização dos idiomas facilitam a compreensão e a análise do modelo. Por exemplo, quando o projetista percebe a existência do estereótipo <<container>> em alguma interface, automaticamente deve existir no modelo um aspecto que introduz propriedades nessa interface e que deve possuir o estereótipo <<containerloader>>. Da mesma forma, quando alguma interface possui o estereótipo <<markerinterface>> automaticamente procura-se por um aspecto que faz o papel de <<aspectspecification>>. Isso auxilia bastante na compreensão dos modelos e também do funcionamento do framework. 5. Trabalhos Relacionados Embora vários tenham sido os pesquisadores que propuseram linguagem de modelagem para POA (Aldawud et al., 2003; Barra et al., 2004; Evermann et al., 2007; Groher e Baumgarth, 2004), apenas um deles propôs uma técnica específica para FOA. Rausch (2004) propôs modelos nos níveis de requisitos e projeto para frameworks orientados a aspectos. Também foi desenvolvida uma técnica para colar os modelos. Esta técnica utiliza das setas bidirecionais e notas que contém uma OCL. Cada hot spot (ex. pontos de junção, introductions) é especificado dentro das notas. Por meio da OCL os elementos do pacote da aplicação são ligados com os hot spots do framework. O trabalho de Rausch (2004) possui algumas deficiências, algumas delas reconhecidas pelos próprios autores: a ausência de um meta-modelo impossibilita o desenvolvimento de uma ferramenta. Uma ferramenta para auxiliar a junção dos modelos é necessária e ela deve ser consistente com a junção do código da POA; um perfil UML completo para POA precisa ser desenvolvido, para que a partir dele possa ser proposto um perfil para frameworks orientados a aspectos; uma linguagem de ligação mais apropriada deve ser desenvolvida para evitar trechos complexos de OCL. 6. Conclusão Os elementos notacionais criados nesse trabalho visam auxiliar tanto o desenvolvedor do framework quanto o desenvolvedor da aplicação evidenciando características importantes do desenvolvimento e da utilização de frameworks. Ressalta-se que é perfeitamente possível que FTs possam ser desenvolvidos e utilizados sem que esses elementos sejam utilizados. Entretanto, sua utilização traz benefícios de manutenibilidade, reusabilidade e produtividade para os profissionais envolvidos no processo. A arquitetura final de uma aplicação que foi desenvolvida com o apoio de vários FTs é complexa. A existência de estereótipos que ajudem identificar as partes importantes dessa complexa arquitetura é importante para a utilização da aplicação. 78

10 O perfil para FTs apresentado necessita ser aprimorado. Um estudo de caso maior, que utilize todos os estereótipos e idiomas para FOAs, avaliando de forma mais precisa a semântica do perfil será realizado em trabalhos futuros. Os conflitos que podem ocorrer entre os estereótipos criados também serão analisados em trabalhos futuros. Uma comparação entre a manutenibilidade de um framework modelado com de maneira convencional e com o perfil proposto também será feito em trabalhos futuros. Referências Bibliográficas Aldawud, O., Elrad, T., Bader. A. UML Profile for Aspect-Oriented Software Development. In: Proceedings of Workshop of Aspect Oriented Modeling with UML of Aspect Oriented Software Development Conference (AOSD), Barra, E., Génova, G. and Llorens, J An approach to aspect modeling with UML 2.0. In Proc. 5th Int. Workshop on Aspect-Oriented Modeling, October Camargo, V.V.; Masiero, P.C. A Pattern to Design Crosscutting Frameworks. In: Proceedings of the 23rd Annual ACM Symposium on Applied Computing (ACM- SAC'08), Fortaleza, Brasil, Evermann, Joerge A Meta-Level Specification and Profile for AspectJ in UML. Victoria University Wellington, Wellington, New Zealand. AOSD Fontoura, M., Pree, W., Rumpe, B. The UML Profile for Framework Architectures. Addison Wesley, Griswold, W.G., Shonle, M., Sullivan, K., Song, Y., Cai, Y., Rajan, H. Modular Software Design with Crosscutting Interfaces, IEEE Software, pp 51-60, Groher, Iris, Baumgarth, Thomas Aspect-Orientation from Design to Code. Munich, Alemanha Hanenberg, S., Unland, R., Schmidmeier, A. AspectJ Idioms for Aspect-Oriented Software Construction. In: Proceedings of 8th European Conference on Pattern Languages of Programs (EuroPLoP), Irsee, Germany, 25th 29th June, Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irving, J. Aspect Oriented Programming. In: Proceedings of ECOOP. pp , Pinto, M., Fuentes, L., Fayad, M.E, Troya, J.M. Separation of Coordination in a Dynamic Aspect Oriented Framework. In: Proceeding of the 1st International Conference on Aspect-Oriented Software Development, April Rashid, A., Chitchyan, R. Persistence as an Aspect. In: Proceedings of 2nd International Conference on Aspect Oriented Software Development AOSD. Boston USA, Rausch, A., Rumpe, B., Hoogendoorn, L. Aspect-Oriented Framework Modeling. In: The 4 th AOSD Modeling With UML Workshop Soares, S., Laureano, E., Borba, P. Implementing Distribution and Persistence Aspects with AspectJ. In: Proc. the 17 th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp , November,

Um Perfil UML para Frameworks Transversais

Um Perfil UML para Frameworks Transversais Um Perfil UML para Frameworks Transversais Aluno: José Uetanabara Júnior 1 Orientador: Valter Vieira de Camargo 2 ¹Instituto de Informática Univem Centro Universitário Eurípides de Marília Marília, São

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

Frameworks. Pasteur Ottoni de Miranda Junior Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo Aspect-Oriented Programming AOP Comentários Sérgio Crespo Separation of Concerns O princípio de Separation of Concerns já é utilizado por engenheiros de software para o gerenciar a complexidade de sistemas

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

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,

Leia mais

Relatório do GPES. Arquitetura Geral do Framework

Relatório do GPES. Arquitetura Geral do Framework Relatório do GPES UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Relatório referente ao desenvolvimento da arquitetura geral do framework de preço de venda. Realizado no período de 29 de junho de 2010 a 30

Leia mais

MARCOS DE MORAES BRASIL UMA ANÁLISE DE ALGUMAS ABORDAGENS DE MODELAGEM ORIENTADAS A ASPECTOS

MARCOS DE MORAES BRASIL UMA ANÁLISE DE ALGUMAS ABORDAGENS DE MODELAGEM ORIENTADAS A ASPECTOS FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM FACULDADE DE CIÊNCIA DA COMPUTAÇÃO MARCOS DE MORAES BRASIL UMA ANÁLISE DE ALGUMAS ABORDAGENS DE MODELAGEM ORIENTADAS

Leia mais

Table 1. Dados do trabalho

Table 1. Dados do trabalho Título: Desenvolvimento de geradores de aplicação configuráveis por linguagens de padrões Aluno: Edison Kicho Shimabukuro Junior Orientador: Prof. Dr. Paulo Cesar Masiero Co-Orientadora: Prof a. Dr. Rosana

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software Ricardo Terra 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) Campus da Pampulha 31.270-010

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

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

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

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

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam 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

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

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Uma Ontologia Genérica para a Análise de Domínio e Usuário na Engenharia de Domínio Multiagente

Uma Ontologia Genérica para a Análise de Domínio e Usuário na Engenharia de Domínio Multiagente Uma Ontologia Genérica para a Análise de Domínio e Usuário na Engenharia de Domínio Multiagente Carla Gomes de Faria1, Ismênia Ribeiro de Oliveira1, Rosario Girardi1 1Universidade Federal do Maranhão (UFMA)

Leia mais

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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Padrões. Projeto (Design) de Software

Padrões. Projeto (Design) de Software Padrões Projeto de Softwares Categorias de Padrões Processo de Tradução de modelos de análise (isentos de tecnologia, lógicos) para modelos de projeto (development-ready, físicos) Qual a Tecnologia Alvo

Leia mais

Desenvolvimento de software orientado a características e dirigido por modelos

Desenvolvimento de software orientado a características e dirigido por modelos Desenvolvimento de software orientado a características e dirigido por modelos Universidade Federal de Uberlândia Rodrigo Reis Pereira Prof. Dr. Marcelo Almeida Maia Agenda Motivação Introdução Modelagem

Leia mais

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

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

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

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2) Diagrama de Classes Diagrama de Classes Modelo de classes de especificação Perspectiva de Projeto Ilustra as especificações de software para as classes e interfaces do sistema. É obtido através da adição

Leia mais

Arquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência

Arquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência Arquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência Aluno: Rogério Lazanha 1 Orientador: Valter Vieira de Camargo 2 ¹Centro Universitário Eurípedes Soares da Rocha

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.

Leia mais

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

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

Uma Abordagem para Tratamento de Regras de Negócio nas Fases Iniciais do Desenvolvimento

Uma Abordagem para Tratamento de Regras de Negócio nas Fases Iniciais do Desenvolvimento Uma Abordagem para Tratamento de Regras de Negócio nas Fases Iniciais do Desenvolvimento Marco Antonio De Grandi, Valter Vieira de Camargo, Edmundo Sérgio Spoto Centro Universitário Eurípides de Marília

Leia mais

Transformação de um Modelo de Empresa em Requisitos de Software

Transformação de um Modelo de Empresa em Requisitos de Software Transformação de um Modelo de Empresa em Requisitos de Software Fábio Levy Siqueira 1 and Paulo Sérgio Muniz Silva 2 1 Programa de Educação Continuada da Poli-USP, São Paulo, Brazil 2 Escola Politécnica

Leia mais

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models Universidade Federal do Rio Grande do Norte Departamento de Informática e Matemática Aplicada Natal/RN - Brasil A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

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

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

Análise e Projeto Orientado a Objetos. Modelagem de Domínio + Análise e Projeto Orientado a Objetos Modelagem de Domínio Introdução 2 n A modelagem do domínio está relacionada à descoberta das informações que são gerenciadas pelo sistema. O resultado dessa investigação

Leia mais

Sumário. Uma visão mais clara da UML

Sumário. Uma visão mais clara da UML Instituto Federal de Santa Catarina Câmpus Chapecó Ensino Médio Integrado em Informática Módulo V Unidade Curricular: Engenharia de Software Professora: Lara P. Z. B. Oberderfer Uma visão mais clara da

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

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

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

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

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo? O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação

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

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

2. Sistemas Multi-Agentes (Multi-Agent System - MAS)

2. Sistemas Multi-Agentes (Multi-Agent System - MAS) AORML uma linguagem para modelagem de uma aplicação Multiagentes: Uma Aplicação no Sistema Expertcop. Hebert de Aquino Nery, Daniel Gonçalves de Oliveira e Vasco Furtado. Universidade de Fortaleza UNIFOR

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

Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com

Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com Resumo: Demonstrar de forma clara e prática como a Programação Orientada a Aspectos pode ajudar a

Leia mais

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito

Leia mais

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix. UNIP Sistemas de Informação Análise Essencial de Sistemas Prof.Marcelo Nogueira Análise Essencial de Sistemas 1 Introdução A produção de Software é uma atividade build and fix. Análise Essencial de Sistemas

Leia mais

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP RUP Rational Unified Process ( Unificado de Desenvolvimento da Rational) Conjunto de passos que tem como objetivo atingir uma meta de software na ES, processo que visa a produzir o software - de modo eficiente

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Construindo portais com Plone

Construindo portais com Plone Construindo portais com Plone Módulo 9 Dexterity Dexterity TTW Módulo 9 Dexterity Dexterity >> O que é? Framework para incorporação de tipos de dados ao Plone. Sucessor do Archetypes. Mais rápido, modular

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

Planejamento da disciplina: Modelagem de processos de negócio

Planejamento da disciplina: Modelagem de processos de negócio UNIVERSIDADE FEDERAL DE MINAS GERAIS / INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Planejamento da disciplina: Modelagem de processos de negócio Professor: Clarindo Isaías Pereira

Leia mais

1.1. Aplicações de TVD dinâmicas

1.1. Aplicações de TVD dinâmicas 1 Introdução Uma aplicação de TV Digital (TVD) comumente é composta por um vídeo principal associado a outros objetos (aplicações, imagens, vídeos, textos etc.), que são transmitidos em conjunto possibilitando

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

Uma visão mais clara da UML Sumário

Uma visão mais clara da UML Sumário Uma visão mais clara da UML Sumário 1 Definição de Objeto...2 2 Estereótipos...3 2.1 Classe fronteira (boundary):...3 2.2 Classe de Entidade (entity):...3 2.3 Classe de Controle (control):...4 3 Interação

Leia mais

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Análise de Sistemas Visão Geral: Orientação a Objetos Prof. José Honorato Ferreira Nunes Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Resumo: VISÃO GERAL: Modelagem de sistemas

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

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Identificação de Interesses Transversais: Uma Visão Geral

Identificação de Interesses Transversais: Uma Visão Geral Identificação de Interesses Transversais: Uma Visão Geral Paulo Afonso Parreira Júnior paulojunior@jatai.ufg.br 24 de Maio de 2013 Agenda Breve Histórico sobre Desenvolvimento de Software Separação de

Leia mais

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Na aula passada, vimos: Encapsulamento Programação Orientada

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

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

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e JEANE MENDES DA SILVA SANTOS Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e Plano de Trabalho de Conclusão de Curso apresentado à Universidade Federal de

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais Objetivos da UML Introdução a UML cbraga@ic.uff.br Uma linguagem para: Visualizar Especificar Construir Documentar... e analisar. Desenvolvimento dirigido a modelos 2 Construções básicas Organizadas em

Leia mais

Análise e Projeto Orientados a Objeto

Análise e Projeto Orientados a Objeto Análise e Projeto Orientados a Objeto Objetivos Comparar e contrastar Análise e Projeto Definir O que vamos fazer na disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente

Leia mais

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Classes Abstratas Técnico em Informática, M.Sc. Classes Abstratas 2 Classes Abstratas Abstração Devemos considerar as qualidades e comportamentos independentes dos objetos a que pertencem, isolamos seus

Leia mais

Um Arcabouço open source em Python para DBC com

Um Arcabouço open source em Python para DBC com Um Arcabouço open source em Python para DBC com Suporte à Evolução Dinâmica não Antecipada Yguaratã C. Cavacanti 1, Hyggo Oliveira de Almeida 1, Evandro Costa 2 1 Instituto de Computação Universidade Federal

Leia mais

Em Busca de uma Arquitetura de Referência para Frameworks de Aplicação Dirigidos por Modelos para Sistemas de Informação

Em Busca de uma Arquitetura de Referência para Frameworks de Aplicação Dirigidos por Modelos para Sistemas de Informação Em Busca de uma Arquitetura de Referência para Frameworks de Aplicação Dirigidos por Modelos para Sistemas de Informação Valdemar Vicente GRACIANO NETO 1 ; Juliano Lopes DE OLIVEIRA 1 1 Instituto de Informática

Leia mais

5 Um Modelo Generativo Orientado a Aspectos

5 Um Modelo Generativo Orientado a Aspectos 71 5 Um Modelo Generativo Orientado a Aspectos Nesse capítulo é apresentado um modelo generativo orientado a aspectos que é usado para instanciação de variabilidades OO e OA encontradas em arquiteturas

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Geração do Portal CPCX - UFMS pelo UNION: Um Estudo de Caso

Geração do Portal CPCX - UFMS pelo UNION: Um Estudo de Caso Geração do Portal CPCX - UFMS pelo UNION: Um Estudo de Caso Lourival dos Santos Pires Júnior, Tony Carlos Bignardi dos Santos, Amaury Antônio de Castro Junior, Carlos Alberto da Silva, Leila Lisiane Rossi

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

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

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D. UML Diagramas Um diagrama é a apresentação gráfica de um conjunto de elementos, onde os vértices são ITENS e os arcos RELACIONAMENTOS UML 2.0 possui os seguintes diagramas: Diagrama de Classes (Class Diagram)

Leia mais

7 Trabalhos Relacionados A idéia é tentar dar todas as informações que ajudem os outros a julgar o valor da sua contribuição; não apenas as informações que levem o julgamento a uma direção em particular.

Leia mais

Reuso da Implementação Orientada a Aspectos do Padrão de Projeto Camada de Persistência

Reuso da Implementação Orientada a Aspectos do Padrão de Projeto Camada de Persistência Reuso da Implementação Orientada a Aspectos do Padrão de Projeto Camada de Persistência Copyright 2004, Ricardo Argenton Ramos, 1, Valter Vieira de Camargo, 2 Rosângela Penteado, Paulo Cesar Masiero Permission

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

Leia mais

Modelagem de Casos de Uso (Parte 1)

Modelagem de Casos de Uso (Parte 1) Modelagem de Casos de Uso (Parte 1) Roteiro Introdução Descrição: Sistema de Ponto de Vendas Casos de Usos Atores Fluxo de Eventos Cenários Formato de Documentação de Casos de Uso Diagramas de Casos de

Leia mais

Histórico de Revisão Data Versão Descrição Autor

Histórico de Revisão Data Versão Descrição Autor H6Projetos Documento de Requisitos Versão 1.3 Histórico de Revisão Data Versão Descrição Autor 05/09/2013 1.0 Preenchimento do Capítulo 2 Requisitos Funcionais Evilson Montenegro 26/09/2013 1.1 Preenchimento

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

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

Documento de Projeto de Sistema

Documento de Projeto de Sistema Documento de Projeto de Sistema 1 IFES / Serra Projeto: Gerenciador de Pelada - Oasis Registro de Alterações: Versão Responsável Data Alterações 0.1 Eduardo Rigamonte, Geann Valfré, João Paulo Miranda,

Leia mais

Introdução ao Design

Introdução ao Design Introdução ao Design João Arthur e Guilherme Germoglio Coordenação de Pós-graduação em Informática - COPIN 16/10/2008 João Arthur e Guilherme Germoglio 1/ 33 Roteiro 1 Introdução Objetivos 2 Definições

Leia mais

O modelo unificado de processo. O Rational Unified Process, RUP.

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais