25
Universidade Federal do Ceará - Campus em Quixadá Curso de Sistemas de Informação Aluno: André Luís Pitombeira Orientador: Prof. Lincoln Souza Rocha Quixadá, junho de 2011 UM GUIDELINE PARA O DESENVOLVIMENTO DE SOFTWARE UBÍQUO

Guideline para o desenvolvimento de software ubíquo

Embed Size (px)

DESCRIPTION

Guideline para o desenvolvimento de software ubíquo

Citation preview

Page 1: Guideline para o desenvolvimento de software ubíquo

Universidade Federal do Ceará - Campus em Quixadá Curso de Sistemas de Informação Aluno: André Luís Pitombeira Orientador: Prof. Lincoln Souza Rocha

Quixadá, junho de 2011

UM GUIDELINE PARA O DESENVOLVIMENTO DE SOFTWARE UBÍQUO

Page 2: Guideline para o desenvolvimento de software ubíquo

2

Sumário

n  Introdução n  O Processo de desenvolvimento de software

tradicional n  Software ubíquo n  Modelo de desenvolvimento orientado a tarefas n  Guideline n  Aplicação exemplo n  Considerações finais

Page 3: Guideline para o desenvolvimento de software ubíquo

3

Introdução

n  Processo de desenvolvimento de software n  Problemas no desenvolvimento de software n  Software ubíquo n  Aumento na demanda de software ubíquo e

crescente interesse da indústria e academia n  Falta de um processo de desenvolvimento

padrão n  Modelo de desenvolvimento orientado a tarefas n  Objetivos n  Procedimentos metodológicos

Page 4: Guideline para o desenvolvimento de software ubíquo

4

Fundamentação Teórica O processo de desenvolvimento de software tradicional

Especificação de

Software

Projeto e Implementação

Validação de Software

Implantação

Etapas do processo de desenvolvimento de software

Page 5: Guideline para o desenvolvimento de software ubíquo

5

Fundamentação Teórica Software Ubíquo

•  Computação ubíqua •  Princípios fundamentais •  Contexto e sensibilidade ao contexto •  Requisitos para a construção do software

sensível ao contexto

Page 6: Guideline para o desenvolvimento de software ubíquo

Modelo de Desenvolvimento Orientado a Tarefas

Fundamentação Teórica Modelo de Desenvolvimento Orientado a Tarefas

6

Page 7: Guideline para o desenvolvimento de software ubíquo

7

Guideline para o Desenvolvimento de Software Ubíquo Orientado a Tarefas n  Conceitos gerais n  Fundamentação do guideline

n  Requisitos do software ubíquo n  Painel de especialistas

n  Sugestões n  Feedback

Page 8: Guideline para o desenvolvimento de software ubíquo

8

Guideline Primeira Etapa

Estrutura Geral do Guideline

Page 9: Guideline para o desenvolvimento de software ubíquo

9

Guideline Segunda Etapa

Análise de Atividades

Identificar  Atividade  do  Usuário

Verificar  a  Automaticidade  da  Atividade

Pode  ser  automatizada?

Sim

Não

Page 10: Guideline para o desenvolvimento de software ubíquo

10

Guideline Terceira Etapa

Projeto de Tarefas

Identificar  Contexto  de  Ativação Identificar  Serviços  Necessários Identificar  Atores  Envolvidos

Implementar  Modelo  de  Contexto

Implementar  Serviço

Especificar  Fluxo  Base

Identificar  Contexto  de  Adaptação

Especificar  Contexto  de  Adaptação

Especificar  Fluxo  Adaptativo

Não

Não

SimSim

Não

Sim

Mod

elo  de

 Contexto    

dispo

nível?

  Serviços  disponíveis?

Existe  Contexto  de  Adaptação?

Page 11: Guideline para o desenvolvimento de software ubíquo

11

Aplicação Exemplo Primeira Etapa

1.  Análise das Atividades: Atividade principal do estacionamento: Estacionar o carro

2. Projeto de Tarefas: A atividade do usuário será

mapeada na tarefa: ParkingTask.

Page 12: Guideline para o desenvolvimento de software ubíquo

12

Aplicação Exemplo Segunda Etapa Etapa

1.  Identificar as Atividades do usuário: Identificamos que a atividade que um condutor/veículo pode realizar em um estacionamento ubíquo é estacionar o carro. Utilizando o diagrama de casos de uso da UML fazemos a representação da atividade.

Estacionar

Page 13: Guideline para o desenvolvimento de software ubíquo

13

Aplicação Exemplo Segunda Etapa Etapa

2. Verificar a automaticidade da tarefa: A atividade estacionar um carro pode ser automatizada, pois tem como ser projetado uma infraestrura que possa dar apoio a esta atividade.

•  Sensores de localização

•  Agentes Computacionais

•  Servicos web

Page 14: Guideline para o desenvolvimento de software ubíquo

14

Aplicação Exemplo Terceira Etapa

1 – Identificar Contexto de Ativação: 2 – Identificar Serviços necessários:

Contexto Descrição

Localização  do  Veículo/Condutor U6lizada  para  informar  ao  sistema  que  o  

usuário  se  encontra  nas  dependências  do  

estacionamento.

Serviços Descrição

IDService Serviço  que  provê  a  iden6ficação  do  veículo

FreeSpaceService Serviço   para   a   indicação   das   vagas   livres   no  

estacionamento

Ticke6ngService Serviço  para  realizar  a  bilhetagem  do  estacionamento

Page 15: Guideline para o desenvolvimento de software ubíquo

15

Aplicação Exemplo Terceira Etapa

3 - Identificar Atores Envolvidos:

Ator Descrição

Condutor/Veículo Usuário  que  deseja  estacionar

Agentes  Computacionais Sensores   dispersos   no   estacionamento   que  

indicam  as  vagas  livres.

Outros  Condutor/Veículo Outros  usuários  que  estão  simultaneamente  

querendo  estacionar.

Page 16: Guideline para o desenvolvimento de software ubíquo

16

Aplicação Exemplo Terceira Etapa

4 – Verificar disponibilidade de Modelo de Contexto:

Modelo de Contexto

Page 17: Guideline para o desenvolvimento de software ubíquo

17

Aplicação Exemplo Terceira Etapa

5 – Implementar Modelo de Contexto: Para implementar o modelo de contexto foi preciso fazer uma análise dos elementos contextuais e entidades envolvidos nesta atividade. •  Diagrama de Classes da UML

6 – Implementar Serviço: Consideramos nesta atividade o desenvolvimento com reúso, portanto, partimos do pressuposto que já existe os serviços disponíveis.

Page 18: Guideline para o desenvolvimento de software ubíquo

18

Aplicação Exemplo Terceira Etapa

7 – Especificar Fluxo Base:

Tarefas  primi7vas Descrição

Realizar  a  iden6ficação  do  condutor/veículo

O  serviço  IDService  faz  a  iden6ficação  do  veículo.

Sugerir  uma  trajetória  até  uma  vaga  livre

O  serviço  FreeSpaceService  indica  uma  vaga  livre  no  estacionamento

Iniciar  a  bilhetagem  após  o  veículo  ter  sido  efe6vamente  estacionado

O  serviço  Ticke6ngService  faz  a  bilhetagem

Page 19: Guideline para o desenvolvimento de software ubíquo

19

Aplicação Exemplo Terceira Etapa

8 - Identificar Contexto de Adaptação:

Contexto Descrição

Estacionamento  é  pago  ou  gratuito Verifica  se  o  estacionamento  é  pago  ou  

gratuito.

Localização  do  condutor/veículo Indicar  a  vaga  mais  próxima  da  localização  que  

se  encontra  o  veículo/conduto

Vagas  ocupadas Indicar  as  vagas  que  não  estão  ocupadas  ou  que  

acabaram  de  ser  liberadas

Outros  veículos  que  estão  

simultaneamente  querendo  estacionar

Outros  condutores  que  estejam  querendo  

estacionar  simultaneamente  podem  ocupar  a  

vaga  des6nada  a  outro  condutor.  

Page 20: Guideline para o desenvolvimento de software ubíquo

20

Aplicação Exemplo Terceira Etapa

9 – Especificar Fluxo Adaptativo:

Contexto Fluxo  Adapta7vo Outros  veículos  que  estão  simultaneamente  querendo  estacionar

O  veículo  ao  se  dirigir  para  a  vaga  livre  indicada,  outro  condutor  ocupa  aquela  vaga.  A  Tasklet  deve  indicar  uma  nova  vaga  livre  observando  sua  localização

Estacionamento  é  pago  ou  gratuito O  condutor  ao  adentrar  em  um  estacionamento  gratuito  o  serviço  de  bilhetagem  não  deve  ser  cobrado  dele.

Page 21: Guideline para o desenvolvimento de software ubíquo

21

Considerações Finais

n  Necessidade de sistematização do processo de desenvolvimento de software ubíquo

n  O trabalho inicial n  Painel de especialistas n  Guideline n  Contribuições

Page 22: Guideline para o desenvolvimento de software ubíquo

22

Referências

BEZERRA, E. Princípio de Análise e Projeto de Sistemas com UML. 2.ed. Rio de Janeiro: CAMPUS, 2007.

BULCÃO NETO, R.F. Um processo de software e um modelo ontológico para apoio ao desenvolvimento de aplicações sensíveis ao contexto. 2006. Tese (Doutorado em Ciência da Computação) - Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo, São Carlos, 2006.

BULCÃO NETO, R.F., Kudo, T.N., and Pimentel, M.G.C. (2006). POCAp: A software process for context-aware computing. Prc. Of the IEEE/WIC/ACM International Conference on Inteligent Agent Technology, Hong Kong, China, 2006.

CHOI, Jongmyung., MOON, Hyun-Joo. Software Engineering Issues in Developing a Context – aware Exhibition Guide System. Software Engineering , Artificial Inteligence, Networking and Parallel and Distributed Computing, Phuket, 2008.

DEY, A.K. (2000). Providing architectural support for building context-aware applications. PhD thesis, College of Computing, Georgia Institute of Technology.

DEY, A.k. (2001). Understanding and using context. Personal and Ubiquitous Computing, 5(1):4-7.

Page 23: Guideline para o desenvolvimento de software ubíquo

23

Referências

GARLAN, D. et al. Context is Key. Communications of the ACM. March 2005/vol. 48. No. 3.

SOMMERVILE, I. Engenharia de Software. 8.ed. São Paulo: Addison Wesley, 2007.

ROCHA, L. S. AdaptiveRME AspectCompose: Um Middleware Adaptativo e um Processo de Composição Orientado a Aspectos para o Desenvolvimento de Software Móvel e Ubíquo. Dissertação (Mestrado em Ciência da Computação) – Departamento de Computação, Universidade Federal do Ceará, Fortaleza, 2007.

VIEIRA, V., TEDESCO, Patricia., SALGADO, Ana Carolina. A process for the Design of Context-Sensitive Systems. 13th Conference on Computer Supported Cooperative Work in Design, Chile, 2009.

WEISER, M. (1991). The Computer for the 21st Century. Scientific American. v. 265, n. 3, p.94-104, fev. 1991.

Page 24: Guideline para o desenvolvimento de software ubíquo

24

Perguntas

Page 25: Guideline para o desenvolvimento de software ubíquo

25

Obrigado!

"The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it" Mark Weiser