Desenvolvimento de Aplicações Hipermídia na Web

Documentos relacionados
ICMC USP S C C D e s e n v o l v i m e n t o d e A p l i c a ç õ e s W E B. Renata Pontin de Mattos Fortes. ICMC-USP S.

2 Metodologias para Projetos de Aplicações Hipermidia

INF1013 MODELAGEM DE SOFTWARE

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Web Presentation Patterns - Controllers

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

5 Arquitetura de implementação

UML (Unified Modelling Language)

Introdução ao Desenvolvimento de

Engenharia de Software

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Especificação de Sistemas de Software e a UML

Rational Unified Process (RUP)

MÓDULO. Análise Orientada a Objetos Engenharia Web

Desenvolvimento de um sistema de leilão utilizando JavaServer Pages

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Requisitos de Sistemas

Engenharia de Software

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

INF1404 MODELAGEM DE SISTEMAS

Paradigmas de Software

Para descrever os metadados das aplicações, desenvolvemos um método chamado SHDM (Semantic Hypermedia Design Method) [Lima & Schwabe 2002a, 2002b,

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB

6 Conclusão. 6.1 Trabalhos relacionados

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

MODELAGEM E IMPLEMENTAÇÃO DE UMA APLICAÇÃO HIPERMÍDIA PARA REBANHOS, UTILIZANDO OOHDM

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Trata-se de uma variação do diagrama de estado com um propósito um pouco diferente do diagrama de estado:

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

MODELAGEM E DESENVOLVIMENTO DE UMA FERRAMENTA HIPERMÍDIA DE ENSINO VOLTADA AO SETOR AGROPECUÁRIO, USANDO OOHDM

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Marcelo Henrique dos Santos

Diagrama de Componentes e Implantação

PROVA DE CONHECIMENTOS ESPECÍFICOS

26 a 29 de novembro de 2013 Campus de Palmas

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

Aplicações Web com Servlets e JSP

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

SOFTWARE EDUCACIONAL PARA ELABORAÇÃO DE PROVAS E EXERCÍCIOS

REVISÃO DE CONCEITOS DE ORIENTAÇÃO A OBJETOS

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Análise de Sistemas. Aula 5

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

Sabrina Silva de Moura

Engenharia de Software. Projeto de Arquitetura

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

Curso online de. Formação em Front-End. Plano de Estudo

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Introdução a UML (Unified Modeling Language)

Curso online de Aplicações. Híbridas. Plano de Estudo

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Especificação de Sistemas e SysML

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

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Curso online de Fundamentos em Android. Plano de Estudo

Proposta de Trabalho de Conclusão de Curso

Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos

Capítulo 7. A camada de aplicação

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

UML e seus diagramas

Introdução à Engenharia de Software

Dreamweaver CS6 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Programa Analítico de Disciplina INF323 Engenharia de Software II

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

Curso Online de E-commerce. Plano de Estudo

Engenharia de Software II

Arquiteturas. capítulo

AVALIANDO METODOLOGIAS DE DESENVOLVIMENTO DE APLICAÇÕES WEB.

Analista de Sistemas S. J. Rio Preto

Prof. Dr. Thiago Jabur Bittar

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

RUP/PSDS. Introdução e Comparação

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

Apresentação da Disciplina de Engenharia de Software I

Projeto Disciplinar de Infra-Estrutura de Software WEBZINE MANAGER REVISTA ELETRÔNICA INTERAÇÃO NEWS

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

Transcrição:

SCC0265 Sistemas Interativos Web Desenvolvimento de Aplicações Hipermídia na Web Renata Pontin M. Fortes (renata@icmc.usp.br) PAE: Willian Watanabe (watinha@gmail.com) Instituto de Ciências Matemáticas e de Computação - ICMC

Sumário A World Wide Web Engenharia de Web Papel da Modelagem, Processo e Arquitetura de Aplicações 2

A World Wide Web Site Web x Aplicação Web Arquitetura de site Web Servidor Web, conexão de rede e browsers (clientes) Aplicações Web Desenvolvidas a partir de um sistema Web para adicionar regras de negócio...uma aplicação Web é um sistema Web que permite ao usuário executar lógica de negócio usando o browser... As entradas de dados e a navegação do usuário afetam o conteúdo do site Arquitetura: além da arquitetura de site Web, há também um servidor de aplicações 3

Engenharia de Web (Web Engineering) DINAMISMO Tecnologias de ativação (executam no servidor) CGI e Java Servlet ASP, PHP, JSP, etc Clientes dinâmicos (executam no cliente) JavaScript, Java Applets, ActiveX, Flesh 4

Engenharia de Web (Web Engineering) Técnicas para desenvolvimento Web Engenharia de Web Web Engineering Processo usado para criar aplicações Web de alta qualidade Utiliza conceitos e princípios da ES tradicional Ênfase em atividades técnicas e gerenciais (navegação, interface...) Por Porque queweb WebEngineering Engineeringééimportante? importante? Necessidade Necessidadede deconstruir construirsistemas sistemas Confiáveis, Confiáveis, Usáveis Usáveisee Adaptáveis. Adaptáveis. 5

Engenharia de Web (Web Engineering) Quais são os passos? (1) Formulação do problema; (2) Planejamento e análise de requisitos; (3) Projeto arquitetural, navegacional e da interface; (4) Implementação; (5) Testes. Mecanismos para controle de configuração e garantia de qualidade são MUITO necessários. 6

Engenharia de Web (Web Engineering) Como saber se as etapas foram cumpridas corretamente? Aplicar práticas de SQA convencionais: revisão técnica formal, avaliação de usabilidade, funcionalidade, etc. Para evitar websites emaranhados e obter sucesso no desenvolvimento de aplicações web complexas uso de abordagens disciplinadas de Web Engineering e novos métodos e ferramentas de desenvolvimento, disponibilização e avaliação de aplicações 7

Engenharia de Web (Web Engineering) produto Propriedades que diferenciam aplicações web das aplicações de software tradicionais: Uso intensivo da rede Direcionadas a conteúdo aplicações estão (residem) na rede (internet, intranet) e devem servir a diversas comunidades de clientes; uso da hipermídia para apresentar texto, gráfico, áudio e vídeo aos usuários; Evolução contínua aplicações web evoluem muito rapidamente. 8

Engenharia de Web (Web Engineering) Características que direcionam o processo de desenvolvimento: Urgência Uso de métodos adaptados ao desenvolvimento rápido; Segurança Prazo curto para desenvolvimento (poucos dias ou semanas). Medidas severas de segurança têm que ser implementadas; Cuidados estéticos Diretamente relacionados ao sucesso da aplicação web. 9

Engenharia de Web (Web Engineering) Desenvolvimento baseado em componentes: CORBA, COM/DCOM e JavaBeans Segurança: componentes que comunicam se uns com os outros e com outros serviços medidas de segurança como firewalls e criptografia Padrões Internet: uso intensivo de HTML na última década; crescimento (tamanho e complexidade) das aplicações web novo padrão : XML desenvolvedores definem suas próprias tags. 10

Engenharia de Web (Web Engineering) Manutenção de Aplicações Web Similar à ES, onde 80% dos custos são voltados à manutenção. Web Engineering é o processo de projetar para mudar. Flexibilidade de Aplicações Web fácil de estender e manter. Capacidade de integrar novos requisitos funcionais sem grandes modificações no sistema Layout gráfico e a aparência 11

Modelagem, Processo e Arquitetura Entendimento O que se deseja construir, o que está sendo construido e o que foi construído Descrição da realidade (níveis de abstração) Mais abstratos: modelos mais longe da realidade e mais simples Menos abstratos: modelos mais próximos da realidade e mais complexos Modelos devem expor o que é importante para o entendimento do sistema Comunicação Divisão do problema em partes menores Facilidade para explicar o sistema para outras pessoas (usuários, arquitetos, desenvolvedores, etc) 12

Modelagem, Processo e Arquitetura Vantagem do modelo 13

Modelagem, Processo e Arquitetura Ferramentas CASE (Computer Aided Software Engineering) Geração de código a partir de modelos (model driven) e geração de modelos a partir de código fonte (engenharia reversa) Auxiliam no processo de desenvolvimento OBS.: o papel da modelagem não é produzir código através da automação ou produzir documentos por meio da engenharia reversa (produtos secundários das ferramentas CASE) Valor real da modelagem: capacidade de ver uma simplificação do sistema através de um ponto de vista específico por onde o sistema se torna mais fácil de entender. Modelos muito complexos modelagem perde o sentido 14

Modelagem, Processo e Arquitetura processo de desenvolvimento Organizar o desenvolvimento do software: Acelerar o desenvolvimento e melhorar a qualidade Produzir artefatos: mais importante: modelos Depende da empresa, aplicação, equipe, prioridades do projeto, etc... RUP Rational Unified Process 15

Modelagem, Processo e Arquitetura O papel da Arquitetura Influência no processo de desenvolvimento e no produto final Define regras para a construção do software como o software deve ser pensado? Arquitetura da Web cliente/servidor diferenciado Servidor não controla o cliente / Interação iniciada pelo cliente Baseado no paradigma estímulo / resposta (transação) Se esse comportamento não é o esperado, pode se acrescentar outros recursos à arquitetura ( mais complexidade ) Mais uso, mais experiência, evolução Padrões arquiteturais: Façades, Page Composition, Template Pages, etc Arquiteturas relativamente complexas 16

Arquiteturas da Web A Era do Hipertexto Transferência de documentos HTML multimídia (estáticos) Browser : apresentador (interpretador) de páginas HTML PC Browser + HTML Servidor Web (Web Server) HTTP Internet HTTP MAC Browser + HTML Cliente HTTP Documentos HTML Servidor 17

Arquiteturas da Web A Era do Hipertexto Comunicação via Protocolo HTTP 18

Arquiteturas da Web A Era Interativa Conceito: Aplicação Web No cliente: funcionalidades de interação no navegador Formulários para construir interfaces de interação com a aplicação (botões, caixas de texto, caixas de seleção) Scripts (JavaScript) para controlar eventos sobre os elementos do formulário Programas cliente Applets Java processamento de dados no cliente No servidor: documentos HTML estáticos + páginas dinâmicas PHP, ASP, CGI, JSP, Servlet 19

Arquiteturas da Web Interação Cliente/Servidor (criação de aplicações web) Módulos Acoplados ao servidor Arquitetura 3 Tier (3 camadas) interativa Servidor Web (Web Server) Clientes Browser + HTML + Forms e Scripts HTTP Internet PHP HTTP CGI ASP Documentos HTML Cliente Servidor Sistema Gerenciador de Base de Dados Base de Dados 20

HTML da Web interativa <TITLE>Questionario</TITLE> <H1>Exemplo de Questionario</H1> <P>Responda: <FORM METHOD=post ACTION="http://www.icmc.usp.br/exemplo"> <P>Seu nome: <input name="name" size="48"> <P><input name="masc" type=radio> Homem <P><input name="fem" type=radio> Mulher Ordem na familia: <input name="familia" type=int> <P>Cidades <UL PLAIN> <LI><input <LI><input <LI>Others </UL> em que possui residencia: name="cidade" type=checkbox value="spaulo"> S.Paulo name="cidade" type=checkbox value="scarlos"> S.Carlos <textarea name="outro" cols=48 rows=4></textarea> <P>Apelido: <INPUT NAME="apelido" size ="42"> <P>Obrigada por suas respostas! <P><INPUT TYPE=SUBMIT> <INPUT TYPE=RESET> </FORM> 21

Arquiteturas da Web Arquitetura N Tier (n camadas) interativa Clientes Browser + HTML + Forms, Scripts e Applets HTTP Servidor Web (Web Server) PHP CGI Servlet/JSP Container ASP HTTP Base de Dados JSP Internet Documentos HTML Cliente Sistema Gerenciador de Base de Dados Servidor Servlet Servlet e JSP Engine 22

Arquiteturas da Web Separação apresentação, lógica e dados da aplicação Browser Firewall Aplicação Espec. da Apresentação Serviços Lógica da Aplicação Base de Dados Documentos XML Outros Dados 23

Padrão de Arquitetura de aplicação Web MVC = Model View Controller 24

Abordagens para Modelagem Web Facilitar o entendimento, especificação, documentação, visualização, comunicação e construção de aplicações Web Problema: gap em termos de objetivos Modelagem de Informação (sites Web) Modelagem funcional (aplicações Web) OOHDM (Object Oriented Hypermedia Design Method) método de autoria para sistemas hipermídia Conjunto de modelos (com respectivas notações) e um método de projeto Ênfase para navegação e interface com usuário WebML (Web Modeling Language) Conjunto de modelos para modelagem de web sites Pouca preocupação com aspectos funcionais (boa visão estrutural, de composição e navegação, de apresentação) 25

Abordagens para Modelagem Web W2000 Extensão dos modelos UML para modelagem Web Ênfase na modelagem Hipermídia (informação/navegação) e preocupação com modelo funcional Mapeamento do modelo funcional para sistema ainda confuso UWE (UML based Web Engineering) Extensão da UML para modelagem Web + ferramenta de suporte (ArgoUWE) com geração semi automática de código e modelo. Ênfase na modelagem conceitual, navegacional e de apresentação. WAE (Web Application Extension) (Conallen) Extensão dos diagramas da UML para aplicações Web Ênfase na modelagem funcional e no mapeamento dos modelos para tecnologias de desenvolviment Pouca (mas, presente) preocupação com modelagem de informação (informação/navegação) 26

Modelagem com UML Diagrama de Estado representando Interface do Usuário Pronto Pronto Abrir janela Campo alterado Botão consultar Botão sair 27

Modelagem com UML Diagrama de Atividades Comportamento de uma trilha de execução em particular Variante do diagrama de estados Descreve uma seqüência de atividades com suporte ao comportamento condicional e paralelo Comportamento condicional Desvios (branch) Única entrada e várias saídas (mutuamente exclusivos) Intercalações (merges) Várias entradas e única saída (fim do desvio) Comportamento paralelo Separação (fork) Única transição de entrada e várias transições de saída (a ordem de execução não é relevante) Junção (join) Fechamento da separação (próxima atividade só é executada quando 28 todas as atividades separadas terminarem

Modelagem com UML Exemplo: 29

Modelagem com UML Exemplo (2) 30

Bibliografia Conallen, JIM: Desenvolvendo Aplicações Web com UML, 2a ed, Ed. Campus, 2003. Fowler, Martin; Scott, Kendall, UML Essencial, 2a ed, Ed. Bookman, 2000. Page Jones, Meilir, Fundamentos do Desenho Orientado a Objeto com UML, Ed. Person Education, 2001. Pressman, Roger S: Engenharia de Software, 5a ed., Ed. Makron Books, 2002. Hickson, Rosangela: Projeto de Sistemas Web Orientados a Interface, Ed. Campus, 2003. Agradecimentos: Elaine Quintino Silva, por boa parte dos slides 31