Ingenieros en el software .
Snippets ( formulacion , diseño ,problemas, restricciones)
Es cierto que "nos dieron una pagina en blanco" ?
Ingenieros en el software .
Snippets ( formulacion , diseño ,problemas, restricciones)
Es cierto que "nos dieron una pagina en blanco" ?
Productos con componentes ,montajes, BOM , despiece ,lista de materiales
Análisis desde la perspectiva de ingeniería (nota 2)
❎ BOM=BILL OF MATERIALS= LISTA DE MATERIALES = DESPIECE DE PRODUCTOS
✅ Entidades que participan en una BOM
-Producto final
-Ensamblados
-Componentes
-Materias primas
✅ Recordar: despiece=explosion=bomp
Estas son las formas de requerir/presentar una BOM
- A un solo nivel seleccionado
- Desmenuzada : desglosa todos los ensambles existentes a todo nivel
- Sumarizada:se muestra todas las partes (con cantidad requerida) para producir un producto final
La practica ha impuesto las siguientes vistas tipicas de una BOM
- ✔ BOM para produccion :el interes basico es servir para: analizar la precedencia de fabricacion
-✔ Bom para ingenieria :el interes basico es servir para: analizar la funcionalidad del producto final
-✔ BOM para planeamiento: el interes basico es servir para: analizar los costos ,aprovechamiento de la capacidad instalada y pronosticos de produccion
-✔ BOM para ventas :el interes basico es servir para: mostrar a los consumidores la estructura final del producto
-✔ BOM configurable:el interes basico es :satisfacer consultas especificas no preplaneadas
-✔ BOM para mantenimiento: el interes basico es servir para:mostrar la estructura final del producto ,los pasos de instalacion y reparacion de sus partes
Productos con componentes ,montajes, BOM , despiece ,lista de materiales
Análisis desde la perspectiva de ingeniería (nota 1)
-reglas de negocio criticas :existen aunque no esten automatizadas
-Datos de negocio críticos: existirán aunque el sistema no este automatizado.
Son buenos candidatos para un objeto
Una ENTIDAD es un objeto dentro de nuestro sistema computarizado que abarca un pequeño conjunto de reglas criticas operando sobre los datos criticos.
Dicho objeto contiene datos críticos o tiene accesos muy fácil.
La interfaz de la entidad consiste en las funciones que implementan las reglas criticas.
-No se necesita un lenguaje orientado a objetos para crear una entidad, Todo lo que se requiere es
unir datos críticos con reglas criticas en un único modulo aislado
-Las reglas de negocio que existen para un ambiente automatizado son "casos de uso"
Estos contienen las reglas que especifican cuando y como se invocan a las reglas de negocio criticas (dentro de las entidades)
-los casos de uso no describen como se ve el sistema , solo describen la aplicación de reglas que regulan la interacción entre el usuario y las entidades.
Los casos de uso dependen de las entidades , las entidades no dependen de los casos de uso
La clase casos de uso acepta estructura de datos para sus entradas y responde estructura de datos como salida. NO dependen de otra cosa.
Esta independencia e critica. el modelo request-response debe ser independiente
Ud se tentara conque dichas estructuras de datos contengan referencias a los objeto "entidad" . Ud pensara que eso tienen sentido porque entidades y el modelo pedido/respuesta comparten tantos datos. PERO ... los propósitos de esos 2 objetos son muy diferentes.
El resultado seria: muchos datos vagabundos y muchas condiciones en su codigo.
CONCLUSION: el código que representa las reglas del negocio será el corazón del sistema. DEBEN ser el código mas independiente y reusable en el sistema
Business rules
(Reglas de Negocios)
(Visual modelling technique, D.Tkatch , W.Fang, A.So , IBM)
El Santo Grial de la tecnología de la información es :ser capaz de modelar una corporación.
Se asume implícitamente que: construir un modelo de la empresa , conduce an mejor entendimiento del negocio y con ello :la habilidad para predecir el comportamiento de la empresa.
Modelar una empresa implica:
(1) Definir una arquitectura que a su vez este definida por los procesos de la empresa
(2)Definir El modelo de objetos de las soluciones automatizadas del dominio del problema
(3) Definir El modelo de datos requerido para sostener las soluciones automatizadas
Arquitectura de la industria
Es una descripción de alto nivel de procesos , modelos de objetos y estructura de datos aplicable a todas las empresas de cierto tipo de industria.
Esto es valioso porque puede ser usada para construir , benchmarking , o reingenieria de procesos y sus automatizaciones
Gestion de la ruta de procesos
Este analisis se restringe a procesos de información
Un proceso es un método particular de hacer algo... en el caso de procesos de negocios: es una colección de actividades que toman una o mas entradas y crean una salida que es de valor para el cliente
las empresas fueron y todavía son organizadas en estructuras verticales de procesos
( Mario saffirio , regla de negocios)
Reglas de negocio representan la parte de conocimiento que guía el flujo
(FEWO, 3 enero 2023 ,10 ejemplos de reglas de negocio que hacen trabajar mas eficientemente)
Las reglas de negocio son un conjunto de instrucciones que determinan como se ejecuta un proceso. ellas guian la toma de decisiones estableciendo reglas que todos deben seguir cuando llevan adelante cierta actividad
(Michel eisner 15 feb 2021 ,10 ejemplos de reglas de negocios y logica)
Las reglas de negocios son directivas que define la organización de sus actividades de negocio. Ellas son importantes porque clarifican los objetivos de una organización y detallan como seran ejecutados sus procesos. Pueden ser informales , escritas o automatizadas.
Cuando están automatizadas: se almacenan en un repositorio. un repositorio es una base de datos que recolecta , administra y almacena datos (asi no se embebe reglas en el código de las aplicaciones)
(the Business Rules Group formerly, known as the GUIDE Business Rules Project , julio 2000)
(un atributo que diferencia los items de stock
ej: talles, tamaños , calibres , medidas
item: remera de verano tenis argentino
Familia de talles: S,M,XL,XXL
Para poder manejar un stock hay que clasificar y así estructurar. El caso que analizamos es cuando un mismo item de stock tiene diversas variaciones de algún atributo y se requiere identificar cada posible variedad para control o porque tienen costos y precios diferentes. Otras veces la política de marketing genera ofertas u otros incentivos para alguna variedad en particular (ej: talles grandes).Entonces ... agrupar en base a cada valor posible de un atributi seleccionado (ej.: talle , color , material , medidas,...etc)
Un SKU (stock keeping unit) es un codigo unico para cada item de stock generado y mantenido por el propietaro del stock. Puede ser una tira de caracteres (habitualmente hasta 8) o un entero de hasta 8 digitos. Le podemos llamar por simplicidad: "codigo interno" . Este sku o código interno debe ser único para cada item de stock
En stocks con variaciones se puede optar por un sku a nivel de item o un sku para cada combinación de variedades.
El imperativo de control apunta inmediatamente hacia un item de stock para cada variedad (o combinación de ellas).
Es cierto que así podrá controlar a fondo , pero puede hacerse inmanejable si no se espulga el stock para quitar los sku sin uso o el rol de control es asumido por personal sin capacitación
Atención que la cantidad de items de stocks (si se sigue el segundo criterio) puede aumentar exponencialmente . Ej: en stock tan sencillos como :calzado
Generar las variaciones puede ser un trabajo ingrato.
Para facilitar las cosas habrá que almacenarlas en FAMILIAS , (talles europeos, talles americanos, tamaños, estampados deportivos,... etc.) que se utilizan en la generación de las variaciones de cada item , seleccionando solo aquellas que son de utilidad
Para un stock con algunos items con variaciones (sku para el item); la operaciones del negocio se capturan como entradas o salidas desde una registración de movimientos o procedimientos especializados que generan movimiento (ej: venta) es de utilidad una vista como esta:
TRAZABILIDAD:
-CONTROL DE STOCKS POR LOTES
-👉CONTROL DE STOCKS ARTICULOS INDIVIDUALIZADOS POR NUMERO DE SERIE
Numero de serie:
-Se utilizan números consecutivos , grupos de números , cadena de textos (con estructura)
-Puede ser que : por ser productores o por otros motivos de control (ej: garantía, vencimiento ,calidad ,mantenimiento, recuperación de productos ... etc.) la empresa le asigne un número de serie generado internamente
El propósito de asignar un número de serie a un producto es: seguimiento de una unidad individual (diferenciada /individualizada)de un item de stock. O sea para la trazabilidad de una unidad.
➪Un item de stock puede ser:
Discos rígidos hdmax 1tB, que tienen código hd444bv
➪Una unidad individual:
A cada disco rígido que este en stock : Se le asigna un número de serie , o se registra el número de serie del proveedor del producto
Si hay 10 hd444bv en stock , habrá registrados:10 números de serie , uno para cada disco
Cada número de serie identifica una instancia de hd444bv (una unidad/un individuo)
Que cambia al manejar productos con número de serie asignado?
Básicamente hay que considerar que: cada unidad recibida/ entregada tienen obligatoriamente un número de serie
Es redundante pero recordar que :en un flujo de trabajo , para cada estado posible de un producto , intervienen distintos números de serie. Los números de serie no se repiten para un item de stock.
Un número de serie puede ser un número consecutivo (generalmente una serie secuencial para cada item) o un número de serie estructurado (esto es mas clásico en fabricas con montajes) que no es mas que una tira de caracteres generados con algún criterio especifico
ej:
-fabrica-maquina-puesto-fecha-hr- número secuencial
-código de la serie- númerosecuencial
SIEMPRE la restricción es la misma : para un item de stock no se debe repetir al asignarlo a una unidad
➪ Cuando se crea un item de stock se deberá indicar si utiliza número de serie
➪ Actividades sobre el dato: número de serie
1-creacion y disponibilidad
-Cada número se serie creado es único para un item de stock
-La creación puede ser una actividad independiente o parte del ingreso al inventario
Creación independiente: al concluir la registración clásica de ingresos a un inventario, Se revisan todos los items ingresados ; SI un item es "con número de serie" desplegar un formulario con tantas filas como unidades se hayan ingresado
Creación parte del ingreso: en el formulario de ingresos , despues de ingresada la cantidad SI el item es "con número de serie" desplegar un formulario con tantas filas como unidades se hayan ingresado
2-asignacion/uso en el flujo de trabajos
Al registrar un movimimiento de un item de stock con " número de serie" , solo se permite cantidad=1 y se busca el numero de serie entre los números de serie disponibles para ese item de stock
Cuando una unidad con num. de serie es utilizada (por ejemplo una factura de venta) su número de serie no esta mas disponible
-Trazabilidad por número de serie
- informe por item de stock , por actividad
-por montajes
- etc
-👉CONTROL DE STOCKS POR LOTES
-CONTROL DE STOCKS ARTICULOS INDIVIDUALIZADOS POR NUMERO DE SERIE
Lotes:
En los productos que tienen fecha de vencimiento y/o requieren identificación de origen para control de calidad , la trazabilidad se implementa mediante los "números de lote."
Los números de lote pueden ser etiquetas internas (caso de ser productor y para control interno)o etiquetas asignadas por una entidad externa .
Los productos con un mismo numero de lote tienen propiedades que el fabricante o la entidad controladora considera comunes y de interes
Que cambia al manejar productos con lote asignado?
Cada lote debe ser rastreable a través de los procesos de la empresa
La producción de un lote generalmente es un proceso continuo entre fechas
Un lote generalmente se fabrica para satisfacer un pedido formal
Una adquisición puede incluir varios lotes.
Un lote puede ser parte de mas de una adquisición
Los productos de un lote pueden llegar a deposito en una única tanda o en varias
Los códigos de barra o los códigos qr se utilizan para facilitar la identificación de un lote.
Sera necesario registrar cada estado de los artículos de un lote
➤Cuando se generan
➤Cuando se reciben para almacenar
➤Cuando se trasladan entre distintos depósitos
➤Cuando se transfieren a un cliente (venta , distribución)
➤un numero de lote es un atributo de una pieza/articulo producto
➤Un lote es una entidad sobre la cual se maneja informacion
Trabajar con productos con "numero de lote" requiere mayor rigurosidad que cuando esto no interviene.
Deberá disponerse de flexibilidad de información y corrección de movimientos de stock .
En las PYMES que manejan productos por lote, se observa mas rigurosidad al momento de la venta ,despacho o distribución que en la recepción en depósitos.
Utilizando Códigos de barra o Qr , se disminuye la probabilidad de error.
PARA TENER EN CUENTA
Al incorporar numero de lote a un producto (item de stock) conceptualmente el "control de stock" no se altera siempre el stock=existencias +entradas-salidas.
Un item con lote no es un item diferenciado. Es solo un subgrupo del item que comparten el atributo "numero de lote"
item:'123'
Entran 500 , salen 200 , stock item '123' =300
60 de los recibidos eran del lote 1A
20 de los entregados eran del lote 1A
👀 El stock sigue igual
Entran 500 , salen 200 , stock item '123 =300
Pero ... el sistema debera poder responder a las preguntas programadas:
➨ cuanto queda del lota 1A?
➨ cuanto se ingreso del lote 1A?
➨ cuanto se entrego del lote 1A?
➨ Dada una fecha de corte,,, que lotes con stock >0 estaran o estan "vencidos"?
➨ ETC.
stock item '123' lote1A= 60-20=40
Si por algun motivo la informacion era incorrecta y en realidad se entregaron 50 del lote 1A
stock item '123' lote 1A=60-50=10
👀 El stock debe seguir igual
Entran 500 , salen 200 , stock item '123' =300
Se deben corregir los movimientos ,
Salida lote 1A = 20 se debe corregir a: Salida lote 1A=50
➤stock inicial= 440 - 180 +(60-20)=300
➤stock corregido=440-(180-30)+(60-(20+30)=300
otra alternativa:
stock corregido=440-(180-30)+(60-20+20-50)=300
articulos del item 123 sin lote o 'de otros lotes'
Articulos del item 123 lote 1A
(se explicita los movimientos a registrar en el stock)
Datos de un lote
Una funcion fundamental
✅ Los requerimientos de la actividad empresaria se han vuelto cada ves mas complejos.
Una de las cosas observadas es que desde el punto de vista de la información , ha evolucionado acumulando capas de soluciones (respuestas) y también requiriendo información y datos derivados del conocimiento nuevo generado por las capas anteriores.
Las estructuras concretas de los sistemas para la producción son difíciles hasta de representar esquemáticamente
Pero ... los básicos conceptos siguen firmes y de utilidad para estos complicados requerimientos.
✅ Hace años organizamos muchos de esos conceptos en una "matriz" desde donde resulto mas simple y rápido localizar fundamentos para el trabajo sobre todo de arquitectura
Las resoluciones adoptadas en diversos casos ,ante las restricciones y requerimientos de cada cliente (múltiples recursos , flujos de control , etc.) resultaron en eventos y procesos complejos
✅ Para aplicacion presentada , se opto por el control de la deuda por compras, donde el recurso principal es el dinero
Para algunos casos se usa efectivo y con algunos proveedores puede que en el movimiento de cheques de terceros se haya generado un saldo a favor (excedente) y por acuerdos con el proveedor se considere como una forma de pago.
En base a los desarrollos que habíamos hecho y con algún diseño para independizar del entorno (ej: los créditos de las cuentas de proveedores generalmente son generados en alguna actividad computarizada)
Diseño
Un ideal es un concepto de costo 0 , recursos necesario disponibles %100
Conceptos antiguos para revisar:
El termino "ingeniería de software" se refiere al conjunto de disciplinas utilizadas para especificar , diseñar y programar software. el termino "ingeniería de la información " comprende el conjunto de disciplinas interrelacionadas que son necesarias para construir una empresa computarizada. basada en sistema de datos
James Martin "sistemas de información"
INGENIEROS EN EL SOFTWARE
SNIPPETS
CONCEPTOS de area general: Proyectos de Inversion
➤Un PROYECTO es un conjunto de actividades de cualquier naturaleza (percibidos como una unidad ) que requiere para su realización :del uso o concurso inmediato o a corto plazo de algún recurso escaso o al menos limitado. Aun sacrificando beneficios actuales y asegurados en la esperanza de obtener en un periodo de tiempo mayor beneficio. Superiores a los que se obtienen con el empleo actual de dichos recursos
➤Otra definición operativa es: Un PROYECTO es el conjunto de antecedentes que permiten estimar ventajas y desventajas económicas que se derivan de asignar ciertos recursos para la producción de determinados bienes o servicios.
➤INVERSION: asignación de de recursos efectuada con la esperanza de obtener ingresos futuros que permitan recuperar los fondos invertidos y lograr un cierto beneficio. Significa: sacrificar ahora para obtener mas adelante
➤ El PROYECTO DE INVERSION , desde su nacimiento hasta su aprobación definitiva, transita por una secuencia de decisiones que se toman analizando ciertos factores característicos de cualquier proyecto
-tiempo
-incertidumbre
-riesgo
-equilibrio entre objetivos multiples
➤Etapas clasicas de un proyecto de inversion
1- identificacion
2- anteproyecto preliminar
3-anteproyecto definitivo
4-proyecto definitivo
5-ejecucion y puesta en marcha
🔖 La ambición profesional esta mucho mas allá del horizonte de los programas.
Hay muchas oportunidades en el ámbito de una empresa para invertir en su transformación
Ya sabemos: del principio P-R-S se infiere que cambios en la empresa requieren cambios en sus sistemas de información. Seguramente no alcanza con unos programas .... habrá que preparar proyectos para evaluar alternativas de sistemas
El proyecto sera evaluado con otra "ciencia" , nada que ver con la complejidad o belleza de la computación quizas nos encontremos que hasta existe un formalismo muy lejano al ambito de paradigmas o metodologías (ej.: ISO). Debemos estar en condiciones de generar proyectos ganadores
INGENIEROS EN EL SOFTWARE
SNIPPETS
CONCEPTOS de area general: Proyectos de Inversión
➤Costo de un producto: es el valor de los recursos utilizados en convertir entradas en productos utilizables
Clásicamente: material ,mano de obra , gastos generales (amortizaciones , suministros ,salarios no directos , impuestos ,seguros , servicios), costos de administración ,costos financieros , costo de comercialización
➤En el caso de proyectos informáticos , el costo del proyecto es la suma de todos los costos incurridos desde su gestación hasta su retiro de uso (asignar recursos requeridos en cada fase/etapa del ciclo de vida proyectado y estimar su valor) debe incluirse costo de equipamiento y herramientas ,también costo de documentar y prueba/verificación.
➤Para proyectos de corto/mediano plazo de gestación y desarrollo que no generan ingresos en forma directa un criterio de análisis es el costo anual equivalente
➤Para proyectos de mas compleja gestación y desarrollo y horizontes largos de vida, es recomendable el clásico análisis de inversión como flujo de fondos
La inversion como flujo de fondos: El análisis de la decisión de invertir requiere criterios aplicables a todas las alternativas . El movimiento de efectivo (caja) constituye un hecho concreto claramente definido no susceptible de interpretaciones ni tratamientos discrecionales.
Atención! : no confundir con gastos
Prevalece el criterio de "lo realizado"
flujo de fondos =flujo de caja=(ingresos-egresos)
Atención con: impuestos , amortizaciones (no se computan) intereses ,capital de trabajo , ajustes por inflación
INGENIEROS EN EL SOFTWARE
SNIPPETS
CONCEPTOS de area general: Sistemas
Ecuacion de grado 1,Segun Gaturro (para el dia del ingeniero del 2020) resuelve la pregunta ...
que hace un ingeniero?
Revisemos un marco para proyectos en el ambito que yo me desenvuelvo: sistemas de produccion
Producir estransformar unos insumos en productos utiles que aportan sus propiedades a la civilización
Un sistema de producción es cualquier sistema que transforma entradas en salidas útiles.
Cuando no referimos a sistemas , es porque productos complejos requieren que interenga mas de una "parte" . Es natural pensar en fabricas ,pero... un subsistema de producción que esta presente en toda actividad humana es : un sistema de información. Toda actividad de transformación necesita de información o señales para transformar sus entradas en forma controlada y optima.
"...Un sistema de producción en una organización puede ser de cualquier magnitud. Reciprocamente la unidad organizativa que contiene uno o mas sistemas de produccion tambien puede seer de cualquier magnitud... Esta definición permite aplicar los conceptos referidos al diseño de sistemas de produccion , utilizados en este libro , con prescindencia de la magnitud de los sistemas o la índole de la unidad organizativa ... " (G.Nadler Diseño de sistemas de produccion)
Toda unidad organizativa es afectada por una ley o principio muy conocido: P-R-S
Propositos-Recursos-Sistemas :se desarrollan en equilibrio balanceado . (El cumplimiento de este principio auspicia la evolucion controlada de los sistemas de información)
Si somos geniales con los sistemas , seguramente necesitaremos recursos diferentes y sera factible alcanzar nuevos propósitos. Del mismo modo la disponibilidad de recursos nuevos aunque sea dentro del área de sistemas de información , inevitablemente repercutirá en los método de trabajo (sistema) y en los propósitos preexistentes. Finalmente nuevos propósitos , plantearan nuevos requerimientos y se necesitaran cambios en los recursos y en los sistemas.
Pensemos solamente en nuestra area. Si hay cambios de equipamiento para producción estaremos afectados y si hay proyectos por nuevos productos , habrá que cambiar los sistemas de información
los cambios en los propósitos y en los recursos de transformación serán "propiedad" de otras profesiones (generalmente) . De alli la trasndisciplinariedad ; porque finalmente el proyecto de sistema de información será controlado o aceptado por el sistema concreto que lo requiera ,donde sus propositos y sus recursos impondrán requisitos específicos.
Me imagino que algunos saltaran.. Eso es managment! no es software engeneering !
Ingenieria de software no es solo programacion
PLEASE RESET YOUR MINDS! 😊