In this blog, you will find summaries about the programming classes I have been taking during my high school along with a video I made about "KobraManagement", a team project in where
I performed the lead role and which objective as to we help a gymnastics club
to automate the process of registration to state gymnastics competitions.
Samara Ruiz Sandoval
jueves, 21 de febrero de 2019
martes, 8 de marzo de 2016
jueves, 3 de marzo de 2016
domingo, 28 de febrero de 2016
Programación Extrema
Problemática
La
empresa el Pato Volador en la que usted labora ha sido contratada por una
Agencia Espacial para desarrollar el software de un satélite que
se desarrollará en 3 meses como máximo, ya que es el tiempo en que será
el lanzamiento del satélite para ponerlo en órbita. El satélite auxiliará el
retorno de una las naves espaciales que regresan a la tierra.
La
Agencia Espacial ha puesto a su disposición a los ingenieros encargados de
proporcionar los requerimientos del software de tiempo completo, así como los
recursos e instalaciones necesarios para
lograr el desarrollo del software en el tiempo establecido.
El
Pato Volador ha propuesto a los
directivos de la Agencia Espacial la metodología de Programación Extrema (XP
por sus siglas en ingles) para la realización del software, ya que es
indispensable terminar en tiempo el proyecto.
Usted
debe utilizar la metodología XP para organizar a su equipo de trabajo y a los
ingenieros de la Agencia, explicándoles la metodología XP y las funciones que
deben realizar en las diferentes fases del proceso de desarrollo del software.
1.¿Qué
es la Programación Extrema?
La programación extrema se
basa en una serie de reglas y principios los
cuales se complementan para minimizar los tópicos problemas que pueden surgir
en todo desarrollo de proyectos software. Como dice el el autor de la
XP, Kent Beck:
"Todo en el software cambia. Los requisitos cambian. El diseño cambia. El negocio cambia. La tecnología cambia. El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en sí mismo, puesto que sabemos que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando éste tiene lugar"
Por lo tanto, uno de los objetivos de la programación extrema es responder rápidamente a las necesidades del
cliente, aunque realice cambios en fases avanzadas del proyecto pero también buscando involucrar a todo el equipo en el desarrollo.
2.¿Cuáles
son los valores y principios de la
Programación Extrema?
Para
garantizar el éxito de un proyecto, los autores de XP han considerado como
fundamentales cuatro valores:
- Comunicación. Debido a que uno de los objetivos de la XP es el trabajo en equipo, este valor es fundamental para evitar problemas entre los integrantes del grupo de trabajo: jefes de proyecto, clientes y desarrolladores.
- Sencillez. Los programas deben ser los más sencillos posibles y tener la funcionalidad necesaria que se indican en los requisitos. No hay que añadir algo que no se necesite hoy.
- Retroalimentación. Las pruebas que se le realizan al software nos mantiene informados del grado de fiabilidad del sistema.
- Valentía. Asumir retos, ser valientes ante los problemas y afrontarlos. El intentar mejorar algo que ya funciona,
Los
principios fundamentales se apoyan en los valores y también son cuatro.
Se
busca.
- Realimentación veloz: Como lo mencionamos las pruebas son importantes, pero hay que tener en cuenta que éstas se deben estar realizando constantemente.
- Modificaciones incrementales: De los objetivos más importantes de la programación extrema está en dar al cliente lo que quiere y cuando quiere, así que es importante no detener el desarrollo del proyecto.
- Trabajo de calidad: Esencial para satisfacer las necesidades de los clientes
- Asunción de simplicidad: Como lo mencionamos, el proyecto debe ser lo más
3.¿Cuáles son las actividades, recursos y prácticas de la Programación Extrema?
12 son
las prácticas de la XP:
- El
juego de la planificación: De vital importancia ya que, si
no se piensa previamente lo que se quiere hacer, nuestro equipo estará
confundido y posiblemente ni siquiera conozca el objetivo del proyecto.
- Pequeñas
entregas Cada
versión debe de ser tan pequeña como fuera posible, conteniendo los
requisitos de negocios más importantes para que de esta manera nuestro cliente
pueda apreciar los avances.
- Metáfora Una metáfora es una
historia que todo el mundo puede contar acerca de cómo funciona el sistema,
lo cual sirve de mucho para que el equipo puede entender de una manera
sencilla lo que se pretende hacer.
- Diseño
sencillo: Es
importante no perder de vista que en un proyecto el objetivo siempre va a
ser cumplir una necesidad por lo que está demás el buscar un diseño
elaborado.
- Pruebas. Muy importantes pues no debe
existir ninguna característica en el programa que no haya sido probada
para así obtener un programa seguro que conforme pasa el tiempo es capaz
de aceptar nuevos cambios.
- Refactorización: Es el proceso de hacer
nuestro programa lo más simple posible sin perder la funcionalidad.
- Programación
por parejas Todo
el código de producción lo escriben dos personas frente al ordenador, con
un sólo ratón y un sólo teclado. Cada miembro de la pareja juega su papel:
uno codifica en el ordenador y piensa la mejor manera de hacerlo, el otro
piensa más estratégicamente
- Propiedad
colectiva Cualquiera
que crea que puede aportar valor al código en cualquier parcela puede
hacerlo, ningún miembro del equipo es propietario del código. Si alguien
quiere hacer cambios en el código puede hacerlo.
- Integración
continua El
código se debe integrar como mínimo una vez al día, y realizar las pruebas
sobre la totalidad del sistema.
- 40
horas semanales: Es
importante el descanso por lo que la programación extrema propone que sólo
se trabajen 40 horas a la semana.
- Cliente
en casa: Es
una buena práctica el buscar que el cliente nos ceda una persona que
conozca el negocio para que se integre en el equipo ya que normalmente
estos elementos son muy valiosos, pero debemos de hacerles ver que será
mejor para su negocio tener un software pronto en funcionamiento, y esto
no implica que el cliente no pueda realizar cualquier otro trabajo.
- Estándares de codificación Si los programadores van a estar tocando partes distintas del sistema, intercambiando compañeros, haciendo refactoring, debemos de establecer un estándar de codificación aceptado e implantado por todo el equipo.
También hay cuatro actividades
básicas que son:
- Codificar
- Hacer pruebas
- Escuchar
- Diseñar
Por último los recursos de la programación
extrema son:
- Tiempo: es necesario dedicar suficiente tiempo a la terminación de un proyecto sin embargo el tiempo se asigna a actividades separadas. Se debe buscar tiempo para escuchar al cliente, tiempo para diseñar, tiempo para codificar y tiempo para probar.
- Costo: el costo es la segunda variable que podemos ajustar a las actividades de codificar, diseñar, probar y escuchar están sobrecargando el proyecto y los recursos que pusimos en tiempo alcance y calidad no son suficientes para equilibrar el proyecto, a pesar de haber asignado una cantidad al costo.
4.¿Cuál
son las fases del proceso de desarrollo de XP?
El
ciclo de vida ideal de XP consiste de seis fases:
Fase
I: Exploración
En
esta fase, los clientes plantean a grandes rasgos las historias de usuario que
son de interés para la primera entrega del producto. Al mismo tiempo el equipo
de desarrollo se familiariza con las herramientas, tecnologías y prácticas que
se utilizarán en el proyecto. (:..) La fase de exploración toma de pocas
semanas a pocos meses, dependiendo del tamaño y familiaridad que tengan los
programadores con la tecnología.
Fase
II: Planificación de la Entrega
En
esta fase el cliente establece la prioridad de cada historia de usuario, y
correspondientemente, los programadores realizan una estimación del esfuerzo
necesario de cada una de ellas. Se determina un cronograma en conjunto con el
cliente. Una entrega debería obtenerse en no más de tres meses. Esta fase dura
unos pocos días.
Fase
III: Iteraciones
Esta
fase incluye varias iteraciones sobre el sistema antes de ser entregado. El
Plan de Entrega está compuesto por iteraciones de no más de tres semanas. Al
final de la última iteración el sistema estará listo para entrar en producción.
Los
elementos que deben tomarse en cuenta durante la elaboración del Plan de la
Iteración son: historias de usuario no abordadas, velocidad del proyecto,
pruebas de aceptación no superadas en la iteración anterior y tareas no
terminadas en la iteración anterior. Todo el trabajo de la iteración es
expresado en tareas de programación, cada una de ellas es asignada a un programador
como responsable, pero llevadas a cabo por parejas de programadores. Wake en
proporciona algunas guías útiles para realizar la planificación de la entrega y
de cada iteración.
Fase
IV: Producción
La
fase de producción requiere de pruebas adicionales y revisiones de rendimiento
antes de que el sistema sea trasladado al entorno del cliente. Al mismo tiempo,
se deben tomar decisiones sobre la inclusión de nuevas características a la
versión actual, debido a cambios durante esta fase.
Fase
V: Mantenimiento
Mientras
la primera versión se encuentra en producción, el proyecto XP debe mantener el
sistema en funcionamiento al mismo tiempo que desarrolla nuevas iteraciones.
Para realizar esto se requiere de tareas de soporte para el cliente.
Fase
VI: Muerte del Proyecto
Es cuando el cliente no tiene más historias para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente en otros aspectos como rendimiento y confiabilidad del sistema. Se genera la documentación final del sistema y no se realizan más cambios en la arquitectura. La muerte del proyecto también ocurre cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo.
Es cuando el cliente no tiene más historias para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente en otros aspectos como rendimiento y confiabilidad del sistema. Se genera la documentación final del sistema y no se realizan más cambios en la arquitectura. La muerte del proyecto también ocurre cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo.
5. ¿Qué
es una historia de usuario?
Las
historias de usuario son la técnica utilizada en XP para especificar los
requisitos del software. Se trata de tarjetas de papel en las cuales el cliente
describe brevemente las características que el sistema debe poseer. En
cualquier momento historias de usuario pueden romperse, reemplazarse por otras
más específicas o generales, añadirse nuevas o ser modificadas y cada historia
de usuario es lo suficientemente comprensible y delimitada para que los
programadores puedan implementarla en unas semanas.
Beck
en su libro presenta un ejemplo de ficha en la cual pueden reconocerse los
siguientes contenidos: fecha, tipo de actividad, prueba funcional, número de
historia, prioridad técnica y del cliente, referencia a otra historia previa,
riesgo, estimación técnica, descripción, notas y una lista de seguimiento con
la fecha, estado cosas por terminar y comentarios.
A continuación presentamos un mapa conceptual que representa todo lo que presentamos anteriormente:
Por último mostramos una presentación donde damos una solución al problema
Bibliography
A continuación presentamos un mapa conceptual que representa todo lo que presentamos anteriormente:
Por último mostramos una presentación donde damos una solución al problema
Bibliography
Penadés, P. L.-M. (n.d.). Métodologías ágiles
para el desarrollo de software: eXtreme Programming (XP). Retrieved from
Cyta: http://www.cyta.com.ar/ta0502/v5n2a1.htm
Robles, G. (2002, Octubre 10). Programación
eXtrema y Software Libre. Retrieved from
http://es.tldp.org/Presentaciones/200211hispalinux/ferrer/robles-ferrer-ponencia-hispalinux-2002.html
Silverio, E. E. (2008, Julio 13). Programacion
Extrema. Retrieved from SlideShare:
http://es.slideshare.net/edgarespinoza/programacion-extrema
Valverde, D. (n.d.). Introdución a la
Programación Extrema. Retrieved from
http://www.davidvalverde.com/blog/introduccion-a-la-programacion-extrema-xp/
viernes, 26 de febrero de 2016
Método de la Ruta Crítica
El método CPM o Ruta Crítica es frecuentemente utilizado en el desarrollo y control de proyectos. El objetivo principal es determinar la duración de un proyecto, entendiendo éste como una secuencia de actividades relacionadas entre sí, donde cada una de las actividades tiene una duración estimada.
EJEMPLO: A continuación se presenta un resumen de las actividades que requiere un proyecto para completarse. El tiempo de duración de cada actividad en semanas es fijo. Se solicita que estime la duración total del proyecto a través del método CPM.
A continuación se presenta el diagrama:
El análisis de un proyecto
Requerimientos funcionales
MODULO 1: REGISTRO
Submódulo: Registro Administrador
Al inicio el software registrará un único
administrador requiriendo los siguientes datos:
- Nombre
- Correo
- Contraseña
Con estos datos, el sistema dará de alta al
administrador y le proporcionará su ID, el cual no se podrá cambiar pero si lo
desea podrá cambiar sus datos accediendo al submódulo cambio de información.
Submódulo: Registro de Clubs
El administrador podrá
registrar a todos los clubs y para ello se pedirán los siguientes datos:
- Nombre del club
- Dirección club
- Nombre del entrenador principal
- Correo
- Contraseña
Submódulo: Registro de Jueces
Se crearán cuentas para los
jueces pidiendo los siguientes datos:
- Nombre
- Contraseña
Submódulo: Registro tesorero
El administrador registrará
al tesorero con los siguientes datos:
- Nombre
- Dirección
- Teléfono
- Correo
- Contraseña
MODULO 2: COMPETENCIAS
Submódulo: Registro de
competencias
El administrador registrará
las competencias con los siguientes datos:
- Nombre de la competencia
- Lugar
- Jueces que calificarán
Submódulo: Registro participantes
Cada club registrará a sus
participantes con los siguientes datos:
- Apellido paterno
- Apellido materno
- Nombre
- Fecha de nacimiento
- Clase (nivel)
El sistema determinará
automáticamente su clasificación
MODULO 3: CALIFICACIONES
Submódulo: Asignación de calificaciones
Cada juez deberá ir
guardando la calificación de cada participante en los siguientes aparatos:
Piso, viga, barras, salto.
Submódulo: Suma total de
calificaciones (All Around)
El sistema sumará las
calificaciones de todas las participantes
Submódulo: Obtención de primeros
lugares
El sistema, de acuerdo a
como se especifique obtendrá los primeros 6 lugares ya sea por aparato o sólo
por el (All around)
Submódulo; Impresión de las
memorias
Requerimientos
no funcionales
Para un mejor manejo, entendimiento y calidad de Kobra
Management se tienen que tener en cuenta los siguientes puntos:
- Se debe capacitar al cliente acerca del funcionamiento del sistema para un mejor entendimiento del mismo
- El sistema debe contar con un manual de usuario para la consulta de las funciones del sistema así como de su manejo
- El sistema debe de ejecutarse en todos los navegadores, tanto para dispositivos móviles o computadoras
- Debe de tener un entorno gráfico adecuado al ambiente del gimnasio
- Su uso debe de ser lo más sencillo posible para los usuarios
- Debe de almacenar, consultar, actualizar la información que se requiera sin que se afecte el tiempo de respuesta
- Debe estar disponible en cualquier momento que se le solicite en el periodo de tiempo en el que el gimnasio esté abierto
Requerimientos de sistema
Para la instalación de Kobra Management se necesitará de un
computador con las siguientes especificaciones
- Sistema operativo indistinto
- Procesador de 64 bits
- Memoria RAM 2.00 GB
- Memoria de disco libre: 50 MB
- Navegador Google® Chrome™ Versión 45.0.2454.101 m
- NetBeans IDE 8.0.2
- MYSQL® Server Versión 5.6
- Java Virtual Machine
- JDK 1.8.0_60
- Java EE 7
- Servidor Apache Tomcat 8.0.15.0 o GlassFish 4.1
Asimismo, para su instalación en dispositivos móviles se
requerirá de:
- Sistema operativo Android® LoliPop
- Procesador Dual Core
- Memoria de disco Disponible: 15 MB
- Memoria interna: 4 GB EMMC + 512 MB RAM
Justificación
Hemos decidido realizar este proyecto debido a que podemos terminarlo con éxito y calidad, además, estamos trabajando para una institución gubernamental que hasta ahora no cuenta con un eficiente sistema de administración para controlar el registro de sus afiliados, así como sus registros de campeonatos y calificaciones.
Objetivo General
Optimizar el proceso que se lleva a cabo en las competencias así como facilitar el proceso de la obtención de los primeros lugares evitando así que los capturistas cometan errores.
Objetivos específicos
- Cada club podrá inscribir a sus participantes para tener un mayor control sobre los registros
- Se creará una sección para que los jueces puedan ir enviando las calificaciones de cada participante.
- El sistema obtendrá los primeros lugares de acuerdo a cómo se especifique.
Alcance
MODULO 1: REGISTRO
- Registro Administrador
- Registro Jueces
- Registro de clubs
- Registro tesorero
MODULO 2: COMPETENCIAS
- Registro de competencias
- Registro de participantes
- Aceptación de las participantes
- Designación de Jueces
MODULO 3: CALIFICACIONES
- Asignación de calificaciones
- Suma total de calificaciones (All Around).
- Obtención de primeros lugares
- Impresión de las memorias
Proceso de negocio
sábado, 20 de febrero de 2016
Proceso de Software
Introducción:
El proceso de Software
Aunque los procesos de software nos guiarán en nuestro camino hacia la creación de un producto de software, realmente no existe un proceso del software ideal ya que algunos sistemas como los críticos requerirán un desarrollo muy estructurado, mientras los sistemas de negocio con requerimientos rápidamente cambiantes se necesitará un proceso flexible y ágil.
El proceso de Software
A continuación, presentamos un mapa conceptual en el
que se muestra brevemente lo que es un proceso de software, de lo que se compone y
algunos ejemplos de los métodos que existen.
Como se muestra en el mapa, existen actividades básicas que se deben
aplicar en el proceso de software, a continuación explicaremos a lo
que se refiere cada una:
- Especificación de software: Se debe definir la funcionalidad de software y las restricciones de operación.
- Diseño e implementación del software: Se debe validar el software que cumpla su especificación.
- Validación del software: Se debe validar el software para asegurar que hace lo que el cliente desea.
- Evolución del software: El software debe evolucionar para cubrir las necesidades cambiantes del cliente.
Modelos del proceso del software from Samara Ruiz Sandoval
Preguntas
Preguntas
1. ¿Qué es el proceso del software?
a) Es la recopilación de los
requerimientos del software.
b) Es la generación de programas y
códigos en un lenguaje específico.
c) Son
las actividades que guían la elaboración del software
d) Es la metodología en el
generación de código
e) Es la aplicación del modelo
vista controlador del desarrollo de software
2. Los modelos de proceso del software:
a) Muestran
las necesidades del cliente
b) Son una abstracción
del proceso del software
c) Se
utilizan en proyectos extensos de más de 6 meses
d) Son
un modelo ágil de programación
e) Son diagramas que muestran el proceso de la
ingeniería.
3. No es una actividad común en el
proceso del software
a) Especificación de software
b) Diseño e implementación del
software.
c) Validación del software.
d) Soporte
de software
e) Evolución del software
4. Son considerados modelos
iterativos
a) Modelo de cascada.
b) Incremental
c) Ingeniería de software basada en
componentes
d) Desarrollo en Espiral
e) Incisos
b y d
f) Ninguno de los anteriores
5. Utiliza o adapta software comercial de ser posible
a) Modelo de cascada.
b) Incremental
c) Desarrollo Evolutivo.
d) Ingeniería
de software basada en componentes
e) Desarrollo en Espiral
6. Modelo que tiene que finalizar
una etapa para poder acceder a otra
a) Modelo
de cascada.
b) Incremental
c) Desarrollo Evolutivo.
d) Ingeniería de software basada en
componentes
e) Desarrollo en Espiral
7. Son desarrollos evolutivos
a) Modelo de cascada.
b) Desarrollo Exploratorio.
c) Prototipos desechables
d) Incisos a y b
e) Incisos b y c
f) Ninguno de los anteriores
Suscribirse a:
Entradas (Atom)