calcloud)ima.udg.edu/~sellares/einf-es2/present1011/reqplaprojcalcloud.pdf · 2) calcloud!!! !...

19
Enginyeria del Software II Llorenç Burgas Nadal Carlos García Rubio Jonathan Molina Vansteenkiste David Muñoz Novoa CalCloud

Upload: others

Post on 03-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

Enginyeria  del  Software  II    

L l o r en ç   Bu r g a s  N ad a l  C a r l o s   G a r c í a   Rub i o  

J o n a t h an  Mo l i n a   V an s t e enk i s t e  D a v i d  Muño z  Novo a  

 

         

CalCloud  

Page 2: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  1    CalCloud  

     

Índex    

Planificació  del  projecte  .............................................................................................  2  1.1.Introducció  .........................................................................................................................................................  2  1.1.1.Motivació  .........................................................................................................................................................  2  1.1.2.Estat  del  sector  .............................................................................................................................................  2  

1.2.Objectius  ..............................................................................................................................................................  3  1.3.Metodologia  ........................................................................................................................................................  4  1.4.Recursos  ..............................................................................................................................................................  5  1.4.1.Personal  ...........................................................................................................................................................  5  1.4.2.Software  ...........................................................................................................................................................  5  

1.5.Planificació  .........................................................................................................................................................  6  1.5.1.Temporalització  ...........................................................................................................................................  6  1.5.2.Diagrama  de  Gantt  .....................................................................................................................................  8  1.5.3.Control  de  la  temporalització  ................................................................................................................  8  

Requeriments  ............................................................................................................  9  2.1.Introducció  .........................................................................................................................................................  9  2.2.Requeriments  ....................................................................................................................................................  9  2.2.1.Requeriments  Funcionals  .........................................................................................................................  9  2.2.2.Requeriments  No  Funcionals  ...............................................................................................................  12  

2.3.Especificació  ....................................................................................................................................................  14  2.3.1.Diagrama  de  casos  d’ús  de  context  ...................................................................................................  14  2.3.2.Diagrames  de  cas  d’ús  ............................................................................................................................  15  2.3.3.Fitxes  de  cas  d’ús  .......................................................................................................................................  17    

     

Page 3: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  2    CalCloud  

     

Planificació  del  projecte  

1.1.Introducció    L'objectiu  del  projecte  “CalCloud”,  és  el  desenvolupament  d’una  aplicació  multi  plataforma  que  permeti  a  l’usuari  resoldre  expressions  matemàtiques  (tan  senzilles  com  complexes)  en  un  temps  raonable,  utilitzant  paral·∙lelització  amb  altres  equips  connectats  al  servei.    En  aquest  apartat  es  descriuen  els  objectius  del  projecte  CalCloud.  També  es  llisten  els  recursos,  les  eines  i  les  metodologies  emprades  en  el  desenvolupament  del  projecte.      Finalment,  aquest  capítol  inclou  també  la  planificació  i  la  distribució  de  les  tasques  que  el  composen.    

1.1.1.Motivació    El  projecte  CalCloud  neix  d’una  idea  utòpica:  crear  una  eina  definitiva  que  permeti  efectuar  càlculs  complexes  amb  tanta  eficiència  com  sigui  possible  des  de  qualsevol  plataforma.      Representa  la  unió  de  tecnologies  de  xarxa  tan  actuals  com  són  el  “Grid  Computing”  i,  sobretot,  el  “Cloud  Computing”,  per  tal  d’aconseguir  crear  una  aplicació  multi  plataforma  que  sigui  capaç  de  resoldre  expressions  matemàtiques  complexes  amb  tanta  eficiència  com  l’entorn  i  el  moment  ens  permeti.    La  força  d’aquesta  eina  es  basa  en  que  està  ideada  i  planificada  com  a  software  de  lliure  distribució,  de  forma  que  el  seu  rendiment  millorarà  directament  a  mesura  que  l’utilitzin  més  usuaris,  aconseguint  així  una  escalabilitat  òptima.      Creiem  que  aquest  projecte  és  innovador  i  pot  significar  una  revolució  en  la  metodologia  i  la  tecnologia  del  sector  del  software  orientat  a  les  matemàtiques.  

 

1.1.2.Estat  del  sector    Actualment,  el  sector  del  software  orientat  a  les  matemàtiques  és  molt  ampli  però  característic.  Hi  ha  incomptables  aplicacions  que  permeten  realitzar  càlculs  matemàtics,  des  de  les  més  simples  operacions  aritmètiques  fins  a  integracions  i  optimitzacions  iteratives  més  complexes.      Trobem  altres  variants,  com  són  els  paquets  orientats  a  certs  tipus  de  càlcul,  com  l’estadística  o  la  comptabilitat.  Però  aquestes  aplicacions  són  també  molt  específiques  i  no  tenen  un  enfoc  general.    

Page 4: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  3    CalCloud  

     

Així  doncs,  no  és  senzill  trobar  aplicacions  que  resolguin  una  gran  varietat  d’operacions  o  problemes  matemàtics.  Existeixen,  però  poques  i  cap  és  de  lliure  distribució.  Actualment,  una  de  les  aplicacions  que  més  varietat  i  satisfacció  ofereix,  és  Matlab.  Matlab,  actualment  a  la  seva  versió  7.11  (setembre  de  2010),  permet  resoldre  una  enorme  quantitat  de  funcions  matemàtiques  gràcies  al  seu  disseny  modular,  que  ha  permès  que  a  través  d’una  interfície  gràfica  no  massa  complexa,  s’hagin  pogut  anar  afegint  i  millorant  funcions  matemàtiques  programades  en  llenguatges  d’alt  nivell.  Com  és  de  suposar,  Matlab  no  és  de  lliure  distribució,  el  seu  preu  per  llicència  és  molt  car,  de  forma  que  un  usuari  particular  normal  i  corrent  no  hi  pot  accedir.      Com  veiem,  el  sector  realment  té  escasses  opcions  per  satisfer  totes  les  necessitats  d’un  estudiant,  un  treballador  o  un  enginyer  a  menys  que  estiguin  disposats  a  invertir  una  important  suma  econòmica  en  software  professional.    CalCloud  vol  aprofitar  aquest  extremisme  entre  aplicacions  gratuïtes  massa  simples  i  paquets  complexes  massa  cars  per  tal  de  situar-­‐se  com  a  alternativa  potent  i  econòmica  per  a  tot  el  públic  que  no  es  pugui  permetre  o  no  vulgui  comprar  un  paquet  de  software  professional  degut  al  seu  preu  o  a  que  no  l’aprofitaria  al  complet.  

 

1.2.Objectius  

Aquest  projecte  té  per  objectiu  crear  un  sistema  capaç  de  resoldre  operacions  matemàtiques  tant  en  la  màquina  local  com  de  forma  remota,  és  a  dir,  en  diferents  màquines  a  través  del  “Grid  computing”.  

En  termes  generals,  volem  aconseguir  una  aplicació  que  incorpori  tècniques  tan  innovadores  com  el  “Cloud  computing”  i  el  “Grid  computing”  als  càlculs  tradicionals  de  mètodes  numèrics.    

Per  tant,  els  objectius  concrets  són:  

• Dissenyar  una  aplicació  multi  plataforma  capaç  de  calcular  expressions  matemàtiques  complexes.  

• L’aplicació  ha  de  brindar  la  capacitat  d'atendre  peticions  d'altres  usuaris  remots  de  manera  transparent  a  l'usuari.  

• L’aplicació  ha  de  permetre  distribuir  de  manera  senzilla  els  càlculs  a  realitzar  entre  les  diferents  màquines  connectades,  intentant  no  saturar-­‐ne  cap  en  especial.  

• L’eina  ha  de  permetre  crear  grups  d'usuaris  que  comparteixin  càlculs  entre  ells  en  “P2P”,  sense  necessitat  de  disposar  de  servidors  ni  d’infraestructures  fixes.    

   

Page 5: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  4    CalCloud  

     

1.3.Metodologia    Donat  que  el  motor  principal  de  CalCloud  és  la  interfície  gràfica,  hem  decidit  que  la  millor  metodologia  per  aplicar  en  aquest  projecte  és  la  ICONIX.      Aquesta  metodologia,  tot  i  que  es  considera  pesada,  no  ho  és  tan  com  una  RUP.    Es  basa  en,  a  partir  dels  casos  d’us  d’UML,  generar  diagrames  de  robustesa  (o  de  seqüència,  com  serà  en  el  nostre  cas)  que  redueixen  l’ambigüitat  dels  casos  d’ús,  escrivint  els  contexts  acompanyats  d’un  diagrama  de  dominis  (diagrama  de  classe  simplificat).  Aquest  procés  fa  que  els  casos  d’ús  siguin  més  fàcils  d’estimar,  dissenyar  i  provar.    Aquesta  metodologia  també  és  més  lleugera  que  el  RUP  perquè  utilitza  menys  tipus  de  diagrames  UML.  També  és  una  metodologia  iterativa  i  incremental.    A  la  següent  taula,  veiem  una  gràfica  que  il·∙lustra  el  funcionament  de  la  metodologia  ICONIX.  

 

   Cada  una  de  les  etapes  de  la  metodologia  ICONIX,  revisa  i  actualitza  l’etapa  anterior,  refinant  el  disseny  fins  a  la  seva  versió  final.    Com  que  en  aquest  projecte  no  hi  haurà  fase  d’implementació,  sinó  que  s’aturarà  en  acabar  la  fase  de  disseny,  l’etapa  dinàmica  es  basarà  en  anar  generant  i  refinant  els  diagrames  de  seqüència  a  partir  dels  requeriments  i  els  casos  d’us.  D’aquesta  manera  generarem  la  documentació  del  projecte  a  mesura  que  dissenyem  els  diversos  mòduls  que  conformaran  el  projecte.  L’etapa  estàtica  anirà  refinant-­‐se  a  mesura  que  es  completin  les  etapes  dinàmiques  de  cada  mòdul  i  es  comprovi  amb  el  control  de  qualitat  que  satisfà  els  requeriments  dels  clients.    

Page 6: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  5    CalCloud  

     

1.4.Recursos    En  aquest  capítol  descriurem  els  recursos  amb  que  s’elaborarà  tot  el  projecte.  Distingirem  entre  els  recursos  humans,  és  a  dir  l’equip  de  treball,  i  el  software  emprat  en  el  desenvolupament  i  la  documentació  del  projecte.    

1.4.1.Personal    El  nostre  equip  de  desenvolupament  consta  de  quatre  professionals,  cada  un  amb  els  seus  rols  i  tasques  assignades.  Mostrem    aquesta  assignació  de  tasques  i  rols  a  la  següent  taula:    Membre   Rol  Llorenç  Burgas   Control  de  qualitat,  test  i  prototipatge  Carlos  García   Dissenyador  Jonathan  Molina   Analista  David  Muñoz   Cap  de  projecte  i  documentació    Com  és  natural,  donada  la  reduïda  mida  de  l’equip,  el  poc  temps  de  desenvolupament  amb  que  contem  i  que  tots  estem  estudiant  la  mateixa  enginyeria,  tots  els  membres  participaran  en  menor  o  major  grau  en  cada  tasca,  tot  i  que  hi  participaran  notablement  els  que  hi  estiguin  especialitzats  segons  l’assignació  de  rols.    

1.4.2.Software    El  software  que  utilitzarem  en  el  projecte  es  pot  dividir  en  dues  categories:      

• Software  utilitzat  per  la  planificació,  els  requeriments  i  la  documentació  

Software   Funció  

 

Paquet  ofimàtic  de  l’empresa  Microsoft.  Amb  ell  recollim  els  requeriments,  redactem  la  documentació,  registrem  les  actes  de  les  reunions  d’equip  i  preparem  la  presentació.  

 

Software  d’administració  de  projectes  orientat  al  desenvolupament  de  plans,  assignació  de  recursos  a  tasques,  seguiment  de  progrés,  administració  de  pressupostos  i  anàlisi  de  càrregues  de  feina.  L’utilitzem  per  la  planificació  del  projecte.  

   

Page 7: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  6    CalCloud  

     

• Software  utilitzat  per  l’anàlisi  i  el  disseny  

Software   Funció  

 

Eina  CASE  de  desenvolupament  de  software  amb  suport  per  UML  2.  Utilitzem  aquesta  eina  per  complementar  Microsoft  Visio.  

 

1.5.Planificació    La  planificació  del  projecte  ha  de  tenir  en  compte  el  calendari  d’entregues,  de  la  mateixa  manera  que  el  temps  que  comportarà  cada  tasca  (amb  tanta  precisió  com  puguem  estimar).  Comptem  amb  una  temporalització  de  les  fases  del  projecte  i  també  amb  una  planificació  estimada  de  tot  el  desenvolupament  del  mateix.    

1.5.1.Temporalització    Les  dates  establertes  del  calendari  d’entregues  són  les  següents:    

• Data  d’inici  de  projecte:  24  de  febrer  • Entrega  de  requeriments  i  pla  del  projecte:  24  de  març  • Entrega  de  l’anàlisi  del  projecte:  16  d’abril  • Presentació  del  projecte:  10  de  juny  

 La  resta  de  dates  no  estan  establertes,  així  que  estimarem  un  ritme  adequat  de  treball  per  tal  de  complir  un  termini  acceptable.  Representarem  la  data  orientativa  d’entrega  del  projecte  com  el  dia  1  de  juny.  Així  doncs,  l’equip  compta  amb  aproximadament  15  setmanes  de  feina  per  desenvolupar  l’aplicació,  arribant  a  acabar  el  seu  disseny,  el  prototipatge  i  la  documentació.    A  continuació,  representem  en  una  taula  el  percentatge  de  la  feina  total  que  creiem  que  ens  ocuparà  cada  fase  de  l’elaboració  del  projecte,  seguint  la  nostra  metodologia.    

Fase   Temps  destinat   %  Temps  total  Requeriments   20  hores   10%  

Anàlisi   80  hores   40%  Disseny   80  hores   40%  

Documentació   20  hores   10%  Total   200  hores   100%  

   

Page 8: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  7    CalCloud  

     

Aquesta  estimació  del  total  d’hores  implica  que,  sent  4  els  membres  de  l’equip  de  treball,  cada  un  haurien  de  realitzar  50  hores  de  feina.  Assumint  com  a  data  d’entrega  aproximada  el  dia  1  de  Juny,  el  projecte  compta  amb  15  setmanes  de  treball,  aproximadament.  Per  tant,  cada  membre  de  l’equip  treballarà  aproximadament  unes  4  hores  setmanals,  tot  i  que  aquestes  hores  no  seran  exactes,  ja  que  algunes  fases  de  l’elaboració  requeriran  més  hores  i  altres  menys.    A  la  següent  taula  hi  ha  la  distribució  d’hores  de  feina,  sempre  aproximant,  al  llarg  de  les  4  fases  d’elaboració.  Com  és  natural,  tothom  participarà  de  totes  les  tasques,  ja  que  com  hem  explicat  a  l’apartat  de  recursos,  els  rols  assignats  als  membres  de  l’equip  son  merament  orientatius  i  no  impliquen  exclusivitat  en  cap  tasca.      

Membre   Requeriments   Anàlisi   Disseny   Document   Total  Llorenç  Burgas   4  hores   20  hores   20  hores   3  hores   47  hores  Carlos  García   5  hores   15  hores   25  hores   5  hores   50  hores  Jonathan  Molina   6  hores   25  hores   20  hores   2  hores   53  hores  David  Muñoz   5  hores   20  hores   15  hores   10  hores   50  hores    A  part  d’aquesta  temporalització,  purament  orientativa,  es  realitzaran  reunions  de  periodicitat  setmanal  comptant  amb  tots  els  membres  de  l’equip,  per  tal  de  posar  en  comú  la  feina  feta,  controlar  el  desenvolupament  del  projecte  i  valorar  la  planificació.          

Page 9: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  8    CalCloud  

     

1.5.2.Diagrama  de  Gantt    A  partir  dels  recursos,  l’equip  i  la  temporalització  abans  esmentats,  s’ha  generat  un  diagrama  de  Gantt  que  il·∙lustra  gràficament  la  realització  de  tasques  al  llarg  del  desenvolupament.    

   Els  rombes  vermells  representen  les  entregues  i  els  punts  de  control.  Les  línies  verdes  són  agrupacions  de  tasques  i  representen  les  fases  del  projecte.  Les  línies  en  blau  clar  són  tasques.  Les  zones  més  enfosquides  indiquen  que  s’ha  completat  una  tasca  o  agrupació  de  tasques.    Assumint  un  sou  bàsic  de  8€  per  hora  per  cada  treballador,  el  pressupost  estimat  del  projecte  complet  seguint  aquesta  planificació,  seria  de  1956€.        

1.5.3.Control  de  la  temporalització    A  cada  reunió  de  grup  es  revisarà  la  planificació  del  projecte,  per  tal  de  supervisar-­‐la  i  complir-­‐la  tant  com  sigui  possible,  malgrat  els  imprevistos  que  puguin  sorgir  durant  l’elaboració  del  projecte.  Interessa  que  els  imprevistos  en  qüestió  provoquin  canvis  el  més  lleugers  possible.    Per  cada  reunió,  es  redactarà  una  acta  per  tal  de  comptabilitzar  les  hores  de  feina  i  enregistrar  els  avanços  en  cada  fase  del  projecte.  Amb  aquestes  actes  es  tindrà  constància  de  la  feina  realitzada  setmana  a  setmana  i  ajudarà  a  la  presa  de  decisions  davant  d’imprevistos.    Cada  imprevist,  implicarà  un  retard  (tan  reduït  com  ens  sigui  possible)  i  una  modificació  en  la  planificació.  També  comportarà  un  registre  en  les  actes  de  les  reunions  i  una  notificació  als  clients.  

Page 10: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  9    CalCloud  

     

Requeriments  

2.1.Introducció    Aquest  capítol  recull  formalment  el  conjunt  d'idees  sobre  el  què  ha  de  ser  el  nostre  projecte,  les  funcionalitats  que  ha  de  complir,  així  com  la  manera  en  que  ho  aconseguirà.  A  més  a  més,  per  tal  de  facilitar  la  comprensió  d'aquests  objectius,  s'inclou  el  diagrama  de  casos  d'ús  de  context  i  també  l’especificació  del  casos  d’ús  en  qüestió.  Donat  que  utilitzem  la  metodologia  ICONIX,  les  fitxes  de  cas  d’ús  es  realitzaran  directament  en  vista  de  dissenyador  durant  la  fase  d’anàlisi.    Tots  els  requeriments  es  basen  en  la  interacció  d’un  usuari  amb  una  interfície  gràfica.  A  continuació  mostrem  una  vista  prèvia  aproximada  del  que  seria  la  interfície  de  l’aplicació.  Aquesta  seria  la  primera  versió  de  la  interfície  d’usuari.  És  el  prototipus  principal  i  és  possible  que  canviï  durant  l’elaboració  del  projecte.    

   

2.2.Requeriments  

2.2.1.Requeriments  Funcionals    

• Un  cop  oberta  l’aplicació,  avisar  de  que  compartim  recursos:  és  necessari  que  l’usuari  sigui  conscient  de  que  està  oferint  recursos  de  “hardware”  als  altres  equips  que  utilitzin  l’aplicació  en  xarxa.    

• Separar  una  operació  matemàtica  (integral,  derivada,  producte,  multiplicació,  suma,  etc.)  en  el  seu  terme  mínim:  el  sistema  ha  de  ser  capaç  de  “parsejar”  una  expressió  matemàtica  i  això  implica  validar  la  seva  sintaxi  i  tenir  la  capacitat  de  dividir-­‐la  en  cadascuna  de  les  parts  que  la  composin.  

 • Paral·∙lelitzar  i  distribuir  en  diferents  sistemes  (ordinadors,  telèfons,  “tablets”,  

etc.)  aquestes  operacions  mínimes  que,  més  tard  tornaran  al  terminal  principal  per  tornar  a  ser  unides  i  mostrar  el  resultat  final:  el  sistema,  després  de  descompondre  una  expressió  matemàtica  en  les  seves  parts  mínimes,  ha  de  ser  capaç  de  distribuir-­‐les  en  xarxa  per  tal  que  els  diferents  sistemes  que  utilitzen  l’aplicació  (i  estan  disponibles)  puguin  rebre  petites  components  i  resoldre-­‐les  

Page 11: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  10    CalCloud  

     

per  després  retornar-­‐les  al  client  que  sol·∙licitava  l’operació.  L’aplicació  unirà  els  resultats  parcials  per  tal  de  trobar  la  solució  final.    

• “Aprendre”  quan  s’han  de  resoldre  les  operacions  de  forma  local  o  de  forma  distribuïda:  Naturalment,  les  operacions  poden  tenir  diferents  graus  de  complexitat.  L’aplicació  ha  de  saber  establir  uns  determinats  “llindars”  per  decidir  si  la  màquina  des  d’on  es  demana  el  càlcul  de  l’expressió  és  prou  potent  com  per  resoldre  el  càlcul  en  qüestió  amb  més  eficiència  que  el  cost  que  implicaria  descompondre-­‐la  i  distribuir-­‐la  per  esperar  els  resultats  per  part  d’altres  equips  connectats.  

 • Detectar  les  diferents  plataformes  que  comparteixen  recursos:  Una  plataforma  

connectada  a  l’aplicació  (sigui  un  ordinador,  un  mòbil,  una  “tablet”  o  qualsevol  altre  tipus  de  sistema  compatible)  ha  d’enviar  un  avís  al  servidor  en  iniciar  sessió,  de  forma  que  anunciarà  la  seva  disponibilitat  en  el  sistema  i  podrà  ser  seleccionat  pel  servidor  a  l’hora  de  distribuir  els  càlculs  parcials  d’una  expressió  matemàtica  sol·∙licitada.    

 o Els  usuaris  que  iniciïn  l’aplicació,  rebran  la  llista  d’usuaris  que  han  avisat  

al  servidor  fins  el  moment.    

 o Quan  un  usuari  tenca  l’aplicació,  ho  comunica  abans  al  servidor  perquè  

desaparegui  de  la  llista  de  disponibilitat.  

 o Quan  un  usuari  rep  una  petició  d’un  altre  usuari  i  no  el  té  en  llista,  

l’afegeix.  

 o Si  un  usuari  no  rep  la  resposta  d’un  altre  passat  el  “time-­‐out”  remot,  

l’esborra  de  la  llista  de  disponibilitat.  

 o Quan  el  servidor  rebi  molts  avisos  d’un  “peer”  que  no  respon,  

l’esborrarà  de  la  llista  de  disponibilitat.  

 • Les  actualitzacions  de  l’aplicació  han  de  ser  automàtiques  i  desateses  al  iniciar-­‐

se:  El  programa,  només  iniciar-­‐se,  comprovarà  la  versió  del  software  per  tal  d’actualitzar-­‐se  descarregant  automàticament  la  nova  versió,  si  n’hi  ha  una  de  disponible.  En  aquest  procés,  l’usuari  no  intervé  per  a  res.  

Page 12: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  11    CalCloud  

     

 • Instanciació  dinàmica  de  noves  llibreries/opcions:  De  la  mateixa  manera  que  

amb  les  actualitzacions,  l’aplicació  ha  de  descarregar  automàticament  totes  les  llibreries  de  funcions  noves  o  actualitzades.  Novament,  aquest  procediment  és  completament  desatès.  

 • L’usuari  podrà  establir  uns  “time  out”  local,  per  tal  de  limitar  el  temps  d’espera  

d’una  operació:  Aquest  “time  out”  estableix  el  temps  que  l’aplicació  permet  al  “hardware”  a  l’hora  de  resoldre  de  forma  local  (sense  compartir)  una  expressió  matemàtica.  Si  es  supera  aquest  temps  i  no  s’ha  obtingut  el  resultat,  s’avorta  el  càlcul.  

 • Només  usuaris  avançats:  establir  un  tipus  addicional  de  “time  out”,  per  tal  de  

reenviar  una  part  de  l’operació  a  una  altra  plataforma  si  triga  més  del  compte  a  rebre  el  resultat:  De  forma  similar  al  “time  out”  local,  aquest  estableix  el  temps  de  càlcul  que  permetem  a  un  sistema  connectat  a  l’aplicació  a  l’hora  de  resoldre  un  càlcul  parcial  d’una  operació  matemàtica.  Si  es  supera  aquest  “time  out”  i  l’estació  en  qüestió  no  ens  ha  retornat  una  solució,  automàticament  ignorem  l’estació  i  enviem  el  càlcul  no  resolt  a  un  altre  sistema  disponible.  

 • Les  operacions  que  tinguin  més  d’una  metodologia  o  variant  de  càlcul,  

sol·∙licitaran  a  l’usuari  quina  variant  vol  utilitzar:  Per  exemple,  en  el  cas  de  les  integrals,  l’aplicació  pot  demanar  a  l’usuari  si  la  vol  resoldre  pel  mètode  dels  trapezis,  per  Romberg  o  per  Simpson.  En  cas  de  que  l’usuari  especifiqui  manualment  la  metodologia  (quan  introdueix  l’operació),  no  caldrà  demanar  res.  Si  el  mètode  requereix  alguna  dada  addicional,  com  pot  ser  la  tolerància  d’error,  se  li  sol·∙licitarà  quan  triï  el  mètode  de  resolució.  

 • L’aplicació  ha  d’incorporar  un  menú  d’ajuda  que  permeti  a  l’usuari  consultar  el  

funcionament  tant  de  l’aplicació  com  de  les  funcions  incorporades:  Existirà  documentació  en  línia  sobre  l’ús  de  l’aplicació  i  la  sintaxi  i  el  funcionament  de  les  diverses  operacions  suportades  per  l’aplicació.  

     

Page 13: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  12    CalCloud  

     

2.2.2.Requeriments  No  Funcionals    

• L’aplicació  ha  de  ser  multi  plataforma:  L’aplicació  ha  de  poder  funcionar  des  de  qualsevol  sistema  operatiu  d’ordinador,  mòbil  o  “tablet”.  La  primera  opció  contemplada,  és  desenvolupar  l’aplicació  sobre  una  màquina  virtual  de  Java.  

 • L’aplicació  utilitza  la  tècnica  de  “Cloud  Computing”    

o Els  usuaris  “premium”  disposen  d’un  “peer”  especial.  Un  equip  remot  molt  potent  que  sempre  tindran  disponible  per  enviar-­‐hi  càlculs.  

 • L’aplicació  utilitza  la  tècnica  de  “Grid  Computing”  

o Compartiment  de  recursos  

 • L’aplicació  ha  de  ser  intuïtiva  i  senzilla  per  tal  que  l’usuari  pugui  introduir  les  

expressions  matemàtiques  amb  comoditat:  La  interfície  ha  d’oferir  tota  una  sèrie  de  caràcters  i  símbols  per  tal  que  l’usuari  pugui  introduir  completament  i  sense  ambigüitats  l’operació  que  vol  resoldre.  

 • L’aplicació  ha  de  tenir  tolerància  a  fallades  

 • L’aplicació  ha  de  distingir  els  usuaris  casuals  dels  usuaris  “premium”:  

Naturalment,  els  usuaris  bàsics  no  tenen  disponibilitat  de  totes  les  funcions  de  l’aplicació.  Així  que  l’aplicació  ha  de  distingir  si  un  usuari  és  “premium”,  per  tal  que  només  ells  puguin  realitzar  les  funcions  avançades  del  sistema.  

 • Les  comandes  rebudes  es  processaran  a  mínima  prioritat  si  l’aplicació  s’executa  

en  segon  pla  des  d’un  ordinador  i  a  alta  prioritat  quan  salti  el  salva  pantalles:  Amb  aquesta  característica,  aconseguim  aprofitar  més  els  recursos  disponibles  d’un  sistema  inactiu  i  no  sobrecarregar  els  sistemes  amb  més  activitat.  

 • Les  comandes  en  execució  des  d’un  telèfon  queden  pausades  mentre  es  rep  

una  trucada:  Naturalment,  en  els  dispositius  mòbils  es  pot  rebre  una  trucada  en  qualsevol  moment.  És  necessari  que  l’aplicació  entri  en  el  mode  de  pausa  per  tal  de  que  la  trucada  s’atengui  amb  normalitat.  En  acabar  la  trucada,  l’aplicació  ha  de  continuar  amb  la  seva  execució.  

 

Page 14: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  13    CalCloud  

     

• L’usuari  podrà  aportar  un  feedback  de  l’aplicació:  Qualsevol  usuari  ha  de  ser  lliure  de  poder  enviar  suggeriments,  incidències  i  propostes  al  nostre  equip,  per  tal  de  millorar  el  producte.  Es  realitzarà  a  través  d’un  senzill  enllaç  de  correu  electrònic.  

 • Només  usuaris  avançats:  penjar  en  un  servidor  (o  enviar-­‐nos)  noves  

funcions/mètodes  per  afegir  a  l’aplicació  (implementades  en  Java):  Els  usuaris  “premium”  estan  animats  a  col·∙laborar  i  proposar  noves  funcions  o  fins  i  tot  reversions  de  funcions  ja  implementades.  D’aquesta  manera  enriquim  la  plataforma  i  aconseguim  que  no  només  rebem  incidències  sinó  també  noves  propostes  i  ajudes.  

 • Només  usuaris  avançats:  moderar  funcions  experimentals:  Els  usuaris  

“premium”  poden  valorar  amb  una  votació  per  usuari  la  qualitat  d’una  funció  experimental  proposada  per  un  altre  usuari  “premium”.  D’aquesta  manera,  deleguem  la  principal  validació  de  funcions  als  propis  usuaris  avançats,  reduint  el  cost  de  manteniment.  Al  comptar  amb  un  únic  vot  per  usuari  i  funció,  no  és  possible  que  hi  hagi  funcions  descartades  malintencionadament.  

 • Només  usuaris  avançats:  revisar  les  crítiques  de  les  funcions  proposades:  Els  

usuaris  avançats  poden  revisar  el  rati  de  votacions  que  tenen  les  funcions  que  va  proposar.  

     

Page 15: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  14    CalCloud  

     

2.3.Especificació    A  continuació  es  mostren  tots  els  casos  d’ús  especificats  a  partir  dels  requeriments  recollits  del  client.  Primerament  mostrem  el  diagrama  de  casos  d’ús  de  context  i,  a  continuació,  l’especificació  de  cada  un  dels  casos  d’ús.      

2.3.1.Diagrama  de  casos  d’ús  de  context    

Observem  al  diagrama  de  casos  d’ús  de  context,  que  intervenen  cinc  actors  en  el  sistema.  Podríem  separar-­‐los  en  tres  àmbits:    

• Usuaris:  Usuaris  i  usuaris  “premium”  • Agents  del  sistema:  Paral·∙lelitzador  i  servidor  de  la  nostra  aplicació  • Banc:  Entitat  que  gestiona  els  pagaments  dels  usuaris  

 

         

Page 16: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  15    CalCloud  

     

2.3.2.Diagrames  de  cas  d’ús    A  continuació  especifiquem  una  sèrie  de  casos  d’ús  per  millorar  el  seu  enteniment.  Hem  obviat  casos  d’ús  simples,  com  “Consultar  ajuda”  (que  no  és  més  que  visualitzar  una  pàgina  web),  “Enviar  feedback”  (que  consisteix  en  enviar  un  correu  electrònic  donant  una  opinió  o  informant  d’un  problema  amb  l’aplicació)  o  l’establiment  dels  “time-­‐outs”  (que  simplement  consisteixen  en  ajustar  un  paràmetre  numèric).    Especificarem  amb  nous  diagrames  de  cas  d’ús  els  següents  casos:    

• Atendre  petició  • Introduir  expressió  matemàtica  • Registrar-­‐se  com  usuari  premium  • Iniciar  sessió  com  a  usuari  premium  

També  redactarem  les  fitxes  de  cas  d’ús  dels  següents  casos:    

• Moderar  funció  experimental  • Revisar  crítiques  d’una  funció  pròpia  

 Atendre  petició    Un  “peer”  només  atén  les  peticions  d’altres  usuaris,  rebent  les  expressions  matemàtiques  que  ha  de  resoldre  i  retornant  el  resultat  a  qui  li  ha  sol·∙licitat.    Depenent  de  la  naturalesa  de  l’expressió,  la  resoldrà  completament  o  la  distribuirà  encara  més  a  altres  “peer”  per  esperar-­‐ne  el  resultat.    

       

Page 17: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  16    CalCloud  

     

Introduir  expressió  matemàtica      Un  usuari  hereta  el  comportament  bàsic  d’un  “peer”,  atenent  peticions  d’altres  usuaris.  A  més  a  més,  permet  la  introducció  d’una  expressió  matemàtica  a  través  d’una  entrada  (des  d’un  fitxer,  des  de  la  consola  de  la  interfície,  etc.)  i  n’espera  el  resultat  per  una  de  les  sortides  (per  pantalla,  en  un  fitxer,  etc.).    Hem  obviat  el  cas  “Interpretar  expressió”  perquè  funciona  de  manera  idèntica  a  com  està  especificat  en  el  cas  d’ús  “Atendre  petició”.    

 

 Registrar-­‐se  com  a  usuari  premium    

       

Page 18: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  17    CalCloud  

     

Iniciar  sessió  com  a  usuari  premium    

 

2.3.3.Fitxes  de  cas  d’ús    Iniciar  sessió  com  a  usuari  premium  (vista  usuari)    

Iniciar  sessió  com  a  usuari  premium  Descripció     Avisar  a  l’aplicació  de  que  som  un  usuari  premium    Actors     Usuari  

Pre-­‐condició     Cert  Flux  principal     1. Entrar  dades  

2. Si  les  dades  són  correctes  2.1 Marcar  “checks”  autosave  i/o  guardar  dades  

Flux  secundari   3. Altrament,  si  les  dades  no  són  correctes  3.1.  Missatge  de  error  

Post-­‐Condició   L’usuari  actual  esdevé  un  usuari  premium          

Page 19: CalCloud)ima.udg.edu/~sellares/EINF-ES2/Present1011/ReqPlaProjCalCloud.pdf · 2) CalCloud!!! ! Planificació!del!projecte! 1.1.Introducció!! L'objectiu!del!projecte!“CalCloud”,és!el!desenvolupamentd’unaaplicació!multi!

  18    CalCloud  

     

Moderar  funció  experimental  (vista  usuari)    

Moderar  funció  experimental  Descripció     Ens  permet  puntuar  una  funció  experimental    Actors     Usuari  Premium  

Pre-­‐condició     Usuari  Premium  “loguejat”  Flux  principal     1. Llistar  funcions  no  moderades  

2. Seleccionar  funció  de  la  llista  3. Puntuar  (vot  positiu  o  negatiu)  la  funció  4. Entrar  comentari  (crítica)  (Opcional)  5. Enviar  crítica  

Post-­‐Condició   Crítica  de  la  funció  experimental  enregistrada      Revisar  critiques  d’una  funció  pròpia  (vista  usuari)    

Revisar  crítiques  d’una  funció  pròpia  Descripció     Ens  permet  revisar  les  crítiques  d’una  funció  que  hem  creat    Actors     Usuari  Premium  

Pre-­‐condició     Haver  creat  mínim  una  funció  Usuari  Premium  “loguejat”  

Flux  principal     1. Llistar  funcions  pròpies  2. Seleccionar  funció  de  la  llista  3. Mostrar  comentaris  

Post-­‐Condició   Crítiques  revisades