Desenvolvimento de Software Centrado no Domínio

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

Download "Desenvolvimento de Software Centrado no Domínio"

Transcrição

1 Desenvolvimento de Software Centrado no Domínio O caso da Distribuição do Serviço Docente João Sitefane Universidade Técnica de Lisboa, Instituto Superior Técnico 1 Introdução Hoje em dia, parte significativa da produção de novo software rege-se por um processo de desenvolvimento de software [Pfl01]. Este processo pode ser definido como uma série de actividades, realizadas com a finalidade de obter um produto de software que responda às necessidades do seu utilizador final. Todo o software está relacionado com alguma área de interesse do seu utilizador final. Esta área, juntamente com as entidades que a constituem, forma o domínio do software. De modo geral, durante um processo de desenvolvimento de software realizam-se as seguintes actividades: Análise. Engloba o levantamento e análise dos requisitos para o software; Desenho. Realização da descrição rigorosa e precisa do software a ser produzido. Esta descrição define um modelo onde estão presentes os vários componentes do software, as suas propriedades e as relações entre eles; Implementação. Transformação do desenho em código fonte; Teste. Verificação de que o programa desenvolvido na fase anterior apresenta o comportamento correcto e cumpre todos os requisitos estabelecidos; e, Manutenção. Visa corrigir novos problemas que são descobertos após o produto ser disponibilizado ao cliente, assim como a integração de novas funcionalidades derivadas do aparecimento de novos requisitos. 1.1 Definição do Problema Na actividade de desenho descreve-se a estrutura final que o software irá ter. Esta descrição assinala a passagem do espaço do problema para o espaço da solução. Contudo, quando o domínio do software é de complexidade bastante elevada, esta passagem pode ser feita de forma incorrecta, caso: 1) O desenho esteja desenquadrado com o domínio do software; ou, 2) A transformação do desenho em código revele-se numa tarefa demasiado complexa de realizar. Estas dificuldades determinam o insucesso do desenho e inviabilizam o sucesso das restantes actividades do processo. A superação destas dificuldades é facilitada caso a abordagem ao domínio seja feita com recurso a técnicas que facilitem o desenvolvimento de software em domínios de elevada complexidade. Para tal, o desenho centrado no domínio [Eva03] propõe um conjunto de princípios e linhas de orientação que devem estar presentes durante a actividade de desenho de software Distribuição do Serviço Docente A abordagem ao desenho centrado no domínio será discutida num contexto da aplicação Distribuição do Serviço Docente (DSD) [SK06], que se encontra integrada no sistema Fénix [PF05]. Esta aplicação foi desenvolvida com o objectivo de disponibilizar uma ferramenta informática, acessível a todos os departamentos do Instituto Superior Técnico (IST) [IST], a partir da qual fosse possível realizar o processo de distribuição do serviço docente, ou seja, afectar recursos humanos para o ensino de disciplinas. A figura 1 mostra a versão inicial do modelo de domínio da aplicação DSD. 1

2 Figura 1. Versão inicial do modelo de domínio da aplicação DSD. A principal limitação da aplicação está relacionada com a qualidade do seu desenho. O desenho, no seu estado actual, apresenta os seguintes problemas: Fraca ligação entre o desenho e o domínio. Alguns componentes do desenho não se enquadram de um modo natural e intuitivo com os demais componentes e com o próprio domínio da aplicação. Esta desconexão do desenho com o domínio faz com que, para alguns componentes, seja necessário olhar-se para a sua implementação para se conseguir ter uma ideia dos conceitos do domínio que representam; Sobreposição de conceitos. Existem noções do domínio que se encontram sobrepostas dentro do mesmo componente do modelo. Cada conceito do domínio deve estar decomposto numa unidade individual, para que se consiga identificar facilmente qual o conceito do domínio expresso por cada classe do modelo; e, Falta de flexibilidade. Após o desenvolvimento da aplicação houve uma evolução do domínio ao nível da estrutura curricular das disciplinas. Com a nova estrutura curricular de Bolonha [Bol99] surgiram novos tipos de aula (como, por exemplo, seminários), que dificilmente se conseguem representar com o modelo actual da aplicação. O modelo deve ser reestruturado de maneira a que se obtenha uma solução que permita representar os tipos de aula de um modo flexível e, ao mesmo tempo, facilmente extensível. A correcção destes problemas requer que sejam feitas reestruturações ao nível dos componentes da aplicação. Alguns componentes deverão ser eliminados, outros terão de ser criados. Relações entre componentes também serão modificadas. Assim, torna-se necessário reproduzir a descrição de como os diferentes componentes da aplicação operaram em conjunto, ou seja, torna-se necessário redesenhar o software. 1.2 Objectivos O objectivo principal consistiu em seguir a abordagem do desenho centrado no domínio durante o processo de revisão do desenho da aplicação DSD. Este objectivo foi decomposto nos seguintes objectivos instrumentais: 2

3 Descrição e discussão dos princípios associados ao desenho centrado no domínio; Avaliação da aplicabilidade de cada princípio do desenho centrado no domínio à aplicação DSD; e, Reestruturação da aplicação DSD de acordo com as linhas de orientação do desenho centrado no domínio. 2 Desenho Centrado no Domínio Das diversas actividades do processo de desenvolvimento de software, o desenho corresponde à actividade durante a qual ocorre a passagem do espaço do problema para o espaço da solução. Quando o espaço do problema é de complexidade bastante elevada, a criação de software que represente uma mais-valia para o negócio do seu utilizador final pode tornar-se numa tarefa demasiado exigente. A equipa responsável pelo desenvolvimento pode ser incapaz de gerir o volume e a complexidade de informação associados à tarefa. O desenho centrado no domínio é a ferramenta adequada a usar para diminuir este tipo de sobrecarga. O desenho centrado no domínio pode ser encarado como um conjunto de princípios e linhas de orientação, desenvolvidos com o objectivo de acelerar e facilitar o processo da passagem do espaço do problema para o espaço da solução em domínios de elevada complexidade. 2.1 Relevância do Modelo de Domínio Todos os programas de software estão relacionados com alguma actividade ou área de interesse do seu utilizador final. A área associada a um programa, as entidades que a constituem e as relações existentes entre elas formam o domínio do programa. O modelo de domínio pode ser entendido como uma abstracção do domínio, construída com o intuito de resolver problemas associados a esse domínio. Um modelo bem definido estrutura, de forma simples e clara, toda a sua informação em torno do respectivo domínio. No desenho centrado no domínio, a importância do modelo de domínio pode ser medida através de três factores fundamentais: Ligação entre desenho e implementação. O modelo, o processo de desenho e a implementação devem estar interligados. É esta ligação que torna o modelo relevante e garante que todo o esforço que foi dispendido na construção do modelo é reflectido no produto final. Esta ligação também é importante durante a actividade de manutenção, uma vez que o código e restantes artefactos podem ser interpretados com base no modelo; Comunicação. O modelo deve ser o suporte para o uso de uma linguagem comum, usada por todos os membros da equipa. Devido à ligação existente entre o modelo e a implementação, os membros da equipa responsáveis pela implementação podem comunicar com os membros responsáveis pelo desenho e modelação através desta linguagem comum. Desta forma, evita-se a necessidade da existência de algum tipo de mecanismo de tradução entre os conceitos usados pelos membros das diferentes áreas da equipa de desenvolvimento; e, Partilha de conhecimento. O modelo pode ser visto como um acordo feito por todos os membros da equipa, onde se escolhe uma forma de pensar sobre o domínio, à medida que se definem conceitos e as relações entre eles. A linguagem comum resultante do modelo permite uma partilha eficaz de conhecimento entre todos os elementos da equipa. 2.2 Aplicação do Desenho Centrado no Domínio Os princípios do desenho centrado no domínio serão abordados nos próximos capítulos, divididos pelos seguintes contextos: Construção do modelo de domínio. Um modelo de domínio obtido através do desenho centrado no domínio está assente sobre um conjunto de blocos (entidades, valores, agregações, etc.) que permitem manter a implementação de software alinhada com o modelo; e, Refactorização. Este processo consiste em alterar um sistema de software para que a sua estrutura interna seja melhorada, sem modificar o seu comportamento externo. Trata-se de um 3

4 processo contínuo e pode ocorrer sempre que seja possível extrair um modelo mais simples e focado nos conceitos do domínio. 3 Construção do Modelo de Domínio Para manter a implementação de software alinhada com o modelo de domínio é necessário aplicar as melhores práticas de desenho e modelação. Quando estas práticas não são aplicadas, torna-se difícil obter um modelo onde os conceitos do domínio estejam expressos de forma natural e intuitiva. Para tornar o desenho centrado no domínio resistente a este tipo de ocorrências, é necessário ter-se um profundo conhecimento dos princípios que suportam a construção de um modelo de domínio. Ao longo deste capítulo serão abordados alguns desses princípios: entidades, valores, serviços e fábricas. 3.1 Entidades e valores Alguns objectos devem ter uma identidade que os permite distinguir dos restantes objectos do modelo. Para este tipo de objectos tem de ser possível efectuar a distinção em relação a outros objectos que apresentem exactamente os mesmos atributos. Para ser possível efectuar esta distinção, é necessário associar uma identidade única a este tipo de objectos. Um objecto que é definido univocamente pela sua identidade é designado de entidade [Eva03]. As entidades têm características próprias dentro do modelo. As responsabilidades e associações que uma entidade possui devem ser baseadas na sua identificação e não nos valores dos seus atributos. Existem outros tipos de objectos, com características próprias, que também têm um papel relevante no modelo. Contudo, ao contrário das entidades, este tipo de objectos não tem uma identidade única e o seu principal propósito consiste em representar aspectos descritivos do domínio. Um valor [Eva03] é criado para representar os elementos do desenho que apenas se preocupam com o que são e não com quem são. Por exemplo, de um modo geral, uma cor ou um número correspondem a um valor. Não interessa saber qual o vermelho ou o 4 com o qual estamos a lidar, apenas interessa o seu valor. Assim, quando existe uma preocupação apenas com os atributos de um objecto, este deve ser classificado como valor. A separação entre entidade e valor (figura 2) pode ser obtida através do padrão de desenho Extract Class [FBB+99]. Este padrão é aplicável quando estamos na presença de classes com atributos que desviam-se do conceito que representam. Neste caso, os atributos não pertencentes à classe devem ser agrupados numa nova classe e deve ser criada uma relação de associação entre os dois elementos. Figura 2. Separação entre valor (Morada) e entidade (Cliente), através do padrão Extract Class. 3.2 Serviços Existem operações do domínio que não pertencem, de um modo natural, a uma entidade ou valor. Frequentemente, tenta-se solucionar este problema inserindo estas operações dentro de um objecto do modelo. Quando uma operação é inserida dentro de um objecto de forma forçada, este perde a sua clareza conceptual, tornando-se assim mais difícil perceber qual o conceito do domínio expresso no objecto. A solução para este tipo de problemas passa pela criação de um serviço. Um serviço [Eva03] é definido como uma operação, oferecida como uma interface presente no modelo, que não encapsula estado, ao contrário das entidades ou valores. Um serviço deve receber o seu nome com base na 4

5 actividade que vai desempenhar. Os seus parâmetros e resultado devem ser objectos do domínio. Um serviço está correctamente presente dentro de um modelo se respeitar três características fundamentais: A sua operação relaciona-se com um conceito do domínio que não faz parte natural de uma entidade ou valor; A sua interface é definida com base em outros elementos do modelo; e, A sua execução não mantém qualquer tipo de estado, ou seja, a execução de um serviço depende exclusivamente da informação que está guardada em outros objectos do domínio. 3.3 Fábricas A tarefa de criação de objectos é da responsabilidade da camada de domínio. Contudo, esta tarefa não deve ser exclusiva a cada objecto do domínio. Por vezes, é necessário a existência de mecanismos mais abstractos para a criação de objectos, que estejam desligados dos próprios objectos. Um elemento cuja responsabilidade consiste na criação de objectos é designado de fábrica [Eva03]. Tal como a interface de um objecto encapsula a sua implementação, permitindo saber o que faz o objecto sem revelar como o faz, uma fábrica encapsula a lógica necessária para a criação de objectos complexos ou agregações. Esta noção de fábrica está directamente relacionada com o padrão Abstract Factory [GHJV95], uma vez que este também tem o intuito de disponibilizar uma interface para a criação de famílias de objectos dependentes. Figura 3. Interacção de um cliente com uma fábrica. 3.4 Aplicação dos princípios Serviços A classe ValuationPhase é a mais longa do domínio da aplicação DSD (no sentido de que é a classe que apresenta mais linhas de código na sua implementação). Esta classe não representa o conceito de domínio mais complexo, mas mantém a lógica de duas operações complexas: Atribuição de docentes a disciplinas com base nos valores do ano lectivo anterior. Uma das formas possíveis de atribuir horas de ensino aos docentes de uma distribuição é através da cópia das horas de ensino apresentadas no ano lectivo anterior; e, Cópia de uma fase. Esta acção requer que sejam copiados todos os objectos contidos numa fase: o agrupamentos (ValuationGrouping), os respectivos docentes (ValautionTeacher) e disciplinas (CourseValuation) e as atribuições de docentes a disciplinas (ProfessorshipValuation).. Estas duas operações transcendem a classe ValuationPhase, na medida em que a sua lógica se foca toda sobre uma série de outras entidades do domínio (do interior e do exterior do módulo DSD). As operações não pertencem a ValuationPhase nem a qualquer outra classe; pertencem ao domínio da aplicação DSD e, por isso, deve estar presente no modelo sob a forma de serviços. Assim, criaram-se dois serviços, CopyValuationPhaseService e CopyLastYearRealDataService, para, respectivamente, a cópia de fases e atribuição de docentes a disciplinas com base nos valores do ano lectivo anterior. A criação destes serviços permitiu isolar as operações do domínio que não pertenciam, de um modo natural, à classe ValuationPhase. Como consequência, conseguiu-se melhorar a clareza conceptual apresenta pela classe. 5

6 3.4.2 Fábricas Na aplicação DSD, quando se cria uma nova fase (ValuationPhase), é necessário criar a árvore de agrupamentos e sub-agrupamentos de docentes e disciplinas (ValuationGrouping) que retratam as divisões existentes nos departamentos ao nível de secções, áreas científicas e grupos de competência. A lógica necessária para realizar essa tarefa é despoletada pelo pelo método construtor da classe ValuationPhase e estende-se por várias classes do domínio. Com esta solução, toda a complexidade envolvida na construção de agrupamentos está dependente de ValuationPhase. Assim, além de representar um conceito do domínio (a fase de uma distribuição), ValuationPhase tem de se preocupar em manter a lógica de criação de uma rede complexa de outros objectos do domínio. Seria vantajoso usar-se o conceito de fábrica para encapsular numa entidade toda a lógica necessária para a criação de agrupamentos e sub-agrupamentos de disciplinas. Esta motivação revela-se suficiente para criar uma nova fábrica ValuationGroupingFactory responsável pela criação de novos agrupamentos. 4 Refactorização A refactorização consiste no processo de alterar um sistema de software para que a sua estrutura interna seja melhorada, sem modificar o seu comportamento externo [FBB+99]. Quando se efectua uma refactorização está-se a melhorar o desenho de software que já foi escrito. O processo de refactorização é contínuo e pode ocorrer desde o início do desenvolvimento de um projecto. Para tal, existe um conjunto princípios que devem ser iterativamente aplicados, para que, em cada iteração, seja possível extrair um modelo mais simples e claro e mais focado nos conceitos do domínio. Ao longo deste capítulo serão abordados alguns desses princípios: interfaces reveladoras de intenção e decomposição de conceitos. 4.1 Interfaces reveladoras de intenção Num modelo de domínio, uma classe é caracterizada através do seu nome, juntamente com os nomes dos seus atributos e dos métodos que disponibiliza. O conjunto destes nomes define a interface do objecto, ou seja, define a forma como ele se apresenta e comunica com as outras entidades do domínio. As classes e seus métodos e atributos devem ser nomeados de forma a descrever correctamente os seus propósitos, sem referência aos meios através dos quais realizam as suas actividades. Um objecto que pertença a uma classe que respeite estas características contém uma interface reveladora de intenção [Eva03]. Estas características evitam a necessidade de perceber-se a estrutura interna de um objecto, para conseguirem usá-lo. Os nomes presentes nas interfaces dos objectos devem ser intuitivos, para que o respectivo conceito de domínio seja facilmente inferido por qualquer pessoa. Existem diversos padrões de refactorização que podem ser aplicados para a obtenção de interfaces reveladoras de intenção, como é o caso do Rename Method [FBB+99]. De acordo com este padrão, deve renomear-se qualquer método cujo nome não revele correctamente a sua intenção. Esta linha de raciocínio também pode ser generalizada para o nome de classes dos seus atributos. A figura 4 exemplifica a transformação de uma classe para a obtenção de uma interface reveladora de intenção. Figura 4. Exemplo de interface reveladora de intenção. 6

7 4.2 Decomposição de conceitos Num extremo, os domínios de elevada complexidade podem originar a aglomeração de conceitos dentro da mesma classe. No outro extremo, a divisão exagerada de conceitos por vários objectos dificulta a percepção de como todos aqueles pequenos pedaços funcionam em conjunto. É importante que exista um equilíbrio entre os elementos do modelo e os conceitos do domínio que representam. Uma classe do modelo deve corresponder a uma abstracção de um conceito do domínio. Os elementos de domínio (entidades, valores e serviços) devem ser decompostos em unidades coesas, com o intuito de obter-se uma divisão que espelhe de forma correcta e consistente as fronteiras e relações existentes entre os conceitos do domínio. A decomposição de conceitos pode ser obtida através dos padrões Extract Method e Extract Subclass [FBB+99]. De acordo com o padrão Extract Method, quando existem fragmentos de código que podem ser agrupados, então estes devem ser isolados dentro de um novo método. Caso estes fragmentos estejam presentes em vários métodos, então a criação do novo método permite eliminar situações de replicação de código. Por sua vez, o padrão Extract Subclass pode ser usado quando estamos na presença de classes com atributos usados apenas por algumas instâncias. Neste caso, deve ser criada uma subclasse que herda as características essenciais da classe e implementa as suas próprias características específicas (figura 5). Figura 5. Decomposição de conceitos através do padrão Extract Subclass. Neste cenário, a classe Produto continha o atributo promoção, apenas usado por produtos em promoção. Para saber se um produto estava ou não em promoção era necessário testar o valor desse atributo. Deste modo, Produto representava dois conceitos do domínio, consoante o valor dos seus atributos. Uma solução mais coerente com o domínio seria criar uma especialização de produto, ProdutoPromocional, com as suas características próprias, como o valor de promoção. Assim, obtém-se uma solução elegante para a separação entre os conceitos produto e produto promocional. 4.3 Aplicação dos princípios Interfaces reveladoras de intenção Renomearam-se todas as classes do módulo da aplicação (o que, por sua vez, implicou a renomeação da maior parte dos métodos e atributos), como forma de obter interfaces reveladoras da intenção. Este conjunto de alterações permitiu fortalecer a ligação entro o desenho da aplicação e o domínio correspondente Decomposição de conceitos A decomposição de conceitos foi aplicada sobre várias classes do modelo de domínio da aplicação DSD. O primeiro caso de decomposição de conceitos foi feito sobre TSDTeacher. Esta classe representa dois conceitos, o docente real e o docente a contratar, consoante apresente ou não uma ligação com Teacher. Esta sobreposição de conceitos replica pelos métodos da classe a necessidade de se averiguar qual o tipo de docente (figura 6). 7

8 If(getTeacher() == null){ // código para docente a contratar... } else { // código para docente real... } Figura 6. Exemplo da lógica presente nos métodos de TSDTeacher, como consequência da classe representar dois conceitos do domínio. Se, no futuro, surgir um terceiro conceito de docente, então a lógica de distinção entre docentes ficará ainda mais complexa. Este problema foi solucionado com a decomposição de conceitos. Criaram-se dois novos tipos de docente, TSDRealTeacher e TSDVirtualTeacher, como resultado da especialização de TSDTeacher (figura 7). Assim, as noções de docente real e virtual ficam isoladas nos respectivos objectos do domínio. Figura 7. Decomposição de TSDTeacher. O segundo caso de decomposição de conceitos foi feito sobre ValuationCompetenceCourse e ValuationCurricularCourse. Estas classes criam uma abstracção em relação ao tipo das disciplinas (reais ou criadas pelos utilizadores) que estão nos agrupamentos. Tal como no caso de TSDTeacher, a sobreposição de conceitos existentes nestas classes origina a replicação de código pelos métodos das classes (como ilustrado na figura 6). À semelhança da motivação para a criação de TSDVirtualTeacher, o conceito de uma disciplina virtual (criada pelos utilizadores) deveria consistir numa especialização de TSDCourse. Por este motivo, eliminaram-se as classes ValuationCompetenceCourse e ValuationCurricularCourse do modelo e definiu-se o conceito de disciplina virtual numa nova subclasse de TSDCourse: TSDVirtualCourseGroup (figura 8). Figura 8. Criação de TSDVirtualCourseGroup. O terceiro caso de decomposição de conceitos foi feito sobre TSDCourse. Nesta classe guardava-se a informação sobre estimativas feitas, para quatro tipos de aula: teóricas, práticas, teórico-práticas e laboratoriais. Esta variedade de tipos de aula originou a multiplicação de métodos semelhantes (figura 5.9). 8

9 public Integer gettotalnumberoftheoreticalstudents(){... } public Integer gettotalnumberofpraticalstudents(){... } public Integer gettotalnumberoftheopratstudents(){... } public Integer gettotalnumberoflaboratorialstudents(){... } Figura 9. Exemplo da multiplicação de métodos pelo tipo de aula existentes. Para evitar esta multiplicação de código criou-se uma nova classe, TSDCurricularLoad, que representa a carga curricular de um tipo de aula para a disciplina. Com a introdução desta classe e a aplicação do padrão Parameterize Method [FBB+99] foi possível reduzir o número de métodos existentes, através da criação de métodos parametrizados (figura 10). public Integer gettotalnumberofstudentspershifttype(shifttype shifttype){... } Figura 10. Aplicação do padrão Parameterize Method para a criação de métodos parametrizados. A solução adoptada aumenta a flexibilidade apresentada pelo modelo, uma vez que para a criação de um novo tipo de aula basta criar uma relação de TSDCourse com um novo tipo de TSDCurricularLoad (figura 11). Figura 11. Decomposição de TSDCourse. 5 Resultados 5.1 Redesenho da aplicação DSD Foi feita a revisão do desenho da aplicação DSD, de acordo com as linhas de orientação do desenho centrado no domínio. A figura 12 mostra a situação do modelo de domínio da aplicação após as modificações introduzidas. Figura 12. Versão final do modelo de domínio da aplicação DSD. 9

10 As figuras 1 e 12 mostram o antes e o depois do modelo de domínio da aplicação. As alterações introduzidas permitiram obter as seguintes (principais) vantagens: A construção do modelo de domínio permitiu identificar o papel desempenhado por cada entidade do modelo. A criação de fábricas e serviços permitiu isolar as operações do domínio que não pertenciam, de um modo natural, a uma entidade ou valor. Como consequência, conseguiu-se melhorar a clareza conceptual apresenta pelas classes do modelo; e, A refactorização permitiu alterar a estrutura interna do modelo e, assim, extrair um modelo mais simples, claro e focado nos conceitos do domínio. A ligação entre o desenho e o domínio foi fortalecida com recurso a interfaces reveladoras de intenção e a decomposição de conceitos permitiu eliminar a sobreposição de conceitos e aumentar a flexibilidade apresentadas pelo modelo. 5.2 Implementação do novo desenho da aplicação DSD Foi implementado o novo desenho da aplicação DSD, que fica assim alinhado com os princípios do desenho centrado no domínio. O novo desenho permitiu ultrapassar os problemas apresentados pela versão inicial: 1) Fraca ligação entre o desenho e o domínio; 2) Sobreposição de conceitos; 3) Falta de clareza conceptual; e, 4) Falta de flexibilidade. Referências [Bol99] Declaração dos Ministros Europeus da Educação: The Bologna Declaration of 19 June Bolonha, [Eva03] Evans, Eric: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison Wesley, [FBB+99] Fowler, Martin, Beck, Kent, Brant, John, Opdyke, William, & Roberts, Don: Refactoring: Improving the Design of Existing Code. Addison Wesley, [GHJV95] Gamma, Erich, Helm, Richard, Johnson, Ralph, & Vlissides, John: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, [IST] Instituto Superior Técnico. [PF] Projecto Fénix. [PF05] Projecto Fénix. Overview do sistema Fénix, [Pfl01] Pfleeger, Shari: Software Engineering: Theory and Practice (2nd Edition). Prentice Hall, [SK06] Sitefane, João & Kassamali, Anil: Fénix Departamento. Relatório de Trabalho Final de Curso, Instituto Superior Técnico, Universidade Técnica de Lisboa,

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

Desenho de Software. Desenho de Software 1

Desenho de Software. Desenho de Software 1 Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

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

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados

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

5. Métodos ágeis de desenvolvimento de software

5. Métodos ágeis de desenvolvimento de software Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos

Leia mais

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS. PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?

Leia mais

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS 24 DEMONSTRAÇÕES FINANCEIRAS COMBINADAS Os mercados de capitais na Europa e no mundo exigem informações financeiras significativas, confiáveis, relevantes e comparáveis sobre os emitentes de valores mobiliários.

Leia mais

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

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

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2007/2008 Requisitos para a 1 a entrega Loja Virtual 1 Introdução O enunciado base do projecto conjunto das disciplinas de Engenharia de Software

Leia mais

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

SISTEMAS DE INFORMAÇÃO PARA GESTÃO 07-05-2013 1 SISTEMAS DE INFORMAÇÃO PARA GESTÃO Aula I Docente: Eng. Hercílio Duarte 07-05-2013 2 Objectivo Sistemas Modelos Dados Vs. Informação Introdução aos sistemas de Informação 07-05-2013 3 Introdução

Leia mais

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação Última actualização: 25 de Outubro de 2008 Ano Lectivo 2008/2009 1º Semestre ção com Objectos ção Centrada em Objectos Docente: Paulo Leocádio Web: www.uac.pt/~pleocadio E-mail: pleocadio@uac.pt : Competências:

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

Análise e Concepção de Sistemas de Informação

Análise e Concepção de Sistemas de Informação Análise e Concepção de Sistemas de Informação Projecto Versão 2.0 amazon.com 2005-2006 1. Introdução O presente documento tem como objectivo apresentar o enunciado do projecto de ACSI 2005-2006. O projecto

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

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS

Leia mais

Análise de Sistemas. Conceito de análise de sistemas

Análise de Sistemas. Conceito de análise de sistemas Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

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

Padrão Básico de Projeto: Herança versus Composição

Padrão Básico de Projeto: Herança versus Composição Padrão Básico de Projeto: Herança versus Composição Composição e Herança Composição e herança são dois mecanismos para reutilizar funcionalidade Alguns anos atrás (e na cabeça de alguns programadores ainda!),

Leia mais

Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC

Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC Autores: Aprovação: Comissão Executiva do DEEC Comissão Executiva do DEEC Data: 3 de Fevereiro de 2011 Distribuição: Docentes do DEEC

Leia mais

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1 GESTÃO de PROJECTOS Gestor de Projectos Informáticos Luís Manuel Borges Gouveia 1 Iniciar o projecto estabelecer objectivos definir alvos estabelecer a estratégia conceber a estrutura de base do trabalho

Leia mais

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 CURSO/CICLO DE FORMAÇÃO Técnico de Eletrotecnia e Técnico de Gestão de Equipamentos Informáticos / 2015/2018 DISCIPLINA: Tecnologias da Informação e Comunicação

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

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente.

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente. The role of Project management in achieving Project success Ao longo da desta reflexão vou abordar os seguintes tema: Definir projectos, gestão de projectos e distingui-los. Os objectivos da gestão de

Leia mais

Engenharia Informática

Engenharia Informática Escola Superior de Ciência e Tecnologia Engenharia Informática Análise de Sistemas Informáticos 3º ano Exame 12 de Julho de 2006 Docentes: José Correia e João Paulo Rodrigues Duração: 90 m; Tolerância:

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

Programa de Parcerias e Submissão de Propostas 2014/15

Programa de Parcerias e Submissão de Propostas 2014/15 DEPARTAMENTO DE INFORMÁTICA Programa de Parcerias e Submissão de Propostas 2014/15 O Departamento de Informática (DI) da Faculdade de Ciências da Universidade de Lisboa (FCUL) procura criar e estreitar

Leia mais

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL) Computadores e Sistemas de Informação Bases de Dados Relacionais (linguagem SQL) 2004/2005 Utilidade das Bases de Dados Recolha e processamento de dados que possuem um volume significativo, que são interrelacionados,

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Avanços na transparência

Avanços na transparência Avanços na transparência A Capes está avançando não apenas na questão dos indicadores, como vimos nas semanas anteriores, mas também na transparência do sistema. Este assunto será explicado aqui, com ênfase

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Apresentação da Disciplina Edirlei Soares de Lima Objetivos da Disciplina Apresentar e discutir técnicas avançadas de Análise e Projeto de

Leia mais

Informática II Cap. 3

Informática II Cap. 3 Cap. 3 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens:

Leia mais

A Gestão, os Sistemas de Informação e a Informação nas Organizações

A Gestão, os Sistemas de Informação e a Informação nas Organizações Introdução: Os Sistemas de Informação (SI) enquanto assunto de gestão têm cerca de 30 anos de idade e a sua evolução ao longo destes últimos anos tem sido tão dramática como irregular. A importância dos

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

Processo do Serviços de Manutenção de Sistemas de Informação

Processo do Serviços de Manutenção de Sistemas de Informação Processo do Serviços de Manutenção de Sistemas de Informação 070112=SINFIC HM Processo Manutencao MSI.doc, Página 1 Ex.mo(s) Senhor(es): A SINFIC agradece a possibilidade de poder apresentar uma proposta

Leia mais

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens: Programas

Leia mais

Modelos Conceptual e Mental

Modelos Conceptual e Mental Interfaces Pessoa Máquina 08-10-2012 Modelos Conceptual e Mental Cap. 6 Conceptualização da Interação 06 Melhor e Pior? 1 Melhor e Pior? Resumo Aula Anterior Análise de Utilizadores O que é? Porquê? O

Leia mais

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

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

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

UML (Unified Modelling Language) Diagrama de Classes

UML (Unified Modelling Language) Diagrama de Classes UML (Unified Modelling Language) Diagrama de Classes I Classes... 2 II Relações... 3 II. Associações... 3 II.2 Generalização... 9 III Exemplos de Modelos... III. Tabelas de IRS... III.2 Exames...3 III.3

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

ARQUITECTURAS DE SOFTWARE

ARQUITECTURAS DE SOFTWARE ARQUITECTURAS DE SOFTWARE AULAS Nº 8 e 9 7-21/12/2007 F. Mário Martins Case Studies: Ligação das partes Use Case Diagram Use Case Specification Passo 1: ---------- Passo 2: ---------- Passo 3: ----------

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

EXERCÍCIO - ROMA : Modelar Capitel de uma Coluna Clássica

EXERCÍCIO - ROMA : Modelar Capitel de uma Coluna Clássica FACULDADE DE ARQUITECTURA UNIVERSIDADE TÉCNICA DE LISBOA SEMESTRE VIII ANO LECTIVO 2012/2013 MODELAÇÃO GEOMÉTRICA PROFESSOR LUÍS MATEUS RAFAELA MEZEIRO 20091261 MIARQ 4ºE EXERCÍCIO - ROMA : Modelar Capitel

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

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Introdução Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Engenharia de software A economia de todos os países desenvolvidos depende do software. O

Leia mais

Construir um modelo de dados é: - Identificar, Analisar e Registar a política da organização acerca dos dados

Construir um modelo de dados é: - Identificar, Analisar e Registar a política da organização acerca dos dados 4. Modelo Entidade Associação 4.1. Introdução Modelo de Dados. Visão dos dados em vez de visão das aplicações. Eliminação de redundâncias. Partilha de dados pelas aplicações Construir um modelo de dados

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO Ensino Regular Diurno Disciplina: T.I.C. Professores: Margarida Afonso Curso Profissional - Técnico de Auxiliar de Saúde Ano: 10.º Turma(s): TAS MÓDULO 1 FOLHA DE CÁLCULO OBJECTIVOS Indicar as principais

Leia mais

Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591

Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591 Organização Trabalho realizado por: André Palma nº 31093 Daniel Jesus nº 28571 Fábio Bota nº 25874 Stephane Fernandes nº 28591 Índice Introdução...3 Conceitos.6 Princípios de uma organização. 7 Posição

Leia mais

Relatório de Análise de Requisitos

Relatório de Análise de Requisitos Relatório de Análise de Requisitos (15/03/02 Versão 1.0) Gestão de Beneficiários Eduardo Abreu ei98020@fe.up.pt Miguel David ei98019@fe.up.pt Nuno Ferreira ei98003@fe.up.pt Tiago Silva ei98015@fe.up.pt

Leia mais

Algumas vantagens da Teoria das Descrições Definidas (Russel 1905)

Algumas vantagens da Teoria das Descrições Definidas (Russel 1905) Textos / Seminário de Orientação - 12 de Março de 2005 - Fernando Janeiro Algumas vantagens da Teoria das Descrições Definidas (Russel 1905) Assume-se que o objecto de uma teoria semântica é constituído

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos 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

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000 ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário Gestão da Qualidade 2005 1 As Normas da família ISO 9000 ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e especifica

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

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Gestão dos Níveis de Serviço

Gestão dos Níveis de Serviço A Gestão dos Níveis de Serviço (SLM) Os sistemas e tecnologias de informação e comunicação têm nas empresas um papel cada vez mais importante evoluindo, hoje em dia, para níveis mais elevados de funcionamento

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

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Gestão do Risco e da Qualidade no Desenvolvimento de Software Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 3 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Conhecer a arquitetura de 3 esquemas (conceitual, lógico

Leia mais

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver

Leia mais

Diagrama de entidades relacionamentos (abordado anteriormente) Diagrama de Fluxo de Dados (DFD)

Diagrama de entidades relacionamentos (abordado anteriormente) Diagrama de Fluxo de Dados (DFD) Diagrama de entidades relacionamentos (abordado anteriormente) Prod_Forn N N 1 Stock 1 1 N Prod_Enc N 1 N 1 Fornecedor Movimento Encomenda Diagrama de Fluxo de Dados (DFD) Ferramenta de modelação gráfica,

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

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

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Engenharia de Software. Enunciado da Primeira Parte do Projecto

Engenharia de Software. Enunciado da Primeira Parte do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software 2 o Semestre 2014/2015 Enunciado da Primeira Parte do Projecto 1. Primeira Parte do Projecto ES Este enunciado descreve o trabalho a realizar

Leia mais

CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230

CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230 CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230 Para as Entidades até agora classificadas como IPSS utilizadoras da Aplicação de Contabilidade PMR, vimos disponibilizar a passagem

Leia mais

Localização dos inquéritos de rua para Arroios e Gulbenkian

Localização dos inquéritos de rua para Arroios e Gulbenkian Project IAAPE Pedestrian Accessibility and Attractiveness Indicators: Tool for Urban Walkability Assessment and Management Working Paper No. WP-8 Localização dos inquéritos de rua para Arroios e Gulbenkian

Leia mais

Decorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA

Decorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA Decorator Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Revisando os conceitos Herança é poderosa mas não é flexível Comportamento

Leia mais

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004 QSP Informe Reservado Nº 41 Dezembro/2004 Sistemas de Gestão O QUE MUDOU COM A NOVA ISO 14001:2004 Material especialmente preparado para os Associados ao QSP. QSP Informe Reservado Nº 41 Dezembro/2004

Leia mais

Enunciados dos Trabalhos de Laboratório. Instituto Superior Técnico - 2005/2006. 1 Introdução. 2 Configuração de Redes

Enunciados dos Trabalhos de Laboratório. Instituto Superior Técnico - 2005/2006. 1 Introdução. 2 Configuração de Redes Enunciados dos Trabalhos de Laboratório Instituto Superior Técnico - 2005/2006 1 Introdução A empresa XPTO vende serviços de telecomunicações. O seu portfólio de serviço inclui: acesso à Internet; serviço

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

Manual do GesFiliais

Manual do GesFiliais Manual do GesFiliais Introdução... 3 Arquitectura e Interligação dos elementos do sistema... 4 Configuração do GesPOS Back-Office... 7 Utilização do GesFiliais... 12 Outros modos de utilização do GesFiliais...

Leia mais

MUDANÇAS NA ISO 9001: A VERSÃO 2015

MUDANÇAS NA ISO 9001: A VERSÃO 2015 MUDANÇAS NA ISO 9001: A VERSÃO 2015 Está em andamento o processo de revisão da Norma ISO 9001: 2015, que ao ser concluído resultará na mudança mais significativa já efetuada. A chamada família ISO 9000

Leia mais

UNIDADE 6 - PROGRAMAÇÃO MODULAR

UNIDADE 6 - PROGRAMAÇÃO MODULAR UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem

Leia mais