Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento para Web

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

Download "Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento para Web"

Transcrição

1 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento para Web WebML aplicada a um Sistema de Gestão Empresarial para Entidades de Classe Márcia Toshie Tanimoto Profª Drª Elisa Hatsue Moriya Huzita (Orientadora) Maringá, 2007

2 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento para Web Márcia Toshie Tanimoto WebML aplicada a um Sistema de Gestão Empresarial para Entidades de Classe Trabalho submetido à Universidade Estadual de Maringá como requisito para obtenção do título de Especialista de Desenvolvimento de Sistemas para Web

3 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento para Web Márcia Toshie Tanimoto WebML aplicada a um Sistema de Gestão Empresarial para Entidades de Classe Profª Drª Elisa Hatsue Moriya Huzita(Orientadora) Ass:... Profª Drª Maria Madalena Dias Ass:... Profª Drª Tânia Fátima Calvi Tait Ass:...

4 Resumo Nos últimos anos, a web vem se tornando cada vez mais popular. Como conseqüência a essa expansão, a utilização da internet também tem sofrido modificações consideráveis. A web deixou de conter apenas portais informativos, para abrigar grandes e complexos sistemas das mais diversas áreas. Mas a forma de desenvolvimento desse tipo de sistema não acompanhou a demanda, sendo ainda adotados métodos ad-hoc, sem nenhuma padronização. Devido a essa deficiência, várias pesquisas vêm sendo realizadas para identificar as necessidades, restrições e prioridades de sistemas web, assim como várias propostas de metodologias de modelagem foram também definidas. Dentre essas propostas, está a WebML A WebML é uma linguagem de modelagem visual que possibilita a representação dos aspectos hipertextuais de um sistema web, modelando as características de composição das páginas, conteúdo e navegação. Esse trabalho apresenta um estudo de caso de um sistema de gestão empresarial para entidades de classe, modelado usando a linguagem WebML. Com este trabalho procurou-se analisar os pontos fortes da WebML em um sistema real e avaliar sua eficiência em atender as necessidades de sistemas web. Palavras-Chave: Engenharia web, Aplicações web, WebML

5 Abstract In the last few years, the web has been becoming even more popular. As a consequence of this expansion, the use of the internet has been suffering considerable modifications too. The web left to have only informative portals to keep great and complex systems from diverse areas. But the way these kind of systems are developed didn't follow this demand, been still adopted ad-hoc methods without any pattern. Considering this lack, many researches have been doing to identify the needs, restrictions and priorities from these systems, as like many proposes of modeling methodologies have been defined. Among these proposes is WebML. The WebML is a visual modelling language that enables the representation of hipertextuals aspects from web systems, modeling their pages composition, contents and navigation characteristics. This work presents a case study of an enterprise management system to class entities, modelling with WebML language. This work tries to analyze the strong points of WebML in a real system and evaluate your efficiency to take care of web systems needs. KeyWords: Web Engineering, web applications, WebML.

6 índice de Figuras Figura Crescimento da web nos últimos anos...14 Figura Engenharia Web Um campo multidisciplinar...23 Figura Dimensões de modelagem para aplicações web onipresentes...28 Figura Dimensões de personalização Figura Exemplo da representação de entidades e seus atributos...33 Figura Exemplo de hierarquia entre entidades...33 Figura Representação XML de uma entidade de dados...35 Figura Notação gráfica para unidade de dados...36 Figura Representação XML de uma unidade de dados múltiplos...36 Figura Notação gráfica para unidades de dados múltiplos...37 Figura Representação textual para unidades de índice...37 Figura Notação gráfica para unidades de índice...37 Figura Notação textual para unidade de rolagem...38 Figura Notação gráfica para unidades de rolagem...38 Figura Notação gráfica para unidades de entrada Figura Notação gráfica para unidades de entrada...39 Figura Representação gráfica de unidade de operação...39 Figura Representação XML de unidade de operação...39 Figura Notação gráfica de uma página...40 Figura Exemplo de ligação contextual...40 Figura Exemplos de Landmark, home page, default page e área...43 Figura Esquema básico para representação de aplicações com restrição de acesso a visões do site...44 Figura Diagrama de use case...49 Figura Diagrama de estruturas para o SGEC...50 Figura Operação de login...52 Figura Alteração de dados pessoais...53 Figura Modelagem do controle de representados...53 Figura Modelagem de cadastro de contratos...55 Figura 4.7 Modelagem de geração de taxas...56

7 Índice de Tabelas Tabela Comparação entre sistemas web simples e sistemas web avançadas...15 Tabela Categorias de Aplicações Web...20 Tabela Comparação entre abordagens de modelagem e o suporte que oferecem às atividades de modelagem de sistemas web...26

8 Lista de Abreviaturas WebML UML OMG MER IEEE HDM RMM OOHDM WSDM UWE ADM HTML PC Wap XML OID OQL CASE Web Modeling Language Unified Modeling Language Object Management Group Modelo Entidade-Relacionamento Institute of Electrical and Electronic Engineers Hypertext Design Model Relationship Management Methodology Object-Oriented Hypermidia Design Method the Web Site Design Method the UML-based Web Engineering Araneus Data Model Hypertext Markup Language Personal Computer Wireless Application Protocol Extensible Markup Language Object Identifier Object Query Language Computer Aided Software Engineering

9 Índice 1. INTRODUÇÃO OBJETIVO DO TRABALHO METODOLOGIA DE PESQUISA ORGANIZAÇÃO DA MONOGRAFIA ENGENHARIA WEB INTRODUÇÃO CATEGORIZAÇÃO DE SISTEMAS WEB CARACTERÍSTICAS DE SISTEMAS WEB LINGUAGENS E MÉTODOS DE ANÁLISE PARA SISTEMAS WEB CONCLUSÕES FINAIS WEBML INTRODUÇÃO MODELO DE ESTRUTURA Entidades Relacionamentos MODELO DE HIPERTEXTO Modelo de Composição Unidades Unidades de dados Unidades de dados múltiplos Unidades de índice Unidades de rolagem Unidades de entrada Unidades de operação Páginas Modelo de Navegação Organização de hipertextos MODELO DE APRESENTAÇÃO MODELO DE PERSONALIZAÇÃO MODELO DE DERIVAÇÃO WebML OQL KeyWords, predicados e operadores Expressões de início Passos da navegação e valores de atributos Condições Atributos derivados Entidades derivadas Relacionamentos derivados ESTUDO DE CASO VISÃO GERAL MODELO DE ESTRUTURA MODELAGEM DE HIPERTEXTO Identificação de Site Views Modelagem das funcionalidades AVALIAÇÃO FINAL SOBRE A UTILIZAÇÃO DA WEBML CONCLUSÃO TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS... 62

10 10 1. Introdução Nos últimos anos houve uma crescente preocupação sobre a forma de modelar um sistema de computador em um nível de abstração que pudesse atender a diferentes tipos de sistemas e equipes de desenvolvimento. De acordo com Ceri et al. (2003), o objetivo da modelagem de dados é possibilitar a especificação dos dados usados pela aplicação em uma maneira intuitiva e formal. O resultado da modelagem dos dados é um esquema conceitual que transmite de maneira simples e legível o conhecimento disponível sobre os dados da aplicação. Connalen (2002) afirma que "... modelos descrevem o que queremos construir, o que estamos construindo e o que temos que construir...". Considerando-se a necessidade de uma modelagem eficiente, no final dos anos 80 um grupo de amigos elaborou uma linguagem de modelagem, a UML (Unified Modelling Language), que após passar por um processo de padronização pela OMG (Object Management Group), tornou-se um padrão para modelagem de sistemas. Mas a UML não atende as necessidades de representação e particularidades de uma aplicação web ou sistemas data intensive. Segundo Ceri et. al. (1999), web sites data intensive são aqueles cujo objetivo principal é permitir que usuários acessem grande quantidade de dados. De acordo com Connalen (2002), um sistema web é um sistema hipermídia, ou seja, apresenta os recursos ligados uns aos outros. Uma aplicação web estende um sistema web para adicionar funcionalidades, em outras palavras, uma aplicação web é um sistema web que possibilita a execução de lógica de negócio em um navegador de internet. De acordo com Lei (2004) as características que devem ser modeladas em um sistema web são: estrutura de modelos de domínio, que descreve a informação que será gerenciada e apresentada pelo web-site. Navegação, que possibilita ao usuário final navegar através de web-sites. Interface de usuário, que descreve a estrutura de composição dos conteúdos de páginas web e permitem acesso dinâmico a fontes de dados. Apresentação, que expressa o estilo de apresentação dos elementos da interface do usuário.

11 11 Personalização, que descreve a forma de especializar um propósito geral de um web-site através da definição de perfis para um usuário ou grupo de usuários. Considerando-se a deficiência da UML em representar as particularidades de sistemas web, surgiu a necessidade de definição de uma linguagem de modelagem que pudesse representar tais características de maneira satisfatória. A WebML (CERI et. al. 2000) é uma linguagem de modelagem baseada em padrões populares, como UML e MER (modelo entidade-relacionamento) que procura modelar sistemas de aplicação web atendendo às necessidades específicas de um ambiente web, como as mencionadas anteriormente. Este trabalho procura aplicar a WebML em um sistema real de gestão com interfaces web, procurando assim identificar as vantagens e desvantagens na adoção dessa modelagem. Para o desenvolvimento de sistema web, algumas características, tais como seqüência de navegação das páginas, layout e organização das páginas, devem ser mais cuidadosamente estudadas. Considerando-se que um sistema de gestão visa atender principalmente funcionários, que desenvolverão atividades específicas, acredita-se que aspectos de personalização devam ser mais cuidadosamente analisados, já que os conceitos de grupos de trabalho e divisão de tarefas são fortemente definidos. Atenção maior será dedicada também à modelagem de navegação entre as páginas, uma vez que sistemas dessa natureza possuem atividades que exigem seqüências lógicas, nem sempre passíveis de desvios, ou seja, algumas operações não podem apresentar caminhos alternativos na navegação para não prejudicar a consistência dos dados de negócio. Um exemplo seria a geração de boletos de cobrança, que deve ser executado em uma seqüência lógica e atinge várias classes de negócio. A WebML foi adotada por fornecer suporte a elementos importantes no desenvolvimento desse tipo de sistema, como características de navegação e apresentação das páginas.

12 Objetivo do trabalho O objetivo desse trabalho é avaliar os pontos fortes e fracos da WebML através de um estudo de caso de um sistema de gestão empresarial, mais especificamente, sistema de gestão para entidades de classe (sindicatos, associações e organizações), com interfaces web. Os objetivos específicos são: Estudar as características relevantes e o cenário atual do desenvolvimento de sistemas web; Estudar a linguagem de modelagem WebML; Aplicar a WebML em um estudo de caso; Avaliar as vantagens e desvantagens na utilização da WebML; 1.2. Metodologia de pesquisa O desenvolvimento deste trabalho foi dividido da seguinte forma: Estudo dos conceitos teóricos relacionados ao desenvolvimento de sistemas web: nessa etapa foram feitas pesquisas relacionadas às características de aplicações web identificadas por diversos autores e as características consideradas relevantes para o desenvolvimento de sistemas web. Estudou-se também nesta fase algumas abordagens e estudos comparativos para escolha da abordagem a ser aplicada no estudo de caso. Estudo dos conceitos teóricos sobre a WebML: após a escolha da WebML, foise necessário aprender a utilizar a WebML e sua ferramenta de apoio WebRatio. Para isso procurou-se estudar a teoria da linguagem e tutoriais da ferramenta e desenvolver pequenos exemplos. Levantamento das regras de negócio da aplicação. Para desenvolver o estudo de caso, foi necessário o entendimento do funcionamento de uma entidade de classe e o levantamento dos requisitos e regras de negócio necessárias para desenvolver um sistema de gestão para esse domínio. Desenvolvimento do estudo de caso: Depois de identificados os requisitos do sistema e estudada a WebML, procurou-se desenvolver um estudo de caso

13 13 utilizando-se das definições da linguagem; após o que foi realizada uma avaliação observando sua importância e eficiência no desenvolvimento. Redação da monografia: redigir a monografia paralelamente às etapas anteriores Organização da monografia Além do presente capítulo, a monografia está organizada como segue: Capítulo 2: Engenharia web apresenta um levantamento teórico sobre o desenvolvimento de sistemas web, as características relevantes no desenvolvimento desse tipo de sistemas, o cenário atual e os estudos existentes sobre o assunto. Capítulo 3: WebML descreve detalhadamente a linguagem de modelagem WebML Capítulo 4: Estudo de caso apresenta a descrição do estudo de caso, a modelagem de alguns casos de uso utilizando a WebML e o levantamento das vantagens encontradas na utilização da linguagem. Capítulo 5: Conclusões e trabalhos futuros apresenta as conclusões obtidas através do desenvolvimento do estudo de caso e sugestões para trabalhos futuros. Capítulo 6: Referências bibliográficas.

14 14 2. Engenharia web 2.1. Introdução Em sua primeira década de existência, a World Wide Web alterou o modo como as informações são criadas e trocadas e como os negócios são realizados globalmente. Desde sua criação até os dias atuais, a web vem se tornando cada vez mais popular. Em 13 anos, o número de web sites teve um crescimento de 100 para mais de 100 milhões, como pode ser constatado através da Figura 2.1 (fonte: Figura 2.1 Crescimento da web nos últimos anos De acordo com Murugesan et. al. (1999), a popularidade e ubiqüidade provêm da própria natureza da Web e suas características: ela fornece uma representação da informação que suporta interligação de todos os tipos de conteúdo, acesso fácil a usuários finais e fácil criação de conteúdo usando diversas ferramentas disponíveis. Kappel et. al. (2004) identificam que a onipresença da web se deve à sua característica de ser compartilhada globalmente, sua disponibilidade permanente, o acesso uniforme às informações e distribuição freqüente das informações produzidas por qualquer um na forma de páginas web.

15 15 Mas acoplada a essa popularização houve também uma evolução com respeito ao tipo de informação e a forma de manipulação dessa informação na web. Hoje muitas empresas e instituições procuram utilizar a web não só como meio de troca de informações, mas também como ferramenta para seus negócios. A Tabela 2.1 apresenta uma breve comparação entre um sistema web simples e um sistema web complexo: Tabela 2.1 Comparação entre sistemas web simples e sistemas web avançadas. (Ziemer, 2004) Sistemas web simples Sistemas web avançados Páginas simples apresentando apenas Páginas web complexas informações textuais Conteúdo não muda conteúdo estático Informação dinâmica muda com o tempo ou conforme a necessidade do usuário Navegação simples Navegação complexa. Difícil encontrar informações na página. Maior quantidade de informações Sistemas stand-alone Integração com bancos de dados e outros tipos de sistemas. Performance não é requisito principal Requer alto desempenho e disponibilidade contínua Desenvolvido por um único indivíduo ou Requer equipe grande de por equipe pequena desenvolvimento e especialistas em várias áreas Utilizado para disseminação da informação Desenvolvido para aplicação de missão não relacionada ao núcleo da aplicação crítica Pode-se constatar através da Tabela 2.1 que sistemas web avançados possuem conteúdo mais complexo, maior quantidade de dados manipulados, necessidade por maior portabilidade e desempenho do que simples home pages. Embora a utilização da web tenha se tornado mais complexa, devido à maior quantidade de informações e a necessidade de maior interação com a lógica de negócio e

16 16 com o usuário, a forma de desenvolvimento desse tipo de sistema, não vêm acompanhando essa evolução de maneira satisfatória. O cenário atual de desenvolvimento de aplicações web apresenta soluções individuais para cada aplicação, com pouco ou nenhum planejamento ou padronização. Lei (2004) considera que o estado da arte de tecnologias de desenvolvimento web tais com Active Server Pages (Microsoft) 1 e Java Server Pages (Sun Microsystems) 2 fornecem soluções satisfatórias para extração e manipulação de conteúdo de dados dinâmicos originários de bases de dados. Contudo, abordagens de prototipação rápidas ad-hoc à qual são dirigidas tais tecnologias e são adotadas em práticas correntes, facilmente levam a resultados insatisfatórios, como, por exemplo, pobre manutenibilidade e extensibilidade. Uma pesquisa sobre desenvolvimento de aplicações web realizado pela Cutter Consortium em 2000 (EPNER, 2000) apontou alguns problemas existentes nos projetos de grandes sistemas web: 84% dos sistemas entregues não atendem às necessidades do negócio; 53% dos sistemas entregues não possuem funcionalidades requeridas; 79% dos projetos excedem o tempo estipulado; 63% dos projetos estouram o orçamento Ginige (2002) acredita que a principal causa do fracasso no desenvolvimento de sistemas web consiste em falhas no gerenciamento e desenvolvimentos desses sistemas. Murugesan et. al. (1999) acrescentam também que aplicações web pobremente desenvolvidas têm grandes probabilidades de falhar e ainda, como a complexidade de sistemas web tem crescido, uma falha pode causar problemas tais como quebra de sigilo de informações, provocando uma Web crisis. Os autores destacam ainda que uma potencial crise em sistemas web pode ser mais sério e comum do que as crises em sistemas de software que os desenvolvedores têm enfrentado. Murugesan et. al. (2005) apud Dart (2001) afirmam que muitas organizações estão indo ao encontro de uma Web crisis na qual são incapazes de manter o sistema atualizado e/ou melhorá-lo e atualizá-lo no nível necessário. Essa crise envolve a proliferação de remendos desenvolvidos sem uma abordagem sistemática. 1 Acesso em 31/01/ Acesso em 31/01/2007

17 17 Murugesan et. al. (2005) destacam ainda que em certas classes de aplicações, tais como gerenciamento de cadeias de suprimentos, serviços financeiros e comércio digital, uma falha no sistema pode propagar problemas em muitas outras funcionalidades, causando um verdadeiro desastre. O custo de um projeto ruim, desenvolvimento precário, pobre desempenho e/ou gerenciamento de conteúdo insatisfatório para aplicações baseadas em web pode ser extremamente sério, já que a quantidade de usuários desse tipo de sistema costuma ser maior que em sistemas convencionais. Os mesmos autores acreditam que, embora alguns web sites demandem por apresentação e navegação simples e possam ser criados apenas interligando documentos e imagens, há mais no desenvolvimento de aplicações web do que apenas desenvolvimento visual e interface de usuário. Esse envolve planejamento, projeto arquitetural e de sistema, teste, garantia de qualidade e desempenho, atualização e manutenção contínuas. Um interessante diagnóstico é apresentado por Ginige e Murugesan (2001a) sobre os problemas no desenvolvimento de sistemas baseados em web. Os autores afirmam que muitos desenvolvedores dedicam pouca atenção ao levantamento de requisitos, análise, processos e metodologias de desenvolvimento, qualidade, avaliação de desempenho, gerenciamento de configuração e projeto, manutenção e escalabilidade. Além disso, o desenvolvimento lida com o conhecimento e experiência de um único indivíduo ou grupo pequeno e práticas próprias, sem uma prática padronizada. Ainda, segundo Ginige e Murugesan (2001a), outro problema a ser destacado é a visão, por alguns desenvolvedores/usuários, da web como sendo uma mídia de informação, ao invés de uma mídia de aplicação. Connalen (2002) acredita que devido à popularidade da World Wide Web (Web), a necessidade de organizar grandes quantidades de dados de maneira hipertextual vem crescendo. O autor afirma também que sempre que um site contiver quantidades significativas de dados, seu design se torna um processo complexo que envolve pelo menos dois aspectos. Por um lado, existem características do processo de desenvolvimento que se preocupa com o gerenciamento dos dados e, por outro lado, a estrutura de hipertextos deve ser cuidadosamente desenvolvida com o objetivo de fornecer páginas organizadas. Um desenvolvedor cuidadoso deve coordenar apropriadamente estes dois aspectos. Costagliola et. al. (2002) acrescentam ainda que é importante destacar que as metodologias de desenvolvimento de software tradicionais geralmente não consideram

18 18 aspectos estéticos e cognitivos, tais como a aparência das páginas e facilidade de navegação, que são consideravelmente importantes em aplicações web. Murugesan e Ginige (2005) complementam a idéia afirmando que o desenvolvimento de sistemas baseados em web vai muito além do desenvolvimento de software tradicional. Há sutis diferenças na natureza e ciclo de vida de sistemas baseados em web e sistemas tradicionais, assim como na forma que são desenvolvidos e mantidos. Murugesan e Ginige 2005 apud Powell 2000 consideram que o desenvolvimento web é uma mistura entre publicidade impressa e desenvolvimento de software, entre marketing e computação, entre comunicação interna e relacionamento externo e entre arte e tecnologia. Para mudar esse cenário caótico do desenvolvimento de projetos baseados em web, uma grande quantidade de pesquisadores passaram a dedicar maior atenção sobre a maneira de desenvolver tais projetos, atentando às características essenciais de uma aplicação tradicional e levando em consideração as características específicas de uma aplicação web. Em 1998, foi estabelecido por uma equipe de pesquisadores da Universidade de Sidney, Austrália e da IEEE, que a engenharia web seria uma nova disciplina. Desde então, foram organizados diversos eventos e workshops sobre o tema e várias novas pesquisas foram realizadas. Novas abordagens e cursos sobre engenharia web estão sendo ensinados nas Universidades, tanto em nível de graduação quanto de pós-graduação e pesquisas adicionais estão sendo realizadas levando em consideração diversos aspectos da engenharia web. Não é surpresa também que o interesse de desenvolvedores de internet em utilizar metodologias da engenharia web vem crescendo (COSTAGLIOLA, 2002). As diferenças entre aplicações tradicionais e aplicações web são discutidas na próxima seção. Murugesan (1999) destaca que há necessidade por abordagens, disciplinas e novos métodos e ferramentas para desenvolvimento, instalação e avaliação de sistemas baseados em web. Mais do que isso, tais abordagens e técnicas devem considerar: 1) as características particulares da nova mídia; 2) o ambiente operacional; 3) cenários e multiplicidade de perfis de usuário e; 4) tipos (habilidades e conhecimento) do pessoal envolvido na construção do sistema.

19 19 Connalen (2002) define a engenharia web como sendo uma disciplina que estuda a aplicação de sistemáticas, disciplinadas e quantitativas abordagens para desenvolvimento, operação e manutenção de aplicações baseadas em web. As características consideradas importantes no desenvolvimento de aplicações web são apresentadas na Seção Categorização de sistemas web Com a popularidade da web nos últimos anos, sua utilização vem sofrendo modificações. A web deixou de ser uma mídia informativa, contendo apenas textos estáticos, e passou a ser utilizada para diversas funcionalidades; antes exclusivas de sistemas típicos. Assim, a web deixou de abrigar somente web pages comuns e passou a abrigar diferentes categorias de sistemas, tais como sistemas de comércio eletrônico, sistemas de informação etc. Ziemer (2004) afirma que a primeira categorização para aplicações web foi encontrada em Connalen (2002), o qual afirma que a distinção entre Web sites e aplicações web é sutil e depende da habilidade do usuário em afetar o estado da lógica de negócio implementada no servidor. Se não existe lógica no servidor, o sistema não pode ser considerado uma aplicação web. Uma categorização mais detalhada é fornecida por Ziemer, 2004 apud Hassan, 2001, que classifica aplicações web em duas dimensões: A quantidade de lógica de controle e A quantidade de dados processados Ziemer (2004) categoriza ainda aplicações web em quatro dimensões: Brochura Nenhuma lógica de controle e nenhum dado processado. Um exemplo dessa categoria é uma simples home-page. Aplicações orientadas a serviços alguma lógica de controle e quantidades pequenas de dados são processados. Esses sites são dedicados a fornecer algum tipo de serviço ao usuário, como por exemplo, webmail.

20 20 Aplicações data intensive aplicações web que fornecem uma interface para manipular grandes quantidades de dados. Como por exemplo, sites de busca. Aplicações de sistemas de informações uma mistura de aplicações orientadas a serviço e aplicações data intensive, como por exemplo sites de comércio eletrônico. Ginige e Murugesan (2001a) apresentam uma outra categorização de sistemas baseados em web, levando em consideração o tipo de informação manipulado, conforme mostrado na Tabela 2.2. Tabela 2.2 Categorias de Aplicações Web (Ginige e Murugesan, 2001a) Categoria Exemplos Informacional Jornais on-line, catálogo de produtos, classificados on-line, e- books Interativo Formulários de registro, jogos online Transacional Compras on-line, bancos on-line Workflow Gerenciamento e estoque, programação e planejamentos online Ambiente de trabalho colaborativo Ferramentas de projeto colaborativo Comunidades on-line, Grupos de bate-papo Portais web Portais de comércio eletrônico Para efeito desse trabalho, apenas duas categorias foram consideradas, tal como definido por Connalen (2002); Web pages, caracterizando sistemas que não afetam a lógica de negócios, tendo apenas intuito informativo e sistemas web, que representam sistemas que afetam de alguma maneira a lógica de negócio.

21 Características de sistemas web Kappel et. al. (2004) destacaram algumas características de sistemas web, encontradas na literatura existente: Características relacionadas à aplicação. No desenvolvimento de aplicações web, devem ser considerados não somente funcionalidades, mas também aspectos de conteúdo, hipertexto e apresentação. o Conteúdo. Os autores relatam que aplicações web são fortemente dirigidas a conteúdo. A complexidade aumenta, principalmente, pelo fato do conteúdo ser freqüentemente dinâmico e continuamente atualizado. Além disso, usuários normalmente demandam qualidade no conteúdo, em termos de tópicos, consistência, exatidão e confiabilidade. Murugesan e Ginige (2002) destacam também que o conteúdo de aplicações web é diversificado, podendo incluir textos, gráficos, imagens, áudio e/ou vídeo. A forma como esse conteúdo é apresentado e organizado tem implicações no desempenho e no tempo de resposta do sistema. o Hipertexto. Aplicações web lidam com paradigmas de hipertexto para a estruturação das informações. A característica essencial do paradigma de hipertexto é a sua não linearidade; requerendo de ambos, autor e usuário, maior atenção aos aspectos de navegação. Costagliola (2002) acrescenta que para melhorar a legibilidade de documentos web, o desenvolvedor deve evitar a exposição de conteúdo excessivo e montar um modelo coerente para que o usuário não se sinta perdido no hiperespaço. o Apresentação. Em aplicações baseadas em web, a interface é o fator principal. Além disso, diferentemente de aplicações tradicionais, usuários web normalmente não terão acesso a um manual sobre a forma de utilizar o sistema. Características relacionadas ao uso. Diferentemente de aplicações tradicionais, usuários de aplicações web freqüentemente variam em número e base cultural, uso de dispositivos heterogêneos e de diferentes localizações e tempo de acesso.

22 22 o Infra-estrutura técnica imprevisível. Dispositivos de usuário final variam em relação às capacidades de hardware e software, tais como poder de computação, versão do navegador, velocidade de conexão à rede, estabilidade, largura de banda, etc. o Diversidade de usuários. Usuários de aplicações web diferem em idade, base cultural e social, objetivos, intenções, habilidades, etc. Essa heterogeneidade deve ser levada em consideração pelo desenvolvedor, visto que a aplicação somente será utilizada se fornecer alguma vantagem ao usuário, e não como uma obrigação. Características relacionadas ao desenvolvimento. Os desenvolvedores deverão lidar com condições, riscos e incertezas não existentes em sistemas tradicionais. o Equipe de desenvolvimento. O desenvolvimento de aplicações web é multidisciplinar, englobando profissionais com diferentes habilidades. Ginige e Murugesan (2001a) afirmam que são necessários profissionais de análise de sistemas e design, engenheiro de software, engenheiro de hipermídia e hipertextos, engenheiro de requisitos, desenvolvedor da interação humano-computador, desenvolvedor de interface de usuário, engenheiro de conteúdo, testador, gerente de projeto, designer gráfico e de apresentação. A Figura 2.2, criada por Murugesan et. al. (1999) exemplifica as diversas áreas envolvidas nas atividades de desenvolvimento de um sistema web.

23 23 Figura 2.2 Engenharia Web Um campo multidisciplinar (Murugesan et al., 1999) o Ambiente de desenvolvimento. A infra-estrutura técnica usada para desenvolvimento é caracterizada pelo alto grau de volatilidade e heterogeneidade, por lidar com diferentes componentes, tais como, servidores web, servidores de aplicação, sistemas de banco de dados, frameworks de publicação etc. o Integração com sistemas legados. Freqüentemente surge a necessidade de integração com sistemas legados. Esses sistemas normalmente são pobremente documentados, freqüentemente modificados sem aviso, afetando negativamente a aplicação web. o Processo. Processos de desenvolvimento de aplicações web são freqüentemente modificados e ajustados, devido ao rápido desenvolvimento tecnológico, tendência contínua a mudanças, requisitos voláteis e cronograma rígido. Murugesan et. al. (1999) afirmam que devido a essa mudança constante, não há uma fase formal de análise de requisitos em projetos web. Isso tudo demanda por métodos de desenvolvimento orientados à prototipação, flexível e iterativo. Características relacionadas à evolução. Aplicações web estão sujeitas a freqüentes mudanças e evolução permanente. Seu desenvolvimento é dirigido a constantes mudanças tecnológicas e a volatilidade dos usuários web, levam a uma situação de competitividade, onde o curto tempo de mercado é considerado

24 24 crucial. Ziemer (2004) considera que o tempo médio de um projeto web gira em torno de três meses Linguagens e métodos de análise para sistemas web Como mencionado anteriormente, na Seção 2.1, desde 1998 a forma de desenvolvimento de aplicações web tem atraído o interesse da comunidade de pesquisadores, e desde então, uma considerável quantidade de metodologias, linguagens, ferramentas e processos têm surgido. A maioria das abordagens existentes atualmente foca em algumas funcionalidades específicas no desenvolvimento de aplicações web, como por exemplo, representação de recursos de hipermídia, ou características de personalização de usuários. Ginige e Murugesan (2001b) elaboraram, baseados em suas experiências, uma lista com 10 passos que consideram principais para um desenvolvimento de sucesso: Entender as funcionalidades do sistema como um todo, inclusive os objetivos e requisitos de negócio; Identificar claramente os stakeholders; Especificar os requisitos técnicos e não técnicos dos stakeholders e do sistema como um todo; Desenvolver uma arquitetura geral do sistema web que atenda aos requisitos técnicos e não técnicos; Identificar sub-projetos ou sub-processos para implementar a arquitetura. Se os subprojetos são muito complexos de se gerenciar, divida-os até que se tornem partes gerenciáveis; Desenvolver e implementar os sub-projetos; Incorporar mecanismos efetivos para gerenciar a evolução, mudanças e manutenção do sistema; Apontar aspectos não técnicos, tais como manutenibilidade, desempenho, etc.; Medir o desempenho do sistema; Refinar e atualizar o sistema. Para acompanhar as necessidades no desenvolvimento de aplicações web, várias

25 25 linguagens e padrões de modelagem têm sido propostos, tais como HDM (Hypertext Design Model) (GARZOTTO et al., 1993); RMM (Relationship Management Methodology) (ISAKOWITZ et al., 1995), OOHDM (Object-Oriented Hypermidia Design Method) (SCHWABE e ROSSI, 1998), Araneus (ATZENI et al., 1998), HDM-lite (FRATERNALI e PAOLINI, 1998), Strudel (FERNANDEZ, et al., 1998), WSDM(the Web Site Design Method) (De TROYER e LEUNE, 1998), UWE (the UML-based Web Engineering) (HENNICKER e KOCH, 2000), OO-H (GÓMEZ et al., 2000), WebML (Web Modelling Language) (CERI et al., 2000), OntoWebber (JIN et al., 2001), Hera (FRASINCAR et al., 2002) entre outros. De acordo com Lei (2004) as abordagens correntes distinguem diferentes camadas para descrever sistemas web e fornecer modelos para resolver cada camada adequadamente. Em particular, eles fornecem suporte para o desenvolvimento de estruturas de navegação. Além disso, muitas abordagens fornecem modelos de interface de usuário e também, suporte à personalização. Ainda de acordo com Lei (2004), duas soluções têm sido desenvolvidas nas abordagens correntes com relação à personalização. Personalização em nível de composição, que permite a construção de diferentes visões de sites em tempo de desenvolvimento e personalização em nível de derivação, que permite a construção de diferentes visões de sites em nível de execução. Ainda, Lei (2004) apresenta uma comparação das diferentes abordagens descritas anteriormente na perspectiva de especificações que este considera relevantes no desenvolvimento de aplicações web de alto nível. São eles: modelagem de domínio, modelagem de navegação, modelagem de interface de usuário, modelagem de apresentação e modelagem de personalização. Uma apresentação resumida sobre as abordagens mencionadas pode ser encontrada em Lei (2004). A Tabela 2.3 ilustra os resultados dessa comparação e uma explicação mais detalhada sobre as atividades analisadas e os resultados obtidos são fornecidos a seguir. Foram usadas 4 categorias de classificação ilustradas da seguinte maneira: 1-Suporte completo( ), 2- Suporte razoável( ), 3- pouco suporte( ), 4- nenhum suporte ( ).

26 26 Tabela 2.3 Comparação entre abordagens de modelagem e o suporte que oferecem às atividades de modelagem de sistemas web. (Lei, 2004) Modelagem de domínio: Modelagem de domínio refere-se à semântica das bases de dados de domínio dos web-sites. Muitas abordagens fornecem suporte a essa atividade através da abstração das estruturas de dados de domínio, a especificação das estruturas de navegação e de interfaces de usuário para acesso aos dados do domínio. A WebML define um conjunto de operações de construção para apoiar o gerenciamento de dados de domínio. Outras abordagens tais como HDM e WSDM não apóiam acesso dinâmico aos dados do domínio, tendo a informação que ser definida, necessariamente, em tempo de desenvolvimento. Modelagem de navegação: Modelagem de navegação refere-se ao comportamento da estrutura e comportamento da navegação do web-site. Vários métodos têm sido propostos para apoiar essa atividade de modelagem. Por exemplo, a OOHDM utiliza o conceito de classes de navegação, que são nodos, links, índices e guias para suportar a navegação do web-site. Abordagens mais recentes, tais como WebML, OntoWebber e Hera fornecem meta-modelos para

27 27 especificação de navegação em nível conceitual. Modelagem de interface de usuário: modelagem de interface de usuário refere-se à composição das páginas. Essa atividade tem sido tratada por muitas abordagens. Por exemplo, ARANEUS faz uso de modelos de dados lógicos (ADM Araneus Data Model), que representa uma descrição abstrata da página web. Strudel utiliza um gerador de páginas HTML associado a um template para apoiar o desenvolvimento de páginas; UWE fornece um modelo abstrato de interface de usuário e finalmente abordagens como OOH, WebML e OntoWebber propõem primitivas para descrever interfaces de usuário típicas, como interfaces de apresentação de dados, aquisição de dados e consulta de dados. Modelagem de apresentação: A modelagem dos estilos de apresentação e layouts não têm sido totalmente tratadas pelas abordagens correntes. Muitas dessas abordagens têm utilizado conceitos externos, como folhas de estilo, para realizar tal especificação. Isso acontece por que os componentes das páginas não são completamente representados de forma declarativa, assim nem todos os aspectos de apresentação são representados em nível conceitual. OntoWebber propõe um conjunto de primitivas de layout (ex. layout de fluxo e layout de grade) para descrever layouts típicos de interface de usuário. Modelagem de Personalização: Uma vez que web-sites possuem informações que interessa a um público variado, torna-se necessário apresentar visões personalizadas para usuários individuais. Primeiramente, a personalização em nível de composição é atendida por todas as abordagens através da separação dos modelos de dados do domínio dos modelos de visão do site, permitindo assim que diferentes visões sejam criadas sobre o mesmo conjunto de dados. Segundo; personalização em nível de derivação é desenvolvida por abordagens como UWE, WebML, OntoWebber e Hera, que permitem a derivação de visões personalizadas para usuários individuais de acordo com seu perfil e personalização de requisitos em tempo de execução.

28 28 Kappel et al. (2001) acreditam que poucos métodos para modelagem de sistemas web tratam da natureza onipresente da web. Os autores destacaram algumas características que consideram importantes na modelagem de sistemas onipresentes. A Figura 2.3 apresenta algumas dimensões que devem ser consideradas Figura 2.3 Dimensões de modelagem para aplicações web onipresentes. (Kappel et al., 2001) A primeira dimensão compreende três níveis em termos de conteúdo, hiperbase e apresentação. O nível de conteúdo se refere aos dados dependentes do domínio. O nível de hiperbase denota a composição lógica das páginas e a estrutura de navegação. O nível de apresentação engloba a apresentação da hiperbase, ou seja, o layout de cada página. A segunda dimensão, chamada aspectos é ortogonal à primeira, e requer que tanto aspectos estruturais, em termos de mecanismos de abstração, tais como classificação, agregação e generalização, como também os aspectos comportamentais, como lógica de negócio, ativação de nodos de navegação e interação com usuário precisam ser consideradas. E finalmente a estrutura e comportamento do conteúdo, hiperbase e apresentação precisam ser direcionados por cada uma das fases do processo de desenvolvimento; análise, projeto e implementação. Além das dimensões consideradas anteriormente, Kappel et al. (2001) definem a personalização como uma dimensão adicional. A personalização é um mecanismo uniforme para possibilitar a onipresença adaptando uma aplicação web através de um contexto particular que reflete o ambiente no qual a aplicação está sendo executada. Kappel et. al. (2001) acreditam ainda que a personalização se apresenta em 3 dimensões ortogonais: tipo de contexto, granularidade de adaptação e grau de

29 29 personalização. A Figura 2.4 representa essa idéia e em seguida uma breve explicação sobre cada dimensão é apresentada. Figura 2.4 Dimensões de personalização. (Kappel et al., 2001) Tipo de Contexto: reflete o ambiente no qual a personalização é considerada. A personalização pode ser considerada sob o foco do usuário, tipo mais comum, onde as características e preferências do usuário são consideradas. O contexto de rede e de dispositivos também é uma abordagem bastante estudada, onde o foco é direcionado aos aspectos de acesso, largura de banda, limitações de hardware do cliente etc.. Contexto de localização engloba localizações físicas e lógicas, como por exemplo acesso realizado em casa ou no escritório. Poucas abordagens estudam esse contexto. Finalmente, contexto de tempo, que considera personalização de acordo com o ponto no tempo em que um determinado serviço é acessado. Granularidade de adaptação: A segunda dimensão indica o nível de granularidade de adaptação, que pode variar entre micro adaptação até macro adaptação. Essa dimensão diz respeito ao tipo de adaptação que ocorre na página de acordo com o contexto atualmente aplicado. Podem ocorrer adaptações simples, como links desabilitados, até adaptações complexas, como substituição de componentes da página para determinados grupos. Grau de personalização: essa dimensão expressa que tanto contexto quanto adaptação podem ser estáticas ou dinâmicas, ou seja, determinadas ou não durante a execução. Um exemplo de adaptação estática é a definição da versão de acordo com o dispositivo de acesso, como PC ou WAP, e um exemplo de

30 30 adaptação dinâmica é a exibição de uma animação para acessos em banda larga e imagem para acessos dial-up. Kappel et al. (2001) apresentam também, considerando as dimensões apresentadas, um estudo comparativo entre duas abordagens de modelagem web; WebML e OOHDM que, segundo os autores, atendem à natureza onipresente da web, diferentemente da maioria das abordagens existentes, que focam em uma única característica. Para maiores detalhes sobre a comparação, consulte Kappel et al. (2001) Conclusões Finais Este capítulo apresentou uma descrição sobre o cenário atual do desenvolvimento de sistemas web e as necessidades que levaram ao surgimento de uma nova disciplina, a engenharia web, como uma tentativa de padronizar e agilizar a forma como sistemas web são desenvolvidos. Foram apresentadas também as características consideradas relevantes no desenvolvimento desse tipo de sistema, algumas das quais não se aplicam aos sistemas tradicionais. Apresentou-se também uma breve apresentação das abordagens existentes e estudos comparativos entre essas abordagens, considerando as funcionalidades importantes para sistemas web.

31 31 3. WebML 3.1. Introdução A WebML é uma notação para especificação de Web sites complexos em um nível conceitual. Isto significa que a WebML é uma linguagem de modelagem que procura representar web sites complexos de uma maneira que seja independente de plataforma, linguagem de programação ou tecnologia. Essa representação é feita através de notações gráficas e XML. Ceri et. al. (2000) afirmam que os conceitos da WebML estão associados com uma representação gráficas intuitiva e formais, que podem ser facilmente apoiados por ferramentas CASE e efetivamente comunicado para membros não técnicos da equipe de desenvolvimento. De acordo com WebRatio Team (2002), o principal objetivo da WebML é: (a) expressar a estrutura da aplicação web com uma descrição de alto nível; (b) fornecer múltiplas visões do mesmo conteúdo; (c) separar o conteúdo da informação da sua composição, navegação e apresentação nas páginas, podendo ser definido independentemente; (d) armazenar meta-informações coletadas durante o processo de desenvolvimento dentro de um repositório, que pode ser usado durante o tempo de vida da aplicação para, dinamicamente, gerar páginas web; (e) modelar usuários e grupos explicitamente, permitindo a especificação de aplicações personalizadas; (f) possibilitar a especificação de operações de manipulação de dados para atualização do conteúdo do site ou interação com serviços externos. A WebML procura descrever web sites através de 4 dimensões: Modelo de estruturas: expressa o conteúdo dos dados do site em termos de entidades relevantes e relacionamentos. Equivalente a representações como diagrama entidade-relacionamentos e diagramas de classe. Modelo de Hipertexto: descreve um ou mais hipertextos que podem ser publicados no site. Cada hipertexto diferente define uma visão no site. A descrição da visão do site consiste de dois sub-modelos 1. Modelo de composição: especifica quais páginas compõem o hipertexto e quais unidades de conteúdo fazem parte da página.

32 32 2. Modelo de navegação: expressa como as páginas e o conteúdo dos dados estão ligados no hipertexto. Modelo de apresentação: define o layout e aparência gráfica das páginas, independentemente do dispositivo de saída ou da linguagem de renderização. Pode ser específico de uma página ou genérica para um grupo de páginas. Modelo de personalização: representação das características específicas de um usuário ou grupo através de entidades predefinidas no diagrama de estruturas, ou através de expressões OQL-like adicionadas ao esquema de estruturas, definindo características do perfil de um usuário ou grupo específico Modelo de estrutura O modelo de estruturas da WebML define os dados da aplicação e seus relacionamentos, através de uma representação equivalente ao diagrama entidaderelacionamento. Ceri et. al. (2001) afirmam que o objetivo da modelagem de dados é possibilitar a especificação dos dados de uma maneira intuitiva e formal. O resultado da modelagem de dados é um esquema conceitual que resulta em uma representação simples e legível do conhecimento sobre a aplicação. Desenvolver tal esquema é útil tanto para o desenvolvedor de funções de negócio, que opera os dados quanto para o desenvolvedor da estrutura física de suporte ao armazenamento, atualização e recuperação dos dados Entidades Entidade é o conceito central do modelo entidade-relacionamento. Uma entidade representa a descrição de características comuns de um conjunto de objetos do mundo real. Uma entidade tem uma população, que é o conjunto de objetos que são descritos pela entidade. Esses objetos são também chamados instâncias da entidade. As entidades, no modelo entidade-relacionamento, podem ser representadas através de um retângulo, com o nome da entidade no topo seguido de uma lista de atributos, conforme a Figura 3.1

33 33 Figura 3.1. Exemplo da representação de entidades e seus atributos Os atributos representam as propriedades dos objetos do mundo real, que são relevantes à aplicação. Entidades são compostos de atributos, que representam as propriedades das instâncias de uma entidade. Toda entidade deve possuir uma chave que o identifica como sendo único na aplicação. Essa chave pode ser um ou mais atributos da entidade. A chave de identificação do objeto nunca poderá ser nula e seu valor deve ser único. A Figura 3.2 assume a propriedade OID (object identifier) como sendo a chave primária das entidades. Um atributo deve ser tipado, ou seja, deverá ser definido para cada atributo da entidade o tipo de informação que ela armazena. Um atributo pode armazenar números, seqüências de caracteres, datas, arquivos, imagens etc. Entidades podem também ser definidas através de hierarquias de generalização, que representam o relacionamento é um entre entidades. Isso significa que duas entidades semelhantes podem generalizar suas características comuns através de uma super entidade e manter suas características particulares. A Figura 3.2 ilustra um exemplo de hierarquia entre entidades. Figura 3.2. Exemplo de hierarquia entre entidades

34 Relacionamentos Um relacionamento representa uma ligação semântica entre duas entidades. Na modelagem entidade-relacionamento, um relacionamento é representado por uma linha que liga duas ou mais entidades. Um relacionamento pode receber um nome, para melhor clareza sobre a relação Modelo de hipertexto O objetivo da modelagem de hipertextos é especificar a organização das interfaces de front-end de uma aplicação web. Para ser eficiente, tal especificação deve ser capaz de representar de uma maneira simples e intuitiva as divisões lógicas da aplicação em módulos, cada um incorporando um conjunto coerente de funcionalidades atendendo a um conjunto específico de necessidade do usuário. Deve também representar a topologia de hipertextos real desses módulos, em termos de páginas, com os elementos do conteúdo e as ligações e navegação entre essas páginas. A WebML representa as características de hipertexto de uma aplicação web através de três instrumentos de representação chave, que são as páginas, unidades e links, que são organizados em módulos, representados por visões e áreas Modelo de Composição No modelo de composição são especificados os dados que deverão ser exibidos no web site e a organização desses dados dentro de uma página. A WebML propõe essa organização através da especificação de áreas, site views, páginas e unidades Unidades Unidades são elementos atômicos para a especificação do conteúdo de uma página web. A WebML suporta cinco tipos de unidades, que são unidades de dados, unidades de

35 35 dados múltiplos, unidades de índice, unidades de rolagem e unidades de entrada, que são discutidos detalhadamente a seguir. Unidades de dados De acordo com Ceri et. al. (2000), unidades de dados selecionam uma mistura de informações que fornecem uma visão significativa de um determinado conceito no esquema de estruturas. Uma entidade pode ser representada por mais de uma unidade de dados, para que várias visões de uma mesma entidade possam ser representadas. Uma unidade de dados é caracterizada através do nome da unidade, da entidade que representa, dos atributos do objeto e de um seletor opcional que identifica unicamente um objeto. A Figura 3.3 exemplifica uma entidade representada pela notação XML. A tag DATAUNIT define uma unidade de dados, onde são especificados o nome da unidade e a entidade que representa. Entre as tags DATAUNIT são definidos os atributos da entidade, através da tag INCLUDE, que define o nome do atributo. A tag INCLUDEALL indica que todos os atributos da entidade serão adicionados a essa unidade de dados. Figura 3.3. Representação XML de uma entidade de dados A Figura 3.4 ilustra a representação gráfica para uma unidade de dados. Dentro do quadrado é exibido o nome da unidade; logo abaixo, a entidade que esta representa seguido pelo seletor único que identifica o objeto a ser exibido. No exemplo, uma instância da entidade artista cujo primeiro nome é Celine e o sobrenome é Dion.

36 36 Figura 3.4. Notação gráfica para unidade de dados Unidades de dados múltiplos Unidade de dados múltiplos representam agrupamentos de instâncias de uma entidade ou de componentes, que serão apresentados de maneira idêntica. Uma unidade de dados múltiplos contém duas partes, 1) um container que inclui as instâncias da entidade, relacionamento ou componente a ser exibido e 2) a unidade de dados contendo as informações que serão exibidas. Sintaticamente, uma unidade de dados múltiplos é representada pela tag MULTIDATAUNIT que é composta pelo nome da unidade e a entidade, relacionamento ou componente que representa. Delimitado pela tag MULTIDATAUNIT, é definida uma unidade de dados contendo as informações que serão exibidas. A Figura 3.5 ilustra essa representação: Figura 3.5. Representação XML de uma unidade de dados múltiplos A Figura 3.6 exibe a notação gráfica, segundo a WebML, para representar uma unidade de dados múltiplos. Dentro do quadrado é especificado o nome da unidade e no ícone abaixo a entidade que está sendo representada.

37 37 Figura 3.6. Notação gráfica para unidades de dados múltiplos Unidades de índice Unidades de índice são responsáveis por apresentar uma lista de instâncias de uma determinada entidade, sem apresentar detalhes dessa entidade. São compostos por duas partes: 1) O container contendo as instâncias a serem exibidas e 2) um atributo usado como índice da entidade na lista. Na representação sintática, um elemento INDEXUNIT representa a unidade de índice, e deve definir o nome da unidade, a entidade que representa e o atributo que será usado como índice, definida pelo elemento DESCRIPTION através do atributo key, entre as tags INDEXUNIT. Figura 3.7. Representação textual para unidades de índice Na notação gráfica, mostrada na Figura 3.8, o nome da unidade é apresentado dentro do quadrado e a entidade que representa segue o ícone, logo abaixo do quadrado. Figura 3.8. Notação gráfica para unidades de índice

38 38 Unidades de rolagem Uma unidade de rolagem possibilita a navegação entre um conjunto de objetos de um container. Define-se o nome da unidade, a entidade que representa e um seletor opcional que restringe o conjunto de objetos através de uma restrição. O elemento SCROLLERUNIT define uma unidade de rolagem, ilustrado na Figura 3.9. A notação gráfica é exibida na Figura Figura 3.9. Notação textual para unidade de rolagem Figura Notação gráfica para unidades de rolagem Unidades de entrada Unidades de entrada representam entrada de dados através de formulários. A entrada de dados pelo usuário é normalmente requerida para operações de pesquisa ou autenticação de usuários. A Figura 3.11 apresenta a notação gráfica para a unidade. Figura Notação gráfica para unidades de entrada

39 39 Figura Notação gráfica para unidades de entrada Unidades de operação Unidades de operação são usadas para representar a utilização de serviços genéricos disponibilizados por páginas externas através de web services ou para o gerenciamento e atualização de conteúdo pré-construído, como criação, exclusão de instâncias de uma entidade por exemplo. Uma unidade de operação recebe uma informação de entrada, através de um ou mais links, sendo um deles declarado como operation-activating, que provoca a execução da operação. A Figura 3.13 e 3.14 ilustram as representações gráfica e XML da unidade de operação, respectivamente Figura Representação gráfica de unidade de operação Figura Representação XML de unidade de operação Páginas Páginas são os elementos da interface exibidos para o usuário. Uma página pode conter várias unidades agrupadas. Uma página é representada, na WebML, através de um

40 40 retângulo, com o nome da página localizado na parte superior. Delimitado pelo retângulo, são especificados os elementos que serão exibidos nessa página, conforme Figura Figura 3.15 Notação gráfica de uma página Modelo de Navegação O modelo de navegação procura representar os links entre unidades e páginas e as propriedades desses links, ou seja, procura definir a navegação que deve existir entre as páginas do web site. Um link representa o conceito de âncoras num web site. Ceri et. al. (2003) definem que a noção central da modelagem de navegação são os conceitos de links, parâmetros de links e seletores de links. Links que ultrapassam os limites das páginas são chamados inter-páginas e links cuja origem e destino estão na mesma página são chamados intra-páginas. Os links podem também ser classificados de acordo com a informação transferida: Ligação contextual: conectam páginas de maneira coerente para expressar relação semântica entre as entidades, modelados através do modelo de estruturas. Ligação não-contextual: conectam páginas sem nenhuma ligação semântica. Links são graficamente representados através de setas direcionadas da origem para o destino. A Figura 3.16 exemplifica um link contextual. Dependendo do item selecionado na listagem de álbuns, um elemento de dados é exibido.

41 41 Figura 3.16 Exemplo de ligação contextual Links contextuais transmitem parâmetros entre as páginas. Algumas regras sumarizam as informações de contexto que fluem através das unidades, são elas: Unidades de dados: o identificador do objeto correntemente mostrado na unidade; Unidade de índice: o valor chave selecionado na lista; Unidade de rolagem: o identificador do objeto selecionado pelo comando de rolagem; Unidade de dados múltiplos: a informação de contexto associada com a unidade de dados alinhada na unidade. A WebML introduz também o conceito de parâmetros globais. De acordo com Ceri et. al. (2003), um parâmetro global é um pedaço de informação que pode ser explicitamente definido em algum ponto da aplicação e recuperado em qualquer ponto da navegação do hipertexto. Um parâmetro global é um atributo visível em qualquer ponto da aplicação e normalmente é definido na sessão do usuário. A declaração de um parâmetro global requer a definição das seguintes propriedades: O nome do parâmetro; O tipo de valor armazenado; Um possível valor padrão para o parâmetro. O valor de um parâmetro é associado a uma unidade de ajuste (set unit). Um set unit tem um link de entrada, que é associado com um parâmetro de link, que ajusta o valor do parâmetro global. Graficamente, um set unit é localizado fora das páginas, uma vez que deve ser visível por todas as outras páginas. Para recuperar uma informação de um parâmetro global, são utilizadas unidades de recuperação (get unit). Um get unit não possui um link de entrada de dados, somente de

42 42 saída, por onde transmite o valor do parâmetro. Get units são localizadas dentro das páginas que utilizam o valor global, para denotar a recuperação do parâmetro global Organização de hipertextos Uma representação de hipertextos pode ser organizada de forma hierárquica, usando modularização, através do conceito de visões de site (site views) e áreas: Site views: pacote que engloba páginas e links do hipertexto, de forma modular. Áreas: containers de páginas que delimitam o conteúdo de um site view de maneira hierárquica. Páginas de um hipertexto podem também ser organizadas de acordo com sua importância dentro do web site. Home page: página principal carregada ao acessar o endereço do site. Deve ser única dentro do web site e pode ser representada graficamente por um H dentro da página. Default page: página exibida por padrão ao acessar uma determinada área do web site. Representada graficamente por um D dentro da página. Deve ser única dentro de uma área. Landmark: página principal de uma determinada área ou site view. Todas as páginas que pertencem à área, ou site view, possuem uma ligação implícita à página de landmark. Representada graficamente por um L dentro da página, e único por área ou site view. A Figura 3.17 exemplifica os conceitos de home page, landmark e default page, além de exibir páginas relacionadas ao contato com usuários delimitados por uma área, nomeada contato.

43 43 Figura 3.17 Exemplos de landmark, home page, default page e área Modelo de apresentação O modelo de apresentação define o layout e a aparência gráfica das páginas da aplicação, conforme definidos no modelo de composição. De acordo com Ceri et. al. (2000) páginas WebML são renderizadas de acordo com uma folha de estilos. Uma folha de estilos define o layout das páginas e os elementos do conteúdo a serem inseridos em tais páginas, independentes da linguagem utilizada no desenvolvimento. Duas categorias de folhas de estilos foram definidas na WebML: folhas de estilo não tipadas (também chamadas modelos) descrevem páginas de layout independente do seu conteúdo, e folhas de estilo tipadas, que são específicas para páginas de determinado conteúdo Modelo de personalização A WebML procura modelar um web site considerando também o tipo de usuário que irá acessar o sistema. O acesso ao site pode ser feito por usuários registrados, com preferências específicas, ou por visitantes casuais não identificados pelo sistema. A WebML distingue essas duas classes como usuários registrados e não registrados, respectivamente. Além dessa distinção, a WebML classifica também as visões do site,

44 44 como protegidas, que poderão ser acessadas apenas por usuários registrados, e visões públicas, acessíveis por qualquer visitante. A WebML modela tais características de personalização através da definição de usuário, grupo, site view e o relacionamento semântico entre esses elementos. O modelo de estruturas para sistemas que incluem restrições de acesso às visões do site deve incluir o esquema básico, conforme Figura 3.18, podendo ser acrescentadas características adicionais, se necessário: Figura 3.18 Esquema básico para representação de aplicações com restrição de acesso a visões do site Modelo de derivação Além das dimensões identificadas anteriormente, a WebML utiliza uma forma de representação dos dados através de derivação. De acordo com Ceri et. al. (2001), derivação é o processo de adicionar informações redundantes no esquema de estruturas para aumentar sua expressividade e definir diferentes visões do mesmo dado. A derivação é formalmente expressa através de uma linguagem de consulta, chamada WebML-OQL WebML OQL A WebML-OQL é expressa pela seguinte gramática: <DIGIT: ["0"-"9"]> <LETTER: [ "\u0024", "\u0041"-"\u005a", "\u005f", "\u0061"-"\u007a", "\u00c0"-"\u00d6", "\u00d8"-"\u00f6", "\u00f8"-"\u00ff", "\u0100"-"\u1fff", "\u3040"-"\u318f", "\u3300"-"\u337f", "\u3400"-"\u3d2d", "\u4e00"-"\u9fff", "\uf900"-"\ufaff" ]> <STRING: "\ " (<LETTER> <DIGIT> "@" " " "!" "?" "#" "$" " " "%" "/" "^" " " "[" "]" "," ";" "." ":" "_" "-" "+" "*" " " " Y")+ "\ ">

45 45 <NUMBER: (<DIGIT>)+ ("." (<DIGIT>)+)?> <IDENTIFIER: (<LETTER>)+ ("_" ":" <DIGIT> <LETTER>)*> <OPERATOR: "+" "-" "/" "*"> <COMPARATOR: "<" "<=" "=" "!=" "<>" ">=" ">" "contains" "beginswith" "endswith"> <AGGRFUNCTION: "min" "max" "avg" "sum" "count"> <SELF: "Self"> <AND: "AND"> <OR: "OR"> <WHERE: "WHERE"> <ISA: "ISA"> <NOT: "NOT"> <IN: "IN"> <TO: "TO"> <IS: "IS"> <AS: "AS"> <NULL: "NULL"> <TRUE: "TRUE"> <FALSE: "FALSE"> <LEFTBRACKET: "("> <RIGHTBRACKET: ")"> <DOT: "."> <EntityQuery : Step <WHERE> Condition ( ";" <EOF> )> <RelationshipQuery : ( <SELF> <TO> Step PathExpression ) ( <WHERE> Condition )?( ";" <EOF> )> <AttributeQuery : AttributeValue ( <WHERE> Condition )? ( ";" <EOF> )> <Step : <IDENTIFIER> ( <LEFTBRACKET> <AS> <IDENTIFIER> <RIGHTBRACKET> )?> <PathExpression : ( <SELF> <IDENTIFIER> ) ( <DOT> Step )*> <AttributeValue : ( AttributeExpression <LEFTBRACKET> AttributeValue <RIGHTBRACKET> ) ( <OPERATOR> ( AttributeExpression <LEFTBRACKET> AttributeValue <RIGHTBRACKET> ) )*> <AttributeExpression : ( <STRING> <NUMBER> PathExpression <AGGRFUNCTION> <LEFTBRACKET> PathExpression <RIGHTBRACKET> )> <Member : ( <NOT> )? <IN> PathExpression> <IsNull : <IS> ( <NOT> )? <NULL>> <WhereExpression : ( ( <IDENTIFIER> <SELF> ) <ISA> <IDENTIFIER> AttributeExpression ( Member IsNull <COMPARATOR> ( AttributeExpression <TRUE> <FALSE> ) ) ( <LEFTBRACKET> Condition <RIGHTBRACKET> ) )> <LogicalTerm : WhereExpression ( <AND> WhereExpression )*> <Condition : LogicalTerm ( <OR> LogicalTerm )*> KeyWords, predicados e operadores A palavra chave ISA denota um predicado que permite checar a presença de um elemento dentro de uma sub-entidade. O operador + é uma sobrecarga: ele denota operações de adição para números e concatenação de strings. A palavra chave SELF representa o conceito de esquema de dados que está sendo derivado ou estendido.

46 Expressões de início As consultas de derivação podem ser de três tipos: EntityQuery, RelationshipQuery e AttributeQuery, seguidos pelos respectivos símbolos de terminação. Uma derivação de relacionamento pode ser de dois tipos: consultas que expandem o símbolo PathExpression, permitindo a definição de relacionamentos que incluem um subconjunto de um determinado conjunto de relacionamentos; consultas que expandem o símbolo <SELF> <TO>, que expressa relacionamentos compreendendo pares arbitrários de objetos que satisfaçam a uma determinada condição Passos da navegação e valores de atributos Os valores ATTRIBUTEVALUE e ATTRIBUTEEXPRESSION permitem expressar termos calculados, aplicando funções de agregação e operações aritméticas para definir atributos locais ou de outras entidades representado através de um PATHEXPRESSION Condições Representadas pelo elemento CONDITION, que permite expressar condições através de conectores AND e OR. Sub-fórmulas podem ser adicionadas em elementos CONDITION através do elemento WHEREEXPRESSION Atributos derivados Atributos podem ser derivados de quatro maneiras: Atributos importados: denotam pedaços de informações retiradas de outras entidades. Atributos calculados: valor do atributo é calculado através de outros atributos. Atributos agregados: valor obtido através da aplicação de alguma função da linguagem, tal como a função count, que conta o número total de ocorrências de

47 47 uma determinada consulta. Atributos constantes: conteúdo fixo para o atributo Entidades derivadas Aplicadas para definição de sub-entidades, que correspondem a uma população de uma determinada entidade que atende a algum critério de busca. Por exemplo, a consulta a seguir cria uma sub-entidade englobando somente artistas italianos: ArtistasItalianos = Artistas AS A WHERE A.nacionalidade contains Italia ; Relacionamentos derivados Papéis de relacionamentos podem ser derivados de uma consulta WebML - OQL de duas formas: redefinindo ou concatenando relacionamentos existentes ou associando pares de objetos através de uma condição. Em ambos os casos, o elemento SELF denota o objeto origem do relacionamento.

48 48 4. Estudo de caso 4.1. Visão Geral O sistema de gestão para entidades de classe (SGEC) atende às várias atividades de uma entidade de classe. Entidades de classe podem ser definidas como uma sociedade de empresas ou pessoas com forma e natureza jurídica próprias, de natureza civil, sem fins lucrativos e não sujeita a falência, constituídos para prestar serviços aos seus associados. Entidades de classe podem ser confederações, federações, associações, sindicatos, cooperativas, entidades profissionais etc. O SGEC é direcionado principalmente a sindicatos e consiste, basicamente, no cadastro de empresas ou pessoas que desejam ser representada pela entidade; controle de recebimentos de taxas sindicais cobradas de seus filiados e outras taxas existentes em um sindicato. O sistema também controla a locação de recursos disponibilizados pelo sindicato aos seus filiados, como chácara de recreação, auditórios para reuniões e bibliotecas, entre outros. A Figura 4.1 ilustra o diagrama de casos de uso do sistema. Um sindicato é formado por pessoas ou empresas, denominados representados, que podem optar por associar-se ao sindicato ou apenas ser representado por ele. Um representado que se associa ao sindicato, denominado associado, abrirá um contrato de associado e passará a pagar taxas mensais e uma contribuição anual obrigatória, denominada contribuição sindical e prevista em lei. Através desse contrato, o associado, além de usufruir da representação de seus interesses através do sindicato, poderá utilizar alguns recursos tais como, locação de chácaras de recreação, auditórios para reuniões, anúncios no jornal do sindicato, etc. Um representado que opta por não se associar ao sindicato, denominado contribuinte, abrirá um contrato de contribuinte com o sindicato e pagará, além da contribuição sindical anual obrigatória, uma taxa semestral, denominada reversão patronal, que visa custear as atividades do sindicato. Um contribuinte poderá também utilizar os recursos do sindicato mediante pagamento de taxas que variam conforme o tipo de recurso. Os recursos disponibilizados pelo sindicato, assim como seus valores, são definidos pela diretoria. Além das atividades de gestão do sindicato, o sistema SGEC deverá suportar o

49 49 acesso de usuários em diferentes grupos de acesso, que poderão ter acesso restrito a determinados módulos do sistema, tais como grupo de cadastro que somente poderá cadastrar representado, sem permissão de modificação à área financeira etc. Outros grupos poderão ter acesso incondicional ao sistema, tal como o grupo de administradores do sistema. Figura 4.1 Diagrama de use case

50 Modelo de estrutura O modelo de estruturas procura representar os dados do sistema na forma de entidades e relacionamentos. Conforme mencionado anteriormente na Seção 3.2, a WebML define uma maneira de representação dos dados compatível com modelos já bastante conhecidos e difundidos tais como modelo entidade-relacionamento e diagrama de classes. A Figura 4.2 ilustra um modelo de estruturas inicial para o SGEC. Figura 4.2: Diagrama de estruturas para o SGEC Uma pessoa, que pode ser tanto física quanto jurídica, poderá tornar-se um contribuinte do sindicato. Para tornar-se representado, uma pessoa deverá abrir um contrato e optar por tornar-se associado ou contribuinte. Cada representado poderá abrir mais de um contrato, contanto que em períodos distintos. Um representado poderá abrir um contrato de associado por um determinado período e depois optar por tornar-se apenas um contribuinte ou vice-versa, assim, ao invés de modificar o contrato, o representado abrirá um outro contrato como contribuinte. Um contrato implica na geração de taxas, que pode

51 51 ser de três tipos, sendo que cada tipo terá um período de geração (por exemplo, mensal, semestral, anual) e valores diferentes. Durante a vigência do contrato várias taxas serão geradas. Um contrato também poderá implicar na geração esporádica de cobranças diversas, pela utilização de recursos disponibilizados pelo sindicato. Um contrato poderá possuir várias cobranças durante sua vigência, uma cobrança, ao contrário deverá pertencer a apenas um contrato e jamais poderá existir sem estar associado a um contrato. O diagrama representa também os dados relacionados ao controle de acesso dos usuários ao sistema. A WebML define por padrão três entidades para representação do controle de acesso do sistema, usuários, grupos e módulos. Um usuário pertence a um ou mais grupos, que poderão ter acesso a um ou mais módulos do sistema. Os usuários cadastrados ao sistema poderão pertencer a pelo menos um grupo, podendo participar de mais de um grupo ao mesmo tempo. Cada grupo terá acesso a um ou mais módulos do sistema. Um módulo poderá ser acessado por mais de um grupo e um grupo poderá ter mais de um usuário associado Modelagem de Hipertexto A modelagem de hipertexto procura representar de forma abstrata a camada de apresentação de um sistema data-intensive. Através dessa modelagem características específicas de sistemas web, tais como fluxo de navegação de páginas e forma de exibição dos dados, podem ser representados sem especificar uma linguagem de programação específica. A WebML permite também especificar o conteúdo a ser exibido para cada grupo de usuários, de acordo com as permissões de acesso de cada módulo do sistema, através do diagrama de site view Identificação de Site Views Podemos identificar primariamente dois tipos de visões diferentes, usuários identificados e usuários anônimos. A priori todos usuários que acessam o sistema podem

52 52 ser considerados usuários anônimos e são direcionados à página de login, onde fornecerão um login e uma senha para tentar entrar no sistema. A página de login ativa a operação de login que compara as informações contidas no banco de dados com as fornecidas pelo usuário. Se a operação for bem sucedida, ou seja, se o usuário for autenticado, ele será direcionado a tela de menu do site e uma variável global contendo as informações do usuário será registrada. Note que, a variável global procura representar o conceito de sessão do usuário, ou seja, uma informação que será armazenada durante todo o tempo em que o usuário se mantiver ativo no sistema. Caso a operação não seja bem sucedida, o usuário será reenviado para a pagina de login através de um link de erro. Figura 4.3 Operação de login Uma vez que o usuário tenha sido identificado, este será redirecionado para um menu contendo links para os módulos aos quais tem acesso. Caso o usuário pertença ao grupo de administradores de sistema, seu acesso será ilimitado, podendo inclusive alterar informações de outros usuários. Um usuário comum, ao contrário, não poderá acessar informações de outros usuários, mas poderá acessar e alterar suas próprias informações. A Figura 4.4 ilustra a operação de alteração de dados pessoais para usuários autenticados.

53 53 Figura 4.4 Alteração de dados pessoais Modelagem das funcionalidades A Figura 4.5 ilustra o caso de uso de cadastrar representado. Esse caso de uso engloba as ações de inclusão de um novo representado, atualização de um registro já existente, remoção e consulta dos representados já cadastrados. Figura 4.5. Modelagem do controle de representados

54 54 As ações relacionadas à entidade representado foram englobadas em uma área chamada cadastro representado. Dentro desta área foram definidas quatro páginas, sendo a página menu de representados a página default. Sempre que um usuário desejar realizar alguma operação relacionada à entidade representado acessará a página de menu e escolherá a operação desejada através de uma lista de ações, representada através de uma unidade de índice. A página de menu foi também definida como landmark, o que indica que todas as páginas dessa área podem acessar, através de um link não contextual, essa página. A página novo representado contém uma unidade de entrada, representando um formulário contendo todos os dados que precisam ser preenchidos para um novo representado. A página pesquisa de representados contém as ações de busca de registros. A unidade de entrada no topo da página indica a possibilidade de fornecer um parâmetro de pesquisa para filtrar os registros. Depois de informado o parâmetro de pesquisa, uma operação de busca é acionada, redirecionando o usuário à mesma página, mas agora contendo a lista de representados, ilustrada pela unidade de índice, que satisfazem o parâmetro fornecido anteriormente. A lista de representados contém uma indicação na parte inferior de que a lista contém apenas objetos da entidade representado. Através desta lista pode-se escolher um dos objetos que redirecionará o usuário para os dados do representado selecionado, indicado pela unidade de dados na página informações representado. A Figura 4.6 ilustra as operações de criação, remoção, pesquisa e alteração de contratos.

55 55 Figura 4.6. Modelagem de cadastro de contratos As operações sob a entidade contrato são bastante parecidas com as descritas em representados, diferindo apenas na relação que um contrato deve manter com um representado. Ao criar um novo contrato, deve-se indicar o representado no qual o contrato pertence. Para encontrar o representado desejado, o usuário é redirecionado à página de pesquisa de representados, onde poderá escolher o objeto desejado. O usuário pode optar também por criar um novo contrato a partir da página de informações do representado. Através da página de informações de contrato, o usuário poderá navegar para a página de informações do representado que está associada ao contrato. A Figura 4.7 apresenta a modelagem do caso de uso gerar taxas. Nesse caso de uso, são apresentadas as funcionalidades básicas de inserção, remoção e pesquisa de taxas, que são similares às funcionalidades de outras entidades apresentadas anteriormente. Porém, a entidade taxas possui uma clara ligação com um contrato. Uma taxa não existe sem que esteja associada a um contrato. Ao criar uma nova taxa, devemos especificar um contrato associado a ele. Para tanto, podemos realizar uma pesquisa na página de pesquisa de contratos e localizar o contrato desejado. Perceba que, ao consultar as informações de um determinado contrato, as taxas existentes daquele contrato são exibidas automaticamente.

56 56 O sistema permite que o usuário possa navegar entre as páginas de diversas formas. Podemos localizar um contrato partindo de uma taxa, associada a ele; podemos localizar uma taxa através do contrato; podemos localizar um representado através de seu contrato etc. Figura 4.7 Modelagem de geração de taxas Outras funcionalidades identificadas no diagrama de estrutura não foram apresentadas nessa seção por conter composição semelhante às já apresentadas, sendo portanto considerado desnecessário sua apresentação Avaliação final sobre a utilização da WebML A WebML é uma linguagem bastante interessante tanto para modelagem de sistemas web quanto para web pages. Entende-se por web pages páginas simples de conteúdo apenas informativo e sistemas web como sinônimo para aplicações web, sistemas data intensive, sistemas baseados em web. A modelagem de estruturas da linguagem não apresenta grandes novidades, uma vez que utiliza definições da modelagem entidade-relacionamento, já bastante conhecida e

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

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

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

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

Leia mais

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

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

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

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

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

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

Leia mais

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

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

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: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

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

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

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

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

A Linguagem de Modelagem Unificada (UML)

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

Leia mais

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

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

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

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

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

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

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

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

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS CST em Análise e Desenvolvimento de Sistemas 5ª. Série Programação e Design para Web A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem

Leia mais

Material de Apoio. Sistema de Informação Gerencial (SIG)

Material de Apoio. Sistema de Informação Gerencial (SIG) Sistema de Informação Gerencial (SIG) Material de Apoio Os Sistemas de Informação Gerencial (SIG) são sistemas ou processos que fornecem as informações necessárias para gerenciar com eficácia as organizações.

Leia mais

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

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

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

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

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

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Gerenciamento de Incidentes

Gerenciamento de Incidentes Gerenciamento de Incidentes Os usuários do negócio ou os usuários finais solicitam os serviços de Tecnologia da Informação para melhorar a eficiência dos seus próprios processos de negócio, de forma que

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

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA Através dos elementos que fazem parte do projeto do sistema é que podemos determinar quais as partes do sistema que serão atribuídas às quais tipos

Leia mais

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

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

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

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

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Engenharia de Requisitos

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

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

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

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

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

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

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com III Jornada Latinoamericana e do Caribe do gvsig Artigo: Integração do software i3geo com o gvsig Autor: Edmar Moretti Resumo: O i3geo é um software para a criação de mapas interativos para internet qu

Leia mais

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

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

Leia mais

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site

Leia mais

Fase 1: Engenharia de Produto

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

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

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

ORGANIZAÇÃO CURRICULAR

ORGANIZAÇÃO CURRICULAR ORGANIZAÇÃO CURRICULAR O curso Técnico em Informática, em Nível Médio Subseqüente, será organizado de forma semestral, com aulas presenciais, compostos por disciplinas, com conteúdos estabelecidos, tendo

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

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

Eduardo Bezerra. Editora Campus/Elsevier

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

Leia mais

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado) UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado) SISTEMA INTERNO INTEGRADO PARA CONTROLE DE TAREFAS INTERNAS DE UMA EMPRESA DE DESENVOLVIMENTO

Leia mais

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

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

Leia mais

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

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

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como: Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código

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

Artur Petean Bove Júnior Tecnologia SJC

Artur Petean Bove Júnior Tecnologia SJC Artur Petean Bove Júnior Tecnologia SJC Objetivo O objetivo do projeto é especificar o desenvolvimento de um software livre com a finalidade de automatizar a criação de WEBSITES através do armazenamento

Leia mais

Unidade II MODELAGEM DE PROCESSOS

Unidade II MODELAGEM DE PROCESSOS Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que

Leia mais

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

Web Design Aula 01: Conceitos Básicos

Web Design Aula 01: Conceitos Básicos Web Design Aula 01: Conceitos Básicos Professora: Priscilla Suene priscilla.silverio@ifrn.edu.br Motivação Motivação Motivação Motivação Roteiro Introdução Papéis e Responsabilidades Construindo um site

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5 Para entender bancos de dados, é útil ter em mente que os elementos de dados que os compõem são divididos em níveis hierárquicos. Esses elementos de dados lógicos constituem os conceitos de dados básicos

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

Prototipação de Software

Prototipação de Software UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Prototipação de Software Engenharia de Software 2o. Semestre de 2005

Leia mais

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN Análise e Projeto Orientados a Objetos Aula IV Requisitos Prof.: Bruno E. G. Gomes IFRN 1 Introdução Etapa relacionada a descoberta e descrição das funcionalidades do sistema Parte significativa da fase

Leia mais

AGENDA. O Portal Corporativo. Arquitetura da Informação. Metodologia de Levantamento. Instrumentos Utilizados. Ferramentas

AGENDA. O Portal Corporativo. Arquitetura da Informação. Metodologia de Levantamento. Instrumentos Utilizados. Ferramentas AGENDA O Portal Corporativo Arquitetura da Informação Metodologia de Levantamento Instrumentos Utilizados Ferramentas PORTAL CORPORATIVO Na sociedade da informação é cada vez mais presente a necessidade

Leia mais