Está en la página 1de 3

Título delNo.

Proyecto
No. grupo del curso: {No. grupo del curso} y
de Equipo de Trabajo: {Número Equipo de trabajo}
1

Primer Autor, Segundo Autor, Tercer Autor

E
Descripción breve de la funcionalidad.

introducción n esta sección se describe de manera general
● Acciones iniciadoras y comportamiento esperado:
en qué consiste este documento y su contenido. Secuencia de acciones del usuario y respuestas esperadas del
programa para esta funcionalidad.
I. DESCRIPCIÓN DEL PROBLEMA A RESOLVER

Requerimientos funcionales:
En esta sección se debe describir de manera general el
problema que se propuso resolver en el proyecto de clase. Se Lista detallada de los requerimientos funcionales asociados a
debe especificar el propósito u objetivo general. esta funcionalidad.

II. USUARIOS DEL PRODUCTO DE SOFTWARE Para cada requerimiento funcional se debe establecer cómo
debe mostrarse el software y cuáles comportamientos debe
En esta sección se deben mencionar las características y
desempeñar para que el usuario pueda realizar la función que
clasificación de los usuarios (perfiles/roles) que utilizarán el
necesita.
producto. La clasificación puede ser en función de la
frecuencia de uso, grupo de funcionalidades utilizadas,
Es recomendable prever y describir cómo debe responder el
privilegios de acceso y seguridad, nivel de experiencia u otros
software ante condiciones de error y entradas de datos
parámetros.
inválidas.
III. REQUERIMIENTOS FUNCIONALES DEL SOFTWARE Las funcionalidades mínimas sobre los datos que se manejen
deben prever operaciones de:
Los requerimientos funcionales de un sistema son aquellos ● Creación
que describen cualquier actividad que este deba realizar, en ● Actualización
otras palabras, el comportamiento o función particular de un ● Eliminación
sistema o software cuando se cumplen ciertas condiciones. ● Consulta total de los datos
● Búsqueda parcial de datos
Entre los posibles requerimientos funcionales de un sistema se ● Ordenamiento, y
incluyen: ● Almacenamiento

● Descripciones de los datos a ser ingresados en el Aunque en otros cursos se estudian estrategias de organización
sistema. y almacenamiento, en este curso, el almacenamiento se
● Descripciones de las operaciones a ser realizadas en requiere principalmente para facilitar las pruebas del prototipo
cada pantalla que se presenta. de software. También, para facilitar su implementación, se
● Descripción de los flujos de trabajo realizados por el deja abierta la opción a que se apoyen en el uso de sistemas
sistema. manejadores de bases de datos, se haga almacenamiento por
● Descripción de los reportes del sistema y otras salidas. archivos, de objetos u otra estrategia que les convenga,
● Definición de quiénes pueden ingresar datos en el siempre que se garantice la implementación y uso de las
sistema. estructuras de datos vistas en clase, en memoria dinámica
durante la ejecución del software.
De esta manera, se deben describir las interacciones que
tendrán los usuarios con el software. IMPORTANTE: En cada una de las entregas para reportar el
avance en el desarrollo del proyecto, se especificarán las
Cada funcionalidad se debe especificar así: funcionalidades mínimas y las estructuras de datos mínimas
requeridas que se deben implementar. También, se debe
● Nombre de la funcionalidad presentar un análisis (especialmente comparativo) breve de la
eficiencia de las estructuras de datos usadas.
En el título de la funcionalidad, se recomienda utilizar
nombres muy descriptivos para cada funcionalidad. No NOTA: En el siguiente enlace web (URL) puede encontrar
limitarse a nombrarlas “Funcionalidad 1”, en cambio, usar por una explicación de cómo diferenciar Requisitos Funcionales
ejemplo: “Autorización de pedido de compra”. de los No Funcionales
https://reqtest.com/requirements-blog/functional-vs-non-
functional-requirements/
● Descripción:

2

IV. AVANCE EN LA IMPLEMENTACIÓN DE LA INTERFAZ DE VII. DISEÑO, MPLEMENTACIÓN Y APLICACIÓN DE LAS


USUARIO ESTRUCTURAS DE DATOS

Se debe incluir una descripción general de la interfaz de


usuario del software y el avance en su implementación. Si se En este prototipo se deben implementar por lo menos una (1)
propone el desarrollo de una interfaz de usuario gráfica, se instancia de las estructuras de datos tipo: Lista encadenada
espera que se usen mockups (bosquejos, fotomontajes o (en alguna de sus diferentes versiones), pila, cola, cola de
figuras) que le permitan al futuro usuario visualizar cómo prioridad, y los árboles estudiados en la clase. Se debe
quedarán los diseños. implementar por lo menos una instancia de un árbol AVL,
además, se anima a usar otros de los tipos de árboles vistos
NOTA: Existen múltiples herramientas que ayudan en este en clase para implementar algunas de las funcionalidades
tipo de tareas. Por ejemplo, podrán encontrar una herramienta del software.
útil para esta labor en: https://balsamiq.com/
Para el uso de la estructura de datos pila, se requiere que el
V. ENTORNOS DE DESARROLLO Y DE OPERACIÓN prototipo de software implemente la opción de hacer y
En esta sección se debe describir el entorno en el que se deshacer algunas de las funcionalidades implementadas.
desarrollará el software, así como el entorno en el que operará También, a través del uso de la estructura de datos pila, el
el software, específicamente el sistema operativo y el prototipo implementado debe proveer una funcionalidad que
hardware sobre el que operará el software. permita a través de la interfaz de usuario establecida,
“navegar” hacia adelante y hacia atrás por algunas de las
También, se deben mencionar las herramientas de software funcionalidades. Por ejemplo, al estilo de la navegación que se
usadas, especificando como se usan en la implementación del hace en un navegador Web o en un explorador de archivos en
prototipo de software. un sistema operativo.

VI. DESCRIPCIÓN DEL PROTOTIPO DE SOFTWARE Además, para las listas encadenadas y árboles que se
implementen, se deben soportar por lo menos las siguientes
Para esta entrega de avance en el desarrollo del proyecto, se operaciones funcionales:
debe realizar una segunda versión funcional de un prototipo de ● Creación
software, de acuerdo con los requisitos que se explican a ● Inserción de un solo dato
continuación. ● Actualización de un solo dato
● Eliminación de un solo dato
Primero, el software desarrollado se debe registrar en un ● Búsqueda de un solo dato
repositorio de software Github. Para facilitar el uso de esta ● Consulta de todos los datos
plataforma, se sugiere estudiar el tutorial disponible en ● Almacenamiento de los datos

https://www.atlassian.com/git/tutorials/learn-git-with- Se debe realizar una descripción del diseño orientado por


bitbucket-cloud objetos, especificando las clases y como estas son usadas para
resolver el problema. También, para cada una de las diferentes
Se debe organizar el software en el repositorio de una manera estructuras de datos implementadas se debe describir
estructurada como se ilustra en la siguiente figura: brevemente el tipo de implementación realizada y su
contribución para llevar a cabo las funcionalidades del
prototipo de software.

VIII. PRUEBAS DEL PROTOTIPO DE SOFTWARE

Se deben realizar y documentar las pruebas del prototipo para


algunos ejemplos (casos) de prueba para las funcionalidades
que tomen más tiempo así:

- Escoger entre tres y cinco funcionalidades que sean


Además, para mantener una versión gráfica de desarrollo del las de mayor costo computacional en tiempo;
repositorio, se podrán apoyar en el uso de herramientas como - Para cada funcionalidad se deben realizar pruebas
Sourcetree, disponible en el siguiente URL: para varios tamaños de datos de prueba (n), por lo
https://www.sourcetreeapp.com/ menos para los siguientes tamaños:

- 10 mil datos,
- 100 mil datos,
- 1 millón de datos,
- 10 millones de datos, y
- 100 millones de datos,
3

facilitador para el acceso a los


- Hacer una tabla y realizar gráficos comparativos de recursos.
Experto(a) Líder técnico que propende por coordinar las
los tiempos que toma realizar las funcionalidades
funciones y actividades operativas.
consideradas para los diferentes tamaños de los datos Investigador(a) Consultar otras fuentes. Propender por
de prueba. Específicamente, se debe elaborar una resolver inquietudes comunes para
tabla que permita observar la comparación de las todo el equipo.
funcionalidades del prototipo considerando las Observador(a) Siempre está atento en el desarrollo
estructuras de datos implementadas y los tiempos que del proyecto y aporta en el momento
tomó realizar las operaciones para las diferentes apropiado cuando se requiera apoyo
adicional por parte del equipo.
cantidades de datos usados en las pruebas. Así
Animador(a) Energía positiva, motivador en el
mismo, realice un análisis de la complejidad con grupo.
respecto a los resultados y tiempos obtenidos. Secretario(a) Se convierte en un facilitador de la
- Puede usar la Tabla 1 como referencia comunicación en el grupo. Documenta
para documentar este análisis. Podrá modificarla y, (actas) de los acuerdos/compromisos
de ser necesario, usar alguna hoja de cálculo como realizados en las reuniones del equipo.
Excel para facilitar su elaboración. Técnico(a) Aporta técnicamente en el desarrollo
del proyecto.

Tabla 1. Tabla comparativa de las pruebas realizadas.


Puede utilizar la siguiente tabla para definir los integrantes del
grupo, los roles asignados y el listado de actividades durante el
Nombre de la Tipo(s) de Cantidad Análisis Tiempos
funcionalidad estructura de datos realizado de
desarrollo de la entrega:
de datos probados (Notación Big ejecución
O) INTEGRANTE ROL(ES) ACTIVIDADES
REALIZADAS
(Listado)
Se enfatiza que, además de las tablas comparativas, se
deben presentar gráficas que ilustren el análisis de
complejidad realizado. Entones, determine y grafique el
correspondiente análisis asintótico comparativo entre las
estructuras implementadas y su respectiva complejidad,
de acuerdo con las pruebas realizadas. Para esto debe
usar, por lo menos, la notación O grande (Big O).

IX. ACCESO AL REPOSITORIO DE SOFTWARE


Aquí se debe incluir el enlace web (URL) para acceder al
código fuente y documentación complementaria en el
repositorio de software Github. XII. DIFICULTADES Y LECCIONES APRENDIDAS
Mencione las dificultades encontradas durante el desarrollo
X. ACCESO AL VIDEO DEMOSTRATIVO DE SOFTWARE del proyecto. Además, haga alusión a las principales lecciones
Aquí se debe incluir el enlace web (URL) para acceder al aprendidas durante el proceso.
video demostrativo del prototipo de software.
XIII. REFERENCIAS BIBLIOGRÁFICAS
XI. ROLES Y ACTIVIDADES [1] Weiss, M.A.: Data Structures and Algorithm Analysis in C++, 4th
Edition, Pearson/Addison Wesley, 2014.
Se deben describir de manera concisa los roles asignados y las [2] Hernández, Z.J. y otros: Fundamentos de Estructuras de Datos.
respectivas actividades realizadas por cada uno los integrantes Soluciones en Ada, Java y C++, Thomson, 2005.
del equipo durante el desarrollo de esta entrega. Para esto, [3] Shaffer, Clifford A.: Data Structures and Algorithm Analysis in C++,
Third Edition, Dover Publications, 2013. (En línea.)
tenga en cuenta los siguientes roles positivos, que puede [4] Campos Laclaustra, J.: Apuntes de Estructuras de Datos y Algoritmos,
aplicar durante el desarrollo del proyecto; los mismos deberán segunda edición, 2018. (En línea
ser ‘rotados’ entre todos los integrantes del equipo en las
diferentes entregas.

ROL Actividades fundamentales

Líder(esa) Consultar a los otros miembros del


equipo, atento que la información sea
constante para todos. Aportar con la
organización y plan de trabajo.
Coordinador(a) Mantener el contacto entre todos;
Programar y agendar y reuniones; ser

También podría gustarte