quinta-feira, 18 de dezembro de 2008

Manuscrito

Artigo Tees
View SlideShare document or Upload your own.

Ubiquity: Extensão da Mozilla para o Firefox

Confesso que poucas extensões para o firefox até hoje me empolgaram tanto quanto a Ubiquity. Diferentemente das outras extensões para o navegador da Mozilla, que trazem funcionalidades e novos recursos já “empacotados” e prontos para utilização, a Ubiquity “coloca o poder nas mãos do usuário”.

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.

Fonte: Open2Tech

Aplicações Práticas da UbiComp

O desenvolvimento de dispositivos, aplicações e a miniaturização dos componentes já permitiram a criação de aplicações práticas das idéias de Weiser. Alguns projetos hoje são realidade e até mesmo vendidos comercialmente, enquanto outros são promessas ou ainda estão em fase de protótipo.

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.
Apesar de ainda não estar tão avançada nos conceitos da Computação Ubíqua, a Automação Residencial caminha para isso. Através de sensores, motores e dispositivos de comando espalhados por uma casa, um sistema de Automação Residencial controla desde o fechamento das persianas até o acendimento da lareira.

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:

m684193e2

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.
Georgiatech - FCE

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.
  • EclassPesquisava 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

View SlideShare presentation or Upload your own.

terça-feira, 2 de dezembro de 2008

SysML

Aqui vai uma contribuição de João Marco do blog sobre MDA (http://tees-mda.blogspot.com/) com o nosso tema de computação Ubíqua.  Estarei pesquisando mais sobre a relação entre os dois temas. Segue abaixo, o post de João Marco:

Bom pessoal, como durante a apresentação do trabalho do grupo de estudos sobre Metodologias para Computação Ubíqua foi mencionada a linguagem de modelagem SysML e, durante a confecção de meu trabalho de conclusão, estudei bastante a linguagem, acredito que posso dar uma pequena contribuição escrevendo um breve post sobre esta linguagem que vem ganhando notável espaço.

Em setembro de 2007, a OMG (Object Management Group), em conjunto com o INCOSE (International Council on Systems Engineering), publicou a primeira versão da SysML (System Modeling Language). Esta foi uma decisão estratégica dos dois órgãos visando trazer para a engenharia de sistemas a mesma unificação de linguagens de modelagem que a UML (Unified Modeling Language) trouxe para a industria de software.

A SysML foi criada como uma extensão da própria UML 2.0, acrescentando-lhe e modificando alguns de seus diagramas, no sentido de atender à SE RFP (System Engineering Request os Proposal). Como visto na figura abaixo, presente na sua própria especificação.


Através deste conjunto de diagramas, a SysML suporta a especificação, análise, desenho, verificação e validação de sistemas, o que inclui hardware, software, dados, pessoas, processos e infra-estrutura.

Desta forma, a SysML inclui, em uma única especificação, uma visão integrada do sistema, incluindo hardware, software e partes eletro-mecânicas.

Segundo a própria OMG, a SysML foi projetada para prover simples, porém poderosos, construtores para modelagem de um largo número de problemas dos sistemas de engenharia, sendo, particularmente efetiva na especificação de requisitos, estruturas, comportamentos, alocações de recursos e restrições.

A especificação oficial da linguagem está dividida em três blocos: os Construtores Estruturais, Construtores Comportamentais e os Construtores de Crosscutting. 

O fato de SysML ser uma extensão da UML 2.0, permite uma melhor comunicação entre os vários stakeholders envolvidos no desenvolvimento de sistemas, além de facilitar a integração ou adaptação de ferramentas de modelagem atuais e futuras.

Atualmente, tenho visto muitos artigos publicados no IEEE (Institute of Electrical and Electronics Engineers) abordando o uso da SysML no desenvolvimento de sistemas embarcados, componentes de redes sem fio, redes de sensores sem fio, dispositivos móveis e outros vários.
 
Para quem tem interesse em computação ubíqua, este, certamente, é um ótimo tema a ser estudado com mais atenção.


segunda-feira, 1 de dezembro de 2008

Olá pessoal, encontrei outro material do mesmo autor da Universidade do Minho em Portugal. Este parece ser bem mais completo. Chama-se "Model-Driven Development for Pervasive Information Systems". Ainda não terminei de ler, pois o capítulo é bem grandinho, mas até o momento me parece ser bem interessante.
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

Oi pessoal,

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:


A numeração à esquerda na pirâmide refe-se aos níveis no CMMI
em comparação com os níveis do MPS.BR


[FONTE: Pentagrama Soluções em Tecnologia da Informação, Wikipedia]