Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BIENVENIDO AL CURSO DE
DISEÑO Y PROGRAMACION
DE PLATAFORMAS
TECNOLÓGICAS
Análisis y Desarrollo
Kevin Alvarez Alvarez
• Especialista en arquitectura y desarrollo
• Máster en seguridad de la información.
• Mas de 5 años de experiencia en la dirección de proyectos de software.
Contenidos:
Diseño/XML,
Programación en Java,
Funcionalidades del plataformas
Teoria de programación
Análisis de mercados para apps.
Competencia: Al finalizar este curso seras capaz de conocer aplicaciones que permitan al
usuario el ingreso de informacion, necesaria para la toma de decisiones y brindar servicio al
cliente externo sobre los productos contratados con la aseguradora.
Tabla de contenido
1. Contexto..........................................................................................................................................2
2. Programación de plataformas con Java.........................................................................................4
Como desarrollar en Java...................................................................................................................4
Que frameworks implementa Java.....................................................................................................5
3. Teoría de programación..................................................................................................................7
Modelos de desarrollo.........................................................................................................................7
Tipos de Software...............................................................................................................................8
4. Análisis de mercados para Apps.....................................................................................................9
5. Material de Apoyo.........................................................................................................................10
6. Ejercicios de Aplicación................................................................................................................10
Apropiación de conceptos.................................................................................................................10
1. Contexto
El diseño de plataformas ha ido cambiando durante los últimos años, ya que esta área de la
ingeniería no solamente se basa en cómo se debe ver o de qué manera se puede presentar más
cómodamente, hoy en día, el diseño tiene también como responsabilidad la velocidad, la fácil
adaptación del usuario (plataformas intuitivas), y la experiencia que tiene el usuario al navegar por
cada una de las secciones que se presenten.
Por otro lado, la programación es el campo de la ingeniería de software que más crece, no
solamente evoluciona en sus mismos pilares (lenguajes conocidos), sino que ha construido nuevos
(nuevos lenguajes de programación). Dia a día hay nuevas mejoras, nuevas funcionalidades, nuevos
marcos de trabajo, nuevos patrones de arquitectura, nuevos alcances e incluso nuevos lenguajes.
Desde que la programación fue abierta a la comunidad, el avance tecnológico no ha podido parar y
el trabajo que hacían unas pocas empresas (IBM, Oracle, Microsoft, Apple y algunas más) hoy en
día lo hacen miles de desarrolladores (se está alcanzando el millón de colaboradores oficiales en el
mundo), este mismo crecimiento y las nuevas tecnologías de despliegue permiten que día a día se
liberen nuevas versiones de proyectos que marcan una trascendencia en el mundo de la
programación.
Con toda la revolución tecnológica, el uso excesivo de los celulares y la industria 4.0 miles de
negocios se han modernizado y se han lanzado miles de aplicaciones que, no solo resuelven las
necesidades del negocio, sino que apoyan el ciclo de desarrollo para facilitar y amplificar las
capacidades de cada una de las fases que lo comprende:
En la etapa de diseño, hay una amplia gama de aplicaciones gratuitas y de pago que nos
permiten realizar modelamientos y bosquejos de nuestra plataforma en base a los
requerimientos del usuario, algunas incluso permiten interactuar con ella como si ya
estuviera desarrollada. La etapa de diseño también comprende el diseño de pruebas, diseño
de arquitectura, diseño de clases y diseño de datos, esto garantiza que en la siguiente etapa
el desarrollador cuente con toda la información necesaria para realizar el desarrollo de la
funcionalidad o mejora.
Para la etapa de programación, los IDE (Interfaz de desarrollo) han evolucionado conforme
al crecimiento que ha tenido cada framework y cada lenguaje. Hoy la mayoría cuentan con
un método de depuración profesional, visores de recursos y datos, modelamiento de bases
de datos, modelamiento de arquitectura de software, desarrollo y ejecución de pruebas
unitarias, diseño de interfaces gráficas, integración con terminales, entre otros. También
esta etapa comprende todo el manejo de código y versionamiento para lo cual GIT es el
sistema preferido, pero muchas plataformas de gestión de código disponibles que pueden
ayudarnos.
En la etapa de pruebas, hay herramientas que incluso nos permiten grabar la pantalla y
subirla como evidencia al caso de prueba en revisión, integrar la ejecución y capturar la
respuesta de las pruebas unitarias y generar reportes específicos de las tareas realizadas
automáticas y manuales. Esta etapa comprende también un modelo de integración continua
que en prácticas de ingeniería como DevOps son un requerimiento obligatorio.
Java es uno de los lenguajes de programación clásicos que han evolucionado a medida que el
mercado crece, sigue siendo actualizado y es considerado un lenguaje base, ya que el sistema
operativo Android, sistema operativo de smartphone y otros dispositivos, implementa este lenguaje
como motor de interpretación principal o nativo.
Java basa su sintaxis en C y C++, tiene un alto rendimiento y es pionero en la programación
orientada a objetos, es multiplataforma y ha influido muchos otros lenguajes de programación.
Java es uno de los lenguajes de programación con más baja curva de aprendizaje, tiene una sintaxis
simple y, al ser orientada a objetos, cuenta con una versatilidad amplia que permite la creación de
aplicaciones complejas en el menor tiempo posible.
Java cuenta con un kit de desarrollo (JDK), un intérprete (JRE), y el compilador. Con esto tendremos
nuestra computadora lista para compilar y probar.
Java es un lenguaje de programación de código abierto que ha sido crecido por la comunidad
agregando nuevos framework que permiten establecer patrones de diseño e implementación
dependiendo de las necesidades del desarrollador, hay frameworks para aplicaciones web, escritorio
y móviles. Los principales para cada una de las plataformas son los siguientes:
SPRING (Web)
el framework más popular para Java empresarial, para crear código de alto rendimiento, liviano y
reutilizable. Ya que su finalidad es estandarizar, agilizar, manejar y resolver los problemas que
puedan ir surgiendo en el trayecto de la programación
Para entender la programación debemos ver el procedimiento del desarrollo de software desde una
perspectiva tecnológica, organizacional y experimental. Desde cada una de estas aristas se detallará
una forma correcta de planificarlo, hacerlo y entregarlo.
Modelos de desarrollo
Los modelos de desarrollo permiten gestionar todo un proyecto de software con beneficios en las
aristas anteriormente mencionadas:
- Modelo de cascada:
Este modelo fue muy famoso y utilizado antes de la inclusión de las metodologías agiles. Consiste
en ejecutar las 5 etapas del desarrollo de manera sucesiva.
- Primero se debe capturar el requerimiento de software completo, definiendo el alcance
completamente.
- Luego se realiza un diseño completo de todas las vistas, el modelo de datos, la arquitectura
a implementar, y los casos de prueba para cada una de las funcionalidades definidas
- Posterior a esto se realiza el desarrollo de la aplicación.
- Una vez esté terminada, se procede a realizar todas las pruebas.
- Luego se despliega y es donde finalmente el usuario puede ver el resultado
Este modelo presenta serias fallas ya que el usuario no puede ver el progreso de su desarrollo, solo
hasta que se termina, aunque se implementen fases, el modelo de desarrollo tiene muchos vacíos
en la entrega de valor al usuario.
DevOps
Esta es la práctica de ingeniería basada en el agilismo más exitosa de los últimos años, basa todo
su marco de trabajo y filosofía a integrar de la manera más automatizada y segura del desarrollo de
software y las operaciones de TI en función del ciclo de desarrollo.
DevOps es una modificación de los marcos de trabajo agiles como SCRUM en función exclusiva del
aprovechamiento del tiempo en la programación.
Los pilares principales que definen a DevOps son los conceptos “integración continua” y “despliegue
continuo” que se encargan de dictar las políticas y sugerencias que debe tener un equipo de trabajo
para el crecimiento y desarrollo de una aplicación. Toma las prácticas de iteraciones, actividades,
objetos y gestión del conocimiento del agilismo y a su vez implementa suite de pruebas, artefactos,
gestión de código y despliegue de la automatización de proyectos de software.
Ilustración 8, Iteraciones en DevOps
DevOps pretende dentro de su filosofia y marco de trabajo el crecimiento continuo de una aplicación,
basando en despliegues cortos pero frecuentes de funcionalidades a producción.
Hoy en día las plataformas de gestion de Código mas importantes implementan DevOps y sus
capacidades, Azure, Gitlab, Github y Bitbucket son ejemplo de ello.
Tipos de Software
Luego de identificar la metodología deberemos identificar que tipo de software será desarrollado,
para esto contamos con 3 tipos de software:
- Software de sistema: se refiere a las bases del sistema y sus operaciones, como sistemas
operativos, controladores, herramientas de diagnóstico de sistema.
Una vez tengamos una idea clara sobre el desarrollo de una aplicación es importante conocer de
que manera puede ser recibida, con nuestra expectativa de usuarios y la categorización que
queremos darle a partir de la necesidad que queremos subsanar.
Hacer un estudio de mercado en internet es relativamente fácil, hay bastante productos y
herramientas que te permiten realizar un estudio de mercado tanto web como móvil. Hoy en día
internet se encuentra lleno de información que nos puede ayudar a ser asertivos a la hora de sacar
una nueva app, proveedores como Google tienen herramientas para hacer consultas masivas:
- Google Trends
Esta herramienta nos puede ayudar a saber si la temática de la que nuestra aplicación se define
estará en tendencia o en qué momento es bueno liberarla, ya que, necesitamos que una vez salga
sea descargada y utilizada con la mayor frecuencia posible.
- Redes Sociales
Hoy en día las redes sociales tienen mucha información acerca del mercado y lo que se esta
usando. Realizando una búsqueda inteligente del mercado especifico al que queremos impactar
podremos obtener una respuesta lo suficientemente confiable como para establecer un plan de
publicidad o de enfoque en el usuario.
- AppStore
Si queremos publicar nuestra app en el sitio de aplicaciones, también es bueno indagar en este
mismo sitio que aplicaciones son competencia, que tanta presencia tiene y como puede ayudarnos a
posicionarnos en este mercado. Podemos buscar con el nombre de nuestra aplicación que otras se
encuentran y que tanta priorización vamos a tener cuando nuestra app este publicada.
Para aplicaciones de público cerrado, y/o de carácter empresarial, estas actividades no pierden
importancia, ya que debemos garantizar que nuestra aplicación tenga el uso esperado.
5. Material de Apoyo
6. Ejercicios de Aplicación
Apropiación de conceptos
Preguntas:
Se sugiere volver a ver las láminas del curso:
1. Realizar un análisis de mercado para una idea de aplicación que tengas o tenga la
organización usando Google.
2. ¿Genere una idea de proyecto corta, identifica que metodología deberías utilizar y por qué?
3. ¿De que manera puedo identificar que lenguaje de programación utilizar al implementar un
proyecto de software?
4. ¿Qué herramientas puedo utilizar para desarrollar un proyecto de software con metodología
agil?
Recuerda que al finalizar este curso Panamerican business School te entregará un diploma de
participación y harás una evaluación de retrospectiva donde podrás calificar el contenido de este
curso
Ha sido para mi un placer acompañarte en este curso y espero que nos veamos en uno próximo con
mucho más contenido de aprendizaje.