SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
UNIFICANDO EL ANÁLISIS DE SISTEMAS Y LA
PROGRAMACIÓN DE SOFTWARE PARA
LENGUAJES ORIENTADOS A OBJETOS
jofrantoba
Kiongo Technology, Av. Manuel Seoane 761, Lambayeque – Perú
Resumen
En este artículo se realiza una propuesta para unificar el análisis de sistemas y
la programación del sistema, mediante el uso de un patrón de diseño que
encaja con las metodologías de desarrollo de software tradicionales y agiles.
Teniendo en cuenta que hasta ahora todos realizamos el análisis de sistemas
con el objetivo de entender y documentar los requerimientos del cliente para su
posterior programación, el analista de sistemas prepara fichas detalladas para
que puedan ser leídas por los programadores con el objetivo de plasmar
mediante algún lenguaje de programación los requerimientos funcionales del
sistema.
Todo parece encajar en el ciclo de vida del software usando cualquier
metodología, pero si vemos la parte técnica y práctica, el analista de sistemas
brinda las fichas detalladas de los requerimientos funcionales al programador y
espera que los requerimientos funcionen tal como él los entiende, el
programador desarrolla las fichas y es aquí donde empieza a perderse la
trazabilidad entre el análisis de sistemas y la programación, pues no tiene un
patrón para desarrollar las fichas sin perder la referencia hacia el análisis de
sistemas.
Se pretende brindar un marco para unificar el análisis de sistemas y la
programación, con el objetivo de brindar una trazabilidad bidireccional entre
ambas etapas, que permitan mapear los requerimientos funcionales tanto en el
análisis como en la programación.
Palabras claves: Requerimientos funcionales, patrón de diseño, análisis de
sistemas, programación.
1. Introducción
Unificar el análisis de sistemas con la programación para brindar una
trazabilidad bidireccional entre ambas a partir de los requerimientos
funcionales con lleva a realizar actividades puntuales que permiten
relacionar ambas etapas. Todo empieza en el análisis del sistema,
cuando se engloba funcionalidades atómicas en un paquete con un
nombre genérico que permita identificarlas, los analistas usamos estos
tipos de diagramas para limitar las funcionalidades que tendrá nuestro
sistema, posterior a realizar toda la etapa de análisis y documentar las
fichas de requerimientos funcionales que no dejan nada a la
interpretación del programador, este empieza a desarrollar un patrón de
diseño basado en MVC con una modificación con el objetivo de unificar
el análisis con la programación la cual nombraremos como EPVC
(entity– process – view - control), la cual sugiere que cada paquete que
engloba requerimiento funcionales atómicos se convertirá en una Clase,
donde cada método de la Clase es un requerimiento funcional dentro del
análisis. Esto permitirá mapear de forma fácil la documentación de
análisis cuando haya algún problema o simplemente se requiere
comprobar la realización correcta del requerimiento funcional.
2. Unificando el análisis de sistemas con la programación
Aquí no vamos a explicar como se realizan las actividades del ciclo de
vida del software haciendo uso de metodologías agiles o tradicionales,
se pretende mostrar como lograr el mapeo y la trazabilidad entre el
análisis y la programación, para ello es obligatorio realizar actividades
que permitan relacionar el análisis con la programación. Por esta razón
hemos dividido las actividades en actividades de análisis y actividades
de programación para que cada equipo de desarrollo lo inserte según la
metodología que usa para el ciclo de vida del software.
a. Actividades de Análisis
Elaborar diagrama de paquetes
Un diagrama de paquetes proporcionará el encapsulamiento de
los requerimientos funcionales a ser desarrollados, además de
saber que dicho nombre se convertirá en una Clase que
contendrá métodos que referencien a cada requerimiento
funcional.
En el siguiente diagrama de paquetes se ejemplifica:
Ilustración 1: Diagrama de dependencia de paquetes
Las flechas apuntan hacia el paquete del cual son dependientes,
en el ejemplo se observa que los paquete de Gestión de Destino
no se puede desarrollar sin haber implementado los paquetes de
Gestión de Mantenimiento, Usuario y Negocio.
Elaborar ficha de requerimientos funcionales
Dentro de cada paquete se empieza a ordenar todo los
requerimientos funcionales que serán desarrollados, tener en
cuenta que el nombre del requerimiento funcional se convertirá en
un método dentro de la clase, citaremos un ejemplo basado en
una metodología clásica como RUP.
Ilustración 2: Diagrama de casos de uso de sistema - PCK Gestión Destino
El diagrama anterior no trata de obligar a usar la metodología
RUP, solo muestra el encapsulamiento de funcionalidades dentro
de un paquete. Dejando en claro que cada requerimiento
funcional se convertirá en un método, por esta razón el
programador debe colaborar al momento de dar nombres ya que
los mismos nombres deben ser usados al momento de
desarrollar.
Elaborar mockups del sistema
Es importante que analista y programador participen de esta
actividad ya que no solo se debe coordinar los nombres que
llevarán las interfaces sino también el flujo entre estas.
Diseñar base de datos
El diseño de base de datos se relaciona con el desarrollo de los
beans o entidades en la programación, es fundamental que el
desarrollador también participe del diseño del almacén de datos y
participar en el nombramiento de la entidades, esto permitirá
desarrollar la unicidad en el desarrollo de software
b. Actividades de programación
Estas actividades permitirán mapear los paquetes, los
requerimientos funcionales, las entidades e interfaces con la
programación, para poder realizar esto es necesario que los
mismos nombres definidos en el análisis sean usados en la
programación, las actividades claves es diseñar la arquitectura
que usará y el patrón de diseño que se implementará en la
programación.
Aquí solo hablaremos del patrón de diseño que permitirá la
unificar ambas etapas, pues la arquitectura software y el lenguaje
de programación no influyen sobre el patrón de diseño, ya que un
patrón de diseño resuelve una problemática.
Patrón de diseño Entidad Process Control Vista (EPCV)
Para desarrollar la propuesta tomaremos a Java como lenguaje
de programación.
 ENTIDAD
La capa de entidad se centra en desarrollar todas las
operaciones CRUD sobre las entidades individualmente, es
una capa que se centra en la entidad y no piensa en los
procesos de negocios que soportara el sistema, a cada
entidad de base de datos corresponde un bean a
desarrollar con el igual o mayor número de atributos, ya
que algunos atributos son usados como auxiliares dentro
de la programación. En la siguiente imagen se nota que si
en el almacén de datos existe una entidad “A”, en la
programación existirá en bean, dao y logic “A”, es
importante saber que en ninguna de estas capas se abre la
conexión al almacén de datos, ya que desde la perspectiva
técnica cuando se deseaba hacer un requerimiento
funcional que guardaba en más de una entidad, se tenía
que elegir en que Logic desarrollar la funcionalidad, este es
el principal problema, ya que ningún Logic es más
importante que otro, quizá solo habría que elegir alguna y
escribir el requerimiento funcional ahí, pero esto genera
desorden y pierdes la trazabilidad entre el análisis y la
programación.
Ilustración 3: Capa de entidad
 PROCESOS
Esta capa se relaciona con el diagrama de paquetes, ya
que cada paquete se convertirá en un Clase en la
programación que contendrá métodos que referencian a
los requerimientos funcionales contenidos en los paquetes.
En cada método de la Clase se abrirá la conexión al
almacén de datos y se usara tantos logics como sean
necesarios para guardar la data sobre las entidades que el
requerimiento funcional ordene.
En la siguiente imagen podemos notar que los beans y los
logic serán usados dentro de esta capa de procesos,
permitiendo de esta manera un uso óptimo de la conexión
al almacén de datos ya que la conexión se apertura en
cada método y se ira transfiriendo a cada logic y dao con el
objetivo de almacenar data sobre las entidades que se
requiera.
Ilustración 4: Capa de proceso
A partir de la capa de procesos podremos desarrollar el
webservice para que sea interoperable con otras
tecnologías, permitiendo acceder a la lógica de negocios y
crear aplicaciones que solo consuman los servicios
expuestos, en la siguiente figura se muestra la relación del
webservice con la capa de procesos.
Ilustración 5: Desarrollo de webservice a partir de la capa de procesos
 CONTROL
El controlador es la capa que permitirá la comunicación cliente
– servidor, usar esto en caso de aplicaciones web, si son
aplicaciones desktop obviarlo y pasar a la capa de vista e
integrar la vista con la capa de procesos. En la siguiente
imagen se muestra la relación entre la capa de control que
recibe una petición de un requerimiento funcional, el cual lo
solicita a la capa de procesos y cuando la capa de proceso
termina de procesar pasa la información al controlador para
que dé una respuesta a la vista.
Ilustración 6: Capa de control
 VISTA
En la ilustración se muestra la vista mediante el uso de
tecnología Java, pero se puede usar tecnología análoga para
el desarrollo de la vista, ya que la capa de vista contiene todas
las interfaces gráficas de plasmadas en los requerimiento del
sistema, cuyos nombres deben ser los mismos que fueron
planteados en el mockup.
Ilustración 7: Capa de vista
Para el desarrollo de una interfaz gráfica web o escritorio se
propone seguir este patrón, el cual muestra que cada interfaz
debe ser un paquete o una carpeta que contenga tres
archivos, el primero con el nombre del mockup que
simplemente es una maqueta y donde cada botón ya sabe que
método ejecutar cuando es presionado, un segundo archivo
que permite nombrar los métodos de los requerimientos
funcionales que se usarán en esa interfaz gráfica y los cuales
serán llamada en la primera interfaz y vinculados al evento en
cada control de la interfaz y por ultimo un tercer archivo que
hereda de la interfaz maqueta, el cual sobreescribirá los
métodos vinculados a los botones y permitirá la comunicación
con la capa de control en el caso de aplicaciones web y con la
capa de procesos en el caso de aplicaciones de escritorio.
Este mismo patrón debería ser implementado al desarrollar
aplicaciones móviles.
En la siguiente imagen se da un ejemplo de como se
implementaría con tecnología Java.
Ilustración 8: Patrón para crear interfaces gráficas

Más contenido relacionado

La actualidad más candente

Presentación power point relational rose
Presentación power point relational rosePresentación power point relational rose
Presentación power point relational roseengelstalin
 
Lese 2 - introduccion a rational rose
Lese 2 - introduccion a rational roseLese 2 - introduccion a rational rose
Lese 2 - introduccion a rational roseJordan Fonseca
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodoshtmrk
 
Diagramas de componentes exposicion martes
Diagramas de componentes exposicion  martesDiagramas de componentes exposicion  martes
Diagramas de componentes exposicion martesJackson Marshelo
 
Lese 2 - introduccion a rational rose
Lese 2 - introduccion a rational roseLese 2 - introduccion a rational rose
Lese 2 - introduccion a rational rosejdpoccorie
 
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...Juan Pablo Bustos Thames
 
Sesion 7 3 diseño diagramas de componentes
Sesion 7 3 diseño   diagramas de componentesSesion 7 3 diseño   diagramas de componentes
Sesion 7 3 diseño diagramas de componentesJulio Pari
 
Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Javier Eulacio
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregidoJose Torres Gonzales
 
Tema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareTema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareMagemyl Egana
 
investigacion topicos avanzados de programacion unidad dos interfaz grafica
investigacion topicos avanzados de programacion unidad dos interfaz graficainvestigacion topicos avanzados de programacion unidad dos interfaz grafica
investigacion topicos avanzados de programacion unidad dos interfaz graficaAnel Sosa
 
Arduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snapArduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snapSANTIAGO PABLO ALBERTO
 

La actualidad más candente (20)

Presentación power point relational rose
Presentación power point relational rosePresentación power point relational rose
Presentación power point relational rose
 
Lese 2 - introduccion a rational rose
Lese 2 - introduccion a rational roseLese 2 - introduccion a rational rose
Lese 2 - introduccion a rational rose
 
CakePHP
CakePHPCakePHP
CakePHP
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodos
 
1.2 modularidad
1.2 modularidad1.2 modularidad
1.2 modularidad
 
Diagramas de componentes exposicion martes
Diagramas de componentes exposicion  martesDiagramas de componentes exposicion  martes
Diagramas de componentes exposicion martes
 
Lese 2 - introduccion a rational rose
Lese 2 - introduccion a rational roseLese 2 - introduccion a rational rose
Lese 2 - introduccion a rational rose
 
Programacion estruturada
Programacion estruturadaProgramacion estruturada
Programacion estruturada
 
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
 
Sesion 7 3 diseño diagramas de componentes
Sesion 7 3 diseño   diagramas de componentesSesion 7 3 diseño   diagramas de componentes
Sesion 7 3 diseño diagramas de componentes
 
Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregido
 
Tema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareTema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de software
 
Tp Rational Rose
Tp Rational RoseTp Rational Rose
Tp Rational Rose
 
Base de datos avanzado i
Base de datos avanzado iBase de datos avanzado i
Base de datos avanzado i
 
ejemplo de diseño
ejemplo de diseñoejemplo de diseño
ejemplo de diseño
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
investigacion topicos avanzados de programacion unidad dos interfaz grafica
investigacion topicos avanzados de programacion unidad dos interfaz graficainvestigacion topicos avanzados de programacion unidad dos interfaz grafica
investigacion topicos avanzados de programacion unidad dos interfaz grafica
 
Programacionvb
ProgramacionvbProgramacionvb
Programacionvb
 
Arduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snapArduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snap
 

Destacado (8)

CV_Engels
CV_EngelsCV_Engels
CV_Engels
 
CV_Reika Vesala_LinkedIn_En
CV_Reika Vesala_LinkedIn_EnCV_Reika Vesala_LinkedIn_En
CV_Reika Vesala_LinkedIn_En
 
Linga Resume
Linga ResumeLinga Resume
Linga Resume
 
The Best Way to Predict the Future is to Create It
The Best Way to Predict the Future is to Create ItThe Best Way to Predict the Future is to Create It
The Best Way to Predict the Future is to Create It
 
GSeparovich_resume1
GSeparovich_resume1GSeparovich_resume1
GSeparovich_resume1
 
Resume_Abhinav_Hadoop_Developer
Resume_Abhinav_Hadoop_DeveloperResume_Abhinav_Hadoop_Developer
Resume_Abhinav_Hadoop_Developer
 
Storyboard2
Storyboard2Storyboard2
Storyboard2
 
Nupur Mahajan
Nupur MahajanNupur Mahajan
Nupur Mahajan
 

Similar a Unificando el análisis de sistemas y la programación de software para lenguajes orientados a objetos

Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos AcostaMarcos Acosta
 
Análisis de la Arquitectura de Sistemas.pptx
Análisis de la Arquitectura de Sistemas.pptxAnálisis de la Arquitectura de Sistemas.pptx
Análisis de la Arquitectura de Sistemas.pptxoscaralava3
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Jessika parica. Fundamentos y métodos de análisis de los requerimientos.
Jessika parica. Fundamentos y métodos de análisis de los requerimientos.Jessika parica. Fundamentos y métodos de análisis de los requerimientos.
Jessika parica. Fundamentos y métodos de análisis de los requerimientos.Jessika Parica
 
Monografia top sw
Monografia top swMonografia top sw
Monografia top swjamoca25
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSValentina
 
Framework 02
Framework 02Framework 02
Framework 02ronnyme21
 

Similar a Unificando el análisis de sistemas y la programación de software para lenguajes orientados a objetos (20)

Presentación1
Presentación1Presentación1
Presentación1
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos Acosta
 
Framework
FrameworkFramework
Framework
 
Análisis de la Arquitectura de Sistemas.pptx
Análisis de la Arquitectura de Sistemas.pptxAnálisis de la Arquitectura de Sistemas.pptx
Análisis de la Arquitectura de Sistemas.pptx
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Framework
FrameworkFramework
Framework
 
Modelado
ModeladoModelado
Modelado
 
Modelado
ModeladoModelado
Modelado
 
Jessika parica. Fundamentos y métodos de análisis de los requerimientos.
Jessika parica. Fundamentos y métodos de análisis de los requerimientos.Jessika parica. Fundamentos y métodos de análisis de los requerimientos.
Jessika parica. Fundamentos y métodos de análisis de los requerimientos.
 
Monografia top sw
Monografia top swMonografia top sw
Monografia top sw
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
 
Framework
FrameworkFramework
Framework
 
Framework 02
Framework 02Framework 02
Framework 02
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 

Más de Jonathan Franchesco Torres Baca

Certificado de ponente en FullStack - Amazon web service
Certificado de ponente en FullStack - Amazon web serviceCertificado de ponente en FullStack - Amazon web service
Certificado de ponente en FullStack - Amazon web serviceJonathan Franchesco Torres Baca
 
USS - Certificado por brindar taller en Google App Engine/Java
USS - Certificado por brindar taller en Google App Engine/JavaUSS - Certificado por brindar taller en Google App Engine/Java
USS - Certificado por brindar taller en Google App Engine/JavaJonathan Franchesco Torres Baca
 
Creación de máquinas virtuales basada en kernel usando qemu y virsh
Creación de máquinas virtuales basada en kernel usando qemu y virshCreación de máquinas virtuales basada en kernel usando qemu y virsh
Creación de máquinas virtuales basada en kernel usando qemu y virshJonathan Franchesco Torres Baca
 
Constituye tu empresa online en Perú - Mypes costo cero
Constituye tu empresa online en Perú - Mypes costo ceroConstituye tu empresa online en Perú - Mypes costo cero
Constituye tu empresa online en Perú - Mypes costo ceroJonathan Franchesco Torres Baca
 
MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...
MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...
MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...Jonathan Franchesco Torres Baca
 
Desarrollo de aplicaciones saa s con herramientas de software libre
Desarrollo de aplicaciones saa s con herramientas de software libreDesarrollo de aplicaciones saa s con herramientas de software libre
Desarrollo de aplicaciones saa s con herramientas de software libreJonathan Franchesco Torres Baca
 

Más de Jonathan Franchesco Torres Baca (20)

Plan cdo de los primeros 100 dias jofrantoba
Plan cdo de los primeros 100 dias   jofrantobaPlan cdo de los primeros 100 dias   jofrantoba
Plan cdo de los primeros 100 dias jofrantoba
 
Bachiller en Ingeniería de sistemas
Bachiller en Ingeniería de sistemasBachiller en Ingeniería de sistemas
Bachiller en Ingeniería de sistemas
 
Certificado de ponente en FullStack - Amazon web service
Certificado de ponente en FullStack - Amazon web serviceCertificado de ponente en FullStack - Amazon web service
Certificado de ponente en FullStack - Amazon web service
 
USS - Certificado por brindar taller en Google App Engine/Java
USS - Certificado por brindar taller en Google App Engine/JavaUSS - Certificado por brindar taller en Google App Engine/Java
USS - Certificado por brindar taller en Google App Engine/Java
 
Título profesional en Ingeniería de Sistemas
Título profesional en Ingeniería de SistemasTítulo profesional en Ingeniería de Sistemas
Título profesional en Ingeniería de Sistemas
 
Creación de máquinas virtuales basada en kernel usando qemu y virsh
Creación de máquinas virtuales basada en kernel usando qemu y virshCreación de máquinas virtuales basada en kernel usando qemu y virsh
Creación de máquinas virtuales basada en kernel usando qemu y virsh
 
Constituye tu empresa online en Perú - Mypes costo cero
Constituye tu empresa online en Perú - Mypes costo ceroConstituye tu empresa online en Perú - Mypes costo cero
Constituye tu empresa online en Perú - Mypes costo cero
 
Sa mixto modelo sunarp peru
Sa mixto   modelo sunarp peruSa mixto   modelo sunarp peru
Sa mixto modelo sunarp peru
 
Sac directorio mixto - modelo sunarp peru
Sac directorio mixto - modelo sunarp peruSac directorio mixto - modelo sunarp peru
Sac directorio mixto - modelo sunarp peru
 
Sac sin directorio_mixto - modelo sunarp peru
Sac sin directorio_mixto - modelo sunarp peruSac sin directorio_mixto - modelo sunarp peru
Sac sin directorio_mixto - modelo sunarp peru
 
Srl mixto modelo sunarp peru
Srl mixto   modelo sunarp peruSrl mixto   modelo sunarp peru
Srl mixto modelo sunarp peru
 
Eirl mixto modelo sunarp peru
Eirl mixto   modelo sunarp peruEirl mixto   modelo sunarp peru
Eirl mixto modelo sunarp peru
 
Prototipado by Jofrantoba
Prototipado  by JofrantobaPrototipado  by Jofrantoba
Prototipado by Jofrantoba
 
Prototipado fi
Prototipado   fiPrototipado   fi
Prototipado fi
 
Aws full stack
Aws   full stackAws   full stack
Aws full stack
 
Aws full stack
Aws   full stackAws   full stack
Aws full stack
 
Capedwarf
CapedwarfCapedwarf
Capedwarf
 
MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...
MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...
MODELO MATEMÁTICO DE ALGORITMO SOCIAL BASADO EN LA TEORÍA DE CONJUNTOS PARA L...
 
Desarrollo de aplicaciones saa s con herramientas de software libre
Desarrollo de aplicaciones saa s con herramientas de software libreDesarrollo de aplicaciones saa s con herramientas de software libre
Desarrollo de aplicaciones saa s con herramientas de software libre
 
Instalando oracle 12c en centos 7
Instalando oracle 12c en centos 7Instalando oracle 12c en centos 7
Instalando oracle 12c en centos 7
 

Unificando el análisis de sistemas y la programación de software para lenguajes orientados a objetos

  • 1. UNIFICANDO EL ANÁLISIS DE SISTEMAS Y LA PROGRAMACIÓN DE SOFTWARE PARA LENGUAJES ORIENTADOS A OBJETOS jofrantoba Kiongo Technology, Av. Manuel Seoane 761, Lambayeque – Perú Resumen En este artículo se realiza una propuesta para unificar el análisis de sistemas y la programación del sistema, mediante el uso de un patrón de diseño que encaja con las metodologías de desarrollo de software tradicionales y agiles. Teniendo en cuenta que hasta ahora todos realizamos el análisis de sistemas con el objetivo de entender y documentar los requerimientos del cliente para su posterior programación, el analista de sistemas prepara fichas detalladas para que puedan ser leídas por los programadores con el objetivo de plasmar mediante algún lenguaje de programación los requerimientos funcionales del sistema. Todo parece encajar en el ciclo de vida del software usando cualquier metodología, pero si vemos la parte técnica y práctica, el analista de sistemas brinda las fichas detalladas de los requerimientos funcionales al programador y espera que los requerimientos funcionen tal como él los entiende, el programador desarrolla las fichas y es aquí donde empieza a perderse la trazabilidad entre el análisis de sistemas y la programación, pues no tiene un patrón para desarrollar las fichas sin perder la referencia hacia el análisis de sistemas. Se pretende brindar un marco para unificar el análisis de sistemas y la programación, con el objetivo de brindar una trazabilidad bidireccional entre ambas etapas, que permitan mapear los requerimientos funcionales tanto en el análisis como en la programación. Palabras claves: Requerimientos funcionales, patrón de diseño, análisis de sistemas, programación.
  • 2. 1. Introducción Unificar el análisis de sistemas con la programación para brindar una trazabilidad bidireccional entre ambas a partir de los requerimientos funcionales con lleva a realizar actividades puntuales que permiten relacionar ambas etapas. Todo empieza en el análisis del sistema, cuando se engloba funcionalidades atómicas en un paquete con un nombre genérico que permita identificarlas, los analistas usamos estos tipos de diagramas para limitar las funcionalidades que tendrá nuestro sistema, posterior a realizar toda la etapa de análisis y documentar las fichas de requerimientos funcionales que no dejan nada a la interpretación del programador, este empieza a desarrollar un patrón de diseño basado en MVC con una modificación con el objetivo de unificar el análisis con la programación la cual nombraremos como EPVC (entity– process – view - control), la cual sugiere que cada paquete que engloba requerimiento funcionales atómicos se convertirá en una Clase, donde cada método de la Clase es un requerimiento funcional dentro del análisis. Esto permitirá mapear de forma fácil la documentación de análisis cuando haya algún problema o simplemente se requiere comprobar la realización correcta del requerimiento funcional. 2. Unificando el análisis de sistemas con la programación Aquí no vamos a explicar como se realizan las actividades del ciclo de vida del software haciendo uso de metodologías agiles o tradicionales, se pretende mostrar como lograr el mapeo y la trazabilidad entre el análisis y la programación, para ello es obligatorio realizar actividades que permitan relacionar el análisis con la programación. Por esta razón hemos dividido las actividades en actividades de análisis y actividades de programación para que cada equipo de desarrollo lo inserte según la metodología que usa para el ciclo de vida del software. a. Actividades de Análisis Elaborar diagrama de paquetes Un diagrama de paquetes proporcionará el encapsulamiento de los requerimientos funcionales a ser desarrollados, además de saber que dicho nombre se convertirá en una Clase que contendrá métodos que referencien a cada requerimiento funcional.
  • 3. En el siguiente diagrama de paquetes se ejemplifica: Ilustración 1: Diagrama de dependencia de paquetes Las flechas apuntan hacia el paquete del cual son dependientes, en el ejemplo se observa que los paquete de Gestión de Destino no se puede desarrollar sin haber implementado los paquetes de Gestión de Mantenimiento, Usuario y Negocio. Elaborar ficha de requerimientos funcionales Dentro de cada paquete se empieza a ordenar todo los requerimientos funcionales que serán desarrollados, tener en cuenta que el nombre del requerimiento funcional se convertirá en un método dentro de la clase, citaremos un ejemplo basado en una metodología clásica como RUP. Ilustración 2: Diagrama de casos de uso de sistema - PCK Gestión Destino
  • 4. El diagrama anterior no trata de obligar a usar la metodología RUP, solo muestra el encapsulamiento de funcionalidades dentro de un paquete. Dejando en claro que cada requerimiento funcional se convertirá en un método, por esta razón el programador debe colaborar al momento de dar nombres ya que los mismos nombres deben ser usados al momento de desarrollar. Elaborar mockups del sistema Es importante que analista y programador participen de esta actividad ya que no solo se debe coordinar los nombres que llevarán las interfaces sino también el flujo entre estas. Diseñar base de datos El diseño de base de datos se relaciona con el desarrollo de los beans o entidades en la programación, es fundamental que el desarrollador también participe del diseño del almacén de datos y participar en el nombramiento de la entidades, esto permitirá desarrollar la unicidad en el desarrollo de software b. Actividades de programación Estas actividades permitirán mapear los paquetes, los requerimientos funcionales, las entidades e interfaces con la programación, para poder realizar esto es necesario que los mismos nombres definidos en el análisis sean usados en la programación, las actividades claves es diseñar la arquitectura que usará y el patrón de diseño que se implementará en la programación. Aquí solo hablaremos del patrón de diseño que permitirá la unificar ambas etapas, pues la arquitectura software y el lenguaje de programación no influyen sobre el patrón de diseño, ya que un patrón de diseño resuelve una problemática. Patrón de diseño Entidad Process Control Vista (EPCV) Para desarrollar la propuesta tomaremos a Java como lenguaje de programación.  ENTIDAD La capa de entidad se centra en desarrollar todas las operaciones CRUD sobre las entidades individualmente, es una capa que se centra en la entidad y no piensa en los procesos de negocios que soportara el sistema, a cada entidad de base de datos corresponde un bean a
  • 5. desarrollar con el igual o mayor número de atributos, ya que algunos atributos son usados como auxiliares dentro de la programación. En la siguiente imagen se nota que si en el almacén de datos existe una entidad “A”, en la programación existirá en bean, dao y logic “A”, es importante saber que en ninguna de estas capas se abre la conexión al almacén de datos, ya que desde la perspectiva técnica cuando se deseaba hacer un requerimiento funcional que guardaba en más de una entidad, se tenía que elegir en que Logic desarrollar la funcionalidad, este es el principal problema, ya que ningún Logic es más importante que otro, quizá solo habría que elegir alguna y escribir el requerimiento funcional ahí, pero esto genera desorden y pierdes la trazabilidad entre el análisis y la programación. Ilustración 3: Capa de entidad
  • 6.  PROCESOS Esta capa se relaciona con el diagrama de paquetes, ya que cada paquete se convertirá en un Clase en la programación que contendrá métodos que referencian a los requerimientos funcionales contenidos en los paquetes. En cada método de la Clase se abrirá la conexión al almacén de datos y se usara tantos logics como sean necesarios para guardar la data sobre las entidades que el requerimiento funcional ordene. En la siguiente imagen podemos notar que los beans y los logic serán usados dentro de esta capa de procesos, permitiendo de esta manera un uso óptimo de la conexión al almacén de datos ya que la conexión se apertura en cada método y se ira transfiriendo a cada logic y dao con el objetivo de almacenar data sobre las entidades que se requiera. Ilustración 4: Capa de proceso
  • 7. A partir de la capa de procesos podremos desarrollar el webservice para que sea interoperable con otras tecnologías, permitiendo acceder a la lógica de negocios y crear aplicaciones que solo consuman los servicios expuestos, en la siguiente figura se muestra la relación del webservice con la capa de procesos. Ilustración 5: Desarrollo de webservice a partir de la capa de procesos
  • 8.  CONTROL El controlador es la capa que permitirá la comunicación cliente – servidor, usar esto en caso de aplicaciones web, si son aplicaciones desktop obviarlo y pasar a la capa de vista e integrar la vista con la capa de procesos. En la siguiente imagen se muestra la relación entre la capa de control que recibe una petición de un requerimiento funcional, el cual lo solicita a la capa de procesos y cuando la capa de proceso termina de procesar pasa la información al controlador para que dé una respuesta a la vista. Ilustración 6: Capa de control
  • 9.  VISTA En la ilustración se muestra la vista mediante el uso de tecnología Java, pero se puede usar tecnología análoga para el desarrollo de la vista, ya que la capa de vista contiene todas las interfaces gráficas de plasmadas en los requerimiento del sistema, cuyos nombres deben ser los mismos que fueron planteados en el mockup. Ilustración 7: Capa de vista Para el desarrollo de una interfaz gráfica web o escritorio se propone seguir este patrón, el cual muestra que cada interfaz debe ser un paquete o una carpeta que contenga tres archivos, el primero con el nombre del mockup que simplemente es una maqueta y donde cada botón ya sabe que método ejecutar cuando es presionado, un segundo archivo que permite nombrar los métodos de los requerimientos funcionales que se usarán en esa interfaz gráfica y los cuales serán llamada en la primera interfaz y vinculados al evento en cada control de la interfaz y por ultimo un tercer archivo que hereda de la interfaz maqueta, el cual sobreescribirá los métodos vinculados a los botones y permitirá la comunicación con la capa de control en el caso de aplicaciones web y con la capa de procesos en el caso de aplicaciones de escritorio. Este mismo patrón debería ser implementado al desarrollar aplicaciones móviles.
  • 10. En la siguiente imagen se da un ejemplo de como se implementaría con tecnología Java. Ilustración 8: Patrón para crear interfaces gráficas