Resumen de Los Videos
Resumen de Los Videos
Resumen de Los Videos
variedad de dispositivos
adapta el sistema al usuario
dominio de la informacion
procesamiento
crear y transformar
definir y como cambia la informacion
usuario
accesos
permisos
usuario
existe
valido
permisos
comportamiento
escenarios
funciones
excepciones
completo
guardar
exito
definir el comportamiento
definir si en caso el servidor se tarde
interaccion
tipo de accion que realizan los usuarios
recordar no suponer
tener claridad
modelos de los participantes
diagramas de flujo, uml
diagramas de clases
no realizar mucho detalle
ingeneria de requirimientos
modelado de negocio(rup)
planificacion(xp)
recopilacion de informacion de la organizacion (contexto)
contexto de sistema
descripcion
(m,u,ob,org)
descripcion de procesos
tareas:
participantes
informacion
proceso
resultados
para xp:
definicion(cascada)
analisis
determinacion de requerimientos
determinación de requerimientos de XP
La determinación de los requerimientos en XP (Extreme Programming) se realiza de forma
colaborativa entre el equipo de desarrollo y el cliente. Se utilizan "historias de usuario" para
describir los requerimientos del sistema. Estas historias son descripciones de alto nivel de
las funcionalidades requeridas por el sistema y son escritas por el cliente en tarjetas de
índice. Estas historias de usuario se utilizan para crear pruebas de aceptación y para
planificar las iteraciones de desarrollo.
Requerimientos de Usuario
Los requerimientos de usuario se refieren a las necesidades, deseos y expectativas del
usuario final del sistema en desarrollo. Estos requerimientos se capturan a través de
diversas técnicas, como entrevistas, cuestionarios, observaciones y talleres de trabajo. A
menudo se presentan en un lenguaje sencillo y comprensible para los usuarios, evitando la
jerga técnica.
Funcionalidades: Lo que el usuario necesita que el sistema haga. Esto puede incluir
tareas específicas, características o funciones.
Interacción: Cómo el usuario espera interactuar con el sistema. Esto puede incluir
la interfaz de usuario, la facilidad de uso y la accesibilidad.
Rendimiento: Cómo de rápido o eficiente debe ser el sistema.
Seguridad: Qué medidas de seguridad necesita el sistema para proteger la
información del usuario.
Soporte y mantenimiento: Qué tipo de soporte y actualizaciones necesita el
usuario después de que el sistema esté en funcionamiento.
Recordar que los requerimientos de usuario deben ser específicos, medibles, alcanzables,
relevantes y limitados en el tiempo (SMART, por sus siglas en inglés).
No se deben incluir conceptos técnicos en los requerimientos de usuario debido a que estos
deben estar escritos en un lenguaje que los usuarios finales puedan entender fácilmente. Si
se usan términos técnicos, puede haber malentendidos, ya que los usuarios pueden
interpretarlos de manera diferente a los desarrolladores. Esto podría llevar a errores y
retrasos en el desarrollo del sistema. Además, los requerimientos de usuario son a menudo
la base para las pruebas de aceptación, y si los usuarios no comprenden los requerimientos,
podrían tener dificultades para realizar estas pruebas de manera efectiva.
Descripción Detallada
La descripción detallada de los requerimientos es una parte fundamental del proceso de
desarrollo de software. En esta etapa, cada requerimiento se desglosa en detalles más
específicos. Se describen las características y funcionalidades esperadas, así como cualquier
regla o restricción que pueda aplicarse.
Los detalles pueden abordar cómo se espera que funcione una característica en particular,
cómo los usuarios interactuarán con ella, qué datos necesitará y producirá, y cómo debería
responder a situaciones excepcionales o errores.
Los usuarios desean que el software les permita realizar ciertas actividades o tareas,
conocidas como funcionalidades, que deben estar claramente especificadas en los
requerimientos de usuario. Además, esperan poder interactuar con el software de una
manera específica, que debe ser fácil de usar y accesible. También tienen expectativas
sobre el rendimiento del software, como la velocidad y la eficiencia, y requieren que tenga
medidas de seguridad para proteger su información. Por último, los usuarios necesitan
soporte y actualizaciones después de que el sistema esté en funcionamiento.
Historias de Usuario
Las historias de usuario son una forma efectiva de capturar los requerimientos de los
usuarios en el desarrollo de software. Son descripciones cortas y simples de una
característica contada desde la perspectiva del usuario final.
Una historia de usuario típica sigue el formato: "Como [tipo de usuario], quiero [una
acción] para que yo pueda [beneficio/resultado]". Esta estructura ayuda a centrar el
desarrollo en las necesidades del usuario en lugar de en las especificaciones técnicas.
Por ejemplo, una historia de usuario para un sistema de comercio electrónico podría ser:
"Como cliente, quiero poder buscar productos por nombre para que pueda encontrar
rápidamente lo que estoy buscando".
Es importante recordar que las historias de usuario son solo una herramienta en la caja de
herramientas de requerimientos y deben usarse junto con otras técnicas y documentación
para capturar completamente los requerimientos del sistema.
Las interfaces de hardware se refieren a los puntos de conexión físicos que permiten a los
dispositivos interactuar entre sí. Esto puede incluir puertos USB para conectar dispositivos
externos, tarjetas de red para conectar el sistema a una red, o interfaces de video para
conectar monitores.
Las interfaces de software, por otro lado, se refieren a los puntos de interacción entre
diferentes programas o entre un programa y el sistema operativo. Esto puede incluir APIs
(interfaces de programación de aplicaciones) que permiten a los programas interactuar con
otros programas o con el sistema operativo, o GUIs (interfaces gráficas de usuario) que
permiten a los usuarios interactuar con el programa.
Restricciones Tecnológicas
Las restricciones tecnológicas son limitaciones que pueden afectar el desarrollo y la
implementación de un sistema. Estas pueden incluir:
1. Seguridad: El sistema debe proteger la información del usuario y cumplir con las
regulaciones relevantes. Es necesario implementar medidas de seguridad adecuadas
para evitar el acceso no autorizado, la pérdida de datos y otros riesgos de seguridad.
2. Rendimiento: El sistema debe ser lo suficientemente rápido y eficiente para
satisfacer las necesidades de los usuarios. Esto puede incluir la velocidad de
procesamiento, el tiempo de respuesta, la capacidad de manejar múltiples usuarios o
transacciones simultáneamente, entre otros.
3. Usabilidad: El sistema debe ser fácil de usar y accesible para todos los usuarios.
Esto puede implicar el diseño de una interfaz de usuario intuitiva, la
implementación de funciones de accesibilidad para usuarios con discapacidades, la
provisión de documentación y soporte, entre otros.
4. Compatibilidad: El sistema debe ser compatible con la infraestructura tecnológica
existente, incluyendo hardware, software, redes y sistemas operativos. También
debe ser capaz de integrarse con otros sistemas y aplicaciones según sea necesario.
5. Mantenibilidad: El sistema debe ser fácil de mantener y actualizar. Esto puede
incluir la facilidad para corregir errores, implementar nuevas funciones, adaptarse a
los cambios en el entorno operativo, entre otros.
Es importante recordar que los requerimientos no funcionales son igual de importantes que
los requerimientos funcionales. Un sistema puede tener todas las funciones necesarias, pero
si no es seguro, eficiente o fácil de usar, es probable que no sea exitoso.
UML es una herramienta poderosa y flexible que puede ayudar a los equipos de desarrollo
a comunicar sus ideas de manera clara y efectiva.
ABSTRACCION
La abstracción nos permite crear un modelo conceptual de un objeto o concepto y luego
utilizar ese modelo para crear objetos más específicos que heredan las características y
comportamientos del modelo conceptual. Esto nos permite reutilizar código y simplificar la
creación de objetos complejos.
Los tres ya habían creado sus propios métodos de desarrollo de software orientado a
objetos:
el método Booch
la técnica de modelado de objetos (OMT)
el método de Ingeniería de Software Orientado a Objetos (OOSE)
Metamodelismo
UML 2.0 define unidades de lenguaje que operan en diferentes niveles. Se utilizan para
expresar la estructura y el comportamiento de un sistema. Algunos elementos utilizan el
lenguaje de modelado para definirse. La metamodelación incluye todos los elementos de
UML, incluyendo aquellos que describen el propio UML. Para ello utiliza cuatro niveles
dispuestos jerárquicamente (M0 a M3).
El nivel meta-meta M3 especifica los metadatos del lenguaje de modelado y sus relaciones
usando la Meta Object Facility (MOF). Define el metamodelo. También le permite
transferir metadatos. El formato XMI definido por el OMG es una herramienta para
compartir datos orientados a objetos a nivel meta-meta entre herramientas de desarrollo.
El Object Constraint Language (OCL), un lenguaje de programación declarativo,
complementa el UML y regula las condiciones de contorno de los respectivos modelos.
Como lenguaje de texto, sin embargo, solo tiene un efecto de apoyo, en lugar de estar
disponible para el modelado en sí mismo.
Unidades lingüísticas
UML (nivel M2) define las reglas de su propia semántica. Las unidades de lenguaje son
términos definidos en la superestructura UML 2.0. Esto permite una representación formal
que todos los participantes pueden entender. Las unidades lingüísticas, en inglés language
units, abstraen objetos y procesos de estructura y funcionamiento similares y les dan una
forma visualmente representable. Según el nivel jerárquico dentro del modelo, los
elementos asumen tareas más especializadas o definen más estrechamente otros elementos.
Clase: como unidad lingüística, las clases son un aspecto central de UML. Definen lo que
constituye una clase y cómo las clases interactúan entre sí. Esta language unit tiene cuatro
niveles, que van desde elementos simples hasta relaciones más complejas:
Componente: los componentes son elementos que separan su contenido del sistema
externo. Solo existe una conexión con el exterior a través de interfaces o puertos. Un
conector de composición establece una conexión con otro componente a través de la
interfaz. El conector de delegación une los elementos interiores con una interfaz en el borde
exterior. Los componentes son modulares e intercambiables.
Perfil: un perfil configura UML 2.0 para necesidades específicas. Los términos abstractos
como actividad u objeto deben ser especificados para algunos proyectos con el fin de
aumentar la comprensión. La semántica y las notaciones que están colocadas en lugares
sueltos se pueden adaptar con un perfil.
Modelo: el modelo comprende todos los elementos necesarios para presentar una visión
específica de la estructura o el comportamiento de un sistema. Esto también incluye las
influencias externas, como los actores.
Manipular objetos
Manipular relaciones de objetos
Manipular características estructurales
Acciones de llamada
Generar valores
Acciones sobre objetos
Recibir eventos
Actividad: las acciones interactúan a través flujos de datos y control. Esto resulta en un
sistema complejo de comportamientos, las actividades.
Interacción: este metamodelo describe cómo se intercambian los flujos de mensajes entre
objetos, cuándo se envía un mensaje a qué objeto y qué otros elementos se ven afectados
por él.
Estado de las máquinas: en un diagrama de estado, este modelo de metamodelo muestra
tanto estados (situaciones con propiedades inmutables) como semiestados (estados sin
asignación de valor) y sus transiciones. Los objetos de un estado pueden asignarse a
acciones o actividades.
Distribución: una red está formada por objetos que están conectados entre sí en mallas. Se
da un caso especial de uso si estos elementos representan software ejecutable o artefactos.
Estos artefactos se ejecutan en entornos de ejecución o dispositivos clasificados como
nodos por UML 2.0. Por lo tanto, el artefacto depende del nodo. La distribución representa
esta relación de dependencia que surge durante la instalación.
Aplicación: el caso de uso (como unidad de idioma) representa los requisitos del sistema.
El actor (una persona o un sistema) es un elemento que describe quién o qué debe realizar
una actividad concreta utilizando el sistema. El sistema también puede ser una clase o un
componente y, por lo tanto, se describe como un tema. El caso de uso (como elemento
modelo) simplemente indica que se espera un comportamiento que sea visible para el
mundo exterior, pero no suele representar qué acciones concretamente. Dentro de una
descripción de comportamiento, el modelado asigna los requisitos detallados al caso de uso.
Flujos de información: esta unidad de lenguaje UML describe los elementos unidad de
información y flujo de información. Estos elementos del modelo son técnicas abstractas de
descripción del comportamiento que pueden estar muy orientadas al detalle, como
actividades o interacciones. Esta representación simplificada permite el uso universal de
estos elementos de modelado en todos los tipos de diagramas UML. Por lo tanto, a
diferencia de la clase, la unidad de información nunca se describe con más detalle por
atributos ni se incluye en los métodos. Por lo tanto, el flujo de información también conecta
todos los elementos posibles que intercambian cualquier tipo de información entre sí.
Diagramas de estructura
La clase "Persona" tiene los atributos nombre y apellido. Las operaciones determinan si la
instancia se muestra (display) u oculta (hide).
Vista de caja blanca en un componente. Las interfaces necesarias se muestran como cajas
("Socket") y se ofrecen como círculos ("Lollipop").
Diagramas de comportamiento
El diagrama del caso de uso representa a UML con un rectángulo con la etiqueta use case.
El remitente es el actor (esto se representa como una figura de palo, como en el caso
anterior, incluso si se trata de un sistema). El actor está conectado por una relación de
dependencia (representada como un guion) con el caso de uso (elipse con etiqueta) dentro
de un sistema (rectángulo con etiqueta <<sistema>> y nombre del sistema).
El diagrama de casos de uso en el ejemplo tiene un actor que puede esperar dos casos de
uso dentro del sistema “red social XYZZY”
!https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2018/EN-UML-
use-case-diagram.png
Diagramas de interacción
!https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2018/EN-UML-
communication-diagram.png
Diagrama de temporización de una lámpara LED con cambiador de color: las instancias de
color se alternan y están activas durante el mismo intervalo de tiempo.
!https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2018/EN-UML-
time-course-diagram.png
Diagrama de
Estructurar componentes y mostrar relaciones
componentes
Diagrama de casos de
Comportamiento Representa varias aplicaciones
uso
software de la organizacion
1. Software de gestión empresarial (ERP): Permite integrar y gestionar procesos clave de
negocio, como contabilidad, recursos humanos, gestión de inventario, ventas y compras.
2. Software de gestión de relaciones con el cliente (CRM): Ayuda a gestionar las
interacciones con los clientes, seguimiento de ventas, marketing y servicios al cliente.
3. Software de contabilidad y finanzas: Facilita la gestión de las finanzas de la empresa,
incluyendo la contabilidad, facturación, nóminas y reportes financieros.
4. Software de gestión de proyectos: Ayuda a planificar, organizar y gestionar proyectos,
asignar recursos, realizar seguimiento del progreso y colaborar en equipo.
5. Software de recursos humanos (HRM): Automatiza procesos relacionados con la gestión
de empleados, como la contratación, la gestión del rendimiento, la nómina y el desarrollo
de habilidades.
6. Software de gestión de inventario y cadena de suministro: Permite controlar y optimizar
el flujo de productos y materias primas, desde la adquisición hasta la entrega al cliente
final.
7. Software de colaboración y comunicación: Facilita la comunicación interna y colaboración
entre empleados, ya sea a través de correo electrónico, mensajería instantánea,
videoconferencia o herramientas de gestión de documentos.
8. Software de análisis de datos y business intelligence (BI): Ayuda a recopilar, analizar y
visualizar datos para tomar decisiones empresariales informadas y estratégicas.
requerimientos y validaciones
en ciertos casos pueden ocurrir donde nos equivocamos en el momento de entender los
requerimientos, es decir, tener un presupuesto excesivo que llegue al borde de la “quiebra”
1. Requerimientos Funcionales:
o Describen las funciones específicas que el sistema debe realizar, como
operaciones, servicios o interacciones con el usuario.
o Ejemplo: "El sistema debe permitir a los usuarios iniciar sesión con su correo
electrónico y contraseña."
2. Requerimientos No Funcionales:
o Especifican atributos del sistema como su rendimiento, usabilidad, seguridad o
compatibilidad.
o Ejemplo: "El sistema debe ser capaz de manejar al menos 1000 usuarios
concurrentes sin degradación significativa del rendimiento."
3. Requerimientos de Interfaz:
o Definen cómo el sistema interactúa con otros sistemas o componentes, incluidas
interfaces de usuario, interfaces de hardware, etc.
o Ejemplo: "El sistema debe ser compatible con los navegadores Chrome, Firefox y
Edge."
4. Requerimientos de Usuario:
o Son declaraciones en lenguaje natural que describen lo que el usuario espera del
sistema.
o Ejemplo: "El sistema debe proporcionar un manual de usuario detallado en
formato PDF."
1. Validación de Requerimientos:
o Verificar que los requerimientos capturados sean precisos, completos y
consistentes con las expectativas del cliente.
o Se utilizan técnicas como revisión por pares, prototipado y casos de uso para
validar los requerimientos.
2. Validación de Diseño:
o Asegurarse de que el diseño del sistema cumpla con los requerimientos
establecidos.
o Se pueden realizar revisiones de diseño y simulaciones para validar la arquitectura
y la estructura del sistema.
3. Validación de Código:
o Confirmar que el código implementado cumple con los requerimientos y está libre
de errores.
o Las pruebas de unidad, integración y sistema se utilizan para validar el código.
4. Validación de Usuario:
o Evaluar si el sistema satisface las necesidades del usuario final.
o Se realizan pruebas de aceptación del usuario y se recopilan comentarios para
mejorar el producto.
5. Validación de Cumplimiento:
o Verificar que el sistema cumple con los estándares y regulaciones relevantes.
o Se pueden realizar auditorías y evaluaciones de cumplimiento para validar el
sistema.
6. Validación de Seguridad:
o Confirmar que el sistema es seguro y protegido contra amenazas y
vulnerabilidades.
o Pruebas de penetración y revisiones de seguridad se utilizan para validar la
seguridad del sistema.
TAREA DE INVESTIGACION
Arquitectura por Capas
¿Qué es?
La arquitectura por capas es un patrón de diseño que organiza una aplicación en capas
lógicas. Cada capa tiene una responsabilidad específica y se comunica solo con las capas
adyacentes.
Capas típicas:
Capa de Presentación (UI): Interfaz de usuario que maneja la interacción con el usuario.
Capa de Acceso a Datos (DAL): Maneja las operaciones de acceso a la base de datos.
Capa de Persistencia (si está separada de DAL): Interactúa directamente con la base de
datos.
Separación de preocupaciones: Cada capa tiene una responsabilidad clara y definida, lo que
reduce la complejidad.
Objetivo y Función:
El objetivo principal es organizar y estructurar el código de manera que sea más fácil de
mantener, entender y escalar. La función de cada capa es manejar una parte específica de la
funcionalidad de la aplicación, evitando solapamientos y reduciendo la dependencia entre
partes del sistema.
¿Qué es?
Componentes
Modelo: Gestiona los datos y la lógica de negocio. Responde a solicitudes para recuperar
información y puede realizar modificaciones en los datos.
Controlador: Maneja la entrada del usuario, interactúa con el modelo y selecciona la vista
adecuada para presentar la información.
Facilita las pruebas: La separación permite probar cada componente de forma aislada.
Objetivo y Función:
El objetivo principal es mejorar la organización del código, facilitando el mantenimiento y
la escalabilidad de la aplicación. La función de cada componente es específica:
Aunque la arquitectura por capas y el MVC son diferentes en su enfoque, pueden utilizarse
conjuntamente. Por ejemplo, en una aplicación web, el modelo MVC puede implementarse
dentro de una arquitectura por capas donde:
La lógica de negocio y la gestión de datos pueden estar en las capas de negocio y acceso a
datos, respectivamente.