0
Contenido.
Unidad I. Fundamentos de ingeniería de software. ................................................................ 2
1.1 Conceptos básicos. ................................................................................................... 2
Ingeniería. ........................................................................................................................ 2
Software. ......................................................................................................................... 2
Ingeniería de software. .................................................................................................... 2
1.2 Fases de la Ingeniería de software. .......................................................................... 3
Análisis de requerimientos. ............................................................................................. 3
Especificación. ................................................................................................................ 3
Diseño y arquitectura. ..................................................................................................... 3
Programación. ................................................................................................................. 3
Prueba. ............................................................................................................................. 4
Documentación................................................................................................................ 4
Mantenimiento. ............................................................................................................... 4
1.3 Metodologías de desarrollo de software. ................................................................. 4
1.3.1. Clásicas................................................................................................................. 5
Cascada............................................................................................................................ 5
Figura 1. Las etapas del modelo de cascada. (Castro, 2018) ....................................... 6
Prototipado. ..................................................................................................................... 6
Figura 2. Prototipado. (Castro, 2018) .......................................................................... 6
1
Espiral.............................................................................................................................. 6
Figura 3. Etapas de la metodología en espiral. (Castro, 2018) .................................... 7
Incremental. ..................................................................................................................... 7
Figura 4. Modelo incremental. (Castro, 2018) ............................................................ 8
1.3.2. Agiles. .................................................................................................................. 8
Kanban. ........................................................................................................................... 8
Scrum. ............................................................................................................................. 9
Lean. ................................................................................................................................ 9
Programación extrema (XP). ........................................................................................... 9
1.3.3. Otras filosofías ..................................................................................................... 9
Ganar-ganar. .................................................................................................................... 9
Proceso Unificado (UP). ............................................................................................... 10
Ingeniería Web. ............................................................................................................. 10
1.4 Importancia de las herramientas CASE en la Ingeniería de software. ................... 10
Conclusión. ........................................................................................................................... 11
Bibliografía ........................................................................................................................... 11
RUBRICA DE EVALUACIÓN DE TAREAS .................... ¡Error! Marcador no definido.
2
Unidad I. Fundamentos de ingeniería de software.
1.1 Conceptos básicos.
Ingeniería.
Es una disciplina y profesión enfocada a la aplicación del conocimiento científico y
técnico, que utiliza recursos fiscos para diseñar e implementar diversos artefactos
(estructuras, maquinas, dispositivos, sistemas y procesos) para realizar un objetivo deseado
y alcanzar criterios específicos. (Andres, 2017)
Software.
Se conoce como software al equipamiento o soporte lógico de una computadora digital;
comprende el conjunto de los componentes lógicos necesarios que hacen posible la
realización de tareas específicas en contraposición a los componentes físicos (hardware).
(Andres, 2017)
Ingeniería de software.
La ingeniería de software es una disciplina formada por un conjunto de métodos,
herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos
(software). (Hernández, 2013)
El propósito de la ingeniería de software es permitir al diseñador enfrentar el problema
de construcción de software como un problema de ingeniera, con guías y principios
concretos, al igual que con herramientas de evaluación y validación. (Andres, 2017)
3
Por lo tanto, la ingeniería de software incluye el análisis previo de la situación, el diseño
del proyecto, el desarrollado del software, las pruebas necesarias para confirmar su correcto
funcionamiento y la implementación del sistema. (Hernández, 2013)
1.2 Fases de la Ingeniería de software.
La ingeniería de software requiere llevar a cabo numerosas tareas agrupadas en etapas,
al conjunto de estas etapas se le denomina ciclo de vida. (Ramos, 2017)
Análisis de requerimientos.
Se extraen los requisitos del producto de software. En esta etapa la habilidad y
experiencia en la ingeniería del software es crítica para reconocer requisitos incompletos,
ambiguos o contradictorios. (Ramos, 2017)
Especificación.
Es la tarea de describir detalladamente el software a ser escrito, de una forma rigurosa.
Se describe el comportamiento esperado del software y su interacción con los usuarios y/o
sistemas. (Ramos, 2017)
Diseño y arquitectura.
Se determinan las funciones que tendrá el software, de manera general. Consiste en el
diseño de componentes del sistema que responden a las funcionalidades descritas en la
segunda etapa, también conocidas como entidades empresariales. (Ramos, 2017)
Programación.
Se traduce el diseño a código. Es la parte más obvia del trabajo de ingeniería de software
y la primera en que se obtienen resultados “tangibles”. (Ramos, 2017)
4
Prueba.
Consiste en comprobar que el software responda y realice correctamente las tareas
indicadas en la especificación. (Ramos, 2017)
Documentación.
Realización del manual de usuario, y posiblemente un manual técnico con el propósito
de mantenimiento futuro y ampliaciones al sistema.
Las tareas de esta etapa se inician ya en la primera fase pero sólo finalizan una vez
terminadas las pruebas. (Ramos, 2017)
Mantenimiento.
En esta etapa se realizan un mantenimiento correctivo (resolver errores) y un
mantenimiento evolutivo (mejorar las funcionalidades y/o dar respuesta a nuevos
requisitos). (Ramos, 2017)
1.3 Metodologías de desarrollo de software.
Las metodologías de desarrollo de software son un conjunto de técnicas y métodos
organizativos que se aplican para diseñar soluciones de software informático. El objetivo de
las distintas metodologías es el de intentar organizar los equipos de trabajo para que estos
desarrollen las funciones de un programa de la mejor manera posible. (Universidades,
2020)
Dichas metodologías pretenden guiar a los desarrolladores al crear un nuevo software, pero
los requisitos de un software a otro son tan variados y cambiantes, que ha dado lugar a que
exista una gran variedad de metodologías para la creación del software. (Ramos, 2017)
5
1.3.1. Clásicas.
Las metodologías de desarrollo de software tradicionales o bien clásicas se caracterizan
por definir total y rígidamente los requisitos al inicio de los proyectos de ingeniería de
software. Los ciclos de desarrollo son poco flexibles y no permiten realizar cambios.
(Universidades, 2020)
Por lo tanto, las metodologías clásicas son aquellas que siguen una secuencia lógica y
cada etapa es directamente dependiente de que se culmine la etapa anterior. (Castro, 2018)
La organización del trabajo de las metodologías tradicionales es lineal, es decir, las
etapas se suceden una tras otra y no se puede empezar la siguiente sin terminar la anterior.
(Universidades, 2020)
Las principales metodologías tradicionales o clásicas son:
Cascada.
El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo de
software se concibe como un conjunto de etapas que se ejecutan una tras otra. (Castro,
2018)
Se le denomina así por las posiciones que ocupan las diferentes fases que componen el
proyecto, colocadas una encima de otra, y siguiendo un flujo de ejecución de arriba hacia
abajo, como una cascada. (Castro, 2018)
6
Figura 1. Las etapas del modelo de cascada. (Castro, 2018)
Prototipado.
Se basa en la construcción de un prototipo de software que se construye rápidamente
para que los usuarios puedan probarlo y aportar feedback. Es un modelo iterativo que se
basa en el método de prueba y error para comprender las especificidades del producto.
(Universidades, 2020)
Figura 2. Prototipado. (Castro, 2018)
Espiral.
Es una combinación de los dos modelos anteriores, que añade el concepto de análisis de
riesgo. (Universidades, 2020)
Se divide en cuatro etapas:
7
➢ Planificación,
➢ Análisis de riesgo,
➢ Desarrollo de prototipo
➢ Evaluación del cliente. (Universidades, 2020)
Figura 3. Etapas de la metodología en espiral. (Castro, 2018)
El nombre de esta metodología da nombre a su funcionamiento, ya que se van
procesando las etapas en forma de espiral.
Cuanto más cerca del centro se está, más avanzado está el proyecto. (Universidades,
2020)
Incremental.
En esta metodología de desarrollo de software se va construyendo el producto final de
manera progresiva. (Universidades, 2020)
En cada etapa incremental se agrega una nueva funcionalidad, lo que permite ver
resultados de una forma más rápida en comparación con el modelo en cascada.
(Universidades, 2020)
8
Figura 4. Modelo incremental. (Castro, 2018)
1.3.2. Agiles.
Las metodologías ágiles son aquellas que permiten adaptar la forma de trabajo a las
condiciones del proyecto. (VILLÁN, 2019)
Se caracterizan por enfatizar la comunicación frente a la documentación, por el
desarrollo evolutivo y por su flexibilidad. (Moreno Arcos, 2017)
Las metodologías ágiles se basan en la metodología incremental, en la que en cada ciclo
de desarrollo se van agregando nuevas funcionalidades a la aplicación final. Sin embargo,
los ciclos son mucho más cortos y rápidos, por lo que se van agregando pequeñas
funcionalidades en lugar de grandes cambios. (Universidades, 2020)
Las principales metodologías ágiles son:
Kanban.
Es una metodología de trabajo inventada por la empresa de automóviles Toyota.
Consiste en dividir las tareas en porciones mínimas y organizarlas en un tablero de trabajo
dividido en tareas pendientes, en curso y finalizadas. (Universidades, 2020)
9
De esta forma, se crea un flujo de trabajo muy visual basado en tareas prioritarias e
incrementando el valor del producto. (Universidades, 2020)
Scrum.
Es una metodología incremental que divide los requisitos y tareas, se itera sobre bloques
de tiempos cortos y fijos (entre dos y cuatro semanas) para conseguir un resultado completo
en cada iteración. (Universidades, 2020)
Lean.
Está configurado para que pequeños equipos de desarrollo muy capacitados elaboren
cualquier tarea en poco tiempo. (Universidades, 2020)
Programación extrema (XP).
Es una metodología de desarrollo de software basada en las relaciones interpersonales,
que se consideran la clave del éxito. Su principal objetivo es crear un buen ambiente de
trabajo en equipo y que haya un feedback constante del cliente. (Universidades, 2020)
1.3.3. Otras filosofías
Ganar-ganar.
Para la metodología del desarrollo del proyecto GA3 se utilizó principalmente el
modelo reciente Ganar-ganar ya que con este existen ganancias para todas las partes
implicadas. (Ramos, 2017)
10
Proceso Unificado (UP).
El Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar
dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental.
(Ramos, 2017)
Ingeniería Web.
La ingeniería web es la aplicación de metodologías sistemáticas, disciplinadas y
cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de alta calidad
en la World Wide Web. (Ramos, 2017)
1.4 Importancia de las herramientas CASE en la Ingeniería de software.
Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software
Asistida por Computadora) son diversas aplicaciones informáticas o programas
informáticos destinadas a aumentar la productividad en el desarrollo de software
reduciendo el costo de estas en términos de tiempo y de dinero. (Ramos, 2017)
Las herramientas CASE proporcionan una gran credibilidad, exactitud y fiabilidad que
se nota en el reconocimiento universal, siendo usadas por cualquier analista, programador,
ingeniero de software y cualquier otro especialista en tecnologías de la información que
busca un resultado óptimo, eficaz y presentable, para cada uno de sus procesos. (Zimbrón,
2017)
11
Conclusión.
Considerando la investigación previa, se puede concluir que la ingeniería de software es
una disciplina de suma importancia, que cuenta con diversos conceptos que la relacionan.
Cabe mencionar que dentro de la ingeniería de software se encuentran fases o etapas de
tareas agrupadas que conforman el ciclo de vida de un producto de software, estas etapas
exigen la realización de procesos específicos para llevar a cabo un buen desarrollo del
software.
Así como existen distintas etapas de desarrollo, dentro de la ingeniería de software se
pueden apreciar distintas metodologías, las cuales se encuentran divididas en clásicas o
agiles, estas a su vez buscan cumplir con su objetivo, sin embargo usando sus propias
características.
Como la mayor parte de las cosas, para agilizar la productividad, reducir el tiempo y los
costos de elaboración, la ingeniería de software cuenta con herramientas CASE, que le
permiten mejorar los tiempos de producción y su capacidad.
Bibliografía
Andres, E. G. (18 de Julio de 2017). Fundamentos de ingeniería de software. Obtenido de
Issuu Inc: https://issuu.com/eusebio_guzman/docs/fundamentos_de_ingenier__a_de_softw
Castro, A. I. (09 de Septiembre de 2018). Metodologia de Desarrollo de Software.
Obtenido de StudentPlace: https://studentplace98.blogspot.com/2018/09/metodologia-de-
desarrollo-de-software.html
12
Hernández, J. H. (19 de Febrero de 2013). UNIDAD 1: FUNDAMENTOS DE INGENIERÍA
DE SOFTWARE. Obtenido de @FUNDAMENTOS DE INGENIERIA DE SOFTWARE:
http://ithuejutlajhh.blogspot.com/2013/02/fundamentos-de-ingenieria-de-software.html
Moreno Arcos, J. L. (07 de Septiembre de 2017). Metodologias de Desarrollo de Software.
Obtenido de Fundamentos de Ingeniería de Software:
http://joseluismorenoarcosfis.blogspot.com/2017/09/metodologias-de-desarrollo-de-
software.html
Ramos, J. A. (29 de Agosto de 2017). FUNDAMENTOS DE INGENIERÍA DE
SOFTWARE. Obtenido de Blogger:
http://aguilarramosjesusfis.blogspot.com/2017/08/1_29.html
Universidades, S. (21 de Diciembre de 2020). Metodologías de desarrollo de software:
¿qué son? Obtenido de Santander Universidades: https://www.becas-
santander.com/es/blog/metodologias-desarrollo-software.html
VILLÁN, V. R. (15 de Marzo de 2019). Las metodologías ágiles más utilizadas y sus
ventajas dentro de la empresa. Obtenido de IEBS: https://www.iebschool.com/blog/que-
son-metodologias-agiles-agile-scrum/
Zimbrón, G. (08 de Septiembre de 2017). Importancia e Historia de las herramientas
CASE. Obtenido de ZimbronApps: https://zimbronapps.com/educacion/sistemas-
computacionales/ingenieria-de-software/importancia-e-historia-las-herramientas-case/
13