Issuu on Google+

1

ACTIVIDAD 10: TRABAJO COLABORATIVO No. 2

TUTOR: MARCO ANTONIO LÓPEZ OSPINA

MATERIA: PROYECTO DE GRADO

ESTUDIANTES: MILEYDI LORENA AVILA ARGUELLO SANDRA MILENA MARTÍNEZ CARLOS ANDRÉS BASTOS JUANA LILIANA MOLANO HERNANDEZ ARBEY MEDINA PARRA

GRUPO: 201014_40

INGENIERÍA DE SISTEMAS

ABRIL DE 2011

2

1. Introducciรณn El propรณsito de este trabajo colaborativo No. 2, es el de desarrollar para el proyecto que hemos seleccionado, los siguientes tรณpicos: el Problema de Investigaciรณn, el Decรกlogo de Bernal y la Factibilidad y Costo.

3

2. Objetivo Fundamentar una propuesta que sirve como base para realizar una investigación afín con la carrera, determinando el problema y viabilidad para solucionarlo a través de una nueva tecnología o tecnología de punta y que vaya permitiendo actualizarse

4

3. Problema de Investigación Antecedentes y Formulación del Problema Actualmente, existen diversos proyectos basados en tecnología Android en el mercado Colombiano, y más aún, lo hay a nivel internacional. Éstos servicios, implantados en diversas empresas dirigidas en diferentes rubros (comerciales, financieros, académicos, etc.), se basan por lo general, en su gran mayoría, en consultas a Bases de Datos, sobre tópicos académicos, sobre negocios, culturales, de entretenimiento, etc., brindándole al cliente la información que necesita en tiempo real, accediendo a ellos, mediante un dispositivo móvil o celular. Ya que en el mercado nacional existe una gran cantidad de usuarios que cuentan con un dispositivo móvil (cantidad que sobrepasa al número de usuarios con línea fija telefónica), es muy cierto también que en la mayoría de casos sólo se le da usos tradicionales: SMS, llamadas telefónicas, Servicio de Directorio y Recordatorio, etc.; desconociendo las diferentes ventajas que poseen los dispositivos celulares que existen en la actualidad, éstos incluye a las empresas, las cuales podrían solucionar sus diversos problemas, más aún, empresas cuyo rubro principal es el comercio o aquellas que realizan transacciones comerciales en tiempo real. El detalle a tener en cuenta es que se está al frente de una tecnología que viene siendo aceptada por los usuarios como una alternativa, confiable, eficiente y barata. De ésta manera, los usuarios necesitan aplicaciones móviles de navegación que genere la información del tráfico en tiempo real, a través de teléfonos celulares inteligentes o Smartphones con GPS. Es de ésta forma, que nos vamos a basar en realizar nuestro proyecto (waze), sobre el desarrollo de aplicaciones para dispositivos móviles sobre la tecnología android para reportar los eventos que dificulten la movilidad sobre cualquier vía del país, con el fin de operar operar como

5

una red social de conductores y pasajeros, Waze ofrece un amplio abanico de beneficios a los integrantes de la comunidad que van desde advertencias de accidentes, incidentes, reparaciones en las vías, alertas en tiempo real, integración con redes sociales como Facebook y Twitter; y hasta la personalización de la aplicación para brindar a todos sus usuarios información de la situación de las vías en el momento en que se necesita y que ofrece la mejor ruta para cualquier destino.

Justificación e Importancia Nuestro caso de estudio propuesto: “Desarrollo de aplicaciones para dispositivos móviles sobre la tecnología android para reportar los eventos que dificulten la movilidad sobre cualquier vía del país (Waze)”, nació con la finalidad de otorgar a cualquier usuario del rubro, rapidez y confiabilidad en las consultas realizadas sobre el estado de las vías, en este caso, desde su punto inicial: Reporte de accidentes. Por ende, permitirá guiar al conductor auditivamente y visualmente en las mejores rutas para los traslados al trabajo o cualquier viaje que desee realizar, mejorando las dificultades de tránsito y movilidad que se presente. A partir de las especificaciones anteriores surgió la idea de construir un sistema de control intuitivo que pudiera ejecutarse desde cualquier terminal móvil con conexión a Internet (teléfono móvil, PDA, Pocket PC, etc.). Dando la posibilidad al usuario de poder recibir informes del estado de las vías del país en forma de consulta directa a la Base de Datos vía su celular, y así, actuar en consecuencia con la minoría de restricciones posible, puesto a que existen ciertas debilidades que en lugar de ayudar a garantizar total seguridad del conductor en el proceso de reporte de alertas de tráfico que requiere, puede generarle atraso, por ejemplo: la pérdida de señal del dispositivo móvil o celular.

6

El proyecto en sí permitirá a los usuarios, mantener mejor confianza, velocidad óptima y resultados eficientes referentes al estado de las vías, y así poder disfrutar mucho a lo largo de su viaje. Esta es una herramienta donde el usuario se encontrará con un mapa dinámico que se va actualizando constantemente por los usuarios mientras conducen con la aplicación abierta en sus teléfonos. Además, cuando dos o más usuarios están conduciendo por una ruta determinada, se puede tener una noción de la situación de la vía en ese momento. La plataforma utiliza dicha información para generar el reporte de las condiciones del tráfico.

A. Planteamiento del Problema El problema principal y base de esta investigación es: ¿Se puede brindar una solución a través del desarrollo de un software implementado en un dispositivo móvil en el que se puedan reportar los eventos que dificulten la movilidad sobre cualquier vía, de tal forma que permita a otros conductores tomar decisiones y poder optimizar el tiempo de recorrido entre dos trayectos?

B. Propósito de la Investigación Crear una solución de software, utilizando lenguaje JAVA, sobre el sistema operativo ANDROID para dispositivos móviles, para el registro, almacenamiento, administración y distribución de eventos que afecten la movilidad sobre cualquier vía o carretera del país

7

C. Preguntas de Investigación ¿Qué es? Es una solución de software, utilizando lenguaje JAVA, sobre el sistema operativo ANDROID para dispositivos móviles, para el registro, almacenamiento, administración y distribución de eventos que afecten la movilidad sobre cualquier vía o carretera del país. Android, más que un sistema operativo, representa toda una pila de software para dispositivos móviles que incluye gran cantidad de drivers, gestor de bases de datos, una completa framework de aplicaciones, y numerosas aplicaciones de usuario. Android está basado en el núcleo de Linux y todas sus aplicaciones se escriben en lenguaje Java, disponiendo además de una máquina virtual específica llamada Dalvik.

¿Para qué sirve? Consiste en una aplicación móvil gratuita a través de teléfonos inteligentes como iPhone, Blackberry, Nokia, Samsumg, o cualquier otro dispositivo móvil que tengan sistema de navegación GPS, que busca facilitar cada vez más una realidad que ofrece al usuario, en un mismo y reducido aparato, funciones de comunicación y procesamiento de datos que van mucho más allá de las de las simples llamadas telefónicas o la ejecución de aplicaciones básicas con el fin que los usuarios realicen sus reportes y alertas de tráfico en tiempo real, y así tener a la mano información precisa del tráfico, accidentes, daños en la vía y obras, entre otros problemas de movilidad.

8

Características Busca el desarrollo rápido de aplicaciones, que sean reutilizables y verdaderamente portables entre diferentes dispositivos. 

Los componentes básicos de las aplicaciones se pueden sustituir fácilmente por otros.

Cuenta con su propia máquina virtual, Dalvik, que interpreta y ejecuta código escrito en Java.

Permite la representación de gráficos 2D y 3D.

Posibilita el uso de bases de datos.

Soporta un elevado número de formatos multimedia.

Servicio de localización GSM.

Controla los diferentes elementos hardware: Bluetooth, Wi-Fi, cámara fotográfica o de vídeo, GPS, acelerómetro, infrarrojos, etc., siempre y cuando el dispositivo móvil lo contemple.

Cuenta con un entorno de desarrollo muy cuidado mediante un SDK disponible de forma gratuita.

Ofrece un plug-in para uno de los entornos de desarrollo más populares, Eclipse, y un emulador integrado para ejecutar las aplicaciones.

Ventajas 

Accesibilidad. Permite la búsqueda, selección y procesamiento de la información, la colaboración y la construcción del conocimiento acerca del estado de las vías o carreteras del país.

9

Conectividad. Facilitar la unión de dos o más dispositivos, el acceso y uso de internet, intercambio de información y trabajo colaborativo. Favorece la comunicación, la creación de redes sociales, con el fin de estar mejor informados sobre algún problema de movilidad presentado en las carreteras.

Funcionalidad. La capacidad de procesamiento de datos facilita la recopilación de la información en cualquier contexto.

D. Definición de Términos Android: Es un conjunto de herramientas y aplicaciones vinculadas a una distribución Linux para dispositivos móviles. Por sí solo no es un sistema operativo. (Alegsa, 2011) Java: Es un lenguaje de programación y la primera plataforma informática creada por Sun Microsystems en 1995. Es la tecnología subyacente que permite el uso de programas punteros, como herramientas, juegos y aplicaciones de negocios. Java se ejecuta en más de 850 millones de ordenadores personales de todo el mundo y en miles de millones de dispositivos, como dispositivos móviles y aparatos de televisión. (Desarrolloweb, 2001) GPS: (Global Positioning System - Sistema de Posicionamiento Global). Se trata de un sistema global de navegación por satélite (GNSS) que permite localizar con precisión un dispositivo GPS en cualquier lugar del mundo.

10

El sistema es desarrollado y actualmente operado por el Departamento de Defensa de EE.UU. Está compuesto por veinticuatro satélites (21 operativos y 3 de respaldo) que están en órbita a unos 20.200 km de la Tierra con trayectorias sincronizadas para cubrir toda la superficie terrestre. (Alegsa, 2011)

Dispositivos móviles No existe un consenso claro a la hora de definir qué es realmente un dispositivo móvil y qué no lo es. Es frecuente que hoy en día este término se utilice para designar únicamente a ciertos modelos de teléfonos móviles con mayores o menores prestaciones. A pesar de ello, un dispositivo móvil no tiene por qué ceñirse solamente al ámbito telefónico. Buscando ser más rigurosos, se podría denominar dispositivo móvil a todo aparato electrónico que cumple unas características muy básicas: - Es de reducido tamaño, haciéndolo fácil de transportar. - Cuenta con una cierta capacidad de computación y almacenamiento de datos. - Incorpora elementos de E/S básicos (por lo general, pantalla y/o algún tipo de teclado). Más allá de estas características comunes, los dispositivos móviles forman en la actualidad un grupo sumamente heterogéneo y pueden incorporar casi cualquier componente de hardware y software que amplía y diversifica su función inicial. El más frecuente sin duda es la conexión telefónica (incluyendo servicios como el envío de SMS, MMS, y acceso WAP) o la conexión a Internet. Igualmente es habituales la cámara fotográfica y de vídeo, pantalla táctil, teclado QWERTY, receptor de radio, Bluetooth, conexión mediante infrarrojos, dispositivos de memoria extraíbles, localizador GPS, acelerómetro, etc. Desde el punto de vista del software, pueden incorporar

11

también un amplio abanico de aplicaciones tales como programas ofimáticos, reproductores de audio y vídeo, organizadores, videojuegos, navegadores web o clientes de correo, entre otros.

4. Decálogo de Bernal Integrantes

Código

Mileydi Lorena Ávila Arguello

1053684040

Sandra Milena Martínez

24716689

Carlos Andrés Bastos

94559555

Juana Liliana Molano Hernández

46384554

Arbey Medina Parra

94449532

Concepto

Descripción Todo inicia a partir del auge de las telecomunicaciones, El software en dispositivos móviles ha tenido su auge a medida que los usuarios

Cronología (Cuándo)

se han interconectado aun más a la Word Wide Web, y al adquirir hardware de cuarta y quinta generación. La grandes empresas de telecomunicaciones y multinacionales como Google han sido las pioneras en el ofrecimiento de aplicativos

Axiomas (Quién)

para sistemas móviles. Nosotros seremos los desarrolladores de este aplicativo para Colombia. Toma de requerimientos, (Análisis) , presentar un propuesta

Método (Cómo)

documentada sobre el software para dispositivo móvil elaborado sobre el S.O Android (Diseño), elegir la plataforma en la cual se va

12

Concepto

Descripción a programar el Software JAVA (Programación) Crear una solución de software, utilizando lenguaje JAVA, sobre el sistema operativo ANDROID para dispositivos móviles, para el

Ontología (Qué)

registro, almacenamiento, administración y distribución de eventos que afecten la movilidad sobre cualquier vía o carretera del país Hardware: -

Tecnología (Con qué)

Dispositivos móviles con Sistema Operativo Android

Software: -

Lenguaje Java

Para brindar una solución a través del desarrollo de un software implementado en un dispositivo móvil en el que se puedan reportar Teleología (Para qué)

los eventos que dificulten la movilidad sobre cualquier vía, de tal forma que permita a otros conductores tomar decisiones y poder optimizar el tiempo de recorrido entre dos trayectos

Topografía (Dónde)

El proyecto se desarrollara desde La Dorada Caldas, Tunja y Cali Actualmente este proyecto no influye físicamente con el medio ambiente ya que su desarrollo es Intangible "No hay contaminación ", Mas sin embargo está ligado al uso de Frecuencias por el uso del

Ecología (Contra qué)

GPS "ADMINISTRACIÓN Y CONTROL DEL ESPECTRO ELECTROMAGNÉTICO SE ENCUENTRAN DETERMINADAS POR EL ARTICULO 19 DEL DECRETO LEY 1900 DE 1.990" ya que habría aumento de frecuencias debido al aumento de la

13

Concepto

Descripción demanda de interconexión. Porque esta herramienta permitiría que el usuario a través de un mapa dinámico que se va actualizando constantemente por los

Etiología (Porqué)

usuarios mientras conducen saber el estado de tráfico y vías en el país.

A medida del desarrollo del proyecto se hará la cuantificación y la Experiencia (Cuánto)

cualificación del impacto que este obtuvo según los objetivos planteados al inicio

5. Factibilidad y Costo

Entre los distintos métodos de estimación de costes de desarrollo de software, el modelo COCOMO (COnstructive COst MOdel) desarrollado por Barry M. Boehm, se engloba en el grupo de los modelos algorítmicos que tratan de establecer una relación matemática la cual permite estimar el esfuerzo y tiempo requerido para desarrollar un producto.

Por un lado COCOMO define tres modos de desarrollo o tipos de proyectos:

Orgánico: proyectos relativamente sencillos, menores de 50 KDLC líneas de código, en los cuales se tiene experiencia de proyectos similares y se encuentran en entornos estables.

14

Semi-acoplado: proyectos intermedios en complejidad y tamaño (menores de 300 KDLC), donde la experiencia en este tipo de proyectos es variable, y las restricciones intermedias.

Empotrado: proyectos bastante complejos, en los que apenas se tiene experiencia y se engloban en un entorno de gran innovación técnica. Además se trabaja con unos requisitos muy restrictivos y de gran volatilidad.

Y por otro lado existen diferentes modelos que define COCOMO:

Modelo básico: Se basa exclusivamente en el tamaño expresado en LDC.

Modelo intermedio: Además del tamaño del programa incluye un conjunto de medidas subjetivas llamadas conductores de costes.

Modelo avanzado: Incluye todo lo del modelo intermedio además del impacto de cada conductor de coste en las distintas fases de desarrollo. (Wikipedia, 2011)

Para nuestro caso el modelo intermedio será el que usaremos, dado que realiza las estimaciones con bastante precisión.

Así pues las fórmulas serán las siguientes:

E = Esfuerzo = a KLDC e * FAE (persona x mes)

T = Tiempo de duración del desarrollo = c Esfuerzo d (meses)

P= Personal = E/T (personas)

Para calcular el Esfuerzo, necesitaremos hallar la variable KDLC (Kilo-líneas de código), que para nuestro caso hemos lo hemos estimado en= 8,363 KDLC

15

Así pues, en nuestro caso el tipo orgánico será el más apropiado ya que el número de líneas de código no supera los 50 KLDC, y además el proyecto no es muy complejo, por consiguiente, los coeficientes que usaremos serán las siguientes:

PROYECTO SOFTWARE

a

e

c

d

Orgánico

3,2

1,05

2,5

0,38

Semi-acoplado

3,0

1,12

2,5

0,35

Empotrado

2,8

1,20

2,5

0,32

Y por otro lado también hemos de hallar la variable FAE, la cual se obtiene mediante la multiplicación de los valores evaluados en los diferentes 15 conductores de coste que se observan en la siguiente tabla:

16

CONDUCTORES DE COSTO

VALORACIÓN

Muy

Bajo

Nominal

Alto

bajo

Muy

Extr.

alto

alto

Fiabilidad requerida del software

0,75

0,88

1.00

1,15

1,40

-

Tamaño de la base de datos

-

0,94

1.00

1,08

1,16

-

Complejidad del producto

0,70

0,85

1.00

1,15

1,30

1,65

Restricciones del tiempo de ejecución

-

-

1.00

1,11

1,30

1,66

Restricciones del almacenamiento principal -

-

1.00

1,06

1,21

1,56

Volatilidad de la máquina virtual

0,87

1.00

1,15

1,30

-

Tiempo de respuesta del Dispositivo Móvil -

0,87

1.00

1,07

1,15

-

Capacidad del analista

1,46

1,19

1.00

0,86

0,71

-

Experiencia en la aplicación

1,29

1,13

1.00

0,91

0,82

-

Capacidad de los programadores

1,42

1,17

1.00

0,86

0,70

-

Experiencia en S.O. utilizado

1,21

1,10

1.00

0,90

-

-

Experiencia en el lenguaje de programación 1,14

1,07

1.00

0,95

-

-

Prácticas de programación modernas

1,24

1,10

1.00

0,91

0,82

-

Utilización de herramientas software

1,24

1,10

1.00

0,91

0,83

-

Limitaciones de planificación del proyecto

1,23

1,08

1.00

1,04

1,10

-

-

17

FAE=1,15*1,00*0,85*1,11*1,00*1,00*1,07*0,86*0,82*0,70*1,00*0,95*1,00*0,91*1,08 = 0,53508480 Justificación de los valores: Atributos de software 

Fiabilidad requerida del software: Si se produce un fallo en el sistema de comunicaciones satelital (GPS) puede ocasionar grandes pérdidas a la empresa (Valoración Alta).

Tamaño de la base de datos: La base de datos de nuestro producto será de tipo estándar (Valoración Nominal).

Complejidad del producto: La aplicación no va a realizar cálculos complejos (Valoración Baja).

Atributos de hardware 

Restricciones del tiempo de ejecución: En los requerimientos se exige alto rendimiento (Valoración Alta).

Restricciones del almacenamiento principal: No hay restricciones al respecto (Valoración Nominal).

Volatilidad de la máquina virtual: Se usarán sistemas de la “Familia Android” (Valoración Nominal).

Tiempo de respuesta del Dispositivo Móvil: Deberá ser interactivo con el usuario (Valoración Alta).

18

Atributos del personal 

Capacidad del analista: Capacidad alta relativamente, debido a la experiencia en análisis en proyecto similar (Valoración Alta)

Experiencia en la aplicación: Se tiene cierta experiencia en aplicaciones de esta envergadura (Valoración muy alta).

Capacidad de los programadores: Teóricamente deberá tenerse una capacidad muy alta por la experiencia en anteriores proyectos similares (Valoración muy alta).

Experiencia en S.O. utilizado: Con Android (Valoración Nominal).

Experiencia en el lenguaje de programación: Es relativamente alta, dado que se controlan las nociones básicas y las propias del proyecto (Valoración Alta).

Atributos del proyecto 

Prácticas de programación modernas: Se usarán prácticas de programación mayormente convencional (Valoración Nominal).

Utilización de herramientas software: Se usarán herramientas estándar que no exigirán apenas formación, de las cuales se tiene cierta experiencia (Valoración Alta).

Limitaciones de planificación del proyecto: Existen pocos límites de planificación. (Valoración Baja).

Cálculo del esfuerzo del desarrollo: E = a KLDC e * FAE = 3,2 * (8.363)^1,05 * 0,53508480 = 15,91 personas /mes Cálculo tiempo de desarrollo: T = c Esfuerzo d = 2,5 * (15,91)^0,38 = 7,15 meses

19

Productividad: PR = LDC/Esfuerzo = 8363/15,91 = 525 ,64 LDC/personas mes Personal promedio: P = E/T = 15,91/7,15 = 2,22 personas

Según estas cifras será necesario un equipo de 3 personas trabajando alrededor de 7 meses, pero puesto que el desarrollo del proyecto debe realizarse en un plazo 3 meses, incrementaremos a 5 personas el número de personas del equipo de proyecto (ya que 15,91/3 nos da alrededor de este resultado). Así pues tendremos un equipo formado por 1 Jefe de proyecto, 1 Analistas, 2 programadores y 1 Responsable de calidad.

20

6. Conclusiones 

Antes comenzar una investigación se debe elegir el problema que se desea estudiar. Muchos autores afirman que se debe elegir el tema a estudiar, pero esto no es así, pues no se estudia un tema, se estudia un problema que puede estar dentro de un tema.

El Dr. Víctor Bernal, propone que para realizar cualquier trabajo de investigación tengamos en cuenta 10 puntos básicos que veremos a continuación. En sí, es una guía de los aspectos fundamentales a estudiar. De la correcta utilización y seguimiento dependerá la profundidad y el alcance del trabajo.

Para la estimación de factibilidad y costo se utilizó el Modelo Constructivo de Costes (Constructive Cost Model) fue desarrollado por B. W. Boehm a finales de los 70 y comienzos de los 80, exponiéndolo detalladamente en su libro "Software Engineering Economics" (Prentice-Hall, 1981). COCOMO es una jerarquía de modelos de estimación de costes software que incluye submodelos básico, intermedio y detallado.

21

7. BibliografĂ­a

Alegsa. (23 de 2 de 2011). ALEGSA.com.ar. Recuperado el 10 de 4 de 2010, de http://www.alegsa.com.ar/Dic/android.php Desarrolloweb. (18 de 7 de 2001). Desarrolloweb.com. Recuperado el 9 de 4 de 2010, de http://www.desarrolloweb.com/articulos/497.php Wikipedia. (24 de 3 de 2011). Wikipedia la enciclopedia libre. Recuperado el 24 de 4 de 2011, de http://es.wikipedia.org/wiki/COCOMO


ACTIVIDAD 10: TRABAJO COLABORATIVO No. 2