Está en la página 1de 16

MODELO DE CALIDAD

El modelo de calidad que utilizaremos en la realizacin de nuestro proyecto va a ser de


COMPETISOFT que es basado en CMMI
CMMI
CMMI (Capability Maturity Model Integration) es un marco de referencia desarrollado por el SEI
(Software Engineering Institute) para determinar el nivel de madurez que han alcanzado las
organizaciones en funcin del nivel de capacidad de sus procesos involucrados en el desarrollo de
software. La estructura de CMMI se compone de 22 reas de Procesos agrupadas en 4 categoras.
CMMI dispone de dos representaciones [SEI, 2006]:
Representacin Continua, permite seleccionar los procesos a ser mejorados y otorga un
nivel de capacidad individual por cada rea de Proceso. La decisin acerca del proceso a
mejorar obedece a las necesidades de la organizacin.
Representacin por Etapas, permite elegir un grupo de reas de Proceso, predefinidas por
el modelo, sobre las cuales la organizacin centrar sus esfuerzos y una vez que se cubran
todas las reas de proceso de un nivel n se podr afirmar que la organizacin ha
alcanzado el nivel de madurez n.
El modelo CMMI define cinco niveles de madurez para las organizaciones, los cuales se alcanzarn
en la representacin por etapas mientras que para los procesos, define seis niveles de
capacidad, los cuales se alcanzarn en la representacin continua.
El cumplimiento de lo definido por CMMI se concretiza a travs de prcticas agrupadas en 22
reas de Proceso y stas a su vez estn agrupadas en cuatro categoras (Gestin de Proyectos,
Ingeniera, Soporte, Gestin de Procesos) [SEI, 2006].
A continuacin, se muestran los niveles de madurez de la organizacin segn CMMI.




En la siguiente tabla se muestran los niveles de capacidad de procesos.







COMPETISOFT nace como otra alternativa a los grandes marcos metodolgicos para el
mejoramiento de los procesos, constituyndose como una opcin atractiva para las PYME, pues
fue pensado para stas y su adopcin considera esfuerzo y despliegue de recursos proporcionales
a sus posibilidades. COMPETISOFT es un proyecto creado para incrementar el nivel de
competitividad de las PYME Iberoamericanas dedicadas al desarrollo de software. COMPETISOFT
se compone de un modelo de referencia, un modelo de evaluacin y un modelo de mejora, los
cuales se articulan ofreciendo una solucin integral para la ejecucin de un proyecto de mejora de
procesos software, sin que esto signifique que sea opuesto a los grandes marcos metodolgicos,
sino ms bien se presenta como un modelo con muchos puntos en comn, lo cual lo hace
totalmente compatible.
ENFOQUE BASADO EN PROCESOS
El desarrollo y mantenimiento de software se lleva a cabo a travs de una serie de actividades
realizadas por equipos de trabajo. La Ingeniera de Software se ha dedicado a identificar las
mejores prcticas para realizar estas actividades recopilando las experiencias exitosas de la
industria de software a nivel mundial. Estas prcticas se han organizado por reas de aplicacin, y
se han dado a conocer como reas clave de procesos, en caso de CMM, o como procesos de
software en ISO/IEC 15504.
El modelo que se propone est enfocado en procesos y considera los tres niveles bsicos de la
estructura de una organizacin que son: la Alta Direccin, Gestin y Operacin. El modelo
pretende apoyar a las organizaciones en la estandarizacin de sus prcticas, en la evaluacin de su
efectividad y en la integracin de la mejora continua.
Este proceso de calidad se aplicara en nuestro proyecto (Barman Optimizer) inicialmente se
tiene pensado su aplicacin en empresas (bares), se han considerado establecimientos que
pueden poseer slo una sede central o varios centros de distribucin.
Posteriormente se tiene la expectativa, que el sistema pueda ser aplicado junto con un sistema de
bases de datos que soporte la totalidad del inventario de la empresa ya sea que se aprovisione
localmente o desde proveedores en el exterior para sus operaciones de distribucin.
A continuacin se esquematiza la distribucin de los procesos para cada categora
Alta direccin (DIR)
Gestin de Negocio
Gerencia (GER)
Gestin de Procesos
Gestin de Proyectos
Gestin de Recursos Humanos
Gestin de Bienes, Recursos e Infraestructura
Gestin del Conocimiento
Operaciones (OPE)
Administracin de un Proyecto Especfico
Desarrollo de Software
Mantenimiento de Software
Para cada proceso se tienen definidos los roles para su ejecucin, los cuales son asignados al
personal de la organizacin segn sus capacidades.
Para la utilizacin del modelo de procesos en una organizacin, es necesario considerar dos
opciones: que la organizacin no cuente con procesos establecidos o que la organizacin s cuente
con procesos establecidos.
En caso la organizacin no cuente con los procesos establecidos ni documentados, pueden usar el
modelo ajustndolo de acuerdo a sus necesidades. Si la organizacin cuenta con procesos
establecidos, se debe establecer la correspondencia entre estos procesos y el modelo
COMPETISOFT de tal forma que se pueda identificar las coincidencias y discrepancias.
EVALUACIN INICIAL
Como paso previo a la elaboracin del Plan de Mejora de Procesos para el desarrollo de nuestro
proyecto, se determina la capacidad actual de los procesos mediante una evaluacin de tipo
ligera, basada en el estndar EvalProSoft (ISO/IEC 15504 2).
La evaluacin de cada proceso se ha realizado considerando que est:
Completamente alcanzado (C) si el porcentaje de cumplimiento est entre 85% y 100%.
Ampliamente alcanzado (A) si est entre 50% y 85%.
Parcialmente alcanzado (P) si est entre 15% y 50%.
No alcanzado (N) si est entre 0% y 15%.
Como niveles de referencia se tomaron los siguientes:
Nivel 0: Proceso Incompleto. El proceso no est implantado o falla en alcanzar el propsito del
proceso.
Nivel 1: Proceso Realizado. El proceso implantado logra su propsito.

STAKEHOLDERS
Gerencia
Se refiere a los proponentes del proyecto, es decir quienes contratan y financian el desarrollo del
mismo.
Usuarios
Son quienes actan directamente con el sistema.
Grupo de Desarrollo
Son los encargados del desarrollo de todo el sistema y su puesta en funcionamiento, incluye
diseadores y programadores.
Debe reflejar las necesidades del cliente, sin descuidar las restricciones de negocio y tecnolgicas
Tester
Incluye seguridad, confiabilidad y desempeo.
Debe ser capaz de verificar el estado del software, en cuanto a funcionalidad, seguridad,
disponibilidad y eficiencia.
Divisin de Ventas
Se espera un sistema confiable, que permita escalar en nmero de usuarios dependiendo de la
escalabilidad propia del negocio, sin incurrir en sobrecostos.
Gerencia
Est ligada al xito financiero de la compaa. Se espera que este sistema resulte atractivo para los
clientes y esto se vea representado en mayores utilidades para la empresa. De esta manera se
espera un sistema confiable, seguro que mejore la imagen y la eficiencia del negocio a travs de la
satisfaccin de los clientes.
Constructor
Hace referencia a los encargados de la instalacin y adecuacin del software directamente para la
utilizacin del sistema.
GESTIN DE NEGOCIO (GNEG)
Los objetivos de este proceso, segn el modelo de referencia MoProSoft, son:
Lograr una planificacin estratgica exitosa mediante la elaboracin y cumplimiento del Plan
Estratgico.
Lograr que la organizacin trabaje en funcin del Plan Estratgico mediante la correcta
comunicacin e implantacin del mismo.
Mejorar el Plan Estratgico mediante la implementacin de la Propuesta de Mejoras.
La aproximacin ms cercana al Plan Estratgico la constituye un Mapa Estratgico, el cual no
establece las correspondencias entre los objetivos y las estrategias del negocio, no integra, ni da
sentido a los mecanismos de comunicacin con el cliente, entre otros.
GESTIN DE PROCESOS (GPROC)
Los objetivos de este proceso, segn el modelo de referencia MoProSoft, son:
Planificar las actividades de definicin, implantacin y mejora de los procesos en funcin del Plan
Estratgico.
Dar seguimiento a las actividades de definicin, implantacin y mejora de los procesos mediante
el cumplimiento del Plan de Procesos.
Mejorar el desempeo de los procesos mediante el cumplimiento del Plan de Mejora de
procesos.
Mantener informado a Gestin de Negocio sobre el desempeo de los procesos mediante el
Reporte Cuantitativo y Cualitativo

MEJORA DEL PROCESO
Luego de la etapa de induccin, evaluacin de capacidades y anlisis de la situacin actual de los
procesos, corresponde ejecutar el Proceso de mejora en la organizacin participante, tal ejecucin
implica la presentacin, ante la alta direccin, de la propuesta de procesos a mejorar en un primer
ciclo y los procesos que sern mejorados en los prximos ciclos hasta que se logre elevar la
capacidad de todos los procesos al nivel 5.
Para poder llevar a cabo una mejora de procesos en la organizacin, y que esta mejora no
implique un esfuerzo desproporcionado, se debe tomar en cuenta la existencia de prcticas (estn
documentadas o no) para la realizacin de las actividades del negocio, estas prcticas debern ser
comparadas contra lo que propone el modelo de referencia, para luego adaptar lo que propone el
modelo a la realidad de la organizacin participante del proyecto COMPETISOFT. El logro de este
objetivo implica coordinacin estrecha entre los responsables de los procesos de la organizacin,
el equipo de mejora y el practicante COMPETISOFT.

REPRESENTACIN DE LA ARQUITECTURA
La arquitectura utiliza el siguiente conjunto de vistas:
Vista de Casos de Uso: lista los casos de uso o escenarios del modelo de casos de uso que
representen funcionalidades centrales del sistema final, que requieran una gran cobertura
arquitectnica o aquellos que impliquen algn punto especialmente delicado de la arquitectura.
Vista Lgica: describe las partes arquitectnicamente significativas del modelo de diseo, como
ser la descomposicin en capas, subsistemas o paquetes. Una vez presentadas estas unidades
lgicas principales, se profundiza en ellas hasta el nivel que se considere adecuado.
Vista de Procesos: describe la descomposicin del sistema en threads y procesos pesados. Indica
que procesos o grupos de procesos se comunican o interactan entre s y los modos en que estos
se comunican.
Vista de Deployment: describe uno o ms escenarios de distribucin fsica del sistema sobre los
cuales se ejecutar y har el deploy del mismo. Muestra la comunicacin entre los diferentes
nodos que componen los escenarios antes mencionados, as como el mapeo de los elementos de
la Vista de Procesos en dichos nodos.
Vista de Implementacin: describe la estructura general del Modelo de Implementacin y el
mapeo de los subsistemas, paquetes y clases de la Vista Lgica a subsistemas y componentes de
implementacin.
Vista de Datos: describe los elementos principales del Modelo de Datos, brindando un panorama
general de dicho modelo en trminos de tablas, vistas, ndices, etc.







Requerimientos Especiales
Interoperabilidad:
El framework debe soportar la capacidad de inter-operar con sistemas externos a nivel de datos.













MARCO TEORICO CONCEPTUAL
BLUETOOTH
En primer lugar, deberamos definir la tecnologa Bluetooth, ya que es el centro de nuestra
aplicacin.
Bluetooth es una especificacin industrial para Redes Inalmbricas de rea Personal (WPAN
Wireless Personal Area Network), que posibilita la transmisin de datos entre diferentes
dispositivos utilizando el aire como canal. Est diseado para dispositivos donde se necesite un
bajo consumo, una distancia pequea de cobertura, y unos costes reducidos.
Opera en una frecuencia en el rango entre 2.4 y 2.48 Ghz de la banda ISM
(Industrial, Scientific and Medical), la cual est disponible sin licencia a nivel mundial. Para evitar
interferencias con otros protocolos y entre dispositivos, se emplea una tcnica de saltos de
frecuencia de espectro ensanchado, que consiste en dividir la banda en 79 canales (23 en Espaa,
Francia y Japn) de 1Mhz de longitud, y realizar entre estos canales 1600 saltos por segundo.
Las caractersticas originales son:
Separacin de la banda de frecuencia en saltos. En una conexin se va saltando de un canal a otro,
mejorando de esta manera la seguridad.
Piconet3de hasta ocho dispositivos.
La seal puede atravesar incluso paredes.
Los dispositivos no tienen por qu estar uno enfrente del otro, ya que las seales son
omnidireccionales.
Posibilidad de usar aplicaciones sncronas y asncronas:
Enlace asncrono sin conexin (ACL):
Conexiones simtricas o asimtricas multipunto entre maestro y esclavo.
Conexin utilizada para trfico de datos.
Sin garanta de entrega.
Mxima velocidad de envo en una direccin: 721kbps, y de 57.6kbps en la otra.
Enlace sncrono orientado a conexin (SCO):
Conexiones simtricas punto a punto entre maestro y esclavo.
Voz en tiempo real y trfico multimedia.
Velocidad de transmisin: 64kbps.
Segn [Wireless2000], las especificaciones fueron establecidas formalmente en 1998 por el
Bluetooth Special Interest Group (SIG), que fue creado por Ericsson, IBM, Intel, Toshiba y Nokia,
aunque posteriormente se sumaron ms compaas.
Las diferentes versiones de los estndares estn diseadas para mantener la compatibilidad hacia
atrs y, hasta la fecha, son las siguientes:
Bluetooth v1.0 y v1.0B:
Los dispositivos que implementaban esta versin, tenan dificultades para conseguir
compatibilidad hacia otros dispositivos de diferente fabricante.
Utilizacin de canales encriptados.
Bluetooth v1.1: Ratificado como estndar IEEE 802.15.1-2002.
Correccin de erratas en la especificacin v1.0b.
Soporte para canales no encriptados.
Indicador de calidad de seal recibida (RSSI).
Bluetooth v1.2: Es la primera versin compatible con USB 1.1.
Se aadi el Discovery, AFH (Salto de frecuencia adaptable de espectro ensanchado) mejorando
la resistencia a interferencias.
Velocidad de transmisin hasta los 721 kbit/s.
Tipo de enlace para aplicaciones de audio ESCO (Conexiones Sncronas Extendidas), mejorando
la calidad de voz.
Mejoras en el HCI (Host Controller Interface), permitiendo una sincronizacin ms rpida de las
comunicaciones.
Control de flujo y modo de retransmisin L2CAP.
Estndar IEEE 802.15.1-2005.
Bluetooth v2.0:
Incorporacin de la tecnologa EDR (Enhanced data Rate): Incremento de las velocidades hasta
3Mbps de manera ideal.
Reduccin del consumo de energa.
Bluetooth v2.1:
SSP (Secure Simple Pairing) : Conexin inicial entre pares simplificada.
EIR (Respuesta amplia de de Investigacin): Mejor filtrado de los dispositivos a los que
conectarse.
Posibilidad de utilizar otras formas de emparejado: NFC (Near Field Communication)
Reduccin de energa en el modo de bajo consumo.
Bluetooth v3.0 + HS:
AMP (alternate MAC/PHY),
Unicast de datos sin conexin
802.11 Protocol Adaptation Layer (PAL): Transferencia de datos inalmbrica de hasta 24 Mb/s
mediante el protocolo WiFi.
Control de energa mejorado.
Bluetooth v4.0
Alcance mayor (+100m).
Encriptacin AES-128.
Baja latencia (3ms).
Interoperabilidad multi-vendor.
Mejora en el consumo.
Los dispositivos que implementen este protocolo, pueden pertenecer a diferentes clases segn su
potencia y alcance:
Clase 1: 100mW de potencia mxima, cobertura de ~100m.
Clase 2: 2,5 mW de potencia mxima, cobertura de ~10m.
Clase 3: 1 mW de potencia mxima, cobertura de ~1m.
Las aplicaciones deben implementar una serie de perfiles de Bluetooth, es decir, una serie de
interfaces de alto nivel para estandarizar un cierto mbito de aplicacin de la tecnologa. Una
especificacin de un perfil debe cubrir dependencias con otros perfiles, formatos recomendados
para la interfaz con el usuario, y partes concretas de la pila Bluetooth que se utilizan.
ANDROID
Por lo que respecta al sistema operativo que vamos a utilizar, Android, debemos definir sus
conceptos bsicos.
Definicin
Android es una pila de software para dispositivos mviles, la cual incluye sistema operativo,
middleware 4 y aplicaciones clave. El SDK de Android, ofrece las herramientas y APIs necesarias
para comenzar a desarrollar aplicaciones para la plataforma usando el lenguaje de programacin
Java.
Algunas caractersticas del sistema Android son:
Framework de aplicacin basado en la reutilizacin y reemplazo de componentes.
Mquina virtual Dalvik, la cual no es una mquina virtual de Java estrictamente hablando. Est
optimizada para un consumo reducido de memoria y est diseada para ejecutar varias instancias
simultneamente, de manera que es el sistema operativo el que se encarga del aislamiento de
procesos, gestin de memoria e hilos. Aunque las aplicaciones
Android se programen en Java, el cdigo intermedio que interpreta
Dalvik no es bytecode de Java, aunque la herramienta Dx incluida en el SDK permite la conversin
de archivos .class al formato de archivo de Dalvik (.dex).
Navegador integrado, basado en el motor Webkit.
Grficos con libreras propias para 2D , y grficos en 3D basado en la especificacin de OpenGl ES
1.0 (Con aceleracin hardware opcional).
Sistema de gestin de base de datos SQLite.
Soporte multimedia para audio y vdeo en diversos formatos: (MPEG4, H.264, MP3, AAC, AMR,
JPG, PNG, GIF).
Telefona GSM (Dependiente del hardware). Bluetooth, EDGE, 3G, y WIFI(Dependiente del
hardware).
Aunque inicialmente fue desarrollado por Android Inc. (firma comprada por Google en el ao
2005), actualmente est siendo desarrollado por la Open Handset Alliance (Liderada por Google),
un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de
servicio. Est basado en el kernel de Linux, y actualmente la gran mayora del cdigo de Android
est liberado bajo licencia Apache.
Arquitectura
Android est formado por varias capas que facilitan al desarrollador la creacin de aplicaciones. La
distribucin en capas permite acceder a capas ms bajas mediante el uso de libreras, evitando la
programacin a bajo nivel por parte del desarrollador.
Cada una de las capas utiliza elementos de la capa inferior para realizar sus funciones, formando
una pila:
Kernel Linux: El ncleo del sistema operativo Android est basado en el kernel 2.6 de Linux, similar
al que se puede utilizar en distribuciones de Linux, pero con ciertas modificacioens, como
optimizacin para un mayor rendimiento.
El programador no accede al kernel directamente, sino que debe utilizar libreras disponibles en
capas superiores. Se encarga de gestionar los recursos del dispositivo (energa, memoria...) y del
sistema operativo en s (Procesos, comunicacin, red... etc). Tambin estn incluidos los drivers de
los componentes que tenga el dispositivo mvil.
Libreras: Son las bibliotecas nativas de Android. Estn escritas en C/C++ y compiladas para la
arquitectura hardware especfica del dispositivo.
Estn hechas normalmente por el fabricante, el cual se encarga de que estn presentes en el
dispositivo antes de su venta. Las libreras proporcionan funcionalidad a las aplicaciones para
tareas repetidas con frecuencia, evitando tener que codificarlas cada vez y garantizando que se
realicen de manera eficiente.
Entre las libreras incluidas habitualmente se encuentran: OpenGL, bibliotecas multimedia (audio,
video, e imagen),Webkit, SSL, FreeType, SQLite...
Entorno de ejecucin (Runtime): Es una sub-capa formada por libreras.
El componente principal es la mquina virtual Dalvik, ya mencionada anteriormente.
Framework de aplicaciones: Formada por las clases y servicios que utilizan directamente las
aplicaciones para realizar sus funciones. La mayora de los componentes de esta capa son libreras
Java que acceden a recursos de las capas inferiores a travs de Dalvik. Las ms importantes son:
Activity Manager: Se encarga de administrar la pila de actividades de nuestra aplicacin y su ciclo
de vida. Una actividad es lo que equivaldra a una ventana en un sistema operativo convencional
para PC como Windows, o Linux con escritorio grfico (Gnome, KDE, XFCE, LXDE... etc), con la
descripcin del entorno particularidad de ocupar la pantalla entera y ser apilable, pudiendose as
mostrar otras actividades relacionadas (o no) posicionndose encima.
Windows Manager: Se encarga de organizar lo que se mostrar en pantalla.
Bsicamente, crea superficies en la pantalla que posteriormente pasarn a ser utilizadas por las
actividades.
Content Provider: Es la librera que encapsula los datos que se compartirn entre las aplicaciones,
de manera que tiene el control sobre el acceso a la informacin.
Views: Una vista es un elemento bsico del cual parten todos los elementos bsicos que mostrarn
las actividades: Botones, cuadros de texto, listas...
Notification Manager: Engloba los servicios para notificar al usuario cuando algo requiera su
atencin mostrando alertas en la barra de estado.
Esta librera tambin permite la utilizacin de sonidos, activar la vibracin del dispositivo, o utilizar
leds en caso de existir.
Package Manager: Permite obtener informacin sobre los paquetes instalados en el dispositivo
Android, y tambin se encarga de la instalacin de nuevos paquetes. Los paquetes de Android
tienen la extensin .apk, y contienen los binarios .dex y todos los recursos dependientes de
ste.
Telephony Manager: Esta librera permite realizar llamadas o enviar y recibir SMS/MMS, aunque
no puede reemplazar o eliminar la actividad que se muestra cuando una llamada est en curso.
Resource Manager: Permite la gestin de todos los elementos que estn incluidos en la aplicacin
pero fuera del cdigo.
Location Manager: Permite determinar la posicin geogrfica del dispositivo
Android mediante GPS o redes disponibles y trabajar con mapas.
Sensor Manager: Permite manipular los elementos de hardware del telfono tales como
acelermetro, giroscopio, sensor de luminosidad, sensor de campo magntico, brjula, sensor de
presin, sensor de proximidad, sensor de temperatura...
Cmara: Esta librera proporciona la posibilidad de utilizar las cmaras del dispositivo para tomar
fotografas o vdeo.
Multimedia: Permite reproducir y visualizar vdeo, imgenes y audio.
Aplicaciones: Es la capa de ms alto nivel. En ella se incluyen todas las aplicaciones del dispositivo,
tanto las que tienen interfaz grfica de usuario como las que no, las nativas (programadas en
C/C++) y las administradas (En Java). Tambin se encuentra la aplicacin principal del sistema: el
Home o Launcher, que es la que permite ejecutar otras aplicaciones mostrndolas en forma de
lista, y proporcionando al usuario una serie de escritorios donde colocar accesos directos, Widgets
de escritorio...


Arquitectura del sistema Android


Anatoma de las aplicaciones Android
Componentes de una aplicacin
Una aplicacin Android, est compuesta por los siguientes elementos:
Activity (Actividad): Segn su definicin en Android Developers, es un componente de aplicacin
que provee una pantalla sobre la cul el usuario puede interactuar para conseguir un objetivo (por
ejemplo, llamar por telfono, hacer una fotografa, enviar un correo electrnico, ver un mapa...
etctera). Cada actividad proporciona una ventana en la cual dibuja su interfaz de usuario. La
ventana, normalmente se adapta a la totalidad de la pantalla.
Una aplicacin se compone, normalmente, de mltiples actividades interrelacionadas entre ellas.
Lo comn es que exista una actividad principal que se abra en cuanto se ejecute la aplicacin.
Cada Activity puede iniciar otras actividades si la lgica del programa lo requiere. Cada vez que
una actividad se inicia, la anterior Activity se para (pasa al estado stopped visto ms adelante),
pero la preserva dentro de la pila de actividades, por debajo de la nueva. Sin embargo, si el
usuario pulsa el botn atrs del dispositivo Android, la Activity que estaba en pantalla se desapila,
mostrando la que haba anteriormente.

También podría gustarte