Software">
Análisis de Sistemas Resumen Mayo2020
Análisis de Sistemas Resumen Mayo2020
Análisis de Sistemas Resumen Mayo2020
INGENIERÍA DE
REQUERIMIENTOS
Captura de Requisitos: de la visión a los requisitos.
Requisitos: Una especificación de lo que se debería implementar. Son una declaración de lo
que debería hacer el sistema y no de cómo debería hacerlo.
Modelo de Dominio.
Es una representación visual de las clases conceptuales significativas u objetos del
mundo real en un dominio de interés. Captura los tipos más importantes de objetos en el
contexto del sistema. Los objetos del dominio representan las “cosas” que existen o los
eventos que suceden en el entorno del sistema. Las clases del dominio aparecen en tres
formas típicas:
● Objetos del negocio que representan cosas que se manipulan en el negocio, como
pedidos, cuentas y contratos.
● Objetos del mundo real y conceptos de los que el sistema debe hacer un
seguimiento como la aviación enemiga, misiles y trayectorias.
● Sucesos que ocurrirán o han ocurrido, como la llegada de un avión, su salida y la
hora de la comida.
Estas clases se relacionan a través de asociaciones.
Objetivo de modelado del dominio es comprender y describir las clases más
importantes dentro del contexto del sistema.
Modelo de Negocio.
Desarrollar un modelo de negocio es una alternativa más potente que desarrollar un
modelo de dominio. Modelar el negocio es una técnica para comprender los procesos de
negocio de la organización. El objetivo es identificar los casos de uso del SW y las
entidades de negocio relevantes que el SW debe soportar, de forma que podríamos
modelar sólo lo necesario para comprender el contexto. El resultado de esta actividad es un
modelo del dominio derivado de la comprensión del funcionamiento del sistema de negocio
que lo rodea.
Este modelo se describe mediante diagramas de casos de uso.
Desarrollo del modelo de negocio:
1. Confeccionar un modelo de casos de uso del negocio que identifique los actores del
negocio y los casos de uso del negocio que utilicen los actores.
2. Desarrollar un modelo de objetos del negocio compuesto por trabajadores, entidades
del negocio, y unidades de trabajo que juntos realizan los casos de uso del negocio.
El objetivo es crear trabajadores, entidades del sistema del negocio, y unidades de
trabajo que realicen los casos de uso del negocio de la manera más eficaz posible,
es decir, rápidamente, con precisión y con un coste bajo.
Clases Conceptuales
Es una idea, cosa u objeto.
Formalmente se puede considerar en términos de:
● Símbolo: que representa la clase.
● Intención: definición de la clase (propósito).
● Extensión: conjunto de ejemplos a los que se aplica la clase conceptual
Ingeniería de Requerimientos.
Proceso de recopilar, analizar y verificar las necesidades del cliente o usuario para un
sistema. Su objetivo es entregar una especificación de los requisitos de Sw completa.
Proceso de la Ingeniería de requerimientos:
Estudio de viabilidad
Tiene como entrada un conjunto de requerimientos de negocio preliminares, una
descripción resumida del sistema y cómo éste pretende contribuir a los procesos del
negocio. Los resultados del estudio deberían ser un informe que recomiende si merece o no
la pena seguir con la ingeniería de requerimientos y el proceso de desarrollo del sistema.
¿Contribuye al sistema?¿Es asequible?¿Qué pasa si no se lo implementa?¿Tecnologías?
Obtención y análisis de requerimientos
Determina el dominio de la aplicación, qué servicios debe proporcionar el sistema, el
rendimiento requerido del sistema, las restricciones de HW, etc. Es un proceso iterativo y la
comprensión de los requerimientos mejora con cada vuelta.
Stakeholder: persona o grupo que se verá afectado por el sistema, directa o
indirectamente.
Actividades
● Descubrimiento de requerimientos: interactuar con stakeholders para recopilar sus
requerimientos.
● Clasificación y organización de requerimientos: Organización en grupos de los
requerimientos recopilados.
● Ordenación por prioridades y negociación de requerimientos: Ordenar
requerimientos prioritarios, encontrar y resolver req en conflicto a través de
negociación.
● Documentación de requerimientos: Documentar requerimientos y entrar en la
siguiente vuelta de la espiral.
Descubrimiento de requerimientos
Recoger información sobre el sistema propuesto y los existentes y extraer los
requerimientos del usuario y del sistema de esta información. Se analiza un enfoque que
ayuda a asegurar a que se consiga una amplia cobertura de stakeholders al descubrir
requerimientos, y se describen técnicas de descubrimiento de requerimientos.
Validación de requerimientos
Trata de mostrar que éstos realmente definen al sistema que el cliente desea. Es
importante ya que los errores en el documento de requerimientos pueden conducir a
importantes costos por repetición. Verificaciones de:
● Validez: el razonamiento y el análisis pueden identificar que se requieren funciones
adicionales o diferentes.
● Consistencia: los requerimientos no deben contradecirse.
● Completitud: debe incluir requerimientos que definan todas las funciones y
restricciones propuestas.
● Realismo: asegurar que se puedan implementar
● Verificabilidad: redactados de forma verificable, pruebas que demuestren que el
sistema va a cumplir con cada uno de los requerimientos.
Técnicas de validación:
● Revisiones de requerimientos: analizados sistemáticamente por equipo de revisores.
● Construcción de prototipos: modelo ejecutable.
● Generación de casos de prueba: probar requerimientos antes de escribir código.
Estudio de prefactibilidad:
Supone un análisis preliminar de una idea para determinar si es viable convertirla en un
proyecto.
Se analiza desde el punto de vista: - Económica: Beneficio>Costo.
- Técnica: Existencia de la tecnología necesaria.
- Operacional: Evalúa si el proyecto tiene apoyo.
- Legal: Aprobación legal del proyecto.
Proceso:
Serie de pasos a seguir para construir un producto. Lo desarrollan la Ingeniería de Sw y la
ingeniería en sistemas. Es importante porque da estabilidad y organización a las
actividades.
Modelo Incremental:
Modelo Espiral:
- Acompaña al Sw durante todo su ciclo de vida
- Entrega un producto básico que evoluciona con cada iteración
Reutilización:
Explotación de componentes ya desarrollados.
- Bajo Nivel: Dentro del mismo sistema (herencia)
- Alto nivel: Entre sistemas (Bibliotecas, paquetes)
Puede ser:
- Dirigido por CU
- Centrado en Arquitectura
- Iterativo e Incremental
Centrado en Arquitectura:
- Describe al sistema desde distintos puntos de vista, incluyendo aspectos dinámicos
y estáticos
- Cada producto tiene una función (CU) y una forma (Arq)
Iterativo e incremental:
- Dividir el proyecto en miniproyectos (iteración que resulta en incremento)
- Los incrementos hacen referencia al crecimiento del producto
Introducción a la Gestión de Equipos de Trabajos.
Durante el desarrollo de las actividades el líder tiene que entender que una de sus
principales prioridades es la delegación. La delegación exitosa requiere de:
● Determinación de un calendario de tareas.
● Definición de roles.
● Designación de responsabilidades.
Otra de las acciones ligadas a la gestión de equipos de trabajo es la puesta en
práctica de acciones de motivación. Motivar a los integrantes de un grupo es posible si:
● Se conoce a cada individuo.
● Se vela por su satisfacción laboral.
● Se le ha asignado una tarea para la que está preparado y que no le resulta, ni
demasiado fácil, ni inalcanzable.
● Se le han explicado los objetivos y éstos son realistas y están claros.
Los EAD tienen claridad es los objetivos de cada uno de sus individuos, de su
equipo, de su área y de su organización. Esto les permite establecer metas y ciclos de
trabajo para lograr resultados en los tiempos establecidos.
En esta etapa el grupo está formándose por lo que se le llama también como etapa
de Preparación o de Orientación. Se caracteriza principalmente porque la gente trata de
destacar, asimismo se denota inseguridad y deficiencia entre los miembros del equipo.
Hay una alta dependencia en el líder en cuanto a guía y dirección. El líder dirige.
Los miembros luchan entre sí para adquirir posiciones mientras tratan de establecer
por sí mismos relaciones con otros miembros del equipo y con el líder. Se forman pandillas
y agrupaciones y se pueden dar luchas de poder. El líder actúa como coach.
Fase 3: Norming (Normalización)
El equipo requiere que el líder delegue tareas y proyectos pero no necesita ser
instruido o asistido. El líder delega.
Esta última etapa, incluida en 1977, doce años después del modelo original ve al
grupo desde una perspectiva global e integradora, mas allá del propósito de las cuatro
primeras fases. En esta fase el grupo contempla su disolución y sus miembros se pueden
mover a nuevas tareas o proyectos, sintiéndose bien por lo que han conseguido.
3 RECOPILACIÓN DE INFORMACIÓN:
HERRAMIENTAS Y TÉCNICAS DE
RELEVAMIENTO Y DE CAPTURA DE
REQUISITOS
Síntesis de Relevamiento: Técnicas de obtención de
información: entrevistas, encuestas, censos, observación
personal, cuestionarios, reuniones, análisis de documentación
existente en la organización.
Relevamiento:
Es un acercamiento a la organización con el objetivo de recopilar información necesaria
para realizar el análisis de sistemas, obteniendo información acerca de la situación actual y
requisitos futuros.
Herramientas de relevamiento:
- Cursogramas
- Tablas / Árboles / Matrices de decisión.
4 METAMODELO – MODELOS
Concepto de Metamodelo.
Metamodelo:
Es un modelo de información para describir modelos. Con él se describen
categorizaciones, correspondientes al nivel de conceptualización. Se construye en un
lenguaje, como UML.
Este modelo de información consta de las siguientes entidades:
- Dominios
- Entidades
- Relaciones
- Atributos
Requisitos:
Para lograr el objetivo de este proyecto debemos crear un metamodelo que
almacene las estructuras organizativas de tipos de requisitos propuestos por los estándares
estudiados. El metamodelo que envuelve o clasifica a todas las estructuras organizativas de
los estándares mencionados y que forma parte del patrón de clasificación de tipos, se
refleja, mediante un diagrama de clases
Vista:subconjunto de UML que modela construcciones que representan una parte del
sistema
Los especificadores de casos de uso describen todos los casos de uso que se
han priorizado.
Paralelamente a los anteriores, los diseñadores de interfaces de usuario sugieren
las interfaces de usuario adecuadas para cada actor basándose en los casos de uso.
Entidad: Modela información que posee una vida larga y que es a menudo
persistente. Las clases de entidad modelan la información y el comportamiento
asociado de algún fenómeno o concepto, como una persona, un objeto del mundo
real, o un suceso del mundo real.
● En la mayoría de los casos son derivadas directamente de las clases entidad del
negocio o dominio. Estos pueden capturar información que no es manipulada dentro
del sistema.
Muestran una estructura de datos lógica y contribuyen a entender que información
manipular.
Interfaz: modela la interacción entre el sistema y el actor.
● Recepción y presentación de información.
● Separan la interfaz del usuario o comunicación con el usuario.
● Representan abstracciones de ventanas, forms, paneles, sensores, API (sistemas
externos).
● No describe cómo la interacción es realizada físicamente.
● Está relacionada con al menos un actor, y un actor está relacionado con al menos
una clase límite.
●
Control: Representan coordinación, secuencia, transacciones, y control de otros
objetos y se usan con frecuencia para encapsular el control de un caso de uso en concreto.
Las clases de control también se utilizan para representar derivaciones y cálculos
complejos, como la lógica del negocio, que no pueden asociarse con ninguna información
concreta, de larga duración, almacenada por el sistema (una clase de entidad concreta).
● Son usadas para encapsular el control relacionado a un CU.
● Usadas para representar derivaciones y cálculos complejos, tal como lógica
del negocio, que no puede ser representada por ninguna clase entidad
específica.
● La dinámica del sistema son modeladas por las clases control, dado que
manejan y coordinan los flujos de control y acciones principales y delegan
trabajo a otros objetos (clases entidad y límite).
Los objetos colaboran para realizar las funciones del sistema. Esto significa que los
objetos forman vínculos a otros objetos y envían mensajes a lo largo de esos vínculos. Si un
objeto desea que otro objeto ejecute un método, le envía un mensaje que puede tener
información adicional en forma de parámetros. El aspecto dinámico de un sistema orientado
a objetos se observa a través del intercambio de mensajes entre objetos.
DIAGRAMAS DE INTERACCIÓN
Conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar
entre ellos. Estos objetos interactúan para realizar colectivamente los servicios ofrecidos
por las aplicaciones. En sí, los diagramas de interacción muestran cómo se comunican los
objetos.
Patrones de diseño:
una solución a un problema de diseño. Para que una solución sea considerada un
patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su
efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser
reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas
circunstancias.
Scrum
● Define principios que guían las actividades del proceso: requerimientos, análisis,
diseño, evolución y entrega.
● Utiliza un conjunto de patrones de proceso para proyectos con tiempos apretados y
requerimientos cambiantes.
● Dentro de cada actividad se trabaja con un patrón de proceso: sprint o carrera.
Sprint: unidad de trabajo que debe ajustarse a una caja de tiempo (30 días). Durante el
sprint no se introducen cambios, lo que brinda un ambiente a corto plazo estable.
Retraso (backlog): lista de prioridades de los requerimientos, se pueden ir agregando otros
aspectos al retraso y el gerente evalúa las prioridades.
Las reuniones en el método Scrum son diarias con el equipo, cortas(15 min aprox) y
se discuten temas como: ¿Qué hiciste desde la última reunión? ¿Qué obstáculos estás
encontrando? ¿Qué planeas hacer mientras llega la siguiente reunión?
Criystal
Criystal es un conjunto de ejemplos de procesos ágiles que han demostrado ser
efectivos para diferentes tipos de proyectos.
Buenas prácticas
Programación de a Pares: Todo el software de producción se construye con dos
programadores en la misma máquina. Se hace una revisión online del código, resultando en
un mejor diseño, testing e implementación. Mejora la comunicación dentro del equipo.
Kanban
Técnicas de representación visual de información para mejorar la eficiencia en la
ejecución de las tareas.
Su característica principal es el uso de pulsos de sprint, para emplear tiempo
prefijado (timeboxing) como motor de avance al ritmo marcado por la secuencia de sprints.
La táctica de timeboxing ayuda al equipo.
Kanban vs Scrum
- Costo de Construcción:
Se busca estimar la cantidad de tiempo y personas involucradas en el desarrollo del
sistema. Los costos involucrados son:
- Salarios y gastos
- Costos capacitación
- Tiempo de Computadora
- Instalación de oficinas
- Gastos de viajes
- Costo de Instalación:
En un proyecto grande y complejo, el proceso de instalación es complejo e incluye
muchos gastos. Costos involucrados:
- Capacitación de usuarios
- Conversión de BD
- Gastos del equipo de desarrollo durante la instalación
- Costos Operacionales:
Una vez instalado el sistema, al usuario le costará dinero continuar operándolo. Los
costos involucrados son:
- Hardware / Software
- Personal
- Mantenimiento de Hw y Sw
- Costos de Fracaso:
Es el costo de posibles fallas del nuevo sistema. Existen varias formas de fallas de
sistemas, las cuales tienen un costo asociado: costos de hardware, costos de
software, costos de personal relacionado con la corrección del error, costes legales
en el caso de que la falla del sistema haya ocasionado pérdidas financieras y costos
asociados con la posible pérdida de ganancias o pérdida de clientes.
Es importante realizar un análisis de riesgos.
- Costo de Capital:
Algunos costos se desembolsan durante el primer año de operación, pero otros se
capitalizan y se reparten durante varios años. Generalmente los costos de hardware
y equipamiento se consideran de capital.
Análisis de Beneficios:
El intento de calcular beneficios tangibles es el que ocasiona problemas. Cuando se habla
de beneficios se puede decir que tendremos:
- Mejor marco de toma de decisiones
- Mejor Control
- Información Oportuna
Los beneficios que existen son:
- Tácticos
- Estratégicos
- Beneficios Tácticos:
Un beneficio táctico es aquel que permite que la organización siga con su negocio
pero con menores costos o mayores ganancias. Suelen asociarse principalmente
con la reducción de personal administrativo.
Son:
- Reducir costo de mantenimiento
- Ahorrar tiempo de procesamiento
- Ahorrar en mantenimiento y hardware
- Reducir costos de instalación de nuevos equipos
- Beneficios Estratégicos:
Estos representan la posibilidad de permitirle a la organización hacer cosas que le
serían imposibles con el sistema actúa.
Los beneficios estratégicos son más “atractivos” que los tácticos.
Éstos pueden ser:
- Identificar o llegar a nuevos clientes
- Identificar nuevos tipos de negocios
- Entrar a nuevos mercados
- Capacidad de proporcionar información que antes no se podía
Análisis de Riesgos:
Como parte de los cálculos de costo-beneficios, se debe hacer un análisis de riesgos del
nuevo sistema, porque puede ser que los costos o beneficios no sean los estimados. La
mayor preocupación son los costos y que las cosas vayan peor de lo pretendido. Por esto
resulta importante saber las consecuencias de que las cosas no salgan bien y saber qué
cosas pueden ir mal.
1. Se deben revisar los aspectos clave de los requerimientos para calcular un recuento
de Puntos Caso de Uso sin ajustar (UUCP - Unadjusted Use Case Points).
2. Estudiar los factores técnicos y el entorno para crear los factores de ajuste.
3. Ajustar los factores para llegar a obtener los Puntos Caso de Uso ajustados (UCP),
que posteriormente se transformarán en una estimación de esfuerzo (horas hombre).
3. Calcular los Puntos Caso de Uso no ajustados (UUCP - Unadjusted Use Case
Points): Los UUCP se calculan sumando la dificultad de las interacciones y la
complejidad de los casos de uso, es decir, sumando el total de los pesos de los
actores (clasificados en el paso 1) y el total de los pesos para los casos de uso
(clasificados en el paso 2).
Ajustar los UUCP: Se deben tener en cuenta factores de ajuste, tanto factores técnicos
como factores de entorno.
TCF: Se le asigna un valor entre 0 y 5, dependiendo de su influencia en el proyecto.
En este sentido, asignar un valor 0 significa que el factor es irrelevante para el proyecto, un
valor 3 es promedio y un valor 5 significa que el factor es esencial.