DSN_XP y el Legal View

 Legal View

DSN_XP considera esta perspectiva desde la perspectiva principal que denominamos BUSINESS VIEW y cubre todos los aspectos relacionados con los intereses de la organización cliente, usualmente, en tratos comerciales con terceros, se hace referencia al proceso de contratación y es en este punto que vimos la necesidad de desarrollar un área de conocimientos que nos permita expresar nuestras ideas desde el punto de vista legal y de la normativa vigente para contextos en los cuales tenemos la necesidad de implementar DSN_XP en cualquiera de sus versiones

Contratos ágiles


DSN_XP desarrolló esta perspectiva para proteger los esfuerzos del equipo de desarrollo de los contratos de desarrollo de software y su impacto en el estilo de vida del equipo de programación.

En Ecuador, todos nuestros registros sobre proyectos tecnológicos que implican el desarrollo de soluciones basadas en software, tienen un altísimo inconveniente al momento de la entrega del producto desarrollado respecto a lo previamente acordado mediante un contrato o un tipo de acuerdo.

Los contratos por defecto nos llevaban a discutir condiciones de negociación al final, cuando cualquier cambio o ajustes al alcance del proyecto tienen altísimo impacto económico en los equipos que desarrollan software, pero curiosamente, no se nota el mismo tipo de tratamiento al software que proviene de terceros y que no se considera como propio o desarrollado en casa (extensible al contratado localmente).

Luego de que históricamente, como desarrolladores de software, seamos impactados por las estructuras de los contratos, decidimos como DSN_XP desarrollar nuestro propio marco de trabajo legal que nos proteja de cualquier interpretación antojadiza que pueda darse a un contrato por la falta de criterios legales relacionados justamente con aspectos contractuales.

DSN_XP y el proyecto BONO

Sistema de control y facturación de gas licuado 



BONO

Año: 2008
Localidad: Quito
Institución: Edwin Vargas Consultores

Descripción:

Uno de los problemas que tiene un alto impacto en la economía del Ecuador es el tema relacionado con el subsidio que se establece al consumo de gas licuado. Un problema adicional consistía en la forma en la cual se puede contar con datos mucho más certeros del nivel de consumo en Ecuador.

Edwin Vargas desarrolla un sistema que permite generar esa información detallada, gracias a la genialidad de sus ideas de sistematización y adaptación a tecnologías adicionales al software.

BONO es un proyecto para determinar la distribución de gas licuado por parte del Estado mediante el uso de dispositivos RFID para el control de la demanda territorial de consumo y la forma de cancelación mediante un bono popular de subsidio.

DSN_XP:

Se requiere el  modelado tanto a los aspectos de despliegue de la solución, así como una narración técnica de las posibles aplicaciones que pueden darse al considerar este proyecto en la magnitud de su implementación a nivel nacional.




Para lograr la abstracción del proyecto, se recurre a las perspectivas técnicas de diseño propuestas por el modelo arquitectónico de  Kruchten y su estándar UML.

La característica especial de poder implementar componentes lógicos de control como los dispositivos remotos y los protocolos de comunicación fueron posibles por las nociones de interfaz y de nodos de procesamiento y control.

Una vez más que DSN_XP y sus artefactos de diseño estaban en la capacidad de abstraer hasta este momento cualquier tipo de proceso, procedimiento, actividad, tarea, etc.

DSN_XP y su framework

DSN_XP Framework

Estructura conceptual del framework DSN_XP
DSN_XP fue inicialmente conceptuado como método de investigación, luego se amplió su cobertura de aplicación a un conjunto de: herramientas, buenas prácticas, artefactos y modelos que fueron tomados de nuestra investigación sobre metodologías de desarrollo de software, hasta considerarnos como una metodología de análisis y diseño (postergando la implementación y su desarrollo a proyectos experimentados con terceros).

Base de conocimientos

"Un framework es un diseño abstracto para una clase de aplicación en particular y usualmente consiste de un número de clases, las cuales puedes ser tomadas desde una librería de clases o pueden ser específicas de la aplicación." R. Johnson, B. Foote.

Conocimientos base de DSN_XP

Al respecto, el método se enfoca en el ¿Cómo? mientras que el marco de trabajo se enfoca en resolver una necesidad específica de uso mediante los componentes del framework. 

Componentes del framework

Al mirar que podíamos extender el uso de DSN_XP como método a otros contextos fuera del desarrollo de software, tuvimos la visión de emplear registros para analizar la eficacia del método y de sus componentes, ya sean estos propios o prestados de otros métodos, marcos de trabajo, buenas prácticas, etc. 

  • "Un framework ayuda a los desarrolladores a proveer soluciones a problemas de un dominio y mejorar el mantenimiento para dichas soluciones. 
  • Un framework provee una infraestructura bien diseñada y pensada que cuando se crean nuevas piezas, las mismas pueden ser sustituidas con un impacto mínimo en las otras piezas del framework." C. Nelson

Para poder adaptar otros artefactos, dentro del conjunto de herramientas de análisis y diseño requeridas por DSN_XP, realizamos de forma intuitiva (y reutilizable si fuese posible el contexto), comparaciones buscando un uso común, las metas las propiedades y la estructura que debe cumplir un marco de trabajo para ser considerado como tal. 

"Un framework es un diseño reutilizable para un sistema de software o subsistema, esto se expresa como el conjunto de clases abstractas y la forma en que sus casos colaboran para un tipo específico de software"  Gamma, E et al

 Experimentación

Para poder comprender la estructura de un marco de trabajo, analizamos otro marco de trabajo y debido al proyecto que participamos codirigiendo, fue posible aplicar SCRUM y con ello, comenzar a entender los aspectos que teníamos que reforzar para crear la versión 3.0 como marco de trabajo DSN_XP para contextos que soporten los principios LEAN y Agile.

Inverse Refactoring

DSN_XP 3.0 REFACTORING

Mejora continua de DSN_XP

Kernel(3.0).Método.Drill()
Toda metodología contiene en principio una filosofía de diseño, DSN_XP desde su versión 0.1 ha trabajado con la ingeniería inversa como driver para el diseño de su marco de trabajo documental.

El kernel que estamos desarmando en estos momentos contiene en su interior los artefactos necesarios para comprender a otros métodos y replicarlos mediante experimentación para descubrir las capacidades del artefacto investigado.

Kernel(3.0).Método.Drill()

DSN_XP y Twitter

Twitter como canal de expresión de ideas


Agradecemos (mientras realizamos una investigación) a Twitter por permitirnos un medio en el cual podemos expresar nuestras ideas, inferencias, conclusiones, etc.

Muchos de nuestros seguidores [@DSN_XP] en twitter nos recomendaron que hagamos un blog en el cual podamos plasmar toda aquella información que habíamos manifestado mediante nuestros tweets para seguirnos adecuadamente en nuestras investigaciones.

Les manifestamos entonces que utilicen una lista o filtren nuestros mensajes por #DSN_XP para un adecuado seguimiento, pese a esta indicación, insistieron en la idea de un blog.

Una vez creado el blog, comprendemos que tenían mucha razón en su demanda y por ello dedicamos este post para agradecer su gentileza y adoptar esta mejora en el manejo del contenido acerca de DSN_XP.

Informamos también a nuestros seguidores y usuarios, que pese a que existe este blog, seguimos requiriendo los servicios de un micro blog como Twitter, pues necesitamos expresar nuestras ideas durante una investigación para registro público y propiedad intelectual de su contenido :o)

ARQUITECTURA DSN_XP

DSN_XP y el tablero de ideas

DSN_XP.Tablero



Necesitábamos un tablero de ideas para organizar formalmente los lineamientos propuestos por DSN_XP como escuela de pensamiento sobre el diseño de software en Ecuador.

Decidimos aplicar DSN_XP para hacer ingeniería inversa a DSN_XP como metodología de investigación científica del software.

La idea de crear un tablero como blog fue posible gracias a las sugerencias de varias personas que desean seguir nuestras ideas ya sea por curiosidad, porque les parece interesante, porque necesitan referencias, etc.

Tablero

  • Este blog está escrito en español porque toda la información técnica acerca del software usualmente suele estar escrita en inglés y es necesario para América Latina propagar el conocimiento en español :o)
  • Este blog está dedicado a publicar nuestras investigaciones (desde el año 2003) sobre la ingeniería de software y recopila todos aquellos comentarios teóricos que hemos publicado en varios sitios de la Internet, esperamos que nuestras investigaciones sean de apoyo para nuestros lectores y usuarios.

DSN_XP


  • DSN_XP es un marco de trabajo que originalmente fue creado para aplicar ingeniería inversa al diseño y desarrollo de software (esto es ingeniería de software)
  • Como el software se ha convertido en una herramienta fundamental para los negocios, por extensión también probamos que DSN_XP puede aplicarse para la ingeniería inversa al mundo de los negocios
  • Una vez que aplicamos DSN_XP tanto al diseño de software como al diseño de procesos del negocio, pudimos aplicar DSN_XP al estudio del comportamiento humano y el proceso del pensamiento en base al diseño de modelos (a esto lo denominamos como perspectivas)
DSN_XP como metodología (estudio del método) tiene la capacidad de adoptar cualquier artefacto definido en otros métodos y recomendar su aplicación en cierto contexto de uso. DSN_XP utiliza un marco de trabajo basado en los principios propuestos por el manifiesto ágil.

DSN_XP es un producto Ecuatoriano y por lo tanto en espíritu es libre por lo cual recomendamos su utilización para consultas o soporte teórico en la ingeniería de software.

DSN_XP y Fail Fast de Chile Ágil

Fail Fast y Chile Ágil

Estimados Chile Ágil (@ChileAgil) agradecemos la oportunidad que nos dieron de poder expresar nuestras ideas como DSN_XP en el portal FAIL FAST de su dominio.


Agradecemos a Agustín Villena por la confianza depositada en DSN_XP y ponemos a su disposición este blog para transmitir las ideas expresadas por Chile Ágil sobre el movimiento ágil en Chile.

Nuestra intención es también formar la comunidad ágil en Ecuador por lo que estaremos modificando este post con los avances hacia este objetivo.



DSN_XP y las redes sociales

Nuestras redes sociales



Nota: desde el 11 de abril del 2021 cerramos nuestros canales oficiales tanto en facebook como en twitter por temas internos relacionados con el uso de nuestro datos y la manipulación del algoritmo base de estos dos canales.

Queremos dejar constancia de aquellas personas que nos aconsejaron utilizar herramientas sociales para la difusión de nuestras ideas :o)

Twitter: @jlsandovaln @byriton @edwinvargaslara, @runakawsai, @jorgegamba, @agustinvillena
Facebook: Centro el Pungu

DSN_XP está en constante evolución y aprendizaje, paradójicamente, este comportamiento también lo sufren los codificadores mientras adquieren experiencia en el desarrollo de software, esta observación nos permitió poder realizar ingeniería inversa de las redes sociales.

Para comprender las redes sociales debemos por principio desarmar su contexto de uso y de allí la necesidad de forzar el modelo para identificar los límites de la abstracción, es por esta causa, que la forma en la cual nosotros utilizamos tanto Facebook como Twitter rompen los esquemas o estereotipos comúnmente aceptados para estas redes sociales.

DSN_XP había publicado cientos de conceptos en la Internet pero no tenía la gobernanza de su contenido, la idea de aceptar el reto y experimentar con las redes sociales (en estos momentos con herramientas para un blog) nos ha permitido captar en nuestros registros una cultura alrededor de este fenómeno denominado "Redes sociales".

Por lo tanto el contenido de este post u otros se irá modificando mientras más afinado se encuentre el modelo de la idea que deseamos transmitir para una mejor comprensión sobre DSN_XP.

DSN_XP y la mindset comunitario

El estudio de la comunidad 

DSN_XP estudia dentro de su perspectiva TEAM VIEW, todos aquellos aspectos relacionados con el ser humano y su proceso formativo y colaborativo.

Mindset

Este es uno de los tantos términos que tenemos que abarcar para poder igualar lenguaje con terceros que generan contenido que es utilizado por la comunidad para discutir ideas.  Dentro de nuestros estudios, habíamos tenido acercamientos con el concepto de "Cosmovisión" siendo esta la palabra que describía la forma de contemplar al mundo desde un rol de observador.

Para contextos LLM, la definición de Mindset es:

El mindset se refiere a la mentalidad fija o de crecimiento que influye en cómo las personas abordan los desafíos, el fracaso y el éxito. No es solo una creencia sobre uno mismo, sino una forma de ver el mundo.

La psicóloga estadounidense Carol S. Dweck acuñó y popularizó el término "mindset" en su libro de 2006, "Mindset: The New Psychology of Success" . Dweck, una de las principales investigadoras mundiales en los campos de la personalidad, la psicología social y del desarrollo, ha dedicado su carrera a estudiar por qué algunas personas prosperan frente a los reveses y otras se desmoronan. Su trabajo en la Universidad de Stanford sentó las bases para la comprensión de que la mentalidad no es una cualidad innata, sino algo que se puede cultivar.

Ahora bien, todos los aspectos relacionados con el uso del lenguaje para el entendimiento del ser humano tanto como individuo como colectivo, nos motivaron a estudiar estos aspectos desde varias áreas del conocimiento como la filosofía, la psicología, la política y el desarrollo social, por lo que tuvimos que adaptar un nuevo componente de estudio al marco de trabajo DSN_XP 

Comunidad

Cuando comenzamos a experimentar con la metodología propuesta por XP o Programación Extrema, la parte que nos llamó mucho la atención fue la necesidad implícita de una disciplina interna mental para la mejora continua del programador y su colectivo asociado o equipo de desarrollo, si deseabas que la palabra extremo sea apropiada para definir al más apto para la codificación de la solución buscada.

DSN_XP y los Casos de uso

 Advanced Use Cases

DSN_XP y el modelado avanzado de casos de uso
DSN_XP desde su versión 1.0 adoptó para efectos de modelado avanzado, el uso de UML como guía para la generación de documentos basados en el pensamiento visual y la necesidad de un modelo que represente los límites del proceso de abstracción.

Use Case

De todos los artefactos que hemos estudiado al desarmar las diversas escuelas de modelado de soluciones software y la historia del software, nos sentimos inmediatamente identificados con el modelo de casos uso, luego entenderíamos que esta naturalidad de nuestro confort en el uso de los casos de uso, se debía a nuestro razonamiento descendente proveniente de la programación estructurada e incluso de la programación orientada a la sintaxis y formatos con Fortran y Cobol, pasando por la programación dirigida por las etiquetas y/o subrutinas.

Cuando encontramos los casos de uso, notamos que consideraban dos dimensiones que más tarde darían forma a las perspectivas Software View y Business View, justamente por el uso de la palabra CASE que nos permitía encapsular observaciones en abstracciones delimitadas por la usabilidad que representaba el escenario observado y el conjunto de casos de control o comportamiento que se encapsulaban en esa observación. 


¿Qué es un modelo de caso de uso?

Estudio realizado en base a este artículo que hacemos referencia por la importancia del modelo de casos de uso dentro de los requisitos de software. Comprender los fundamentos de los modelos de casos de uso y poder crear su propio modelo de casos de uso, como comprender ¿Qué es una especificación de casos de uso?, e intentar aplicar casos de uso y el modelado avanzado con los modelos de casos de uso.

Definición

El modelo de caso de uso se utiliza para definir los elementos y procesos centrales que componen un sistema. Los elementos clave se denominan "actores" y los procesos se denominan "casos de uso". El modelo de casos de uso muestra qué actores interactúan con cada caso de uso. Esta definición establece de qué se compone principalmente un modelo de casos de uso: actores y casos de uso.

Un modelo de caso de uso debe capturar los componentes funcionales del sistema. Realza los procesos comerciales dentro del sistema. Mientras recorre su sistema, aprenderá importantes atributos del sistema que captura en el modelo de caso de uso. Debido a que los modelos de casos de uso son simples por naturaleza, están libres de jerga técnica, los modelos de casos de uso son una excelente manera de generar flujos de guiones gráficos con los usuarios. 

Los modelos de casos de uso tienen otra función fundamental. Los modelos de casos de uso definen los requisitos del sistema que se modela y ayudan a redactar los escenarios que se utilizarán posteriormente en las pruebas.

¿Qué es un modelo de caso de uso de UML (modelo de caso de uso) y cuándo debería utilizarlo?

Los modelos de casos de uso de UML se pueden utilizar para describir la funcionalidad de un sistema de forma horizontal. Es decir, en lugar de simplemente representar los detalles de las características individuales de su sistema, los modelos de casos de uso se pueden utilizar para mostrar toda su funcionalidad disponible. Sin embargo, es importante tener en cuenta que los modelos de casos de uso son fundamentalmente diferentes de los diagramas de secuencia o diagramas de flujo porque no intentan representar el orden o el número de veces que las acciones y subacciones del sistema deben ejecutarse. Hay varios ejemplos gráficos en estas preguntas frecuentes; es posible que desee examinarlos para familiarizarse con su aspecto.

Los modelos de casos de uso tienen solo 4 elementos principales: 
  1. los actores con los que interactúa el sistema que está describiendo, 
  2. el sistema en sí, 
  3. los casos de uso o servicios que el sistema sabe cómo realizar y 
  4. las líneas que representan las relaciones entre estos elementos.
Debe utilizar modelos de casos de uso para representar la funcionalidad de su sistema desde una perspectiva de arriba hacia abajo (es decir, de un vistazo, la funcionalidad del sistema es obvia, pero todas las descripciones están en un nivel muy alto. Más adelante se pueden agregar más detalles a la diagrama para dilucidar puntos interesantes en el comportamiento del sistema).

Ejemplo: Un modelo de caso de uso se adapta bien a la tarea de describir todas las cosas que se pueden hacer con un sistema de base de datos, por todas las personas que podrían usarlo (administradores, desarrolladores, personal de entrada de datos).

NO debe utilizar modelos de casos de uso para representar un comportamiento de excepción (cuando ocurren errores) o para intentar ilustrar la secuencia de pasos que se deben realizar para completar una tarea. Utilice diagramas de secuencia para mostrar estas características de diseño. 

Ejemplo: Un modelo de caso de uso no sería adecuado para describir el protocolo de red TCP / IP, porque hay muchos casos de excepción, comportamientos de ramificación y funcionalidad condicional (¿Qué sucede cuando un paquete se pierde o se retrasa, qué pasa cuando la conexión se interrumpe? )

¿Cuáles son los componentes de un modelo de caso de uso?

Los componentes clave del modelo de casos de uso son los propios actores, los casos de uso vinculados a los actores, los límites donde se ubican los casos de uso y las asociaciones entre los componentes anteriores. 

Al revisar el material a continuación y leer el ejemplo a continuación, debería poder obtener una buena comprensión para construir su propio modelo de caso de uso.

¿Cómo saber quiénes son los actores en un modelo de caso de uso?

Cuando se trabaja desde una tabla Acción / Respuesta, identificar los actores es fácil: las entidades cuyo comportamiento aparece en la columna “Acciones del actor” son los actores y las entidades cuyo comportamiento aparece en la columna “Respuesta del sistema” son componentes del sistema.
Si está trabajando desde una narrativa informal, un diagrama de secuencia o una descripción de escenario, los actores suelen ser aquellas entidades cuyo comportamiento no puede controlar o cambiar (es decir, agentes que no son parte del sistema que está construyendo o describiendo). los candidatos más obvios para los actores son los humanos en el sistema; excepto en casos raros cuando el sistema que está describiendo es en realidad un proceso humano (como un método específico para tratar con los clientes que los empleados deben seguir), los humanos con los que debe interactuar serán todos actores. 

Si su sistema interactúa con otros sistemas (bases de datos, servidores mantenidos por otras personas, sistemas heredados), será mejor que los trate también como actores, ya que no es su comportamiento lo que está interesado en describir.

Ejemplo: al agregar un nuevo sistema de base de datos para administrar las finanzas de una empresa, su sistema probablemente tendrá que interactuar con su software de administración de inventario existente. Dado que usted no escribió este software, no tiene la intención de reemplazarlo y solo usa los servicios que proporciona, tiene sentido que ese sistema sea un actor.

¿Cómo sabe qué poner en el cuadro "Sistema" del modelo de caso de uso?

El cuadro del sistema solo aparece en el diagrama de nivel superior (recuerde que una descripción típica de caso de uso de UML estará compuesta por muchos diagramas y sub-diagramas) y debe contener óvalos de casos de uso, uno para cada servicio de nivel superior que proporciona su sistema. a sus actores. 

Cualquier tipo de comportamiento interno que pueda tener su sistema y que solo sea utilizado por otras partes del sistema no debería aparecer en el cuadro del sistema. Una forma útil de pensar en estos servicios de nivel superior es la siguiente: si un caso de uso representa un servicio de nivel superior, entonces debería tener sentido que los actores que interactúan con él soliciten solo ese servicio de su sistema en una sola sesión. (en cualquier sentido, una "sesión" es inteligible en su sistema).

Ejemplo: en el siguiente diagrama, nos gustaría representar los casos de uso de una cámara. 

Supongamos que elegimos "Abrir obturador", "Flash" y "Cerrar obturador" como los casos de uso de nivel superior. Ciertamente, todos estos son comportamientos que tiene una cámara, pero ningún fotógrafo tomaría su cámara, abriría el obturador y luego la dejaría, satisfecho con su sesión fotográfica del día. Lo fundamental que hay que tener en cuenta es que estos comportamientos no se realizan de forma aislada, sino que son parte de un caso de uso de más alto nivel, "Tomar una foto". (Tenga en cuenta que tiene sentido que un fotógrafo "tome una foto" solo una vez durante una sesión con su cámara).

Los actores de mi modelo de casos de uso tienen interacciones. ¿Cómo los represento?

Si hay interacciones entre los actores de su sistema, no puede representar esas interacciones en el mismo diagrama que su sistema. Lo que puede hacer en su lugar es dibujar un modelo de caso de uso separado, tratando a uno de los actores en sí mismo como un sistema y ​​su sistema original (junto con los otros actores) como actores en este nuevo diagrama.

Ejemplo: suponga que desea diagramar las interacciones entre un usuario, un navegador web y el servidor con el que contacta. Dado que solo puede tener un sistema en el diagrama, debe elegir uno de los "sistemas" obvios, como el servidor. 
Es posible que luego se sienta tentado a trazar líneas de interacción entre los actores, pero esto es un problema porque no está claro qué significa la interacción, por lo que no es útil mostrarlo aquí. Una solución más útil sería dibujar dos diagramas que muestren todas las interacciones, como se muestra a continuación.

¿Los modelos de casos de uso muestran secuencias o procedimientos? 

Usando un modelo de caso de uso de UML, no puede. 
Los modelos de casos de uso están pensados ​​para ser una descripción horizontal de arriba hacia abajo de la funcionalidad, no una descripción detallada del comportamiento. En su mayor parte, no es una buena idea intentar representar secuencias de acciones con modelos de casos de uso. En su lugar, debería utilizar un diagrama de secuencia o un diagrama de flujo tradicional. (Es posible representar condiciones de ramificación simples con un modelo de caso de uso, como se describe a continuación, pero debe usar esta técnica con moderación porque puede hacer que un diagrama sea ilegible).

¿En qué se diferencia un modelo de caso de uso de UML de un diagrama de flujo tradicional?

Como se mencionó anteriormente, los modelos de casos de uso representan la funcionalidad de arriba hacia abajo, mientras que los diagramas de flujo representan el comportamiento de una manera lineal basada en el tiempo. Además, la forma en que los desarrolla es completamente diferente.

Ejemplo: (Este texto se refiere a los siguientes diagramas). 

Al construir un modelo de caso de uso, el paso inicial es identificar todo el comportamiento de nivel superior. Una vez que haya hecho esto (un proceso no muy complicado), ya ha descrito, al menos de una manera de alto nivel, todas las cosas que su sistema sabe hacer. 

Luego, puede continuar agregando detalles al descomponer sus casos de uso en más casos de uso que son utilizados por los casos de uso de nivel superior. Sin embargo, en cada etapa del desarrollo, su modelo de caso de uso es una descripción completa de la funcionalidad del sistema: puede carecer de detalles, pero no carecerá de elementos de conjunto de características. 

Y si se agrega o elimina funcionalidad o comportamiento durante la vida de su proyecto, el alcance del cambio que necesita hacer es proporcional tanto al alcance del cambio en el sistema como a la madurez de su modelo. Esto es útil porque significa que cuando su modelo es muy joven (solo se dibujan diagramas de alto nivel), realizar cambios radicales en el sistema no implica perder mucho trabajo. Sin embargo, un diagrama de flujo no describe correctamente el sistema hasta que haya terminado de dibujarlo, e incluso entonces, pequeños cambios en el sistema darán como resultado una reelaboración significativa de sus diagramas de flujo. En general, los modelos de casos de uso respaldan el proceso de análisis y diseño mucho mejor que los diagramas de flujo.

¿Cuándo debo usar la flecha de usos en un modelo de caso de uso?

La flecha de usos (o usa un límite como se llamaría en la teoría de grafos tradicional) se extrae de un caso de uso X a otro caso de uso Y para indicar que el proceso de hacer X siempre implica hacer Y al menos una vez (aunque puede implicar hacer muchas veces, "al menos una vez" es la única relación garantizada por este símbolo.) Este símbolo puede denominarse operador de agregación, porque indica que un caso de uso dado es un agregado (formado por partes) cuyos componentes son los casos de uso que utiliza. Si un caso de uso determinado usa varios otros, eso significa que todos los casos de uso de componentes deben completarse en el proceso de completar el caso de uso agregado, aunque no hay una especificación en los Modelos de casos de uso del orden en que se completan. Una breve,

Ejemplo: suponga que desea agregar detalles al diagrama que se muestra a continuación, que representa el sistema de reserva de una aerolínea. Primero, crearía un diagrama separado para los servicios de nivel superior y luego agregaría nuevos casos de uso que conforman los de nivel superior. 

Hay un margen de usos de “Facturar pasajero” a “Pesar equipaje” y de “Facturar pasajero” a “Asignar asiento”; esto indica que para poder facturar un pasajero, se debe pesar el equipaje y asignar un asiento. De igual forma, el diagrama indica que para agregar una reserva al sistema se debe verificar el espacio disponible y se debe registrar la información del pasajero. Podrías imaginar desglosar estos casos de uso para mostrar más detalles.

¿Cuándo utilizo la flecha de extensión?

La flecha de extensión (o borde de extensión) se extrae de un caso de uso X a un caso de uso Y para indicar que el proceso X es un comportamiento de caso especial del mismo tipo que el proceso más general Y. Utilizaría esto en situaciones en las que el sistema tiene varios casos de uso (procesos) que tienen algunas subtareas en común, pero cada uno tiene algo diferente que hace que sea imposible agruparlos todos juntos en el mismo caso de uso.

Ejemplo: suponga que desea agregar detalles al diagrama que se muestra a continuación, que representa el sistema de reserva de una aerolínea. Específicamente, lo que le gustaría mostrar es que no todos los asientos a bordo del avión son exactamente iguales (algunos en las ventanas y otros en los pasillos) y, a veces, los pasajeros expresarán una preferencia por uno de estos tipos de asientos pero no por el otro. Pero, por supuesto, no se les puede dar su preferencia de inmediato, porque el asiento que desean podría no estar disponible. Por lo tanto, el proceso de asignación de un asiento junto a la ventana implica verificar la disponibilidad de asientos junto a la ventana, mientras que el proceso de asignación de un asiento en el pasillo implica verificar la disponibilidad de los asientos en el pasillo. Pero a pesar de que estos procesos son diferentes, son bastante similares en varias otras formas, por lo que no tiene sentido ignorar sus similitudes. Por suerte,

¿Cuál es la diferencia entre usos y extensiones?

Para el concepto de generalización, un caso de uso describe una variación de otro caso de uso, use un enlace de generalización. En el siguiente ejemplo, el límite de casos de uso excedido describe una situación en la que no se realiza el escenario habitual de compra en línea. Los casos de uso que generalizan otro caso de uso solo deben especificar un escenario alternativo, incluso excepcional, al caso de uso que se está generalizando. El objetivo general de los casos de uso debe ser el mismo.

Para el concepto de extensión, en algunos casos desea describir una variación en el comportamiento de una forma más controlada. En tales casos, puede definir puntos de extensión en el caso de uso extendido. En el siguiente ejemplo, se dice que la búsqueda por nombre extiende la búsqueda en el punto de extensión del nombre. El enlace de extensión está más controlado que el enlace de generalización, ya que la funcionalidad solo se puede agregar en los puntos de extensión.

Armado de su modelo de caso de uso

Al iniciar un modelo de caso de uso (o modelo de caso de uso), es muy importante mantenerlo simple. A menudo, es más fácil determinar primero los actores del sistema y luego eliminar los casos de uso que realizan. Sus modelos de casos de uso pueden ser tan simples o complejos como desee, sin embargo, los diagramas más simples y menos desordenados son más fáciles de entender y, a menudo, son más poderosos para capturar las tareas del sistema.

DSN_XP y el proyecto AMBAR

Sistema de ticketing AMBAR

Año: 2006
Localidad: Quito
Institución: Aerolíneas Galápagos
Autor: Edwin Vargas Lara



DSN_XP: 

Participó documentando técnicamente el sistema AMBAR para la generación de reservaciones, itinerarios, emisión de tickets y reporte de ventas, el sistema fue diseñado y desarrollado por Edwin Vargas Lara para la aerolínea privada más grande del Ecuador Aerogal.

La documentación técnica se generó mediante modelos UML bajo los principios del diseño orientado a objetos, lo que permitió abstraer los procesos involucrados en:
  • la generación de reservas (planificación de vuelos, asignación de flota, itinerarios, rutas, etc.)
  • manejo de puntos de venta (agencias IATA/no IATA, puntos propios incluido la Web, cuentas corporativas, distribuidores, etc.) 
  • manejo de reservaciones (reservaciones, cancelados, manejo de grupos, tiempos límite, etc.)
  • manejo de inventario de ticktes (distribución, descarga de inventarios, etc.)
  • manejo de itinerarios (cambios, cancelaciones y publicación de vuelos por rutas y frecuencias, etc.)
  • emisión de documentos de tráfico (tickets, PTAs, MPDs, revisiones, exchange, etc.)
  • manejo de formas de pago (contado, crédito, tarjeta, prepagos, aerobonos, reportes de ventas, estados de cuenta, etc.)
  • chequeo en aeropuertos (No show, Go show, cancelaciones por operaciones involuntarias, etc.
Todos estos procesos importantes al rededor de la generación de las reservas y la emisión de los boletos de venta para una aerolínea, fueron automatizados mediante el sistema AMBAR por lo que había que modelarlos bajo la perspectiva del negocio y transformarlos en modelos bajo la perspectiva del software y que definían la arquitectura del sistema AMBAR, comprobándose una vez más que DSN_XP y sus artefactos de diseño estaban en la capacidad de abstraer hasta este momento cualquier tipo de proceso, procedimiento, actividad, tarea, etc.


Para poder agrupar las diversas funcionalidades que participaban en un escenario funcional (usualmente asociado a un departamento o unidad administrativa de una aerolínea y conforme lo determinaba incluso las reglas IATA), recurrimos a la noción de paquete y su propiedad como contenedor para poder distribuir los casos de uso de la programación soportada por el sistema.


Muchas de las decisiones técnicas estaban destinadas a soportar la demanda de diseño de un sistema complejo como lo es el conjunto de procedimientos tanto en cielo como en tierra respecto a cómo debe administrarse la data para que luego de procedimientos de ajustes y registros contables, pueda determinarse un dominio de datos centralizados en cuanto fuese posible por Ambar y su estructura de datos.

Se utilizó un paradigma de diseño de Cliente / Servidor desplegado localmente (pero con cobertura nacional operativamente hablando gracias a la tecnología Web aplicada en su diseño).




Dada la complejidad operativa de una aerolínea, la navegabilidad del sistema contemplaba muchos estados compartidos por los objetos del negocio que debían ser registrados adecuadamente y luego adaptados a los ajustes operativos que sufren entidades como los boletos y su capacidad anual de vida operativa bajo principios IATA.

Para lograr controlar los cambios en la documentación técnica debido a los continuos cambios en los diversos escenarios de usabilidad, adoptamos los principios de OOHDM para lograr establecer una estrategia de control de los atributos de estado de los diversos objetos que coexisten en el proceso de comercialización de una aerolínea.

DSN_XP y nuestro Sherpa en agilidad

 SHERPA AGILISTA



DSN_XP entra en contacto con Agustín Villena cuando iniciamos nuestro viaje de experimentación de los métodos ágiles; como marco de trabajo, nuestro mirar siempre abarcó Ecuador, sin embargo, al comenzar a trabajar en entornos internacionales de foros y grupos de trabajo, siempre resaltó la imagen de un luchador del pensamiento sistémico latinoamericano, de un hacker cultural, siendo este detalle lo que nos impresionó de tan grata manera a nuestro mirar, que consideramos actualmente a Agustín Villena como una de las mentes que tiene influencia en las bases de conocimiento que utiliza DSN_XP.

Nuestra gratitud por su mirar y por considerarnos dignos de mirar junto a él la forma como impacta el marco agilista en el mundo entero y de forma especial en Latinoamérica siendo Chile su centro de acción.


La necesidad de investigar, de experimentar, de ordenar sistémicamente la información, de mirar profundo en los aspectos intelectuales de la sociedad, de la comunidad, del poder de transformación interno y el gesto humilde de acompañar a otros para que estos desarrollen su potencial máximo en la búsqueda de una meta común en beneficio de la humanidad lo convierten en el primer SHERPA que hemos conocido en nuestro caminar siguiendo los pasos de aquellos grandes hombres que se convierten en actores para DSN_XP.



DSN_XP y las enseñanzas de Craig Larman

UML Y PATRONES

Larman Craig

DSN_XP entra en contacto con la fuente de conocimientos de Craig Larman, mientras realizábamos nuestra investigación sobre el diseño orientado a objetos.

Larman también influyó en nuestro estudio sobre UML como lenguaje de modelado y con las primeras nociones respecto al uso de patrones de diseño.


En 1997, Larman fue el autor de Applying UML and Patterns: An Introduction to Object-Oriented Analysis & Design , un libro de texto muy popular que contribuyó a la posterior adopción generalizada del desarrollo orientado a objetos. 

En este libro nos permitió conocer sobre los principios GRASP de diseño orientado a objetos, contribuyendo a la codificación de los principios de diseño de software e impactando en el modelado y documentación técnica de los proyectos que participamos.

GRASP como escuela de diseño

General Responsibility Assignment Software Patterns
Cuando fuimos entrenados en la época de la programación estructurada, las estructuras de diseño utilizaban el patrón fundamental de fragmentar la complejidad en factores funcionales que puedan controlar el flujo de transformación de la DATA y el control de los eventos que determinan la dirección del flujo o algoritmo de resolución del problema.

Como DSN_XP encontramos que GRASP como escuela de diseño, hace referencia de forma exclusiva a todo el ciclo de desarrollo de software y académicamente nos fue de gran influencia en la forma en la cual versionamos DSN_XP y limitamos nuestra primera versión de forma exclusiva al análisis y diseño para postergar en las diferentes versiones las fases restantes del modelo de desarrollo de software.
  • Fase de planeación y de elaboración 
  • Fase de análisis
  • Fase de diseño
  • Fase de construcción
Este fenómeno por los años 1995 al 2000 exigían a los proyectos nacionales de desarrollo de software, el presentar una  documentación técnica acompañando a la solución final codificada y es en este contexto que mundialmente se presenta la crisis del software respecto a las guerras metodológicas que darían paso en la actualidad a las escuelas de diseño AGILE