Introducción a los métodos formales (01)
HTML-код
- Опубликовано: 20 авг 2024
- Breve explicación de qué son y para qué sirven los métodos formales para desarrollar software. Aplicación a un ejemplo mínimo que muestra las posibles ambigüedades, inconsistencias e incompletitudes de los requerimientos.
no entiendo como no tiene mas visitas, estos videos son una joya, gracias maestro maximiliano
Gracias. En general la gente cree que programar es fácil y que la matemática es difícil y no tiene nada que ver con programar.
Y es al revés: programar es difícil, la matemática no es más difícil que programar y es la base para programar (bien).
hace 3 meses empecé con la programación con un curso de Alura y me esta costando horrores entender ciclos y algunos métodos y me encontré tu canal para dar un mini repaso, soy malo en matemáticas pero me sirve para entender como aplicar la lógica, gracias!
@@mbmusicsound98 me alegra que te sirva. Igual tené en cuenta que aprender algo nuevo lleva tiempo.
@@MaximilianoCristiaIS Si lo se, por eso comento, entiendo lo que hay que hacer pero no se como aplicarlo en la practica
pase mas de dos semanas buscando la manera de contestar la incertidumbre de que manera se podria integrar la matematica, el diseno de algoritmos y la programacion, hasta que encontre su canal profesor Maximilliano, de verdad muchas gracias, soy amante de la programacion y la arquitectura de software de manera autodidacta, sacare el maximo provecho a sus conocimientos, reitero mi agradecimiento, saludos y bendiciones.
Me alegra que hayas encontrado lo que buscabas. Gracias a vos por visitar el canal.
Muchas gracias maestro. Así me gustan los vídeos, claros, precisos y sin comedia forzada. Profesional.
Gracias a vos por visitar el canal.
Gracias por compartir su conocimientos Profesor, soy programador autodidacta y en mi búsqueda por mejor mis conocimientos para desarrollar apps móviles encontré su contenido y orgulloso de que sea argentino , saludos desde Buenos Aires, desde ya muchas gracias.
Me alegra que te sirva. Gracias a vos por visitar el canal.
Dr Maximiliano quiero documentarme con todo lo que usted enseña Pocas veces uno se consigue con un PROFESOR tan excelente como usted que enseña la verdad y nos prepara para ser útiles con la verdad y el buen procedimiento en nuestras profesiones
Muchas gracias por tu comentario.
hoy aprendí mas de lo que aprendí en años de estudios con este video
gracias
Me alegro. Gracias!
Excelente material. La ingeniería de software necesita de esto como el comer.
Gracias a vos por visitar el canal
Grande ingeniero, espero suba mas serie de videos asi, se aprende mucho con ud.
Tenés la serie sobre matemática para programadores y los videos sobre statecharts y csp. Todo eso es sobre métodos de. Suerte.
No soy ingeniero.
estoy afuera de la universidad por diferentes motivos ajenos a mi, deseo aprovechar la web lo mas que se pueda para ser programador, muchas gracias por estos videos que son de gran ayuda. saludos desde Guatemala
Me alegro que esto que hago te ayude porque en parte lo hago para la gente que por distintos motivos no puede ir a la universidad.
Maximiliano Cristiá si, yo espero entrar pronto pero mientras no puedo videos como los de usted me son de mucha ayuda. Saludos.👏
Te felicito por estos videos que nos brindas.. Actualmente estoy cursando una tecnicatura universitaria en programación en la universidad de quilmes y me sirve mucho tu material.. Saludos y exitos..
Me alegro mucho de que te sirva. Suerte!
Muy gran video, muchas gracias.
Gracias a vos por visitar el canal.
Excelente vídeo, muchas gracias por compartir su conocimiento, saludos desde Buenos Aires
Gracias a vos por visitar el canal.
Profesor muchísimas gracias por la sabiduría compartida, realmente su video es un punto de orientación y motivación sobre el tema
Gracias a vos por visitar el canal.
Una barbaridad la claridad de explicación! Me gustaría ver una serie de "Métodos Formales". Un saludo!!
Gracias. Si querés ver más sobre métodos formales buscá en el canal los videos sobre la notación Z, CSP, Statecharts, TLA y teoría de especificaciones. Buscá las listas de reproducción.
@@MaximilianoCristiaIS así lo haré! 🙏
Hola saludos desde Ciudad de México, excelente video gracias por crear este contenido. Estoy estudiando Ingeniería en Sistemas de Información y realmente me puso en contexto con este gran tópico del Desarrollo de Software
Me alegra que el vídeo te haya sido útil. Gracias por visitar el canal.
Muchas gracias por el excelente contenido, recién lo sigo, y voy a empezar por matemáticas para programadores. De antemano, he encontrado una respuesta a una pregunta que me hago hace un tiempo: Dado que hace ya varios años los lenguajes funcionales están tan de moda, y aquellos programadores que usan lenguajes funcionales puros como Haskell, explican muchos beneficios de usar un lenguaje como ese, sin embargo, nunca me han convencido del todo, pero hoy viendo su explicación de las especificaciones formales, me doy cuenta de cuan poderoso puede ser un lenguaje como Haskell; ocurre que mientras estás haciendo la especificación formal, al mismo tiempo estás escribiendo el programa, eso creería que es verdaderamente poderoso, podrías disminuir algún tiempo
Efectivamente las especificaciones formales están muy relacionadas con los lenguajes funcionales y con los lenguajes lógicos, como Prolog (www.swi-prolog.org/). Por otro lado en el último vídeo que subí al canal (Semántica formal de un lenguaje de programación (01)) podés ver cómo los métodos formales también están relacionados con los lenguajes de programación imperativos. Si te interesa la relación entre especificaciones formales y lenguajes funcionales podés ver el asistente de pruebas Coq (coq.inria.fr/). Gracias por visitar el canal.
Excelente vídeo. Empezaré a buscar más información.
Podes ver los videos matemática para programadores que están en el canal.
Muchas gracias profesor, muy valioso su contenido. Soy de Rosario y tengo ganas de empezar el año que viene Ciencias de la Computación. Ojalá lo tenga como docente. Tengo 35 años, pero bueno, a pesar de las dudas, creo que no hay edad para incorporar conocimiento. Muchas gracias nuevamente!
Me alegro que quieras empezar en LCC. Yo doy clase en cuarto y quinto año. Suerte!
@@MaximilianoCristiaIS gracias!
Oro en polvo ! Gracias profesor!
Grya vos por visitar el canal.
gracias Maxi, excelente,
Gracias a vos por visitar el canal.
Gracias por estos videos 👍.
Gracias a vos por visitar el canal.
excelente video
Gracias!
La Bendicion de Dios sobreabunde en usted y con todos en su casa
Gracias!
Muy buenos sus vídeos Profe.
Lo felicito.
Podría hacer un vídeo sobre técnica de valores límites, técnica de clases de equivalencia y técnica de tablas de decisión. Desde ya muchas muchas gracias. Explica re bien.
Gracias a vos por visitar el canal. Respecto a valores límites y clases de equivalencia, te referis a esas técnicas aplicadas a testing?
Vas a seguir este curso no hice bachillerato pero quiero ser programador en un futuro , gracias :)
Nunca lo pensé como un curso pero sí, en la medida de lo posible voy a seguir subiendo vídeos. Hace un par de semanas que tengo la intención de empezar con una serie sobre validación y verificación de software pero aun no encontré el tiempo para hacerlo. Espero empezar esta semana.
muy util amigo gracias
Gracias a vos por visitar el canal.
MUY GENEROSO SUPER LIKE
Muchas a gracias a vos por visitar el canal.
Eres un máquina
Gracias a vos por visitar el canal
Hay que tener algún conocimiento base para ver esta serie de vídeos?.
El comentario lo veo en el vídeo "Introducción a los métodos formales". Creo que lo puse en varias de las series así que no sé a cuál te referís. De todas formas, para ver ese vídeo tenés que tener una idea general sobre programación e informática. Si me decís qué serie querés ver, te digo si hace falta algo o no (aunque en general solo tenés que saber algo de programación).
En síntesis formalizar = reducción de herrores en menor tiempo.
Es lo que se supone que debería pasar y lo que ha pasado en numerosos proyectos. Pero depende mucho del nivel de conocimientos de los ingenieros o programadores que lo realizan.
hermoso y muchas gracias por su tiempo profesor, pero le soy sincero, estoy iniciando en la programación …y esto ya me asusta.
En la mayoría de las carreras de informática no se usa este enfoque. Averiguá cómo es en la carrera que vos elegiste. Si no tenés dificultades con la matemática en general, no vas a tener dificultades con este tipo de matemática.
Excelente video profe una pregunta
El programa de pseudocódigo Pseint se puede utilizar para realizar la etapa de especificación
No Pseint no es un lenguaje de especificación. Interpreta pseudocódigo, o sea interpreta programas.
Gracias por visitar el canal.
Como saber q formula necesitas para mover unos camiones por calles diferentes .. Entradas diferentes. Que matematicas aplicas alli
No sé a qué te referis exactamente pero diría que es un problema de grafos o combinatoria.
@@MaximilianoCristiaIS gracias. Voy buscar q son grafos
¿ Como aprender a hacer la formula adecuada para el Requerimiento en cuestión , Hay alguna lógica o estructura que aprender para ello ? Gracias
Es precisamente lo que enseño en Ingeniería de Software 1 en la Universidad Nacional de Rosario. Métodos parecidos se enseñan en varias universidades de Argentina, Brasil, Uruguay, USA, Europa, etc. Pero en la mayoría de las universidades no se enseña esa aproximación a la ingeniería de software.
Hay muchas lógicas distintas que sirven para formalizar requerimientos, cada una tiene su ventajas y desventajas.
Si no sabés nada del tema y querés empezar a aprender algo, te sugiero aprender lo que puedas de la notación Z. Hay libros on-line (en inglés):
www.usingz.com/
y también está mi apunte de clase pero requiere algunas explicaciones que yo doy en clase:
www.fceia.unr.edu.ar/asist/z-a.pdf
Cualquier cosa preguntame.
@@MaximilianoCristiaIS , Buen día, Gracias por la Respuesta, Es excelente continuo con el seguimiento, Agradeciendo el que Comparta estos conocimientos, Saludos
Gracias a vos por visitar el canal.
Hola profe buenas noches. Quisiera consultar lo siguiente. Esto de los metodos formales para desarrollar software en el cual usted plantea de que es un paso intermedio entre el relevamiento y captura de requerimientos y el programar. Se utiliza mas que todo en las metodologias tradicionales de desarrollo de software? es decir, es un enfoque contrario al de metodologias agiles? sabemos que metodologias agiles lo que hacen es saltear practicamente todo el proceso de documentar, estructurar y diseñar el sistema, etc. Poseen poca documentacion. Apartir de los requerimientos y la especificacion van casi directo al codigo. O estos metodos formales se pueden implementar en una metodologia agil?
En general son incompatibles con las metodologías ágiles aunque hay investigadores que dicen que de alguna forma y hasta cierto punto se pueden combinar. En general los métodos formales se aplican al desarrollo de software crítico aunque se han aplicado a software no crítico.
El punto es sí con metodologías ágiles te sale más barato la misma calidad que con métodos formales.
Otro punto es que en ciertos ámbitos no tiene sentido aplicar métodos formales, por ejemplo cuando subís una app que no sabes si alguien la va a descargar o no.
@@MaximilianoCristiaIS claro claro entiendo profe. Entonces esto de los métodos formales se usa más generalmente en metodologías tradicionales?
@@diegosuarez8346 Sí, en general es una versión de cascada adaptada a los métodos formales.
Gracias! Disculpa todos los problemas de programación se puede hacer en formulas matematicas?
Sí, todos. Cualquier programa es o puede ser representado con una fórmula de matemática o lógica.
Excelente video!
¿Qué libros recomiendas para estudiar métodos formales?
Hay muchos métodos formales. Muchos de ellos no están en libros sino solo en artículos científicos. Además los libros que hay están en inglés; no sé de libros en castellano. Te sugiero empezar por los métodos formales que se llaman Z y B. Para Z hay varios libros; para empezar podés ver "The way of Z" de J. Jacky. B es más moderno que Z; podés ver "The B method" de S. Schneider. También podés empezar por el apunte de clase sobre Z que uso en Ingeniería de Software 1 en la Universidad Nacional de Rosario, decargalo de www.fceia.unr.edu.ar/asist/z-a.pdf.
Hola profe! Tengo una duda, ¿Qué diferencia hay entre ingeniería en software e ingeniería en sistemas?
En ingeniería en sistemas, los sistemas pueden no ser de software. Ingeniería de software es solo sobre software. Igual las diferencias dependen del contenido, más que del nombre. Ingeniería en sistemas suele ser un nombre más antiguo; no es fácil cambiarle el nombre a una carrera universitaria. Ingeniería de software suele ser más moderno.
Ingeniería de software suele ser el nombre de una o dos materias de una carrera de informática. Incluso en ingeniería en sistemas puede haber ingeniería de software.
Para tener una idea de ingeniería en sistemas podés ver la página de Wikipedia: en.wikipedia.org/wiki/Systems_engineering?wprov=sfla1.
Para ingeniería de software tenés un vídeo en mi canal que se llama introducción a la ingeniería de software.
@@MaximilianoCristiaIS muchas gracias!! 🙏 Tengo 16 años y me estoy decidiendo por cual carrera elegir.
Hasta donde yo sé en Argentina ingeniería en sistemas es ahora más que nada una carrera dedicada a informática.
Quien programa al programador que ha sido programado para programar un programa que programara a un programador programado?
acaso quieres que el mundo explote.jpg
Pocos o ningún error? Ojala. Buen vídeo guapo.
Se ha demostrado formalmente la corrección de sistemas grandes, al menos de sistemas que sería difícil decir que son chicos. Por ejemplo CompCert (compcert.inria.fr/) es un compilador de C desarrollado en Coq cuya corrección se ha demostrado formalmente. En el vídeo "Introducción a la ingeniería de software" menciono otros sistemas de porte industrial cuya corrección ha sido demostrada formalmente. Otro ejemplo notable es un núcleo de un sistema operativo, seL4 (sel4.systems/) escrito en C y verificado formalmente en Isabelle/HOL Saludos..