quinta-feira, 18 de dezembro de 2008
Ubiquity: Extensão da Mozilla para o Firefox
Trata-se de um addon ainda em fase experimental, mas que já mostra ser inovador ao extremo. Resumindo um pouco a coisa toda, a Ubiquity permite que o usuário “converse”, via texto, com o navegador, através da digitação de comandos em uma janela própria para isto, a qual pode ser acionada mediante uma combinação de teclas que pode ser customizada. “CTRL+espaço”, “CTRL+SHIFT”, etc: você escolhe.
No tal “prompt de comando”, o usuário então executa a digitação dos comandos, das, digamos assim, “ordens”, acrescentando após os mesmos os devidos “parâmetros”. Já existe uma lista bem grande de comandos utilizáveis, e a grande vantagem proporcionada pela extensão é a centralização de tarefas que ela permite.
Na mesma janela/aba de seu Firefox você pode, por exemplo, iniciar uma consulta ao Google, adicionar um mapa do Google Maps ao e-mail que está redigindo, adicionar ou consultar determinada entrada em sua conta junto ao Google Calendar, solicitar a visualização do código fonte de um website, iniciar a composição e enviar um e-mail, efetuar pesquisas por imagens junto ao Flickr, iniciar traduções de palavras e/ou frases de um idioma para outro, efetuar pesquisas junto à Wikipedia, consultar a previsão do tempo, etc. Ufa, a lista é enorme, e segundo o Mozilla Labs, novos comandos podem ser adicionados, e já existe até uma lista com sugestões de usuários.
Uma das coisas mais legais na extensão, e que facilita bastante a vida do usuário, é o fato de que o próprio “prompt de comando” vai sugerindo comandos conforme o usuário inicia a digitação. Além disso, durante toda a utilização o prompt vai “explicando” a sintaxe de utilização de cada comando. Ou seja, é muito simples utilizar a extensão.
Instalação
Para instalar a Ubiquity em seu Firefox, basta utilizar este link. Mas lembre-se, este ainda é um protótipo, e problemas podem ocorrer. No meu caso, por exemplo, detectei uma incompatibilidade com a extensão “Google Reader Notifier“, mas a substituição da mesma pela “Google Reader Watcher” resolveu o meu problema. Nada muito complicado, não?
Após a instalação, você pode acessar as configurações do addon simplesmente digitando “about:ubiquity” na barra de endereços do Firefox. Assim, você obterá acesso a uma página com quatro botões diferentes (”Home”, “Your commands”, “Tutorial” e “Find new commands”).
Na seção “Home”, inclusive, você pode definir a combinação de teclas para acesso ao prompt de comando da Ubiquity. Em “Your commands”, você visualiza a lista dos comandos atualmente disponíveis. Mas, você pode também utilizar, no próprio prompt de comando, o comando “command-list”, que provoca a exibição da mesma lista. Ainda na seção “home” você pode visualizar um vídeo muito interessante a respeito da extensão.
Um dos comandos que, talvez, você também venha a apreciar bastante é o “command-editor”, o qual permite que sejam criados comandos personalizados. Ou seja, a extensão realmente “dá poder” ao usuário. Ao utilizar o comando “command-editor”, você pode visualizar o link de acesso ao manual para criação de comandos.
Finalizando
Em minha opinião, esta é uma extensão com um futuro muito promissor, pois permite que o usuário saia de sua cômoda posição, muitas vezes limitada, e obtenha uma interação ao mesmo tempo simples e poderosa com o navegador, acessando e utilizando a partir do mesmo serviços e funcionalidades que, de outra maneira, demandariam uma quantidade bem maior de tempo e procedimentos, além dos necessários acessos a diferentes websites.
Aplicações Práticas da UbiComp
Tecnologia de Prédios Inteligentes
Casas onde a fechadura da porta principal é acionada pela íris do dono, as cortinas e as luzes são acionadas pela voz e o aquecedor ou ar condicionado é ativado pelo celular não são mais ficção-científica, vistos apenas em filmes e livros.
Esta tecnologia já existe e é vendida inclusive no Brasil, para quem puder pagar, é claro. Chamada de Prédios Inteligente, ela não serviria apenas para grandes construções, mas também para pequenas residências. Nesse caso ela também pode ser denominada de Automação Residencial.
Os primeiros esforços para conceber um prédio inteligente foram feitos pela Microsoft em 1997. O projeto chamado de Microsoft Easyliving foi desenvolvido pelo grupo de pesquisa em computação ubíqua desta empresa, e visava desenvolver e aplicar tecnologias para a construção de Ambientes Inteligentes.
Algumas funcionalidades do Easyliving foram:
- Sensibilidade à Localização – Através de câmeras ligadas a um PC que calculava a imagem em profundidade, o sistema detectava a presença de um determinado usuário e monitorava sua movimentação pelo ambiente, sem o auxilio de sensores adicionais. Se um ambiente estivesse vazio as luzes, aquecimento e outros equipamentos eletrônicos poderiam ser desligados automaticamente.
- Computação Desagregada – No Easyliving, cada pessoa que entrava no laboratório recebia uma identidade provisória (crachá) podendo acessar um computador ou dispositivo com uma senha ou scanner biométrico. Se esta pessoa mudasse de sala e acessasse outro dispositivo, sua tela (desktop) era automaticamente transferida do dispositivo anterior para o display do computador em uso.
Este sistema ainda é composto em sua grande maioria de sensores concentrados a um computador central de controle, descaracterizando a conectividade de seus componentes, mas suas interfaces se tornam invisíveis não sendo necessário ao usuário conhecimentos em informática para acionar seus comandos.
Como exemplo real desta tecnologia aplicada, podemos observar a empresa Avantime, de São Paulo, que executa projetos de automação. Em seu Website é possível simular o uso destas facilidades: http://www.avantime.com.br/automacao.asp
Projetos de UbiComp da XEROX
Desde 1988 o XEROX PARC (Centro de Pesquisa de Tecnologia da Xerox Corp. em Palo Alto-CA-EUA) vem pesquisando e desenvolvendo soluções de UbiComp, e a partir de 1990 alguns protótipos foram desenvolvidos e comercializados. Abaixo seguem alguns exemplos de soluções desenvolvidas neste centro de pesquisa, ilustrados pela figura abaixo:
Protótipos desenvolvidos pelo Xerox PARC
- Liveboard – A idéia desta solução é ser um quadro-negro eletrônico, sensível ao toque e armazenando informações inseridas através de uma caneta. Hoje esse produto já é realidade em escolas de ponta.
- Pad – Já ultrapassado, este protótipo foi nada mais que um notebook com microfone e caneta eletrônica acoplada, com comunicação por rádio a 240kbps – um avanço para a época. Era um dispositivo fixo, sem mobilidade.
- Tab – Pequeno dispositivo portátil com tela sensível ao toque para a entrada de informações. Era ligado automaticamente quando o usuário interagia. Através de conexões infra-vermelho se comunicava com outros dispositivos. Pode-se dizer que este protótipo foi o avô da agenda eletrônica.
O Instituto de Tecnologia da Geórgia, através do Future Computing Enviroments – grupo de pesquisa de novos ambientes computacionais – também desenvolveu alguns projetos:
- The Aware Home Research Initiative– Semelhante ao MS Easyliving, visava construir um modelo computacional para uma casa interativa e consciente de seus moradores, sua localização, e ciência das atividades dos usuários. Por exemplo: identificar quando uma pessoa estiver lendo jornal, vendo TV, etc.
- Eclass – Pesquisava o impacto da Computação Ubíqua na educação, desenvolvendo técnicas e softwares para o uso de Liveboards na sala de aula.
quarta-feira, 10 de dezembro de 2008
terça-feira, 2 de dezembro de 2008
SysML
segunda-feira, 1 de dezembro de 2008
Aqui vai o abstract:
"Este capítulo tem como foco o projeto de uma metodologia para sistemas de informação ubíquos (SIU). Busca-se contribuir para a eficiência e eficácia do desenvolvimento de software/serviços / aplicações suportadas por sistemas de informação ubíquos.
Sistemas de Computação Ubíquos são compostos por sistemas de computação embarcados ou dispositivos móveis que oferecem formas inovadoras de apoio a modelos de negócios já existentes e novos. Esses sistemas são caracterizados por terem um número potencialmente grande de heterogeneidade dos dispositivos de computação que colhe, processa e transmite informação.
A concepção e a evolução do software para SIU exigem abordagens adequadas a fim de considerar as exigências e características desses sistemas.
O Desenvolvimento Orientado a Modelos (MDD) tem como foco o modelo e a independencia de plataforma. Oferece benefícios em potencial que podem ser utilizados para a concepção e evolução dos sistemas de informação ubíquos.
Neste capítulo, levantamos questões e propomos estratégias relacionadas com o desenvolvimento de software SIU usando a perspectiva do MDD."
domingo, 30 de novembro de 2008
Mais sobre o MPS.BR
Estava pesquisando um pouco mais sobre o MPS.BR e resolvi procurar algum material que tivesse um comparativo entre o MPS.BR e o CMMI, uma vez que o CMMI é modelo de orientação para o desenvolvimento de processos de software que a maioria dos estudantes já conhece e o MPS.BR talvez seja novidade. Segue um material interessante que encontrei.
O MPS.BR tem como foco principal, não exclusivo, atender às micro, pequenas e médias empresas de software brasileiras, que necessitam obter melhorias significativas nos seus processos de software.
Busca-se que o MPS.BR seja adequado ao perfil de empresas com diferentes tamanhos e características, públicas e privadas, seja compatível com os padrões de qualidade aceitos internacionalmente e que tenha como pressuposto o aproveitamento de toda a competência existente nos padrões e modelos de melhoria de processo já disponíveis.
Dessa forma, o MPS.BR tem como base os requisitos de processos definidos nos modelos de melhoria de processo de software e busca atender à necessidade de implantar os princípios de Engenharia de Software de forma adequada ao contexto das empresas brasileiras, estando em consonância com as principais abordagens internacionais (CMMI) para definição, avaliação e melhoria de processos de software.
O MPS.BR define sete níveis de maturidade de processos para as empresas de software (o que é um diferencial em relação aos outros padrões de processo):
A - Em Otimização
B - Gerenciado Quantitativamente
C - Definido
D - Largamente Definido
E - Parcialmente Definido
F - Gerenciado
G - Parcialmente Gerenciado
Cada nível de maturidade possui suas áreas de processo, onde são analisados os processos fundamentais (aquisição, gerência de requisitos, desenvolvimento de requisitos, solução técnica, integração do produto, instalação do produto, liberação do produto), processos organizacionais (gerência de projeto, adaptação do processo para gerência de projeto, análise de decisão e resolução, gerência de riscos, avaliação e melhoria do processo organizacional, definição do processo organizacional, desempenho do processo organizacional, gerência quantitativa do projeto, análise e resolução de causas, inovação e implantação na organização) e os processos de apoio (garantia de qualidade, gerência de configuração, validação, medição, verificação, treinamento).
Além disso, cada nível de maturidade possui seus atributos de processo (AP) e esses são cumulativos. Com isso, quando uma empresa passa de um nível para outro, os processos passam a ser executados no nível de capacidade correspondente ao nível mais alto.
- AP 1.1 - O processo é executado;
- AP 2.1 - O processo é gerenciado;
- AP 2.2 - Os produtos de trabalho do processo são gerenciados;
- AP 3.1 - O processo é definido;
- AP 3.2 - O processo está implementado;
- AP 4.1 - O processo é medido;
- AP 4.2 - O processo é controlado;
- AP 5.1 - O processo é objeto de inovações;
- AP 5.2 - O processo é otimizado continuamente.
A seguir, temos uma figura que mostra um comparativo entre o MPS.BR com o CMMI:
em comparação com os níveis do MPS.BR
[FONTE: Pentagrama Soluções em Tecnologia da Informação, Wikipedia]
MPS.BR
Até agora, no nosso blog, só falamos sobre metodologias para computação ubíqua. Mas, a partir deste post, daremos início a uma nova discussão, o MPS.BR, para então podermos interligar os dois temas.
O MPS.BR é um programa para Melhoria de Processo do Software Brasileiro coordenado pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX), contando com apoio do Ministério da Ciência e Tecnologia (MCT), Financiadora de Estudos e Projetos (FINEP) e Banco Interamericano de Desenvolvimento (BID).
A coordenação do Programa MPS.BR conta com duas estruturas de apoio para o desenvolvimento de suas atividades, o Fórum de Credenciamento e Controle (FCC) e a Equipe Técnica do Modelo (ETM). Através destas estruturas, o MPS.BR obtém a participação de representantes de Universidades, Instituições Governamentais, Centros de Pesquisa e de organizações privadas, os quais contribuem com suas visões complementares que agregam qualidade ao empreendimento.
O FCC tem como principais objetivos assegurar que as Instituições Implementadoras (II) e Instituições Avaliadoras (IA) sejam submetidas a um processo adequado de credenciamento e que suas atuações não se afastem dos limites éticos e de qualidade esperados, além de avaliar e atuar sobre o controle dos resultados obtidos pelo MPS.BR.
Por outro lado, cabe à ETM atuar sobre os aspectos técnicos relacionados ao Modelo de Referência (MR-MPS) e Método de Avaliação (MA-MPS), tais como a concepção e evolução do modelo, elaboração e atualização dos Guias do MPS.BR, preparação de material e definição da forma treinamento e de aplicação de provas, publicação de Relatórios Técnicos e interação com a comunidade visando à identificação e aplicação de melhores práticas.
Para mais informações acesse o link www.softex.br
quarta-feira, 26 de novembro de 2008
Desenvolvimento de Software em Sistemas de Informação Ubíquos: Orientação aos Modelos
O trabalho aborda os benefícios do desenvolvimento orientado aos modelos para Sistemas de Computação Ubíqua. Introduz o conceito de sistemas de informação ubíquos e as questões que surgem no desenvolvimento de software para sistemas ubíquos. A arquitetura orientada a modelos (MDA - Model Driven Architecture) é descrita resumidamente e os seus benefícios para o projeto de software são identificados.
E por fim, algumas abordagens futuras para o uso de metodologias MDA no desenvolvimento de software de sistemas ubíquos são destacados, apresentando alguns problemas específicos encontrados atualmente para esse tipo de metodologia, que ainda não são possíveis de serem resolvidos.
Aqui o link para o artigo completo, vale a pena dar uma conferida.
segunda-feira, 3 de novembro de 2008
Ubiquitous Application Development using a Mobile Agent-based System
Nesse artigo, os autores sugerem a utilização de dois agentes para o desenvolvimento de aplicações para ambientes ubíquos, o Master Agent e o Shadow Agent. Através deles é feito o emparelhamento que torna possível a sintonização no desenvolvimento da aplicação sem desorganizar a lógica da mesma.
O objetivo fundamental desta metodologia é a separação das preocupações que estão amarradas em um código de agente e manter as funções necessárias satisfeitas. Assim, cada agente desempenha uma tarefa específica:
O Master Agent (MA) tem uma aplicação lógica preenchida pela comunicação tanto com o usuário quanto com os serviços. Os estados de transição do MA refletem o fluxo da aplicação lógica.
O Shadow Agent (SA) desempenha tarefas de suporte no momento certo para a execução dos estados do MA. As tarefas do SA dependem do ambiente ou situação onde o MA é utilizado.
sábado, 25 de outubro de 2008
Knowledge Management in the Ubiquitous Software Development
Encontrei um artigo muito interessante que trata de algumas metodologias para Computação Ubíqua, tal artigo, cujo título é Knowledge Management in the Ubiquitous Software Development, foi escrito por José Miguel Rubio em 2008 e foi publicado no orkshop on Knowledge Discovery and Data Mining. Farei agora uma tradução do texto que descreve as metodologias.
Centered Design in User
Propõe, como o próprio nome diz, um design centrado no usuário, que é aquele cuja área IHC, Interação Homem Computador, estabeleceu para o reconhecimento da importância da intervenção do usuário nas atividades de avaliação. Essa metodologia lida com uma aproximação centrada nas pessoas, no trabalho e no ambiente delas. O esquema para ser seguido através do processo de desenvolvimento, mostrado na figura logo abaixo, e é denominado de Modelo de Processo Iterativo.Figura 1 - Modelo de Processo Iterativo
The method of imagine design
O modelo definido acima foge das práticas existentes hoje em dia em se tratando de sistemas interativos. Para produzir um bom design sob essas características, o designer requer uma considerável criatividade e perspicácia. Para adaptar o objeto a essas circunstâncias, existem as técnicas de Image Design .
Essas técnicas são centradas na aparência visual da interface e seu comportamento. Elas servem para diferenciar representações visuais do modelo conceitual do sistema que, assim como aqueles esboços intuitivos, tentam explorar o espaço do design. Essas primeiras representações de design também vão ser objetos de revisão e análise para serem progressivamente esboçadas através de todo o processo, diferentes aspectos vindos da funcionalidade do sistema, seguindo a estratégia do refinamento progressivo, como pode ser visto na figura 1.
Nesse grupo de técnicas, duas delas parecem se destacar para garantir a qualidade do design de aplicações ubíquas: cenários do futuro e prototipificação
Knowledge management from an agile sight
Desde alguns anos, houve um aumento no interesse de metodologias ágeis caracterizadas alternativamente como antídotos para a burocracia dos tradicionais métodos utilizados no panorama do desenvolvimento de software. A respeito do tópico que dá origem a esse artigo, as principais razões para incluir os métodos ágeis, não são por causa da sua robustez, mas sim devido à sua natureza adaptativa para orientar as pessoas.
No ambiente de desenvolvimento de softwares ubíquos, é proposto que se considere a família Alistair Cockburn Crystal. É uma família, pois eles acreditam que os diferentes tipos de projetos requerem diferentes tipos de metodologias. Eles vêm essa variação através de dois ângulos: o número de pessoas em um projeto e as consequências dos erros como a criticidade de um sistema. Cada metodologia encaixa em diferentes partes da matriz, então um projeto de quarenta pessoas de pouca relevância para cada uma delas tem uma metodologia diferente de um projeto vital de apenas seis pessoas.
A metodologia tem uma forte orientação humana, mas essa centralização nas pessoas é feita de uma forma diferente. Cockburn considera que as pessoas acham difícil seguir um processo disciplinado, então em vez de seguir uma elevada disciplina pode se explorar uma metodologia mais flexível que ainda assim pode ser bem sucedida, mudando de forma consciente a produtividade por uma facilidade de execução. Eles consideram que apesar do Crystal ser menos produtivo do que outras metodologias mais pessoas estarão capazes de utilizá-la.
Também dá uma grande importância nas revisões no final de cada iteração, estimulando o processo para ser o melhor. Essa assertativa é que o desenvolvimento iterativo permite encontrar os problemas mais cedo e assim corrigi-los. Isso enfatiza a supervisão do processo através do refinamento da proposta de desenvolvimento.
Com todas as coonsiderações anteriores e, principalmente, o fator de criticidade que a família Crystal considera explicitamente e que está presente na maioria das aplicações da computação ubíqua, faz-se viável escolher por um desenvolvimento ágil para este tipo de projeto.
Para ler o artigo na íntegra, acesse www.portal.acm.org
Até o próximo post ;)
sexta-feira, 24 de outubro de 2008
Ambiente de Computação Ubíqua para o Ensino de Medicina
Talvez fuja um pouquinho do nosso escopo, mas achei válido postar aqui. O artigo é voltado para o ensino em uma área afastada da computação e que, como podemos ver, já está de olho nos benefícios que as novas tecnologias podem trazer ao processo de ensino-aprendizagem.
domingo, 19 de outubro de 2008
Computer for the 21st Century
quinta-feira, 16 de outubro de 2008
O que é computação Ubíqua?
Estamos aqui para falar sobre Metodologias para Computação Ubíqua, contudo, acho interessante definir antes o que de fato é Computação Ubíqua.
Através da evolução dos Sistemas de Informação Distribuídos (SID), percebido inicialmente com o desenvolvimento da Internet, e a ampliação das opções de conexões, verifica-se que a Computação Ubíqua já é realidade comprovado pelos benefícios que a Computação Móvel trouxe aos usuários. Celulares com acesso à Web, Laptops, Redes WIFI, Lousas Digitais, iPods e iPhone, permitem ao mais leigo, sem perceber, a utilização a qualquer momento e em qualquer lugar de um sistema de computação, através de um software e/ou uma interface.
sexta-feira, 3 de outubro de 2008
Sejam bem vindos ao blog TEES-Metodologias para Computação Ubíqua. Esse blog foi criado para a disciplina Tópicos Especiais em Engenharia de Software (2008-2) e será administrado por Adolfo, Daniel, Kharylim e Letícia, estudantes de Ciência da Computação da Universidade Federal de Sergipe.