miércoles, 10 de abril de 2019

¿Qué importancia tiene la Ingeniería de Software en el proceso de desarrollo de aplicaciones móviles para un egresado del Técnico Superior Universitario en Tecnologías de la Información y Comunicación Área Sistemas Informáticos?

Presentación

El Técnico Superior Universitario en Tecnologías de la Información área Desarrollo de Software Multiplataforma cuenta con las competencias profesionales necesarias para su desempeño en el campo laboral, en el ámbito local, regional, nacional e internacional.

Competencias Profesionales 

Las competencias profesionales son las destrezas y actitudes que permiten al Técnico Superior Universitario desarrollar actividades en su área profesional, adaptarse a nuevas situaciones, así como transferir, si es necesario, sus conocimientos, habilidades y actitudes a áreas profesionales próximas.

Competencias Genéricas

  • Desarrollar soluciones tecnológicas para entornos Web mediante fundamentos de programación orientada a objetos, base de datos y redes de área local  que atiendan las necesidades de las organizaciones.

Competencias Específicas 

  1. Implementar soluciones multiplataforma, en la nube y software embebido, en entornos seguros mediante la adquisición y administración de datos e ingeniería de software para contribuir a la automatización de los procesos en las organizaciones.
  • Desarrollar sistemas de información empleando frameworks, patrones de diseño y arquitecturas de desarrollo para generar soluciones multiplataforma, en la nube y software embebido.
  • Administrar información mediante gestores de bases de datos relacionales, no relacionales, orientadas a objetos, orientadas a archivos y distribuidas para la implementación de los sistemas de información.

Escenarios de Actuación

El Técnico Superior Universitario en Tecnologías de la Información área Desarrollo de Software Multiplataforma, podrá desenvolverse en:
  • Organizaciones públicas y privadas dedicadas al desarrollo y consultoría de software.
  • Organizaciones públicas y privadas cuyo fin no sea el desarrollo de software en funciones de análisis, diseño, implementación, evaluación y venta de Software.
  • Organizaciones públicas y privadas que cuenten con un área o departamento de TI.
  • En su propia empresa de integración de soluciones de software.
  • En los sectores público y social, así como de manera independiente en las diferentes ramas productivas que demanden servicios de Tecnologías de la información preferentemente en desarrollo de software multiplataforma.
  • En forma independiente mediante consultorías de bienes y servicios.

Ocupaciones Profesionales

El Técnico Superior Universitario en Tecnologías de la Información área Desarrollo de Software Multiplataforma podrá desempeñarse como:
  • Desarrollador de aplicaciones móviles.
  • Desarrollador de aplicaciones para la nube.
  • Desarrollador de aplicaciones para Internet de las Cosas.
  • Desarrollador de aplicaciones Web.
  • Ejecutor de Pruebas.
  • Analista de Sistemas.
  • Programador de Sistemas.
  • Administrador de Base de Datos.
  • Técnico en soporte de Sistemas Informáticos.
  • Integrador de seguridad en aplicaciones multiplataforma.

Manuales de usuario (Teléfono inteligente, electrodoméstico y herramienta de prueba de software)...



1.- Manual guía de usuario, recorrido completo en el dispositivo móvil Moto g6...



link de pdf: https://motorola-global-es-latam.custhelp.com/ci/fattach/get/3545428/1528835874/redirect/1/session/L2F2LzEvdGltZS8xNTU0OTU3NDI4L3NpZC9mVWhHb3YwZ0VpVUVvYXZkbnRoczgyMjZYRXBBb2VPX1BfaFg0dEs0RW5GUUtxejFJYkVhVUhrUE91cktFNllMeWtOQjlyWnp6S2hRM3JoMThRM2dIZDAzb0xyT3ZzMmtoTUNGNEVCaFpvNEJkbWJ3M1VQNlZFT1ElMjElMjE=/filename/moto%20g6_UG_es-US_SSC8C28182B.pdf


2.- Manual de Electrodomestico Licuadora Kelvinator...
link de manual pdf: https://www.kelvinator.com.ar/archivos/6e4ec1ba89490a0___L300_m.pdf



3.- Una lista de herramientas para pruebas software (funcionales y de software libre)

Hablábamos hace unas semanas, en el post de una lista de herramientas de calidad software imprescindibles, sobre como en estos años se ha disparado el número de herramientas para el control de la calidad software. En aquel post hablamos de herramientas de calidad software “estáticas” (es decir, analizan sin ejecutar el software) y de “caja blanca” (analizan en base al código fuente). Y nos quedó pendiente mencionar otro grupo de herramientas de calidad software: las herramientas para pruebas software, de caja negra.
Como podéis imaginar, habrá decenas de herramientas para pruebas software, de las que he querido destacar en esta lista tres: Selenium, Jmeter y Testlink. ¿Por qué estas tres? Porque son herramientas para pruebas software, son de software libre y son de las más usadas en proyectos. Las dos primeras, Selenium y Jmeter, trabajan en la automatización de las pruebas funcionales, la tercera, Testlink, en la gestión de los casos de prueba. Aquí os dejo un breve resumen de estas herramientas para pruebas software.

Una lista de herramientas para pruebas software

Selenium. Compuesto por dos herramientas: Selenium IDE y SeleniumWebDriver.  La primera, un plugin de Firefox que te genera un entorno de desarrollo y que permite crear casos de prueba para aplicaciones web. La segunda, Selenium WebDriver, ejecuta las pruebas. Este entorno de automatización de pruebas automáticas opera en los principales navegadores (IE, Mozilla, Chrome y Opera). Además, permite pruebas para dispositivos móviles, para iPhone y Android. Utiliza los siguientes lenguajes: Python, Ruby, Java y C#. La licencia es “Apache 2.0 License”.
JMeter. Aplicación de escritorio en Java y dentro del proyecto Jakarta. Esta herramienta permite realizar pruebas funcionales (y de rendimiento) para aplicaciones web. Trabaja con los siguientes protocolos: HTTP, HTTPS, SOAP, JDBC, LDAP, JMS, Mail – POP3(S) and IMAP(S). La licencia es “Apache 2.0 License”.
Testlink. Permite crear y gestionar casos de prueba, organizarlos en planes de pruebas, realizar un seguimiento de los resultados, establecer trazabilidad con los requisitos, generar informes etc. Se integra con otros sistemas de seguimiento de “bugs” y “ticketing” como Bugzilla, Mantis, etc. Licencia: GPL.
Seguro que hay muchas más herramientas para pruebas software, también muchas comerciales (muy buenas, por cierto), pero, en mi opinión, estas son las que más te puedes encontrar hoy en proyectos.


Proceso para la distribución de una aplicación móvil en plataforma internacional Play Store...

Cómo subir una app

Una vez que te registres y obtengas una cuenta de desarrollador de Google Play, podrás subir apps a esta plataforma mediante Play Console.
Sugerencia: Cuando crees una app, usa Android App Bundle, el formato de publicación recomendado de Google Play.

1.- Crea una app

  1. Accede a Play Console.
  2. Selecciona Todas las aplicaciones All applications > Crear aplicación.
  3. Selecciona el idioma predeterminado y agrega un título para tu app. Escribe el nombre de la app como quieres que aparezca en Google Play.
  4. Crea la ficha de Play Store, responde el cuestionario de clasificación del contenido y configura el precio y la distribución.

2.- Prepara tu app para la etapa de prueba o producción

A fin de que tu app esté lista para la etapa de prueba o producción, debes preparar y lanzar las versiones en un segmento específico.
Una versión es la combinación de uno o más artefactos compilados que prepararás antes de lanzar una app o actualización para los usuarios.

3.- Administra los archivos APK

Los nombres del paquete de los archivos de apps son únicos y permanentes, por lo que debes elegirlos con cuidado. Los nombres del paquete no se podrán borrar ni volver a usar en el futuro.

4.- Cómo configurar una ficha de Play Store

La ficha de Play Store se muestra en Google Play y brinda más información a los usuarios sobre la app. Asimismo, se comparte con distintos segmentos, incluidos los de prueba.

5.- Próximos pasos


Referencias:
Play console. (s.f).support . Recuperado el 10 de abril de 2019 de  https://support.google.com/googleplay/android-developer/answer/113469?hl=es-419#contact=1

jueves, 21 de marzo de 2019

PRUEBAS DE SOFTWARE...


Las pruebas de software consisten en la dinámica de la verificación del comportamiento de un programa en un conjunto finito de casos de prueba, debidamente seleccionados de por lo general infinitas ejecuciones de dominio, contra la del comportamiento esperado. Son una serie de actividades que se realizan con el propósito de encontrar los posibles fallos de implementación, calidad o usabilidad de un programa u ordenador; probando el comportamiento del mismo.

La prueba es un proceso que se enfoca sobre la lógica interna del software y las funciones externas. Es un proceso de ejecución de un programa con la intención de descubrir un error, no puede asegurar la ausencia de defectos; sólo puede demostrar que existen defectos en el software.


Exposición fallo informático...








domingo, 24 de febrero de 2019

Aforismo de Dijstra

¿A qué se refiere Dijstra con este aforismo?

Aforismo de Dijstra: “Probar programas sirva para demostrar la presencia de errores, pero nunca para demostrar su ausencia”. Se refiere a que en la programación al momento de crear una aplicación siempre al realizar pruebas de software, encontraremos muchos errores, pero argumenta que es normal, porque en el mundo real no hay software perfecto, no es posible hacer pruebas que te muestren exactamente todos los errores que existan. Es posible que encontremos infinitos casos de prueba pero lo mas importante es que hay que saber implementarlo.   

Comparación entre pruebas de Software

Tipo de prueba
Descripción
¿Qué se utiliza como base para la prueba?
¿Será útil para tu aplicación móvil?
Pruebas unitarias
Son una forma de comprobar nuestro código a nivel de módulos individuales para asegurarnos que funcionan correctamente por separado. Esto nos proporciona un plus de estabilidad a nuestro código porque se puede asegurar que ese trozo de código no tiene fallos. 
El proceso que se lleva a cabo, consta de tres partes. El Arrange, donde se definen los requisitos que debe cumplir el código principal. El Act, el proceso de creación, donde vamos acumulando los resultados que analizaremos. Y el Asert, que se considera el momento en que comprobamos si los resultados agrupados son correctos o incorrectos. Dependiendo del resultado, se valida y continúa, o se repara, de forma que el error desaparezca. 
Para la aplicación móvil que estamos desarrollando si es útil, en la cuestión de enviar un comentario o al momento de reservar una cita.
Pruebas de integración
Incremental ascendente ( Bottom-up)
Empieza la construcción y la prueba con los módulos de los niveles más bajos de la estructura del programa. Dado que los módulos se integran de abajo hacia arriba, el proceso requerido de los módulos subordinados a un nivel dado siempre están disponibles y se elimina la necesidad de resguardos.
Se crean primero los componentes de más bajo nivel (E, F) y se crean componentes conductores para simular a los componentes que los llaman. A continuación se desarrollan los componentes de más alto nivel (B, C, D) y se prueban. Por último dichos componentes se combinan con el que los llama (A). Los componentes auxiliares son necesarios en raras ocasiones.
Este tipo de enfoque permite un desarrollo más en paralelo que el enfoque de arriba abajo, pero presenta mayores dificultades a la hora de planificar y de gestionar.
Si, ya que como menciona la prueba de integración Incremental ascendente(Buttom-up) es el proceso requerido a través de módulos en este caso de interfaces, y en nuestra aplicación se requiere el uso de mucha interfaces.
Pruebas de integración
Incremental descendente (Top-down)
Se integran los módulos moviéndose hacia abajo por la jerarquía de control. Comenzando por el módulo principal, los módulos subordinados se van incorporando a la estructura bien, en forma primero en profundidad, que integra todos los módulos de un camino de control principal de la estructura, o primero en anchura, que incorpora todos los módulos directamente subordinados a cada nivel, moviéndose por la estructura de forma horizontal.
El primer componente que se desarrolla y prueba es el primero de la jerarquía (A). Los componentes de nivel más bajo se sustituyen por componentes auxiliares para simular a los componentes invocados. En este caso no son necesarios componentes conductores. Una de las ventajas de aplicar esta estrategia es que las interfaces entre los distintos componentes se prueban en una fase temprana y con frecuencia.
En este caso al mostrar alguna imágenes, ya que se mostrara un carrusel de imágenes, también al momento de mostrar mensajes al usuario.
Pruebas de sistema
Son pruebas de integración del sistema de información completo, y permiten probar el sistema en su conjunto y con otros sistemas con los que se relaciona para verificar que las especificaciones funcionales y técnicas se cumplen. Dan una visión muy similar a su comportamiento en el entorno de producción.
Las pruebas de sistemas buscan discrepancias entre el programa y el objetivo o requerimiento, enfocándose en los errores hechos durante la transición del proceso al diseñarla especificación funcional.
Pruebas funcionales: Dirigidas a asegurar que el sistema de información realiza correctamente todas las funciones que se han detallado en las especificaciones dadas por el usuario del sistema.
Pruebas de comunicaciones:Determinan que las interfaces entre los componentes del sistema funcionan adecuadamente, tanto a través de dispositivos remotos, como locales. Asimismo, se han de probar las interfaces hombre/máquina.
Pruebas de rendimiento:Consisten en determinar que los tiempos de respuesta están dentro de los intervalos establecidos en las especificaciones del sistema.
Pruebas de volumen: Consisten en examinar el funcionamiento del sistema cuando está trabajando con grandes volúmenes de datos, simulando las cargas de trabajo esperadas.
Pruebas de sobrecarga: Consisten en comprobar el funcionamiento del sistema en el umbral límite de los recursos, sometiéndole a cargas masivas. El objetivo es establecer los puntos extremos en los cuales el sistema empieza a operar por debajo de los requisitos establecidos.
Pruebas de disponibilidad de datos: Consisten en demostrar que el sistema puede recuperarse ante fallos, tanto de equipo físico como lógico, sin comprometer la integridad de los datos.
Pruebas de facilidad de uso:Consisten en comprobar la adaptabilidad del sistema a las necesidades de los usuarios, tanto para asegurar que se acomoda a su modo habitual de trabajo, como para determinar las facilidades que aporta al introducir datos en el sistema y obtener los resultados.
Pruebas de operación: Consisten en comprobar la correcta implementación de los procedimientos de operación, incluyendo la planificación y control de trabajos, arranque y rearranque del sistema, etc.
Pruebas de entorno: Consisten en verificar las interacciones del sistema con otros sistemas dentro del mismo entorno.
Pruebas de seguridad: Consisten en verificar los mecanismos de control de acceso al sistema para evitar alteraciones indebidas en los datos.
En este caso las pruebas de sistema, son útiles, ya que permite probar el sistema así como también verificar que las especificaciones funcionales y técnicas se cumplan correctamente.
Pruebas de aceptación
Son definidas por el usuario del sistema y preparadas por el equipo de desarrollo, aunque la ejecución y aprobación final corresponden al usuario.
Con base a la prueba de aceptación, estas pruebas van dirigidas a comprobar que el sistema cumple los requisitos de funcionamiento esperado, recogidos en el catálogo de requisitos y en los criterios de aceptación del sistema de información, y conseguir así la aceptación final del sistema por parte del usuario.
Es útil, ya que esta prueba pretender comprobar que el sistema cumpla con los requerimientos de funcionalidad de la aplicación.
Pruebas de instalación
Las pruebas de instalación tienen como finalidad verificar y validar que el sistema se instala apropiadamente en cada cliente, bajo las siguientes condiciones:
· Instalaciones nuevas, nuevas máquinas a las que nunca se les ha instalado el sistema.
· Actualizar máquinas previamente instaladas con el sistema.
· Instalar versiones viejas en máquinas previamente instaladas con el sistema
 · Diseñar sripts para validar las condiciones de la máquina a instalar.
· Realizar la instalación
Es útil, ya que la prueba de instalación tiene como finalidad que el sistema se instale correctamente.