Professional Documents
Culture Documents
Modelado de Sistemas
Para la mayoría de los trabajos de ingeniería es bastante habitual utilizar prototipos o maquetas.
Todos estos modelos facilitan al ingeniero la labor de comprensión de los problemas que se plantean en el
nuevo sistema a desarrollar.
El modelado de los sistemas realizados mediante software también tiene como objetivo entender
mejor el funcionamiento requerido y facilitar la comprensión de los problemas planteados.
Concepto de Modelo
Con carácter general, un modelo conceptual es todo aquello que nos permite conseguir una abstracción
lógico-matemática del mundo real y que facilita la comprensión del problema a resolver.
Técnicas de Modelado
La obtención de un modelo que cubra todos los objetivos no es fácil, ya que los sistemas a modelar
pueden ser muy complejos o también es relativamente normal que no se disponga de ninguna referencia o
experiencia anterior.
A continuación se indican algunas técnicas que pueden resultar útiles para realizar el modelado de un
sistema software.
Cuando un problema es complejo, la primera técnica que se debe emplear es descomponerlo en otros
más sencillos. De esta manera, se establece un modelo jerarquizado en el que el problema global queda
dividido en subproblemas. La descomposición se puede realizar de dos formas:
Descomposición Horizontal.- Trata de descomponer funcionalmente el problema. Por ejemplo, un sistema para
gestionar una empresa se puede descomponer los siguientes subsistemas:
• Sistema de nóminas
• Sistema de contabilidad
• … etc. …
A su vez, es posible volver a descomponer cada uno de estos subsistemas en otros más simples:
• Realización de nóminas
• Pagos a la Seguridad Social
• … etc. …
1
INGENIERÍA DEL SOFTWARE
2. Aproximaciones Sucesivas
Es muy normal que el sistema software que se quiere modelar sustituya a un proceso de trabajo ya
existente, que se realiza de forma totalmente manual o con un grado de automatización menor del que se
pretende lograr con el nuevo sistema. En ese caso, se puede crear un modelo de partida basado en la forma de
trabajo anterior. Este modelo sólo será preliminar y tendrá que ser depurado mediante aproximaciones
sucesivas hasta alcanzar un modelo final.
A veces puede suceder que el modelo resulte muy complejo o incluso imposible de realizar utilizando
una única notación para su elaboración. En estos casos es importante tratar de utilizar notaciones
alternativas o complementarias que simplifiquen el modelo.
Una posible notación para describir el modelo de un sistema es mediante el lenguaje natural. Como
suele ser habitual, un esquema, una figura o cualquier método gráfico suele ser más fácil de entender.
Existen diversas herramientas de modelado para la ayuda al análisis y diseño de sistemas, también
llamadas herramientas CASE, que combinan texto, tablas, diagramas, gráficos, etc.
Para poder concretar la creación de un modelo es necesario adoptar un determinado punto de vista.
Después, el modelo que resulte estará necesariamente influido por el punto de vista adoptado.
En ocasiones el modelo no quedará completamente definido con un solo punto de vista. En este caso lo
adecuado sería realizar el modelo desde distintos puntos de vista, que muestren todos los aspectos que se
quieren destacar del sistema.
Por dominio entenderemos el campo de aplicación en el que se encuadra el sistema a desarrollar. Por
ejemplo para desarrollar un sistema de seguimiento de pacientes de un hospital, el sistema software quedará
encuadrado dentro de las aplicaciones para gestión hospitales.
En este campo, como en cualquier otro, existe desde siempre una cierta manera de realizar las cosas y
una terminología que debe ser respetada y tenida en cuenta. Esto es lo que se denomina realizar un análisis
del dominio de la aplicación.
Para realizar este análisis es aconsejable estudiar por ejemplo, la Normativa que afecte al sistema,
otros sistemas parecidos, bibliografía clásica y actualizada, etc.
Este estudio facilitará la creación de un modelo más universal. Como ventajas de este enfoque se
puede destacar: Facilidad de comunicación entre analista y usuario del sistema, creación de elementos
realmente significativos del sistema y Reutilización posterior del software desarrollado.
2
INGENIERÍA DEL SOFTWARE
La etapa de análisis se encuadra dentro de la primera fase del ciclo de vida (fase de definición) y
tiene una importancia decisiva en el desarrollo de todas las etapas posteriores (diseño, codificación, prueba y
mantenimiento).
Con el análisis de requisitos se trata de caracterizar el problema a resolver. Esto se puede concretar
en la obtención del modelo global que define por completo el comportamiento requerido del sistema.
El cliente junto con el analista serán los encargados de elaborar las especificaciones del proyecto
software y quienes posteriormente se encargarán de verificar el cumplimiento de las mismas como si de un
contrato se tratara.
El objetivo global del análisis es obtener las especificaciones que debe cumplir el sistema a
desarrollar. Las especificaciones se obtendrán basándose en el modelo obtenido.
Para lograr una especificación correcta, el modelo global del sistema deberá tener las siguientes
propiedades:
Completo y sin omisiones: Aunque no es sencillo, se debe conocer todos los detalles del sistema
que se pretende especificar.
Conciso y sin trivialidades: Evitar repeticiones innecesarias, inexactitudes, distinguir aspectos
fundamentales de los que no lo son, etc.
Sin ambigüedades: El análisis de requisitos no es un mero trámite. Si se considera que el modelo
resultado del análisis es un contrato con el cliente, es evidente que nada debe quedar ambiguo.
Sin detalles de diseño o implementación: Como se ha indicado anteriormente, el objetivo del
análisis es definir QUÉ debe hacer el sistema y NO CÓMO lo debe hacer.
Fácilmente entendible por el cliente: La única forma de conocer si el cliente está de acuerdo con
el modelo fruto del análisis es que lo entienda y sea capaz de discutir todos sus aspectos.
Separando requisitos funcionales y no funcionales: Los requisitos funcionales son los destinados
a establecer el modelo de funcionamiento del sistema. Los requisitos no funcionales están
destinados a encuadrar el sistema dentro de un entorno de trabajo:
Estos requisitos no funcionales tienen un origen más técnico y no tienen tanto interés para el
cliente. Por tanto deben permanecer claramente separados en el modelo de sistema.
3
INGENIERÍA DEL SOFTWARE
Para la realización correcta de un análisis de requisitos conviene efectuar una serie de pasos o tareas
que son las siguientes dependiendo de las características y complejidades del sistema:
Estudio del sistema en su contexto.- Consiste en conocer el medio en el que se va a desarrollar el sistema,
ya que normalmente son subsistemas de otros sistemas más complejos en los que se agrupan subsistemas
hardware, sensoriales, etc.
Identificación de necesidades.- El analista se encargará de concretar las necesidades que se van a poder
cubrir con los medios disponibles y dentro del presupuesto y plazos asignados.
Análisis de alternativas. Estudio de viabilidad.- Consiste en buscar la alternativa que cubra las necesidades
reales detectadas en la tarea anterior y que tenga en cuenta su viabilidad tanto técnica como económica.
Establecimiento del modelo del sistema.- Según se van obteniendo conclusiones de las tareas anteriores,
éstas se deben ir plasmando en el modelo del sistema. Para la elaboración del modelo se deberán utilizar
todos los medios disponibles, desde procesadores de texto hasta las herramientas CASE.
Elaboración del documento de especificación de requisitos.- El resultado final del análisis va a ser este
documento, el cual debe recoger todas las conclusiones obtenidas en la fase del análisis. Este documento es el
que utilizará el diseñador como punto de partida de su trabajo.
Revisión continuada del análisis.- A lo largo del desarrollo del sistema y según aparecen problemas de diseño
e implementación se tendrán que modificar alguno de los requisitos del sistema, así como modificación de
requisitos por parte de los criterios del cliente. Todo ello implica revisar continuamente el análisis y su
documentación de especificación de requisitos.
La especificación es fundamentalmente una descripción del modelo del sistema que se pretende
desarrollar. La notación o notaciones deberán ser fáciles de entender por el cliente y por todos los que
participen en el análisis y desarrollo del sistema.
A continuación se hace un repaso de las notaciones que más se utilizan frecuentemente para
especificar los sistemas software.
Lenguaje Natural
La notación más inmediata que se puede emplear para realizar una especificación es el lenguaje
natural que habitualmente empleamos para comunicarnos. Esta notación es suficiente para aquellos sistemas
cuya complejidad es baja. El lenguaje natural será siempre a emplear cuando se necesario aclarar cualquier
aspecto concreto del sistema que no sean capaces de reflejar el resto de notaciones.
En cualquier caso, siempre que se utilice el lenguaje natural es muy importante organizar y
estructurar los requisitos recogidos en la especificación a modo de plasmarlos como cláusulas de un contrato.
El lenguaje natural estructurado es una notación más formal que el lenguaje natural, ya que se trata
de establecer ciertas reglas para la construcción de frases en las que se especifica una acción de tipo
secuencia, condición o iteración.
Se trata de lograr que dentro de una misma especificación todas las frases se construyan de igual
manera.
4
INGENIERÍA DEL SOFTWARE
Los DFD’s se usan de forma jerarquizada por niveles. El primer nivel (nivel 0) lo constituye el
denominado DFD de contexto. A continuación, cada proceso o
burbuja se puede “explotar” y mostrar como se organiza
interiormente, mediante otros DFD’s.
Los DFD’s sirven principalmente para establecer un módulo conceptual del sistema que facilite la
estructuración de su especificación. Este modelo es fundamentalmente estático y refleja los procesos
necesarios para su desarrollo y las interrelaciones que existen entre ellos.
5
INGENIERÍA DEL SOFTWARE
Representa el comportamiento de un sistema que muestra los estados, así como los sucesos que hacen
que el estado del sistema cambie.
Todos estos estados y las sucesivas transiciones entre ellos configuran la dinámica del sistema que se
produce mientras es está ejecutando.
En una notación que se complementa con los diagramas de flujo de datos (DFD) y que ofrece otro
punto de vista del sistema que en la mayoría de los casos resulta imprescindible.
6
INGENIERÍA DEL SOFTWARE
Los requisitos Funcionales son una parte muy importante de la especificación de un sistema. Por tanto,
es fundamental que las descripciones Funcionales se realicen sin ninguna ambigüedad.
Como mínimo se deberá utilizar un “lenguaje natural estructurado” y siempre que sea posible es
aconsejable utilizar una notación algo más precisa que denominaremos Pseudocódigo.
Se entiende por pseudocódigo una notación basada en un lenguaje de programación estructurado del
tipo Pascal, Modula-2, etc. del que sólo se manejan datos en general y además se pueden incluir descripciones
en lenguaje natural siempre que se considere necesario, como parte del pseudocódigo.
7
INGENIERÍA DEL SOFTWARE
Descripción de Datos
Utilidad.- Se indicarán todos los procesos, descripciones funcionales, almacenes de datos, etc. en los
que se utilice el dato.
Estructura.- Se indicarán los elementos de los que está constituido el dato, utilizando la siguiente
notación:
Para ilustrar una Descripción de Datos, a continuación se detallan algunos de los datos del ejemplo de
un Sistema de Control de Acceso:
Nombre: Clave
Estructura: { Dígito } 4
8
INGENIERÍA DEL SOFTWARE
Este modelo es un punto de partida imprescindible para comenzar cualquier diseño. Existen diversas
propuestas de notación para realizar los diagramas
E-R, aunque las diferencias son mínimas.
9
INGENIERÍA DEL SOFTWARE
Este documento es imprescindible y fundamental, además de ser el punto de partida del desarrollo de
cualquier sistema software. Debe ser redactado de una manera sencilla y de una forma fácil de modificar, ya
que deberá ser revisado con cierta frecuencia a lo largo del desarrollo de la aplicación.
A continuación se sugiere un modelo de documento SRD. Este documento tiene un carácter general y
en algunos casos no será necesario cumplimentar todos sus apartados. El contenido de cada apartado debería
ser el siguiente:
1. INTRODUCCIÓN
2. DESCRIPCIÓN GENERAL
3. REQUISITOS ESPECÍFICOS
Esta sección es la fundamental del documento. Debe contener una lista detallada y completa de los
requisitos que debe cumplir el sistema a desarrollar. Si fuera necesario, puede darse una descripción
resumida y hacer referencia a un APÉNDICE con la descripción detallada.
Es importante no incluir en los requisitos aspectos de diseño o desarrollo. Cada requisito debe ir
acompañado de una indicación del grado de cumplimiento necesario, es decir, si es obligatorio, recomendable
o simplemente opcional. Si no hay requisitos en alguno de ellos, se indicará “No existen”.
10