0% encontró este documento útil (0 votos)
76 vistas5 páginas

Requisitos Funcionales y Programación Modular

Este documento describe los requisitos funcionales y la programación modular. Explica que los requisitos funcionales determinan cómo funcionará el sistema y sus restricciones. También define la programación modular como dividir un problema complejo en subproblemas más pequeños para resolverlo. Finalmente, detalla el proceso de modularización que incluye abstraer el problema general y dividirlo en módulos más simples.

Cargado por

roberto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
76 vistas5 páginas

Requisitos Funcionales y Programación Modular

Este documento describe los requisitos funcionales y la programación modular. Explica que los requisitos funcionales determinan cómo funcionará el sistema y sus restricciones. También define la programación modular como dividir un problema complejo en subproblemas más pequeños para resolverlo. Finalmente, detalla el proceso de modularización que incluye abstraer el problema general y dividirlo en módulos más simples.

Cargado por

roberto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

PROGRAMACIÓN I (CC47)

Ciclo 2022-01

Requisitos funcionales y Programación modular

REQUISITOS FUNCIONALES

A la hora de construir una aplicación software es fundamental que los desarrolladores


conozcan de forma precisa el problema que van a resolver, de tal manera que la solución que
se desarrolle sea correcta y útil. Por tal motivo la correcta obtención de los requisitos del
sistema es uno de los aspectos clave en la construcción de proyectos de software.

Los requisitos determinan lo que hará el sistema (cómo funcionará), restricciones sobre su
operación e implementación.

Concepto de requisito
(a) Una condición o capacidad que un usuario necesita para resolver un problema o lograr un
objetivo.
(b) Una condición o capacidad que debe tener un sistema o un componente de un sistema
para satisfacer un contrato, una norma, una especificación u otro documento formal.
(c) Una representación en forma de documento de una condición o capacidad como las
expresadas en (a) o en (b).

¿Qué describe un requisito?


 Una utilidad para el usuario.
“El tratamiento de textos ha de incluir la comprobación y corrección gramatical”
 Una propiedad general del sistema.
“El sistema ha de garantizar que la información personal solamente será accesible
mediante autorización explícita”
 Una restricción general del sistema.
“El sensor ha de muestrearse 10 veces por segundo”
 Cómo llevar a cabo cierto cálculo.
“Calificación final = nota examen + 2*nota trabajo + 2/3 nota ejercicios”
 Una restricción sobre el desarrollo del sistema.
“El sistema ha de implementarse en C++”

Las principales categorías son:


 Requisitos funcionales
Describen la funcionalidad o los servicios que se espera que el sistema proveerá. Se pueden
dividir en:
 De usuario: descripción general.
 De sistema: descripción detallada (función, entradas, salidas, etc.).
 Requisitos de datos
 Requisitos no funcionales

Los requisitos funcionales del usuario pueden ser frases muy generales sobre lo que el sistema
debería hacer. Se suelen expresar como objetivos del sistema.

Los requisitos funcionales del sistema deben describir los servicios que hay que proporcionar
con todo detalle.

Ejemplos:

“El sistema debe permitir a los usuarios buscar un ejemplar por título, autor o ISBN”
Es un requisito funcional que define una parte de funcionalidad del sistema.

“El sistema debe permitir al usuario introducir los datos de los estudiantes nuevos”
Requisito de usuario expresado en términos generales. ¿Qué servicio debe prestar el sistema?

“El sistema debe permitir a los usuarios buscar el producto por nombre, número de factura,
código de barras”
Requisito del sistema. Que define una parte de funcionalidad del sistema.

Guía para escribir requisitos


• Utilizar el lenguaje de forma consistente.
• Resaltar el texto para identificar las partes claves del requisito.
• Evitar el uso de lenguaje “técnico”.
PROGRAMACIÓN MODULAR

Se puede definir a la programación modular como aquella que usa el concepto de dividir un
problema complejo en subproblemas más pequeños, hasta que estos sean fáciles de tratar y
resolver por separado. Así la solución de los subproblemas en conjunto da como resultado la
solución del problema completo.

Aplicando este principio a la hora de hacer un programa, entonces habría que dividir el
programa en “subprogramas” que realicen tareas específicas. Es importante considerar que
para poner en práctica la modularización, es necesario un mecanismo que permita aplicarla
en los lenguajes de programación; este mecanismo existe prácticamente en todos los
lenguajes y consiste en la posibilidad de definir tareas específicas como módulos de código
independientes del programa principal. En consecuencia, estos módulos de código
independientes del programa deben poder invocarse desde el programa o módulo principal
para que empiecen a trabajar y deben acabar devolviendo el control al programa o módulo
principal cuando terminen de ejecutarse.

La programación modular permite:


a) Dividir la complejidad de un problema convirtiendo problemas complejos en un conjunto
de problemas más simples y por tanto más sencillos de implementar.
b) Reutilizar el código de un programa en cualquier momento de la ejecución del mismo.

Diseño descendente

Es una técnica que permite diseñar la solución de un problema con base en la modularización
o segmentación dándole un enfoque de arriba hacia abajo (Top Down Design). Esta solución
permite dividir el problema en módulos que se estructuran e integran jerárquicamente (ver
figura 1), como si fuera el organigrama de una empresa.

Figura 1
Módulo

Es un segmento, rutina, subrutina, subalgoritmo o procedimiento que puede ser definido


dentro de un algoritmo mayor con el propósito de ejecutar una tarea específica, pudiendo ser
llamado o invocado desde el módulo principal cuando se requiera.

Este enfoque de segmentación o modularización es útil:


 Cuando existe un grupo de instrucciones o una tarea específica que debe ejecutarse en más
de una ocasión.
 Cuando un problema es complejo o extenso, entonces la solución se “divide” o “segmenta”
en módulos que ejecutan “partes” o tareas específicas.

Dicha solución se organiza y divide en partes más pequeñas que sean fácilmente manejables
y que, lógicamente, puedan ser separadas; así cada una de estas partes se dedica a ejecutar
una determinada tarea, lo que redundará en una mayor concentración, entendimiento y
capacidad de solución a la hora de diseñar la lógica de cada una de estas.

Las partes en las que se divide una empresa (funcionalmente separadas) son el equivalente a
los módulos o segmentos del algoritmo, algunos de ellos son módulos directivos o de control,
que son los que se encargarán de distribuir el trabajo a los demás módulos, de tal forma que
se puede diseñar una especie de organigrama que indique la estructura general de un
algoritmo.

Proceso de modularización o segmentación

El proceso de segmentación consiste en hacer una abstracción del problema, del cual se tiene
inicialmente el panorama general. Enseguida se procede a “descomponer” o “dividir” el
problema en partes pequeñas y simples (ver figura 2).
 Se forma un primer módulo enunciando el problema en términos de la solución de éste.
 Se toma este módulo y se busca la forma de dividirlo en otros módulos más pequeños,
que ejecuten tareas o funciones específicas. Normalmente serán las mismas funciones
que se desea que ejecute el algoritmo, lo que permite de una forma simple definir los
módulos, y de esta forma dividir el problema en partes más manejables.
 Se repite el paso anterior para cada módulo nuevo definido, hasta llegar a un nivel de
detalle adecuado, es decir, hasta hacer que cada módulo ejecute una tarea específica,
claramente definida y que el diseño y la codificación de la lógica del mismo resulte fácil.
Figura 2

Referencias

Castañeda, F. (2015). Requerimientos de software.


https://www.uv.mx/personal/fcastaneda/files/2015/08/F_Capitulo_5_Requerimientos_del_
software.pdf

Chávez, T. (octubre de 2017). Programación Modular.


http://ri.uaemex.mx/bitstream/handle/20.500.11799/69946/secme-
19449_1.pdf?sequence=1&isAllowed=y

También podría gustarte