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

3 OOHDM e SHDM 3.1. OOHDM

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

Leia mais

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

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

Leia mais

Engenharia de Software I

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

Leia mais

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

UNIVERSIDADE PRESBITERIANA MACKENZIE EDUARDO AUGUSTO GALHARDI METODOLOGIA NO DESENVOLVIMENTO DE APLICAÇÕES E/OU SERVIÇOS NA WEB (WEB ENGINEERING)

UNIVERSIDADE PRESBITERIANA MACKENZIE EDUARDO AUGUSTO GALHARDI METODOLOGIA NO DESENVOLVIMENTO DE APLICAÇÕES E/OU SERVIÇOS NA WEB (WEB ENGINEERING) UNIVERSIDADE PRESBITERIANA MACKENZIE EDUARDO AUGUSTO GALHARDI METODOLOGIA NO DESENVOLVIMENTO DE APLICAÇÕES E/OU SERVIÇOS NA WEB (WEB ENGINEERING) São Paulo 2009 EDUARDO AUGUSTO GALHARDI METODOLOGIA NO

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

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

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

Unified Modeling Language UML - Notações

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

Leia mais

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

1 UML (UNIFIED MODELING LANGUAGE)

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

Leia mais

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

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

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

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

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

Leia mais

MODELAGEM DE PROCESSOS

MODELAGEM DE PROCESSOS MODELAGEM DE PROCESSOS a a a PRODUZIDO POR CARLOS PORTELA csp3@cin.ufpe.br AGENDA Definição Objetivos e Vantagens Linguagens de Modelagem BPMN SPEM Ferramentas Considerações Finais Referências 2 DEFINIÇÃO:

Leia mais

Documentação de um Produto de Software

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

Leia mais

Web Engineering. André Tavares da Silva. andre.silva@udesc.br

Web Engineering. André Tavares da Silva. andre.silva@udesc.br Web Engineering André Tavares da Silva andre.silva@udesc.br Novas atividades, novas funções A Internet comercial provocou o surgimento de novas atividades e funções: Webdesigner Webdeveloper Webmaster

Leia mais

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

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

Leia mais

Codificar Sistemas Tecnológicos

Codificar Sistemas Tecnológicos Codificar Sistemas Tecnológicos Especificação dos Requisitos do Software Sistema de gestão para a Empresa Cliente SlimSys Autor: Equipe Codificar Belo Horizonte MG Especificação dos Requisitos do Software

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

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

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

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

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

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

Engenharia de Software

Engenharia de Software Engenharia de Software Requisitos de Software Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Requisito O que é um REQUISITO? Em software: É a CARACTERIZAÇÃO do que o

Leia mais

Algumas propriedades dos objetos:

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

Leia mais

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

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

Engenharia de Software

Engenharia de Software Engenharia de Requisitos Cap. 06 e 07 Sommerville 8 ed. REQUISITOS DE SOFTWARE» Requisitos são descrições de serviços fornecidos pelo sistema e suas restrições operacionais. REQUISITOS DE USUÁRIOS: São

Leia mais

Resumo de TCC Desenvolvimento de um sistema ERP com foco nas tecnologias de software livre / código aberto

Resumo de TCC Desenvolvimento de um sistema ERP com foco nas tecnologias de software livre / código aberto UFSC - Universidade Federal de Santa Catarina CTC Centro Tecnológico INE Departamento de Informática e Estatística INE5631 Projetos I Prof. Renato Cislaghi Resumo de TCC Desenvolvimento de um sistema ERP

Leia mais

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

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

Leia mais

Table 1. Dados do trabalho

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

Leia mais

Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL

Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL Diretoria de Sistema - DS Superintendência de Arquitetura de Sistemas - SAS Gerência de Arquitetura de Informação - GAAS

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

Documento de Requisitos de Rede (DRP)

Documento de Requisitos de Rede (DRP) Documento de Requisitos de Rede (DRP) Versão 1.2 SysTrack - Grupo 1 1 Histórico de revisões do modelo Versão Data Autor Descrição 1.0 30/04/2011 João Ricardo Versão inicial 1.1 1/05/2011 André Ricardo

Leia mais

Arquitetura de Software

Arquitetura de Software Agenda de Software - Fundamentos e Tendências - Objetivos e Contexto de Software (A.S.) A.S. no Processo de Desenvolvimento Passado, Presente e Futuro Prof. Marco Fagundes mfagunde@tre-pa.gov.br 1 2 Objetivos

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Banco de Dados Multimídia

Banco de Dados Multimídia Banco de Dados Multimídia Nomes: Ariane Bazilio Cristiano de Deus Marcos Henrique Sidinei Souza Professor Mauricio Anderson Perecim Conteúdo Banco de Dados Multimídia... 3 Conceitos... 3 Descrição... 3

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

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

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

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

Leia mais

Engenharia da Web. Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com wylliamss@gmail.

Engenharia da Web. Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com wylliamss@gmail. Engenharia da Web Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com wylliamss@gmail.com Agenda Engenharia da Web Atributos de Sistemas e Aplicações Baseados

Leia mais

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

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

Leia mais

UML - 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

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

Parte 2 ENGENHARIA WEB

Parte 2 ENGENHARIA WEB Parte 2 ENGENHARIA WEB 1 Engenharia Web Conjunto de abordagens sistemáticas, disciplinadas e quantificáveis para o desenvolvimento Web Visando a qualidade com uso de conceitos de engenharia Englobando

Leia mais

Engenharia de Software

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

Leia mais

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br Desenvolvimento Web Saymon Yury C. Silva Analista de Sistemas http://www.saymonyury.com.br Vantagens Informação em qualquer hora e lugar; Rápidos resultados; Portabilidade absoluta; Manutenção facilitada

Leia mais

Projeto de Arquitetura

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

Leia mais

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

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

Leia mais

DESAFIO ETAPA 1 Passo 1

DESAFIO ETAPA 1 Passo 1 DESAFIO Um dos maiores avanços percebidos pela área de qualidade de software foi comprovar que a qualidade de um produto final (software) é uma consequência do processo pelo qual esse software foi desenvolvido.

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

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

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

Leia mais

Desenvolvimento Baseado em Componentes e o Processo UML Components

Desenvolvimento Baseado em Componentes e o Processo UML Components Desenvolvimento Baseado em Componentes e o Processo UML Components Cecília Mary Fischer Rubira Patrick Henrique da Silva Brito Instituto de Computação (IC) Universidade Estadual de Campinas (Unicamp) INF064

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

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

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

Leia mais

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

Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos

Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos Marco Aurélio Wehrmeister mawehrmeister@inf.ufrgs.br Roteiro Introdução Orientação a Objetos UML Real-Time UML Estudo de Caso: Automação

Leia mais

Banco de Dados I. Introdução Conceitos

Banco de Dados I. Introdução Conceitos Banco de Dados I Introdução Conceitos Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Conceitos Fundamentais de Banco de Dados; Características

Leia mais

Bem-vindo à apresentação do SAP Business One.

Bem-vindo à apresentação do SAP Business One. Bem-vindo à apresentação do SAP Business One. Neste tópico, responderemos à pergunta: O que é o Business One? Definiremos o SAP Business One e discutiremos as opções e as plataformas disponíveis para executar

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

SISTEMATIZAÇÂO DOS TIPOS DE INFORMAÇÂO DO PLANEJAMENTO ESTRATÉGICO EMPRESARIAL E DE TECNOLOGIA DA INFORMAÇÂO E COMUNICAÇÂO

SISTEMATIZAÇÂO DOS TIPOS DE INFORMAÇÂO DO PLANEJAMENTO ESTRATÉGICO EMPRESARIAL E DE TECNOLOGIA DA INFORMAÇÂO E COMUNICAÇÂO SISTEMATIZAÇÂO DOS TIPOS DE INFORMAÇÂO DO PLANEJAMENTO ESTRATÉGICO EMPRESARIAL E DE TECNOLOGIA DA INFORMAÇÂO E COMUNICAÇÂO Danilo Freitas Silvas Sistemas de informação CEATEC danilofs.ti@gmail.com Resumo:

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

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

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

Leia mais

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

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

Leia mais

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

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

Leia mais

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS Lilian R. M. Paiva, Luciene C. Oliveira, Mariana D. Justino, Mateus S. Silva, Mylene L. Rodrigues Engenharia de Computação - Universidade de Uberaba (UNIUBE)

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

A história de UML e seus diagramas

A história de UML e seus diagramas A história de UML e seus diagramas Thânia Clair de Souza Vargas Departamento de Informática e Estatística Universidade Federal de Santa Catarina (UFSC) Florianópolis, SC Brazil thania@inf.ufsc.br Abstract.

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

Planejamento da disciplina: Modelagem de processos de negócio

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

Leia mais

Sistema de Gerenciamento de Planos de Curso: Uma ferramenta de aperfeiçoamento para o processo de controle de planos de curso nas universidades

Sistema de Gerenciamento de Planos de Curso: Uma ferramenta de aperfeiçoamento para o processo de controle de planos de curso nas universidades Sistema de Gerenciamento de Planos de Curso: Uma ferramenta de aperfeiçoamento para o processo de controle de planos de curso nas universidades André Torres, Ednaldo Onofre, Francisco Celestino, Jafet

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA IMPLEMENTAÇÃO DE SOLUÇÃO PARA AUTOMATIZAR O DESENVOLVIMENTO DE SOFTWARE UTILIZANDO A LINGUAGEM C#.NET

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

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

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

GERAÇÃO AUTOMÁTICA DE APLICAÇÕES WEB. Profª Drª Itana Maria de Souza Gimenes & Bruno Miguel Nogueira de Souza

GERAÇÃO AUTOMÁTICA DE APLICAÇÕES WEB. Profª Drª Itana Maria de Souza Gimenes & Bruno Miguel Nogueira de Souza GERAÇÃO AUTOMÁTICA DE APLICAÇÕES WEB Profª Drª Itana Maria de Souza Gimenes & Bruno Miguel Nogueira de Souza Agenda Primeira Aula 22/11/2008 Introdução a aplicações Web Características de Aplicações Web

Leia mais

PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO Fabiana Pacheco Lopes 1 1 Universidade Presidente Antônio Carlos (UNIPAC) fabipl_21@yahoo.com.br Resumo.Este

Leia mais

Diagrama de Classes. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Diagrama de Classes. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Diagrama de Classes Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 O que é? Diagrama mais utilizado da UML Representa os tipos (classes) de objetos de um

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

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

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

Leia mais

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

Arquitetura de Software: Uma Central para Gestão da execução de serviços

Arquitetura de Software: Uma Central para Gestão da execução de serviços Arquitetura de Software: Uma Central para Gestão da execução de serviços ADILSON FERREIRA DA SILVA Centro Paula Souza São Paulo Brasil afs.software@gmail.com Prof.a. Dr.a. MARILIA MACORIN DE AZEVEDO Centro

Leia mais

Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos

Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos Engenharia de Software Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos Thiago P. da Silva thiagosilva.inf@gmail.com Agenda Engenharia de Requisitos Níveis de Descrição dos Requisitos Tipos

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

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO PROVA DE NÍVEL SUPERIOR CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO 1. O ambiente Delphi suporta o desenvolvimento de aplicações orientadas a objetos por meio da linguagem Object

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

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

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

Padronização de Interfaces Web Através dos Recursos da UML

Padronização de Interfaces Web Através dos Recursos da UML Padronização de Interfaces Web Através dos Recursos da UML Isolete Teresinha Dzendzik ¹ LAC/INPE iso@lac.com.br José Carlos Becceneri ² LAC/INPE becce@lac.inpe.br Mauricio Gonçalves Vieira CCS/INPE mauricio@ccs.inpe.br

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 27 http://www.ic.uff.br/~bianca/engsoft2/ Aula 27-26/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software

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

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO EDUCAÇÃO A DISTÂNCIA (EAD) SISTEMAS PARA INTERNET INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática / Campus Global

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática / Campus Global Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática / Campus Global Sistema de Aproveitamento de Disciplinas da Faculdade de Informática da PUCRS: uma sistemática de gerência

Leia mais

Palavras-Chaves: engenharia de requisitos, modelagem, UML.

Palavras-Chaves: engenharia de requisitos, modelagem, UML. APLICAÇÃO DA ENGENHARIA DE REQUISITOS PARA COMPREENSÃO DE DOMÍNIO DO PROBLEMA PARA SISTEMA DE CONTROLE COMERCIAL LEONARDO DE PAULA SANCHES Discente da AEMS Faculdades Integradas de Três Lagoas RENAN HENRIQUE

Leia mais