Aprendiendo un poco acerca de ingeniería del software: Sesión 1 (El proceso)

in #stem-espanol7 years ago

Un saludo a toda la comunidad

Espero que estén pasándola excelente en estas vacaciones de semana santa, esta noche quiero comenzar con una nueva sección, donde abordaré lo que es la ingeniería del software y como es que se lleva a cabo todo este proceso, fundamental para obtener la tecnología estratificada que nos permiten manipular absolutamente todo lo que nos rodea hoy en día. Y es que es inevitable pensar que en todos lados percibimos software, desde algo diminuto hasta algo gigante, para comenzar con esta sesión daré la introducción a "El Proceso" donde trataré de darles un enfoque práctico a los distintos conceptos. Comencemos:

Ilustración creada por @greylml

¿Que será un proceso de software?

Podríamos darle un concepto técnico a lo que vendría siendo el proceso, ya sea un marco de trabajo para la construcción del software o un sinónimo de lo que representa la ingeniería del software, verán, un proceso de software nos define el enfoque que se adopta mientras que el software esta en desarrollo, sin embargo la ingeniería del software abarca las tecnologías que requiere el proceso (como por ejemplo las herramientas automatizadas) creado especialmente ¿Por quienes?... bueno, personas creativas principalmente, capacitadas y con conocimiento que puedan realizar un procedimiento de software maduro.

Figura 1: Estratos de la ingeniería de software (elaborado por mi: @greylml)

No me ha quedado claro quien hace el software


¿No? bueno, cuando se trabaja para construir un producto o sistema es muy importante seguir una serie de pasos predecibles... esto será una especie de mapa de carretera y este nos ayudará a crear un resultado de calidad, y sobre todo a tiempo. Esto es realizado por los ingenieros de software y sus jefes que adoptan el proceso y lo convierten en sus necesidades para finalmente seguirlo llevando a cabo.

Ya veo... y esto por qué será importante?


Las cosas suceden muchísimo mejor si las planeas, lo mismo ocurre con los proyectos de software, el proceso ofrece estabilidad, control, organización a una cierta actividad que puede volverse caótica si no se siguen estos ciertos parámetros.

Entonces... ¿Cuales son los pasos?


Todo esto va a depender del software que se esta construyendo, hay muchísimos proyectos ambiciosos que deben pasar por ciertos estándares de calidad, un proceso puede ser apropiado para crear un software ya sea para un sistema aeronáutico, mientras que un proceso distinto por completo sería el más acertado para la creación de algún sitio web, como Steemit por ejemplo.

Figura 2: Marco de trabajo del proceso del software (elaborado por @greylml)

Tal como lo muestra la figura, las actividades dentro del marco va a contener un conjunto de acciones que están relacionadas a la ingeniería del software, es decir, una serie de tareas relacionadas que nos va a producir un producto de trabajo tomando como ejemplo las tareas del trabajo, productos, puntos de aseguramiento de la calidad, fundamentos del proyecto o incluso el diseño de una acción en la ingeniería del software.

Creo que lo comprendo... Pero ¿Cómo se puede estar seguro de estarlo haciendo correctamente?


Verán, la construcción de software de computadora es un proceso altamente iterativo de aprendizaje, lo que quiere decir es que materializamos nuestros conocimientos a base de bosquejo, análisis, teclado, documentación...existen muchos mecanismos de evaluación del proceso que permiten a las organizaciones determinar en este la madurez del proceso, sin embargo, el tiempo requerido, la vialidad a largo plazo del producto que vamos a construir van a ser por así decirlo los indicadores más acertados en cuanto a la eficacia del proceso que se va a utilizar.

Ok ya lo veo un poco más claro... con esto llegaríamos a un patrón del proceso?


Exactamente, todo el proceso del software podría también definirse como una colección de patrones que en ellas tendrán un conjunto de actividades, acciones o tareas de trabajo que requiere el desarrollo de un software de computadora, algo así como una plantilla... Este nos va a definir el método consistente para describir una característica importante del proceso del software.

Figura 3: Relación entre el proceso de software y métodos aplicados para su evaluación (elaborado por @greylml)

Podemos decir que el hecho de que exista un proceso de software no significa que este va a estar culminado a tiempo, o de que va a satisfacer las necesidades del cliente, o de que cumpla con todos los estándares y peticiones, es por ello que los patrones del proceso deben de ir acompañados de una práctica muy sólida de lo que respecta a la ingeniería del software.

Fuente y despedida


Bueno, esto a sido la primera sesión de post que iré subiendo con respecto a la ingeniería del software, me ha sido muy divertido hacer este tipo de post ya que puedo explicar a detalle ciertas experiencias y métodos que en lo personal me han funcionado para la elaboración de proyectos pequeños, la práctica hace al maestro y debemos instruirnos muy bien antes de considerar desarrollar software. Nos vemos en una próxima oportunidad.

  • Libro: Ingeniería del software
  • Autor: Roger Pressman

Sort:  

hola compañero como estas! la ingeniería de software es interesante por la gran diversidad de funcionalidad y aplicaciones en la vida, nos ayuda con los que aceres cotidianos, nos recuerda cosas, nos hacen la vida mas llevadera sin importar lo complicado y siempre que sea el software cosa que nadie ve! lo que esta detrás de esa aplicación cuanto esfuerzo llevo hacerlo para cumplir una necesidad. gracias por compartir tu articulo.

A la orden @eleonardo para mi es un honor que te haya gustado mi post, y ya que lo mencionas el software esta en casi todos los dispositivos que usamos actualmente, conocer el proceso de su creación es importante y en cuanto a los roles de cada desarrollador... Bueno es un tema que lo tocaré más adelante :)

La ingeniería del software ofrece métodos y técnicas para el desarrollo de software y se enfoca en el software de calidad el cual cumple ciertas funciones y satisface determinadas cualidades. La ingeniería del software nos ayuda a desarrollar software de una manera mejor planificada el cual podría llevarnos al éxito en el proyecto en el que trabajamos. Me gustó mucho tu post, está muy bueno y con un material excelente. Un saludo amigo.

Muchas gracias por dedicarte a leer mi post amigo, próximamente estaré subiendo los distintos roles que se cumplen para formar un equipo ideal para el desarrollo de software así que atento :)

Estaré muy pendiente de ello amigo ;)

Hola, buen post, soy desarrollador y he tenido experiencia en proyectos aplicando diferentes metodologías de desarrollo de Software, es un área hermosa la programación y la Ing. de Sistemas, Saludos.

Un día de estos tendrás que dedicarme un par de horas para que me comentes cómo han sido tus experiencias laborales, yo apenas estoy de pasantias y sería bueno conocer como es el campo laboral a detalle.

Hermano saludos, siempre he visto tus publicaciones como tutoriales técnicos pero didácticos, muy genial de verdad mas para las personas como yo que buscamos aprender de programación y desarrollo de software aun cuando no somos afines de esa rama, muy genial sigue así.

Que lindo post, muy explicativo e interesante. Lo sigo, sigue cosechando éxitos!Saludos

Felicidades muy buena publicación, es una manera técnica de entender como es la parte lógica y funcional que domina a todos los equipos tecnológicos que usamos...