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

Поделиться
HTML-код
  • Опубликовано: 11 сен 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 года назад +10

    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 5 лет назад +6

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

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  5 лет назад +3

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

  • @Sam-hu3xt
    @Sam-hu3xt 6 дней назад

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

  • @user-th5vl6ef1l
    @user-th5vl6ef1l 5 лет назад +4

    Muchas gracias por el video! quedé enganchado al tema

  • @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

  • @finnelhumano3326
    @finnelhumano3326 3 года назад +2

    Que bien que explicas, gracias por subir este contenido !

  • @los_mateatletas
    @los_mateatletas 2 года назад

    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  2 года назад +1

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

  • @jeszve
    @jeszve Год назад

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

  • @lourdesvilchez7030
    @lourdesvilchez7030 3 года назад

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

  • @phonexgoat
    @phonexgoat 8 месяцев назад

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

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  8 месяцев назад +1

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

  • @benjaminalvaradogonzalez9288
    @benjaminalvaradogonzalez9288 3 года назад

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

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 года назад +2

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

  • @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.

  • @francovalotto4906
    @francovalotto4906 Год назад

    ¡Gracias por este gran material!

  • @thebroki6684
    @thebroki6684 Год назад

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

  • @criadordeperroslostresdona9695
    @criadordeperroslostresdona9695 2 года назад

    Gracias profesor mi segunda clase muy buenos conceptos

  • @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.

  • @oceanman2996
    @oceanman2996 4 года назад

    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  4 года назад +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 8 месяцев назад

    Muchas gracias por este material.

  • @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.

  • @davidcardenas4325
    @davidcardenas4325 3 года назад

    Excelente contenido 👌 Muchas Gracias

  • @samuelsanchezcastillo5091
    @samuelsanchezcastillo5091 5 лет назад

    Excelente como siempre gracias

  • @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.

  • @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.

  • @estebanvillarreal8926
    @estebanvillarreal8926 2 года назад

    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  2 года назад +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 2 года назад

      @@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  2 года назад

      @@estebanvillarreal8926 gracias a vos por visitar el canal.

  • @nicolasherrera5432
    @nicolasherrera5432 2 года назад

    Oro puro

  • @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.

  • @jsvnvizcaino9366
    @jsvnvizcaino9366 Год назад

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

  • @marcoa.tolozap.5984
    @marcoa.tolozap.5984 5 лет назад

    Muchas Gracias. Excelente..

  • @Nacho_33
    @Nacho_33 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!

  • @AndrewCremaNata
    @AndrewCremaNata 5 лет назад

    Excelente!....

  • @juliomejia9824
    @juliomejia9824 3 года назад

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

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  3 года назад +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  3 года назад +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.

  • @ledgarbriantapiacachicatar7083
    @ledgarbriantapiacachicatar7083 4 года назад

    Buenazo

  • @leonardosilvapaz6424
    @leonardosilvapaz6424 5 лет назад

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

    • @MaximilianoCristiaIS
      @MaximilianoCristiaIS  5 лет назад +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.

  • @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.

  • @user-pb3sp1bn1b
    @user-pb3sp1bn1b 4 года назад

    Hee hee

    • @jsvnvizcaino9366
      @jsvnvizcaino9366 Год назад

      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!