I. INTRODUCCIÓN
El software a muerto, son frías palabras del libro de Ingeniería de software en su séptima edición, sin embargo, se refiere solamente a la forma en la que antes se conocía el software, con grandes apps y un sin número de actualizaciones que debían estar siendo descargadas en nuestros ordenadores, sin embargo con la Web 2.0 el antiguo concepto del software, de instalar, utilizar y actualizar, ha muerto.
En la actualidad un software en la web, es actualizado solamente desde un ordenador por uno o más programadores, y dichas actualizaciones pueden ser visualizadas por todos los usuarios sin necesidad de hacer nada más, sin embargo, que pasaría si se comete algún error, simple, este error también será visualizado por los usuarios.
Los errores al momento de crear software sea este del tipo móvil, win32 o web, es que realizarlo conlleva un gran tiempo de trabajo, y la entrega debe ser pronta ya que hay mucha competencia en el mercado, y es ahí donde surgen los errores que conllevan a que gran porcentaje de proyectos informáticos no lleguen a su fin.
El lograr un proyecto de software exitoso depende en gran parte, del inicio del proyecto y los procesos, modelos, técnicas y demás herramientas que se necesiten por lo cual es sumamente importante tener una idea clara de los requerimientos del software, de las posibilidades de los programadores, del tiempo de trabajo que nos tomará realizar el proyecto, entre otros aspectos que al no ser tomados en cuenta, sin duda afectaran nuestro proyecto.
Explicado lo anterior, queda claro que esta página es realizada con la finalidad de que las personas entiendan la importancia de elegir modelos adecuados a la hora de realizar cualquier proyecto en cualquier área.
II. OBJETIVO
El objetivo de esta clase es aprender sobre la ingeniería de software y las metodologías que se utilizan, asi como también los modelos de procesos que son necesarios para la realización de un proyecto de software, todo esto con la finalidad de conocer, cuál es la mejor de realizar un producto final que sea eficiente y eficaz, en el menor tiempo posible.
III. MARCO TEÓRICO
3.1. EL SOFTWARE
Antes de comenzar con todo lo demás es muy importante saber qué es el software, y no me refiero a "todo aquello que no se pueda tocar", ya que éste concepto, queda en el pasado, si no más bien a los programas que les facilitan distintos procesos a un conjunto de personas. Para explicar de una manera más clara está el gráfico 3.1.
Gráfico 3.1: Software.
3.2. ANÁLISIS ANTES DE CREAR EL SOFTWARE
Hace algunos años, nadie hubiera pensado que el software de computadoras iba a ser tan indispensable como lo es hoy en día, que iba a ser utilizado en distintos ámbitos, como transacciones financieras, diversión, educación, salud, amor, para generar más tecnología entre otro sin número de ejemplos. Sin embargo, la realización de un sistema informático constituye de un trabajo arduo y es donde surgen preguntas, para las cuales a medida del desarrollo, cada programador tiene sus respuestas respectivas.
Gráfico 3.2: Preguntas sobre software.
3.3. TIEMPOS DE REALIZACIÓN DE SOFTWARE
La realización del software es un proceso que debe ser sistemático, por lo cual requiere un tiempo determinado, de modo que, la entrega final no presente atrasos.
Sin embargo, en la mayoría de los casos el software no es entregado en las fechas establecidas, por lo que cabe preguntarse, por qué esto sucede, y es aquí donde surgen varios puntos, por ejemplo:
En muchas ocasiones el programador o conjunto de programadores, abarca más de lo que está dentro de sus posibilidades.
Irresponsabilidad por parte de uno de los miembros del grupo, lo cual conlleva a que las tareas realizadas se acrecenten.
Módulos extras, aveces el cliente tiene durante el proceso, más requerimientos de los que tubo en un comienzo.
No existe una buena comunicación con el cliente, etc.
La tasa de fallas que existen en el software y el tiempo de realización es explicado en la siguiente imagen.
Imagen 3.1: Tasa de errores del software.
3.4. EL PROCESO DEL SOFTWARE
Para entender los procesos por los que pasa el software, es necesario entender ciertos conceptos que en ingeniería de sofware son escenciales tales como se muestran en el gráfico 3.3.
Gráfico 3.3: Conceptos breves.
Pese a lo explicado anteriormente, habrá quienes aún se pregunten por qué es importante la ingeniería de software, y la respuesta es, que, el éxito de un proyecto o en este caso programa, depende de los métodos, técnicas y herramientas que se utilicen en el proceso.
Es importante tener una metodología ya que la realización de software realiza ser bastante compleja, por los cambios que se den en el proceso, entre otras cosas. (Virrueta, A. 2010).
Para tener una correcta metodología se utilizan Casos de Uso, Lenguajes de programación, Plantillas de Documentos, Herramientas de gestión, UML, etc.
3.5. ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE
Para que el software final sea de calidad debe existir un control del mismo y una administración de los posibles riesgos, revisiones por parte del equipo de software y definiendo criterios para establecer si algunos componentes del software pueden ser reutilizables, en la práctica primero se debe entender cuál es el problema para luego plantear cómo solucionarlo, ejecutar el plan viene siendo la generación del código y luego de que este esté finalizado se hacen pruebas que aseguren la calidad del software realizado.
El personal que crea el software puede tener muchos libros sobre la realización del mismo, sin embargo esto no asegura la calidad, no es más que un mito, ya que la práctica hace al maestro, además no se puede estandarizar el software ya que existen distintas clases del mismo, para los cuales son aplicables distintos modelos de proceso.
A continuación se muestran algunos de los distintos software´s que existen:
Gráfico 3.4: Ejemplos de software
CONCLUSIÓN
El objetivo fundamental de la ingeniería de software es que quienes producen software, apliquen de manera sistemática y disciplinada, el desarrollo del mismo y en caso de que sea posible, también su mantenimiento. La ingeniería de software es una ciencia integradora ya que posee los conceptos de matemáticas, computación e ingeniería básica, es en donde se aplican los conceptos que el desarrollador tiene crear un programa el cual tenga un fin, y luego de que este sea realizado, pueda darle un mantenimiento y una documentación del trabajo realizado.
La ingeniería de software es un factor muy importante si se desea hacer un producto de software de manera correcta ya que se analizan los requerimientos del cliente, los cuales son primordiales para saber qué es lo que el cliente espera del software, a este paso se le denomina comunicación, al cual le sigue la planeación en la cual se plantea cómo va a ser el software en base a los requerimientos del cliente, luego se procede a hacer un diseño de cómo se verá el software para el cliente, este paso se denomina, modelado y es primordial para llegar a la construcción del software, el cual es el penúltimo paso en la realización del mismo, y es donde se aplican los conocimientos y se programa lo requerido, finalmente, el despliegue, es la entrega del software al cliente, y la explicación del mismo y las pruebas que éste haga sobre su funcionamiento.
Existen muchos tipos de software, por ejemplo las aplicaciones web, son software que tienen requerimientos únicos, sin embargo, el desarrollar una Webapi o Webapps siguen los mismos procesos que cualquier otro tipo de software, las metodologías a utilizar son muchas, y serán explicadas en siguientes publicaciones, sin embargo cabe recalcar que para que un software sea robusto se necesita conocer sobre la ingeniería de software y aplicar los pasos y metodologías para llegar a un objetivo.
BIBLIOGRAFÍA
Canós, J ; Letelier, P; Penadés, M. s.f. Métodologías Ágiles en el Desarrollo de Software. (En línea). ES. Consultado, 19 de abril de 2015. Formato PDF. Disponible en: http://noqualityinside.com/nqi/nqifiles/XP_Agil.pdf
Gutierrez, D. 2011. Métodos de Desarrollo de Software. (En línea). VE. Consultado, 19 de abril de 2015. Formato PDF. Disponible en: http://www.codecompiling.net/files/slides/IS_clase_13_metodos_y_procesos.pdf
Pressman, R. 2010. Ingeniería de software: Un enfoque práctico. 7 ed. México. Mc Graw Hill. p 805.
Virrueta, A. 2010. Metodologías de desarrollo de software. ES. Consultado, 19 de abril de 2015. Formato PDF. Disponible en: http://www.monografias.com/trabajos-pdf4/metodologias-de-desarrollo-software/metodologias-de-desarrollo-software.pdf