Resumen Asi
Resumen Asi
Resumen Asi
Es una metodología empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los
procesos de negocio, que se deben modelar, automatizar, integrar, monitorear y optimizar de forma continua.
BPMN
BPMN promueve
Es una técnica que ayuda a los dueños de procesos a identificar, diseñar, formalizar, controlar, mejorar y hacer más
productivos los procesos de la organización para lograr la confianza del cliente. Es una totalidad (secuencia de
principio a fin) que cumple un objetivo completo, útil a la organización y agrega valor para el cliente.
¿Qué es macroproceso?
Es un proceso de bajo nivel que no se puede desagregar más como proceso, donde aparecen las actividades en el
flujograma de información.
- Procesos críticos o claves: son los vitales para el funcionamiento del negocio.
- Actividad: es una acción (cotizar, vender, tomar un pedido) que realizar un rol (persona o equipo) en un
periodo de tiempo.
- Tarea: es el desarrollo de una actividad en acciones muy específicas (poner en funcionamiento un
equipo, ingresar cada dato en un documento, realizar una llamada telefónica).
- Procedimiento: es una descripción detallada de una parte del hacer de la organización.
- Protocolo o instructivo: es un acuerdo interno mandatorio y específico, (forma de responder a una
llamada).
- Norma: es una estandarización con el medio mayor o menor grado de obligación. EJ: ISO. (Como una
norma más fuera del ambiente).
Proceso de estrategia:
Proceso del negocio: Atiende a la misión de la empresa y se relaciona con el cliente. En cuanto más focalizada este la
organización, menor será el número de procesos del negocio.
Proceso de apoyo: Son las acciones necesarias para realizar las acciones del negocio, aquí caben los grandes
procesos como gestión y administración de personas, proyectos y otros.
- Mapa del proceso global: visión del conjunto ‘de helicópteros’ de todos los procesos de la organización.
Incluye los tres tipos de procesos que vimos. Permite conocer la totalidad y ubicarse en el contexto.
Simbología de BPMN
Proceso de software:
Ingeniería de software:
Es el establecimineto y uso de principios robustos de la ingeniería a fin de obtener económicamente software que
sea fiable y que funcione eficientemente sobre máquinas reales.
Marco de trabajo:
Actividades genéricas que se llevan a cabo para construir y un poner en marcha un sistema de información:
Estudio de factibilidad:
Se utiliza para analizar la necesidad, conveniencia y oportunidad de poner en funcionamiento un sistema, comando
o no con el equipamiento necesario.
Obtener una razonable seguridad acerca de la posibilidad del éxito de un proyecto comprende estudio de
factibilidades.
- Factibilidad técnica: implica la tecnología para llevar a cabo ese sistema que me pidieron, está disponible
en esa organización y si no la tienen ellos, si está disponible en el mercado.
- Factibilidad económica: comparar costos y beneficios.
- Factibilidad operativa: están involucradas las personas para la utilización del sistema. Por ejemplo: la
interfaz del usuario no le es práctica a la persona y no le ayuda en el trabajo. Al sistema lo tienen que
adecuar a las personas que lo van a usar.
Definición de método: El método indica que tengo que hacer. Es una explicación.
- Ser completas
- Ser modificables en su corrección.
- Producir productos contras los que se pueda medir el avance del desarrollo del sistema.
- Ser fácilmente aprovechable cada producto generado en la fase subsiguiente.
Documentación:
Se documenta para:
- Comprender los compromisos que se asumen, las políticas que se definen y los riesgos que se corren.
- Comunicar la información de un sector a otro. Ej.: de diseñador a programador.
- Controlar las alternativas que sufre el proyecto y prevenir situaciones indeseables.
- Comunicar a los usuarios las decisiones del diseño.
¿Qué documentar?
¿Cuándo documentar?
A medida que se van haciendo las cosas, que se generan los documentos y que se toman las decisiones.
¿Quién documenta?
La documentación debe ser organizada, pulida, y hecha presentable. Generalmente el grupo de sistemas elige a una
persona que se encargará de recolectar la información, organizarla y difundir los documentos que se producen en el
equipo.
La garantía de calidad es una actividad de protección que se aplica a cada paso del proceso de ingeniería de
software.
- Fiabilidad.
- Facilidad de uso.
- Flexibilidad.
- Reusabilidad.
- Integridad: seguridad de datos.
- Facilidad de mantenimiento.
- Portabilidad.
Características:
o Enfoque sistemático y secuencial en el desarrollo. Predecesor de todos los modelos de
desarrollo.
o Las etapas no se solapan.
- Modelo RDA
Características:
o Es un modelo de proceso incremental.
o Las etapas de un ciclo de vida tradicional son comprimidas a su máxima expresión, de forma que
el paso entre fases se lo debe hacer muy rápidamente e iniciar la próxima iteración.
o A menudo se desarrollan las interfaces de usuario del sistema utilizando un sistema de
desarrollo interactivo que permite que el diseño de la interfaz se cree rápidamente dibujando y
colando iconos en la interfaz.
o Para su desarrollo se utilizan herramientas de desarrollo visual para aplicar el proceso.
o Las funciones secundarias son eliminadas como sea necesario para cumplir con el calendario.
Es útil para cuando el cliente no identifica detalladamente los objetivos y cuando en programador no está seguro de
la eficiencia del programa.
- Modelo espiral
Características:
- Método formal: es una técnica basada en matemáticas, usada para describir sistemas. Permiten
representar la especificación del software, verificación y diseño de componentes mediante notaciones
matemáticas.
Características:
o Estos modelos llevan mucho esfuerzo.
o Difícil especificar aspectos de interfaz
o Pocos desarrolladores dominan las matemáticas para esto.
- El modelo evolutivo desarrolla una nueva versión de todo el sistema, en el incremental se parte de la
versión anterior sin cambios y se le añaden las nuevas funciones.
¿Qué es el PUD?
El proceso unificado es un proceso de desarrollo de software que nos dice los recursos humanos, las actividades y
artefactos que necesitamos utilizar, desarrollar o crear para modelar un sistema de software.
o Iterativo e incremental: Es práctico dividir el proyecto en partes mini proyectos, de estas pequeñas
iteraciones resultan de un incremento. En cada iteración los desarrolladores identifican los casos de
uso más relevantes.
Comprende: casos de uso y escenarios diseños de opciones de arquitectura, codificación y prueba,
evaluación en la entrega de cada ejecutable acompañado de su respectiva documentación.
El desarrollo de los enfoques rápidos prospero a fines de los 90’ con el desarrollo de la noción de enfoques rápido
con Stapleton 1997 – Scrum 2001 y programación extrema 2000. El término ágil, aplicado a software nace en 2001,
en una reunión celebrada en Utah, donde un grupo de 17 expertos de la industria de software tenían como objetivo,
ofrecer una alternativa a los procesos de desarrollo de software tradicionales, que se caracterizaban por ser rígidos y
dirigidos por documentación. Se creó la alianza agile.
Tiene éxito en el desarrollo de producto (pequeño o mediano para su venta) y en el diseño de sistemas a medida
dentro de una organización.
Las metodologías agiles tienen la particularidad de que el tiempo y los recursos (personas, materiales, equipos) son
fijos. En cambio, el conjunto de características y especificaciones del producto o servicio que se desea construir es
totalmente flexible, ajustable, cambiante.
El manifiesto ágil:
- Participación del cliente: ofrecer y priorizar nuevos requerimientos y evaluar las iteraciones.
- Entrega incremental: el cliente especifica los requerimientos que se van a incluir en cada incremento.
- Personas, no procesos: tienen que reconocerse y aprovecharse las habilidades del equipo de trabajo.
Permitir al equipo de su propia forma sin procesos establecidos.
- Adoptar el cambio: esperar a que cambien los requerimientos.
- Mantener simplicidad: tanto en el software a desarrollar como en el proceso de desarrollo.
- Involucrar al cliente: debe desear y poder pasar tiempo con el equipo, además representan a todos los
participantes.
- Priorizar a los miembros del equipo de desarrollo: puede ser que no se adapten a la participación
intensa, si se pierde un integrante, se pierde conocimiento explicito.
- Mantener la simplicidad: bajo la presión de fechas de entrega es posible que los miembros del equipo
carezcan de tiempo para realizar las simplificaciones deseables.
- Acordar el contrato: Al no contar con la ERS puede ser difícil elaborar contratos. Si todo va bien beneficia
a ambas partes, pero cuando surgen problemas es más difícil establecer quien paga por el tiempo y
recursos extras.
- No documentar: tienen un difícil y costoso mantenimiento.
- Falta de experiencia.
- Las grandes empresas tienen procedimientos y estándares de calidad que se espera que sigan todos los
proyectos.
- Resistencia cultural al cambio.
- No podemos centrarnos solo en el código es necesario documentar aspectos críticos, esquemas de bases
de datos, división del trabajo entre equipos.
- Deben diseñarse mecanismo de comunicación entre equipos.
SRUM
Usa equipos interfuncionales autoorganizados que dividen su trabajo en ciclos de trabajo cortos y
concentrados llamados sprints.
Equipos: roles
Scrum master: persona que lidera al equipo guiándolo para que cumpla las reglas y procesos de la
metodología y trabaja con el producto owner.
Product owner: representante de los clientes que usan el software. Se focalizan en la parte de negocio,
formaliza los requerimientos en historias de usuario a incorporar en el product backlog. El producto backlog(pila de
producto es una lista viva de requisitos priorizados por su valor para el cliente.
SCRUM – Proceso
El desarrollo se realiza de forma iterativa e incremental. Cada iteración, denominada sprint, tiene una duración
preestablecida de entre 2 y 4 semanas obteniendo como resultado una versión de software con nuevas
funcionalidades listas para ser usadas. En cada sprint, se va ajustando la funcionalidad ya construida y se añaden
nuevas prioridades siempre aquellas que aporten mayor valor de negocio.
Daily sprint meeting: reunión diaria del equipo de como máximo 15 min.
Demo retrospectiva: reunión al final del sprint y en la que el equipo presenta lo realizado mediante una
demostración del producto. Posteriormente, en la retrospectiva, el equipo analiza que se hizo bien, que mejorar.
Product backlog (pila de producto): conjunto de requisitos denominado historias de usuarios, escritos en un lenguaje
no técnico y priorizados por valor de negocio.
Sprint planning (planificación del sprint): reunión durante la cual el producto owner presenta las historias de
usuarios del backlog por orden de prioridad. El equipo determina la cantidad de historias que puede comprometerse
a completar en ese sprint, para en una segunda parte de la reunión, decidir y organizar como lo va conseguir.
Sprint backlog (pila de sprint): lista de las tareas necesarias para llevar a cabo las historias del sprint.
Concepto de paradigma
Es un conjunto de teorias, estandares y metodos que juntos representan una forma de organizar el conocimineto,
una forma de ver el mundo.
Es una metodología no algorítmica, identifica objetos que se comunican entre si haciéndose peticiones. Cada uno de
ellos encapsulan para si atributos, propiedades y un conjunto de operaciones. No hay ejecución procedimental de
tareas, sino que hay mensajes de un objeto a otro.
Son aplicaciones específicas construidas y mantenidas por la misma persona. Tienen un propósito muy limitado y un
ciclo de vida corto. Uno puede darse el lujo de reemplazarlo completamente en lugar de reutilizarlos o extender su
funcionalidad.
Software complejo
Llamado también de dimensión industrial son aplicaciones que exhiben un conjunto muy rico de comportamientos.
Tienen ciclos de vida largos y son sumamente difíciles sino imposibles de hacer para el desarrollar sumamente
difíciles sino imposibles de hacer para el desarrollador individual. Llevan una inversión considerable por lo que no es
aceptable desechar un sistema cada vez que los requerimientos cambien.
Esos problemas planteados se producen por el propio carácter del software y por los errores de las personas
encargadas de su desarrollo, respecto a esto último:
El rol de la descomposición
Cuando se diseñan sistemas complejos es esencial descomponerlo en partes, existen dos formas de hacerlo:
- Algorítmicas
- Orientada a objetos
- Cambia nuestra forma de pensar sobre los sistemas ya que es mas natural
- Los sistemas suelen construirse a partir de objetos ya existentes. Esto llevas a un alto grado de
reutilización, a un ahorro de dinero, un menor tiempo de desarrollo y una mayor confiabilidad del
sistema.
- La complejidad de los objetos que podemos utilizar sigue en aumento puesto que nuevos objetos se
construyen a partir de otros.
- Ayuda a explotar la potencia expresiva de los lenguajes de programación basados y orientados a objetos.
Clase y objeto
Una clase: es una abstracción de atributos y comportamientos comunes de un conjunto de objetos. Son los bloques
de construcción mas importantes de cualquier sistema orientado a objetos.
En UML las clases se representan mediante un rectángulo que puede estar dividido en tres partes.
Un objeto: es una representación concreta de esa abstracción, llamado también instancia. Los objetos representan a
un elemento, unidad o entidad individual e identificable ya sea real o abstracta con un papel definido en el dominio
del problema.
Ejemplo:
- Martin
- Laura Instancias
- Joaquín
- …
Todo objeto tiene una estructura, es decir atributos (propiedades) y operaciones (son acciones que el objeto puede
hacer). Continuando el ejemplo anterior:
Objeto: Martin
- Estado: abarcas todas las propiedades del mismo, mas los valores actuales de cada una de esas
propiedades. Está compuesto de datos, será uno o varios atributos a los que se le habrán asignado unos
valores concretos.
- Comportamiento: cómo actúa y reacciona un objeto en términos de sus cambios de estado y paso de
mensajes. Esta definido por los métodos que puede operar dicho objeto.
- Identidad: es aquella propiedad de un objeto que lo distingue de todos los demás. Es una propiedad que
lo distingue del resto.
Fue propuesta por Grady Booch y en ella propone que los sistemas pueden ser vistos como un conjunto de objetos o
entidades con una identidad y comportamiento propio, las cuales interactúan entre si para alcanzar el objetivo
común del sistema.
- Tipos (tipificación).
- Concurrencia.
- Persistencia.
- Enlace: es una conexión física o conceptual entre instancias de objetos. El objeto cliente utiliza los
servicios del servidor. Un mensaje enviado de un objeto a otro representa un enlace.
- Agregación: denota jerarquía en la cual un objeto del todo, tiene objetivos de la parte, puede o no
denotar una contención física. Ejemplo: un avión se compone de alas, motor, etc. un accionista tiene
acciones, pero estas no son parte físicas de él.
Operación: es una implementación de un servicio que puede ser requerido a cualquier objeto de la clase para que
muestre su comportamiento.
Colaboración: representa una solicitud de un cliente a un servidor para cumplir una responsabilidad del cliente. Se
dice que el objeto B colabora con A, si A para cumplir con su responsabilidad necesita enviar algún mensaje a B
solicitándole un servicio.
- Generalización (herencia): representa una jerarquía de abstracción en la que una subclase hereda de una
(herencia simple) o más superclases (herencia múltiple), permite a los objetos construirse a partir de
otros objetos. La clase base contiene todas las características de la clase base mas las características
particulares de la subclase.
La herencia de las operaciones de una superclase permite que las clases compartan su código en vez de
volver a definirlo. Se representa con una flecha de punta blanca.
- Asociación: relación semántica es decir dos clases colaboran entre si para algo. La notación para las
asociaciones es una línea entre clases, no establece la forma exacta en que una clase se relaciona con
otra.
Dentro de la asociación tenemos la agregación “todo/parte”, o sea un obvjeto tiene objetos de la parte.
Se representa con una flecha en cuyo extremo tiene un rombo y del otro lado el sentido de la flecha.
Ejemplo: Tarjeta se hace visible para pago porque un objeto de esta última clase recibirá como
parámetro de entrada para su operación “autorizar”, un objeto de la clase tarjeta.
Polimorfismo: Diferentes objetos reaccionan al mismo mensaje de modo diferente, en cada caso realizará una
operación diferente. (abrir caja, abrir cuenta, abrir puerta).
Multiplicidad: muestra la cantidad de objetos de una clase que se relaciona con otro objeto de otra clase. Se indica al
final de la línea de asociación.
Ejemplo: para mostrar los datos completos de una factura necesito información del cliente.
Ejemplo: para mostrar un resumen de cuenta de un cliente es necesario que el cliente conozca la factura que le
corresponda.
Diagrama de clases
Muestra un conjunto de clases, interfaces, sus colaboraciones y relaciones. Se utilizan para modelar las vistas de
diseño de un sistema. Esta vista es estática y soporta los requisitos funcionales del sistema.
Para construirlo…
Son vínculos físicos entre objetos. Un atributo que en realidad esta referenciando a un objeto de otra clase y que
permiten la relación de asociación entre clases. Al usar un puntero hay que poner en las operaciones conocerx()
El lenguaje unificado de modelado es un lenguaje estándar para escribir planos de software. NO es una
METODOLOGÍA.
UML es independiente del proceso, aunque para utilizarlo óptimamente se aconseja utilizar u proceso:
• Bloques de construcción:
- Elementos: Bloques básicos de construcción orientada a objetos. Se utilizan para escribir modelos bien
formados.
- Diagramas: Se dividen en diagramas de estructura y diagramas de comportamiento
- Relaciones: Se clasifican en, dependencia, asociación, generalización y realización
• Reglas: pautas para obtener modelos bien formados y en armonía con otros.
- Reglas semánticas: Nombres (como llamar a los elementos y relaciones), alcance (contexto de los
nombres), visibilidad (como se ven y utilizan), integridad (relaciones consistentes) y ejecución (simular el
modelo).
• Contemplan las reglas, la construcción de modelos:
- Abreviados: ciertos elementos se ocultan para simplificar.
- Incompletos: puede ausentar elementos iniciales del desarrollo.
- Inconsistentes: no se garantiza la integridad del modelo.
Se necesita para comprender el sistema, organizar el desarrollo, fomentar la reutilización y hacer evolucionar el
sistema.
- Vista de casos de uso: describen el comportamiento del sistema tal y como es percibido por los usuarios
finales, analistas, y encargados de las pruebas,
- Vista de diseño: comprende las clases, interfaces y colaboraciones que forman el vocabulario del
problema y las soluciones.
- Vista de procesos: comprende los hilos y procesos que forman los mecanismos de sincronización y
concurrencia del sistema.
- Vista de implementación: comprende los componentes y archivos que se utilizan para ensamblar hacer
disponibles el sistema físico.
- Vista de despliegue: contiene los nodos que forman la topología hardware sobre la que se ejecuta el
sistema.