Está en la página 1de 46

Asignatura: Introducción a la ingeniería de software.

Unidad de aprendizaje #1: Ingeniería de software.


Actividad 2: Métodos de desarrollo de software.

Ciudad de México, junio del 2023.


Diseño: DL-CPL
1

ÍNDICE

ÍNDICE..................................................................................................................... 1
Índice de figuras.......................................................................................................4
Índice de tablas........................................................................................................ 5
INTRODUCCIÓN..................................................................................................... 6
DESARROLLO DE LA ACTIVIDAD.........................................................................7
Problema propuesto............................................................................................. 7
Desarrollo de software..........................................................................................8
Método de desarrollo de software en cascada..................................................8
1) Análisis................................................................................................. 8
2) Diseño.................................................................................................. 8
3) Codificación..........................................................................................9
4) Pruebas.............................................................................................. 10
5) Mantenimiento....................................................................................10
Explica el código en lenguaje C del programa que soluciona el problema
propuesto con el método de desarrollo de software en cascada.................12
Método de desarrollo de software iterativo.....................................................13
Iteración 1....................................................................................................... 14
1) Comunicación.....................................................................................14
2) Planeación..........................................................................................14
3) Modelado (análisis y diseño)..............................................................15
3.1) Análisis.................................................................................................15
3.2) Diseño..................................................................................................15
4) Construcción (Código, Prueba)..........................................................15
4.1) Código..................................................................................................15
4.2) Prueba..................................................................................................16
5) Despliegue (Entrega, retroalimentación)............................................17
5.1) Entrega.................................................................................................17
5.2) Retroalimentación................................................................................17
Iteración 2....................................................................................................... 17
2
1) Comunicación.....................................................................................17
2) Planeación..........................................................................................17
3) Modelado (análisis y diseño)..............................................................18
3.1) Análisis.................................................................................................18
3.2) Diseño..................................................................................................19
4) Construcción (Código, Prueba)..........................................................19
4.1) Código..................................................................................................19
4.2) Prueba..................................................................................................20
5) Despliegue (Entrega, retroalimentación)............................................21
5.1) Entrega.................................................................................................21
5.2) Retroalimentación................................................................................21
Explica el código en lenguaje C del programa que soluciona el problema
propuesto con el método de desarrollo de software iterativo......................21
Método de desarrollo de software incremental...............................................22
1) Análisis (Núcleo del producto de software)........................................23
2) Diseño (Núcleo del producto de software)..........................................24
3) Código (Incremento 1 – Parte de la Entrega del 1er incremento)......24
4) Prueba (Incremento 1 – Parte de la Entrega del 1er incremento)......25
Entrega del 1er incremento al cliente..........................................................25
3) Código (Incremento 2 – Parte de la Entrega del 2do incremento)..........26
4) Prueba (Incremento 2 – Parte de la Entrega del 2do incremento)..........27
Explica el código en lenguaje C del programa que soluciona el problema
propuesto con el método de desarrollo de software incremental................27
Método de desarrollo de software espiral.......................................................29
1) Comunicación.....................................................................................30
2) Planificación....................................................................................... 30
3) Análisis de riesgos..............................................................................30
4) Ingeniería............................................................................................32
5) Construcción y Adaptación.................................................................33
6) Evaluación del cliente.........................................................................34
1) Comunicación.....................................................................................36
2) Planificación....................................................................................... 36
3) Análisis de riesgos..............................................................................36
3
4) Ingeniería............................................................................................37
5) Construcción y adaptación.................................................................39
6) Evaluación del cliente.........................................................................39
CONCLUSIONES...................................................................................................41
REFERENCIAS BIBLIOGRÁFICAS.......................................................................42
4

Índice de figuras

Figura 1 Diagrama del Ciclo de vida cascada. Fuente: Pressman (2010, p. 30).....8
Figura 2 Código en lenguaje C para la metodología Cascada. Fuente: Dev-C++.
Elaboración Propia.................................................................................................10
Figura 3 Ejecución del código para la metodología Cascada. Fuente: Dev-C++.
Elaboración Propia.................................................................................................10
Figura 4 Código en lenguaje C para la metodología Cascada. Fuente: Dev-C++.
Elaboración Propia.................................................................................................12
Figura 5 Ejecución del código para la metodología Cascada. Fuente: Dev-C++.
Elaboración Propia.................................................................................................12
Figura 6 Diagrama Modelo Iterativo. Fuente:
http://isw-udistrital.blogspot.com/2012/09/ingenieria-de-software-continuacion.html
............................................................................................................................... 13
Figura 7 Código en lenguaje C para la metodología Iterativa. Fuente: Dev-C++.
Elaboración Propia.................................................................................................16
Figura 8 Ejecución del código para la metodología Iterativa. Fuente: Dev-C++.
Elaboración Propia.................................................................................................16
Figura 9 Código en lenguaje C para la iteración 2. Fuente: Dev-C++. Elaboración
Propia..................................................................................................................... 20
Figura 10 Ejecución del código para la iteración 2. Fuente: Dev-C++. Elaboración
Propia..................................................................................................................... 20
Figura 11 Diagrama del modelo incremental. Fuente: Pressman (2010, p. 27).....22
Figura 12 Diagrama Modelo Incremental. Fuente: http://isw-
udistrital.blogspot.com/2012/09/ingenieria-de-software-i.html...............................23
Figura 13 Código en lenguaje C para la metodología Incremental. Fuente: Dev-C+
+. Elaboración Propia.............................................................................................25
Figura 14 Ejecución del código para la metodología Incremental. Fuente: Dev-C++.
Elaboración Propia.................................................................................................25
Figura 15 Código en lenguaje C para la metodología incremental. Fuente: Dev-C+
+. Elaboración Propia.............................................................................................27
Figura 16 Ejecución del código para la metodología incremental. Fuente: Dev-C++.
Elaboración Propia.................................................................................................27
Figura 17 Diagrama del ciclo de vida espiral. Fuente: Pressman (2010, p. 28).....29
Figura 18 Código en lenguaje C para la metodología espiral. Fuente: Dev-C++.
Elaboración Propia.................................................................................................33
5
Figura 19 Ejecución del código para la metodología espiral. Fuente: Dev-C++.
Elaboración Propia.................................................................................................33
Figura 20 Código en lenguaje C para la metodología incremental. Fuente: Dev-C+
+. Elaboración Propia.............................................................................................39
Figura 21 Ejecución del código para la metodología incremental. Fuente: Dev-C++.
Elaboración Propia.................................................................................................39

Índice de tablas

Tabla 1 “What if”: Análisis de riesgos del proyecto de “Desarrollo de software para
el cálculo del área de un triángulo”. Elaboración y fuente propias.........................30
Tabla 2 Diseño del software para el cálculo del área de un triángulo. Elaboración y
fuente: Propia.........................................................................................................32
Tabla 3 “What if”: Análisis de riesgos del proyecto de “Desarrollo de software para
el cálculo del área de un triángulo” en la etapa 6 del método de desarrollo de
software en espiral en relación al primer ciclo. Elaboración y fuente propias........34
Tabla 4 “What if”: Análisis de riesgos del proyecto de “Desarrollo de software para
el cálculo del área de un triángulo” para la segunda etapa del ciclo en espiral.
Elaboración y fuente propias..................................................................................37
6

INTRODUCCIÓN

“La metodología de desarrollo de software es el conjunto de técnicas y métodos


que se utilizan para diseñar una solución de software informático; son vitales para
poner en marcha cualquier herramienta digital. Es importante señalar que existen
varias, de manera que es una decisión de cada equipo”. (Universidad Carlemany,
2021).

A manera de introducción me permito comentar que, los métodos de desarrollo de


software son una serie de actividades necesarias para el desarrollo de software;
dichas metodologías tienen características distintas, ciertas particularidades y
ciertas similitudes, las cuales procuran la construcción óptima, eficaz y, – en la
medida de lo posible – eficiente.

Entre los métodos de desarrollo podemos enlistar el Modelo Cascada, el Modelo


Incremental, el Modelo Vida Espiral, el Proceso Unificado Racional (RUP, por las
siglas en inglés Rational Unifed Process) y, más recientemente los métodos ágiles
de desarrollo de software, como, por ejemplo, la metodología Scrum.

Si bien es cierto que, los métodos de desarrollo de software son diferentes entre
sí, es atinado comentar en este punto que, también tienen coincidencias bastante
marcadas como, por ejemplo; en todos los métodos se debe partir desde la visión
del proyecto (el fin por el cual se va a desarrollar el Software). Por otro lado, en
cada una de las fases de la metodología se deberán crear productos (también
denominados entregables), los cuales son el resultado del trabajo realizado
durante el desarrollo de software. Por último, en todos los métodos de desarrollo
de software se tienen roles, los cuales representan la responsabilidad que las
personas tienen con el proyecto.
7

DESARROLLO DE LA ACTIVIDAD

Problema propuesto.

Calcular el área de un triángulo mediante un programa escrito en lenguaje C.


El código fuente deberá contener la siguiente información:
 Datos del estudiante
 La fecha de elaboración
 Grupo
El código fuente deberá tener la siguiente presentación:
 Comentarios al código
 Indentación del código
 El nombre de las variables debe ser: base, altura, area
En la plantilla de entrega de actividades se incluirá lo siguiente:
 El texto del código en lenguaje C
 Una captura de pantalla de la ejecución del código en lenguaje C.
8
Desarrollo de software.
Método de desarrollo de software en cascada.
Definición: Base de otros modelos de ciclo de vida; construye software a través de una secuencia de fases simples cuyas
actividades se realizan para lograr un objetivo; dichas fases son consecutivas uno de la otra (flechas hacia abajo). Las flechas
de regreso representan retroalimentación. (UNADM, 2023).

Figura 1 Diagrama del Ciclo de vida cascada. Fuente: Pressman (2010, p. 30).

Desarrolla un programa en lenguaje C que solucione el problema propuesto con el método de desarrollo de software
en cascada.
1) Análisis.
Definición: analista y cliente definen todos los requerimientos del sistema y su especificación detallada. (UNADM, 2023).
Para la fase de análisis en el método de desarrollo de software en cascada:
 El cliente solicita un programa que permita: Calcular el área de un triángulo.
 El cliente solicita que el nombre de las variables debe ser: base, altura, area.
2) Diseño.
Definición: A partir del análisis se diseñan las estructuras de datos, bases de datos, interfaces y procedimientos para dar
solución a los requerimientos del cliente. (UNADM, 2023).
Para la fase de diseño en el método de desarrollo de software en cascada se considera que:
9
 Por la simplicidad del programa, no precisamente se necesitan de estructuras de datos, pero, se identifica que, lo
mejor es definir a las variables con datos tipo float.
 El programa no necesita bases de datos.
 El cliente quiere un programa en C, por lo que la interfaz del software será la consola de una aplicación simple en
C.
base∗altura
 Se identifica que el procedimiento para dar solución al cálculo de un triángulo es:
2
3) Codificación.
Definición: El diseño se traduce a código para la generación del software. (UNADM, 2023).
En una primera instancia, se desarrolla el siguiente código, el cual cumple los primeros requisitos del cliente, capturados
en la fase de análisis.
#include <stdio.h>
main()
{
float base, altura, area;
printf("Programa en C para calcular el area de un triangulo \n");
printf("Introducir valor de la base \n");
scanf("%f",&base);
printf("Introducir valor de la altura \n");
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);
}
10
4) Pruebas.
Se hace la revisión del código para comprobar que no tenga errores y realice lo esperado de acuerdo al diseño y al detalle del
requerimiento. (UNADM, 2023).
Una vez que el código se programó, se realizan las pruebas pertinentes, en este caso, como el código es sencillo, no se
realizaron muchas pruebas, y el programa corrió sin contratiempos, de acuerdo al diseño y con apego a los
requerimientos.

Código en lenguaje C Ejecución del código

Figura 2 Código en lenguaje C para la metodología Cascada. Fuente: Figura 3 Ejecución del código para la metodología Cascada. Fuente:
Dev-C++. Elaboración Propia. Dev-C++. Elaboración Propia.

5) Mantenimiento.
Esta etapa se realiza después de la entrega del software y sirve para asegurar que el sistema siga funcionando y se da
seguimiento a las mejoras que el cliente solicite. (UNADM, 2023).
En el sentido de la metodología Cascada, en primera instancia se le entregó al cliente un programa funcional de
acuerdo a sus primeros requerimientos. Pasado el tiempo, el cliente solicitó mejoras al programa, las cuales son:
11
 Que el programa tenga los siguientes datos en el encabezado de la consola de la aplicación en C: Nombre de la
universidad, nombre de la asignatura, nombre del alumno, matrícula, fecha de elaboración y grupo.
Respecto a las actualizaciones que hizo el equipo de programación fue el de ponerle comentarios al código, ya que,
este programa en su primera versión no tenía comentarios en el código.
#include <stdio.h>
main()
{
//Declaración de variables para la solución del problema.
float base, altura, area; //Valor de las variables para el cálculo del área del triángulo.

//Datos solicitados por el cliente en el código fuente.


printf("Universidad Abierta y a Distancia de Mexico\n");
printf("Asignatura: Introduccion a la Ingenieria de Software\n");
printf("Nombre: Dilan Jordi Carreto Angulo\n");
printf("Matricula: ES202118954\n");
printf("Fecha de elaboracion: 28/04/2023\n");
printf("Grupo: DS-DIIS-2301-B2-002\n\n");
printf("Programa en C para calcular el area de un triangulo \n");

printf("Introducir valor de la base \n");//Solicita Valor de la base


scanf("%f",&base);
printf("Introducir valor de la altura \n");//Solicita Valor de la altura
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);//se calcula el área del triángulo.
}
12

Código en lenguaje C Ejecución del código

Figura 4 Código en lenguaje C para la metodología Cascada. Fuente: Figura 5 Ejecución del código para la metodología Cascada. Fuente:
Dev-C++. Elaboración Propia. Dev-C++. Elaboración Propia.

Explica el código en lenguaje C del programa que soluciona el problema propuesto con el método de desarrollo de
software en cascada.
Nota: Las bases de la explicación del presente código en C para la metodología en Cascada serán las mismas o –
serán muy similares – para las demás metodologías, atendiendo a las sugerencias que, la profesora Claudia Hernández
González hizo en la videoconferencia del 20 de abril, sobre que debíamos enfocarnos en el desarrollo de la
metodología, no tanto en la parte técnica del código y, éste, por la naturaleza de los requerimientos solicitados en el
documento “Problema propuesto”, no requerirá muchos cambios, pues son los mismos requerimientos para todas las
metodologías.
Para el desarrollo del código en C:
 Se utilizó la librería #include <stdio.h>, la cual contiene las macros, las constantes y las declaraciones de
funciones que permiten hacer operaciones, así como definir los tipos de datos necesarios para hacer dichas
operaciones.
13
 Se definieron las variables base, altura, area como tipo float, ya que, por la naturaleza de las operaciones
necesarias para calcular el área de un triángulo, será necesario mostrar números decimales.
 Se usa la función “printf” para mostrar un mensaje en forma de texto en la pantalla de la consola del programa
utilizando una cadena de formato.
 Se usa la función scanf para leer las variables desde el teclado.
o Se usa el caracter % como elemento de la cadena de control donde se incluyen grupos individuales de
caracteres.
o Se usa “f” como carácter de conversión que indica que el tipo del dato es flotante.
 Se define la variable “area” con la siguiente operación: “(base*altura)/2”; ósea, la fórmula para medir el área de un
triángulo.
 \n representan un salto de línea en el texto que se ha de imprimir en pantalla.

Método de desarrollo de software iterativo.


Definición: Modelo derivado del Método en cascada; busca reducir el riesgo que surge entre las necesidades del usuario y el
producto final por malos entendidos durante la etapa de recogida de requisitos. Se caracteriza por la iteración de varios ciclos
de vida en cascada. Al final de cada iteración se entrega al cliente una versión mejorada. El cliente es quien después de cada
iteración evalúa el producto y lo corrige o propone mejoras. Estas iteraciones se repetirán hasta obtener un producto que
satisfaga las necesidades del cliente. (Ortiz , Modelo Iterativo, 2012)
14

Figura 6 Diagrama Modelo Iterativo. Fuente: http://isw-udistrital.blogspot.com/2012/09/ingenieria-de-software-continuacion.html

Desarrolla un programa en lenguaje C que solucione el problema propuesto con el método de desarrollo de software
iterativo.
Iteración 1.
1) Comunicación.
El cliente se comunica con el equipo de desarrollo por primera vez, se tiene una reunión con él y manifiesta sus inquietudes
por tener un software que calcule el área de un triángulo. El equipo de desarrollo le comenta que realizará un software que
cumpla sus características, el cliente no comenta nada más y culmina la reunión.
2) Planeación.
El equipo de desarrollo ordena de manera sistemática las tareas para lograr el objetivo de:
 Desarrollar un software para el cálculo del área de un triángulo.
Para alcanzar el objetivo, se realizan las siguientes fases propias de una planeación:
1. Análisis de viabilidad y definición de los objetivos.
1.1. El proyecto es viable, ya que no es tan complejo de realizar y no es costoso para realizar.
1.2. Se ve viable programar este software en lenguaje C, ya que el equipo tiene conocimientos en dicho lenguaje.
15
1.3. Se complementa la definición del primer objetivo quedando como sigue: “Desarrollar un software en lenguaje C para el
cálculo del área de un triángulo”.
2. Definición del alcance.
2.1. El equipo de desarrollo define las tareas y actividades en que se divide el proyecto (Planeación, Modelado,
Construcción y Despliegue) así como la distribución de responsabilidades.
3. Identificación de los costos y recursos.
3.1. Recursos Humanos: Desarrolladores de Software.
3.1.1. El costo es representado por el salario de los Desarrolladores de Software, en este caso es de 20,000 pesos
mensuales. El desarrollo del producto será breve, pero, para fines didácticos, se dirá que el proyecto puede tardar 4
semanas en ser desarrollado, las primeras 2 semanas para la iteración 1, y las semanas 3 y 4, para la iteración 2,
por lo que su costo es de 20,000 pesos mensuales considerando a un solo Desarrollador de Software. (Nótese que
puede sonar exagerado el costo por la realización del software solicitado, pero se debe aclarar que este es un
ejemplo didáctico, ficticio y que solo tiene fines escolares).
3.2. Recursos: Computadoras y hardware complementario.
4. Elaboración del plan de trabajo integral.
4.1. Semana 1: Planeación. (De la Iteración 1).
4.2. Semana 1: Modelado. (De la Iteración 1).
4.3. Semana 2: Construcción. (De la Iteración 1).
4.4. Semana 2: Despliegue. (De la Iteración 1).
3) Modelado (análisis y diseño).
3.1) Análisis.
El desarrollador de software analista la solicitud del cliente y define los siguientes requerimientos:
 El programa debe servir para calcular el área de un triángulo.
 Para calcular el área de un triángulo se deben definir las variables: base, altura, area.
3.2) Diseño.
Definición: A partir del análisis se diseñan las estructuras de datos, bases de datos, interfaces y procedimientos para dar
solución a los requerimientos del cliente. (UNADM, 2023).
Para la fase de diseño en el método de desarrollo de software Iterativo se considera que:
 Por la simplicidad del programa, no precisamente se necesitan de estructuras de datos, pero, se identifica que, lo
mejor es definir a las variables con datos tipo float.
 El programa no necesita bases de datos.
16
 El cliente quiere un programa en C, por lo que la interfaz del software será la consola de una aplicación simple en
C.
base∗altura
 Se identifica que el procedimiento para dar solución al cálculo de un triángulo es:
2
4) Construcción (Código, Prueba).
Conforme al modelo de desarrollo de software Iterativo, en la etapa de construcción, se desarrolla el siguiente código,
el cual cumple con los requisitos del cliente, capturados en la fase de modelado, la cual está conformada (en el
presente modelo iterativo) por el análisis y por el diseño.
4.1) Código.
#include <stdio.h>
main()
{
float base, altura, area;
printf("Programa en C para calcular el area de un triangulo \n");
printf("Introducir valor de la base \n");
scanf("%f",&base);
printf("Introducir valor de la altura \n");
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);
}

4.2) Prueba.

Código en lenguaje C Ejecución del código (Prueba)


17

Figura 7 Código en lenguaje C para la metodología Iterativa. Fuente: Figura 8 Ejecución del código para la metodología Iterativa. Fuente: Dev-
Dev-C++. Elaboración Propia. C++. Elaboración Propia.

5) Despliegue (Entrega, retroalimentación).


5.1) Entrega.
Es prudente mencionar que, el método de desarrollo de software iterativo se suele usar en proyectos en los que los requisitos
del cliente no están claros, por lo que es necesario crear distintos prototipos para presentárselos al cliente y conseguir su
conformidad. En este sentido, se entregó al cliente el prototipo de la figura 8 de la página anterior, el cual está basado en el
código construido para la etapa 4) Construcción (Código, Prueba), el cual también está ilustrado en la figura 7 de este
documento, de ahí que no se volvieran a poner dichas imágenes en esta sección, con el fin de evitar redundancia.
5.2) Retroalimentación.
Una vez que el cliente observó y probó el primer prototipo del producto de software, dio la siguiente retroalimentación al equipo
de desarrollo:
 El programa no tiene los datos requeridos en el encabezado de la consola de la aplicación, los cuales son:
o Nombre de la universidad.
o Nombre de la asignatura.
18
o Nombre del alumno y matrícula.
o Fecha de elaboración y grupo.
 El código no tiene comentarios.
Por lo tanto, estas observaciones del cliente se trabajarán en la iteración 2.

Iteración 2.
1) Comunicación.
Para este punto, el cliente ya se comunicó con el equipo de desarrollo por segunda vez, en la última etapa de la iteración 1,
denominada 5) Despliegue, subetapa 5.2) Retroalimentación, en la cual ya externó los puntos a mejorar.
El equipo de desarrollo le comenta al cliente que realizará una nueva iteración del software que satisfaga sus necesidades.
2) Planeación.
El equipo de desarrollo reordena, para la iteración 2, las siguientes tareas para lograr el nuevo objetivo que será:
 Complementar el software construido para el cálculo del área de un triángulo con datos específicos en el encabezado de
la consola de la aplicación y, agregar comentarios al código del programa.
Para alcanzar dicho objetivo, se realizan las siguientes fases propias de una planeación:
1. Análisis de viabilidad y definición de los objetivos.
1.1. El proyecto es viable, pues ya se realizó un primer prototipo que, no fue complejo de realizar y, tampoco fue costoso
para realizar.
1.2. Se reafirma que, el lenguaje C es la opción óptima para programar el software requerido, ya que el equipo de desarrollo
tiene conocimientos en dicho lenguaje y, el primer prototipo fue programado con éxito en dicho lenguaje.
1.3. Se redefine el objetivo del software quedando como sigue: “Complementar el software construido para el cálculo del
área de un triángulo con datos específicos en el encabezado de la consola de la aplicación y, agregar comentarios al
código del programa”.
2. Definición del alcance.
2.1. El equipo de desarrollo define las tareas y actividades en que se divide el proyecto (Planeación, Modelado,
Construcción y Despliegue) así como la distribución de responsabilidades para la iteración 2 del programa para calcular
el área de un triángulo.
3. Identificación de los costos y recursos.
3.1. Recursos Humanos: Desarrolladores de Software (mismos recursos usados para la iteración 1 de este proyecto).
19
3.1.1. El costo es representado por el salario de los Desarrolladores de Software, en este caso es de 20,000 pesos
mensuales. Considerando que desde un principio el proyecto se planeó para realizarse en 4 semanas (las 2
primeras para la iteración 1, y las semanas 3 y 4 para la iteración 2), se sigue estimando el costo de 20,000 pesos
mensuales.
3.2. Recursos: Computadoras y hardware complementario (mismos recursos usados para la iteración 1 de este proyecto).
4. Elaboración del plan de trabajo integral.
4.1. Semana 3: Planeación. (De la Iteración 2).
4.2. Semana 3: Modelado. (De la Iteración 2).
4.3. Semana 4: Construcción. (De la Iteración 2).
4.4. Semana 4: Despliegue. (De la Iteración 2).

3) Modelado (análisis y diseño).


3.1) Análisis.
El desarrollador de software analiza la retroalimentación del cliente y define los nuevos requerimientos complementarios a los
primeros:
 El programa debe tener los siguientes datos en el encabezado de la consola de la aplicación en C:
o Nombre de la universidad, nombre de la asignatura, nombre del alumno, matrícula, fecha de elaboración y
grupo.
 El código debe tener los comentarios pertinentes para ser más explícito.
3.2) Diseño.
Para la fase de diseño en el método de desarrollo de software de la iteración 2, no se consideran cambios, debido a
que, el diseño realizado en la iteración 1 cumple con las funciones primordiales para las que fue creado, por lo tanto,
sólo se complementará el código con lo expuesto en el punto 3.1) de la página anterior.

4) Construcción (Código, Prueba).


Conforme al modelo de desarrollo de software Iterativo, en la etapa de construcción de la iteración 2, se actualiza el
código, el cual cumple con los requisitos que el cliente hizo en la etapa de Despliegue en la parte de Retroalimentación.
4.1) Código.
#include <stdio.h>
main()
20
{
//Declaración de variables para la solución del problema.
float base, altura, area; //Valor de las variables para el cálculo del área del triángulo.

//Datos solicitados por el cliente en el código fuente.


printf("Universidad Abierta y a Distancia de Mexico\n");
printf("Asignatura: Introduccion a la Ingenieria de Software\n");
printf("Nombre: Dilan Jordi Carreto Angulo\n");
printf("Matricula: ES202118954\n");
printf("Fecha de elaboracion: 28/04/2023\n");
printf("Grupo: DS-DIIS-2301-B2-002\n\n");
printf("Programa en C para calcular el area de un triangulo \n");

printf("Introducir valor de la base \n");//Solicita Valor de la base


scanf("%f",&base);
printf("Introducir valor de la altura \n");//Solicita Valor de la altura
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);//se calcula el área del triángulo.
}

4.2) Prueba.

Código en lenguaje C Ejecución del código


21

Figura 9 Código en lenguaje C para la iteración 2. Fuente: Dev-C++. Figura 10 Ejecución del código para la iteración 2. Fuente: Dev-C++.
Elaboración Propia. Elaboración Propia.

5) Despliegue (Entrega, retroalimentación).


5.1) Entrega.
Se entregó al cliente el prototipo de la figura 10 de la página anterior, el cual está basado en el código actualizado para la
etapa 4) Construcción (Código, Prueba) de la iteración 2. Dicho código está ilustrado en la figura 9 de este documento.
5.2) Retroalimentación.

Una vez que el cliente observó y probó el producto de la iteración 2, se percató de que se cumplió con todos sus
requerimientos; quedó satisfecho.

(Ortiz, 2012) (Proyectos Ágiles, s.f.) (Universidad de Granada, s.f.) (Tutorials Point, s.f.)
22
Explica el código en lenguaje C del programa que soluciona el problema propuesto con el método de desarrollo de
software iterativo.
Nota: Las bases de la explicación del presente código en C para la metodología en Cascada serán las mismas o –
serán muy similares – para las demás metodologías, atendiendo a las sugerencias que, la profesora Claudia Hernández
González hizo en la videoconferencia del 20 de abril, sobre que debíamos enfocarnos en el desarrollo de la
metodología, no tanto en la parte técnica del código y, éste, por la naturaleza de los requerimientos solicitados en el
documento “Problema propuesto”, no requerirá muchos cambios, pues son los mismos requerimientos para todas las
metodologías.
Para el desarrollo del código en C durante la iteración 1:
 Se utilizó la librería #include <stdio.h>, la cual contiene las macros, las constantes y las declaraciones de
funciones que permiten hacer operaciones, así como definir los tipos de datos necesarios para hacer dichas
operaciones.
 Se definieron las variables base, altura, area como tipo float, ya que, por la naturaleza de las operaciones
necesarias para calcular el área de un triángulo, será necesario mostrar números decimales.
 Se usó la función scanf para leer las variables desde el teclado.
o Se usó el caracter % como elemento de la cadena de control donde se incluyen grupos individuales de
caracteres.
o Se usó “f” como carácter de conversión que indica que el tipo del dato es flotante.
 Se definió la variable “area” con la siguiente operación: “(base*altura)/2”; ósea, la fórmula para medir el área de
un triángulo.

Para el desarrollo del código en C durante la iteración 2:


 Se usa la función “printf” para mostrar un mensaje en forma de texto en la pantalla de la consola del programa
utilizando una cadena de formato.
 \n representan un salto de línea en el texto que se ha de imprimir en pantalla.

Método de desarrollo de software incremental.


Definición: El modelo incremental combina elementos del modelo cascada con la filosofía iterativa de construcción de
prototipos (también denominado modelo iterativo), solo que, en cada secuencia de la cascada se produce un incremento. Una
de las características de este modelo es que, el primer incremento es un producto esencial (núcleo), es decir, cumple los
requisitos básicos, a los cuales, se añadirán funciones suplementarias conforme avanza el desarrollo del producto de software
23
con respecto a los requerimientos del cliente como resultado de su utilización y/o evaluación. Para este método de desarrollo
de software, se desarrolla un plan para el incremento siguiente, el cual, argumenta la modificación del producto central a fin de
cumplir mejor las necesidades del cliente, entregando de manera óptima funciones y características adicionales hasta que se
elabore el producto completo. (UNADM, 2023)
A manera de resumen, se puede decir que, el modelo incremental se basa en la filosofía de construir software incrementando
las funciones del programa en secuencias lineales de forma escalonada sobre una línea de tiempo; cada secuencia lineal
produce un incremento de software. Se propone la siguiente figura para representar el modelo incremental:

Figura 11 Diagrama del modelo incremental. Fuente: Pressman (2010, p. 27).

Por otro lado, el modelo incremental también se puede ilustrar de la siguiente manera:
24

Figura 12 Diagrama Modelo Incremental. Fuente: http://isw-udistrital.blogspot.com/2012/09/ingenieria-de-software-i.html

Desarrolla un programa en lenguaje C que solucione el problema propuesto con el método de desarrollo de software
incremental.
Para el desarrollo del programa en lenguaje C que soluciona el problema propuesto con el método de desarrollo de software
incremental se usará el modelo de la figura 11.
1) Análisis (Núcleo del producto de software).
Para esta etapa, el equipo de desarrollo se comunica con el cliente para recabar sus requerimientos de software. En esta
primera etapa, se recabaron las siguientes especificaciones:
 El cliente solicita un programa que permita: Calcular el área de un triángulo.
 El cliente solicita que el nombre de las variables debe ser: base, altura, area.
Es importante mencionar que, este primer análisis es parte del núcleo del producto de software ya que, cumple con los
requisitos básicos del cliente, a los cuales, se añadirán funciones suplementarias conforme avanza el desarrollo del producto.
25
2) Diseño (Núcleo del producto de software).
Para esta segunda etapa del modelo incremental, se diseñan las estructuras de datos, bases de datos, interfaces y
procedimientos para dar solución a los requerimientos del cliente. Los programadores consideran que, para el desarrollo de
este proyecto se deben cumplir con los siguientes puntos:
 Por la simplicidad del programa, no precisamente se necesitan de estructuras de datos, pero, se identifica que, lo mejor
es definir a las variables con datos tipo float.
 El programa no necesita bases de datos.
 El cliente quiere un programa en C, por lo que la interfaz del software será la consola de una aplicación simple en C.
base∗altura
 Se identifica que el procedimiento para dar solución al cálculo de un triángulo es:
2
3) Código (Incremento 1 – Parte de la Entrega del 1er incremento).
Para la etapa número 3 del modelo incremental, se procederá a traducir los puntos capturados en el diseño, al código para la
generación del software.
Como parte del primer incremento, se desarrolla el siguiente código, el cual cumple los primeros requisitos del cliente,
capturados en la fase de análisis.
#include <stdio.h>
main()
{
float base, altura, area;
printf("Programa en C para calcular el area de un triangulo \n");
printf("Introducir valor de la base \n");
scanf("%f",&base);
printf("Introducir valor de la altura \n");
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);
}
26
4) Prueba (Incremento 1 – Parte de la Entrega del 1er incremento).
Para la cuarta etapa del modelo incremental, se procede a revisar el código para comprobar que no tenga errores, haciendo
constar que el programa cumple con lo esperado de acuerdo al diseño y al detalle de lo requerido.
Para este caso de estudio, no se realizaron muchas pruebas (debido a que el código no es muy complejo).
Cabe señalar que, el programa corrió sin contratiempos, de acuerdo al diseño y con apego a los requerimientos.

Código en lenguaje C Ejecución del código

Figura 13 Código en lenguaje C para la metodología Incremental. Fuente: Figura 14 Ejecución del código para la metodología Incremental. Fuente:
Dev-C++. Elaboración Propia. Dev-C++. Elaboración Propia.

Entrega del 1er incremento al cliente.


Una vez que se probó el software, el equipo de desarrollo procedió a mostrárselo al cliente (entrega del primer incremento).
Una vez que el cliente terminó de probarlo, procedió a solicitar las siguientes características adicionales;
 El programa debe tener los siguientes datos en el encabezado de la consola de la aplicación en C:
o Nombre de la universidad, nombre de la asignatura, nombre del alumno, matrícula, fecha de elaboración y grupo.
 El programa debe tener comentarios en el código, con el fin de hacerlo más explícito.
27

3) Código (Incremento 2 – Parte de la Entrega del 2do incremento).


Respecto a la solicitud de las características adicionales por parte del cliente, el equipo de desarrollo realizó las pertinentes
actualizaciones al código, quedando como sigue:
#include <stdio.h>
main()
{
//Declaración de variables para la solución del problema.
float base, altura, area; //Valor de las variables para el cálculo del área del triángulo.

//Datos solicitados por el cliente en el código fuente.


printf("Universidad Abierta y a Distancia de Mexico\n");
printf("Asignatura: Introduccion a la Ingenieria de Software\n");
printf("Nombre: Dilan Jordi Carreto Angulo\n");
printf("Matricula: ES202118954\n");
printf("Fecha de elaboracion: 28/04/2023\n");
printf("Grupo: DS-DIIS-2301-B2-002\n\n");
printf("Programa en C para calcular el area de un triangulo \n");

printf("Introducir valor de la base \n");//Solicita Valor de la base


scanf("%f",&base);
printf("Introducir valor de la altura \n");//Solicita Valor de la altura
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);//se calcula el área del triángulo.
28
}
4) Prueba (Incremento 2 – Parte de la Entrega del 2do incremento).
Para la Entrega del 2do incremento relacionado con la cuarta etapa del modelo incremental , se procede a revisar el
código para comprobar que no tenga errores, haciendo constar que el programa cumple con la solicitud de las características
adicionales por parte del cliente; el programa volvió a correr sin contratiempos, de acuerdo al diseño y con apego a los
requerimientos.

Código en lenguaje C Ejecución del código

Figura 15 Código en lenguaje C para la metodología incremental. Fuente: Figura 16 Ejecución del código para la metodología incremental. Fuente:
Dev-C++. Elaboración Propia. Dev-C++. Elaboración Propia.

Explica el código en lenguaje C del programa que soluciona el problema propuesto con el método de desarrollo de
software incremental.
Nota: Las bases de la explicación del presente código en C para la metodología en Cascada serán las mismas o –
serán muy similares – para las demás metodologías, atendiendo a las sugerencias que, la profesora Claudia Hernández
González hizo en la videoconferencia del 20 de abril, sobre que debíamos enfocarnos en el desarrollo de la
metodología, no tanto en la parte técnica del código y, éste, por la naturaleza de los requerimientos solicitados en el
29
documento “Problema propuesto”, no requerirá muchos cambios, pues son los mismos requerimientos para todas las
metodologías.

Para el desarrollo del código en C en el método de desarrollo de software incremental y, como resultado de la información
recabada en las etapas de Análisis y Diseño:
 Se utilizó la librería #include <stdio.h>, la cual contiene las macros, las constantes y las declaraciones de
funciones que permiten hacer operaciones, así como definir los tipos de datos necesarios para hacer dichas
operaciones.
 Se definieron las variables base, altura, area como tipo float, ya que, por la naturaleza de las operaciones
necesarias para calcular el área de un triángulo, será necesario mostrar números decimales.
 Se usa la función scanf para leer las variables desde el teclado.
o Se usa el caracter % como elemento de la cadena de control donde se incluyen grupos individuales de
caracteres.
o Se usa “f” como carácter de conversión que indica que el tipo del dato es flotante.
 Se define la variable “area” con la siguiente operación: “(base*altura)/2”; ósea, la fórmula para medir el área de un
triángulo.
Una vez que se entregó el primer incremento – el producto esencial, también llamado núcleo – el cliente solicita que, el
programa debe tener el nombre de la universidad, nombre de la asignatura, nombre del alumno, matrícula, fecha de
elaboración y el grupo, de igual forma, pide que el código debe tener los comentarios pertinentes para ser más explícito, por lo
tanto, el siguiente incremento (segundo incremento), comienza desde la fase Código, en la que se añaden los siguientes
aspectos al código:
 Se usa la función “printf” para mostrar un mensaje en forma de texto en la pantalla de la consola del programa
utilizando una cadena de formato.
 \n representan un salto de línea en el texto que se ha de imprimir en pantalla.
Por último, se realiza la etapa de Prueba, se entrega al cliente y el cliente queda satisfecho.
30

Método de desarrollo de software espiral.


Definición:
Es un modelo de proceso de software evolutivo que combina el modelo iterativo de construcción de prototipos con los aspectos
controlados y sistemáticos del modelo cascada. Su principal beneficio es que promueve el desarrollo rápido de versiones
incrementales del software. Las primeras iteraciones se caracterizan en que, la versión incremental puede ser un modelo en
papel o un prototipo. Las últimas iteraciones, son versiones cada vez más completas de ingeniería del sistema.
El aspecto que más agrega valor al Método de desarrollo de software espiral es el “análisis de riesgos”. (UNADM, 2023)
A continuación, se ilustra este método y sus etapas:

Figura 17 Diagrama del ciclo de vida espiral. Fuente: Pressman (2010, p. 28).

1. Comunicación: cliente y analista establecen las políticas de comunicación.


2. Planificación: determinan tiempos, objetivos, restricciones, etc. del proyecto.
3. Análisis de riesgos: identificación y gestión del riesgo.
4. Ingeniería: desarrollo y verificación del producto del siguiente nivel.
5. Construcción y adaptación: actividades para desarrollar, realizar pruebas, instalación y mantenimiento al software.
6. Evaluación del cliente: validación del cliente hasta su aprobación y liberación.
31
Desarrolla un programa en lenguaje C que solucione el problema propuesto con el método de desarrollo de software
espiral.
1) Comunicación.
El equipo de desarrollo establece con el cliente los medios de comunicación, los cuales serán vía entrevistas personales y
llamadas telefónicas. La política será que, los puntos más importantes recabados por los susodichos medios de comunicación
serán recabados en minutas que ambos firmarán para su formalización.
2) Planificación.
Respecto a la planificación del proyecto se establecen los siguientes puntos:
Tiempos:
Se estima que el proyecto dure 4 semanas, en las cuales se desarrollarán las seis etapas del modelo de desarrollo en espiral.
Objetivo:
El objetivo que este proyecto persigue es: Desarrollar un software para el cálculo del área de un triángulo.
Restricciones:
Respecto a las restricciones, se definen las siguientes:
 Este software se programará en lenguaje C.
 El costo es representado por el salario de los Desarrolladores de Software, en este caso es de 20,000 pesos
mensuales, se debe procurar que no exceda este costo.
3) Análisis de riesgos.
Para la identificación y la gestión del riesgo se usará la herramienta What if, la cual es una variación enfocada de la
Brainstorming (Lluvia de idas) ¿qué pasaría si…?, esta herramienta se usa en la etapa preliminar de la gestión cuando se
comienzan a identificar los riesgos. Este método consiste en programar reuniones con expertos que conozcan en detalle un
proceso concreto. En la reunión inicial se plantean interrogantes para evidenciar riesgos futuros. Las reuniones siguientes son
para encontrar causas, consecuencias y acciones. (Pirami, 2023)
Los resultados son los siguientes:
Tabla 1 “What if”: Análisis de riesgos del proyecto de “Desarrollo de software para el cálculo del área de un triángulo”. Elaboración y fuente propias.

Proyecto: Desarrollar un software para el cálculo del área de un triángulo.


Enfoque del análisis de
Etapa preliminar del proyecto.
riesgos:
32
¿qué pasaría si…? Consecuencia / Riesgo Protecciones Recomendación
 Abrir una convocatoria
entre los programadores
de la empresa que
especifique que, para
Se debe asegurar que los
trabajar en este
desarrolladores de software
proyecto, se debe saber
Los programadores que El proyecto no cumplirá con saben programar en lenguaje
programar en lenguaje
desarrollarán el proyecto no las especificaciones del C, desde que se están
C.
son expertos en código C. cliente. haciendo las entrevistas de
 Hacer prueba de
trabajo para ingresar a la
conocimientos de empresa.
lenguaje C a los
programadores que se
hayan inscrito en la
convocatoria.
 Estimar de manera
objetiva y concienzuda
las estimaciones en
tiempos y costos del
El equipo de desarrollo y el
proyecto en base a
Project Manager perderán
proyectos similares que El equipo de desarrollo de
credibilidad respecto a su
El proyecto excede las 4 se hayan realizado en el este proyecto debe ser
profesionalismo y experiencia
semanas en que está pasado. elegido en base a su CV y en
con el cliente, lo que pone en
planeado y por ende excede  Argumentar nuestras base a su historial de
riesgo nuestro objetivo
el costo de $20,000.00. propuestas de la proyectos dentro de la
primordial de calidad que es:
planeación del proyecto empresa.
satisfacer las necesidades
y de su implementación
del cliente.
en base a los
conocimientos técnicos y
experiencia de nuestro
equipo de trabajo.
El software no cumple con Los fines del proyecto no se  Se debe poner principal El equipo de desarrollo de
las necesidades del cliente. cumplirán, se tendrán atención en las etapas este proyecto debe ser
pérdidas en cuestión de de Comunicación, elegido en base a su CV y en
tiempo, dinero y credibilidad Planificación y Gestión base a su historial de
33
de Riesgos.
 La etapa técnica de
Ingeniería (4), así como
la etapa técnica de
proyectos dentro de la
de nuestra empresa. Construcción y
empresa.
adaptación (5), deben
ser aseguradas en
cuestión de la calidad del
código programado.
(Blanco, 2021)
4) Ingeniería.
En esta etapa se desarrolla la codificación, pruebas y el despliegue del software (verificación del producto del siguiente nivel).
Con respecto a este método de desarrollo de software en espiral se considera que:
Tabla 2 Diseño del software para el cálculo del área de un triángulo. Elaboración y fuente: Propia.

No se necesitan de estructuras de datos, debido a la simplicidad del programa.


Lo más atinado es definir a las variables del programa como datos tipo float.
El programa no necesita bases de datos.
La interfaz del software será la consola de una aplicación simple en C, debido a que el cliente quiere un programa en
C.
base∗altura
El procedimiento para dar solución al cálculo de un triángulo es:
2
Con respecto al código, el desarrollador de software realiza lo siguiente:
#include <stdio.h>
main()
{
float base, altura, area;
printf("Programa en C para calcular el area de un triangulo \n");
printf("Introducir valor de la base \n");
34
scanf("%f",&base);
printf("Introducir valor de la altura \n");
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);
}

5) Construcción y Adaptación.
Respecto a la etapa de Construcción y Adaptación, las actividades a desarrollar son: realizar pruebas, la instalación y
mantenimiento al software, aunque, para ésta última actividad, se debe considerar que, el mantenimiento al código se dará una
vez que el proyecto esté maduro, ósea; una vez que haya sido evaluado por el cliente.
A continuación, se muestran evidencias del código y de las pruebas.

Código en lenguaje C Ejecución del código (Prueba)


35

Figura 18 Código en lenguaje C para la metodología espiral. Fuente: Figura 19 Ejecución del código para la metodología espiral. Fuente: Dev-
Dev-C++. Elaboración Propia. C++. Elaboración Propia.

6) Evaluación del cliente.


Una vez que se culminaron las 5 etapas anteriores, se procede a realizar la Evaluación del cliente a través de los medios de
comunicación previamente establecidos; entrevistas personales y llamadas telefónicas; a través de esto se pudo llegar a la
siguiente conclusión:
El cliente solicita que el programa muestre datos como; Nombre de la universidad, Nombre de la asignatura, Nombre del
alumno y matrícula, así como la Fecha de elaboración y el grupo. Por último, también solicita que el código tenga comentarios.
Es importante comentar que, durante la etapa 6, se debe incluir la identificación y el seguimiento de riesgos identificados en el
primer ciclo del espiral, tales como los retrasos en los plazos y los sobrecostes (Deloitte, 2023), quedando como siguen:
Tabla 3 “What if”: Análisis de riesgos del proyecto de “Desarrollo de software para el cálculo del área de un triángulo” en la etapa 6 del método de
desarrollo de software en espiral en relación al primer ciclo. Elaboración y fuente propias.

Proyecto: Desarrollar un software para el cálculo del área de un triángulo.


Enfoque del análisis Seguimiento al análisis de riesgos de la Etapa preliminar del proyecto; Finalización del primer Ciclo
de riesgos: del espiral de desarrollo del software.
Consecuencia / Seguimiento
¿qué pasaría si…? Protecciones Recomendación
Riesgo “Primer espiral”
36
 Abrir una
convocatoria entre
Durante el
los programadores
desarrollo de este
de la empresa que
Se debe asegurar que proyecto se
especifique que,
los desarrolladores de aseguró que el
para trabajar en este
Los programadores que software saben desarrollador de
El proyecto no cumplirá proyecto, se debe
desarrollarán el programar en software tiene
con las especificaciones saber programar en
proyecto no son lenguaje C, desde conocimientos
del cliente. lenguaje C.
expertos en código C. que se están expertos en
 Hacer prueba de
haciendo las lenguaje C.
conocimientos de entrevistas de trabajo.
lenguaje C a los Riesgo
programadores que controlado.
se hayan inscrito en
la convocatoria.
El proyecto excede las El equipo de desarrollo  Estimar de manera El equipo de Hasta el momento,
4 semanas en que está y el Project Manager objetiva y desarrollo de este el proyecto lleva 2
planeado y por ende perderán credibilidad concienzuda las proyecto debe ser semanas de
excede el costo de respecto a su estimaciones en elegido en base a su desarrollo, lo que
$20,000.00. profesionalismo y tiempos y costos del CV y en base a su evidencia que
experiencia con el proyecto en base a historial de proyectos tampoco hay
cliente, lo que pone en proyectos similares dentro de la empresa. sobrecostos, por lo
riesgo nuestro objetivo que se hayan tanto, las
primordial de calidad realizado en el protecciones y las
que es: satisfacer las pasado. recomendaciones
necesidades del cliente.  Argumentar nuestras están surgiendo
propuestas de la efectos positivos
planeación del hasta el momento.
proyecto y de su
implementación en Riesgo
base a los controlado.
conocimientos
técnicos y
experiencia de
nuestro equipo de
37
trabajo.
 Se debe poner
En la etapa de
principal atención en
evaluación del
las etapas de
primer espiral, se
Comunicación,
evidenció que el
Planificación y
software cumple
Gestión de Riesgos. El equipo de
Los fines del proyecto con lo requerido por
 La etapa técnica de desarrollo de este
no se cumplirán, se el cliente, a pesar
El software no cumple Ingeniería (4), así proyecto debe ser
tendrán pérdidas en de eso, el cliente
con las necesidades como la etapa elegido en base a su
cuestión de tiempo, solicitó nuevos
del cliente. técnica de CV y en base a su
dinero y credibilidad de requerimientos, los
Construcción y historial de proyectos
nuestra empresa. cuales comenzarán
adaptación (5), dentro de la empresa.
a ser trabajados de
deben ser manera inmediata.
aseguradas en
cuestión de la Riesgo
calidad del código controlado.
programado.
(Aguilar, 2013)
1) Comunicación.
Para el comienzo del nuevo ciclo del espiral, debió haber una evaluación previa del proyecto por parte del cliente, la cual fue
realizada a través de los medios de comunicación preliminarmente establecidos, en esta etapa del método de desarrollo de
software estudiado, se realizó la minuta pertinente, la cual resume que:
El cliente solicita que el programa muestre datos como; Nombre de la universidad, Nombre de la asignatura, Nombre del
alumno y matrícula, así como la Fecha de elaboración y el grupo. Por último, también solicita que el código tenga comentarios.
De esta manera, se cumple con la política de comunicación establecida desde el principio de este proyecto.

2) Planificación.
Respecto a la replanificación del proyecto en este nuevo ciclo del espiral, se establecen los nuevos puntos:
Tiempos:
38
Se estima que el proyecto culmine en 2 semanas adicionales a las 2 semanas en que se ha estado trabajando, cumpliendo así
con el tiempo estimado de 4 semanas. Cabe mencionar que, en estas dos semanas restantes, también se desarrollarán las
seis etapas del modelo de desarrollo en espiral.
Objetivo:
El objetivo que se replantea para este proyecto en el nuevo ciclo del espiral es:
Realizar una nueva versión del software previamente desarrollado para el cálculo del área de un triángulo con datos
específicos en el encabezado de la consola de la aplicación y, agregar comentarios al código del programa.
Restricciones:
Respecto a las restricciones, se redefinen las siguientes:
 La culminación del proyecto no debe exceder dos semanas.
 El costo no debe exceder los $20,000 pesos mensuales.

3) Análisis de riesgos.
En seguimiento al resultado de la evaluación de riesgos de la etapa del espiral previa a esta, se redefine el contenido de la
herramienta What if, quedando como sigue:
Tabla 4 “What if”: Análisis de riesgos del proyecto de “Desarrollo de software para el cálculo del área de un triángulo” para la segunda etapa del ciclo en
espiral. Elaboración y fuente propias.

Proyecto: Desarrollar un software para el cálculo del área de un triángulo.


Enfoque del análisis de
Inicio del Ciclo del espiral número 2 de desarrollo del software.
riesgos:
¿qué pasaría si…? Consecuencia / Riesgo Protecciones Recomendación
El proyecto excede las 2 El equipo de desarrollo y el  Dar seguimiento al  Cumplir con la política de
semanas adicionales a las 2 Project Manager perderán desarrollo del proyecto minutas, para formalizar
semanas trabajadas credibilidad respecto a su en este nuevo ciclo del los acuerdos entre el
previamente (4 semanas en profesionalismo y experiencia espiral a través de una cliente y el equipo de
total) y por ende excede el con el cliente, lo que pone en supervisión experta desarrollo.
costo de $20,000.00. riesgo nuestro objetivo constante.  Enfocarse en culminar el
primordial de calidad que es:  Estar en contacto con el código con los
satisfacer las necesidades cliente a través de los requerimientos
del cliente. medios de comunicación complementarios del
39
establecidos para
asegurar que se cumple cliente.
con sus requerimientos.

4) Ingeniería.
Para el segundo ciclo de desarrollo de software en espiral, nuevamente se desarrollará la codificación, las pruebas y el
despliegue del software pertinente.
Con respecto al análisis en este nuevo ciclo del método de desarrollo de software espiral se considera que:
 El programa debe tener los siguientes datos en el encabezado de la consola de la aplicación en C:
o Nombre de la universidad, nombre de la asignatura, nombre del alumno, matrícula, fecha de elaboración y
grupo.
 El código debe tener los comentarios pertinentes para ser más explícito.
En cuanto al diseño en este nuevo ciclo del método de desarrollo de software espiral, se considera que no habrá cambios
importantes, debido a que ya se cumplieron las funciones primordiales para las que fue creado, por lo tanto, sólo se
complementará el código como sigue:

#include <stdio.h>
main()
{
//Declaración de variables para la solución del problema.
float base, altura, area; //Valor de las variables para el cálculo del área del triángulo.

//Datos solicitados por el cliente en el código fuente.


printf("Universidad Abierta y a Distancia de Mexico\n");
printf("Asignatura: Introduccion a la Ingenieria de Software\n");
printf("Nombre: Dilan Jordi Carreto Angulo\n");
printf("Matricula: ES202118954\n");
40
printf("Fecha de elaboracion: 28/04/2023\n");
printf("Grupo: DS-DIIS-2301-B2-002\n\n");
printf("Programa en C para calcular el area de un triangulo \n");

printf("Introducir valor de la base \n");//Solicita Valor de la base


scanf("%f",&base);
printf("Introducir valor de la altura \n");//Solicita Valor de la altura
scanf("%f",&altura);
area=(base*altura)/2;
printf("El area del triangulo es: \n%f",area);//se calcula el área del triángulo.
}

5) Construcción y adaptación.
Respecto a la etapa de Construcción y adaptación del segundo ciclo en espiral, se vuelven a desarrollar pruebas e instalación
de igual forma, se muestran evidencias del código y del programa.

Código en lenguaje C Ejecución del código


41

Figura 20 Código en lenguaje C para la metodología incremental. Fuente: Figura 21 Ejecución del código para la metodología incremental. Fuente:
Dev-C++. Elaboración Propia. Dev-C++. Elaboración Propia.

6) Evaluación del cliente.


Una vez que se culminaron las 5 etapas anteriores del segundo ciclo del espiral, se procede a realizar la Evaluación del cliente
a través de los medios de comunicación previamente establecidos; entrevistas personales y llamadas telefónicas; gracias a
éstos medios, se pudo llegar a la siguiente conclusión:
El cliente ha quedado satisfecho.
El proyecto ha culminado, por lo tanto, los riesgos identificados en la etapa 3 de este segundo ciclo del espiral fueron
contralados; ya no es necesario dar seguimiento a nuevos riesgos.
Es importante mencionar que, a partir de este punto, se deberá dar mantenimiento al software, ya que el proyecto ya tiene
cierta madurez y, por ende, ya fue aprobado por el cliente.
Explica el código en lenguaje C del programa que soluciona el problema propuesto con el método de desarrollo de
software espiral.
De manera global, se puede decir que las bases de la explicación de los códigos en C para todas las metodologías
desarrolladas en este documento, fueron las mismas o bien, fueron muy similares. Es prudente aclarar que, se hizo de esta
manera por practicidad, pero sobre todo, porque de esa manera se atendieron las sugerencias que la profesora Claudia
42
Hernández González hizo en la videoconferencia del 20 de abril, sobre que debíamos enfocarnos en el desarrollo de la
metodología, no tanto en la parte técnica del código y, éste, por la naturaleza de los requerimientos solicitados en el
documento “Problema propuesto”, no requerirá muchos cambios, pues son los mismos requerimientos para todas las
metodologías.
Para el desarrollo del código en C:
 Se utilizó la librería #include <stdio.h>, la cual contiene las macros, las constantes y las declaraciones de
funciones que permiten hacer operaciones, así como definir los tipos de datos necesarios para hacer dichas
operaciones.
 Se definieron las variables base, altura, area como tipo float, ya que, por la naturaleza de las operaciones
necesarias para calcular el área de un triángulo, será necesario mostrar números decimales.
 Se usa la función “printf” para mostrar un mensaje en forma de texto en la pantalla de la consola del programa
utilizando una cadena de formato.
 Se usa la función scanf para leer las variables desde el teclado.
o Se usa el caracter % como elemento de la cadena de control donde se incluyen grupos individuales de
caracteres.
o Se usa “f” como carácter de conversión que indica que el tipo del dato es flotante.
 Se define la variable “area” con la siguiente operación: “(base*altura)/2”; ósea, la fórmula para medir el área de un
triángulo.
 \n representan un salto de línea en el texto que se ha de imprimir en pantalla.
(Rivera, 2014)
(Gallego, 2015)
(Pozos Nieto, 2016)
(Universidad de Granada, s.f.)
(Tutorials Point, s.f.)
43

CONCLUSIONES

“Una metodología de desarrollo de software es el conjunto de técnicas y métodos


que se utilizan para diseñar una solución de software. Es importante señalar que
existen varias, de manera que, la metodología a implementar es decisión del
equipo de desarrollo. Al trabajar con una metodología se podrá controlar el
desarrollo de trabajo y así, anticipar los márgenes de errores y adelantarse a
ciertas situaciones, ahorrando tiempo y gestionando de la mejor manera posible
los recursos disponibles”. (Instituto Tecnológico Universitario Quito Metropolitano,
2022)

A manera de conclusión, me permito comentar que, la presente actividad me


permitió Comparar las características de los métodos de desarrollo de software,
considero que éste es el objetivo primordial de este ejercicio universitario y que,
pude alcanzarlo con respecto a lo planteado en la Planeación Didáctica conforme
a lo visto en el Material de Estudio de la Unidad 1 de la asignatura: Introducción a
la ingeniería de software.

Como observación personal, me atrevo a admitir que esta actividad se me


complicó mucho, no tanto por la exigencia técnica de escribir el código, sino
porque tuve que analizar de manera concienzuda cada una de las metodologías
de desarrollo de software, imaginarme cómo sería su implementación, identificar
sus sutiles pero marcadas diferencias y, desglosar una a una, la metodología. Si
bien es cierto que no hubo mucha variación en la escritura del código, si lo hubo
en la perspectiva que cada metodología exige y que, en mi opinión, ninguna es
mejor que la otra, sólo tienen características distintas para satisfacer necesidades
distintas en contextos de proyectos que varían unos de los otros. Por último,
considero que, el análisis de riesgos de la metodología en espiral es un recurso
que formaliza y añade valor a la gestión del desarrollo de software y que, sin duda
alguna, debe ser aplicado en cualquier proyecto, no por nada, en la ISO
9001:2015, la gestión del riesgo es parte primordial de la gestión de calidad y, en
general, es el “secreto para el éxito empresarial”. (Instituto Tecnológico
Universitario Quito Metropolitano, 2023)
44

REFERENCIAS BIBLIOGRÁFICAS

Aguilar, A. (10 de septiembre de 2013). prezi.com - CONTROL DE RIESGO Y


RIESGO CONTROLADO. Obtenido de prezi.com:
https://prezi.com/orrsytvifjgv/control-de-riesgo-y-riesgo-controlado/
Blanco, R. (28 de agosto de 2021). www.youtube.com - HERRAMIENTA ¿QUE
PASA SI? / WHAT IF? Obtenido de www.youtube.com:
https://www.youtube.com/watch?v=RiKngL8YriY
Deloitte. (2023). www2.deloitte.com - ¿Qué es el desarrollo en Espiral? Obtenido
de www2.deloitte.com:
https://www2.deloitte.com/es/es/pages/technology/articles/que-es-el-
desarrollo-en-espiral.html
Gallego, V. (9 de diciembre de 2015). www.youtube.com. Obtenido de Como usar
la Ñ y acentos c++: https://www.youtube.com/watch?v=aW7c7r9ErCg
Instituto Tecnológico Universitario Quito Metropolitano. (12 de diciembre de 2022).
itsqmet.edu.ec - Los 8 tipos de metodología de desarrollo de software.
Obtenido de itsqmet.edu.ec: https://itsqmet.edu.ec/los-8-tipos-de-
metodologia-de-desarrollo-de-software/
Instituto Tecnológico Universitario Quito Metropolitano. (31 de mayo de 2023).
itsqmet.edu.ec - Gestión de Riesgos: El Secreto para el Éxito Empresarial.
Obtenido de itsqmet.edu.ec: https://itsqmet.edu.ec/gestion-de-riesgos-el-
secreto-para-el-exito-empresarial/
Ortiz , M. (septiembre de 2012). Modelo Iterativo. Obtenido de Ingeniería de
Software - Modelos de Desarrollo de Software: http://isw-
udistrital.blogspot.com/2012/09/ingenieria-de-software-continuacion.html
Ortiz, M. (septiembre de 2012). isw-udistrital.blogspot.com. Obtenido de Modelo
Iterativo: http://isw-udistrital.blogspot.com/2012/09/ingenieria-de-software-
i.html
Pirami. (2023). www.piranirisk.com - 14 métodos y herramientas para gestionar el
riesgo. Obtenido de www.piranirisk.com:
https://www.piranirisk.com/es/academia/especiales/14-metodos-y-
herramientas-para-gestionar-el-ri
Pozos Nieto, A. M. (2016). gist.github.com. Obtenido de acentos.c:
https://gist.github.com/andreandyp/341274d5597e683559ae9d1b4aa661aa
Proyectos Ágiles. (s.f.). proyectosagiles.org. Obtenido de Desarrollo iterativo e
incremental: https://proyectosagiles.org/desarrollo-iterativo-incremental/
Rivera, S. (25 de septiembre de 2014). www.youtube.com. Obtenido de como
calcular el area de un triangulo en lenguaje c:
https://www.youtube.com/watch?v=bP7nnpJKIX0
45
Tutorials Point. (s.f.). www.tutorialspoint.com. Obtenido de Biblioteca C -
<locale.h>: https://www.tutorialspoint.com/c_standard_library/locale_h.htm
UNADM. (2023). Programa de la asignatura. Introducción a la ingeniería de
software. Unidad 1. Ingeniería de software. CDMX: UNADM.
Universidad Carlemany. (5 de abril de 2021). Metodologías de desarrollo de
software. Obtenido de www.universitatcarlemany.com:
https://www.universitatcarlemany.com/actualidad/blog/metodologias-de-
desarrollo-de-software/
Universidad de Granada. (s.f.). ccia.ugr.es. Obtenido de Tema 9 Librerías
Estándar. Teoría: Localización <locale.h>:
https://ccia.ugr.es/~jfv/ed1/c++/cdrom3/TIC-CD/web/tema9/teoria_6_1.htm

También podría gustarte