SlideShare una empresa de Scribd logo
1 de 113
Descargar para leer sin conexión
1
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO
SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
Juan Camilo Giraldo Hernández, juancamiloh7@gmail.com
Daniel Alexander Lopez Chaux, a.alexander718@hotmail.com
Proyecto final Ingeniería de Software II
Docente: Luis Carlos Ospina Tobón, estudiante Maestría
Institución Universitaria Antonio José Camacho
Facultad de Ingenierías
Ingeniería de Sistemas
Cali - Colombia
2020
Tabla de contenido
2
Descripción del problemaa resolver....................................................................................... 5
Posible solución para la resolverel problema......................................................................... 7
StakeHolders ..........................................................................................................................8
Requerimientos
Requerimientos funcionales .....................................................................................19
Requerimientos no funcionales ................................................................................22
Estimación por puntos de caso de uso................................................................................... 25
Metodología para implementar............................................................................................. 31
Arquitectura para utilizar...................................................................................................... 41
Diagrama de Despliegue....................................................................................................... 44
Patrones de diseñoa utilizar.................................................................................................. 45
Diagrama de Componentes................................................................................................... 48
Administración de configuración…………………………………………………………...48
Pruebas de software…………………………………………………………………………69
Estándares de documentación……………………………………………………………….83
Tipos de mantenimiento de software a
aplicar en el desarrollo de software…………………………………………………91
Referencias…………………………………………………………………………………106
Anexos……………………………………………………………………………………...108
Lista de tablas
3
Tabla 1 Contextualización Stakeholders……………………………………………………………..8
Tabla 2 Definición conceptual Stakeholders Pt. 1……………………………………………………8
Tabla 2 Definición conceptual Stakeholders Pt. 2…………………………………………………..13
Tabla 4 Contador actores e identificación su complejidad………………………………………….25
Tabla 5 Contador de casos de uso e identificación su complejidad………………………………...26
Tabla 6 Calculo los PCUs no ajustados…………………………………………………………….26
Tabla 7 Determinación factores de complejidad técnicos…………………………………………..26
Tabla 8 Determinación factores de complejidad ambiental………………………………………...29
Tabla 9 Análisis y estimación de esfuerzo………………………………………………………….30
Tabla 10 Funciones y determinaciones
finales de la distribución porcentual del tiempo
de esfuerzo en cada una de las etapas del proyecto……………………………………….30
Lista de figuras
4
Figura 1. Etapas de la metodología para el desarrollo de aplicaciones móviles ………………….32
Figura 2. Posibles diagramas para el desarrollo de aplicaciones ………………………………….35
Figura 3. Diagrama de espina de pescado básico………………………………………………….39
Figura 4. Diagrama de despliegue, funcionamiento del backend Miconcejo……………………...44
Figura 5. Diagrama de componentes,
funcionamiento de la parte de software de Mi concejo…………………………………47
Figuras 6. Previa interfaz login App ……………………………………………………………....48
Figuras 7. Creación repositorio local y remoto ………………………………………………..49-53
Figuras 8. Configuración repositorio…………………………………………………………..54-58
Figuras 9. Versionado proyecto ……………………………………………………………….59-60
Figuras 10. Ilustraciones repositorio en la nube ……………………………………………….61-65
Figura 11. Fases centrales cleanroom……………………………………………………………...72
Figura 12. Tipos de pruebas ………………………………………………………………………75
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
5
Descripción del problema a resolver
A nivel internacional se han encontrado varias páginas en Internet que tratan de
algunas aplicaciones o software que son comercializados en países como México y España,
en estos programas se tienen en cuenta varios aspectos como Jurisprudencia, Leyes y el
manejo de los mismos procesos, en realidad son muy completos y ya son comercializados en
estos países, al parecer han tenido u gran éxito.
En Colombia, la Rama Ejecutiva posee un sistema de información para la gestión
administrativa el cual le permite mantener controlado el flujo de información de parte del
presidente de la república, ministros, los directivos de los Dpto administrativos,
superintendentes, Senado, Cámara de representantes, Asambleas departamentales y concejos
municipales. Hasta el momento este sistema ha funcionado, pero con algunos vacíos tanto en
la parte ejecutiva como al nivel de tecnología, de tal forma que algunas entidades privadasy
estatales han generado su propio sistema de gestión con bases de datos, pero estas se crean
únicamente para el uso exclusivo de estas entidades.
Existen compañías nacionales que también han desarrollado este tipo de software,
tales como Emprex web, Orión jurídica y SGP, estos son comercializados, pero todos están
licenciados y los costos son altísimos ya que las empresas tendrían que pagar por el costo de
las licencias para el manejo de los motores de bases de datos, esto limita a un gran número
de usuarios, ignorando completamente a las personas del común que quieran obtener esta
información.
En el Concejo municipal de la ciudad de Santiago de Cali a diario se maneja un gran
flujo de información del cual se derivan las diferentes labores, dicha información no es
debidamente organizada por lo cual se pierde veracidad, aumentan los tiempos de respuesta
y se extravían documentos lo cual conlleva a la pérdida de diligencias que se programan en
cada uno de los procesos ejecutiva y como última consecuencia la pérdida de dinero, lo que
ha hecho que muchos ciudadanos y medios de comunicación (La sociedad en general)
comienzan a alejarse de esta administración pública, desconociendo así sus derechos a
mantenerse informados de lo que pasa en la ciudad, además de generar conflictos sociales
debido a la información verídica o no, que sale de la misma, generando así por medio de
redes sociales las muy famosas “Fake news”, que ha logrado desinforma a una gran cantidad
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
6
de personas, así mismo creando movimientos o bloques sociales de desinformación. La falta
de un sistema de información eficiente hace que los procesos se vuelvan más lentos,
dispendiosos y se tenga que recurrir a métodos manuales, como por ejemplo listados hechos
a mano o en el mejor de los casos recurren al uso de programas que no son los más adecuados
para el manejo de información vital en esta administración pública, ya que en estos
aplicativos suelen manejar términos jurídicos y se genera contrariedad entre una información
y otra, es el caso de revistas, paginas especializadas, periódicos, noticieros, programas de tv
y radio, en el que suelen usar varias formatos informativos y conceptuales para almacenarla
misma información, es decir existe redundancia de información y muchas veces no es la
misma información entre un medio y otro referente a un mismo caso.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
7
Posible solución para la resolver el problema.
Por lo que nos hemos propuesto desarrollar una app que le permita a los ciudadanos
del común o experto en temas de política local, informarse de manera eficaz, eficiente y
efectiva, con información verídica, clara, breve, actualizada y oportuna, lo que le permitirá a
los usuarios obtener la capacidad para criticar y entender mejor a la sociedad, además, el
simple hecho de estar indagando acerca de sucesos relevantes en nuestra comunidad,
fortalece la democracia representativa y participativa, lo que aporta directamente a la mejoría
de la gobernabilidad. Es decir, que estar informado, es fundamental para la democracia
porque facilita el ejercicio activo de la ciudadanía.
La app tiene como objetivo el promover la participación de los ciudadanos de Cali en
las decisiones que se toman en el Concejo, la idea está centrada en ofrecer una información
constante y transparente acerca de lo que sucede en las plenarias del Concejo e información
sobre los concejales, así como de su asistencia, votación y de los proyectos y proposiciones
en curso.
Una vez el ciudadano se registra a través de su correo electrónico o de su cuenta de
Facebook o Twitter, la app le permitirá consultar:
● Las principales noticias que se producen en el Concejo.
● El listado de concejales que incluye foto, perfil, partido político, información de
contacto, redes sociales y un historial de voto, así como el registro de los trinos
publicados en su cuenta de Twitter.
● El ciudadano podrá escoger su concejal preferido y hacer seguimiento a su trabajo.
● La Agenda actualizada de las actividades administrativas en el concejo.
● La ubicación física de los concejales, es decir el mapa de las Curules donde ubican
en la plenaria.
● Streaming: Los ciudadanos no sólo podrán ver las plenarias en vivo sino revisar el
archivo de estas.
● Además, cada usuario tendrá acceso directo a la cuenta de Twitter @ConcejoCali
donde se registra la actividad de los concejales y de la institución mediante videos,
audios y seguimiento minuto a minuto de las plenarias.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
8
StakeHolders
Tabla 1
Contextualización Stakeholders
Esta sección presenta una lista de los stakeholders involucrados en el proyecto. Para cada uno de ellos, se deben listar
los concerns que van a ser tenidos en cuenta en el documento de arquitectura. Esta información se presenta en forma de
matriz, donde las filas representan los stakeholders y las columnas los concerns. Cada celda determina el grado de
relevancia del concern para el stakeholder (Tabla 2). Finalmente, basados en los concerns relevantes a cada stakeholder
se dermina los puntos de vista que se le presentarán.
El standard ANSI/IEEE 1471-2000 propone que al menos los siguientes stakeholders sean considerados: usuarios,
clientes, desarrolladores y administradores.
● Customer
● Application software developers
● Infrastructure software
developers
● End users
● Application system engineers
● Application hardware engineers
● Project manager
● Communications engineers
● Chief Engineer/Chief Scientist
● Program management
● System and software integration
and test engineers
● Safety engineers and certifiers
● External organizations
● Operational system managers
● Trainers
● Maintainers
● Auditors
● Security engineers and certifiers
Tabla 2
Definición conceptual Stakeholders Pt. 1
Stakeholder Descripción
Sociedad Hoy en día la tecnología ha tenido un impacto que ha
afectado positiva y negativamente en nuestra sociedad,
pero es algo indispensable para todos. ... El desarrollo
tecnológico, a fin de cuentas, es el motor fundamental del
progreso en nuestra sociedad y este dependerá siempre
del uso y manipulación que brindemos, digamos que la
importancia del Software para la sociedad, radica en el
uso que las personas le den, no se trata solamente de
traer juegos nuevos en un dispositivo de 1000 dólares,
hablamos de optimizar tareas, incrementar ganancias,
aumentar ingresos, optimizar tiempos, hacer la vida más
fácil, gracias a que el software hoy en día nos permite
hacer infinidad de cosas.
Consumidores En muchos de los casos de innovación queda claro que las
empresas, antes de pensar en nuevos productos, deben
pensar en las necesidades de los consumidores. Esa es la
fuente de la innovación. Estudiar, entender y prever las
tendencias del consumidor hacen que el margen de error
allanzarun nuevo producto disminuya. Pero también hay
que mezclar creatividad y modelo de gestión, en nuestro
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
9
caso estamos manejando una app que busca acercar al
ciudadano común y corriente, a los entes de
administración gubernamental, entonces si logramos
conocer la conducta del consumidor mejora la posición
de la app.
Usuarios finales El producir un bien o suministrar un servicio de primera
calidad (en nuestro caso una app) requiere cumplir con
las expectativas del Usuario final. Sin duda, gran partede
las empresas, han comprendido que el tener una política
de calidad, que responda a la mejora continua y la plena
satisfacción del cliente, es de gran ayuda para la
consecución de esta última esencia. Es más, el desarrollo
de una aplicación informática ha de estar claramente
ligado a una interacción con el usuario final. El mantener
viva la relación con los usuarios finales del producto o
servicio, mediante un contacto habitual, es de suma
ayuda para poder identificar las necesidades del mercado
actual.
Es lógico pensar que el correcto diseño de unaaplicación
que facilite su utilización incrementa la productividad del
trabajo diario del usuario y minimiza, entre otros, el
tiempo dedicado a comprender la complejidad del
programa.
Administraciones públicas Las administraciones públicas están en plena
transformación. La evolución de los sistemas
democráticos pasa por abrir las puertas de las
instituciones públicas para conocer las agendas de los
responsables públicos y contar con la colaboración
ciudadana.
En la primera década de siglo XXI comenzó a implantarse
la digitalización en las distintas administraciones
públicas. Hoy en día es una realidad que permite a los
ciudadanos realizar sus trámites burocráticos conmayor
facilidad y eficacia. Sin embargo, la e-administración es
una modernización del sistema donde el ciudadano se
convierte en cliente de los servicios públicos, que, gracias
a la tecnología, han mejorado mucho pero que en la
actualidad no es suficiente.
Siendo estas nuestro principal eje temático, teniendo
como objetivo promover la participación de los
ciudadanos en Cali en las decisiones que se toman en el
Concejo municipal, basándonos en la idea de ofrecer una
información constante y transparente acerca de lo que
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
10
sucede en las plenarias del concejo e información sobre
los senadores, así como de su asistencia, votación y de los
proyectos de ley en curso.
Medios de comunicación Diseñar publicaciones impresas ha sido históricamente
uno de los principales trabajos de muchos estudios de
diseño gráfico. Aquel casi obsoleto hoy formato busca un
buen reemplazo en el mundo digital.
No es difícil darse cuenta de la influencia que los
dispositivos móviles tienen hoy en día. Los teléfonos
inteligentes y las tabletas se utilizan en todas partes, todo
el tiempo, a punto tal que nos volvemos cada vez más
dependientes de la tecnología móvil. Una aplicación
móvil permite al público acceder a la información donde
quieran que esté, siempre que lo desee. Los usuarios
obtienen el beneficio de un acceso directo a publicaciones
previas, así como características inimaginables en
medios impresos. Por ejemplo: el uso de redes sociales y
el consumo de contenido multimedia interactivo, o el
consumo de pistas de audio con podcasts. música y otros
documentos sonoros. La combinación de estas
características interactivas puede ofrecer nuevos modos
de relación entre editoriales y lectores, y a la vez
proporcionar una experiencia de usuario única.
El dato más importante es la posibilidad de publicar sin
generar un costes y esfuerzo extra, aprovechando las
distintas plataformas de publicación.
Desarrolladores de la
aplicación de software
Los desarrolladores de la aplicación de software
desarrollaran, crearan y modificaran la aplicación
informática de software general, analizando las
necesidades del usuario y desarrollando soluciones de
software, diseñando o personalizando el software para el
uso del consumidor con el objetivo de optimizar la
eficiencia operativa; pueden analizar y diseñar las bases
de datos dentro de un área de aplicación, trabajando
individualmente o coordinando el desarrollo de la base
de datos como parte de un equipo.
La importancia del desarrollador de software radica en la
eficacia de la app que realizó al momento de ejecutar las
tareas por las cuales se programó.
En pocas palabras que el software sea útil y cumpla para
lo que fue hecho.
Director de proyecto El director de proyecto será la persona a la cual se le será
asignada la tarea de liderar un equipo con la función de
conseguir unos objetivos planteados en el desarrollo de
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
11
la planeación teniendo la responsabilidad total del
planeamiento y ejecución del proyecto.
Para poder conseguir sus objetivos, el director de
proyectos debe tener una serie de características. Debe
ser una persona organizada, apasionada y orientada a las
metas cuya principal habilidad sea la capacidad de
reconocer los riesgos que afectan al éxito del proyecto,
por lo que debe realizar constantes mediciones de
factores internos o externos que puedan suponer fuentes
de riesgo.
El director de proyectos no solo dirige al equipo
multidisciplinar de la empresa y app, sino que también da
una serie de pautas al cliente para que le proporcione
toda la documentación necesaria. No hay que olvidar que
en muchos casos el cuello de botella se encuentra en
nuestro propio cliente, que bien por falta de tiempo o por
interés no proporciona los datos necesarios.
Ingenieros de
telecomunicaciones
El ingeniero de telecomunicaciones se encargará de
administrar, crear, diseñar y gestionar sistemas en
tecnología de la información y las telecomunicaciones
además de brindarnos soluciones técnicas a problemas
en la transmisión y recepción de señales y la
interconexión de redes que pueda tener la app, dando
Convergencia a los servicios en redes de la misma;
Administrando, gestionando y bridando seguridad de
redes, programación, antenas y servicios de telefonía
relacionados a los diversas funciones conceptuales de la
app.
Permitiéndonos ser autodidactas y proactivos para
mantenernos actualizados, resolviendo los problemas
técnicos de señales y redes con el mayor caudal de
información posible, además para lo que es la adecuación
y también la coordinación del montaje respectivo y de la
correspondiente buena funcionalidad. De igual forma
hace la relación entre la electrónica y la información con
la finalidad de sustentar los proyectos referidos a la
Telemática.
Jefe de ingenieros El jefe de ingenieros es el responsable de realizar
estudios, desarrollar y supervisar programas destinados
a la optimización en el uso de equipos, recursos humanos,
tecnología, materiales y procedimientos para
incrementar la eficiencia y la productividad de la
realización de la app.
El Jefe de Ingeniería revisa y estudia las propuestas de
trabajo y los subcontratos. Crean los horarios de trabajo
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
12
para cumplir con los plazos establecidos para el proyecto.
También pueden diseñar y analizar los equipos usados en
el diseño, planeación y escrituración de software.
De igual forma, el trabajo de un Jefe de Ingeniería consiste
en la organización de los diversos grupos de personas y
el cumplimiento de las restricciones presupuestarias y de
tiempo.
Igualmente, este tipo de profesionales hacen el manejo
del personal para todas las fases del proyecto, incluyendo
la contratación, la asignación de los trabajos de otros
ingenieros y técnicos y revisan que el sitio de trabajo
tenga los materiales y equipos adecuados.
Gestión del proyecto La gestión del proyecto se basa en la disciplina de
administrar el control de proyecto, cuyo objeto de
estudio abarca la planificación, organización, motivación
y el control de los recursos necesarios para alcanzar un
fin determinado de antemano, o sea, cumplir con un
objetivo de la app, proyecto.
Los proyectos son independientes de la actividad diaria
empresarial, por lo que se requiere que se organicen una
serie de reuniones para ver cuáles son los objetivos
específicos del proyecto. Para que el proyecto tenga éxito
es esencial que se realice un trabajo en equipo eficiente.
La manera en la que la gestión de proyectos dirigirá el
trabajo depende de varios factores, entre ellos: la
escalabilidad (la posibilidad de que el proyecto crezca), la
importancia y la complejidad de las tareas.
La gestión del proyecto está esencialmente dirigida a
conseguir los objetivos preestablecidos para
proporcionar un beneficio a la organización. Los
objetivos pueden expresarse en términos de: resultados
consecuencias; beneficios u objetivos estratégicos.
Probadores de software Los probadores de software planificaran y llevara a cabo
pruebas de software de los ordenadores para comprobar
si funcionan correctamente. Identifican el riesgo de sufrir
errores la aplicación, detectando errores y los
comunican. Evalúan el funcionamiento general del
software y sugieren formas de mejorarlo.
Entre sus competencias está Construir el plan de testing;
diseñar casos de prueba; gestionar los ambientes de
prueba; generar los datos de prueba; ejecutar y
documentar pruebas, reportando y siguiendo los
incidentes encontrados, usando las herramientas
apropiadas de acuerdo con los estándares de trabajo de
donde se desempeñe.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
13
Lo principal es Asegurar que el software o pieza de
software funcione de acuerdo con los requisitos; trabaje
con sus interfaces de la forma esperada, detectando en
forma temprana defectos y evitando su propagación y
llegada al cliente (interno o externo).
Ingenieros de seguridad El ingeniero en seguridad informática se encargará de
establecer la misión de seguridad informática de la
organización y app, definir la política y procesos que
permitan el respaldo de la información, definir
mecanismos y herramientas para velar por el
cumplimiento de las medidas de seguridad, realizar
informes cuando le sean requeridos.
Además de encargase de la Administración de equipos en
seguridad perimetral. Gestión de eventos e incidentes de
seguridad.
Maintainers Los Maintaners estarán encargados de la modificación de
la app después de haber sido entregado (a los usuarios o
consumidores) con el fin de corregir defectos, mejorar el
rendimiento u otros atributos, o adaptarlo a un cambio en
el entorno, versionando la app en repositorios GitHub.
Además de mantener la aplicación de una forma optima y
fluidapara los usuarios cadavezquese vaya actualizando
dicha aplicación
Auditores los auditores ayudan a verificar y evaluar las actividades
relacionadas con la calidad en el seno del software, así
como para la identificación y mejora de las áreas no
conformes con el modelo exigido, con el poder ofrecer
una aplicación que satisfaga las necesidades de los
usuarios.
Analizando y verificando la estructura que componen la
aplicación con el fin de evaluar si se satisface con la
calidad de software que se desea obtener
Tabla 3
Definición conceptual Stakeholders Pt. 2
Stakeholder Descripción
Sociedad Hoy en día la tecnología ha tenido un impacto que ha
afectado positiva y negativamente en nuestra sociedad,
pero es algo indispensable para todos. ... El desarrollo
tecnológico, a fin de cuentas, es el motor fundamental del
progreso en nuestra sociedad y este dependerá siempre
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
14
del uso y manipulación que brindemos, digamos que la
importancia del Software para la sociedad, radica en el
uso que las personas le den, no se trata solamente de
traer juegos nuevos en un dispositivo de 1000 dolares,
hablamos de optimizar tareas, incrementar ganancias,
aumentar ingresos, optimizar tiempos, hacer la vida más
fácil, gracias a que el software hoy en día nos permite
hacer infinidad de cosas.
Consumidores En muchos de los casos de innovación queda claro que las
empresas, antes de pensar en nuevos productos, deben
pensar en las necesidades de los consumidores. Esa es la
fuente de la innovación. Estudiar, entender y prever las
tendencias del consumidor hacen que el margen de error
al lanzar un nuevo producto disminuya. Pero también hay
que mezclar creatividad y modelo de gestión, en nuestro
caso estamos manejando una app que busca acercar al
ciudadano común y corriente, a los entes de
administración gubernamental, entonces si logramos
conocer la conducta del consumidor mejora la posición
de la app.
Usuarios finales El producir un bien o suministrar un servicio de primera
calidad (en nuestro caso una app) requiere cumplir con
las expectativas del Usuario final. Sin duda, gran partede
las empresas, han comprendido que el tener una política
de calidad, que responda a la mejora continua y la plena
satisfacción del cliente, es de gran ayuda para la
consecución de esta última esencia. Es más, el desarrollo
de una aplicación informática ha de estar claramente
ligado a una interacción con el usuario final. El mantener
viva la relación con los usuarios finales del producto o
servicio, mediante un contacto habitual, es de suma
ayuda para poder identificar las necesidades del mercado
actual.
Es lógico pensar que el correcto diseño de unaaplicación
que facilite su utilización incrementa la productividad del
trabajo diario del usuario y minimiza, entre otros, el
tiempo dedicado a comprender la complejidad del
programa.
Administraciones publicas Las administraciones públicas están en plena
transformación. La evolución de los sistemas
democráticos pasa por abrir las puertas de las
instituciones públicas para conocer las agendas de los
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
15
responsables públicos y contar con la colaboración
ciudadana.
En la primera década de siglo XXI comenzó a implantarse
la digitalización en las distintas administraciones
públicas. Hoy en día es una realidad que permite a los
ciudadanos realizar sus trámites burocráticos conmayor
facilidad y eficacia. Sin embargo, la e-administración es
una modernización del sistema donde el ciudadano se
convierte en cliente de los servicios públicos, que, gracias
a la tecnología, han mejorado mucho pero que en la
actualidad no es suficiente.
Siendo estas nuestro principal eje temático, teniendo
como objetivo promover la participación de los
ciudadanos en Cali en las decisiones que se toman en el
Concejo municipal, basándonos en la idea de ofrecer una
información constante y transparente acerca de lo que
sucede en las plenarias del concejo e información sobre
los senadores, así como de su asistencia, votación y de los
proyectos de ley en curso.
Medios de comunicación Diseñar publicaciones impresas ha sido históricamente
uno de los principales trabajos de muchos estudios de
diseño gráfico. Aquel casi obsoleto hoy formato busca un
buen reemplazo en el mundo digital.
No es difícil darse cuenta de la influencia que los
dispositivos móviles tienen hoy en día. Los teléfonos
inteligentes y las tabletas se utilizan en todas partes, todo
el tiempo, a punto tal que nos volvemos cada vez más
dependientes de la tecnología móvil. Una aplicación
móvil permite al público acceder a la información donde
quieran que esté, siempre que lo desee. Los usuarios
obtienen el beneficio de un acceso directo a publicaciones
previas, así como características inimaginables en
medios impresos. Por ejemplo: el uso de redes sociales y
el consumo de contenido multimedia interactivo, o el
consumo de pistas de audio con podcasts. música y otros
documentos sonoros. La combinación de estas
características interactivas puede ofrecer nuevos modos
de relación entre editoriales y lectores, y a la vez
proporcionar una experiencia de usuario única.
El dato más importante es la posibilidad de publicar sin
generar un costes y esfuerzo extra, aprovechando las
distintas plataformas de publicación.
Desarrolladores de la
aplicación de software
Los desarrolladores de la aplicación de software
desarrollaran, crearan y modificaran la aplicación
informática de software general, analizando las
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
16
necesidades del usuario y desarrollando soluciones de
software, diseñando o personalizando el software para el
uso del consumidor con el objetivo de optimizar la
eficiencia operativa; pueden analizar y diseñar las bases
de datos dentro de un área de aplicación, trabajando
individualmente o coordinando el desarrollo de la base
de datos como parte de un equipo.
La importancia del desarrollador de software radica en la
eficacia de la app que realizó al momento de ejecutar las
tareas por las cuales se programó.
En pocas palabras que el software sea útil y cumpla para
lo que fue hecho.
Director de proyecto El director de proyecto será la persona a la cual se le será
asignada la tarea de liderar un equipo con la función de
conseguir unos objetivos planteados en el desarrollo de
la planeación teniendo la responsabilidad total del
planeamiento y ejecución del proyecto.
Para poder conseguir sus objetivos, el director de
proyectos debe tener una serie de características. Debe
ser una persona organizada, apasionada y orientada a las
metas cuya principal habilidad sea la capacidad de
reconocer los riesgos que afectan al éxito del proyecto,
por lo que debe realizar constantes mediciones de
factores internos o externos que puedan suponer fuentes
de riesgo.
El director de proyectos no solo dirige al equipo
multidisciplinar de la empresa y app, sino que también da
una serie de pautas al cliente para que le proporcione
toda la documentación necesaria. No hay que olvidar que
en muchos casos el cuello de botella se encuentra en
nuestro propio cliente, que bien por falta de tiempo o por
interés no proporciona los datos necesarios.
Ingenieros de
telecomunicaciones
El ingeniero de telecomunicaciones se encargará de
administrar, crear, diseñar y gestionar sistemas en
tecnología de la información y las telecomunicaciones
además de brindarnos soluciones técnicas a problemas
en la transmisión y recepción de señales y la
interconexión de redes que pueda tener la app, dando
Convergencia a los servicios en redes de la misma;
Administrando, gestionando y bridando seguridad de
redes, programación, antenas y servicios de telefonía
relacionados a los diversas funciones conceptuales de la
app.
Permitiéndonos ser autodidactas y proactivos para
mantenernos actualizados, resolviendo los problemas
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
17
técnicos de señales y redes con el mayor caudal de
información posible, además para lo que es la adecuación
y también la coordinación del montaje respectivo y de la
correspondiente buena funcionalidad. De igual forma
hace la relación entre la electrónica y la información con
la finalidad de sustentar los proyectos referidos a la
Telemática.
Jefe de ingenieros El jefe de ingenieros es el responsable de realizar
estudios, desarrollar y supervisar programas destinados
a la optimización en el uso de equipos, recursos humanos,
tecnología, materiales y procedimientos para
incrementar la eficiencia y la productividad de la
realización de la app.
El Jefe de Ingeniería revisa y estudia las propuestas de
trabajo y los subcontratos. Crean los horarios de trabajo
para cumplir con los plazos establecidos para el proyecto.
También pueden diseñar y analizar los equipos usados en
el diseño, planeación y escrituración de software.
De igual forma, el trabajo de un Jefe de Ingeniería consiste
en la organización de los diversos grupos de personas y
el cumplimiento de las restricciones presupuestarias y de
tiempo.
Igualmente, este tipo de profesionales hacen el manejo
del personal para todas las fases del proyecto, incluyendo
la contratación, la asignación de los trabajos de otros
ingenieros y técnicos y revisan que el sitio de trabajo
tenga los materiales y equipos adecuados.
Gestión del proyecto La gestión del proyecto se basa en la disciplina de
administrar el control de proyecto, cuyo objeto de
estudio abarca la planificación, organización, motivación
y el control de los recursos necesarios para alcanzar un
fin determinado de antemano, o sea, cumplir con un
objetivo de la app, proyecto.
Los proyectos son independientes de la actividad diaria
empresarial, por lo que se requiere que se organicen una
serie de reuniones para ver cuáles son los objetivos
específicos del proyecto. Para que el proyecto tenga éxito
es esencial que se realice un trabajo en equipo eficiente.
La manera en la que la gestión de proyectos dirigirá el
trabajo depende de varios factores, entre ellos: la
escalabilidad (la posibilidad de que el proyecto crezca), la
importancia y la complejidad de las tareas.
La gestión del proyecto está esencialmente dirigida a
conseguir los objetivos preestablecidos para
proporcionar un beneficio a la organización. Los
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
18
objetivos pueden expresarse en términos de: resultados
consecuencias; beneficios u objetivos estratégicos.
Probadores de software Los probadores de software planificaran y llevara a cabo
pruebas de software de los ordenadores para comprobar
si funcionan correctamente. Identifican el riesgo de sufrir
errores la aplicación, detectando errores y los
comunican. Evalúan el funcionamiento general del
software y sugieren formas de mejorarlo.
Entre sus competencias está Construir el plan de testing;
diseñar casos de prueba; gestionar los ambientes de
prueba; generar los datos de prueba; ejecutar y
documentar pruebas, reportando y siguiendo los
incidentes encontrados, usando las herramientas
apropiadas de acuerdo con los estándares de trabajo de
donde se desempeñe.
Lo principal es Asegurar que el software o pieza de
software funcione de acuerdo con los requisitos; trabaje
con sus interfaces de la forma esperada, detectando en
forma temprana defectos y evitando su propagación y
llegada al cliente (interno o externo).
Ingenieros de seguridad El ingeniero en seguridad informática se encargará de
establecer la misión de seguridad informática de la
organización y app, definir la política y procesos que
permitan el respaldo de la información, definir
mecanismos y herramientas para velar por el
cumplimiento de las medidas de seguridad, realizar
informes cuando le sean requeridos.
Además de encargase de la Administración de equipos en
seguridad perimetral. Gestión de eventos e incidentes de
seguridad.
Maintainers Los Maintaners estarán encargados de la modificación de
la app después de haber sido entregado (a los usuarios o
consumidores) con el fin de corregir defectos, mejorar el
rendimiento u otros atributos, o adaptarlo a un cambio en
el entorno, versionando la app en repositorios GitHub.
Además de mantener la aplicación de una forma optima y
fluidapara los usuarios cadavezquese vaya actualizando
dicha aplicación
Auditores los auditores ayudan a verificar y evaluar las actividades
relacionadas con la calidad en el seno del software, así
como para la identificación y mejora de las áreas no
conformes con el modelo exigido, con el poder ofrecer
una aplicación que satisfaga las necesidades de los
usuarios.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
19
Analizando y verificando la estructura que componen la
aplicación con el fin de evaluar si se satisface con la
calidad de software que se desea obtener
Requerimientos
A continuación, se describen las principales características funcionales y no
funcionales, que debe contener el sistema de información:
Requerimientos funcionales:
1. ¿Quién solicita?: Usuarios.
Descripción: Login e identificación de los usuarios utilizando Facebook connect,
Gmail o Twitter Con esto se disminuye en buen grado el uso y la subida de
contenido de usuarios anónimos.
Arq. Sig: Si.
2. ¿Quién solicita?: Usuario final, Administraciones públicas y medios de
comunicación.
Descripción: Se puede transmitir determinados segmentos de la programación
vía streaming de video. Si la plataforma contara con una API que permita saber
cuándo se está transmitiendo, la app de forma automática incorpora el video en la
vista predeterminada.
Arq. Sig: Si.
3. ¿Quién solicita?: Usuario final, Administraciones públicas y medios de
comunicación.
Descripción: Conexión con un feed de noticias, permite actualización automática
de un blog o portal de noticias.
Arq. Sig: Si.
4. ¿Quién solicita?: Usuario final y Medios de comunicación.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
20
Descripción: El sistema debe permitir a los usuarios buscar y consultar la
información sobre los concejales, en la cual podrán encontrar información como
lo es el nombre, partido político, Comisión, número telefónico, correo electrónico,
redes sociales e historial de votación a proposiciones y proyectos.
Arq. Sig: Si.
5. ¿Quién solicita?: Administración pública.
Descripción: El sistema debe almacenar información sobre las comisiones
almacenando información como lo es el historial de votación a proposiciones y
proyectos.
Arq. Sig: Si.
6. ¿Quién solicita?: Usuario final y Medios de comunicación.
Descripción: El sistema debe permitir a los usuarios buscar y consultar la
información sobre las comisiones, en la cual podrán encontrar informacióncomo
lo es el historial de votación a proposiciones y proyectos.
Arq. Sig: Si.
7. ¿Quién solicita?: Administración pública.
Descripción: El sistema debe almacenar información sobre las proposiciones y
proyectos almacenando información como lo son, Textos Radicados de Los
Proyectos de Acto Legislativo y Proyectos de Ley, Ficha Tecnica de Los
Proyectos de Ley, Ficha Tecnica de Los Proyectos de Acto Legislativo, Gaceta
de la alcaldía, Informes Legislativos Concejo.
Arq. Sig: Si.
8. ¿Quién solicita?: Usuario final y Medios de comunicación.
Descripción: El sistema debe permitir a los usuarios buscar y consultar la
información sobre las proposiciones y proyectos, en la cual podrán encontrar
información como lo son, Textos Radicados de Los Proyectos de Acto Legislativo
y Proyectos de Ley, Ficha Tecnica de Los Proyectos de Ley, Ficha Tecnica de
Los Proyectos de Acto Legislativo, Gaceta de la alcaldía, Informes Legislativos
Concejo.
Arq. Sig: Si.
9. ¿Quién solicita?: Usuario final.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
21
Descripción: El sistema debe permitir le al usuario marcar su proposición y
proyecto favorito, con lo que se le brindara notificaciones e información de
primera mano sobre el mismo.
Arq. Sig: Si.
10. ¿Quién solicita?: Administración pública.
Descripción: El sistema debe almacenar información sobre los eventos y
plenarias a realizar, mostrándolo por medio de un calendario.
Arq. Sig: No.
11. ¿Quién solicita?: Usuario final y Medios de comunicación.
Descripción: El sistema debe visualizar por medio de calendario los eventos y
plenarias a realizar.
Arq. Sig: Si.
12. ¿Quién solicita?: Administración pública.
Descripción: El sistema debe permitir almacenar información sobre la
distribución de las curules en el concejo, visualizándolos por partido político y la
estructura de esta.
Arq. Sig: Si.
13. ¿Quién solicita?: Usuario final y Medios de comunicación.
Descripción: El sistema debe permitir visualizar por medio de un plano grafico
estructurado de la sala del concejo, las curules del concejo por medio de la
distribución del partido político.
Arq. Sig: Si.
14. ¿Quién solicita?: Sociedad.
Descripción: El sistema debe permitir le al usuario ponerse en contacto con el
concejo por medio de un mensaje, en el cual se le solicitara al mismo los datos de
nombre, e-mail y recado, los mismo serán entregados a la sección de atención
ciudadana.
Arq. Sig: Si.
15. ¿Quién solicita?: Auditores.
Descripción: El sistema debe permitir le al usuario cambiar su contraseña de
usuario cuantas veces lo quiera y lo considere necesario, que si al ser registrado
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
22
por medio de una red social, el cambio de esta se debe hacer directamente en la
respectiva red social, o simplemente por la suministración de un mensaje vía
correo electrónico.
Arq. Sig: Si.
16. ¿Quién solicita?: Sociedad, Consumidor, Usuario final, Administración pública,
Medios de comunicación.
Descripción: El sistema debe permitir le a un usuario cualquiera, participar en
encuestas sobre su opinión acerca a proyectos o proposiciones propuestas por la
Administración pública.
Arq. Sig: Si.
17. ¿Quién solicita?: Administración pública.
Descripción: El sistema debe permitir la generación de encuestas por parte de la
administración pública, (un usuario administrador de la app), sobre algún tema en
específico, proyecto o proposición tratado por el concejo.
Arq. Sig: Si.
Requerimientos no funcionales:
1. ¿Quién solicita?: Ingenieros de Seguridad.
Descripción: El nuevo sistema debe desarrollarse aplicando patrones y
recomendaciones de programación que incrementen la seguridad de datos.
Arq. Sig: Si.
2. ¿Quién solicita?: Probadores de software.
Descripción: La tasa de errores cometidos por el usuario deberá ser menor del
1% de las transacciones totales ejecutadas en el sistema.
Arq. Sig: No.
3. ¿Quién solicita?: Auditores.
Descripción: El sistema debe ser capaz de operar adecuadamente con hasta con
un número infinito de usuarios con sesiones concurrentes.
Arq. Sig: Si.
4. ¿Quién solicita?: Maintainers.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
23
Descripción: Se debe especificar la definición y el manejo de la documentación
técnica (manuales técnicos y de instalación) y funcional (manuales de
administración, configuración y de usuario final) del sistema de información,
establecer procedimientos claros de actualización y aprobación. En múltiples
ocasiones, ni la documentación ni las especificaciones de diseño están
disponibles, y por tanto, los costos del mantenimiento se incrementan debido al
tiempo requerido para que un ingeniero entienda el diseño del software antes de
poder ponerse a modificarlo.
El software desarrollado, por lo menos, debe tener:
• manual técnico
• manual de usuario final
• manual de administración
• manual de instalaciones e integración
Arq. Sig: Si.
5. ¿Quién solicita?: Ingeniero de telecomunicaciones.
Descripción: El aplicativo debe utilizar el protocolo de comunicación TCP-IP
para la transmisión de información desde y hacia los diferentes componentes que
se encuentren distribuidos a través de la red, de manera que se garanticen
adecuados niveles de protección a los datos.
Arq. Sig: Si.
6. ¿Quién solicita?: Auditores.
Descripción: El software deberá permitirle al usuario configurar y personalizar
la app a su gusto y como lo considere necesario, con el fin de brindar una mejor
experiencia de usuario.
Arq. Sig: No.
7. ¿Quién solicita?: Desarrolladores de la aplicación de software.
Descripción: Con el fin de tener una app versátil, eficaz y portable, esta misma
será desarrollada a través del lenguaje de programación Kotlin para celulares con
sistema operativo Android con una versión de 6.0 en adelante.
Arq. Sig: Si.
8. ¿Quién solicita?: director de proyecto.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
24
Descripción: El procedimiento de desarrollo de software a usar debe estar
definido explícitamente (en manuales de procedimientos) y debe cumplir con los
estándares ISO 9000.
Arq. Sig: Si.
9. ¿Quién solicita?: Ingenieros de seguridad.
Descripción: Si se identifican ataques de seguridad o brecha del sistema, el
mismo no continuará operando hasta ser desbloqueado por un administrador de
seguridad.
Arq. Sig: Si.
10. ¿Quién solicita?: Gestión del proyecto.
Descripción: Cada dos semanas deberán producirse reportes gerenciales en los
cuales se muestre el esfuerzo invertido en cada uno de los componentes del nuevo
sistema.
Arq. Sig: No.
11. ¿Quién solicita?: Ingeniero de telecomunicaciones.
Descripción: Todas las comunicaciones externas entre servicios de datos,
aplicación y cliente del sistema deben ser encriptadas usando el algoritmo RSA.
Arq. Sig: Si.
12. ¿Quién solicita?: jefe de ingenieros.
Descripción: El sistema debe ser desarrollado utilizando herramientas CASE
XYZ.
Arq. Sig: Si.
13. ¿Quién solicita?: Maintainers.
Descripción: Debe especificarse un plan de recuperación ante desastres para el
sistema a ser desarrollado.
Arq. Sig: No.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
25
Estimación de esfuerzo con base al cálculo de tamaño de casos de uso
UAW (Pesos de los Actores sin Ajustar)
– Fórmula:
UAW=∑ (cantidad de un Tipo de Actor * Factor)
Tabla 4
Contador actores e identificación su complejidad
Tipo de actor Número de
actores
Factores
de peso
Comentarios
Simple 5 1 Api straming Youtube, Facebook
connect, Api gmail, Api Twitter,
Feed de noticias
Medio 4 2 Gestor BD, Servidor IDEUnco,
Licensee, Modelo TCP/ IP
Complejo 3 3 Usuario final, Administrador,
dependiente (Funcionario,
burócrata, empleado)
Pesos actores sin ajustar 22 A
Cálculo UUCW (Pesos de los Casos de Uso sin Ajustar).
– Fórmula:
UUCW=∑ (Cantidad de un Tipo de Caso Uso*Factor)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
26
Tabla 5
Contador de casos de uso e identificación su complejidad
Tipo de caso de uso Número de
casos de
uso
Factores
de peso
Comentarios
Simple 4 5 Busqueda y consulta de
información, participación
usuario.
Medio 8 10 Login, Administración de
información, Almacenar
información, marcar y clasificar
opiniones, configuración cuenta
de usuario.
Complejo 5 15 Transmisión streaming,
Conexión feed noticias,
visualización estadisticas y
posición, Contacto directo.
Peso casos de uso sin
ajustar
175 B
Cálculo de los puntos de casos de uso sin ajustar
-Fórmula:
UUCP=UUCW+UAW
Tabla 6
Calculo los PCUs no ajustados
Casos de uso sin ajustar 197 A+B=C
Cálculo TCF (Factor de Complejidad Técnica)
– Fórmula:
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
27
TCF=∑ (Cantidad de un Tipo de complejidad técnica*Factor)
Tabla 7
Determinación factores de complejidad técnicos
Factor técnico Grado de
influencia en
la
productivida
d
Factores
de peso
Razones
Sistema distribuido 5 2 Es un sistema formado por
varios componentes, HW y/o
SW, localizados en diferentes
dispositivos, conectados en
red, que se comunican y
Desempeño 2 1
coordinan sólo mediante el
Conocimiento del 3 1
Usuario paso de mensajes (al no poseer
memoria compartida no se
Procesamiento complejo 4 1 pueden utilizar formas de
Código reusable 3 1 sincronización como
Fácil de instalar 5 0,5 monitores o semáforos).
Fácil de usar 5 0,5 La informática es un poco
Portable 4 2 como el inglés. Todos tenemos
Facil de modificar 3 1 nivel medio. Lo malo viene
Concurrente 5 1 cuando un día tenemos que
Características de 2 1 hacer uso de esta habilidad y
seguridad nos salen los colores. No es la
Acceso por terceros 1 1 primera vez en la que en una
Requiere capacitación 3 1 prueba de nivel en una
especial selección la mayoría de los
candidatos se caen por este
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
28
motivo.Las primeras
impresiones importan, sin
duda. Pero también lo es una
planificación concienzuda En
un nuevo puesto de trabajo se
quiere probarse a si mismo, lo
cual es totalmente
comprensible. Pero para
lograr una buena primera
impresión, puede que se caiga
en la tentación de apurarse al
escribir el código y además
dejar ya determinada la
estrategia que deberá tomar el
código más adelante. Sin
embargo, este método de
trabajo se puede volver contra.
el código puede tener sentido
en la cabeza, pero luego toma
una orientación totalmente
contraria a la que se supone
que debería haber tomado.
Complejidad del factor
técnico
1,09 D
Cálculo ECF (Factor de Complejidad Ambiental)
– Fórmula:
ECF=∑ (Cantidad de un Tipo de complejidad ambiental*Factor)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
29
Tabla 8
Determinación factores de complejidad ambiental
Factor ambiental Grado de
influencia en
la
productivida
d
Factores
de peso
Razones
Familiar con RUP 5 1,5 En la construcción y desarrollo
de proyectos se aplican
métodos y técnicas para
resolver los problemas, la
informática aporta
herramientas y
procedimientos sobre los que
se apoya la ingeniería de
software. Con el fin de
aumentar la productividad y
trabajo de los ingenieros del
software, por lo que debemos
tener encuenta facotes que
pueden estar en nuestra
contra, como lo es la
familiarización con las
metodologias desarrollo,
lenguaje de rogramación y
disponibilidad del personal.
Experiencia con
aplicación
4 0,5
Experiencia Orientado
Objetos
3 1
Capacidad del analista 2 0,5
Motivación 3 1
Requerimientos estables 4 2
Personal medio tiempo 2 -1
Dificultad del lenguaje
programación
5 -1
Complejidad del factor
ambiental
0,875 E
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
30
Análisis resultados
Tabla 9
Análisis y estimación de esfuerzo
Casos de uso ajustados 188 C*D*E=F
Caso de uso / hora-persona 20 G
Esfuerzo horas-persona 3760 F*G
Esfuerzo Pesimista 1300 H
Esfuerzo Optimista 1000 I
Esfuerzo Ponderado 2890 (H+4(F*G)+I)/
6
Tabla 10
Funciones y determinaciones finales de la distribución porcentual del tiempo de esfuerzo en cada una de las
etapas del proyecto.
Distribución de esfuerzo por fase Porcentaje Esfuerzo
Análisis 19% 549
Diseño 12% 347
Codificación 34% 983
Pruebas 30% 867
Administración del proyecto 28% 809
Otros 8% 231
Total, esfuerzo horas 3786
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
31
Metodología para implementar.
Por lo que hemos podido investigar la metodología propuesta para el desarrollo de
aplicaciones para móviles se fundamenta principal mente en la experiencia de investigaciones
previas en aplicaciones móviles, la evaluación del potencial de éxito para servicios de tercera
generación denominada 6 M, la ingeniería de software educativo con modelado orientado
por objetos (ISE-OO), y principalmente en los valores de las metodologías ágiles.
De la ISE-OO se hereda el enfoque de los micro-mundos interactivos y la orientación
por objetos; los elementos de los micromundos más utilizados en los servicios móviles
interactivos son: Mundo, Escenarios, Personajes y Roles, Argumento e Historia, Variables
Compensatorias, Variables de Control, Variables de Resultado, Zonas de Comunicación,
Ambientación-Caracterización, Recuperación de Estados Anteriores, Manejo de Información
del Usuario, Mecanismos para Análisis de Desempeño, Ampliación de las Posibilidades del
Micro-mundo, Personalización del Ambiente y, Soporte a la Comunicación en Grupo, entre
otros (Gómez, Galvis y Mariño, 1998).
De las metodologías ágiles se heredan los conceptos inmersos en los cuatro
postulados o manifiesto ágil (Beck et al., 2001).
● Desarrollar software que funciona más que conseguir buena documentación.
● La respuesta ante el cambio es más importante que el seguimiento de un plan.
● Colaboración con el cliente sobre negociación contractual.
● Individuos e interacciones sobre procesos y herramientas.
De la 6 M's se extrae la concepción de que las aplicaciones móviles debengarantizar
el cumplimiento de las necesidades de los usuarios y al mismo tiempo generen ingresos. La
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
32
6 M's debe su nombre a los seis atributos que se miden para evaluar el éxito del servicio
propuesto: Movement (Movimiento), Moment (Momento), Me (Yo), Multi-user
(Multiusuario), Money (Dinero) y Machines (Máquinas) (Ahonen, Barret y Golding, 2002).
La metodología se encuentra enmarcada en cinco fases como se muestra en la figura
1, denominadas: análisis, diseño, desarrollo, pruebas de funcionamiento y entrega. A
continuación, se describe cada una de las actividades que intervienen en el desarrollo de la
propuesta.
Figura 1. Etapas de la metodología para el desarrollo de aplicaciones móviles (Gasca, Camargo, & Medina,
2014)
Análisis:
En esta fase se analizan las peticiones o requerimientos de las personas o entidad para la cual
se desarrolla el servicio móvil "Cliente", el propósito es definir las características del mundo
o entorno de la aplicación. Se realizan tres tareas: obtener requerimientos, clasificar los
requerimientos y personalizar el servicio.
● Obtener requerimientos: se sugiere hacer una serie de entrevistas al cliente, para que
manifieste los síntomas del problema o necesidades que se pretenden solucionar con
las tecnologías móviles, o simplemente, para que señale las características que debe
tener la aplicación.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
33
● Clasificar los requerimientos: una vez identificados los requerimientos que debe tener
el software, se procede a clasificarlos. Dichos requerimientos se pueden clasificaren
entorno, mundo, funcionales y no funcionales.
El entorno se refiere a todo lo que rodea al servicio. Por ejemplo, las características
técnicas del dispositivo móvil del cliente, el sistema operativo subyacente (móvil y
servidores), la tecnología utilizada para la transferencia de información, el Sistema
Manejador de Base de Datos, Data Base Management System (DBMS), si se requiere, el
formato de archivos y, otros módulos tecnológicos utilizados para el servicio.
El mundo es la forma cómo interactúan el usuario y la aplicación. Aquí se encuentran
los requerimientos de la Interfaz Gráfica de Usuario, Graphical User Interface (IGU), la
forma en que el software va a generar los datos de salida, el formato de los datos y los demás
requerimientos que involucren la comunicación hombre-máquina, considerando la gama
tecnológica de los teléfonos móviles de los usuarios a la que va dirigida el servicio.
Los requerimientos funcionales son todos aquellos que demandan una función dentro
del sistema. Se deben definir claramente cada una de las tareas que debe realizar la aplicación.
Los requerimientos no funcionales son la estabilidad, la portabilidad, elrendimiento,
el tiempo de salida al mercado y, el costo, entre otros.
● Personalizar el servicio: adicionalmente se deben analizar aspectos de la cotidianidad
del cliente como preferencias, costumbres y particularidades del usuario, con el
propósito de garantizar la aceptación del servicio.
Diseño:
El objetivo de esta etapa es plasmar el pensamiento de la solución mediante diagramas o
esquemas, considerando la mejor alternativa al integrar aspectos técnicos, funcionales,
sociales y económicos. A esta fase se retorna si no se obtiene lo deseado en la etapa prueba
de funcionamiento.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
34
Se realizan cuatro actividades en esta fase: definir el escenario, estructurar el software, definir
tiempos y asignar recursos.
● Definir el escenario: las aplicaciones móviles se pueden diseñar para ejecutarse en
diferentes escenarios, dependiendo del sistema de conexión y sincronización con el
servidor o aplicación central; el proceso de sincronización se realiza para insertar,
modificar o borrar información. Entre los diferentes escenarios se encuentran los
siguientes: 1) desconectado: los procesos se realizan en el dispositivo móvil
desconectado, después de terminar el proceso, si se requiere, puede conectarse con
una aplicación central mediante el proceso de sincronización. 2) Semiconectado: los
procesos pueden ejecutarse en el dispositivo móvil desconectado, pero se requiere
establecer conexión en algún momento para terminar el proceso, al sincronizar la
informacióncon el servidor o aplicación central. En los escenarios desconectado y
semiconectado se recomienda utilizar los protocolos y tecnologías que se ajusten al
servicio y capacidades tecnológicas del dispositivo. Algunos son: Media Transfer
Protocol (MTP), Near Field Communication (NFC), SlowSync, FastSync, SyncML,
entre otros. 3) Conectado: el dispositivo debe estar siempre conectado con la
aplicación central o servidor para su correcto funcionamiento, no se almacenan datos
o archivos en el móvil, la sincronización se realiza mediante la validación de
formularios, usualmente se utiliza el Protocolo de Transferencia de Hipertexto
(Hypertext Transfer Protocol, HTTP).
● Estructurar el software: se deben utilizar algunos diagramas de Modelado de
Lenguaje Unificado, Unified Modeling Language (UML), según las necesidades del
proyecto, modelando el sistema desde varias perspectivas, ver figura 2.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
35
Figura 2. Posibles diagramas para el desarrollo de aplicaciones móviles (Gasca, Camargo, & Medina, 2014)
Además, se nos sugiere traducir los requerimientos obtenidos de la etapa anterior en un
diagrama que describa en forma objetiva el servicio por implementar. Además, definir un
patrón de diseño para flexibilizar, modular y reutilizar lo desarrollado; la selección del patrón
de diseño debe estar acorde con el escenario del servicio. Algunos patrones que se ajustan a
los escenarios de las aplicaciones móviles son: modelo vista de controlador, diseño de capas,
entre otros.
● Definir tiempos: se establecen los plazos para cada una de las actividades restantes,
con el objetivo de terminar la aplicación a tiempo para su salida al mercado. Se debe
tener en cuenta el diseño computacional del software realizado en la tarea anterior y,
las características volátiles y dinámicas de los servicios móviles.
● Asignar recursos: se asignan los recursos para realizar cada actividad y alcanzar los
objetivos propuestos, se deben considerar recursos humanos, financieros y
tecnológicos. Además, se deben seleccionar las herramientas para el desarrollo de la
aplicación móvil.
Desarrollo:
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
36
El objetivo de esta fase es implementar el diseño en un producto de software. En esta etapa
se realizan las siguientes actividades:
● Codificar: se escribe en el lenguaje de programación seleccionado, cada una de las
partes definidas en los diagramas realizados en la etapa de diseño.
● Pruebas unitarias: se verifica el funcionamiento de la aplicación. En primer lugar, se
comprueba la correcta operación de cada elemento desarrollado -objeto, clase,
actividad, documento, entre otros- en forma individual; posteriormente, se pone en
funcionamiento el conjunto de elementos, comprobando la interrelación entre ellos.
Se ejecuta y se observan los resultados obtenidos, para compararlos con los esperados.
● Documentar el código: a medida que se codifica y se prueba cada elemento, se redacta
la pequeña documentación sobre lo desarrollado.
● Codificar ayudas: además del manual de instalación y de usuario, deben existir una
serie de ayudas que informen de manera didáctica lo que puede hacer el usuario con
la aplicación, estas ayudas deben ser codificadas en el mismo lenguaje de
programación e integrada en la interfaz de aplicación para visualizarlas en elmóvil.
Pruebas de funcionamiento:
El objetivo de esta fase es verificar el funcionamiento de la aplicación en diferentes
escenarios y condiciones; para esto se realizan las siguientes tareas:
● Emulación y simulación: se realizan pruebas simulando el escenario y emulando el
dispositivo móvil, explorando todas las utilidades y funciones de la aplicación,
introduciendo diferentes datos, inclusive erróneos, para medir la funcionalidad y el
nivel de robustez del software. Si se encuentran algunas fallas, se debe regresar a la
etapa de codificación en la fase de desarrollo para solucionar los problemas, si las
pruebas son satisfactorias se procede a la etapa de pruebas con dispositivos reales.
● Dispositivos reales: deben hacerse pruebas de campo en equipos reales para medirel
desempeño y el rendimiento del aplicativo. Si se encuentran fallas en el tiempo de
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
37
ejecución, si el software no cumple con los requerimientos especificados, o si el
cliente solicita un cambio de última hora, hay que regresar a la fase de diseño para
reestructurar y solucionar el inconveniente presentado.
● Análisis de las 6 M's: para valorar el potencial de éxito del servicio, se sugiere buscar
un grupo de expertos en el campo del desarrollo móvil para que utilicen el método de
evaluación de las 6 M's, y califiquen la presencia de los seis atributos en la aplicación
desarrollada.
Cualquier servicio que brinde un gran valor en cualquiera de las 6 M's tiene un buen potencial
para el éxito como servicio móvil. Si la evaluación de las 6 M's del servicio es insatisfactoria,
se debe rediseñar el servicio fortaleciendo los atributos mencionados.
Entrega:
Terminada la depuración de la aplicación y atendidos todos los requerimientos de última hora
del cliente se da por finalizada la aplicación y se procede a la entrega del ejecutable, el código
fuente, la documentación y el manual del sistema.
● Manuales: el objetivo es el entrenamiento; una aplicación móvil debe constar de un
manual del sistema donde se indique el proceso de instalación, la atención a posibles
fallas en el tiempo de ejecución y, las especificaciones técnicas mínimas de hardware
y software que requiere el equipo, para el funcionamiento adecuado del aplicativo
desarrollado.
● Distribución: se define el canal de comercialización de la aplicación, con el propósito
de adecuar la aplicación al medio de distribución. A continuación, se mencionan
algunos de los canales de distribución existentes.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
38
Las tiendas físicas u outlets, especializadas o no, corresponden a las tiendas que venden
dispositivos y servicios de telecomunicaciones, normalmente operadores o marcas como
Apple.
Los portales de operadores o desarrolladores de servicios ofrecen un catálogo amplio de
aplicaciones y ventas vía Web Site desde el PC, que luego son instaladas en el móvil.
Las Applications Stores, son las tiendas online de los fabricantes de dispositivos o de sistemas
operativos.
OTA, Over the Air, es la comercialización de aplicaciones a través de la interfaz de radio.
Los contenidos móviles son distribuidos a los terminales usando SMS, WAP y Streaming,
entre otros.
Los servicios basados en el Subscriber Identity Module (SIM), o la Universal Integrated
Circuit Card (UICC), son aplicaciones instaladas previamente en el chip de estas tarjetas.
Resultados:
Esta metodología toma como base para su análisis de funcionamiento El Diagrama de
Ishikawa, también conocido como Diagrama de Espina de Pescado o Diagrama de Causa y
Efecto, es una herramienta de la calidad que ayuda a levantar las causas-raíces de un
problema, analizando todos los factores que involucran la ejecución del proceso.
Creado en la década de 60, por Kaoru Ishikawa, el diagrama tiene en cuenta todos los
aspectos que pueden haber llevado a la ocurrencia del problema, de esa forma, al utilizarlo,
las posibilidades de que algún detalle sea olvidado disminuyen considerablemente.
En la metodología, todo problema tiene causas específicas, y esas causas deben ser analizadas
y probadas, una a una, a fin de comprobar cuál de ellas está realmente causando el efecto
(problema) que se quiere eliminar. Eliminado las causas, se elimina el problema.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
39
Figura 3. Diagrama de espina de pescado básico (Normas Internacionales del Trabajo (NIT))
El Diagrama de Ishikawa presenta la relación existente entre el resultado no deseado o no
conforme de un proceso (efecto) y los diversos factores (causas) que pueden contribuir a que
ese resultado haya ocurrido. Su relación con la imagen de una espina de pescado se da debido
al hecho de que podemos considerar sus espinas las causas de los problemas planteados, que
contribuirán al descubrimiento de su efecto, además del formato gráfico que se asemeja al
diseño de un esqueleto de pescado.
Es posible aplicar el diagrama de Ishikawa tanto como la metodología a diversos contextos
y de diferentes maneras, pero nos enfocamos primordial y como objetivo del curso de Ing.
De Software, a los procesos conyugados a la elaboración de software integro, entre la cuales
se destaca la utilización:
● Para ver las causas principales y secundarias de un problema (efecto).
● Para ampliar la visión de las posibles causas de un problema, viéndolo de manera más
sistémica y completa.
● Para identificar soluciones, levantando los recursos disponibles por la empresa y
nosotros mismos.
● Para generar mejoras en los procesos.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
40
Como se dijo anteriormente, se proponen 6 categorías por el método, que son: Movement
(Movimiento), Moment (Momento), Me (Yo), Multi-user (Multiusuario), Money (Dinero) y
Machines (Máquinas) “las 6Ms”. Sin embargo, no todos los procesos o problemas se utilizan
de todos estos factores, así que es necesario evaluar cuáles de ellos están presentes o son
importantes para la ejecución.
Es posible que sólo evalúe 4 de ellos; No hay ningún problema con esto, siempre y cuando
el análisis se haga sobre la base de hechos y datos y no se quita ningún aspecto importante
En el análisis de resultados del proyecto, hemos decidido incorporar el Diagrama de Causa y
Efecto al flujo de tratativas de no conformidades. Hemos hecho esto porque la técnica es una
de las formas más eficaces de analizar las causas raíz, ayudándonos a profundizar en todos
los aspectos del proceso.
Además de posibilitar la eliminación de características innecesarias, y se perciban errores o
problemas con mayor rapidez., permitiéndonos a estandarizar y centralizar el registro de
información, aumentando la rastreabilidad de los datos y facilitando la consulta cuando sea
necesario.
Arquitectura para utilizar
Para poder elegir una arquitectura de software a usar en el proyecto, tenemos que
partir del punto que estamos trabajando con una aplicación móvil, así que tenemos que ser
conscientes de la serie de características con las que cumple este tipo de software,tendiendo
cuenta la cantidad y tipo de funcionalidades, por lo que investigando hemos podido encontrar
que estas aplican a un tipo de arquitecturas diseñadas específicamente para ellas:
• Aplicaciones móviles autocontenidas.
• Aplicaciones móviles con conexión a Internet.
• Aplicaciones móviles con descarga de información estática.
• Aplicaciones móviles con información dinámica.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
41
Cada una de las anteriores se refieren al tipo de arquitecturas implementadas en el
desarrollo de aplicaciones móviles, se debe a el tipo de información el cual se valla a impartir;
recordando que a la hora de desarrollar aplicaciones móviles, hay que tener lo que la
escalabilidad y todas sus ventajas. las aplicaciones móviles según la información que
imparten se dividen en dos grupos, aplicaciones móviles autocontenidas y las aplicaciones
con conexión a Internet.
En este caso, nuestro proyecto se basa primordialmente en una app móvil, donde se
muestra determinada información, como las principales noticias que se producen en el
Concejo, el listado de concejales que incluye foto, perfil, partido político, información de
contacto, redes sociales y un historial de voto, así como el registro de los trinos publicados
en su cuenta de Twitter, el ciudadano podrá escoger su concejal preferido y hacer seguimiento
a su trabajo, etc. Por lo que el primer paso es decidir la arquitectura de software que se
utilizara en el proyecto, que en este caso se basara en contenido que se obtiene desde fuentes
externas.
Las descriptas anteriormente son algunas ideas básicas que se tienen planeadas para
la aplicación, por lo cual se tendrán que transmitir muy a menudo a personas que, sin tener
un contacto previo con el mundo de aplicaciones y la web, se verán ligadas el uso y
codificación de esta.
Por lo que hemos decido que la arquitectura de la misma se basara en una app con
información dinámica; El funcionamiento básico de nuestra app, se basa en el procesamiento
e interpretación de información que se encuentra almacenada en una base de datos la cualse
encuentra alojada en un servidor, a través de servicios API mediante script PHP (u otro
lenguaje de servidor) que se conecta a la base de datos y genera una XML o archivos
descargable que retorna a la app, a través de servicios API los cuales comunican al bancode
datos con la interfaz de la app.
Esto lo hacemos con el fin de desarrollar una aplicación que sea escalable y de rápida
actualización, haciendo que exista solo una versión de la app en el servidor, por lo que habrá
que distribuirla entre los demás ordenadores, por lo que el proceso de actualización será más
rápido y limpio.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
42
Por lo que se nos permitirá de manera más fácil editar la base de datos, además de
permitirnos generar contenido con formularios web o con conector de base datos, con lo que
la modificación de información es sencilla y rápida.
Aunque con esto debemos aclarar que la complejidad del desarrollo será mayor, al
igual que el coste de desarrollo, ya que hay parte de desarrollo web, además de los costes de
hosting web para alojar los scripts y base de datos.
Pero ya enfocándonos más en la estructura lógica y configuración del hardware
distribuido para el funcionamiento teórico y práctico de la aplicación, partiendo desde el
punto que las tareas se reparten entre los proveedores de recursos o servicios, llamados
servidores, y los demandantes, llamados clientes, siendo estos últimos los que realizan
peticiones a otro programa, el servidor, quien le da respuesta.
Por lo que hemos decidido aplicar la arquitectura de software de tres niveles, que es
una variación de la ya muy conocida arquitectura Cliente-Servidor, donde la carga se divide
en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación
(interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra
para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente.
Esta misma consiste en cómo organi•zar el modelo de diseño en capas, que pueden
estar físicamente distribuidas, lo cual quiere decir que los componentes de una capa sólo
pueden hacer referencia a componentes en capas inmediatamente inferiores. Este patrón es
importante porque simplifica la comprensión y la organización del desarrollo de sistemas
complejos, reduciendo las dependencias de forma que las capas más bajas no son conscientes
de ningún detalle o interfaz de las superiores. Además, nos ayuda a identificar qué puede
reutilizarse, y proporciona una estructura que nos ayuda a tomar decisiones sobre qué partes
comprar y qué partes construir.
Esta separación entre la lógica de aplicación de la interfaz de usuario añade una
enorme flexibilidad al diseño de la aplicación. Pueden construirse y desplegarse múltiples
interfaces de usuario sin cambiar en absoluto la lógica de aplicación siempre que está presente
una interfaz claramente definida a la capa de presentación.
● Diagrama arquitectura
43
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
44
Figura 4. Diagrama de despliegue, funcionamiento del backend Miconcejo
Fuente: Elaboración propia
Patrones de diseño a utilizar
Durante el análisis, planeación y desarrollo del proyecto, hemos podido constatar que
el desarrollo de la aplicación cuenta con dos situaciones: Desarrollo Frontend y Desarrollo
Backend.
El Frontend tiende a ser programación, pero el diseño de la app también hace parte
del mismo; ya que es la parte encargada de maquetar la estructura semántica del contenido,
codificar el diseño en hojas de estilo y agregar la interacción con el usuario (JavaScript).
Mientras que el backend compone el acceso a bases de datos y generación de
plantillas del lado del servidor. En backend se encargan de implementar MySQL, Postgres,
SQL Server o MongoDB. Luego, un lenguaje como PHP o JSP, o frameworks como RoR,
Django, Node.JS o .NET se conectan a la base de datos.
La importancia de los patrones de desarrollo radica en el backend, cuando empezamos
a desarrollar software, es común que cada uno utilice su propia lógica, conocimientos y
experiencia para crear código. Y esto muchas veces resulta en desarrollos complejos que sólo
su creador entiende. Pero ¿es posible desarrollar un módulo que otro programador pueda
aprovechar entender y mejorar? La respuesta está en los patrones de diseño. Estos
básicamente son modelos y/o estructuras que sirven como guía para que los programadores
trabajen sobre ellos.
Por lo que podríamos definir que un patrón de diseños es, una manera de resolver un
problema. Entonces partiendo desde esta definición analizamos plantearnos como objetivos
de solución de problema sobre estructura de codificación práctica, teórica y aplicada al
desarrollo del Bakckend de la app, los siguientes:
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
45
• Estandarizar el lenguaje entre programadores.
• Evitar perder tiempo en soluciones a problemas ya resueltos o conocidos.
• Crear código reusable (excelente ventaja).
Los patrones de diseño que hemos decidido implementar son:
• Adapter: El cual se utiliza para transformar una interfaz en otra, de tal modo que
una clase que no pueda utilizar la primera haga uso de ella a través de la segunda.
• Facade: El cual viene motivado por la necesidad de estructurar un entorno de
programación y reducir su complejidad con la división en subsistemas,
minimizando las comunicaciones y dependencias entre estos.
• Iterator: Este define una interfaz que declara los métodos necesarios para acceder
secuencialmente a un grupo de objetos de una colección.
• Observer: Que define una dependencia de uno-a-muchos entre objetos, de forma
que cuando un objeto cambie de estado se notifique y actualicen automáticamente
todos los objetos que dependen de él.
• Strategy: Este se clasifica como patrón de comportamiento porque determina
cómo se debe realizar el intercambio de mensajes entre diferentes objetos para
resolver una tarea.
• MVC (Modelo Vista controlador): Es un patrón de arquitectura de software, que
separa los datos y la lógica de negocio de una aplicación de su representación y
el módulo encargado de gestionar los eventos y las comunicaciones.
• Flyweight: sirve para eliminar o reducir la redundancia cuando tenemos gran
cantidad de objetos que contienen información idéntica, además de lograr un
equilibrio entre flexibilidad y rendimiento.
• Object pool: usa un conjunto de objetos inicializados preparados para su uso. Esto
es más efectivo normalmente que creando y destruyendo los objetos bajo
demanda.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
46
• Diagrama componentes
47
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
48
Figura 5. Diagrama de componentes, funcionamiento de la parte de software de Mi
concejo
Fuente: Elaboración propia
Administración configuración
Administración de la configuración (Configuration management CM) es el conjunto de
actividades relacionadas con la administración de la evolución de los productos software durante
todo su ciclo de vida. Para ello es necesario identificar, organizar y controlar las modificaciones
al producto con el objetivo de maximizar la productividad a la vez que se minimizan los errores.
Es el control que se tiene sobre cada uno de los componentes de configuración de un producto
con el fin de que todos los cambios que se realicen a estos componentes, una vez que han sido
aprobados, se hagan de forma controlada y que en todo momento se conozca cuál es la versión
vigente de cada uno. Facilita la identificación e integración de los componentes de configuración
que conforman los entregables del proyecto. Es el proceso de identificar la configuración del
producto para controlar sistemáticamente los cambios a la misma y mantener su integridad a lo
largo de todo el ciclo de vida del proyecto. Algunos problemas comunes que conllevan a la
adopción de CM son:
• No se encuentra la última versión del código fuente.
• Errores corregidos en versiones previas aparecen nuevamente.
• No se conoce qué módulos comprende el sistema entregado al cliente.
• La integración del sistema toma demasiado tiempo.
• Los programadores están trabajando en una versión incorrecta del código.
• Versiones incorrectas del código son probadas.
• No existe seguimiento de los requerimientos, documentos y códigos.
Pero, difícilmente un archivo de código o un documento de texto está terminado con la
primera escritura; necesita cambios o reescrituras para corregir errores, modificar su contenido...
A medida que el documento cambia existen dos opciones, mantener un historial de cambios o
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
49
dejar que evolucione sin memoria. El control de versiones es un método estándar para mantener
esta memoria haciendo además que sea útil para el desarrollo futuro.
En nuestro caso por decisión propia e inconvenientes con la plataforma Github, se optó
por trabajar con Bitbucket, siendo esta una plataforma de desarrollo colaborativo de software
para alojar proyectos utilizando el sistema de control de versiones Git., permitiéndonos cumplir
con los objetivos de este taller; además de tener mejor control sobre las versiones de nuestro
proyecto.
Bitbucket aloja nuestro proyecto en la nube y nos brinda herramientas muy útiles para el
trabajo en equipo, dentro del desarrollo de este.
Una de las cosas más importantes en un proyecto de software en estos tiempos es contar
con una herramienta de integración continua que no es otra cosa que probar que la integración
entre la base de código y las ramas de configuración no solo pasen las pruebas unitarias, sino que
además se comporten adecuadamente en un entorno que emule o sea lo más parecido al entorno
en el cual lo ejecutaremos, Gracias a esto se puede seguir cada commit de un problema en este
popular gestor de incidencias por lo que permite controlar las actividades por branch, agregar
keys de Google Analytics.
Esto quiere decir guardar en determinado momento los cambios efectuados a un archivo
o conjunto de archivos, con la oportunidad que tener acceso a ese historial de cambios, ya sea
para regresar a una de esas versiones o para hacer comparaciones entre ellas.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
50
Figuras 6,1 – 6,2. Interfaz de login “mi concejo App cali” versionando, sin/con botón de registro de usuario.
Fuente propia
Figura 6,3. Interfaz registro de usuario. Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
51
Lo primero que si hizo fue crear una cuenta en Bitducket, llenando el típico formulario de registro
para un nuevo usuario, una vez hecho esto se procederá a crear un nuevo proyecto (En este caso
“mi Concejo App Cali”) y a su vez se crear un nuevo repositorio para el mismo.
Figura 7,1. Creación de repositorio de manera gráfica. Fuente propia
Después de esto se procederá a crear una carpeta local referente al almacenaje del proyecto de la
misma forma (en nuestro caso la carpeta se llama “reposMiAppCali”), apartir de aquí
comenzamos a jugar con la terminal instalada como sugerencia por “Git” siendo la misma,
“MINGW64”, por lo que seleccionaremos con clic derecho “Git Bash Here” sobre la carpeta a
creada, a continuación, se muestra el inicio tradicional como comando de Git:
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
52
Figura 7,2. Interfaz de interpretación de comandos MINGW64. Fuente propia
Una vez hecho esto procederemos a clonar el repositorio a nuestro sistema local, por lo que
estableceremos el protocolo en HTTPS para hacer efectiva la clonación, esto lo hacemos por
medio de la ventana inicial del Bitducket, donde se nos sugiere utilizar este tipo de clonación.
Figura 7,2. Descripción repositorio con enlace de clonación. Fuente propia
Que, al hacerse uso en la terminal, nos permitirá tener una copia directa del fichero alojado en
la web.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
53
Figura 7,3. Descripción repositorio con enlace de clonación. Fuente propia
Creándonos una subcarpeta con el nombre de nuestro fichero (mi-app-concejo-cali).
Figura 7,4. Generación repositorio local. Fuente propia
Y dentro de la misma se nos mostrara los archivos de nuestro repositorio alojado en la nube, que
en nuestro caso estará vacío, al igual se nos creara una nueva carpeta “Fantasma con la
configuración de nuestro repositorio”.
Para subir nuestros archivos y/o carpetas, pondremos estos dentro la carpeta “mi-app- concejo”.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
54
Figura 7,5. Gestión de proyecto en repositorio local. Fuente propia
De manera seguida y desde nuestra consola ejecutaremos el comando “Git status”,
permitiéndonos conocer, el estado de nuestra carpeta local, además de conocer los archivos que
han sido modificado y no han sido guardados.
Figura 7,6. Resultado del comando “Git status” en el intérprete MINGW64 aplicado a la carpeta “db”. Fuente
propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
55
Figura 7,7. Comando “Git add” usado para importar archivos al repositorio de la nube aplicado a la carpeta “db”.
Fuente propia
Figura 7,8. Resultado del comando “Git status” en el intérprete MINGW64 aplicado a la carpeta “App”. Fuente
propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
56
Figura 7,9. Comando “Git add” usado para importar archivos al repositorio de la nube aplicado a la carpeta
“App”. Fuente propia
El resultado de estas líneas de comandos nos muestra los archivos que no tienen seguimiento, lo
que quiere decir que Git ve un archivo que no pertenece a una confirmación anterior. El resultado
del estado también nos muestra el siguiente paso que se debe seguir: añadir el archivo; para poder
hacer esto se debe indicar le a Git que realice el seguimiento de los nuevos archivos mediante el
comando “Git add”. Al igual que cuando crea un archivo y o carpeta (Mkdir xxxx, echo
"xxxxxxxxxxx" >> xxxxxxxxx.txt), el comando “Git add” no devuelve nada cuando se introduce
correctamente.
El comando “Git add” envía los cambios del directorio en curso al entorno de ensayo de Git. El
entorno de ensayo es la zona en la que prepara una instantánea de un conjunto de cambios antes
de confirmarlos en el historial oficial.
Ahora volveremos a usar el comando “Git status”, con el que podremos ver que se ha añadido
el archivo nuevo (preparado).
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
57
Figura 8,1. Resultado del comando “Git status” en el intérprete MINGW64, después de haber de haber aplicado la
sentencia “Git add” sobre la carpeta db. Fuente propia
Figura 8,2. Resultado del comando “Git status” en el intérprete MINGW64, después de haber de haber aplicado la
sentencia “Git add” sobre la carpeta App. Fuente propia.
Ahora introduciremos el comando “Git commit” con un mensaje de confirmación, como se
muestra en las siguientes imágenes. La –m indica que incluye un mensaje de confirmación.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
58
Figura 8,3. Sintaxis de uso “Git commit” y su resultado al ser aplicada en la carpeta “db”. Fuente propia
Figura 8,4. Sintaxis de uso “Git commit” y su resultado al ser aplicada en la carpeta “App”. Fuente propia
El comando “git commit” confirma la instantánea preparada en el historial del proyecto. En
combinación con “git add”, este proceso define el flujo de trabajo básico de todos los usuarios
de Git; que a su vez también nos confirma la creación de modelos en el repositorio de la nube,
formado a partir de los archivos almacenados el repositorio local.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
59
Ahora enviaremos los cambios confirmados a Bitbucket mediante el comando “Git push origin
master”. Este comando especifica que estás enviando cambios a la rama maestra (la rama de
Bitbucket) en el origen (el servidor de Bitbucket).
Figuras 8,5 – 8,6. Confirmación y envíos de los cambios a la rama “Máster”, mediante el comando “Git
push origin master”. Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
60
El proyecto ya ha quedado almacenado en nuestro repositorio en la nube, pero si quisiéramos
hacer una modificación a algún archivo sin modificar directamente lo previamente almacenado
como una copia de seguridad, tendremos que hacer una rama directamente de nuestro
repositorio a través de la rama creada por defecto “master”.
Figuras 8,7. Creación de nueva rama de manera remota por medio del comando “Git Branch xxxxx”, en este
caso nombrada como “future-plans”. Fuente propia
Este comando crea una rama, pero no cambia a dicha rama; El historial del repositorio no se
modifica, lo único que sucede es que obtiene un puntero a la rama actual. Para empezar a
trabajar con la nueva rama, se tiene que extraer la rama que quieres usar.
Para hacer uso de esta rama se tendrá que usar El comando “git checkout” que a su vez trabaja
en conjunto con “git branch”. Como se esta creando una rama para trabajar en algo nuevo,
cada vez que se cree una nueva rama (con git branch), tendremos que asegurarnos de que se
extrajo (con git checkout) si vas a usar.
En nuestro caso hemos decido nombrar a esta nueva rama como future_plans (Planes futuros).
Pero en nuestro caso este comando no nos fue de mucha ayuda, a pesar que no permitia entrar
a esta rama, y modicar los archivos dentro de la carpeta “App”, el mismo detectaba los cambios,
pero no los guardaba dentro del repositorio en la nube, sin importar de hacer ejecución del
comando “Git add”, ni el comando “Git commit”, automáticamente se borraban los datos de
la carpeta, y se descargaban los que ya se encontraban en el repositorio, en otras palabras no
permitían hacer algún tipo de modificación.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
61
Figuras 8,8. Errores en la bifurcación del proyecto, como resultado se cargaba automáticamente un backup de la
rama master ya existente, pero no se permite la visualización de los mismos. Fuente propia
Para solucionar esto, hicimos uso de un nuevo comando llamado “git fetch” que a su vez se es
ejecutado con “git checkout”, permitiéndonos trae los cambios de su rama sucesora (en este
caso la rama master), pero los deja en otra rama, hasta que se hace el “git merge” para traerlos
al repositorio local, como en este caso solo tenemos que versionar el código de login de la App
en el repositorio de la nube, solo utilizaremos “git fetch && git checkout Plans-future” y
dejaremos de un lado el “git merge”.
Figuras 8,9. Uso del comando “git fetch && git checkout Plans-future”, con el fin de traer los cambios de la
rama sucesora en este caso “Master”. Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
62
Nótese bien que el comando “Git fetch” es utiliza durante 2 ocasiones, esto debido a que se
creó una nueva rama con el nombre “Plans-future” con el fin de versionar todo el proyecto por
completo, además también se hace el uso de este como sugerencia de la plataforma
“Bitbucket”, así que se puede apreciar siendo utilizado con la rama “master” y la nueva rama
“Plans-future”.
Una vez hecho esto, se vuelve a modificar la carpeta “App” con los nuevos archivos que serán
agregados y volvemos a ejecutar el comando “Git status”.
Figura 9,1. Resultado del comando “Git status” en el intérprete MINGW64 aplicado a la carpeta
“/App/Interfaz”, con el fin de agregar nuevas versiones y funcionalidades del código. Fuente propia
Donde nueva mente se nos vuelve a mostrar los cambios hechos en la carpeta y se nos sugiere
usar la serie de comandos “Git add” y “Git commit”, así que haremos uso de estos.
Por lo que usaremos el comando “Git add App/” haciendo uso de la etiqueta “/” como
referencia a subir la carpeta por completa.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
63
Figura 9,2. Aplicación del comando “Git add App/” en el intérprete MINGW64 aplicado a la carpeta
“/App/Interfaz”, con el fin de agregar nuevas versiones y funcionalidades del código. Fuente propia
Ya para finalizar y como se hizo previamente, confirmaremos este cambio con el comando
“Git push” que nos permite enviar los commits desde nuestro repositorio local Git local al
repositorio remoto.
Figura 9,3. Resultado se usar “Git push”, mostrándonos la carga con éxito de nuestros archivos al repositorio
remoto. Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
64
Con esto, nuestro avance parcial del proyecto queda totalmente almacenado y versionado en un
repositorio de BitBucket, a continuación, se mostrará como queda nuestro proyecto almacenado
gráficamente en la plataforma de la nube.
A continuación, se mostrarán imágenes ilustrativas de cómo queda nuestro repositorio remoto
en la nube.
Figura 10,1. Ventana principal de repositorio (en la rama master). Fuente propia
Figura 10,2. Ventana principal de repositorio (en la rama Plans-future). Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
65
Figura 10,3. Ventana carpeta App del repositorio (en la rama master). Fuente propia
Figura 10,4. Ventana carpeta App del repositorio (en la rama Plans-future). Fuente propia
Figura 10,5. Ventana carpeta interfaz del repositorio (en la rama master). Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
66
Figura 10,6. Ventana carpeta App del repositorio (en la rama Plans-future). Fuente propia
Figura 10,7. Ventana carpeta interfaz del repositorio (en la rama master). Fuente propia
Figura 10,8. Ventana carpeta interfaz del repositorio (en la rama Plans-future). Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
67
Figura 10,9. Ventana carpeta interfaz-login del repositorio (en la rama master). Fuente propia
Figura 11,1. Ventana carpeta BD del repositorio (en la rama master). Fuente propia
Figura 11,2. Ventana carpeta BD-Scripts del repositorio (en la rama master). Fuente propia
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
68
Figura 11,3. Ventana carpeta BD-Scripts del repositorio (en la rama master). Fuente propia
Otros comandos básicos que fueron usados son:
o Mkdir: Es un comando usado para crear un nuevo subdirectorio o carpeta del sistema
de archivos
o CD: sirve para mostrar el nombre del directorio actual y, también, permite cambiar de
directorio
Nota: Aparte de cargar la interfaz de login y el formulario de registro de usuario de la App, también
se importó al repositorio remoto, su modelo relacional de la base de datos y sus debido Scripts
de Creación, Actualización y Eliminación entre otros, se puede encontrar estos documentos en
el enlace del repositorio o al final de este documento en la sección de Anexos.
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO
MUNICIPAL CALI (Mi Concejo App Cali)
69
Pruebas de software
Las pruebas de software son entendidas como el proceso sistemático de prevención,
detección y corrección de defectos, es la herramienta más eficaz para asegurarnos la calidad
de nuestro producto software.
La Importancia que tienen las pruebas del software sobre nuestro proyecto, son de
gran utilidad para analizar y/o detectar las posibles, futuras que poder sufrir la App, además
de facilitarnos la entrega de este ya finalizado cuente con altos estándares de calidad y se
encuentre totalmente culminado.
Para la prueba de software existen una serie de modelos (Ciclos de vidas), que tienen
suma importancia para realizar las pruebas sobre este, estos modelos tienen varios esquemas
que son aplicados al software como lo son:
• Modelo Cascada: el cual permite Realizar pruebas cuando está terminado la
construcción del sistema.
• Modelo Incremental: con este modelo se realizan pruebas a cada etapa o incremento
que haiga en el sistema.
• Modelo Evolutivo: este se enfoca en el uso y retroalimentación de los usuarios.
• Modelo Espiral: este modelo se enfoca en las pruebas cíclicas de verificación y
validación en el desarrollo del sistema.
• Modelo XP: Este modelo se realiza la prueba durante las mejoras que se le hacen al
sistema.
Por esto y por muchas razones es de suma importancia realizamos las pruebas del
software desde que iniciamos durante y finalizado del mismo, para cuando llego el momento
de finalizar y hacer la entrega de este se encuentre lo más optimizado posible. Estas pruebas
son importantes en el desarrollo de las 5 etapas definidas en la metodología ágil de desarrollo
(6M’s) y al finalizar el software, ya que si realizamos dichas pruebas solo al finalizar el
software corremos el riesgo que durante el desarrollo o peor aún al iniciar la App tengamos
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)

Más contenido relacionado

Similar a DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)

Convergencia tecnologica grupo_30147_2 (1)
Convergencia tecnologica grupo_30147_2 (1)Convergencia tecnologica grupo_30147_2 (1)
Convergencia tecnologica grupo_30147_2 (1)ruby1010
 
Convergencia tecnologica grupo_30147_2
Convergencia tecnologica grupo_30147_2Convergencia tecnologica grupo_30147_2
Convergencia tecnologica grupo_30147_2gabirivera_
 
“Gobierno electrónico... ¿Lejos de la meta esperada?”
“Gobierno electrónico... ¿Lejos de la meta esperada?”“Gobierno electrónico... ¿Lejos de la meta esperada?”
“Gobierno electrónico... ¿Lejos de la meta esperada?”Gisele Parvanoff
 
Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?
Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?
Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?Gisele Parvanoff
 
Una mirada a la Ley Nº 20.922 de Municipalidades
Una mirada a la Ley Nº 20.922 de MunicipalidadesUna mirada a la Ley Nº 20.922 de Municipalidades
Una mirada a la Ley Nº 20.922 de MunicipalidadesNelson Leiva®
 
Sistematizacion sistema de transparencia municipal
Sistematizacion sistema de transparencia municipalSistematizacion sistema de transparencia municipal
Sistematizacion sistema de transparencia municipalAurora Cubias
 
Edgar desarrolla cd_evidencia4
Edgar desarrolla cd_evidencia4Edgar desarrolla cd_evidencia4
Edgar desarrolla cd_evidencia4EdgMr
 
Presentation #CAMBIOMEXICO por @jorgeavilam
Presentation #CAMBIOMEXICO por @jorgeavilamPresentation #CAMBIOMEXICO por @jorgeavilam
Presentation #CAMBIOMEXICO por @jorgeavilamJorge Avila
 
ONTSI 2019 Informe anual sociedad de la información
ONTSI 2019 Informe anual sociedad de la informaciónONTSI 2019 Informe anual sociedad de la información
ONTSI 2019 Informe anual sociedad de la informaciónRichard Canabate
 
El gobierno electrónico en la gestión pública
El gobierno electrónico en la gestión públicaEl gobierno electrónico en la gestión pública
El gobierno electrónico en la gestión públicaAlejandra Naser
 
Gobierno electronico en_la_gp 2011
Gobierno electronico en_la_gp 2011Gobierno electronico en_la_gp 2011
Gobierno electronico en_la_gp 2011David Coz Seguil
 
Webinar 2010. Presentación Rubén Kaztman
Webinar 2010. Presentación Rubén KaztmanWebinar 2010. Presentación Rubén Kaztman
Webinar 2010. Presentación Rubén Kaztmanwebinar20101a1
 
Primer informe subtel
Primer informe subtelPrimer informe subtel
Primer informe subteljimeluz
 
Primer informe subtel
Primer informe subtelPrimer informe subtel
Primer informe subteljimeluz
 

Similar a DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) (20)

Gobierno Electrónico Municipal
Gobierno Electrónico MunicipalGobierno Electrónico Municipal
Gobierno Electrónico Municipal
 
Convergencia tecnologica grupo_30147_2 (1)
Convergencia tecnologica grupo_30147_2 (1)Convergencia tecnologica grupo_30147_2 (1)
Convergencia tecnologica grupo_30147_2 (1)
 
Convergencia tecnologica grupo_30147_2
Convergencia tecnologica grupo_30147_2Convergencia tecnologica grupo_30147_2
Convergencia tecnologica grupo_30147_2
 
“Gobierno electrónico... ¿Lejos de la meta esperada?”
“Gobierno electrónico... ¿Lejos de la meta esperada?”“Gobierno electrónico... ¿Lejos de la meta esperada?”
“Gobierno electrónico... ¿Lejos de la meta esperada?”
 
Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?
Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?
Gobierno electrónico del municipio de Quilmes ... ¿Lejos de la meta esperada ?
 
Informe
InformeInforme
Informe
 
Una mirada a la Ley Nº 20.922 de Municipalidades
Una mirada a la Ley Nº 20.922 de MunicipalidadesUna mirada a la Ley Nº 20.922 de Municipalidades
Una mirada a la Ley Nº 20.922 de Municipalidades
 
Sistematizacion sistema de transparencia municipal
Sistematizacion sistema de transparencia municipalSistematizacion sistema de transparencia municipal
Sistematizacion sistema de transparencia municipal
 
Informatizacion
InformatizacionInformatizacion
Informatizacion
 
Edgar desarrolla cd_evidencia4
Edgar desarrolla cd_evidencia4Edgar desarrolla cd_evidencia4
Edgar desarrolla cd_evidencia4
 
Presentation #CAMBIOMEXICO por @jorgeavilam
Presentation #CAMBIOMEXICO por @jorgeavilamPresentation #CAMBIOMEXICO por @jorgeavilam
Presentation #CAMBIOMEXICO por @jorgeavilam
 
ONTSI 2019 Informe anual sociedad de la información
ONTSI 2019 Informe anual sociedad de la informaciónONTSI 2019 Informe anual sociedad de la información
ONTSI 2019 Informe anual sociedad de la información
 
Informe final
Informe finalInforme final
Informe final
 
Estrategia de comercio electrónico aplicada a un Municipio
Estrategia de comercio electrónico aplicada a un MunicipioEstrategia de comercio electrónico aplicada a un Municipio
Estrategia de comercio electrónico aplicada a un Municipio
 
El gobierno electrónico en la gestión pública
El gobierno electrónico en la gestión públicaEl gobierno electrónico en la gestión pública
El gobierno electrónico en la gestión pública
 
Gobierno electronico en_la_gp 2011
Gobierno electronico en_la_gp 2011Gobierno electronico en_la_gp 2011
Gobierno electronico en_la_gp 2011
 
El gobierno electronico_en_la_gestion_publica
El gobierno electronico_en_la_gestion_publicaEl gobierno electronico_en_la_gestion_publica
El gobierno electronico_en_la_gestion_publica
 
Webinar 2010. Presentación Rubén Kaztman
Webinar 2010. Presentación Rubén KaztmanWebinar 2010. Presentación Rubén Kaztman
Webinar 2010. Presentación Rubén Kaztman
 
Primer informe subtel
Primer informe subtelPrimer informe subtel
Primer informe subtel
 
Primer informe subtel
Primer informe subtelPrimer informe subtel
Primer informe subtel
 

Más de Daniel A. Lopez Ch.

Proyecto final curso – Electrónica Digital I
Proyecto final curso – Electrónica Digital IProyecto final curso – Electrónica Digital I
Proyecto final curso – Electrónica Digital IDaniel A. Lopez Ch.
 
Desarrollo y sistematizacion de creditos del banco caja mundial2
Desarrollo y sistematizacion de creditos del banco caja mundial2Desarrollo y sistematizacion de creditos del banco caja mundial2
Desarrollo y sistematizacion de creditos del banco caja mundial2Daniel A. Lopez Ch.
 
Ondas estacionarias a través de una cuerda tensa
Ondas estacionarias a través de una cuerda tensaOndas estacionarias a través de una cuerda tensa
Ondas estacionarias a través de una cuerda tensaDaniel A. Lopez Ch.
 
DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...
DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...
DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...Daniel A. Lopez Ch.
 
PROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSA
PROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSAPROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSA
PROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSADaniel A. Lopez Ch.
 
CALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICO
CALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICOCALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICO
CALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICODaniel A. Lopez Ch.
 
SISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDAD
SISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDADSISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDAD
SISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDADDaniel A. Lopez Ch.
 
ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.
ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.
ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.Daniel A. Lopez Ch.
 

Más de Daniel A. Lopez Ch. (8)

Proyecto final curso – Electrónica Digital I
Proyecto final curso – Electrónica Digital IProyecto final curso – Electrónica Digital I
Proyecto final curso – Electrónica Digital I
 
Desarrollo y sistematizacion de creditos del banco caja mundial2
Desarrollo y sistematizacion de creditos del banco caja mundial2Desarrollo y sistematizacion de creditos del banco caja mundial2
Desarrollo y sistematizacion de creditos del banco caja mundial2
 
Ondas estacionarias a través de una cuerda tensa
Ondas estacionarias a través de una cuerda tensaOndas estacionarias a través de una cuerda tensa
Ondas estacionarias a través de una cuerda tensa
 
DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...
DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...
DETERMINACIÓN EXPERIMENTAL DE ONDAS SUPERFICIALES EN EL AGUA A TRAVES DE LA C...
 
PROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSA
PROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSAPROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSA
PROPAGACIÓN DE ONDAS ARMONICAS TRANSVERSALES EN UNA CUERDA TENSA
 
CALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICO
CALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICOCALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICO
CALCULO EXPERIMENTAL DE LA GRAVEDAD MEDIANTE LA OSCILACION DE UN PENDULO FISICO
 
SISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDAD
SISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDADSISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDAD
SISTEMA FÍSICO OSCILATORIO BAJO LA ACCIÓN DE GRAVEDAD
 
ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.
ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.
ELONGACION DE UN RESORTE MEDIANTE SU CONSTANTE DE ELASTICIDAD.
 

Último

CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfasnsdt
 
Brochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfBrochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfhellotunahaus
 
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdfLAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdfBrbara57940
 
SENSICO CURSO DE EXPEDIENTE TECNICO DE OBRAS
SENSICO CURSO DE EXPEDIENTE TECNICO DE OBRASSENSICO CURSO DE EXPEDIENTE TECNICO DE OBRAS
SENSICO CURSO DE EXPEDIENTE TECNICO DE OBRASpaotavo97
 
PRESENTACION SOBRE EL PROYECTO DE GRADO .
PRESENTACION SOBRE EL PROYECTO DE GRADO .PRESENTACION SOBRE EL PROYECTO DE GRADO .
PRESENTACION SOBRE EL PROYECTO DE GRADO .Rosa329296
 
Presentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptxPresentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptxbarbaracantuflr
 
Arquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth BermúdezArquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth BermúdezNaza59
 
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHEAPORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHEgonzalezdfidelibus
 
EL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdf
EL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdfEL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdf
EL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdfCeciliaTernR1
 
Maquetas-modelos-prototipos-Mapa mental-.pdf
Maquetas-modelos-prototipos-Mapa mental-.pdfMaquetas-modelos-prototipos-Mapa mental-.pdf
Maquetas-modelos-prototipos-Mapa mental-.pdforianaandrade11
 
Arquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMArquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMNaza59
 
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura ModernaLe Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Modernasofpaolpz
 
TRABAJO DESDE CASA REGION INSULAR.docx.pdf
TRABAJO DESDE CASA REGION INSULAR.docx.pdfTRABAJO DESDE CASA REGION INSULAR.docx.pdf
TRABAJO DESDE CASA REGION INSULAR.docx.pdfDamarysNavarro1
 
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoTIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoWilsonChambi4
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturajesusgrosales12
 
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdfcnaomi195
 
Portafolio de Diseño Gráfico por Giorgio B Huizinga
Portafolio de Diseño Gráfico por Giorgio B HuizingaPortafolio de Diseño Gráfico por Giorgio B Huizinga
Portafolio de Diseño Gráfico por Giorgio B Huizingagbhuizinga2000
 
Arquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der RoheArquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der Roheimariagsg
 
plantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialplantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialAndreaMlaga1
 
Quinto-Cuaderno-del-Alumno-optimizado.pdf
Quinto-Cuaderno-del-Alumno-optimizado.pdfQuinto-Cuaderno-del-Alumno-optimizado.pdf
Quinto-Cuaderno-del-Alumno-optimizado.pdfPapiElMejor1
 

Último (20)

CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
 
Brochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfBrochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdf
 
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdfLAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
 
SENSICO CURSO DE EXPEDIENTE TECNICO DE OBRAS
SENSICO CURSO DE EXPEDIENTE TECNICO DE OBRASSENSICO CURSO DE EXPEDIENTE TECNICO DE OBRAS
SENSICO CURSO DE EXPEDIENTE TECNICO DE OBRAS
 
PRESENTACION SOBRE EL PROYECTO DE GRADO .
PRESENTACION SOBRE EL PROYECTO DE GRADO .PRESENTACION SOBRE EL PROYECTO DE GRADO .
PRESENTACION SOBRE EL PROYECTO DE GRADO .
 
Presentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptxPresentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptx
 
Arquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth BermúdezArquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth Bermúdez
 
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHEAPORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHE
 
EL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdf
EL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdfEL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdf
EL CONCEPTO Y EL PARTIDO ARQUITECTONICO.pdf
 
Maquetas-modelos-prototipos-Mapa mental-.pdf
Maquetas-modelos-prototipos-Mapa mental-.pdfMaquetas-modelos-prototipos-Mapa mental-.pdf
Maquetas-modelos-prototipos-Mapa mental-.pdf
 
Arquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMArquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSM
 
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura ModernaLe Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
 
TRABAJO DESDE CASA REGION INSULAR.docx.pdf
TRABAJO DESDE CASA REGION INSULAR.docx.pdfTRABAJO DESDE CASA REGION INSULAR.docx.pdf
TRABAJO DESDE CASA REGION INSULAR.docx.pdf
 
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoTIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitectura
 
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
 
Portafolio de Diseño Gráfico por Giorgio B Huizinga
Portafolio de Diseño Gráfico por Giorgio B HuizingaPortafolio de Diseño Gráfico por Giorgio B Huizinga
Portafolio de Diseño Gráfico por Giorgio B Huizinga
 
Arquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der RoheArquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der Rohe
 
plantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialplantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especial
 
Quinto-Cuaderno-del-Alumno-optimizado.pdf
Quinto-Cuaderno-del-Alumno-optimizado.pdfQuinto-Cuaderno-del-Alumno-optimizado.pdf
Quinto-Cuaderno-del-Alumno-optimizado.pdf
 

DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)

  • 1. 1 DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) Juan Camilo Giraldo Hernández, juancamiloh7@gmail.com Daniel Alexander Lopez Chaux, a.alexander718@hotmail.com Proyecto final Ingeniería de Software II Docente: Luis Carlos Ospina Tobón, estudiante Maestría Institución Universitaria Antonio José Camacho Facultad de Ingenierías Ingeniería de Sistemas Cali - Colombia 2020
  • 2. Tabla de contenido 2 Descripción del problemaa resolver....................................................................................... 5 Posible solución para la resolverel problema......................................................................... 7 StakeHolders ..........................................................................................................................8 Requerimientos Requerimientos funcionales .....................................................................................19 Requerimientos no funcionales ................................................................................22 Estimación por puntos de caso de uso................................................................................... 25 Metodología para implementar............................................................................................. 31 Arquitectura para utilizar...................................................................................................... 41 Diagrama de Despliegue....................................................................................................... 44 Patrones de diseñoa utilizar.................................................................................................. 45 Diagrama de Componentes................................................................................................... 48 Administración de configuración…………………………………………………………...48 Pruebas de software…………………………………………………………………………69 Estándares de documentación……………………………………………………………….83 Tipos de mantenimiento de software a aplicar en el desarrollo de software…………………………………………………91 Referencias…………………………………………………………………………………106 Anexos……………………………………………………………………………………...108
  • 3. Lista de tablas 3 Tabla 1 Contextualización Stakeholders……………………………………………………………..8 Tabla 2 Definición conceptual Stakeholders Pt. 1……………………………………………………8 Tabla 2 Definición conceptual Stakeholders Pt. 2…………………………………………………..13 Tabla 4 Contador actores e identificación su complejidad………………………………………….25 Tabla 5 Contador de casos de uso e identificación su complejidad………………………………...26 Tabla 6 Calculo los PCUs no ajustados…………………………………………………………….26 Tabla 7 Determinación factores de complejidad técnicos…………………………………………..26 Tabla 8 Determinación factores de complejidad ambiental………………………………………...29 Tabla 9 Análisis y estimación de esfuerzo………………………………………………………….30 Tabla 10 Funciones y determinaciones finales de la distribución porcentual del tiempo de esfuerzo en cada una de las etapas del proyecto……………………………………….30
  • 4. Lista de figuras 4 Figura 1. Etapas de la metodología para el desarrollo de aplicaciones móviles ………………….32 Figura 2. Posibles diagramas para el desarrollo de aplicaciones ………………………………….35 Figura 3. Diagrama de espina de pescado básico………………………………………………….39 Figura 4. Diagrama de despliegue, funcionamiento del backend Miconcejo……………………...44 Figura 5. Diagrama de componentes, funcionamiento de la parte de software de Mi concejo…………………………………47 Figuras 6. Previa interfaz login App ……………………………………………………………....48 Figuras 7. Creación repositorio local y remoto ………………………………………………..49-53 Figuras 8. Configuración repositorio…………………………………………………………..54-58 Figuras 9. Versionado proyecto ……………………………………………………………….59-60 Figuras 10. Ilustraciones repositorio en la nube ……………………………………………….61-65 Figura 11. Fases centrales cleanroom……………………………………………………………...72 Figura 12. Tipos de pruebas ………………………………………………………………………75
  • 5. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 5 Descripción del problema a resolver A nivel internacional se han encontrado varias páginas en Internet que tratan de algunas aplicaciones o software que son comercializados en países como México y España, en estos programas se tienen en cuenta varios aspectos como Jurisprudencia, Leyes y el manejo de los mismos procesos, en realidad son muy completos y ya son comercializados en estos países, al parecer han tenido u gran éxito. En Colombia, la Rama Ejecutiva posee un sistema de información para la gestión administrativa el cual le permite mantener controlado el flujo de información de parte del presidente de la república, ministros, los directivos de los Dpto administrativos, superintendentes, Senado, Cámara de representantes, Asambleas departamentales y concejos municipales. Hasta el momento este sistema ha funcionado, pero con algunos vacíos tanto en la parte ejecutiva como al nivel de tecnología, de tal forma que algunas entidades privadasy estatales han generado su propio sistema de gestión con bases de datos, pero estas se crean únicamente para el uso exclusivo de estas entidades. Existen compañías nacionales que también han desarrollado este tipo de software, tales como Emprex web, Orión jurídica y SGP, estos son comercializados, pero todos están licenciados y los costos son altísimos ya que las empresas tendrían que pagar por el costo de las licencias para el manejo de los motores de bases de datos, esto limita a un gran número de usuarios, ignorando completamente a las personas del común que quieran obtener esta información. En el Concejo municipal de la ciudad de Santiago de Cali a diario se maneja un gran flujo de información del cual se derivan las diferentes labores, dicha información no es debidamente organizada por lo cual se pierde veracidad, aumentan los tiempos de respuesta y se extravían documentos lo cual conlleva a la pérdida de diligencias que se programan en cada uno de los procesos ejecutiva y como última consecuencia la pérdida de dinero, lo que ha hecho que muchos ciudadanos y medios de comunicación (La sociedad en general) comienzan a alejarse de esta administración pública, desconociendo así sus derechos a mantenerse informados de lo que pasa en la ciudad, además de generar conflictos sociales debido a la información verídica o no, que sale de la misma, generando así por medio de redes sociales las muy famosas “Fake news”, que ha logrado desinforma a una gran cantidad
  • 6. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 6 de personas, así mismo creando movimientos o bloques sociales de desinformación. La falta de un sistema de información eficiente hace que los procesos se vuelvan más lentos, dispendiosos y se tenga que recurrir a métodos manuales, como por ejemplo listados hechos a mano o en el mejor de los casos recurren al uso de programas que no son los más adecuados para el manejo de información vital en esta administración pública, ya que en estos aplicativos suelen manejar términos jurídicos y se genera contrariedad entre una información y otra, es el caso de revistas, paginas especializadas, periódicos, noticieros, programas de tv y radio, en el que suelen usar varias formatos informativos y conceptuales para almacenarla misma información, es decir existe redundancia de información y muchas veces no es la misma información entre un medio y otro referente a un mismo caso.
  • 7. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 7 Posible solución para la resolver el problema. Por lo que nos hemos propuesto desarrollar una app que le permita a los ciudadanos del común o experto en temas de política local, informarse de manera eficaz, eficiente y efectiva, con información verídica, clara, breve, actualizada y oportuna, lo que le permitirá a los usuarios obtener la capacidad para criticar y entender mejor a la sociedad, además, el simple hecho de estar indagando acerca de sucesos relevantes en nuestra comunidad, fortalece la democracia representativa y participativa, lo que aporta directamente a la mejoría de la gobernabilidad. Es decir, que estar informado, es fundamental para la democracia porque facilita el ejercicio activo de la ciudadanía. La app tiene como objetivo el promover la participación de los ciudadanos de Cali en las decisiones que se toman en el Concejo, la idea está centrada en ofrecer una información constante y transparente acerca de lo que sucede en las plenarias del Concejo e información sobre los concejales, así como de su asistencia, votación y de los proyectos y proposiciones en curso. Una vez el ciudadano se registra a través de su correo electrónico o de su cuenta de Facebook o Twitter, la app le permitirá consultar: ● Las principales noticias que se producen en el Concejo. ● El listado de concejales que incluye foto, perfil, partido político, información de contacto, redes sociales y un historial de voto, así como el registro de los trinos publicados en su cuenta de Twitter. ● El ciudadano podrá escoger su concejal preferido y hacer seguimiento a su trabajo. ● La Agenda actualizada de las actividades administrativas en el concejo. ● La ubicación física de los concejales, es decir el mapa de las Curules donde ubican en la plenaria. ● Streaming: Los ciudadanos no sólo podrán ver las plenarias en vivo sino revisar el archivo de estas. ● Además, cada usuario tendrá acceso directo a la cuenta de Twitter @ConcejoCali donde se registra la actividad de los concejales y de la institución mediante videos, audios y seguimiento minuto a minuto de las plenarias.
  • 8. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 8 StakeHolders Tabla 1 Contextualización Stakeholders Esta sección presenta una lista de los stakeholders involucrados en el proyecto. Para cada uno de ellos, se deben listar los concerns que van a ser tenidos en cuenta en el documento de arquitectura. Esta información se presenta en forma de matriz, donde las filas representan los stakeholders y las columnas los concerns. Cada celda determina el grado de relevancia del concern para el stakeholder (Tabla 2). Finalmente, basados en los concerns relevantes a cada stakeholder se dermina los puntos de vista que se le presentarán. El standard ANSI/IEEE 1471-2000 propone que al menos los siguientes stakeholders sean considerados: usuarios, clientes, desarrolladores y administradores. ● Customer ● Application software developers ● Infrastructure software developers ● End users ● Application system engineers ● Application hardware engineers ● Project manager ● Communications engineers ● Chief Engineer/Chief Scientist ● Program management ● System and software integration and test engineers ● Safety engineers and certifiers ● External organizations ● Operational system managers ● Trainers ● Maintainers ● Auditors ● Security engineers and certifiers Tabla 2 Definición conceptual Stakeholders Pt. 1 Stakeholder Descripción Sociedad Hoy en día la tecnología ha tenido un impacto que ha afectado positiva y negativamente en nuestra sociedad, pero es algo indispensable para todos. ... El desarrollo tecnológico, a fin de cuentas, es el motor fundamental del progreso en nuestra sociedad y este dependerá siempre del uso y manipulación que brindemos, digamos que la importancia del Software para la sociedad, radica en el uso que las personas le den, no se trata solamente de traer juegos nuevos en un dispositivo de 1000 dólares, hablamos de optimizar tareas, incrementar ganancias, aumentar ingresos, optimizar tiempos, hacer la vida más fácil, gracias a que el software hoy en día nos permite hacer infinidad de cosas. Consumidores En muchos de los casos de innovación queda claro que las empresas, antes de pensar en nuevos productos, deben pensar en las necesidades de los consumidores. Esa es la fuente de la innovación. Estudiar, entender y prever las tendencias del consumidor hacen que el margen de error allanzarun nuevo producto disminuya. Pero también hay que mezclar creatividad y modelo de gestión, en nuestro
  • 9. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 9 caso estamos manejando una app que busca acercar al ciudadano común y corriente, a los entes de administración gubernamental, entonces si logramos conocer la conducta del consumidor mejora la posición de la app. Usuarios finales El producir un bien o suministrar un servicio de primera calidad (en nuestro caso una app) requiere cumplir con las expectativas del Usuario final. Sin duda, gran partede las empresas, han comprendido que el tener una política de calidad, que responda a la mejora continua y la plena satisfacción del cliente, es de gran ayuda para la consecución de esta última esencia. Es más, el desarrollo de una aplicación informática ha de estar claramente ligado a una interacción con el usuario final. El mantener viva la relación con los usuarios finales del producto o servicio, mediante un contacto habitual, es de suma ayuda para poder identificar las necesidades del mercado actual. Es lógico pensar que el correcto diseño de unaaplicación que facilite su utilización incrementa la productividad del trabajo diario del usuario y minimiza, entre otros, el tiempo dedicado a comprender la complejidad del programa. Administraciones públicas Las administraciones públicas están en plena transformación. La evolución de los sistemas democráticos pasa por abrir las puertas de las instituciones públicas para conocer las agendas de los responsables públicos y contar con la colaboración ciudadana. En la primera década de siglo XXI comenzó a implantarse la digitalización en las distintas administraciones públicas. Hoy en día es una realidad que permite a los ciudadanos realizar sus trámites burocráticos conmayor facilidad y eficacia. Sin embargo, la e-administración es una modernización del sistema donde el ciudadano se convierte en cliente de los servicios públicos, que, gracias a la tecnología, han mejorado mucho pero que en la actualidad no es suficiente. Siendo estas nuestro principal eje temático, teniendo como objetivo promover la participación de los ciudadanos en Cali en las decisiones que se toman en el Concejo municipal, basándonos en la idea de ofrecer una información constante y transparente acerca de lo que
  • 10. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 10 sucede en las plenarias del concejo e información sobre los senadores, así como de su asistencia, votación y de los proyectos de ley en curso. Medios de comunicación Diseñar publicaciones impresas ha sido históricamente uno de los principales trabajos de muchos estudios de diseño gráfico. Aquel casi obsoleto hoy formato busca un buen reemplazo en el mundo digital. No es difícil darse cuenta de la influencia que los dispositivos móviles tienen hoy en día. Los teléfonos inteligentes y las tabletas se utilizan en todas partes, todo el tiempo, a punto tal que nos volvemos cada vez más dependientes de la tecnología móvil. Una aplicación móvil permite al público acceder a la información donde quieran que esté, siempre que lo desee. Los usuarios obtienen el beneficio de un acceso directo a publicaciones previas, así como características inimaginables en medios impresos. Por ejemplo: el uso de redes sociales y el consumo de contenido multimedia interactivo, o el consumo de pistas de audio con podcasts. música y otros documentos sonoros. La combinación de estas características interactivas puede ofrecer nuevos modos de relación entre editoriales y lectores, y a la vez proporcionar una experiencia de usuario única. El dato más importante es la posibilidad de publicar sin generar un costes y esfuerzo extra, aprovechando las distintas plataformas de publicación. Desarrolladores de la aplicación de software Los desarrolladores de la aplicación de software desarrollaran, crearan y modificaran la aplicación informática de software general, analizando las necesidades del usuario y desarrollando soluciones de software, diseñando o personalizando el software para el uso del consumidor con el objetivo de optimizar la eficiencia operativa; pueden analizar y diseñar las bases de datos dentro de un área de aplicación, trabajando individualmente o coordinando el desarrollo de la base de datos como parte de un equipo. La importancia del desarrollador de software radica en la eficacia de la app que realizó al momento de ejecutar las tareas por las cuales se programó. En pocas palabras que el software sea útil y cumpla para lo que fue hecho. Director de proyecto El director de proyecto será la persona a la cual se le será asignada la tarea de liderar un equipo con la función de conseguir unos objetivos planteados en el desarrollo de
  • 11. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 11 la planeación teniendo la responsabilidad total del planeamiento y ejecución del proyecto. Para poder conseguir sus objetivos, el director de proyectos debe tener una serie de características. Debe ser una persona organizada, apasionada y orientada a las metas cuya principal habilidad sea la capacidad de reconocer los riesgos que afectan al éxito del proyecto, por lo que debe realizar constantes mediciones de factores internos o externos que puedan suponer fuentes de riesgo. El director de proyectos no solo dirige al equipo multidisciplinar de la empresa y app, sino que también da una serie de pautas al cliente para que le proporcione toda la documentación necesaria. No hay que olvidar que en muchos casos el cuello de botella se encuentra en nuestro propio cliente, que bien por falta de tiempo o por interés no proporciona los datos necesarios. Ingenieros de telecomunicaciones El ingeniero de telecomunicaciones se encargará de administrar, crear, diseñar y gestionar sistemas en tecnología de la información y las telecomunicaciones además de brindarnos soluciones técnicas a problemas en la transmisión y recepción de señales y la interconexión de redes que pueda tener la app, dando Convergencia a los servicios en redes de la misma; Administrando, gestionando y bridando seguridad de redes, programación, antenas y servicios de telefonía relacionados a los diversas funciones conceptuales de la app. Permitiéndonos ser autodidactas y proactivos para mantenernos actualizados, resolviendo los problemas técnicos de señales y redes con el mayor caudal de información posible, además para lo que es la adecuación y también la coordinación del montaje respectivo y de la correspondiente buena funcionalidad. De igual forma hace la relación entre la electrónica y la información con la finalidad de sustentar los proyectos referidos a la Telemática. Jefe de ingenieros El jefe de ingenieros es el responsable de realizar estudios, desarrollar y supervisar programas destinados a la optimización en el uso de equipos, recursos humanos, tecnología, materiales y procedimientos para incrementar la eficiencia y la productividad de la realización de la app. El Jefe de Ingeniería revisa y estudia las propuestas de trabajo y los subcontratos. Crean los horarios de trabajo
  • 12. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 12 para cumplir con los plazos establecidos para el proyecto. También pueden diseñar y analizar los equipos usados en el diseño, planeación y escrituración de software. De igual forma, el trabajo de un Jefe de Ingeniería consiste en la organización de los diversos grupos de personas y el cumplimiento de las restricciones presupuestarias y de tiempo. Igualmente, este tipo de profesionales hacen el manejo del personal para todas las fases del proyecto, incluyendo la contratación, la asignación de los trabajos de otros ingenieros y técnicos y revisan que el sitio de trabajo tenga los materiales y equipos adecuados. Gestión del proyecto La gestión del proyecto se basa en la disciplina de administrar el control de proyecto, cuyo objeto de estudio abarca la planificación, organización, motivación y el control de los recursos necesarios para alcanzar un fin determinado de antemano, o sea, cumplir con un objetivo de la app, proyecto. Los proyectos son independientes de la actividad diaria empresarial, por lo que se requiere que se organicen una serie de reuniones para ver cuáles son los objetivos específicos del proyecto. Para que el proyecto tenga éxito es esencial que se realice un trabajo en equipo eficiente. La manera en la que la gestión de proyectos dirigirá el trabajo depende de varios factores, entre ellos: la escalabilidad (la posibilidad de que el proyecto crezca), la importancia y la complejidad de las tareas. La gestión del proyecto está esencialmente dirigida a conseguir los objetivos preestablecidos para proporcionar un beneficio a la organización. Los objetivos pueden expresarse en términos de: resultados consecuencias; beneficios u objetivos estratégicos. Probadores de software Los probadores de software planificaran y llevara a cabo pruebas de software de los ordenadores para comprobar si funcionan correctamente. Identifican el riesgo de sufrir errores la aplicación, detectando errores y los comunican. Evalúan el funcionamiento general del software y sugieren formas de mejorarlo. Entre sus competencias está Construir el plan de testing; diseñar casos de prueba; gestionar los ambientes de prueba; generar los datos de prueba; ejecutar y documentar pruebas, reportando y siguiendo los incidentes encontrados, usando las herramientas apropiadas de acuerdo con los estándares de trabajo de donde se desempeñe.
  • 13. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 13 Lo principal es Asegurar que el software o pieza de software funcione de acuerdo con los requisitos; trabaje con sus interfaces de la forma esperada, detectando en forma temprana defectos y evitando su propagación y llegada al cliente (interno o externo). Ingenieros de seguridad El ingeniero en seguridad informática se encargará de establecer la misión de seguridad informática de la organización y app, definir la política y procesos que permitan el respaldo de la información, definir mecanismos y herramientas para velar por el cumplimiento de las medidas de seguridad, realizar informes cuando le sean requeridos. Además de encargase de la Administración de equipos en seguridad perimetral. Gestión de eventos e incidentes de seguridad. Maintainers Los Maintaners estarán encargados de la modificación de la app después de haber sido entregado (a los usuarios o consumidores) con el fin de corregir defectos, mejorar el rendimiento u otros atributos, o adaptarlo a un cambio en el entorno, versionando la app en repositorios GitHub. Además de mantener la aplicación de una forma optima y fluidapara los usuarios cadavezquese vaya actualizando dicha aplicación Auditores los auditores ayudan a verificar y evaluar las actividades relacionadas con la calidad en el seno del software, así como para la identificación y mejora de las áreas no conformes con el modelo exigido, con el poder ofrecer una aplicación que satisfaga las necesidades de los usuarios. Analizando y verificando la estructura que componen la aplicación con el fin de evaluar si se satisface con la calidad de software que se desea obtener Tabla 3 Definición conceptual Stakeholders Pt. 2 Stakeholder Descripción Sociedad Hoy en día la tecnología ha tenido un impacto que ha afectado positiva y negativamente en nuestra sociedad, pero es algo indispensable para todos. ... El desarrollo tecnológico, a fin de cuentas, es el motor fundamental del progreso en nuestra sociedad y este dependerá siempre
  • 14. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 14 del uso y manipulación que brindemos, digamos que la importancia del Software para la sociedad, radica en el uso que las personas le den, no se trata solamente de traer juegos nuevos en un dispositivo de 1000 dolares, hablamos de optimizar tareas, incrementar ganancias, aumentar ingresos, optimizar tiempos, hacer la vida más fácil, gracias a que el software hoy en día nos permite hacer infinidad de cosas. Consumidores En muchos de los casos de innovación queda claro que las empresas, antes de pensar en nuevos productos, deben pensar en las necesidades de los consumidores. Esa es la fuente de la innovación. Estudiar, entender y prever las tendencias del consumidor hacen que el margen de error al lanzar un nuevo producto disminuya. Pero también hay que mezclar creatividad y modelo de gestión, en nuestro caso estamos manejando una app que busca acercar al ciudadano común y corriente, a los entes de administración gubernamental, entonces si logramos conocer la conducta del consumidor mejora la posición de la app. Usuarios finales El producir un bien o suministrar un servicio de primera calidad (en nuestro caso una app) requiere cumplir con las expectativas del Usuario final. Sin duda, gran partede las empresas, han comprendido que el tener una política de calidad, que responda a la mejora continua y la plena satisfacción del cliente, es de gran ayuda para la consecución de esta última esencia. Es más, el desarrollo de una aplicación informática ha de estar claramente ligado a una interacción con el usuario final. El mantener viva la relación con los usuarios finales del producto o servicio, mediante un contacto habitual, es de suma ayuda para poder identificar las necesidades del mercado actual. Es lógico pensar que el correcto diseño de unaaplicación que facilite su utilización incrementa la productividad del trabajo diario del usuario y minimiza, entre otros, el tiempo dedicado a comprender la complejidad del programa. Administraciones publicas Las administraciones públicas están en plena transformación. La evolución de los sistemas democráticos pasa por abrir las puertas de las instituciones públicas para conocer las agendas de los
  • 15. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 15 responsables públicos y contar con la colaboración ciudadana. En la primera década de siglo XXI comenzó a implantarse la digitalización en las distintas administraciones públicas. Hoy en día es una realidad que permite a los ciudadanos realizar sus trámites burocráticos conmayor facilidad y eficacia. Sin embargo, la e-administración es una modernización del sistema donde el ciudadano se convierte en cliente de los servicios públicos, que, gracias a la tecnología, han mejorado mucho pero que en la actualidad no es suficiente. Siendo estas nuestro principal eje temático, teniendo como objetivo promover la participación de los ciudadanos en Cali en las decisiones que se toman en el Concejo municipal, basándonos en la idea de ofrecer una información constante y transparente acerca de lo que sucede en las plenarias del concejo e información sobre los senadores, así como de su asistencia, votación y de los proyectos de ley en curso. Medios de comunicación Diseñar publicaciones impresas ha sido históricamente uno de los principales trabajos de muchos estudios de diseño gráfico. Aquel casi obsoleto hoy formato busca un buen reemplazo en el mundo digital. No es difícil darse cuenta de la influencia que los dispositivos móviles tienen hoy en día. Los teléfonos inteligentes y las tabletas se utilizan en todas partes, todo el tiempo, a punto tal que nos volvemos cada vez más dependientes de la tecnología móvil. Una aplicación móvil permite al público acceder a la información donde quieran que esté, siempre que lo desee. Los usuarios obtienen el beneficio de un acceso directo a publicaciones previas, así como características inimaginables en medios impresos. Por ejemplo: el uso de redes sociales y el consumo de contenido multimedia interactivo, o el consumo de pistas de audio con podcasts. música y otros documentos sonoros. La combinación de estas características interactivas puede ofrecer nuevos modos de relación entre editoriales y lectores, y a la vez proporcionar una experiencia de usuario única. El dato más importante es la posibilidad de publicar sin generar un costes y esfuerzo extra, aprovechando las distintas plataformas de publicación. Desarrolladores de la aplicación de software Los desarrolladores de la aplicación de software desarrollaran, crearan y modificaran la aplicación informática de software general, analizando las
  • 16. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 16 necesidades del usuario y desarrollando soluciones de software, diseñando o personalizando el software para el uso del consumidor con el objetivo de optimizar la eficiencia operativa; pueden analizar y diseñar las bases de datos dentro de un área de aplicación, trabajando individualmente o coordinando el desarrollo de la base de datos como parte de un equipo. La importancia del desarrollador de software radica en la eficacia de la app que realizó al momento de ejecutar las tareas por las cuales se programó. En pocas palabras que el software sea útil y cumpla para lo que fue hecho. Director de proyecto El director de proyecto será la persona a la cual se le será asignada la tarea de liderar un equipo con la función de conseguir unos objetivos planteados en el desarrollo de la planeación teniendo la responsabilidad total del planeamiento y ejecución del proyecto. Para poder conseguir sus objetivos, el director de proyectos debe tener una serie de características. Debe ser una persona organizada, apasionada y orientada a las metas cuya principal habilidad sea la capacidad de reconocer los riesgos que afectan al éxito del proyecto, por lo que debe realizar constantes mediciones de factores internos o externos que puedan suponer fuentes de riesgo. El director de proyectos no solo dirige al equipo multidisciplinar de la empresa y app, sino que también da una serie de pautas al cliente para que le proporcione toda la documentación necesaria. No hay que olvidar que en muchos casos el cuello de botella se encuentra en nuestro propio cliente, que bien por falta de tiempo o por interés no proporciona los datos necesarios. Ingenieros de telecomunicaciones El ingeniero de telecomunicaciones se encargará de administrar, crear, diseñar y gestionar sistemas en tecnología de la información y las telecomunicaciones además de brindarnos soluciones técnicas a problemas en la transmisión y recepción de señales y la interconexión de redes que pueda tener la app, dando Convergencia a los servicios en redes de la misma; Administrando, gestionando y bridando seguridad de redes, programación, antenas y servicios de telefonía relacionados a los diversas funciones conceptuales de la app. Permitiéndonos ser autodidactas y proactivos para mantenernos actualizados, resolviendo los problemas
  • 17. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 17 técnicos de señales y redes con el mayor caudal de información posible, además para lo que es la adecuación y también la coordinación del montaje respectivo y de la correspondiente buena funcionalidad. De igual forma hace la relación entre la electrónica y la información con la finalidad de sustentar los proyectos referidos a la Telemática. Jefe de ingenieros El jefe de ingenieros es el responsable de realizar estudios, desarrollar y supervisar programas destinados a la optimización en el uso de equipos, recursos humanos, tecnología, materiales y procedimientos para incrementar la eficiencia y la productividad de la realización de la app. El Jefe de Ingeniería revisa y estudia las propuestas de trabajo y los subcontratos. Crean los horarios de trabajo para cumplir con los plazos establecidos para el proyecto. También pueden diseñar y analizar los equipos usados en el diseño, planeación y escrituración de software. De igual forma, el trabajo de un Jefe de Ingeniería consiste en la organización de los diversos grupos de personas y el cumplimiento de las restricciones presupuestarias y de tiempo. Igualmente, este tipo de profesionales hacen el manejo del personal para todas las fases del proyecto, incluyendo la contratación, la asignación de los trabajos de otros ingenieros y técnicos y revisan que el sitio de trabajo tenga los materiales y equipos adecuados. Gestión del proyecto La gestión del proyecto se basa en la disciplina de administrar el control de proyecto, cuyo objeto de estudio abarca la planificación, organización, motivación y el control de los recursos necesarios para alcanzar un fin determinado de antemano, o sea, cumplir con un objetivo de la app, proyecto. Los proyectos son independientes de la actividad diaria empresarial, por lo que se requiere que se organicen una serie de reuniones para ver cuáles son los objetivos específicos del proyecto. Para que el proyecto tenga éxito es esencial que se realice un trabajo en equipo eficiente. La manera en la que la gestión de proyectos dirigirá el trabajo depende de varios factores, entre ellos: la escalabilidad (la posibilidad de que el proyecto crezca), la importancia y la complejidad de las tareas. La gestión del proyecto está esencialmente dirigida a conseguir los objetivos preestablecidos para proporcionar un beneficio a la organización. Los
  • 18. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 18 objetivos pueden expresarse en términos de: resultados consecuencias; beneficios u objetivos estratégicos. Probadores de software Los probadores de software planificaran y llevara a cabo pruebas de software de los ordenadores para comprobar si funcionan correctamente. Identifican el riesgo de sufrir errores la aplicación, detectando errores y los comunican. Evalúan el funcionamiento general del software y sugieren formas de mejorarlo. Entre sus competencias está Construir el plan de testing; diseñar casos de prueba; gestionar los ambientes de prueba; generar los datos de prueba; ejecutar y documentar pruebas, reportando y siguiendo los incidentes encontrados, usando las herramientas apropiadas de acuerdo con los estándares de trabajo de donde se desempeñe. Lo principal es Asegurar que el software o pieza de software funcione de acuerdo con los requisitos; trabaje con sus interfaces de la forma esperada, detectando en forma temprana defectos y evitando su propagación y llegada al cliente (interno o externo). Ingenieros de seguridad El ingeniero en seguridad informática se encargará de establecer la misión de seguridad informática de la organización y app, definir la política y procesos que permitan el respaldo de la información, definir mecanismos y herramientas para velar por el cumplimiento de las medidas de seguridad, realizar informes cuando le sean requeridos. Además de encargase de la Administración de equipos en seguridad perimetral. Gestión de eventos e incidentes de seguridad. Maintainers Los Maintaners estarán encargados de la modificación de la app después de haber sido entregado (a los usuarios o consumidores) con el fin de corregir defectos, mejorar el rendimiento u otros atributos, o adaptarlo a un cambio en el entorno, versionando la app en repositorios GitHub. Además de mantener la aplicación de una forma optima y fluidapara los usuarios cadavezquese vaya actualizando dicha aplicación Auditores los auditores ayudan a verificar y evaluar las actividades relacionadas con la calidad en el seno del software, así como para la identificación y mejora de las áreas no conformes con el modelo exigido, con el poder ofrecer una aplicación que satisfaga las necesidades de los usuarios.
  • 19. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 19 Analizando y verificando la estructura que componen la aplicación con el fin de evaluar si se satisface con la calidad de software que se desea obtener Requerimientos A continuación, se describen las principales características funcionales y no funcionales, que debe contener el sistema de información: Requerimientos funcionales: 1. ¿Quién solicita?: Usuarios. Descripción: Login e identificación de los usuarios utilizando Facebook connect, Gmail o Twitter Con esto se disminuye en buen grado el uso y la subida de contenido de usuarios anónimos. Arq. Sig: Si. 2. ¿Quién solicita?: Usuario final, Administraciones públicas y medios de comunicación. Descripción: Se puede transmitir determinados segmentos de la programación vía streaming de video. Si la plataforma contara con una API que permita saber cuándo se está transmitiendo, la app de forma automática incorpora el video en la vista predeterminada. Arq. Sig: Si. 3. ¿Quién solicita?: Usuario final, Administraciones públicas y medios de comunicación. Descripción: Conexión con un feed de noticias, permite actualización automática de un blog o portal de noticias. Arq. Sig: Si. 4. ¿Quién solicita?: Usuario final y Medios de comunicación.
  • 20. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 20 Descripción: El sistema debe permitir a los usuarios buscar y consultar la información sobre los concejales, en la cual podrán encontrar información como lo es el nombre, partido político, Comisión, número telefónico, correo electrónico, redes sociales e historial de votación a proposiciones y proyectos. Arq. Sig: Si. 5. ¿Quién solicita?: Administración pública. Descripción: El sistema debe almacenar información sobre las comisiones almacenando información como lo es el historial de votación a proposiciones y proyectos. Arq. Sig: Si. 6. ¿Quién solicita?: Usuario final y Medios de comunicación. Descripción: El sistema debe permitir a los usuarios buscar y consultar la información sobre las comisiones, en la cual podrán encontrar informacióncomo lo es el historial de votación a proposiciones y proyectos. Arq. Sig: Si. 7. ¿Quién solicita?: Administración pública. Descripción: El sistema debe almacenar información sobre las proposiciones y proyectos almacenando información como lo son, Textos Radicados de Los Proyectos de Acto Legislativo y Proyectos de Ley, Ficha Tecnica de Los Proyectos de Ley, Ficha Tecnica de Los Proyectos de Acto Legislativo, Gaceta de la alcaldía, Informes Legislativos Concejo. Arq. Sig: Si. 8. ¿Quién solicita?: Usuario final y Medios de comunicación. Descripción: El sistema debe permitir a los usuarios buscar y consultar la información sobre las proposiciones y proyectos, en la cual podrán encontrar información como lo son, Textos Radicados de Los Proyectos de Acto Legislativo y Proyectos de Ley, Ficha Tecnica de Los Proyectos de Ley, Ficha Tecnica de Los Proyectos de Acto Legislativo, Gaceta de la alcaldía, Informes Legislativos Concejo. Arq. Sig: Si. 9. ¿Quién solicita?: Usuario final.
  • 21. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 21 Descripción: El sistema debe permitir le al usuario marcar su proposición y proyecto favorito, con lo que se le brindara notificaciones e información de primera mano sobre el mismo. Arq. Sig: Si. 10. ¿Quién solicita?: Administración pública. Descripción: El sistema debe almacenar información sobre los eventos y plenarias a realizar, mostrándolo por medio de un calendario. Arq. Sig: No. 11. ¿Quién solicita?: Usuario final y Medios de comunicación. Descripción: El sistema debe visualizar por medio de calendario los eventos y plenarias a realizar. Arq. Sig: Si. 12. ¿Quién solicita?: Administración pública. Descripción: El sistema debe permitir almacenar información sobre la distribución de las curules en el concejo, visualizándolos por partido político y la estructura de esta. Arq. Sig: Si. 13. ¿Quién solicita?: Usuario final y Medios de comunicación. Descripción: El sistema debe permitir visualizar por medio de un plano grafico estructurado de la sala del concejo, las curules del concejo por medio de la distribución del partido político. Arq. Sig: Si. 14. ¿Quién solicita?: Sociedad. Descripción: El sistema debe permitir le al usuario ponerse en contacto con el concejo por medio de un mensaje, en el cual se le solicitara al mismo los datos de nombre, e-mail y recado, los mismo serán entregados a la sección de atención ciudadana. Arq. Sig: Si. 15. ¿Quién solicita?: Auditores. Descripción: El sistema debe permitir le al usuario cambiar su contraseña de usuario cuantas veces lo quiera y lo considere necesario, que si al ser registrado
  • 22. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 22 por medio de una red social, el cambio de esta se debe hacer directamente en la respectiva red social, o simplemente por la suministración de un mensaje vía correo electrónico. Arq. Sig: Si. 16. ¿Quién solicita?: Sociedad, Consumidor, Usuario final, Administración pública, Medios de comunicación. Descripción: El sistema debe permitir le a un usuario cualquiera, participar en encuestas sobre su opinión acerca a proyectos o proposiciones propuestas por la Administración pública. Arq. Sig: Si. 17. ¿Quién solicita?: Administración pública. Descripción: El sistema debe permitir la generación de encuestas por parte de la administración pública, (un usuario administrador de la app), sobre algún tema en específico, proyecto o proposición tratado por el concejo. Arq. Sig: Si. Requerimientos no funcionales: 1. ¿Quién solicita?: Ingenieros de Seguridad. Descripción: El nuevo sistema debe desarrollarse aplicando patrones y recomendaciones de programación que incrementen la seguridad de datos. Arq. Sig: Si. 2. ¿Quién solicita?: Probadores de software. Descripción: La tasa de errores cometidos por el usuario deberá ser menor del 1% de las transacciones totales ejecutadas en el sistema. Arq. Sig: No. 3. ¿Quién solicita?: Auditores. Descripción: El sistema debe ser capaz de operar adecuadamente con hasta con un número infinito de usuarios con sesiones concurrentes. Arq. Sig: Si. 4. ¿Quién solicita?: Maintainers.
  • 23. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 23 Descripción: Se debe especificar la definición y el manejo de la documentación técnica (manuales técnicos y de instalación) y funcional (manuales de administración, configuración y de usuario final) del sistema de información, establecer procedimientos claros de actualización y aprobación. En múltiples ocasiones, ni la documentación ni las especificaciones de diseño están disponibles, y por tanto, los costos del mantenimiento se incrementan debido al tiempo requerido para que un ingeniero entienda el diseño del software antes de poder ponerse a modificarlo. El software desarrollado, por lo menos, debe tener: • manual técnico • manual de usuario final • manual de administración • manual de instalaciones e integración Arq. Sig: Si. 5. ¿Quién solicita?: Ingeniero de telecomunicaciones. Descripción: El aplicativo debe utilizar el protocolo de comunicación TCP-IP para la transmisión de información desde y hacia los diferentes componentes que se encuentren distribuidos a través de la red, de manera que se garanticen adecuados niveles de protección a los datos. Arq. Sig: Si. 6. ¿Quién solicita?: Auditores. Descripción: El software deberá permitirle al usuario configurar y personalizar la app a su gusto y como lo considere necesario, con el fin de brindar una mejor experiencia de usuario. Arq. Sig: No. 7. ¿Quién solicita?: Desarrolladores de la aplicación de software. Descripción: Con el fin de tener una app versátil, eficaz y portable, esta misma será desarrollada a través del lenguaje de programación Kotlin para celulares con sistema operativo Android con una versión de 6.0 en adelante. Arq. Sig: Si. 8. ¿Quién solicita?: director de proyecto.
  • 24. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 24 Descripción: El procedimiento de desarrollo de software a usar debe estar definido explícitamente (en manuales de procedimientos) y debe cumplir con los estándares ISO 9000. Arq. Sig: Si. 9. ¿Quién solicita?: Ingenieros de seguridad. Descripción: Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará operando hasta ser desbloqueado por un administrador de seguridad. Arq. Sig: Si. 10. ¿Quién solicita?: Gestión del proyecto. Descripción: Cada dos semanas deberán producirse reportes gerenciales en los cuales se muestre el esfuerzo invertido en cada uno de los componentes del nuevo sistema. Arq. Sig: No. 11. ¿Quién solicita?: Ingeniero de telecomunicaciones. Descripción: Todas las comunicaciones externas entre servicios de datos, aplicación y cliente del sistema deben ser encriptadas usando el algoritmo RSA. Arq. Sig: Si. 12. ¿Quién solicita?: jefe de ingenieros. Descripción: El sistema debe ser desarrollado utilizando herramientas CASE XYZ. Arq. Sig: Si. 13. ¿Quién solicita?: Maintainers. Descripción: Debe especificarse un plan de recuperación ante desastres para el sistema a ser desarrollado. Arq. Sig: No.
  • 25. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 25 Estimación de esfuerzo con base al cálculo de tamaño de casos de uso UAW (Pesos de los Actores sin Ajustar) – Fórmula: UAW=∑ (cantidad de un Tipo de Actor * Factor) Tabla 4 Contador actores e identificación su complejidad Tipo de actor Número de actores Factores de peso Comentarios Simple 5 1 Api straming Youtube, Facebook connect, Api gmail, Api Twitter, Feed de noticias Medio 4 2 Gestor BD, Servidor IDEUnco, Licensee, Modelo TCP/ IP Complejo 3 3 Usuario final, Administrador, dependiente (Funcionario, burócrata, empleado) Pesos actores sin ajustar 22 A Cálculo UUCW (Pesos de los Casos de Uso sin Ajustar). – Fórmula: UUCW=∑ (Cantidad de un Tipo de Caso Uso*Factor)
  • 26. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 26 Tabla 5 Contador de casos de uso e identificación su complejidad Tipo de caso de uso Número de casos de uso Factores de peso Comentarios Simple 4 5 Busqueda y consulta de información, participación usuario. Medio 8 10 Login, Administración de información, Almacenar información, marcar y clasificar opiniones, configuración cuenta de usuario. Complejo 5 15 Transmisión streaming, Conexión feed noticias, visualización estadisticas y posición, Contacto directo. Peso casos de uso sin ajustar 175 B Cálculo de los puntos de casos de uso sin ajustar -Fórmula: UUCP=UUCW+UAW Tabla 6 Calculo los PCUs no ajustados Casos de uso sin ajustar 197 A+B=C Cálculo TCF (Factor de Complejidad Técnica) – Fórmula:
  • 27. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 27 TCF=∑ (Cantidad de un Tipo de complejidad técnica*Factor) Tabla 7 Determinación factores de complejidad técnicos Factor técnico Grado de influencia en la productivida d Factores de peso Razones Sistema distribuido 5 2 Es un sistema formado por varios componentes, HW y/o SW, localizados en diferentes dispositivos, conectados en red, que se comunican y Desempeño 2 1 coordinan sólo mediante el Conocimiento del 3 1 Usuario paso de mensajes (al no poseer memoria compartida no se Procesamiento complejo 4 1 pueden utilizar formas de Código reusable 3 1 sincronización como Fácil de instalar 5 0,5 monitores o semáforos). Fácil de usar 5 0,5 La informática es un poco Portable 4 2 como el inglés. Todos tenemos Facil de modificar 3 1 nivel medio. Lo malo viene Concurrente 5 1 cuando un día tenemos que Características de 2 1 hacer uso de esta habilidad y seguridad nos salen los colores. No es la Acceso por terceros 1 1 primera vez en la que en una Requiere capacitación 3 1 prueba de nivel en una especial selección la mayoría de los candidatos se caen por este
  • 28. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 28 motivo.Las primeras impresiones importan, sin duda. Pero también lo es una planificación concienzuda En un nuevo puesto de trabajo se quiere probarse a si mismo, lo cual es totalmente comprensible. Pero para lograr una buena primera impresión, puede que se caiga en la tentación de apurarse al escribir el código y además dejar ya determinada la estrategia que deberá tomar el código más adelante. Sin embargo, este método de trabajo se puede volver contra. el código puede tener sentido en la cabeza, pero luego toma una orientación totalmente contraria a la que se supone que debería haber tomado. Complejidad del factor técnico 1,09 D Cálculo ECF (Factor de Complejidad Ambiental) – Fórmula: ECF=∑ (Cantidad de un Tipo de complejidad ambiental*Factor)
  • 29. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 29 Tabla 8 Determinación factores de complejidad ambiental Factor ambiental Grado de influencia en la productivida d Factores de peso Razones Familiar con RUP 5 1,5 En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software. Con el fin de aumentar la productividad y trabajo de los ingenieros del software, por lo que debemos tener encuenta facotes que pueden estar en nuestra contra, como lo es la familiarización con las metodologias desarrollo, lenguaje de rogramación y disponibilidad del personal. Experiencia con aplicación 4 0,5 Experiencia Orientado Objetos 3 1 Capacidad del analista 2 0,5 Motivación 3 1 Requerimientos estables 4 2 Personal medio tiempo 2 -1 Dificultad del lenguaje programación 5 -1 Complejidad del factor ambiental 0,875 E
  • 30. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 30 Análisis resultados Tabla 9 Análisis y estimación de esfuerzo Casos de uso ajustados 188 C*D*E=F Caso de uso / hora-persona 20 G Esfuerzo horas-persona 3760 F*G Esfuerzo Pesimista 1300 H Esfuerzo Optimista 1000 I Esfuerzo Ponderado 2890 (H+4(F*G)+I)/ 6 Tabla 10 Funciones y determinaciones finales de la distribución porcentual del tiempo de esfuerzo en cada una de las etapas del proyecto. Distribución de esfuerzo por fase Porcentaje Esfuerzo Análisis 19% 549 Diseño 12% 347 Codificación 34% 983 Pruebas 30% 867 Administración del proyecto 28% 809 Otros 8% 231 Total, esfuerzo horas 3786
  • 31. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 31 Metodología para implementar. Por lo que hemos podido investigar la metodología propuesta para el desarrollo de aplicaciones para móviles se fundamenta principal mente en la experiencia de investigaciones previas en aplicaciones móviles, la evaluación del potencial de éxito para servicios de tercera generación denominada 6 M, la ingeniería de software educativo con modelado orientado por objetos (ISE-OO), y principalmente en los valores de las metodologías ágiles. De la ISE-OO se hereda el enfoque de los micro-mundos interactivos y la orientación por objetos; los elementos de los micromundos más utilizados en los servicios móviles interactivos son: Mundo, Escenarios, Personajes y Roles, Argumento e Historia, Variables Compensatorias, Variables de Control, Variables de Resultado, Zonas de Comunicación, Ambientación-Caracterización, Recuperación de Estados Anteriores, Manejo de Información del Usuario, Mecanismos para Análisis de Desempeño, Ampliación de las Posibilidades del Micro-mundo, Personalización del Ambiente y, Soporte a la Comunicación en Grupo, entre otros (Gómez, Galvis y Mariño, 1998). De las metodologías ágiles se heredan los conceptos inmersos en los cuatro postulados o manifiesto ágil (Beck et al., 2001). ● Desarrollar software que funciona más que conseguir buena documentación. ● La respuesta ante el cambio es más importante que el seguimiento de un plan. ● Colaboración con el cliente sobre negociación contractual. ● Individuos e interacciones sobre procesos y herramientas. De la 6 M's se extrae la concepción de que las aplicaciones móviles debengarantizar el cumplimiento de las necesidades de los usuarios y al mismo tiempo generen ingresos. La
  • 32. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 32 6 M's debe su nombre a los seis atributos que se miden para evaluar el éxito del servicio propuesto: Movement (Movimiento), Moment (Momento), Me (Yo), Multi-user (Multiusuario), Money (Dinero) y Machines (Máquinas) (Ahonen, Barret y Golding, 2002). La metodología se encuentra enmarcada en cinco fases como se muestra en la figura 1, denominadas: análisis, diseño, desarrollo, pruebas de funcionamiento y entrega. A continuación, se describe cada una de las actividades que intervienen en el desarrollo de la propuesta. Figura 1. Etapas de la metodología para el desarrollo de aplicaciones móviles (Gasca, Camargo, & Medina, 2014) Análisis: En esta fase se analizan las peticiones o requerimientos de las personas o entidad para la cual se desarrolla el servicio móvil "Cliente", el propósito es definir las características del mundo o entorno de la aplicación. Se realizan tres tareas: obtener requerimientos, clasificar los requerimientos y personalizar el servicio. ● Obtener requerimientos: se sugiere hacer una serie de entrevistas al cliente, para que manifieste los síntomas del problema o necesidades que se pretenden solucionar con las tecnologías móviles, o simplemente, para que señale las características que debe tener la aplicación.
  • 33. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 33 ● Clasificar los requerimientos: una vez identificados los requerimientos que debe tener el software, se procede a clasificarlos. Dichos requerimientos se pueden clasificaren entorno, mundo, funcionales y no funcionales. El entorno se refiere a todo lo que rodea al servicio. Por ejemplo, las características técnicas del dispositivo móvil del cliente, el sistema operativo subyacente (móvil y servidores), la tecnología utilizada para la transferencia de información, el Sistema Manejador de Base de Datos, Data Base Management System (DBMS), si se requiere, el formato de archivos y, otros módulos tecnológicos utilizados para el servicio. El mundo es la forma cómo interactúan el usuario y la aplicación. Aquí se encuentran los requerimientos de la Interfaz Gráfica de Usuario, Graphical User Interface (IGU), la forma en que el software va a generar los datos de salida, el formato de los datos y los demás requerimientos que involucren la comunicación hombre-máquina, considerando la gama tecnológica de los teléfonos móviles de los usuarios a la que va dirigida el servicio. Los requerimientos funcionales son todos aquellos que demandan una función dentro del sistema. Se deben definir claramente cada una de las tareas que debe realizar la aplicación. Los requerimientos no funcionales son la estabilidad, la portabilidad, elrendimiento, el tiempo de salida al mercado y, el costo, entre otros. ● Personalizar el servicio: adicionalmente se deben analizar aspectos de la cotidianidad del cliente como preferencias, costumbres y particularidades del usuario, con el propósito de garantizar la aceptación del servicio. Diseño: El objetivo de esta etapa es plasmar el pensamiento de la solución mediante diagramas o esquemas, considerando la mejor alternativa al integrar aspectos técnicos, funcionales, sociales y económicos. A esta fase se retorna si no se obtiene lo deseado en la etapa prueba de funcionamiento.
  • 34. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 34 Se realizan cuatro actividades en esta fase: definir el escenario, estructurar el software, definir tiempos y asignar recursos. ● Definir el escenario: las aplicaciones móviles se pueden diseñar para ejecutarse en diferentes escenarios, dependiendo del sistema de conexión y sincronización con el servidor o aplicación central; el proceso de sincronización se realiza para insertar, modificar o borrar información. Entre los diferentes escenarios se encuentran los siguientes: 1) desconectado: los procesos se realizan en el dispositivo móvil desconectado, después de terminar el proceso, si se requiere, puede conectarse con una aplicación central mediante el proceso de sincronización. 2) Semiconectado: los procesos pueden ejecutarse en el dispositivo móvil desconectado, pero se requiere establecer conexión en algún momento para terminar el proceso, al sincronizar la informacióncon el servidor o aplicación central. En los escenarios desconectado y semiconectado se recomienda utilizar los protocolos y tecnologías que se ajusten al servicio y capacidades tecnológicas del dispositivo. Algunos son: Media Transfer Protocol (MTP), Near Field Communication (NFC), SlowSync, FastSync, SyncML, entre otros. 3) Conectado: el dispositivo debe estar siempre conectado con la aplicación central o servidor para su correcto funcionamiento, no se almacenan datos o archivos en el móvil, la sincronización se realiza mediante la validación de formularios, usualmente se utiliza el Protocolo de Transferencia de Hipertexto (Hypertext Transfer Protocol, HTTP). ● Estructurar el software: se deben utilizar algunos diagramas de Modelado de Lenguaje Unificado, Unified Modeling Language (UML), según las necesidades del proyecto, modelando el sistema desde varias perspectivas, ver figura 2.
  • 35. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 35 Figura 2. Posibles diagramas para el desarrollo de aplicaciones móviles (Gasca, Camargo, & Medina, 2014) Además, se nos sugiere traducir los requerimientos obtenidos de la etapa anterior en un diagrama que describa en forma objetiva el servicio por implementar. Además, definir un patrón de diseño para flexibilizar, modular y reutilizar lo desarrollado; la selección del patrón de diseño debe estar acorde con el escenario del servicio. Algunos patrones que se ajustan a los escenarios de las aplicaciones móviles son: modelo vista de controlador, diseño de capas, entre otros. ● Definir tiempos: se establecen los plazos para cada una de las actividades restantes, con el objetivo de terminar la aplicación a tiempo para su salida al mercado. Se debe tener en cuenta el diseño computacional del software realizado en la tarea anterior y, las características volátiles y dinámicas de los servicios móviles. ● Asignar recursos: se asignan los recursos para realizar cada actividad y alcanzar los objetivos propuestos, se deben considerar recursos humanos, financieros y tecnológicos. Además, se deben seleccionar las herramientas para el desarrollo de la aplicación móvil. Desarrollo:
  • 36. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 36 El objetivo de esta fase es implementar el diseño en un producto de software. En esta etapa se realizan las siguientes actividades: ● Codificar: se escribe en el lenguaje de programación seleccionado, cada una de las partes definidas en los diagramas realizados en la etapa de diseño. ● Pruebas unitarias: se verifica el funcionamiento de la aplicación. En primer lugar, se comprueba la correcta operación de cada elemento desarrollado -objeto, clase, actividad, documento, entre otros- en forma individual; posteriormente, se pone en funcionamiento el conjunto de elementos, comprobando la interrelación entre ellos. Se ejecuta y se observan los resultados obtenidos, para compararlos con los esperados. ● Documentar el código: a medida que se codifica y se prueba cada elemento, se redacta la pequeña documentación sobre lo desarrollado. ● Codificar ayudas: además del manual de instalación y de usuario, deben existir una serie de ayudas que informen de manera didáctica lo que puede hacer el usuario con la aplicación, estas ayudas deben ser codificadas en el mismo lenguaje de programación e integrada en la interfaz de aplicación para visualizarlas en elmóvil. Pruebas de funcionamiento: El objetivo de esta fase es verificar el funcionamiento de la aplicación en diferentes escenarios y condiciones; para esto se realizan las siguientes tareas: ● Emulación y simulación: se realizan pruebas simulando el escenario y emulando el dispositivo móvil, explorando todas las utilidades y funciones de la aplicación, introduciendo diferentes datos, inclusive erróneos, para medir la funcionalidad y el nivel de robustez del software. Si se encuentran algunas fallas, se debe regresar a la etapa de codificación en la fase de desarrollo para solucionar los problemas, si las pruebas son satisfactorias se procede a la etapa de pruebas con dispositivos reales. ● Dispositivos reales: deben hacerse pruebas de campo en equipos reales para medirel desempeño y el rendimiento del aplicativo. Si se encuentran fallas en el tiempo de
  • 37. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 37 ejecución, si el software no cumple con los requerimientos especificados, o si el cliente solicita un cambio de última hora, hay que regresar a la fase de diseño para reestructurar y solucionar el inconveniente presentado. ● Análisis de las 6 M's: para valorar el potencial de éxito del servicio, se sugiere buscar un grupo de expertos en el campo del desarrollo móvil para que utilicen el método de evaluación de las 6 M's, y califiquen la presencia de los seis atributos en la aplicación desarrollada. Cualquier servicio que brinde un gran valor en cualquiera de las 6 M's tiene un buen potencial para el éxito como servicio móvil. Si la evaluación de las 6 M's del servicio es insatisfactoria, se debe rediseñar el servicio fortaleciendo los atributos mencionados. Entrega: Terminada la depuración de la aplicación y atendidos todos los requerimientos de última hora del cliente se da por finalizada la aplicación y se procede a la entrega del ejecutable, el código fuente, la documentación y el manual del sistema. ● Manuales: el objetivo es el entrenamiento; una aplicación móvil debe constar de un manual del sistema donde se indique el proceso de instalación, la atención a posibles fallas en el tiempo de ejecución y, las especificaciones técnicas mínimas de hardware y software que requiere el equipo, para el funcionamiento adecuado del aplicativo desarrollado. ● Distribución: se define el canal de comercialización de la aplicación, con el propósito de adecuar la aplicación al medio de distribución. A continuación, se mencionan algunos de los canales de distribución existentes.
  • 38. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 38 Las tiendas físicas u outlets, especializadas o no, corresponden a las tiendas que venden dispositivos y servicios de telecomunicaciones, normalmente operadores o marcas como Apple. Los portales de operadores o desarrolladores de servicios ofrecen un catálogo amplio de aplicaciones y ventas vía Web Site desde el PC, que luego son instaladas en el móvil. Las Applications Stores, son las tiendas online de los fabricantes de dispositivos o de sistemas operativos. OTA, Over the Air, es la comercialización de aplicaciones a través de la interfaz de radio. Los contenidos móviles son distribuidos a los terminales usando SMS, WAP y Streaming, entre otros. Los servicios basados en el Subscriber Identity Module (SIM), o la Universal Integrated Circuit Card (UICC), son aplicaciones instaladas previamente en el chip de estas tarjetas. Resultados: Esta metodología toma como base para su análisis de funcionamiento El Diagrama de Ishikawa, también conocido como Diagrama de Espina de Pescado o Diagrama de Causa y Efecto, es una herramienta de la calidad que ayuda a levantar las causas-raíces de un problema, analizando todos los factores que involucran la ejecución del proceso. Creado en la década de 60, por Kaoru Ishikawa, el diagrama tiene en cuenta todos los aspectos que pueden haber llevado a la ocurrencia del problema, de esa forma, al utilizarlo, las posibilidades de que algún detalle sea olvidado disminuyen considerablemente. En la metodología, todo problema tiene causas específicas, y esas causas deben ser analizadas y probadas, una a una, a fin de comprobar cuál de ellas está realmente causando el efecto (problema) que se quiere eliminar. Eliminado las causas, se elimina el problema.
  • 39. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 39 Figura 3. Diagrama de espina de pescado básico (Normas Internacionales del Trabajo (NIT)) El Diagrama de Ishikawa presenta la relación existente entre el resultado no deseado o no conforme de un proceso (efecto) y los diversos factores (causas) que pueden contribuir a que ese resultado haya ocurrido. Su relación con la imagen de una espina de pescado se da debido al hecho de que podemos considerar sus espinas las causas de los problemas planteados, que contribuirán al descubrimiento de su efecto, además del formato gráfico que se asemeja al diseño de un esqueleto de pescado. Es posible aplicar el diagrama de Ishikawa tanto como la metodología a diversos contextos y de diferentes maneras, pero nos enfocamos primordial y como objetivo del curso de Ing. De Software, a los procesos conyugados a la elaboración de software integro, entre la cuales se destaca la utilización: ● Para ver las causas principales y secundarias de un problema (efecto). ● Para ampliar la visión de las posibles causas de un problema, viéndolo de manera más sistémica y completa. ● Para identificar soluciones, levantando los recursos disponibles por la empresa y nosotros mismos. ● Para generar mejoras en los procesos.
  • 40. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 40 Como se dijo anteriormente, se proponen 6 categorías por el método, que son: Movement (Movimiento), Moment (Momento), Me (Yo), Multi-user (Multiusuario), Money (Dinero) y Machines (Máquinas) “las 6Ms”. Sin embargo, no todos los procesos o problemas se utilizan de todos estos factores, así que es necesario evaluar cuáles de ellos están presentes o son importantes para la ejecución. Es posible que sólo evalúe 4 de ellos; No hay ningún problema con esto, siempre y cuando el análisis se haga sobre la base de hechos y datos y no se quita ningún aspecto importante En el análisis de resultados del proyecto, hemos decidido incorporar el Diagrama de Causa y Efecto al flujo de tratativas de no conformidades. Hemos hecho esto porque la técnica es una de las formas más eficaces de analizar las causas raíz, ayudándonos a profundizar en todos los aspectos del proceso. Además de posibilitar la eliminación de características innecesarias, y se perciban errores o problemas con mayor rapidez., permitiéndonos a estandarizar y centralizar el registro de información, aumentando la rastreabilidad de los datos y facilitando la consulta cuando sea necesario. Arquitectura para utilizar Para poder elegir una arquitectura de software a usar en el proyecto, tenemos que partir del punto que estamos trabajando con una aplicación móvil, así que tenemos que ser conscientes de la serie de características con las que cumple este tipo de software,tendiendo cuenta la cantidad y tipo de funcionalidades, por lo que investigando hemos podido encontrar que estas aplican a un tipo de arquitecturas diseñadas específicamente para ellas: • Aplicaciones móviles autocontenidas. • Aplicaciones móviles con conexión a Internet. • Aplicaciones móviles con descarga de información estática. • Aplicaciones móviles con información dinámica.
  • 41. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 41 Cada una de las anteriores se refieren al tipo de arquitecturas implementadas en el desarrollo de aplicaciones móviles, se debe a el tipo de información el cual se valla a impartir; recordando que a la hora de desarrollar aplicaciones móviles, hay que tener lo que la escalabilidad y todas sus ventajas. las aplicaciones móviles según la información que imparten se dividen en dos grupos, aplicaciones móviles autocontenidas y las aplicaciones con conexión a Internet. En este caso, nuestro proyecto se basa primordialmente en una app móvil, donde se muestra determinada información, como las principales noticias que se producen en el Concejo, el listado de concejales que incluye foto, perfil, partido político, información de contacto, redes sociales y un historial de voto, así como el registro de los trinos publicados en su cuenta de Twitter, el ciudadano podrá escoger su concejal preferido y hacer seguimiento a su trabajo, etc. Por lo que el primer paso es decidir la arquitectura de software que se utilizara en el proyecto, que en este caso se basara en contenido que se obtiene desde fuentes externas. Las descriptas anteriormente son algunas ideas básicas que se tienen planeadas para la aplicación, por lo cual se tendrán que transmitir muy a menudo a personas que, sin tener un contacto previo con el mundo de aplicaciones y la web, se verán ligadas el uso y codificación de esta. Por lo que hemos decido que la arquitectura de la misma se basara en una app con información dinámica; El funcionamiento básico de nuestra app, se basa en el procesamiento e interpretación de información que se encuentra almacenada en una base de datos la cualse encuentra alojada en un servidor, a través de servicios API mediante script PHP (u otro lenguaje de servidor) que se conecta a la base de datos y genera una XML o archivos descargable que retorna a la app, a través de servicios API los cuales comunican al bancode datos con la interfaz de la app. Esto lo hacemos con el fin de desarrollar una aplicación que sea escalable y de rápida actualización, haciendo que exista solo una versión de la app en el servidor, por lo que habrá que distribuirla entre los demás ordenadores, por lo que el proceso de actualización será más rápido y limpio.
  • 42. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 42 Por lo que se nos permitirá de manera más fácil editar la base de datos, además de permitirnos generar contenido con formularios web o con conector de base datos, con lo que la modificación de información es sencilla y rápida. Aunque con esto debemos aclarar que la complejidad del desarrollo será mayor, al igual que el coste de desarrollo, ya que hay parte de desarrollo web, además de los costes de hosting web para alojar los scripts y base de datos. Pero ya enfocándonos más en la estructura lógica y configuración del hardware distribuido para el funcionamiento teórico y práctico de la aplicación, partiendo desde el punto que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes, siendo estos últimos los que realizan peticiones a otro programa, el servidor, quien le da respuesta. Por lo que hemos decidido aplicar la arquitectura de software de tres niveles, que es una variación de la ya muy conocida arquitectura Cliente-Servidor, donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente. Esta misma consiste en cómo organi•zar el modelo de diseño en capas, que pueden estar físicamente distribuidas, lo cual quiere decir que los componentes de una capa sólo pueden hacer referencia a componentes en capas inmediatamente inferiores. Este patrón es importante porque simplifica la comprensión y la organización del desarrollo de sistemas complejos, reduciendo las dependencias de forma que las capas más bajas no son conscientes de ningún detalle o interfaz de las superiores. Además, nos ayuda a identificar qué puede reutilizarse, y proporciona una estructura que nos ayuda a tomar decisiones sobre qué partes comprar y qué partes construir. Esta separación entre la lógica de aplicación de la interfaz de usuario añade una enorme flexibilidad al diseño de la aplicación. Pueden construirse y desplegarse múltiples interfaces de usuario sin cambiar en absoluto la lógica de aplicación siempre que está presente una interfaz claramente definida a la capa de presentación. ● Diagrama arquitectura
  • 43. 43 DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
  • 44. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 44 Figura 4. Diagrama de despliegue, funcionamiento del backend Miconcejo Fuente: Elaboración propia Patrones de diseño a utilizar Durante el análisis, planeación y desarrollo del proyecto, hemos podido constatar que el desarrollo de la aplicación cuenta con dos situaciones: Desarrollo Frontend y Desarrollo Backend. El Frontend tiende a ser programación, pero el diseño de la app también hace parte del mismo; ya que es la parte encargada de maquetar la estructura semántica del contenido, codificar el diseño en hojas de estilo y agregar la interacción con el usuario (JavaScript). Mientras que el backend compone el acceso a bases de datos y generación de plantillas del lado del servidor. En backend se encargan de implementar MySQL, Postgres, SQL Server o MongoDB. Luego, un lenguaje como PHP o JSP, o frameworks como RoR, Django, Node.JS o .NET se conectan a la base de datos. La importancia de los patrones de desarrollo radica en el backend, cuando empezamos a desarrollar software, es común que cada uno utilice su propia lógica, conocimientos y experiencia para crear código. Y esto muchas veces resulta en desarrollos complejos que sólo su creador entiende. Pero ¿es posible desarrollar un módulo que otro programador pueda aprovechar entender y mejorar? La respuesta está en los patrones de diseño. Estos básicamente son modelos y/o estructuras que sirven como guía para que los programadores trabajen sobre ellos. Por lo que podríamos definir que un patrón de diseños es, una manera de resolver un problema. Entonces partiendo desde esta definición analizamos plantearnos como objetivos de solución de problema sobre estructura de codificación práctica, teórica y aplicada al desarrollo del Bakckend de la app, los siguientes:
  • 45. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 45 • Estandarizar el lenguaje entre programadores. • Evitar perder tiempo en soluciones a problemas ya resueltos o conocidos. • Crear código reusable (excelente ventaja). Los patrones de diseño que hemos decidido implementar son: • Adapter: El cual se utiliza para transformar una interfaz en otra, de tal modo que una clase que no pueda utilizar la primera haga uso de ella a través de la segunda. • Facade: El cual viene motivado por la necesidad de estructurar un entorno de programación y reducir su complejidad con la división en subsistemas, minimizando las comunicaciones y dependencias entre estos. • Iterator: Este define una interfaz que declara los métodos necesarios para acceder secuencialmente a un grupo de objetos de una colección. • Observer: Que define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambie de estado se notifique y actualicen automáticamente todos los objetos que dependen de él. • Strategy: Este se clasifica como patrón de comportamiento porque determina cómo se debe realizar el intercambio de mensajes entre diferentes objetos para resolver una tarea. • MVC (Modelo Vista controlador): Es un patrón de arquitectura de software, que separa los datos y la lógica de negocio de una aplicación de su representación y el módulo encargado de gestionar los eventos y las comunicaciones. • Flyweight: sirve para eliminar o reducir la redundancia cuando tenemos gran cantidad de objetos que contienen información idéntica, además de lograr un equilibrio entre flexibilidad y rendimiento. • Object pool: usa un conjunto de objetos inicializados preparados para su uso. Esto es más efectivo normalmente que creando y destruyendo los objetos bajo demanda.
  • 46. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 46 • Diagrama componentes
  • 47. 47 DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali)
  • 48. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 48 Figura 5. Diagrama de componentes, funcionamiento de la parte de software de Mi concejo Fuente: Elaboración propia Administración configuración Administración de la configuración (Configuration management CM) es el conjunto de actividades relacionadas con la administración de la evolución de los productos software durante todo su ciclo de vida. Para ello es necesario identificar, organizar y controlar las modificaciones al producto con el objetivo de maximizar la productividad a la vez que se minimizan los errores. Es el control que se tiene sobre cada uno de los componentes de configuración de un producto con el fin de que todos los cambios que se realicen a estos componentes, una vez que han sido aprobados, se hagan de forma controlada y que en todo momento se conozca cuál es la versión vigente de cada uno. Facilita la identificación e integración de los componentes de configuración que conforman los entregables del proyecto. Es el proceso de identificar la configuración del producto para controlar sistemáticamente los cambios a la misma y mantener su integridad a lo largo de todo el ciclo de vida del proyecto. Algunos problemas comunes que conllevan a la adopción de CM son: • No se encuentra la última versión del código fuente. • Errores corregidos en versiones previas aparecen nuevamente. • No se conoce qué módulos comprende el sistema entregado al cliente. • La integración del sistema toma demasiado tiempo. • Los programadores están trabajando en una versión incorrecta del código. • Versiones incorrectas del código son probadas. • No existe seguimiento de los requerimientos, documentos y códigos. Pero, difícilmente un archivo de código o un documento de texto está terminado con la primera escritura; necesita cambios o reescrituras para corregir errores, modificar su contenido... A medida que el documento cambia existen dos opciones, mantener un historial de cambios o
  • 49. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 49 dejar que evolucione sin memoria. El control de versiones es un método estándar para mantener esta memoria haciendo además que sea útil para el desarrollo futuro. En nuestro caso por decisión propia e inconvenientes con la plataforma Github, se optó por trabajar con Bitbucket, siendo esta una plataforma de desarrollo colaborativo de software para alojar proyectos utilizando el sistema de control de versiones Git., permitiéndonos cumplir con los objetivos de este taller; además de tener mejor control sobre las versiones de nuestro proyecto. Bitbucket aloja nuestro proyecto en la nube y nos brinda herramientas muy útiles para el trabajo en equipo, dentro del desarrollo de este. Una de las cosas más importantes en un proyecto de software en estos tiempos es contar con una herramienta de integración continua que no es otra cosa que probar que la integración entre la base de código y las ramas de configuración no solo pasen las pruebas unitarias, sino que además se comporten adecuadamente en un entorno que emule o sea lo más parecido al entorno en el cual lo ejecutaremos, Gracias a esto se puede seguir cada commit de un problema en este popular gestor de incidencias por lo que permite controlar las actividades por branch, agregar keys de Google Analytics. Esto quiere decir guardar en determinado momento los cambios efectuados a un archivo o conjunto de archivos, con la oportunidad que tener acceso a ese historial de cambios, ya sea para regresar a una de esas versiones o para hacer comparaciones entre ellas.
  • 50. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 50 Figuras 6,1 – 6,2. Interfaz de login “mi concejo App cali” versionando, sin/con botón de registro de usuario. Fuente propia Figura 6,3. Interfaz registro de usuario. Fuente propia
  • 51. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 51 Lo primero que si hizo fue crear una cuenta en Bitducket, llenando el típico formulario de registro para un nuevo usuario, una vez hecho esto se procederá a crear un nuevo proyecto (En este caso “mi Concejo App Cali”) y a su vez se crear un nuevo repositorio para el mismo. Figura 7,1. Creación de repositorio de manera gráfica. Fuente propia Después de esto se procederá a crear una carpeta local referente al almacenaje del proyecto de la misma forma (en nuestro caso la carpeta se llama “reposMiAppCali”), apartir de aquí comenzamos a jugar con la terminal instalada como sugerencia por “Git” siendo la misma, “MINGW64”, por lo que seleccionaremos con clic derecho “Git Bash Here” sobre la carpeta a creada, a continuación, se muestra el inicio tradicional como comando de Git:
  • 52. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 52 Figura 7,2. Interfaz de interpretación de comandos MINGW64. Fuente propia Una vez hecho esto procederemos a clonar el repositorio a nuestro sistema local, por lo que estableceremos el protocolo en HTTPS para hacer efectiva la clonación, esto lo hacemos por medio de la ventana inicial del Bitducket, donde se nos sugiere utilizar este tipo de clonación. Figura 7,2. Descripción repositorio con enlace de clonación. Fuente propia Que, al hacerse uso en la terminal, nos permitirá tener una copia directa del fichero alojado en la web.
  • 53. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 53 Figura 7,3. Descripción repositorio con enlace de clonación. Fuente propia Creándonos una subcarpeta con el nombre de nuestro fichero (mi-app-concejo-cali). Figura 7,4. Generación repositorio local. Fuente propia Y dentro de la misma se nos mostrara los archivos de nuestro repositorio alojado en la nube, que en nuestro caso estará vacío, al igual se nos creara una nueva carpeta “Fantasma con la configuración de nuestro repositorio”. Para subir nuestros archivos y/o carpetas, pondremos estos dentro la carpeta “mi-app- concejo”.
  • 54. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 54 Figura 7,5. Gestión de proyecto en repositorio local. Fuente propia De manera seguida y desde nuestra consola ejecutaremos el comando “Git status”, permitiéndonos conocer, el estado de nuestra carpeta local, además de conocer los archivos que han sido modificado y no han sido guardados. Figura 7,6. Resultado del comando “Git status” en el intérprete MINGW64 aplicado a la carpeta “db”. Fuente propia
  • 55. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 55 Figura 7,7. Comando “Git add” usado para importar archivos al repositorio de la nube aplicado a la carpeta “db”. Fuente propia Figura 7,8. Resultado del comando “Git status” en el intérprete MINGW64 aplicado a la carpeta “App”. Fuente propia
  • 56. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 56 Figura 7,9. Comando “Git add” usado para importar archivos al repositorio de la nube aplicado a la carpeta “App”. Fuente propia El resultado de estas líneas de comandos nos muestra los archivos que no tienen seguimiento, lo que quiere decir que Git ve un archivo que no pertenece a una confirmación anterior. El resultado del estado también nos muestra el siguiente paso que se debe seguir: añadir el archivo; para poder hacer esto se debe indicar le a Git que realice el seguimiento de los nuevos archivos mediante el comando “Git add”. Al igual que cuando crea un archivo y o carpeta (Mkdir xxxx, echo "xxxxxxxxxxx" >> xxxxxxxxx.txt), el comando “Git add” no devuelve nada cuando se introduce correctamente. El comando “Git add” envía los cambios del directorio en curso al entorno de ensayo de Git. El entorno de ensayo es la zona en la que prepara una instantánea de un conjunto de cambios antes de confirmarlos en el historial oficial. Ahora volveremos a usar el comando “Git status”, con el que podremos ver que se ha añadido el archivo nuevo (preparado).
  • 57. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 57 Figura 8,1. Resultado del comando “Git status” en el intérprete MINGW64, después de haber de haber aplicado la sentencia “Git add” sobre la carpeta db. Fuente propia Figura 8,2. Resultado del comando “Git status” en el intérprete MINGW64, después de haber de haber aplicado la sentencia “Git add” sobre la carpeta App. Fuente propia. Ahora introduciremos el comando “Git commit” con un mensaje de confirmación, como se muestra en las siguientes imágenes. La –m indica que incluye un mensaje de confirmación.
  • 58. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 58 Figura 8,3. Sintaxis de uso “Git commit” y su resultado al ser aplicada en la carpeta “db”. Fuente propia Figura 8,4. Sintaxis de uso “Git commit” y su resultado al ser aplicada en la carpeta “App”. Fuente propia El comando “git commit” confirma la instantánea preparada en el historial del proyecto. En combinación con “git add”, este proceso define el flujo de trabajo básico de todos los usuarios de Git; que a su vez también nos confirma la creación de modelos en el repositorio de la nube, formado a partir de los archivos almacenados el repositorio local.
  • 59. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 59 Ahora enviaremos los cambios confirmados a Bitbucket mediante el comando “Git push origin master”. Este comando especifica que estás enviando cambios a la rama maestra (la rama de Bitbucket) en el origen (el servidor de Bitbucket). Figuras 8,5 – 8,6. Confirmación y envíos de los cambios a la rama “Máster”, mediante el comando “Git push origin master”. Fuente propia
  • 60. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 60 El proyecto ya ha quedado almacenado en nuestro repositorio en la nube, pero si quisiéramos hacer una modificación a algún archivo sin modificar directamente lo previamente almacenado como una copia de seguridad, tendremos que hacer una rama directamente de nuestro repositorio a través de la rama creada por defecto “master”. Figuras 8,7. Creación de nueva rama de manera remota por medio del comando “Git Branch xxxxx”, en este caso nombrada como “future-plans”. Fuente propia Este comando crea una rama, pero no cambia a dicha rama; El historial del repositorio no se modifica, lo único que sucede es que obtiene un puntero a la rama actual. Para empezar a trabajar con la nueva rama, se tiene que extraer la rama que quieres usar. Para hacer uso de esta rama se tendrá que usar El comando “git checkout” que a su vez trabaja en conjunto con “git branch”. Como se esta creando una rama para trabajar en algo nuevo, cada vez que se cree una nueva rama (con git branch), tendremos que asegurarnos de que se extrajo (con git checkout) si vas a usar. En nuestro caso hemos decido nombrar a esta nueva rama como future_plans (Planes futuros). Pero en nuestro caso este comando no nos fue de mucha ayuda, a pesar que no permitia entrar a esta rama, y modicar los archivos dentro de la carpeta “App”, el mismo detectaba los cambios, pero no los guardaba dentro del repositorio en la nube, sin importar de hacer ejecución del comando “Git add”, ni el comando “Git commit”, automáticamente se borraban los datos de la carpeta, y se descargaban los que ya se encontraban en el repositorio, en otras palabras no permitían hacer algún tipo de modificación.
  • 61. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 61 Figuras 8,8. Errores en la bifurcación del proyecto, como resultado se cargaba automáticamente un backup de la rama master ya existente, pero no se permite la visualización de los mismos. Fuente propia Para solucionar esto, hicimos uso de un nuevo comando llamado “git fetch” que a su vez se es ejecutado con “git checkout”, permitiéndonos trae los cambios de su rama sucesora (en este caso la rama master), pero los deja en otra rama, hasta que se hace el “git merge” para traerlos al repositorio local, como en este caso solo tenemos que versionar el código de login de la App en el repositorio de la nube, solo utilizaremos “git fetch && git checkout Plans-future” y dejaremos de un lado el “git merge”. Figuras 8,9. Uso del comando “git fetch && git checkout Plans-future”, con el fin de traer los cambios de la rama sucesora en este caso “Master”. Fuente propia
  • 62. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 62 Nótese bien que el comando “Git fetch” es utiliza durante 2 ocasiones, esto debido a que se creó una nueva rama con el nombre “Plans-future” con el fin de versionar todo el proyecto por completo, además también se hace el uso de este como sugerencia de la plataforma “Bitbucket”, así que se puede apreciar siendo utilizado con la rama “master” y la nueva rama “Plans-future”. Una vez hecho esto, se vuelve a modificar la carpeta “App” con los nuevos archivos que serán agregados y volvemos a ejecutar el comando “Git status”. Figura 9,1. Resultado del comando “Git status” en el intérprete MINGW64 aplicado a la carpeta “/App/Interfaz”, con el fin de agregar nuevas versiones y funcionalidades del código. Fuente propia Donde nueva mente se nos vuelve a mostrar los cambios hechos en la carpeta y se nos sugiere usar la serie de comandos “Git add” y “Git commit”, así que haremos uso de estos. Por lo que usaremos el comando “Git add App/” haciendo uso de la etiqueta “/” como referencia a subir la carpeta por completa.
  • 63. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 63 Figura 9,2. Aplicación del comando “Git add App/” en el intérprete MINGW64 aplicado a la carpeta “/App/Interfaz”, con el fin de agregar nuevas versiones y funcionalidades del código. Fuente propia Ya para finalizar y como se hizo previamente, confirmaremos este cambio con el comando “Git push” que nos permite enviar los commits desde nuestro repositorio local Git local al repositorio remoto. Figura 9,3. Resultado se usar “Git push”, mostrándonos la carga con éxito de nuestros archivos al repositorio remoto. Fuente propia
  • 64. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 64 Con esto, nuestro avance parcial del proyecto queda totalmente almacenado y versionado en un repositorio de BitBucket, a continuación, se mostrará como queda nuestro proyecto almacenado gráficamente en la plataforma de la nube. A continuación, se mostrarán imágenes ilustrativas de cómo queda nuestro repositorio remoto en la nube. Figura 10,1. Ventana principal de repositorio (en la rama master). Fuente propia Figura 10,2. Ventana principal de repositorio (en la rama Plans-future). Fuente propia
  • 65. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 65 Figura 10,3. Ventana carpeta App del repositorio (en la rama master). Fuente propia Figura 10,4. Ventana carpeta App del repositorio (en la rama Plans-future). Fuente propia Figura 10,5. Ventana carpeta interfaz del repositorio (en la rama master). Fuente propia
  • 66. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 66 Figura 10,6. Ventana carpeta App del repositorio (en la rama Plans-future). Fuente propia Figura 10,7. Ventana carpeta interfaz del repositorio (en la rama master). Fuente propia Figura 10,8. Ventana carpeta interfaz del repositorio (en la rama Plans-future). Fuente propia
  • 67. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 67 Figura 10,9. Ventana carpeta interfaz-login del repositorio (en la rama master). Fuente propia Figura 11,1. Ventana carpeta BD del repositorio (en la rama master). Fuente propia Figura 11,2. Ventana carpeta BD-Scripts del repositorio (en la rama master). Fuente propia
  • 68. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 68 Figura 11,3. Ventana carpeta BD-Scripts del repositorio (en la rama master). Fuente propia Otros comandos básicos que fueron usados son: o Mkdir: Es un comando usado para crear un nuevo subdirectorio o carpeta del sistema de archivos o CD: sirve para mostrar el nombre del directorio actual y, también, permite cambiar de directorio Nota: Aparte de cargar la interfaz de login y el formulario de registro de usuario de la App, también se importó al repositorio remoto, su modelo relacional de la base de datos y sus debido Scripts de Creación, Actualización y Eliminación entre otros, se puede encontrar estos documentos en el enlace del repositorio o al final de este documento en la sección de Anexos.
  • 69. DESARROLLO Y SISTEMATIZACIÓN EN COMUNICACIÓN AL CIUDADANO SOBRE CONCEJO MUNICIPAL CALI (Mi Concejo App Cali) 69 Pruebas de software Las pruebas de software son entendidas como el proceso sistemático de prevención, detección y corrección de defectos, es la herramienta más eficaz para asegurarnos la calidad de nuestro producto software. La Importancia que tienen las pruebas del software sobre nuestro proyecto, son de gran utilidad para analizar y/o detectar las posibles, futuras que poder sufrir la App, además de facilitarnos la entrega de este ya finalizado cuente con altos estándares de calidad y se encuentre totalmente culminado. Para la prueba de software existen una serie de modelos (Ciclos de vidas), que tienen suma importancia para realizar las pruebas sobre este, estos modelos tienen varios esquemas que son aplicados al software como lo son: • Modelo Cascada: el cual permite Realizar pruebas cuando está terminado la construcción del sistema. • Modelo Incremental: con este modelo se realizan pruebas a cada etapa o incremento que haiga en el sistema. • Modelo Evolutivo: este se enfoca en el uso y retroalimentación de los usuarios. • Modelo Espiral: este modelo se enfoca en las pruebas cíclicas de verificación y validación en el desarrollo del sistema. • Modelo XP: Este modelo se realiza la prueba durante las mejoras que se le hacen al sistema. Por esto y por muchas razones es de suma importancia realizamos las pruebas del software desde que iniciamos durante y finalizado del mismo, para cuando llego el momento de finalizar y hacer la entrega de este se encuentre lo más optimizado posible. Estas pruebas son importantes en el desarrollo de las 5 etapas definidas en la metodología ágil de desarrollo (6M’s) y al finalizar el software, ya que si realizamos dichas pruebas solo al finalizar el software corremos el riesgo que durante el desarrollo o peor aún al iniciar la App tengamos