Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ISP Superior
Pascal
objetivos 4
programa 4
material 6
clases
clase 1 | 7
clase 2 | 23
clase 3 | 38
clase 4 | 46
clase 5 | 52
clase 6 | 61
clase 7 | 65
clase 8 | 84
clase 9 | 103
clase 10 | 113
clase 11 | 135
clase 12 | 138
evaluación integradora 146
Entonces al combinar estos dos conceptos dejamos un poco más clara la idea,
el ‘Análisis de Requerimiento’ consiste en desmenuzar los requisitos que nos
plantearon los clientes y otros interesados sobre el software a construir.
Esta expresión ‘de alguna manera’ es lo que ubica a esta materia dentro del
programa de la tecnicatura. Para comenzar el desarrollo debemos primero saber
QUE debemos programar. Para comenzar a desarrollar debemos primero saber
COMO hacer para saber QUE debemos programar.
La respuesta es simple, es muy difícil que el usuario y los interesados sepan con
exactitud lo que quieren y que hayan pensado todas las alternativas posibles.
Es más no solo están los variados usuarios que puede tener un sistema, cada
uno con su visión diferente sino que existen otros interesados, el cliente que
pone el dinero para el desarrollo, las políticas de la organización, las leyes de
la región, y otra gran variedad, y muy posiblemente los requisitos apunten a
distintos objetivos: el dueño de la empresa va querer que el software salga lo
menos posible y por lo tanto su funcionalidad va a ser la mínima indispensable,
pero el usuario final va a querer que su funcionalidad sea la máxima posible que
simplifique su trabajo.
Les cuento cómo organizaremos las clases: las dos primeras nos van a introducir
en el concepto de requerimiento, la clasificación de los mismos y la importancia.
Luego, en las clases 3, 4 y 5 continuaremos con las técnicas de relevamiento.
Las clases 6, 7 y 8 las vamos a dedicar al análisis y modelado. Luego vamos
a aprender a informar sobre los requerimientos, para su validación para dar a
conocer su estado. Finalmente, la última clase será para unir todo lo que vimos
en un proceso integral de gestión de requerimientos que puede ser utilizado
dentro de un modelo de desarrollo.
¡Adelante!
objetivos
• Comprender y valorar los requerimientos y su importancia con el fin de
conocerlos y que sean base de las técnicas.
• Conocer y aplicar las distintas técnicas de relevamiento, análisis y
verificación de los requerimientos con el fin de aplicarlas en el ejercicio
de la profesión.
• Desarrollar un proceso de gestión de los requerimientos y de sus cambios
con el fin de aplicarlo en el ejercicio de la profesión y comprometer al
resto del equipo de desarrollo en su uso.
programa
Módulo 1: Introducción y Panorama General
• Desarrollado en las clases 1 y 2
Objetivos específicos
- Comprender el concepto de requerimiento y los distintos tipos de los mismos a
fin de tener una base firme del dominio del problema.
Contenidos
Concepto de Requisitos. Clasificación de los Requisitos. Requisitos del Dominio.
La importancia de los Requisitos.
Material complementario:
clase 1
El Concepto de Requerimiento.
tema 1
Los requerimientos son descripciones de aquello que los clientes solicitan que el
sistema/software haga y de las restricciones a cumplir mientras lo hace. Pueden
ser muy vagas o muy completas, hay una gran variedad. Cuanto más completas,
menos probabilidades de retrabajo habrá al construir sistema. Cuanto más vagas,
por el contrario, habrá más probabilidades de rehacer el sistema. A su vez, cuanto
más completos los requerimientos más certeras serán las estimaciones y mayores
las probabilidades de cumplirlas, y al revés, cuanto más vagas las estimaciones
menos posibilidades tendrán de ser ciertas.
Debemos también tener en cuenta que los requisitos no son fijos, cambian con el
tiempo, incluso durante el mismo período de desarrollo del software.
¿Y cómo se ve un requisito?
Quien releva los requisitos suele ser una persona que cumple el rol de ‘analista
de sistemas´. Un analista es alguien capaz de analizar y de descomponer un todo
en partes y encontrar las relaciones entre ellas. En la frase anterior mencionamos
‘un todo’, y justamente ese ‘todo’ es el punto de partida de las especificaciones.
Atención, ¿la ‘suposición’ parece correcta no? Sí, puede serlo, pero puede que
no. Es fundamental que al relevar requerimientos NO SE SUPONGA, sino que
todo se averigüe y se confirme. Si suponemos, el supuesto debe ser corroborado.
No, no eran aviones, eran trenes. No debemos suponer acerca de ese ‘todo’
del cual parten los requerimientos (o requisitos). Debemos verlo todo, debemos
escucharlo todo, debemos comprenderlo todo, para poder luego especificarlo en
un nivel de detalle suficiente para el desarrollo.
Aparecieron aquí dos requisitos del usuario final. El analista continua su recorrido
Los requisitos como habremos observado hasta aquí pueden ser tan complejos
como queramos o necesitemos o así se imponga. Un requisito vago, como
el primero de la serie anterior no es un mal requisito, no es el ideal, pero es
suficiente para comenzar a desarrollar. Durante el desarrollo mismo, el testing o
el uso en producción surgirán las preguntas que nos llevarán a detallar cada vez
el requerimiento hasta llegar a la versión más avanzada. Sólo que en estos casos
va a implicar modificaciones a un soft existente e incluso en producción.
Conclusión: cuanto antes en el ciclo de vida del software y cuanto más detallado,
mejor.
Si nos atenemos a la norma IEEE 830 Std. La palabra correcta a utilizar es Requisito.
Ahora, a los fines prácticos y dentro del contexto donde nos desenvolvemos,
podemos utilizar estos términos de manera intercambiable, pero, a los fines de
este curso vamos a distinguirlos.
Requisitos del sistema: “son descripciones más detalladas de las funciones, los
servicios y las restricciones operacionales del sistema de software. El documento
de requerimientos del sistema (llamado en ocasiones especificación funcional)
tiene que definir con exactitud lo que se implementará. Puede formar parte del
contrato entre el comprador del sistema y los desarrolladores del software”.
(Tomado de Ing. de Software 9° ed. Ian, Sommerville)
Entonces, son dos puntos de vista del mismo pedido, el del usuario a muy alto
nivel y el del sistema más detallado. Veamos un ejemplo:
Req. del Usuario: al final del día necesitamos un listado que nos permita hacer el
cierre de las cajas.
Actividad
1- Lea detenidamente el siguiente texto y si es necesario
reléalo.
2- Descubra en él un requerimiento funcional y
expréselo como requerimiento de usuario.
3- Luego descubra un requerimiento no funcional.
Los “requisitos del producto” son los que especifican o restringen el comportamiento
del software. Por ejemplo: rendimiento, cantidad de memoria, tasa de fallas
máxima, requisitos de usabilidad.
Y ¿Por qué son importantes los requerimientos? No sólo porque son la indicación
de lo que se debe desarrollar, sino porque serán la medida con la cual obtendremos
el OK del trabajo.
Ejemplo:
Supongamos un Sistema de liquidación de impuestos, por ejemplo SIAP,
el proporcionado por AFIP. Hay conceptos del dominio que deben estar aquí
representados como base para poder levantar los requisitos:
- Impuesto
- Contribuyente
- Calendario de vencimientos
- Bien patrimonial
- Ganancia
- Ingresos Brutos
- Alícuota
- Base imponible
- …
BPMN: https://es.wikipedia.org/wiki/Business_Process_
Model_and_Notation
Mapa Mental: https://es.wikipedia.org/wiki/Mapa_mental
El próximo paso que vamos a dar es bajar estos conceptos a tierra realizando
una actividad práctica:
Actividad 1: Componentes del dominio de un sistema
de facturación
Ahora, ¿es necesario que el 100% de los detalles se expresen por escrito?
¿Debemos llegar al punto de armar grandes documentos de especificaciones?
Esto último es lo que domina la escena actual. Y nació a principios del 2000, y con
la creación del manifiesto ágil dejó sentadas las bases. Copiamos a continuación
una parte de este manifiesto disponible en: http://agilemanifesto.org/iso/es/
manifesto.html
“Para el personal médico debe ser fácil usar el sistema, y este último debe
organizarse de tal forma que minimice los errores del usuario”.
Y luego expresado de una forma cuantitativa que nos permite de alguna forma
medirlo y conocer su cumplimiento.
Actividad
Le presentamos un par de requerimientos no-funcionales.
En base al cuadro mencionado en el último párrafo del texto
Ud. debe expresarlo de manera cuantitativa para poder
luego medirlo y afirmar si el mismo pudo ser satisfecho o no.
Platos: cualquiera de todos las comidas disponibles dentro del menú vigente para
una sucursal del restaurante.
Postres: cualquiera de todos los postres disponibles dentro del menú vigente para
una sucursal del restaurante.
Bebidas: cualquiera de todos las bebidas disponibles dentro del menú vigente
para una sucursal del restaurante.
Adicionales: ciertos servicios de mesa pueden implicar un costo, esto es variable
en el tiempo. Por ejemplo un panera puede o no implicar un costo, la sal no lo
implica, y cubiertos adicionales si lo implican.
Grupo de Comensales: un unión de comensales que comparten una o más mesas
pero que asisten a la sucursal del restaurante por el mismo motivo.
Comensales: una persona individual que realiza un pedido de algún plato, postre
o bebida que figura en el menú vigente para la sucursal.
Beneficio: un % de descuento sobre el precio de lista del plato, la bebida o el
postre, pero no sobre los adicionales.
Promoción: es la vigencia de un beneficio, para una sucursal y por un tiempo
determinado, expresado como un periodo de tiempo durante el día y la repetición
del mismo a lo largo de varios días determinados de la semana.
Apertura de una mesa: consiste en marcar una mesa como ocupada en el
sistema, indicando el nro. de comensales, la modalidad de facturación y dejando
al sistema atento a la entrada del pedido para ser despachado a la cocina o a la
bodega.
Req. 1: “El sistema debe ser rápido, no debo quedar esperando que cada pantalla
reaccione y me devuelva un dato”.
“El sistema debe ser rápido, no debo quedar esperando más de 5 segundos hasta
obtener una respuesta cuando:
- Realizo click en algún botón
- Abro una pantalla
- Abro un lista desplegable
- Presiono el botón de ayuda
- Tiempo algunas letras en un campo con autocompletado
”.
“El sistema debe ser fiable, puedo aceptar una factura errónea cada 250 emitidas
y un asiento contable erróneo cada 1000 aceptados por el sistema contable”.
clase 2
conclusiones
Es importante tener en cuenta, durante la etapa de relevamiento de requisitos y su
análisis, armar modelos y glosarios del dominio de la aplicación que favorezcan el
entendimiento entre los participantes del desarrollo, sienten sus bases y permitan
dar el OK de aceptación.
Es muy importante la forma en que se los expresa o el grado de detalle de los
mismos dado que el principal problema que se presenta es la ambigüedad de
entendimiento por parte de los distintos participantes del desarrollo.
Esta ambigüedad se minimiza en las metodologías tradicionales con
documentación más extensa y detallada y en las metodologías ágiles con el
fortalecimiento de los canales de comunicación.
clase 3
Relevamiento de la información – Los interesados.
tema 1
Los ingenieros de software deben realizar el relevamiento y análisis de los
requisitos. Aquí debemos trabajar con todos los interesados en el proyecto,
no sólo con el cliente (quien solventa económicamente el desarrollo) o con los
usuarios finales (quienes van a usar el proyecto).
La lista puede ser interminable. Ahora, es posible que muchos de los requisitos
plateados por muchos interesados estén ya en conocimiento de los usuarios
mismos del futuro software.
Respondiendo estas tres preguntas repetidas veces, por ejemplo, por medio de la
técnica de BrainStorming y utilizar, por ejemplo, Freemind como herramienta para
llevarla a cabo, obtendríamos una de las bases para comenzar el requerimiento:
el listado de interesados.
LECTURA COMPLEMENTARIA
Le sugerimos buscar y leer sobre la técnica BrainStorming https://
es.wikipedia.org/wiki/Lluvia_de_ideas y la herramienta Freemind
Leer
http://freemind.sourceforge.net/wiki/index.php/Main_Page
Los usuarios no siempre saben lo que quieren con el detalle que necesitamos
y solo pueden enunciarlo con una frase general.
Para finalizar este tema, presentamos dos ideas importantes a tener en cuenta:
1. Entrevistas / Encuestas
2. Escenarios
3. Prototipos
4. Reuniones moderadas
5. Observación
(Existen muchas más técnicas)
Estamos preguntando a los vendedores cómo realizan hoy en día el cobro con
tarjeta de crédito para darle soporte con el sistema, digamos, realizar un posnet
que funcione en la PC y descubrir mejoras.
Hay dos participantes: E – entrevistador y F – usuario:
Este ejemplo, es una entrevista típica con un usuario. Como vemos, sólo una
pregunta está pautada, preguntar cómo se realizaba el cobro con tarjeta, cuáles
son los pasos. Lo demás fue surgiendo de la charla misma. Tengamos en cuenta
este ejemplo para hacer la actividad 2.
clase 1
tema 1
Información complementaria 1
¿Qué es Entrevista?
Vale aclarar que dentro de este tipo de entrevista nos encontramos con una sub-
división de tres: entrevista a profundidad, entrevista enfocada y entrevista
focalizada.
Fuente http://concepto.de/que-es-entrevista/#ixzz504NqZDrT
Pasos:
- Seleccionar la tarjeta o pasarla por el posnet
- Seleccionar las cuotas
- Ingresar el importe
- Ingresar los últimos cuatro dígitos de la factura
Requisitos:
- Las cuotas no son de libre ingreso, se deben tomar de una lista
- La lista de cuotas debe mostrar las cuotas vigentes de la tarjeta elegida
o escaneada
- El sistema debe controlar que la tarjeta pasada por el posnet esté vigente
- El listado de tarjetas (si no se pasa por posnet) debe mostrar primero las
3 tarjetas más usadas y luego el resto alfabéticamente
clase 3
conclusiones
Lo que hemos visto hasta el momento nos permite discernir un paso previo a
realizar antes de comenzar el relevamiento:
- Pensar a quiénes, o a qué, vamos a relevar, tratando de no dejar
afuera a ningún interesado para que luego nuestro sistema no
encuentre oposición o esté incompleto.
Armar prototipos puede ser muy simple o muy complejo. Si usamos una
herramienta de prototipado es simple, si utilizamos el lenguaje de programación
elegido puede llegar a ser más complejo.
Ahora, como antes mencioné no debemos hacer prototipos muy elaborados, son
solo una ayuda al entendimiento con el usuario, para que entre todos tengamos
una visión compartida.
Una buena herramienta gratis para hacer prototipos es: Pencil Project https://
pencil.evolus.vn
Una vez armado un prototipo se concreta una nueva reunión con el usuario,
esta vez para mostrarle el prototipo y/o, si el mismo tiene cierta funcionalidad,
solicitarle que lo use. Llegados a este punto el profesional de sistemas debe
estar atento a los comportamientos de los usuarios cuando utilizan el prototipo y
al mismo tiempo escuchar el feedback por ellos proporcionado. Incluso es muy
bueno trabajar junto con los usuarios al realizar el prototipo explicándoles sobre el
uso de la herramienta de prototipado y haciendo los cambios mismos acordados
durante la reunión.
Los nuevos requisitos a los que debemos apuntar con el prototipo son:
• Una descripción de lo que esperan del sistema los usuarios cuando inicia
el escenario.
• Una descripción del flujo normal de los eventos.
• Una descripción de lo que puede salir mal y cómo se manejaría.
• Información de otras actividades que estén en marcha al mismo tiempo.
• Una descripción del estado del sistema cuando termina el escenario.
Estos requisitos son similares a los de un caso de uso o más similares a los de
un caso de prueba.
Veamos un ejemplo:
Actividad
En el tema anterior mostramos un prototipo de una pantalla
de cobro con tarjeta como ejemplo, y en este tema mostramos
un escenario que utiliza dicha pantalla. La consigna de esta
actividad es evolucionar el prototipo y el escenario y juntarlos
en un mismo entregable para el usuario. ¡Adelante!
clase 4
Actividad 1: Pantalla para la cocina
claves de corrección
La actividad no tiene una respuesta única. Puede tener muchas distintas. Aporto
una posible:
clase 4
conclusiones
Lo que hemos visto hasta el momento nos permite no solo evolucionar los
requerimientos al ampliarlos trabajando de manera conjunta con el usuario y
otros interesados, sino que también nos permite ir verificando los requisitos que
ya habíamos relevado y que dieron origen a los prototipos y a los escenarios.
Las Reuniones Moderadas son una forma de mejorar las entrevistas, que al ser
libres, pueden ser desordenadas. Por otro lado, la Observación, que también
es una técnica mixta, nos permite descubrir los requisitos que no obtuvimos en
las reuniones o entrevistas dado que es posible que los usuarios no mencionen
siempre toda la información necesaria.
Por supuesto que esta técnica puede tener infinitas variantes, pero ciertos puntos
mínimos se deben cumplir:
Cumpliendo estos puntos ya se le da un marco de formalidad.
Puede ocurrir que la Reunión Moderada sea una segunda parte de una entrevista
donde ya es necesario evitar pérdidas de tiempo y relevar de manera repetida.
Los Puntos de Vista es más una técnica para organizar los requerimientos
basados en la perspectiva de los usuarios y los administradores de los procesos
de negocios. También, nos permite clasificar a los interesados en el sistema, lo
que nos permite enfocarnos hacia cada uno de ellos con cierto tipo de preguntas.
A la vez es muy útil para dejar en claro los conflictos en los requerimientos
planteados por distintos interesados, dado que por lo general los conflictos
tienden a aparecer cuando los usuarios/interesados son de distintos niveles
o de distintos grupos de trabajo.
Ahora, el observador no debe ser mudo, dado que no aportaría gran valor. Este
método debe ser acompañado de una entrevista, o al menos una charla, para que
el observador corrobore su entendimiento y no suponga lo que ve.
Preparación de la Reunión:
Facilitador: Juan Esteban Avila
Escriba: Carlos Alberto Quina
Dia y Horario: Martes 23/12/2017
Duración: 1 hs
Herramientas: Pizarra y fibrones
clase 5
conclusiones Las dos técnicas nuevas que hemos visto nos ayudan a ampliar el espectro de
formas de realizar relevamientos. La primera, las Reuniones Moderadas logrando
orden y formalidad y la segunda le aporta una verificación de veracidad y una ayuda
a la comprensión de la misma. También conocimos otra técnica complementaria
llamada “Puntos de Vista” que nos permite descubrir los conflictos en los requisitos
surgidos de los distintos usuarios.
El lenguaje Natural:
Por ejemplo: mostramos aquí una plantilla y la completamos con el ejemplo del
cobro con Tarjeta de Crédito.
Descripción Notificar al usuario de los mensajes, propios del sistema y los recibidos
desde el emisor de la tarjeta de crédito y darle una sugerencia de
acción
Entradas Respuesta a la transacción de cobro emitida por el emisor de la
tarjeta o resultado de validaciones internas o errores capturados por
el sistema
Fuente El webservice del emisor de la tarjeta
Postcondición La conexión con el emisor debe estar activa, el pago no debe estar
procesado.
Efectos Colaterales Ninguno
Autor: M. Bernarda
V1.3
Versión:
12/04/2016
Fecha:
clase 6
ANALISIS Y MODELADO CON CASOS DE USO
tema 2
Nuestro objetivo en este tema es modelar los requisitos con la técnica gráfica de
Casos de Usos. Los diagramas de Caso de Uso muestran las relaciones entre el
sistema y su entorno.
Estás relaciones nacen de los requisitos planteados por el cliente pero no todos
los requisitos pueden ser expresados como relaciones entre el sistema y su
entorno.
¿Qué es un caso de uso? Vamos a hacer un repaso rápido del tema. Un caso de
uso puede tomarse como un escenario que describe lo que el usuario espera del
sistema. Contiene 3 tipos de elementos:
Actor -> es un rol que juega un usuario frente al sistema, también representa
otros sistemas y/o hardware. Gráficamente lo vemos así:
Relación -> es la invocación de un caso de uso desde un actor o desde otro caso
de uso. Gráficamente lo vemos así:
O algo más complejo, por ejemplo, representar el requisito de facturar, cobrar con
tarjeta de débito o en efectivo y descontar del stock:
Entonces, los casos de uso permiten analizar los requisitos (al listar y representar
dentro del modelo aquellos que son funcionales), nos permite relacionarlos
mostrando la dependencia entre ellos y nos permite validar los que hemos
entendido mostrando el diagrama al cliente, pero sin detalle de cada uno, es una
vista global.
Los críticos de comida siempre llegan sin previo aviso. Ellos solicitan un
plato, prueban la comida y después la pagan, pero no llegan a consumirla
completamente. Eso sí, todos los platos que seleccionan van siempre
acompañados de vino, por lo tanto también ordenan y beben el vino, que se lo
dejan sugerir al chef.
Por otro lado, a los requerimientos necesitamos validarlos, saber que están
correctos, que reflejan lo que el usuario necesita, esta tarea muchas veces se
realiza en paralelo al relevamiento y/o al análisis en sí mismo.
Si bien podemos haber realizado los relevamientos empleando las técnicas vistas
en las clases 3 a la 6 de manera ordenada también podemos haberlo hecho de
manera desordenada.
Podemos haber llegado a este punto con una simple compilación de requisitos,
solo un agregado de requisitos.
Pero ¿cómo ubicamos dentro de la misma los requisitos? ¿Es una compilación
que sigue algún criterio o es simplemente una agregación de requisitos?
¿Por qué surgen estos conflictos? Básicamente, por la escases de los recursos
de desarrollo que impiden desarrollar el 100% de lo deseado en el tiempo
deseado. Luego, distintos usuarios e interesados pugnan porque su parte se
desarrolle antes que otras partes del sistema.
Existen muchos criterios para organizar los requisitos. Un posible set de criterios
para requisitos de un alto nivel (un módulo en un sistema y no un color del rótulo
de un campo) puede ser, para dicho requisito y para aquellos que compiten con
él en las fechas determinadas.
Para ordenarlos, por cada uno de ellos podemos completar los siguientes datos:
Avancemos un poco más, ¿Qué técnica podemos utilizar para clasificar y ordenar
los requisitos? Una muy útil son los Mapas Mentales.
Ejemplo: estamos preguntando a los vendedores como realizan hoy en día el cobro
con tarjeta de crédito para darle soporte con el sistema, digamos, realizar un posnet
que funcione en la PC y descubrir mejoras. Hay dos participantes: E – entrevistador y
F – usuario:
E – contame, que pasos seguís para cobrar al cliente cuando te manifiesta que quiere
pagar con tarjeta.
F – bueno, yo le paso la tarjeta por el posnet y luego cargo el cupón en el sistema.
E – ¿Cargas el cupón? ¿Qué viene siendo? Lo escaneas y el sistema guarda la
imagen ¿?.
F – noooo, solo cargo el nro. Cuando el sistema va a emitir la factura.
E – bien, tomo nota, ahora, que datos ingresas en el posnet.
F – se ingresa el monto, los últimos 4 dígitos de la factura y se selecciona el plan de
pagos, o sea, las cuotas.
E – y esas cuotas, ¿las ingresas a mano? ¿son libres? ¿o las elegís de una lista?
F – las elijo de una lista, cada tarjeta tiene distintas cantidades de cuotas, según el
convenio con el banco.
E – OK, perfecto. Y las tarjetas ¿recibimos todas las que hay?
F – no, no todas, es como las cuotas, según las que estén dentro del convenio con los
bancos.
E – y que pasa si tratas de cargar una que no está en el convenio?
F – no se puede, el sistema no te deja
E - ¿no te deja? ¿Cómo es eso?
F – simplemente no está para elegirla
E – ahh ahora sí, hay un listado de tarjetas vigentes y cuando elegís una te muestra las
cuotas posibles.
F – Claro! Es así. Y te agrega un dato más, muestra también el intereses, ponele, vos
elegís VISA 18 cuotas y te dice 3% de interés.
E – ¿y te sirve que sea así? ¿Es cómodo? ¿Es rápido?
F – y… no, el listado de tarjetas no está ordenado, y las tarjetas se repiten, solo que se
le agrega el banco emisor al lado. Esto es porque a veces, la misma tarjeta, la misma
cantidad de cuotas, para dos bancos distintos, tiene distinto interés, o por ahí una tiene
una promo con 0% interés.
E – Fantástico, tiene que estar ordenado, ¿y cómo es mejor? ¿Alfabéticamente?
F – No, mira, el 80% de las compras se hace con 3 tarjetas distintas, con que esas 3
estén primeras es suficiente.
…
Ejemplifiquemos cada uno de ellos, si bien son simples, para tener una mejor
comprensión.
Cuadro:
Si lo cumple
Justificación
“El sistema debe mostrar el stock disponible de los ítems a la venta en cada
sucursal. Cada sucursal tiene un stock propio. Desde una sucursal se puede
‘reservar’ un ítem en alguna de las otras sucursales, pero, solo para ser retirado,
la venta se concreta en la sucursal origen. El sistema debe informar, antes de
concretar la venta, si el elemento a vender está disponible en esta sucursal y
en qué otras sucursales está disponible. El cliente debe optar donde lo retira.
Cada sucursal tiene dos parametrizaciones sobre los elementos en stock, una
que es el stock mínimo y otra que es la cantidad “guardada” para reservas
(solicitada por el jefe de una sucursal). El gerente de ventas menciona que
no debe existir una cantidad ´guardada´ para reservas, sino que debe poder
reservarse todo el stock, salvo el mínimo. Indagando esto se da porque
sobre cada venta se cobra una comisión, la cobra la sucursal que vende, y si
una sucursal disminuye su stock cobra menos comisiones. Vamos a dar por
finalizado este requerimiento cuando el sistema muestre la cantidad en stock
de la sucursal en donde se realice el trámite y la cantidad en cada una de las
otras sucursales”.
Atención, solo la rama de “Crédito” es válida, la otra esta agregada para ubicarnos
en el contexto.
Actividad 2: Validando Requisitos
Una posible opción de la tabla es la siguiente:
Como usted verá a lo largo de la clase existe otra clasificación de los requerimientos
que es muy importante: los requerimientos que son duraderos y los volátiles. La
principal característica que los ubica en una u otra categoría es su predisposición
a cambiar rápidamente. Es importante tenerlos identificados porque esta
predisposición al cambio implica cambios en el proyecto de desarrollo mismo, lo
que implica más tiempo y reserva de recursos.
Por otra parte, en la 2° parte de la clase veremos una técnica más de validación
de los requisitos, que consiste en contrastarlos contra los procesos de negocio
previamente modelados con BPMN o Diagramas de Flujo.
clase 8
Requerimientos duraderos y volátiles
tema 1
Los requisitos cambian con el tiempo, durante el mismo proyecto de
desarrollo y a posterior, los sistemas no son estáticos en el tiempo, deben
evolucionar con el negocio (u organización misma) y más aun dependiendo
del contexto en el que se halla la organización misma. Supongamos un sistema
que da soporte a una empresa de tecnología, la velocidad de evolución de
la tecnología es muy alta comparado por ejemplo con un sistema para una
organización religiosa basada en dogmas estables en el tiempo (expresado solo
a modo de ejemplo para entender el concepto, no por ser 100% cierto).
Por otro lado, los requisitos pueden cambiar también a medida que vamos
ganando comprensión de las necesidades mismas de los usuarios, desde el
lado del equipo de desarrollo, y al revés, a medida que el usuario va ganando
comprensión del sistema y de sus potencialidades. En resumen, hay tres fuentes
de cambios: los cambios del negocio al cual da soporte el sistema, los cambios
en la comprensión de este negocio y los cambios en la comprensión del sistema
y el potencial de la tecnología de desarrollo.
- Los duraderos
- Los volátiles
¿Por qué? El desarrollo de los requisitos duraderos nos asegura que el software
desarrollado para ellos es útil y lo va a seguir siendo por un tiempo sin disponer
de esfuerzo extra. En cambio el desarrollo de los requerimientos volátiles
implican más esfuerzo dado que es necesario validarlos nuevamente (y volver
a relevarlos) justo en el momento previo a su desarrollo y acercándonos al final
del desarrollo del sistema completo por eventuales correcciones.
De manera más formal, decimos que los requerimientos duraderos son aquellos
relativamente estables y que pertenecen al núcleo del proceso de negocio de
la organización. Y los volátiles son aquellos susceptibles de cambio durante el
desarrollo o una vez puesto en producción el sistema.
Luego, ¿para qué nos serviría entonces analizar y clasificar los requisitos en
duraderos y volátiles? Como antes mencionamos, los duraderos pueden ser
los primeros en ser trabajados dado que sabemos que van a ser estables en
el tiempo y una vez conseguidos no nos requerirán esfuerzo extra. Por otra
parte conocer los volátiles es útil para revalidarlos de manera continua con el fin
de conseguir que siempre se mantenga vigente (con los cambios apropiados)
para que el trabajo de desarrollarlos no haya sido en vano por haber quedado
desactualizados.
1. Diagramas de Flujo
2. BPMN
Existen muchos métodos para modelar los requisitos, BPMN, Diagramas de flujo,
YAWL entre otros.
Es una notación gráfica de los procesos de negocio que tiene como objetivo
ofrecer un estándar para el modelado legible para todos los involucrados en un
proceso. BPMN es similar a los diagramas de flujo de datos pero no es lo mismo,
no modela los flujos de los datos, modela el avance del proceso.
Cada uno de los pasos del proceso se representa con un símbolo y estos se
secuencian con conexiones de secuencia y flujo de mensajes.
Existen tres elementos básicos que describen el comportamiento del proceso: las
tareas, los eventos y las compuertas. Queda fuera del alcance de esta clase el
explicar por completo BPMN, por lo que recomiendo profundizar la metodología
aquí http://www.bpmn.org/
Diagramas de Flujo
Son similares a los diagramas de BPMN, pero más generales, no solo enfocados
a procesos de negocio. Son, como en el caso anterior, la representación gráfica
de un algoritmo o un proceso dividido en pasos, pero es menos expresivo que un
BPMN dada su alta generalización que le hace perder precisión. Lo mismo son
útiles para modelar un proceso de negocio que nos sirva para verificar luego los
requisitos.
Clase 8 ic 1
información
complementaria
Resumen
El objetivo del artículo es caracterizar el estándar Business Pro-
FHVV0RGHODQG1RWDWLRQ%301FRPRKHUUDPLHQWDJUi¿FDSDUD
el modelado de los procesos de negocio de una organización, y
realizar un análisis crítico de las posibilidades que ofrece, iden-
WL¿FDQGR VXV YHQWDMDV \ GHVYHQWDMDV SDUD UHSUHVHQWDU DGHFXD-
GDPHQWHDVSHFWRVFRPRDFWRUHVDFWLYLGDGHVHYHQWRVÀXMRVGH
WUDEDMRFRQWUROHV\UHFXUVRVHQWUHRWURV3DUDYHUL¿FDUODIXQFLR-
nalidad que ofrece BPMN, se usó como caso de estudio ‘Alquiler
de Vehículos’, que incluye los procesos básicos de compra,
gestión, alquiler y venta de vehículo. Se encontró que la versión
BPMN 2.0, incluye un conjunto de prestaciones adicionales que
permiten modelar en forma completa y precisa los procesos de
negocio, condición necesaria para que a partir de estos modelos
se pueda implementar correctamente el sistema de gestión de
procesos de negocio, utilizando una herramienta válida para tal
¿Q6HFRQFOX\HTXH%301HVXQDKHUUDPLHQWDVHQFLOODIiFLOGH
Abstract
The aim of this paper is to describe the standard Business Process
Model and Notation BPMN, graphic tool for modeling business
processes of an organization, and critical analysis of the possi-
bilities, identifying advantages and disadvantages to adequately
UHSUHVHQWDVSHFWVDVDFWRUVDFWLYLWLHVHYHQWVZRUNÀRZVFRQWUROV
and resources among others. To verify the functionality offered
BPMN, is used as a case study ‘Rent a Car’, which includes the
basic processes of acquisition, management, leasing and sale of
vehicle. We found that this standard, particularly BPMN version
2.0, includes a set of additional features that allow you to model a
complete and accurate business processes, necessary condition
for that since these models are able to successfully implement
the business process management system, using a valid tool for
this purpose. We conclude that BPMN is a simple tool, easy to
understand, but with a great potential for modeling processes of
any type of organization.
Keywords: Business Process Management BPM, Business Pro-
cess Model and Notation BPMN, Rent a Car, Business Process
Management Suite BPMS.
Introducción
/DVRUJDQL]DFLRQHVSDUDPDQWHQHUVHFRPSHWLWLYDVDGHPiVGHVHUH¿-
FDFHV\H¿FLHQWHVGHEHQVHUiJLOHVHQODDGDSWDFLyQGHVXVSURFHVRVGH
negocios a los cambios que se generan en el entorno y que tengan que
ver con sus objetivos. A este propósito fundamental apunta la gestión
de procesos de negocio (Business Process Management, BPM), como
disciplina integradora de las capas del negocio y la capa tecnológica
para la gestión empresarial por procesos.
BPM es un enfoque novedoso que ha venido adquiriendo importancia
en las organizaciones. Incluye un conjunto de mejores prácticas de
gestión de procesos, herramientas y tecnologías utilizadas para diseñar,
representar, analizar y controlar todo lo relacionado con los procesos del
10
QHJRFLR7LHQHFRPRSURSyVLWRIXQGDPHQWDOGH¿QLUSURFHVRVGHQHJRFLR
rápidos, efectivos y transparentes a toda la organización.
La implementación práctica de los fundamentos de BPM, se hace me-
diante una suite de gestión de procesos de negocio (Business Process
Management Suite, BPMS), que es un sistema que integra en un en-
WRUQRJHQpULFRODVIXQFLRQHVGH¿QLGDVSRU%30SHUPLWHODLQWHJUDFLyQ
de los procesos manuales y automáticos en toda la cadena de valor
de la organización.
Business Process Model and Notation, BPMN, es una herramienta grá-
¿FDHVWDQGDUL]DGDSDUDHOPRGHODGRGHSURFHVRVGHQHJRFLR'H¿QH
un lenguaje sencillo, comprensible, que puede ser utilizado por personal
no técnico particularmente los analistas de negocios y por profesionales
de múltiples disciplinas, es decir, no es para uso exclusivo del área de
TI. BPMN es un lenguaje común que tiene como propósito reducir la
brecha de comunicación que se presenta entre el diseño de los proce-
sos de negocio y su implementación. Aunque BPMN utiliza un formato
GHÀXMRGHWUDEDMRHVPXFKRPiVTXHXQDKHUUDPLHQWDSDUDHODERUDU
GLDJUDPDVGHÀXMRGHGDWRV
El artículo presenta inicialmente los antecedentes de BPM, la relación
entre BPM y la arquitectura orientada a servicios (SOA), la suite de
gestión de procesos de negocio (BPMS), y BPMN como herramienta
JUi¿FDSDUDPRGHODGRGHSURFHVRVGHQHJRFLR/XHJRVHGHVFULEHOD
metodología utilizada en el proyecto de investigación, particularizando
en la aplicación de BPMN para el modelado del caso de estudio utili-
]DGRTXHHVHODVSHFWRHVSHFt¿FRKDFLDGRQGHVHHQIRFDHODUWtFXOR
Finalmente, teniendo en cuenta los resultados obtenidos en la aplicación
de BPMN y los planteamientos de otros autores, se presenta el análisis
de BPMN como estándar para el modelado de procesos de negocio.
1. Antecedentes
$FWXDOPHQWHODVHPSUHVDVDGHPiVGHVHUH¿FLHQWHV\H¿FDFHVUHTXLH-
ren adaptarse rápidamente a los permanentes y frecuentes cambios en
su entorno, impulsados entre otros aspectos por la globalización. Aque-
llas que lo logran obtienen más ventajas competitivas,lo que se traduce
en posicionamiento, mayor visibilidad y por ende mayores ingresos. Una
forma de lograr esta adaptación es tener un mayor control y capacidad
de cambio en sus procesos de negocios para generar más valor a sus
FOLHQWHV(VWRVLJQL¿FDTXHXQLGRDODH¿FLHQFLD\ODH¿FDFLDGHEHLUOD
capacidad del negocio para adaptarse al entorno cambiante, mediante
los ajustes en sus propios procesos. A este propósito fundamental
11
12
13
14
15
16
2. Metodología
El proyecto de investigación referido, tiene como objetivo construir un
proceso integrado de desarrollo de software con base en los estándares
17
3. Resultados y discusión
Para ilustrar el proceso y la conformación de los niveles MDA se usó
como caso de estudio el sistema Alquiler de VehículosTXHVHPRGL¿Fy
\DPSOLySDUDHVWHSUR\HFWR(OFDVRVHUH¿HUHDXQDHPSUHVDTXHWLHQH
por actividad principal el servicio alquiler de diversos tipos de vehículos.
Las operaciones de compra de vehículos suelen considerar la venta de
los mismos al cabo de cierto período de tiempo. El sistema debe realizar
18
19
)LJXUD'LDJUDPDHVSHFL¿FRGHOVXESURFHVR'HYROXFLyQGHO9HKtFXOR\
Liquidación deContrato de Alquiler (Chaparro & Gómez, 2013, 27)
)LJXUD'LDJUDPDHVSHFL¿FRGHOVXESURFHVR(ODERUDFLyQGH
Contrato de Alquiler (Chaparro & Gómez, 2013, 25)
20
21
VHPiQWLFR SURFHVR OyJLFR GH¿QLGR HQ ;0/ VLQ XQ PRGHOR JUi¿FR
relacionado (diagrama), pero no el caso contrario.
3.4 BPMN según sus características
estructurales y de integración
En la versión BPMN 2.0 lo más importante y en lo que se hace más
énfasis es en el modelado, más que en la notación. El modelo está
HQIRFDGRHQODVHPiQWLFDIRUPDOGHODVGH¿QLFLRQHVGHORVHOHPHQWRV
\VXVLQWHUUHODFLRQHVGH¿QLGDVHQHOPHWDPRGHORDVtFRPRVXUHSUH-
sentación en XML. BPMN 2.0 provee un formato de intercambio XML
para los modelos de proceso. El metamodelo permite ejecutar directa-
PHQWHORVPRGHORV%301HQXQPRWRUGHSURFHVRVHVWRVLJQL¿FDTXH
se pueden mapear explícitamente los modelos a un ambiente técnico,
por ejemplo Business Process Execution Language, BPEL, que es un
estándar para automatización de procesos basado en XML.
3.4.1 Niveles estructurales(Q%301VHSXHGHQLGHQWL¿FDUWUHVQLYHOHV
estructurales, así:
- El nivel uno, que corresponde a los elementos básicos de modelado
TXHVRQORVPiVXWLOL]DGRV\DTXHVRQVX¿FLHQWHVSDUDGHVFULELUOD
mayor parte del comportamiento del proceso.
- En el nivel dos se manejan las excepciones, haciendo énfasis en los
eventos relacionados con mensajes, tiempos, errores, condiciones
de negocio, señales y cancelaciones. Adicionalmente se incluye las
bifurcaciones y patrones de combinación.
- El nivel tres hace referencia al componente ejecutable, es decir, los
detalles XML que no se presentan en el diagrama, aspectos como
modelos de datos, expresiones condicionales y lógica de asignación
de tareas.
3.4.2 Niveles de abstracción6HLGHQWL¿FDQWUHVQLYHOHVDVt
- El nivel más general son los mapas de procesos que son diagramas
VLPSOHVTXHUHSUHVHQWDQHOÀXMRGHDFWLYLGDGHV
- El siguiente nivel son las descripciones de procesos que agregan
más detalles del proceso como roles de las personas y elementos
de datos involucrados.
- El último nivel son los modelos de procesos que son diagramas mu-
cho más detallados, que facilitan el análisis y simulación del proceso,
adicionalmente estos modelos se pueden ejecutar directamente en
un motor de procesos.
3.4.3 Nivel de representatividad. Según este criterio, BPMN soporta
el modelado de tres categorías de procesos, así:
22
23
6. Conclusiones
BPMN no es una metodología, proceso o marco de trabajo. Es una
KHUUDPLHQWDJUi¿FDHVWDQGDUL]DGDSDUDHOPRGHODGRGHSURFHVRVGH
QHJRFLRTXHXWLOL]DXQIRUPDWRGHÀXMRGHWUDEDMRZRUNÀRZ). No es
VX¿FLHQWHDSOLFDU%301SDUDLPSOHPHQWDU%30HQXQDRUJDQL]DFLyQ
se requiere tener en cuenta otras herramientas de análisis, gestión y
monitoreo de procesos de negocio.
$XQTXH%301VHVRSRUWDHQHOFRQFHSWRGHÀXMRGHWUDEDMRZRUNÀRZ),
HVPXFKRPiVTXHXQDKHUUDPLHQWDSDUDHODERUDUGLDJUDPDVGHÀXMR
de datos. Cada elemento básico de notación y los elementos deriva-
GRVWLHQHXQDVHPiQWLFDFODUDPHQWHGH¿QLGD%301HVWiEDVDGRHQ
XQDHVSHFL¿FDFLyQIRUPDOTXHLQFOX\HXQPHWDPRGHOR\UHJODVGHXVR
asociadas.
BPMN consolida las mejores prácticas en el modelado de procesos
de negocio aportadas por otros estándares que le precedieron. Fue
concebido como una herramienta genérica, es decir, es independiente
de cualquier metodología, herramienta de modelado o plataforma de
implementación. Se ha convertido en un estándar internacional, adop-
tado por las principales empresas que proveen productos BPM.
BPMN está enfocado particularmente al modelado formal de procesos
de negocio, por esta razón no incluye el modelado de otros aspectos
como estructuras organizacionales, estructuras de datos o infraestruc-
tura de TI. Es una herramienta sencilla que utiliza una notación estándar
que es fácil de comprender por parte de todos los involucrados en la
gestión de procesos de negocios. Esto permite disminuir la brecha de
comunicación entre el diseño de los procesos de negocio y su imple-
mentación práctica.
24
5HIHUHQFLDVELEOLRJUi¿FDV
ASSOCIATION OF BUSINESS PROCESS MANAGEMENT PROFESSSIONALS, ABPMP (2009).
Guide to the Business Process Management Body of Knowledge (BPM CBOK) [online]. Ver-
VLRQ¿UVWSXEOLFUHOHDVH&KLFDJR,/86$$%303S,6%1
<http://s.itb.ac.id/home/jayidoans@students.itb.ac.id/Magister%20Informatika%20ITB/IF5131-
ABPMP%20-%20CBOK-v2-0.pdf> [consult: 20/03/2014]
AURAPORTAL (2013). Business Process Management Suite[en línea]. Valencia (España): Aura
Portal.. <http://www.auraportal.com/PG534L1/AuraPortal--Advanced-Software-for-Enterprises-.
aspx> [consulta: 20/03/2014]
CHAPARRO, Luis Oliverio & GÓMEZ, Juan Federico (2013). Construcción de un Proceso de
Desarrollo de Software basado en Model Driven Architecture MDA, Model Driven Software
Development MDSD y Business Process Management BPM. Proyecto de Investigación, Grupo
Giprocas. Tunja (Colombia): Universidad de Boyacá, Programa de Ingeniería de Sistemas.
162 p.
FREUND, Jakob; RUCKER, Bernd & HITPASS, Bernhard (2011). BPMN 2.0: Manual de Refe-
rencia y Guía Práctica. 4 ed. Santiago de Chile (Chile): Camunda, BPM Center. 282 p. ISBN
978-956-345-182-5.
GARIMELLA, Kiran; LEES, Michael & WILLIAMS, Bruce (2008). Introducción a BPM para Dum-
mies. Edición Especial de Software AG. Indianapolis (USA): Wiley Publishing, Inc. 78 p. ISBN:
978-0-470-37359-0.
HITPASS, Bernhard (2013). Business Process Management (BPM): Fundamentos y Conceptos
de Implementación. 2 ed. Santiago de Chile (Chile): BPM Center - BHH Ltda. 308 p. ISBN:
978-956-345-977-7.
JESTON, John & NELIS, Johan (2008). Business Process Management. Practical Guidelines to
Successful Implementations.2 ed. Oxford (UK): Elsevier Ltd. 469 p. ISBN: 978-0-75-068656-3.
KAMOUN, Faouzi (2007). A Roadmap towards the Convergence of Business Process Management
and Service Oriented Architecture. In: ACM Ubiquity, Vol. 8, No. 14 (Apr.). New York (NY, USA):
ACM Publication. ISSN: 1530-2180
OBJECT MANAGEMENT GROUP, OMG (2011). Business Process Model ande Notation (BPMN);
Version 2.0 [online]. Needham (MA, USA): Object Management Group, Inc. 508 p. <http://
www.omg.org/spec/BPMN/2.0/PDF> [consult: 20/03/2014]
SILVER, Bruce. (2011). BPMN Method and Style: with BPMN Implementer’s Guide. 2 ed. Aptos
(CA, USA): Cody-Cassidy Press. 286 p. ISBN: 978-0982368114
SMITH, Howard & FINGAR, Peter (2002). Business Process Management: TheThird Wave. Tampa,
(FL, USA): Meghan Kiffer Press. 312 p. ISBN-13: 978-0929652344.
SYNERGO! (2012). BPMS y Negociática [en línea]. Llanes (Asturias, España): Sinergo! <http://
www.synergo.es/?p=2899> [consulta: 03/28/2013].
TORMO TRILLES, Suso (2012). El ROI que genera la utilización de un BPMS en cualquier tipo de
empresa [en línea]. Valencia (España): Aura Portal. <http://blog.auraportal.com/wp-content/
uploads/2012/01/Webinar-El-ROI-que-genera-el-BPMS-en-cualquier-tipo-de-empresa-ENE-
RO-2012.pdf> [consulta: 20/03/2014]
9$1 '(5$$/67 : +2)67('($ .,(386=(:6., % %$5526$ :RUNÀRZ
Patterns. Eindhoven (The Netherlands): Department of Technology Management, Eindhoven
University of Technology. 70 p.
WHITE, Sthepen A. & MIERS, Derek (2009). Guía de Referencia y Modelado BPMN. Lighthouse
Point, Florida (USA): Future Strategies Inc. 213 p. ISBN: 978-0-9819870-3-3.
25
Ahora, ¿todos los requisitos deben ser validados contra el proceso? No, lo
fundamental es validar aquellos que sean duraderos y no los volátiles.
Con los métodos ágiles, este documento llamado SRS desapareció. No es más
un documento, pero su contenido persiste, no puede dejar de existir. La razón
de este cambio es simple, se vive en un entorno dinámico, luego, los requisitos
pierden validez parcial o totalmente a lo largo del tiempo. Este tiempo se debe
comparar con el tiempo que insume el desarrollo del software, que usualmente
no es poco. Si son similares o el tiempo en que cambia en menor al tiempo de
desarrollo entonces, nuestro SRS perderá vigencia y el software realizado no
cumplirá con su objetivo. No podemos saber cuánto tiempo insumirá este cambio
de los requisitos, por lo que lo mejor es ser ágiles al momento de desarrollar el
software.
Este documento debe contener los requisitos. Ahora la pregunta que nos debe
surgir es ¿Cómo lo organizamos al documento? Una posible respuesta es
basarnos en el estándar, ANSI – IEEE Std. 830-1998. No es necesario seguirlo
al pie de la letra, pero es una guía. Dicho de otra manera, no es necesario
seguir el formato (orden) propuesto por el estándar pero si deben, de una u otra
forma, existir dentro del documento todos los contenidos especificados por dicho
estándar.
Aquí debe estar todo lo necesario para que los desarrolladores puedan diseñar
y desarrollar y para que los testadores pueden diseñar las pruebas y probar el
nuevo sistema y demostrar si satisface o no los requisitos
Las restricciones que el usuario nos solicita en los relevamientos muchas veces
son expresiones de deseo y no restricciones reales. Muchas veces el usuario
nos solicita las restricciones y a su vez nos solicita la posibilidad de que existan
excepciones. Excepciones que terminan siendo la regla. Por lo tanto hay que
tener cuidado con esto dado que es muy posible que se gasten recursos escasos
de desarrollo para sumar una restricción a un sistema que simplemente luego
será pasado por alto el 100% de las veces. La forma práctica de distinguirlas
es si lo que nos platean como una restricción en realidad es una validación del
proceso de negocios o una política, o un uso y costumbre, estas restricciones
probablemente no sean restricciones sino simplemente validaciones o controles
que deben sumarse al sistema (y por lo tanto se ubican en distintos apartados de
la SRS).
b. “no se deben tomar pagos con más de una tarjeta de crédito. El monto
total de la compra debe saldarse con una sola tarjeta, pero el sistema debe estar
preparado para tomar pagos parciales con tarjetas”.
Restricción [ ] Control [ ]
Actividad 2: Restricciones
Restricción [ X ] Control [ ]
Restricción [ ] Control [ X ]
Restricción [ X ] Control [ ]
Restricción [ ] Control [ X ]
clase 9
conclusiones
Es importante tener en cuenta que el armado de una SRS (o ERS) es una tarea
fundamental del ciclo de vida de desarrollo del software, ya que que es la guía y
medida para evaluar el trabajo posterior. Debemos recordad que este documento
puede existir como un documento único, un conjunto o como historias de usuarios
en un backlog de temas a tratar (si usamos una metodología ágil) pero SIEMPRE
DEBE EXISTIR, de una u otra manera.
clase 10
tema 1 Las Especificaciones Formales de Software
Los Métodos Formales utilizan estas 3 disciplinas como base misma de los
métodos, crear una “Especificación Formal”.
Existen varias razones por la que los métodos formales no han ganado espacio
en el mundo del desarrollo de software, y cuatro son las principales:
Estas y otras razones hacen que solo ciertos softwares sean susceptibles de ser
desarrollados por medio de los métodos formales, principalmente los softwares
críticos, donde tenemos que tener una elevadísima garantía de un correcto
desarrollo y funcionamiento, porque se ponen en juego costosísimos, o muy
escasos, recursos o vidas humanas: el soft de manejo de una central nuclear, o
el controlador de un avión o de la central que comanda un auto.
Los esquemas se utilizan para incorporar variables de estado del sistema y las
restricciones y operaciones sobre ellas. Ciertos esquemas de Z pueden definir
operaciones del sistema (funcionalidades o partes de las mismas) se definen por
medio de pre y post condiciones, la diferencia entre ambas es la definición de la
operación en si misma (esto no es algo simple de comprender).
Supongamos una lista de socios de un club, por cada socio almacenamos nombre
y DNI, definimos su estado y la operación de alta de socios:
[NOMBRES, DNIS]
Libro de Socios
nombre : ℙ NOMBRES
id : NOMBRES ⇸ DNIS
nombre = dom id
Alta Socio
ΔLibro de Socios
nuevo_nombre? : NOMBRES
nuevo_dni? : DNIS
nuevo_nombre? ∉ nombre
[NOMBRES, DNIS]
Libro de Socios
nombre : ℙ NOMBRES
id : NOMBRES ⇸ DNIS
nombre = dom id
ΔLibro de Socios
nuevo_nombre? : NOMBRES
nuevo_dni? : DNIS
nuevo_nombre? ∉ nombre
id′ = id ∪ {nuevo_nombre ↦ nuevo_dni}
nombre′ = nombre ∪ { nuevo_nombre }
[NOMBRES, DNIS]
Libro de Socios
nombre: ℙ NOMBRES
id: NOMBRES ⇸ DNIS
nombre = dom id
- ‘id’ es una función, que relaciona un ítem del conjunto NOMBRES con
un ítem del conjunto DNIS. Al ser una función la podemos representar
como una relación entre ítems del dominio y de la imagen
. pablo . 28234572
. pedro . 35692456
. azucena . 59224156
Alta Socio
ΔLibro de Socios
nuevo_nombre? : NOMBRES
nuevo_dni? : DNIS
nuevo_nombre? ∉ nombre
id′ = id ∪ {nuevo_nombre? ↦ nuevo_dni? }
nombre′ = nombre ∪ { nuevo_nombre? }
Actividad 2: Especificando en Z
Actividad Lea los materiales complementarios, al menos el de
Maximiliano Cristia – “Introducción a la notación Z” y realice
el esquema de la operación de baja de un socio. ¡Adelante!
clase 10
Actividad 1: Detectando la ambigüedad
claves de corrección
La frase es ambigua precisamente porque no aclara en cuál de los dos momentos
se aplica el descuento, y puede ser interpretado por quien es relevado en uno
de ellos, por quien releva en otro, por quien diseña, quien programa y testea en
cualquiera de los dos anteriores.
En ambos casos abonó lo mismo, pero facturo distinto, una factura se hizo por
$7000 y la otra por $8000, lo que implica que para el comercio que vende el IVA
que traslada al cliente es distinto. En la primera factura le trasladamos al cliente
$1214, 87 de IVA y en la segunda $1388,42. (Sería: $7000/1,21 = 1214,87 y
$8000/1,21 = 1388, 42).
Para el cliente es indistinto, pero para la empresa no. Cuando el desarrollo sea
revisado por la gente de contabilidad y detecte la diferencia del IVA aparecerá un
pedido de cambió sobre lo realizado.
(Este ejemplo no es estrictamente correcto, pero sirve para que veamos que la
ambigüedad existe y no es fácil detectarla).
Actividad 2: Especificando en Z
A continuación muestro una de las posibles formas de especificar en Z la baja de
un socio:
Baja de Socio
ΔLibro de Socios
dni_borrar? : DNIS
dni_borrar? ∈ nombre
id′ = {dni_borrar?} ⩤ id
nombre′ = nombre ∖ {id(dni_borrar?)}
1- Estudio de Factibilidad
2- Relevar y Analizar requisitos
3- Validar los requisitos
4- Especificar los requisitos
¿Porque razones puede ocurrir esto? El análisis de los requisitos no debe ser una
etapa del proceso única en el tiempo que comienza y acaba previa al desarrollo,
es una actividad continua, recordemos, los sistemas no son estáticos dado que
los procesos que soportan no son estáticos en el tiempo, cambian.
Veamos cada uno de estos pasos, son simples, salvo el “Estudio de Factibilidad”
los restantes los hemos venido estudiando a lo largo de esta materia:
Estudio de Factibilidad:
- Cuáles son los problemas que tiene hoy el proceso a soportar y como
el nuevo sistema los va a solucionar.
- Como se obtendrá la información necesaria que el sistema necesita
para comenzar a funcionar (probablemente de un sistema anterior).
- Como se va a comunicar con otros sistemas de la organización (por
ejemplo, con el sistema contable).
- Si la tecnología elegida es la correcta para el desarrollo solicitado.
El resultado del estudio de factibilidad puede ser un simple “SI” o un simple “NO”
pero también puede ir más allá haciendo recomendaciones en cada uno de los
puntos considerados.
Validar Requisitos:
Especificar:
El proceso descripto tiene 4 pasos y sería muy bueno agregar uno más:
https://ifs.host.cs.st-andrews.ac.uk/Books/SE9/Web/
Requirements/FeasibilityStudy.html
Comprender: quizás aquí lo más conveniente sea relevar, analizar y validar los
cambios, dado que esto nos va a llevar a la comprensión de los mismos, tal cual
se lleva cabo este proceso para los requerimientos originales.
Durante todo este proceso el requisito fue pasando por su propio ciclo de vida,
este ciclo de pida puede ser, básicamente el siguiente:
En esta última clase vamos a ver dos temas relacionados con todo el análisis de
requerimientos, pero no necesariamente conectados entre sí.
Entendamos entonces, que el rol es el papel que juega la persona y que para
cumplirlo debe poseer ciertas competencias, habilidades, y ciertos conocimientos.
Las habilidades:
- Poseer pensamiento sistémico
- Saber analizar
- Saber abstraer los conceptos
- Saber criticar e indagar
Es difícil que una persona posea este perfil completo, o puede que posea
algunos de sus componentes más desarrollados que otros. Una persona que
no lo cumple al perfil parcialmente no necesariamente debe ser rechazado
para el trabajo pero si al menos entrenado para superar los puntos flojos.
• como validarlo y
• conseguir su ok.
clase 12
claves de corrección
Actividad 1: Buenas prácticas
clase 12
conclusiones Es importante tener en cuenta que si no respetamos las buenas prácticas será
mucho más difícil lograr un buen relevamiento de los requerimientos, también
será más difícil lograrlo si la persona que lo realiza no tiene un perfil adecuado.
Pero, tengamos en cuenta que el perfil y las prácticas no garantizan el éxito, sólo
lo favorecen.