Introducción a la Ingeniería de Software (01)

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ธ.ค. 2024
  • Presentación de conceptos muy básicos y generales sobre la Ingeniería de Software. Definición de Ingeniería de Software; conocimientos y habilidades del ingeniero de software; las cuatro descripciones fundamentales de un programa; fracasos y éxitos de la Ingeniería de Software; posibles causas del estado actual de la disciplina; introducción a los métodos formales.

ความคิดเห็น • 87

  • @elenfoque122
    @elenfoque122 3 ปีที่แล้ว +11

    Gracias Profesor por compartir su tiempo y su conocimiento. Es algo muy valioso. Saludos desde Formosa.

  • @robinnssoncifuentes698
    @robinnssoncifuentes698 3 ปีที่แล้ว +6

    Le agradezco muchísimo por su labor. Excelente video. Definitivamente, no se trata solo de programar sino que como autodidactas en este mundo del desarrollo debemos formarnos en lo que realmente nos llevará a crear software de calidad.

  • @cesarsalazar5775
    @cesarsalazar5775 6 ปีที่แล้ว +6

    Muchas gracias por compartir tan valioso conocimiento, ojala vengan muchos mas videos y podamos tener la suerte de seguir aprendiendo.

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  6 ปีที่แล้ว +3

      Gracias a vos por visitar el canal. De a poco voy a ir subiendo más vídeos.

  • @Sam-hu3xt
    @Sam-hu3xt 3 หลายเดือนก่อน

    Muchas gracias, es usted una inspiración para mi.

  • @jeszve
    @jeszve ปีที่แล้ว

    Excelente labor profesor!!! gracias a personas como usted muchos podemos formarnos hasta siendo autodidactas

  • @los_mateatletas
    @los_mateatletas 3 ปีที่แล้ว

    Que grande profe! No se da una idea de lo mucho que ayuda democratizar el conocimiento! Si existe una manera de retribuirle lo que nos da estaría encantado. Le deseo una gran vida.

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว +1

      Tu comentario es la única retribución que espero. Gracias por visitar el canal.

  • @diegozenarodriguez4327
    @diegozenarodriguez4327 3 ปีที่แล้ว +1

    Mi estimado le agradesco mucho por este material y contenido, encerio muchas gracias porque así estoy aprendiendo poco a poco para progresar en este mundo de la programación.
    Estudiaré este año la carrera fe ing. De sistemas e informática. Gracias...💪👌

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว +1

      Me alegra que te sirva. Gracias a vos por visitar el canal.

    • @jeszve
      @jeszve ปีที่แล้ว

      Compa que donde eres??? tambien queria estudiar ing. en sistemas pero me siento viejo ya. tengo unos 28 años

  • @user-th5vl6ef1l
    @user-th5vl6ef1l 5 ปีที่แล้ว +4

    Muchas gracias por el video! quedé enganchado al tema

  • @phonexgoat
    @phonexgoat 11 หลายเดือนก่อน

    Excelente explicacion, gracias ojala sigas realizando mas videos, te seguiré!

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  11 หลายเดือนก่อน +1

      Gracias a vos por visitar el canal. Revisá el canal, hay más videos que te pueden interesar.

  • @thebroki6684
    @thebroki6684 ปีที่แล้ว

    BUEN VIDEO MASTER!!!, BUENA EXPLICACIÓN, GRACIAS...

  • @benjaminalvaradogonzalez9288
    @benjaminalvaradogonzalez9288 4 ปีที่แล้ว

    Gran exposición, me deja en claro mucho de lo que se supone debí ver en la universidad

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  4 ปีที่แล้ว +2

      En este canal tenés la oportunidad de ver algunas de esas cosas. Saludos.

  • @lourdesvilchez7030
    @lourdesvilchez7030 3 ปีที่แล้ว

    Profesor!! Muchas gracias por darse el tiempo de hacer esto!! Excelente aporte!!

  • @criadordeperroslostresdona9695
    @criadordeperroslostresdona9695 2 ปีที่แล้ว

    Gracias profesor mi segunda clase muy buenos conceptos

  • @finnelhumano3326
    @finnelhumano3326 4 ปีที่แล้ว +2

    Que bien que explicas, gracias por subir este contenido !

  • @oceanman2996
    @oceanman2996 5 ปีที่แล้ว

    Muy útil, generalmente uno trata de abarcar todo el problema en su cabeza sin pasar por S y D, entender estos conceptos te ayudan a la hora de desarrollar. Muchas gracias.

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  5 ปีที่แล้ว +1

      Gracias a vos por visitar el canal. Te sugiero entonces que le pegues una mirada a los videos sobre matemática para programadores y diseño de software, en particular aquellos sobre patrones de diseño.

  • @Bnuy_38901
    @Bnuy_38901 11 หลายเดือนก่อน

    Muchas gracias por este material.

  • @francovalotto4906
    @francovalotto4906 2 ปีที่แล้ว

    ¡Gracias por este gran material!

  • @zwigniewschweitzer3029
    @zwigniewschweitzer3029 4 ปีที่แล้ว +3

    Buenas qué tal Maximiliano! Te felicito por esta gran explicación, me ha servido mucho en verdad. Una pregunta que me he planteado desde hace tiempo, ¿La ingeniería de software es más especializada en todos los lenguajes de programación, es decir, es posible tanto crear desarrollo web, móvil, videojuegos e inteligente artificial, o es algo en concreto? Gracias y saludos!

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  4 ปีที่แล้ว +3

      La ingeniería de software aplica a todos esos campos que vos enumerás (desarrollo web, móvil, videojuegos e inteligente artificial) y a muchos otros. Es una disciplina general aunque con el tiempo se irán generando especialidades. Aunque no aplica, por ejemplo, al software que hagas vos para tu uso personal. Tampoco es conveniente aplicarla cuando se trata de un desarrollo incipiente cuando aun no estás seguro si será comercialmente viable o no. Por ejemplo si estás pensando en una aplicación móvil nueva para la cual no sabés si habrá mercado o interés de los potenciales usuarios. Pero en estas circunstancias es más una cuestión económica-comercial que técnica. Es decir técnicamente es perfectamente razonable usar ingeniería de software para el desarrollo de aplicaciones nuevas sin mercado asegurado, pero económicamente tal vez no sea conveniente.
      También es cierto que en algunos de los campos que vos mencionás hay técnicas y métodos específicos de la ingeniería de software que son mejores que otros y problemas que son más complejos que en otros. Por ejemplo, el problema de la portabilidad de aplicaciones es más complejo en el ambiente móvil que en otros ambientes; en videojuegos la portabilidad también es importante pero más relacionada a las placas gráficas que el juego debe soportar; en aplicaciones web el problema de la seguridad es mucho más importante que en los otros ambientes; etc.

  • @davidcardenas4325
    @davidcardenas4325 4 ปีที่แล้ว

    Excelente contenido 👌 Muchas Gracias

  • @rad8329
    @rad8329 4 ปีที่แล้ว

    Excelente contenido. Tengo una duda que espero aclarar en otros vídeos: si respetaramos el rombo, es decir, hacemos todos los pasos R -> S,D -> P, esperando reducir muchos errores, pero ¿Qué nos garantiza que después de hacer una especificación formal, bien hecha, y correctamente probada, y después hacer la implementación final pero con errores, no por la mala implementación, sino por otra cuestión?, Y acá es donde uno ve la inmensa complejidad de este oficio, tendría que tener pruebas para S, P, e incluso D, espero haberme hecho entender. Mil gracias de nuevo

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  4 ปีที่แล้ว +3

      El paso más complejo y riesgoso es de R a S. La razón es que R es una descripción informal del sistema; o sea, en el mejor de los casos, es un buen documento escrito en castellano (u otro idioma). Cualquier texto en castellano medianamente complejo tiene inconsistencias, ambigüedades, contradicciones y, más que nada, múltiples interpretaciones. De ahí uno tiene que escribir una fórmula, sea S o P. Es decir de algo que es inconsistente, ambiguo, contradictorio y que no sé bien cómo interpretarlo, tengo que escribir una fórmula de matemática o lógica. Es siempre va a ser difícil. Lo que propone esta forma de entender la Ingeniería de Software es que es mucho más difícil y riesgoso ir de R a P.
      Por otro lado, una vez que tenés S es posible derivar P sin errores. Ver por ejemplo, CompCert (compcert.inria.fr/) o seL4 (sel4.systems/). Con una salvedad: sin errores significa que P se comporta tal y como dice S, aunque S no necesariamente es la interpretación correcta de R. Es decir, le mostrás P es perfecto respecto a S pero se lo mostrás al usuario y te dice "pero esto no es lo que yo quería". El problema es que vos especificaste R interpretando el texto en castellano de una forma que no era la que el usuario tenía en la cabeza. Como el paso de R a S es necesariamente informal (no matemático) siempre existe este riesgo.
      Pero para que quede claro: si S es una fórmula de lógica es posible obtener un programa ejecutable P que sea perfecto respecto a S. Cero errores. No es solo posible en la teoría sino que se ha hecho en muchos sistemas críticos.
      Sí, tenés que tener pruebas (es decir, demostraciones matemáticas mecanizadas) para S y P. Sí, es difícil. Sí, requiere aproximarse a la construcción de software de una manera completamente distinta a como lo hace la industria. Pero, cuando terminaste se corregir el último error en tu sistema, ¿cuánto te terminó costando? ¿Cuánto tiempo te terminó llevando? ¿Lo que le habías dicho a tu cliente antes de empezar? No creo. ¿Vale la pena hacer todo este desarrollo matemático para todos los sistemas? No, de ninguna forma.
      Saludos y gracias por tu comentario.

  • @juliocesararenasborrero3852
    @juliocesararenasborrero3852 3 ปีที่แล้ว +1

    Hola Profe! Gracias por explicar tan bien, tengo una pregunta ¿Esta lista de videos es lo primero que tenemos que ver antes de estudiar otra lista?

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว

      No sé cuál lista estás viendo porque yo veo tu comentario relacionado con el vídeo y no con la lista.

    • @juliocesararenasborrero3852
      @juliocesararenasborrero3852 3 ปีที่แล้ว

      @@MaximilianoCristiaIS Vale profe estoy viendo la Introducción a la ingeniería de Software, Profe que me recomiendas quiero hacer todo en Orden

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว +1

      @@juliocesararenasborrero3852 me parece bien empezar por esa lista. Luego podes ver lo relacionado con diseño y arquitectura de software.

  • @anyelhadot2189
    @anyelhadot2189 3 ปีที่แล้ว

    Me das mucho apoyo con estos videos , quedria saber más aobre estao temás ya que entrare a esta carrera

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว +1

      En general son temas más o menos avanzados así que vas a tener tiempo de ir viéndolos. Gracias por visitar el canal.

  • @samuelsanchezcastillo5091
    @samuelsanchezcastillo5091 6 ปีที่แล้ว

    Excelente como siempre gracias

  • @tadeojaviergimenez8460
    @tadeojaviergimenez8460 4 ปีที่แล้ว

    Hola Profe!, como esta?,hasta que pude ver todo el video,con el trabajo es dificil,me gustaria saber programar de la mejor manera que exista aunque me lleve años aprender por el trabajo no importa,solo es una meta que quiero cumplir ,por suerte lo encontrea usted ;un profesional,bueno ,hoy tengo franco voy a seguir viendo los videos de matematica para programadores,cuidese.Adios y que Dios lo bendiga.

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  4 ปีที่แล้ว +1

      Gracias por visitar el canal. Lleva tiempo, trabajes o no. Programar (bien) no es fácil, aunque haya una especie de cultura que presenta la programación como algo fácil que cualquiera puede hacer bien.

  • @jsvnvizcaino9366
    @jsvnvizcaino9366 2 ปีที่แล้ว

    Que lenguaje sería es más útil para desarrollar Software ? Para empezar de cero .

  • @juliomejia9824
    @juliomejia9824 4 ปีที่แล้ว

    La gráfica del minuto 23:00 es lo que se le conoce a waterfall?

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  4 ปีที่แล้ว +1

      No, no es el modelo de cascada (waterfall). Es solo una representación gráfica de las relaciones básicas entre requerimientos, especificación, diseño y programa.

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  4 ปีที่แล้ว +1

      Es decir, por ejemplo, la especificación (S) se deriva de los requerimientos (R) sin importar si vos seguís el modelo de cascada o una metodología ágil. Y el programa (P) se deriva de la especificación (S) y del diseño (D) sin importar si vos seguís el modelo de cascada o una metodología ágil. Claramente vos podés decidir no escribir ni S ni D en cuyo caso derivás todo de R. Pero si decidís escribir S o D, el gráfico muestra las relaciones básicas entre ellos.

  • @meproyect
    @meproyect 2 ปีที่แล้ว

    Muy bueno!, algun libro que recomiende para leer (si es posible en español).

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  2 ปีที่แล้ว +1

      Sobre Ingeniería de Software en general el libro que recomiendo solo está en inglés: Fundamentals of Software Engineering de Ghezzi, Jazayeri y Mandrioli. En castellano podés leer el de Somerville pero no es el que más me gusta.

    • @MarcosHernandez-ie4xd
      @MarcosHernandez-ie4xd 2 ปีที่แล้ว

      @@MaximilianoCristiaIS Gracias!

  • @marcosalejandrofernandezpi8917
    @marcosalejandrofernandezpi8917 ปีที่แล้ว

    Hola tengo una duda recién empiezo y. O estoy seguro pero entiendo que la ingeniería de software abarca ingeniería de requisitos, modelado de negocios y gestión de proyectos.

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  ปีที่แล้ว

      Sí, abarca eso que mencionás pero también arquitectura y diseño de software, verificación y validación de software, etc. Las primeras son cuestiones menos técnicas que las últimas.

    • @marcosalejandrofernandezpi8917
      @marcosalejandrofernandezpi8917 ปีที่แล้ว

      @@MaximilianoCristiaIS y dónde entran las metodologías y el si lo de vida del software?

    • @marcosalejandrofernandezpi8917
      @marcosalejandrofernandezpi8917 ปีที่แล้ว

      Quise decir ciclo, no si lo...

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  ปีที่แล้ว

      @@marcosalejandrofernandezpi8917 el ciclo es cómo se ordenan y relacionan esas actividade. Por ejemplo el diseño se hace sobre la base de los requerimientos (y no al revés). Las metodologías en general se centran en alguna de esas actividades. Por ejemplo hay metodologías para hacer relevamiento de requerimientos, y metodologías de verificación de software.

    • @marcosalejandrofernandezpi8917
      @marcosalejandrofernandezpi8917 ปีที่แล้ว

      @@MaximilianoCristiaIS y en cuál de los cursos que tienes explicas todo eso? Es que apenas estoy empezando a revisarlos. Sigo el flujo de la lista de reproducción de ingeniería de software. No sé si sea lo mejor.

  • @nicolasherrera5432
    @nicolasherrera5432 2 ปีที่แล้ว

    Oro puro

  • @Alejandro-gg7oz
    @Alejandro-gg7oz 3 ปีที่แล้ว +1

    "la parte dificil de construir software es especificarlo, diseñarlo y verificarlo" cuanta razon tiene

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว

      Esperemos... pocos lo entienden así. Gracias por visitar el canal.

  • @marcoa.tolozap.5984
    @marcoa.tolozap.5984 5 ปีที่แล้ว

    Muchas Gracias. Excelente..

  • @estebanvillarreal8926
    @estebanvillarreal8926 3 ปีที่แล้ว

    Buenas tardes, Maximiliano. Estoy sumamente agradecido por poder acceder a clases grabadas en torno a la ingeniería de software. Hace un año empecé a formarme de forma autodidacta en programación web. Por el momento estoy empezando a entender el lenguaje de Javascript y en 2022 empiezo la carrera de sistemas en la Universidad de Lanús. Además de todos los videos que publicaste, cómo te parece que puedo seguir formándome en especificación funcional?

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว +1

      Si aún no empezaste la universidad te diría que te concentres en seguir aprendiendo a programar. Podés probar con Java.

    • @estebanvillarreal8926
      @estebanvillarreal8926 3 ปีที่แล้ว

      @@MaximilianoCristiaIS Muchísimas gracias por la respuesta! Voy a seguir devorándome los vídeos de este canal y quedando a la espera por los futuros videos. Un abrazo!

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 ปีที่แล้ว

      @@estebanvillarreal8926 gracias a vos por visitar el canal.

  • @leonardosilvapaz6424
    @leonardosilvapaz6424 6 ปีที่แล้ว

    Los requerimientos de usuario (R), ¿es lo mismo que pseudocódigo?

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  6 ปีที่แล้ว +3

      No, el pseudo-código es una forma de describir un algoritmo. Los requerimientos del usuario (R) son una descripción de lo que el sistema tiene que hacer y bajo qué restricciones lo tiene que hacer. Por ejemplo un requerimiento del usuario podría ser: el sistema deberá emitir un informe con todas las transacciones del día cuyo monto supere los 10.000 pesos informando en cada caso, la hora, el monto y el agente que originó la transacción. Dado este R luego vos podrías escribir pseudo-código para describir con más precisión qué se debe programar. De todas formas, el pseudo-código está desaconsejado para sistemas que no sean muy muy simples.

  • @AndrewCremaNata
    @AndrewCremaNata 5 ปีที่แล้ว

    Excelente!....

  • @ledgarbriantapiacachicatar7083
    @ledgarbriantapiacachicatar7083 4 ปีที่แล้ว

    Buenazo

  • @user-pb3sp1bn1b
    @user-pb3sp1bn1b 4 ปีที่แล้ว

    Hee hee

    • @jsvnvizcaino9366
      @jsvnvizcaino9366 2 ปีที่แล้ว

      Saludo profe.¿Que es lo primero que hay que tener definido para estudiar IGN.en Software y cuáles son los principios básicos que debo tener en cuenta ?
      Gracias!