Elementos de Entorno de Algoritmos y Programación
Una computadora: Es un procesador de datos, es un equipo que tiene valores de
entrada, valores de salida, pero en el medio se procesa todo tipo de información en
base a 0 y 1
Un sistema: Es un conjunto de componentes conectados, interactivos, que tienen un
propósito y una unidad total
Que es un Sistema de Procesamiento de Información: Es un sistema que
transforma los datos brutos en información organizada, significativa y útil.
Para procesar la información se necesita de dos Componentes Principales que
son: El Hardware y Software
Hardware: Es la parte tangible y Software la parte intangible
Que es el Hardware (parte física - tangible): Es un conjunto de componentes físicos de
una computadora, se compone de un CPU (Unidad Central de Procesamiento), Memoria
Central, Dispositivos de Almacenamiento Secundario (Memoria Auxiliar) y Periféricos o
Dispositivos de Entrada y Salida (E/S)
Que es el Software (Parte Lógica – Intangible): Es un conjunto de programas que
controlan el funcionamiento del hardware de una computadora
Que es Dato: Es una representación simbólica (numérica, alfabética, algorítmica), un
atributo o característica de una entidad.
Un dato es la expresión general que describen los objetos con los cuales opera una
computadora y existen dos tipos de datos: Datos Simples y Compuestos
Cuantos Tipos de Datos existen:
Datos Simples (sin estructura)
Numéricos (enteros, reales)
Lógicos (Boolean)
Carácter (char, string)
Datos Compuestos (estructurados)
Registros
Arreglos (Vectores, matrices)
Archivos
Que es la Información: Es un conjunto de datos acerca de algún suceso, hecho,
fenómeno o situación, que organizados en un contexto determinado tiene su significado,
cuyo propósito puede ser el de reducir la incertidumbre o incrementar el conocimiento
acerca de algo.
Que es Procesar Información: La información se introduce en la computadora como
datos de entrada, luego se procesa dicha información para producir una salida
Estructura Base de Cualquier Sistema de Información:
Datos de Entrada > Un Proceso > Datos de Salida (Resultado)
Que es un Algoritmo: Es un método para resolver un problema en específico, el cual tiene una serie
o secuencia ordenada de instrucciones, tiene un inicio y tiene un final.
Características que tiene un Algoritmo: Todo algoritmo debe cumplir con las siguientes
características
Tiene que ser preciso (solución exacta)
Tiene que ser bien definido
Tiene que ser finito
Que debe describir un Algoritmo: Debe describir Entrada, Proceso y Salida.
Por ejemplo: algoritmo para llamar a un contacto personal por mi celular
Entrada: Marcar el numero celular de este contacto
Proceso: Enlace intercelular
Salida: Contacto establecido – llamada Aceptada o Rechazada
Tipos de Algoritmo: Cualitativos y Cuantitativos
Que es un Algoritmos Cualitativos: Son aquello en los que se describen los
pasos utilizando palabras. Por ejemplo: usar una guía telefónica, buscar una
palabra en un diccionario, etc.
Que es un Algoritmo Cuantitativo: Son aquello en los que se utilizan
cálculos numéricos para definir los pasos a procesar. Por ejemplo: resolver
una ecuación, sacar el área de un triángulo.
Que son los Lenguajes Algorítmicos: Es una serie de símbolos y reglas que
se utilizan para describir de manera explícita un algoritmo
Tipos de Lenguajes Algorítmicos:
Los Gráficos: Es la representación gráfica de las operaciones que realiza un
algoritmo. Ejemplo: diagramas de flujo
No Gráficos: Representan de forma descriptiva las operaciones que debe
realizar un algoritmo. Ejemplo: Pseudocódigo
Que es un Programa: Es un conjunto de instrucciones escritas, de algún lenguaje de programación
y que ejecutadas secuencialmente resuelven un problema específico.
Que es un Lenguaje de Programación: Es un conjunto de símbolos y reglas sintácticas y
semánticas que definen su estructura y el significado de sus elementos y expresiones, utilizado para
controlar el comportamiento físico y lógico de una computadora.
Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar
operaciones de entrada salida, cálculos, comparación y almacenamiento/recuperación
Tipos de Lenguajes de Programación:
Según el nivel de Abstracción
Según la forma de ejecución
Según el Paradigma de Programación
Usted dice que va a utilizar para su examen de grado C# (C Sharp) como lo
podría usted catalogar:
Es abstracto, es complejo, es sencillo, como es su forma de ejecución, necesita
compilar, necesita algunos eventos previos y que paradigmas soporta este lenguaje
R: Según el nivel de Abstracción Python es un lenguaje fácil o difícil de aprender, es
el más fácil de todos.
Según su forma de Ejecución: necesita compilación, necesita algo? No generalmente
corre a la primera
Según el Paradigma de Programación: es multi paradigma aguanta y soporta muchos
paradigmas que son utilizados en la actualidad
Tipos de Lenguaje de Programación Según el Nivel de Abstracción:
Lenguaje Maquina
Lenguaje de Bajo Nivel
Lenguaje de Alto Nivel
Lenguaje Maquina: las instrucciones se expresan en términos de la unidad de memoria mas pequeña el bit
(digito binario 0 o 1)
Ventaja: no necesita ser traducido, mayor adaptabilidad al equipo
Inconveniente: difícil y lentitud en la codificación
Lenguaje de Bajo Nivel (Asembler): se utiliza palabras o abreviaturas ejemplo: operaciones aritméticas ADD
(SUMAR), SUB (RESTAR), DIV (DIVIDIR), etc.
Ventajas: no es difícil como el lenguaje maquina
Inconveniente: cada máquina tiene su propio lenguaje, proceso de traducción
Lenguaje de Alto Nivel: son aquellos en las que las instrucciones son escritas con palabras similares a los que
manejamos los humanos, en inglés, español, facilita la escritura y la comprensión
Ventajas: Son independientes de cada máquina lo que los hace portables
Inconvenientes: Proceso de traducción largo y consume más recursos
Tipos de Lenguaje de Programación Según la Forma de Ejecución:
Lenguajes Compilados
Lenguajes Interpretados
Lenguaje Compilado: Hace referencia a su nombre se compilan una vez y se utilizan
cuantas veces se desee sin necesidad de volver a utilizar el compilador.
Analizan todo el programa y no generan resultados si no está bien el código
Lenguajes Interpretados: Son interpretados cada vez que se ejecutan y necesitan del
interprete
Los interpretes analizan las instrucciones según la necesidad.
Tipos de Lenguaje de Programación Según el Paradigma de la Programación:
Que es un Paradigma de Programación: Son estilos formas de programar o de desarrollar un sistema o software que ya están
documentados según la necesidad que se quiere resolver.
Algorítmico Imperativo o por Procedimientos
Declarativo o Predictivo
Lógico
Funcional
Orientado a Objetos
Algorítmico, Imperativo o por Procedimientos: Es el más común y está representado por lenguajes de programación como C o
BASIC
Los programas imperativos son un conjunto de instrucciones que se le indica a la computadora de cómo realizar una tarea
Declarativo o Predicativo: Están basados en la utilización de predicados lógicos o funciones matemáticas, su objetivo es
conseguir lenguajes expresivos en los cuales no sea necesario especificar como resolver el problema
Lógico: El mecanismo de inferencia genérico se basa den los procedimientos de deducción de fórmulas validas en un sistema
axiomático, ejemplo el PROLOG
Funcional: Es representado por el lenguaje LISP, el mecanismo de inferencia genérico se basa en la reproducción de una expresión
funcional a otra equivalente simplificada
Orientado a Objetos: son cada vez mas utilizados en combinación con el imperativo, permiten la programación imperativa
ejemplo de lenguaje orientado a objetos son: C++, Java, Python. Están basados en varias técnicas, herencia, modularidad,
polimorfismo y encapsulamiento
Mencione cuales son los Tipos de Lenguaje de Programación: Principal mente se clasifican en tres
Según el nivel de Abstracción
Según la forma de Ejecución
Según el Paradigma de Programación
Elementos de Entorno de Algoritmos y Programación
Metodologías para la solución de problemas por medio de computadoras
Desde el punto de vista educativo: la solución de problemas mediante la programación posibilita la
activación de una amplia variedad de estilos de aprendizaje.
Es por ello que debemos considerar 4 fases, para resolver problemas específicos mediante la programación
de computadores.
1. Analizar el problema
2. Diseñar un algoritmo
3. Traducir el algoritmo a un lenguaje de programación
4. Depurar el programa
Que fases debemos considerar para resolver problemas mediante la programación de
computadoras:
1. Analizar el problema (el paso mas importante)
2. Diseñar el Algoritmo
3. Traducir el Algoritmo a un lenguaje de programación
4. Depurar el Programa (para verificar que no nos cause errores)
Definición del Problema: Esta fase esta dada por el enunciado del problema, el cual
requiere un definición clara y precisa. Lo mas importante de programar es definir, analizar,
saber de que va el problema es el 80% de la solución, tener claro que queremos conseguir
y como lo podemos hacer.
Cuando se hace el Análisis del Problema: Una ves que se ha comprendido lo que se
desea de la computadora, es necesario definir:
Los Datos de Entrada
Los Datos de Salida (cual es la información que se desea producir)
Los Métodos y Formulas que se necesitan para procesar los datos.
Cual es el Esquema Básico de cualquier programa:
Diseño
Procesamiento
Salida
Diseño del Algoritmo
Las características de un buen Algoritmo son:
Debe tener un punto de inicio
Debe ser preciso e indicar el orden de cada paso
Debe ser bien definido, no debe permitir doble interpretación (respuesta debe estar clara)
Debe se general (es decir funcional para todos los casos en específicos que queramos probar)
Debe ser finito en tamaño y tiempo de ejecución (es decir que tiene que tener un punto final )
Que debe tener un Algoritmo: Tiene que tener un Punto Inicio, Punto Final y ser Secuencial y
Claro
Que es la Codificación: Es la operación de escribir la solución del programa (lógica del
diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código
entendible para la computadora, la serie de instrucciones detalladas se le conoce como
código fuente, el cual se escribe en un lenguaje de programación
A que se le conoce como Código Fuente: Es la serie de instrucciones detalladas el cual se
escribe en un lenguaje de programación.
Pruebas y Depuración: Es el proceso de identificar y eliminar errores, para dar paso a
una solución sin errores a esto se le llama depuración
Documentación: Es la guía o comunicación escrita en sus variadas formas, ya sean
enunciados, procedimientos, dibujos o diagramas. Sirve para ayudar a comprender o usar
un programa o facilitar futuras programaciones.
La documentación se divide en tres partes:
Documentación Interna (Requisitos Funcionales y No Funcionales)
Documentación Externa (Pruebas de Calidad)
Manual de Usuario (Una ves que se hace desarrollado el programa)
Mantenimiento: Se lo hace después de terminar el programa, cuando se detecta que es necesario
hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera
correcta. Para poder realizar este trabajo el programa debe estar correctamente documentado.
Identificadores o Variables: Representan datos de un programa (constante o variable). Un
identificador es una secuencia de caracteres que sirven para identificar una posición en a memoria de
la computadora, nos permite acceder a su contenido. Una variable puede ir cambiando
constantemente, la constante como nace muere. Ejemplo de constante en la vida real es la gravedad
la constante no cambia
Reglas para formar un Identificador: existen distintas normas o políticas
Debe empezar con una letra (mayúsculas o minúsculas), y no debe contener espacios en blanco
Letras, dígitos y caracteres deben estar unidos por un carácter subrayado “_”
El primer carácter no puede ser un numero
Tipos de Identificadores:
Constantes
Variables
Constante: Es un dato numérico o alfa numérico que no cambia durante la ejecución del programa. Ejemplo
el valor de PI= 3,1416
Variables: Es un espacio de memoria de la computadora que permite almacenar temporalmente un dato
durante la ejecución de un proceso, su contenido puede cambiar durante el proceso de ejecución del programa.
Ejemplo: área = (base*altura)/2
Clasificación de Variables:
Variables
1. Por su Contenido
Numéricas
Lógicas
Alfanuméricas (String)
2. Por su Uso
De trabajo
Contadores
Acumuladores
Tipos de Datos: Los tipos de datos hacen referencia al tipo de información que se trabaja.
El tipo de datos determina el conjunto de valores que puede tomar una variable. Ejemplo:
entero, real, carácter, carácter (letra) y lógicos
Estructuras condicionales (If): Las estructuras condicionales comparan una variable contra otros
valores, para que en base al resultado de esta comparación, se siga un curso de acción dentro del
programa. Existen 3 tipos:
Simples,
Dobles
Multiples
El tema de Excepciones Multiples: Se lo puede trabajar como un “if” y un “else” caso contrario si
o caso contrario si
Excepción con el comando “raise ValueError”: con este comando podemos lanzar un error
manual personalizado basándose en las excepciones pasándole el identificador, es para mostrar un
mensaje de error generalmente la gente trabaja más con el “print”
La Encapsulación: Consiste en denegar el acceso a los atributos y métodos internos de la clase
desde el exterior.
En Python no existe, pero se puede simular precediendo atributos y métodos con dos barras bajas__:
Métodos especiales de clase Constructor y destructor: los métodos especiales de una clase
generalmente son dos:
El método constructor
El método destructor
Pregunta de Examen
Como identifico en Python al método constructor y al método destructor:
Al método constructor lo identificamos con una palabra o nombre especial (__init__)
que es llamado al momento en que se utiliza una clase para construir un objeto.
Generalmente se utiliza para determinar los valores iniciales del objeto.
Al método destructor se lo puede identificar con un nombre especial (__del__) que es
llamado justo un momento antes de que un objeto sea destruido.
Que es Polimorfismo: Se refiere a la capacidad de un objeto para adoptar múltiples formas. El
término se deriva de dos términos distintos: poli, que significa numerosos, y morfos, significa
formas.
Ejemplo: Supongamos que hay una clase llamada animal, pero dentro de esa clase hay numerosas
formas, como perro, gato y vaca. Es decir, un animal de clase común consta de una variedad de
formas que vienen en una variedad de formas y tamaños y realizan una variedad de funciones. A
todo este fenómeno se define como: polimorfismo.
Deme un ejemplo de Polimorfismo: Es una función que puede tomar varias formas, es el inicio de
la forma de trabajo
Ejemplo de la vida diaria: hiciéramos un objeto que se denomine banda de rock y dentro de esta
banda generalmente hay varios músicos que se encargan de tocar en armonía para generar una
canción, al momento de un concierto todos tocan un instrumento o hacen algo, pero cada uno hace
algo distinto, puede ser uno que toque la guitarra y llama a la función tocar y recibe una guitarra por
lo tanto toca eso. Nueva mente llamamos a la función tocar en este caso recibirá el instrumento del
bajo y tocará el bajo de acuerdo a lo que corresponde, otro que dirá tocar y tocará la batería y aquí
vemos como una función que se denomina tocar puede tener distintas formas de ver o de hacer las
cosas
Que es Herencia en Python y cuantos tipos de herencia hay: La herencia de clases es una técnica
de la programación orientada a objetos (POO) que permite primero crear una clase general (Clase
base o clase primaria) y luego crear “subclases” (Clases derivadas) más específicas que re-utilicen el
código de la clase general.
Tenemos dos tipos de herencias: Herencia Simple y Herencia múltiple
En la herencia simple todos los métodos o las clases hijas subclases tienen un solo padre
En cambio, en la herencia múltiple: un método hijo puede tener dos o más padres
La herencia simple: es cuando una clase hija o subclase hereda los atributos y métodos de una
única clase padre.
Herencia múltiple: Es cuando una subclase herede atributos y métodos de más de una clase
principal es decir tenga varios padres
Pregunta de examen
Hágame un ejemplo de una Herencia Simple y una Herencia Multiple:
En la herencia simple una subclase tiene una sola súper clase es decir un solo padre.
En cambio, en la herencia múltiple una subclase puede tener varias clases padres o
superclases
Deme un ejemplo de Herencia de la vida diaria: ejemplo de la vida diaria, podríamos
tener una clase principal llamada Persona, que sea heredada por la clase Hombre y por la
clase Mujer.
Hombre y Mujer, tendrían los mismos atributos que Persona (extremidades superiores,
inferiores, órganos vitales), pero cada una tendría atributos propios que las distinguen
entre sí y a la vez extienden a Persona (órganos reproductores, genes). De la misma
manera, compartirían los mismos métodos que Persona (caminar, correr, comer), pero
cada una, tendrían sus propios métodos distintivos
Otro ejemplo:
ejemplo de perros y animales. Vamos a definir una clase padre Animal que se heredaran por las sub clases
(perro, gato, caballo) que tendrá todos los atributos y métodos genéricos que los animales pueden tener.
Entre los atributos podemos tener:
Tenemos la especie ya que todos los animales pertenecen a una.
Y la edad, ya que todo ser vivo nace, crece, se reproduce y muere.
Y entre los métodos o funcionalidades:
Tendremos el método hablar, cada animal tiene una forma. Los perros ladran, las abejas zumban y los caballos
relinchan.
Un método moverse. Unos animales lo harán caminando, otros volando.
Cada uno tiene sus métodos distintivos
Programación Extrema PX
Fuerzas que Influyen en los enfoques para el desarrollo del software: Existen 3 ramas principales que son:
Los fundamentalistas o metodológicos
La tendencia global
Los libertarios
Que es una Metodología Ágil : Es una forma una receta de cocina para hacer las cosas, que busca hacer lo mas
simple, lo mas sencillo y lo mas rápido posible.
Diferencia entre Framework ágil y Metodología Ágil: La metodología se podría decir que es mucho mas
complejo, mas rígida en sus normas y el framework es mucho mas simple, no es tan estricta se da ciertas
libertades y son framework ágil por que se adaptan al proyecto y no el proyecto a la norma.
Por que se dice Framework ágil: Por que se adaptan al proyecto y no el proyecto a la norma
Diferencia entre lenguaje de programación y framework: El lenguaje de programación es mucho mas
complejo es la base, es la sintaxis, los paradigmas de programación, los patrones de diseños, son varias cosas. Y
el framework usa la base de lenguaje de programación es mas simple, donde todo esta organizado y estructurado,
tiene cosas predefinidas
Que es Filosofía de Vida: Es una forma de pensamiento que tiene cada persona
Diferencian Entre Metodología Agil y la Metodología Tradicional:
La metodología ágil es mas practica mas flexible, la metodología tradicional es mucho mas protocolar
es mas metodológica, y mas estricta
Costo de cambio en el Software: La tradicional era muy alto el cambio por que no se tenia contacto
con el cliente el producto lo veía al final de la entrega y los cambios se aumentaban. En cambio la
metodología ágil es constante la entrega y se mantiene cierto equilibrio
Cuales son las principales metodologías agiles:
Crystal Methodologies
Scrum
DSDM(Dynamic Systems Development)
Lean Programming
Programación Extrema XP
Que es XP:
Es una metodología de desarrollo ligera, basada en una serie de valores y varias practicas que favorece un
aumento en la productividad a la hora de desarrollar software.
XP también permite controlar los problemas de riesgos en los proyectos
XP permite la participaciones de pequeños grupos de programadores
XP requiere un variado equipo de desarrollo
Características de XP:
Las características generales de XP, es una metodología liviana pasa por alto la utilización de elaborados
casos de uso, la exhaustiva definición de requerimientos y la extensa documentación
XP tiene asociado un ciclo de vida y es considerado a su vez un proceso
La tendencia de entregar software en lapsos cada ves menores de tiempos y costos reducidos
En relación del costo del cambio en XP se mantiene constante debido a que los avances se van mostrando en el
proceso al cliente y en el enfoque tradicional se dispara cuando vamos modificando
Principios Roles y Practicas de la Programación Extrema
Que busca la programación extrema
1. Busca la retroalimentación rápida
2. Asumir la responsabilidad de las cosas
3. Cambio incremental (es decir vamos cambiando y este va incrementando a lo largo del tiempo)
4. Aceptar el cambio (que puede ver)
5. Hacer trabajo de calidad.
Las practicas son:
1. El juego de la planificación 7. Programación por parejas
2. Pequeñas entregas 8. Propiedad colectiva
3. Establecer una Metáfora de trabajo 9. Integración Continua
4. Diseño Simple 10. 40 horas semanales
5. Pruebas 11. Cliente en casa
6. Refactorización 12. Estándares de codificación
Objetivos de la Programación Extrema XP
Los objetivos de esta metodología XP son:
1. La satisfacción del cliente
2. Potenciar el trabajo en grupo, todos están involucrados en el desarrollo del software
Interacción Entre las Cuatro Variables de Gestión de Proyecto:
El Coste de Cambios
El coste de cambios crese con el tiempo
XP propone que los costos de los cambios no tienen que aumentar con el tiempo
Cuales son los Cuatro Valores que Trabaja XP:
1. Comunicación
2. Sencillez
3. Retroalimentación
4. Valentía
Por qué Programación Extrema XP: Porque tiene 4 valores principales:
La Comunicación (busca que constantemente estemos retroalimentando
ideas, retroalimentando al software), la Sencillez (practico, sencillo), La
Retroalimentación (que parte de la comunicación) y la Valentía (al momento
de desarrollar el proceso de software.
Roles de XP:
Cliente:
Escribe las “Historias de Usuario” y especifica las Pruebas Funcionales
Establece Prioridades, explica las Historias
Puede ser o no un usuario final
Tiene autoridad para decidir cuestiones relativas a las Historias
Programador:
Hace estimaciones sobre las Historias
Define Tareas a partir de las Historias y hace estimaciones
Implementa las Historias y las Pruebas Unitarias
Tutor (Parecido al Proyect Manager ):
Observa todo, identifica señales de peligro, se asegura que el proyecto se mantenga en curso.
Ayuda en todo
Da aviso cuando se necesita
Perseguidor (Calidad – Parecido al Scrum Mater):
Monitoriza el proceso de los programadores, toma acción si las cosas tienden a salirse de su senda.
Las acciones incluyen reuniones con el cliente, solicitar ayuda al Tutor u otro Programador.
Verificador (Tester)
Implementa y corre las Pruebas Funcionales (no Pruebas Unitarias)
Presenta grafica de los resultados y se asegura de que la gente conozca cuando los resultados empiezan a decaer.
Agorero:
Se asegura que todos conozcan los riesgos que existen
Se asegura de que las malas noticias no se oculten, se disculpan o se reducen de proporción
Gestor (Parecido al Product Owner):
Planifica las reuniones (plan de iteraciones, plan de lanzamiento), anota los resultado de las reuniones y los pasa
al perseguidor
Posiblemente responsable ante el “Propietario de Oro”
Asiste a las reuniones, aporta información útil
Propietario de Oro:
La persona que paga el proyecto, que puede ser o no la misma que el cliente.
Las cuatro Actividades Basicas de XP:
1. Codificar
2. Hacer pruebas
3. Escuchar
4. Diseñar
Proceso de Desarrollo
Artefactos Esenciales en XP:
Historias del Usuario
Tareas de Ingeniería
Pruebas de Aceptación
Pruebas Unitarias de Integración
Plan de la Entrega
Código
Escenarios en XP o Ciclo de Vida: Exploración
Primero Definimos las Historias de Usuario, que pueden ser establecidos para
Elaborar los Spikes, los Bosquejos y Estimar el Esfuerzo y Riesgo, para poder
definir los Esfuerzos a Trabajar
Planificación de la Entrega: Existen distintas historias de usuario, que se las
desglosa en reuniones, basadas en la velocidad del proyecto puntos por
semana y establece las iteraciones o los sprint
Como Comenzar la Iteración XP: Se comienza la Iteración en base a las
Historias de Usuario, luego se define y ordena las Tareas de Ingeniería, para
ver las Tareas de Iteración
Pruebas de Aceptación:
1. Primero Definimos las Pruebas de Aceptación
2. Establecemos las Pruebas en algo formal
3. Aplicar las pruebas de aceptación
4. Corregir errores y Definir nuevas Historias
Entorno y Clima de Trabajo
Espacio de Trabajo XP
Son espacios abiertos
Mesas centrales
Cubículos en el espacio exterior
Reuniones Diarias en XP
Todo el equipo
Establece los problemas y soluciones que tiene en la actualidad
De pie en un circulo
Evitar discusiones largas
Sin conversaciones separadas
Que es el Gantt de Pared (Parecido al Scrum Boart): Es como la pizarra de XP, es el centro del
universo del proyecto, es donde se hace todas las reuniones para establecer las historias de usuario
Faces de la Metodología XP(Como hacemos funcionar la Metodología XP):
Planificación: En esta parte tenemos las historias de usuario, valores, las pruebas de iteración y
el plan de iteración
Diseño: Diseño simple, cartas CRC, Soluciones Pico, Prototipos
Codificación: Programación en parejas, Integración Continua y la recodificación
Prueba: Pruebas de Unidad y Pruebas de Aceptación
Lanzamiento