Está en la página 1de 29

PROGRAMACIÓN DE COMPUTADORES

FACULTAD DE INGENIERÍA DE SISTEMAS

PROYECTO DE LA ASIGNATURA

1
Contenido
ACTIVIDADES PRELIMINARES ...........................................................................................................................................................4
CONTEXTO .........................................................................................................................................................................................4
LA ESPECIFICACIÓN DE UN PROBLEMA: .....................................................................................................................4
EXPERIENCIA......................................................................................................................................................................................4
ACCIÓN ..............................................................................................................................................................................................5
EVALUACIÓN .....................................................................................................................................................................................6
1. WORKFLOW DE REQUERIMIENTOS ........................................................................................................................................ 12
2. WORKFLOW DE ANÁLISIS Y DISEÑO ....................................................................................................................................... 15
3. WORKFLOW DE IMPLEMENTACIÓN: ...................................................................................................................................... 20
4. WORKFLOW DE PRUEBAS (TESTING): .................................................................................................................................... 25
5. DOCUMENTACIÓN.................................................................................................................................................................. 27
BIBLIOGRAFÍA ................................................................................................................................................................................. 29

2
BITÁCORA
Entrega

Fecha Objetivo Observaciones Responsables

WORKFLOW DE REQUERIMIENTOS
Ejercicios hasta el literal
1 02/03/2017 “p” (pág. 10) (escanear “Sin portada no hay nota”
respuestas) “La elaboración se efectúa a mano”.

WORKFLOW DE ANALISIS Y DISEÑO


“Sin portada con los responsables no hay nota
2 Hasta el numeral 2.5.
23/03/2017 en cualquier entrega”

WORKFLOW DE IMPLEMENTACIÓN
3 04/05/2017 3.2.
Versión 1 del código fuente

4 20/05/2017 4.2. //Adjuntar comentarios con los cambios


efectuados en el código fuente
WORKFLOW DE PRUEBAS
5 27/05/2017 5.2.
Documentos entregables del proyecto

METODOLOGÍA: PROCESO UNIFICADO ( RATIONAL DE IBM ) - R.U.P.


http://creately.com/Draw-UML-and-Class-Diagrams-Online

3
ACTIVIDADES PRELIMINARES

CONTEXTO

LA ESPECIFICACIÓN DE UN PROBLEMA:

a. Resuma el ciclo de vida de construcción de un programa.


b. Explique los aspectos que hacen parte del análisis de un problema.
c. Explique las etapas del proceso de solución de problemas.
d. ¿Cuáles son los elementos que se deben entregar a un cliente?

EXPERIENCIA

e. Elabore la Tarea No. 1 (pág. 5 del texto guía), con el objetivo de identificar los aspectos que forma parte de un
problema.
f. Elabore la Tarea No. 2 (pág. 13), con el objetivo de identificar los requerimientos funcionales de un problema.
g. Elabore la Tarea No. 3 (pág. 14), con el objetivo de identificar los requerimientos funcionales de un problema.
h. Elabore la Tarea No. 4 (pág. 17), con el objetivo de identificar las entidades del mundo del problema.
i. Elabore la Tarea No. 5 (pág. 20), con el objetivo de identificar las entidades de un caso de estudio.
j. Elabore la Tarea No. 6 (pág. 23), con el objetivo de reflexionar sobre el nivel de precisión de un algoritmo.

RUBBY CASALLAS GUTIERREZ, JORGE ALBERTO VILLALOBOS SALCEDO, "Fundamentos de Programación: Aprendizaje Activo
Basado en Casos" En: México 2006. Ed:Pearson Education ISBN: 970-26-0846-5

4
ACCIÓN

TRABAJO PRELIMINAR: CASO DE ESTUDIO

Para los ejercicios con los literales ‘k’ a ‘m’:

 Dirígete al portal: https://cupi2.virtual.uniandes.edu.co/nivel-1/ejemplos-n1


 Selecciona uno de los ejemplos propuestos:
 El empleado, El Triángulo (impar)
 Simulador Bancario, Elecciones (par)
 Ingresa a la opción ‘Ir al ejemplo’ del caso que decidan estudiar:

k. Estudia los siguientes aspectos del ejemplo seleccionado: Enunciado, Requerimientos funcionales (casos de uso) y el
Modelo (clases del proyecto). A continuación, redacta el enunciado del problema y el nombre cada uno de los
requerimientos funcionales del proyecto.
l. Dibuja el respectivo diagrama de casos de uso del ejemplo elegido (consulta “requerimientos funcionales” en ‘Archivo’).
m. Observa nuevamente el modelo conceptual del caso y escribe el nombre de cada una las clases identificando sus
respectivas variables (atributos) y funciones:

5
EVALUACIÓN

Para los ejercicios con los literales ‘n’ y ‘o’, selecciona solo un tema en clase (A-D), procede a:

n. Validar el diagrama de casos de uso propuesto, dibujando una mejor propuesta si así lo estiman.
o. Elabora el diagrama de clases correspondiente al diagrama de casos propuesto en el punto anterior.

TEMA A:

6
TEMA B:

7
TEMA C:

8
TEMA D:

9
p. Debes plantear 2 ideas de proyecto (problemas solubles y algorítmicos):

Idea 1:

Nombre

Resumen
Requerimiento
Entradas
funcional 1
Resultado

Nombre

Resumen
Requerimiento
Entradas
funcional 2
Resultado

Nombre

Resumen
Requerimiento
Entradas
funcional 3
Resultado

Nombre

Resumen
Requerimiento
Entradas
funcional 4
Resultado

10
Idea 2:

Nombre

Resumen
Requerimiento
Entradas
funcional 1
Resultado

Nombre

Resumen
Requerimiento
Entradas
funcional 2
Resultado

Nombre

Resumen
Requerimiento
Entradas
funcional 3
Resultado

Nombre

Resumen
Requerimiento
Entradas
funcional 4
Resultado

11
1. WORKFLOW DE REQUERIMIENTOS

Lenguaje Natural

12
1.1. Describa y justifique el problema, indicando porque se trata de un problema soluble (referencia pág. 5):

Problema:

Cliente

Usuario

R1:

R2:

Requerimiento
funcional R3:

R4:

Mundo del
problema

Requerimiento no
funcional

13
1.2. Señale mínimo 4 requerimientos funcionales indicando el tipo de dato que existen en el lenguaje de implementación
para las variables que serán utilizadas en las entradas y salidas del requerimiento (Pág. 11-12):

Nombre

Resumen
REQUERIMIENTO
FUNCIONAL 1
Entradas

Salidas

Nombre

Resumen
REQUERIMIENTO
FUNCIONAL 2
Entradas

Salidas

Nombre

Resumen
REQUERIMIENTO
FUNCIONAL 3
Entradas

Salidas

Nombre

Resumen
REQUERIMIENTO
FUNCIONAL 4
Entradas

Salidas

14
2. WORKFLOW DE ANÁLISIS Y DISEÑO

ANALISIS DE ATRIBUTOS:

2.1. Identifique las entidades del mundo problema, mínimo 3 (Pág. 16)

ENTIDADES NOMBRE DESCRIPCIÓN

1 Ejemplo: CARRO Contiene los atributos necesarios de cualquier vehículo


que circula en el territorio nacional para liquidar el
impuesto de vehículo.

Ejemplo: Cilindraje, placa, modelo


2 Ejemplo: CASA Contiene los atributos necesarios de cualquier vehículo
que circula en el territorio nacional para liquidar el
impuesto predial.

Ejemplo: Dirección, Área, Avaluó


3

2.2. Señale las características de las entidades descritas:


Ejemplo:
CARRO VALORES TIPO DE DATO (C++) Y EXPLICACIÓN
POSIBLES
Modelo 1890 - 2016 int modelo;
//indica el año de lanzamiento al mercado del vehículo
Avalúo 0– unsigned long avalúo;
comercial 4,294,967,295 //valor comercial estimado en moneda corriente

Cilindraje 0 - 65535 unsigned int cilindraje;


//valor del cilindraje

<<Escribe el VALORES TIPO DE DATO (C++) Y EXPLICACIÓN


nombre de la POSIBLES
Entidad>>
<<Escribe el
nombre del
atributo1>>

<<Atributo2>>

<<Atributo3>>

15
<<Nombre de VALORES TIPO DE DATO (C++) Y EXPLICACIÓN
la Entidad>> POSIBLES
<<Atributo1>>

<<Atributo2>>

<<Atributo3>>

<<Nombre de VALORES TIPO DE DATO (C++) Y EXPLICACIÓN


la Entidad>> POSIBLES
<<Atributo1>>

<<Atributo2>>

<<Atributo3>>

<<Nombre de VALORES TIPO DE DATO (C++) Y EXPLICACIÓN


la Entidad>> POSIBLES
<<Atributo1>>

<<Atributo2>>

<<Atributo3>>

16
2.3. Establezca las relaciones entre las entidades de forma lógica, en un esquema gráfico, estableciendo las entidades y las
relaciones (Diagrama E/R, se adjunta ejemplo) (Pág. 21-22):

Por favor utilizar solo uno de los siguientes recursos en línea

 http://creately.com/Draw-UML-and-Class-Diagrams-Online (Entity Relationship UML)


 https://www.gliffy.com/uses/uml-software/
 https://cacoo.com/signin

17
DISEÑO:
2.4. Diagrama de casos de uso:

Por ejemplo: http://creately.com/Draw-UML-and-Class-Diagrams-Online (Use Case Diagram)

DIAGRAMA DE CASOS DE USO: SISTEMA DE ALQUILER DE VEHÍCULOS

Realizar Registro Registrar Contrato


Usuario Empleado <<extend>>

<<include>>
Realizar Reserva Verificar Codigo Reserva

<<include>>
Cliente

Consultar Reserva Validar Acceso


<<include>>

Cancelar Reserva

Registrar Información Consultar Datos


Gerente
Administrador

Mantener Información

18
2.5. Diagrama de clases (estructuras) en notación UML:

Por ejemplo: http://creately.com/Draw-UML-and-Class-Diagrams-Online (Class diagram UML)

19
3. WORKFLOW DE IMPLEMENTACIÓN:

3.1. Declaración de las funciones (Pág. 34-39)

Nombre: void ejemplo ()


{
Parámetros:

Retorno:

Descripción:

(Ejemplo)
Nombre: trabajo1
Parámetros: el modelo del vehículo void servicios (int mod)
{
Retorno: mensaje indicando el if(mod<2010)
valor del servicio.
cout<<"S1. Alineación modelo anterior a 2010: $80.000"<<endl;
else
cout<<"S1. Alineación modelo posterior a 2010: $150.000"<<endl;
Descripción: método de la clase }
servicios, encargado de indicar la
usuario el valor del servicio
dependiendo del modelo del
vehículo.

Nombre:

Parámetros:

Retorno:

Descripción:

20
Nombre:

Parámetros:

Retorno:

Descripción:

Nombre:

Parámetros:

Retorno:

Descripción:

Nombre:

Parámetros:

Retorno:

Descripción:

21
3.2. Código Fuente:

/* Integrantes del proyecto:


-
-
-
Enunciado del problema:
*/

struct complejo
{
float real;
float imaginaria;
};

complejo suma (complejo a, complejo b)


{
// retorna la suma del número complejo a y el complejo b
complejo c;

c.real = a.real + b.real;


c.imaginaria = a.imaginaria + b.imaginaria;
return c;
}

complejo resta (complejo a, complejo b)


{
// retorna la diferencia del número complejo a y el complejo b
complejo c;

c.real = a.real - b.real;


c.imaginaria = a.imaginaria - b.imaginaria;
return c;
}

complejo multiplicacion(complejo a, complejo b)


{
// retorna el producto del número complejo a y el complejo b
complejo c;

c.real = a.real * b.real - a.imaginaria * b.imaginaria;


c.imaginaria = a.real * b.imaginaria + a.imaginaria * b.real;
return c;
}

complejo cociente (complejo a, complejo b)


{
// retorna el cociente del número complejo a y el complejo b
complejo c;

float r = b.real * b.real + b.imaginaria * b.imaginaria;


c.real = (a.real * b.real + a.imaginaria * b.imaginaria) / r;
c.imaginaria =(-a.real * b.imaginaria + a.imaginaria * b.real) / r;
return c;
}

22
void leer_complejo( complejo &a)
{
cout << " dame parte real: ";
cin >> a.real;
cout << " dame parte imaginaria: ";
cin >> a.imaginaria;
}

void escribir_complejo( complejo &a)


{
cout << " parte real: " << a.real;
cout << " parte imaginaria: " << a.imaginaria << endl;
}

int elige_opcion_entre(int x, int y)


{ // Elige y retorna un número natural comprendido entre x e y
int i;
do
{
cout << "elige opcion :";
cin >> i;
} while ( (i < x) || ( i > y));
return i;
}

void menu()
{
complejo a, b, c;
int i;
do
{
cout << " 0 = leer complejo \n";
cout << " 1= sumar complejos \n";
cout << " 2= restar complejos \n";
cout << " 3= multiplicar complejos \n";
cout << " 4= dividir complejos \n";
cout << " 5= fin \n";
i = elige_opcion_entre(0, 5);
switch (i)
{
case 0: leer_complejo(a);
leer_complejo(b);
break;
case 1: c = suma(a, b);
escribir_complejo(c);
break;
case 2: c = resta(a,b);
escribir_complejo(c);
break;
case 3: c = multiplicacion(a,b );
escribir_complejo(c);
break;
case 4: c = cociente(a, b);
escribir_complejo(c);
break;
default:;
}
}
while (i < 5);
}

23
int main(int argc, char *argv[])
{
menu();
system("PAUSE");
return EXIT_SUCCESS;
}

24
4. WORKFLOW DE PRUEBAS (TESTING):

4.1. Seleccione dos atributos que sea solicitado al usuario de alguna de las estructuras del proyecto e ingrese un valor por
fuera del rango establecido en el numeral 3.2., proceda a efectuar una captura con el resultado:

1:

2:

25
4.2. Realice una captura de dos casos de uso implementados en ejecución:

1:

2:

26
5. DOCUMENTACIÓN

5.1. Documenta un manual de usuario:

i. Página de portada.
ii. Una página de título.
iii. Llenar el formato F277-Dirección Nacional de Derechos de Autor.pdf
Solicitud inscripción soporte lógico (software)
iv. Un prefacio, que contiene detalles de los documentos relacionados y la información sobre cómo navegar por la
guía del usuario.
v. Una sección de introducción, que incluye:
a. Una breve descripción del sistema y su finalidad.
b. Una sección de novedades desde la última versión. (Anexar la bitácora con sus respectivas
observaciones)
vi. Una sección de requisitos previos necesarios para usar el sistema, que incluye:
a. Conocimientos mínimos del usuario
b. Requisitos técnicos previos, incluyendo:
i. Capacidades técnicas mínimas del equipo
ii. Software asociado necesario
c. Mecanismo para acceder al sistema
vii. Una sección de instalación y configuración (si aplica)
viii. Una guía sobre cómo utilizar al menos las principales funciones del sistema, es decir, sus funciones básicas
(requerimientos funcionales)
ix. Una sección de preguntas frecuentes. (FAQ)
x. Una sección de documentación técnica con el diseño de software
a. Diagrama entidad relación,
b. Diagrama de casos de uso,
c. Diagrama de clases.
xi. Datos de contacto de los autores.

27
5.2. Entrega el programa con la última versión generada. Verifica que durante la ejecución lo primero que se presente sea
los nombres de los autores del programa, tal como la portada de un documento. (Utiliza la instrucción system("cls"); ).

28
BIBLIOGRAFÍA

Ingresa a la Universidad Virtual:

Seleccione Pearson:

- Autor: Villalobos

29

También podría gustarte