Desarrollo de Sistemas Flashcards
Diseño (4):
El diseño es la toma de decisiones sobre los componentes de un sistema, en particular:
Encontrar cuáles son los componentes
Qué responsabilidades tiene cada componente
Como se relaciona cada componente con los demás para formar un sistema
Sistema:
Conjunto de partes que se relacionan para lograr un objetivo común
Lo esencial (2):
Requisitos claves: Identificar y comprender los requisitos esenciales del software. Funcionalidades absolutamente necesarias para cumplir los objetivos del sistema
Arquitectura y estructura fundamental: Diseñar la estructura básica del software, cómo se organizarán los componentes y cómo interactuarán entre sí para cumplir los objetivos
Lo tangencial (2):
Características secundarias: Aquellas características que pueden ser deseables pero no esenciales. Pueden incluir elementos que mejorarían la experiencia del usuario pero no son críticos para la funcionalidad principal
Detalles de implementación específicos: Algunos detalles de implementación como elecciones de tecnología específica o decisiones detalladas de codificación pueden ser tangenciales en las etapas iniciales del diseño
Diseño de sistemas vs. diseño de software (2)
El diseño de software está englobado en el diseño de sistemas
La principal diferencia es que el diseño de software tiene características no tangibles
Requerimiento:
Necesidad o solicitud cuyo objetivo es resolver un problema
Requisito (2):
Condición o característica necesaria
Los requisitos son condiciones o capacidades que debe tener un sistema (requerimientos del sistema) para satisfacer las necesidades del usuario (requerimientos de usuario)
Etapa de relevamiento:
Se relevan, capturan, escuchan, observan, detectan las necesidades del usuario
Etapa de análisis:
Se definen los requerimientos que deberá tener el sistema para cumplir con las necesidades relevadas
Características de un requisito correctamente definido (4):
Completo: Contiene toda la información necesaria y no necesita ser expandido ni dividido
No ambiguo: Debe tener una y solo una interpretación
Verificable: Debe ser demostrado o probado su cumplimiento
Consistente: No deberá contradecir a otros requerimientos
Ventajas de requerimientos correctos (4):
Identificación de riesgos de manera temprana y atacar así los problemas más rápido
Análisis y desarrollo más claro y rápido
Base para un buen diseño
Definición clara de casos de prueba para realizar un test claro, completo y rápido
Requerimientos Funcionales (3):
Describen las funciones del sistema, su comportamiento específico.
Describen la transformación que el sistema realiza sobre sus entradas para producir las salidas esperadas.
Definen QUÉ debe hacer un sistema
Requerimientos no funcionales (3):
Son los atributos que definen cómo el sistema realizará el trabajo.
Pueden considerarse como las restricciones planteadas respecto a cómo los requerimientos funcionales son implementados.
Definen CÓMO debe ser el sistema.
Clasificación de requerimientos no funcionales (3):
De producto o calidad
Organizacionales
Externos
Requerimientos de producto o calidad (7):
Restricciones
Requisitos
Mantenibilidad: Cambiar sin generar impacto.
Usabilidad: Amigable para el usuario respecto a la navegación.
Performance: Eficiencia esperada.
Disponibilidad: Continua, con un nivel de servicio 24/7
Seguridad: Tiene en cuenta la sensibilidad de la información y como manejarla.
Requerimientos organizacionales (2):
Entorno u organizacional: Procedimientos operativos que describen cómo será usado el sistema dentro del contexto de la organización.
Diseño, desarrollo e implementación: Lenguaje de programación a utilizar, estándares de codificación, herramientas para gestionar el desarrollo de su ambiente de prueba, etc.
Requerimientos externos (3):
Reguladoras: Leyes y reglamentos que establecen qué debe hacer el sistema y cómo debe hacer para cumplirlas.
Éticos: Se adapta a las costumbres de la sociedad en la que se desenvuelve.
Legislativos: Características que debe cumplir el sistema para cumplir con la ley.
Diferencia entre requerimientos funcionales y no funcionales y lo esencial y lo tangencial
los requerimientos funcionales y no funcionales se centran en qué debe hacer el sistema y cómo lo hace. Lo esencial y lo tangencial se centran en distinguir entre elementos fundamentales y accesorios en el diseño.
Atributos de calidad de software (8):
Adecuación funcional
Eficiencia de desempeño
Compatibilidad
Usabilidad
Fiabilidad
Seguridad
Mantenibilidad
Portabilidad
Adecuación funcional (3):
Completitud funcional: Grado en el cual el conjunto de funcionalidades cubre todas las tareas y los objetivos del usuario especificados
Corrección funcional: Capacidad del producto o sistema para proveer resultados correctos con el nivel de precisión requerido
Pertinencia funcional: Capacidad del producto software para proporcionar un conjunto apropiado de funciones para tareas y objetivos de usuario especificados
Eficiencia de desempeño (3):
Comportamiento temporal: Los tiempos de respuesta y procesamiento y los ratios de throughput de un sistema cuando lleva a cabo sus funciones bajo condiciones determinadas en relación con un banco de pruebas (benchmark) establecido
Utilización de recursos: Las cantidades y tipos de recursos utilizados cuando el software lleva a cabo su función bajo condiciones determinadas
Capacidad: Grado en que los límites máximos de un parámetro de un producto o sistema software cumplen con los requisitos
Compatibilidad (2):
Coexistencia: Capacidad del producto para coexistir con otro software independiente, en un entorno común, compartiendo recursos comunes sin detrimento
Interoperabilidad: Capacidad de dos o más sistemas o componentes para intercambiar información y utilizar la información intercambiada
Usabilidad (6):
Adecuación: Capacidad del producto que permite al usuario entender si el software es adecuado para sus necesidades
Capacidad de aprendizaje: Capacidad del producto que permite al usuario aprender su aplicación
Capacidad para ser usado: Capacidad del producto que permite al usuario operarlo y controlarlo con facilidad
Protección contra errores de usuario: Capacidad del sistema para proteger a los usuarios de cometer errores
Estética de la interfaz: Capacidad de la interfaz de usuario de agradar y satisfacer la interacción con el usuario
Accesibilidad: Capacidad del producto que permite que sea utilizado por usuarios con determinadas características o discapacidades
Fiabilidad (4):
Madurez: Es la capacidad del producto software para evitar fallas como resultado de errores en el software
Disponibilidad: Capacidad del sistema o componente de estar operativo y accesible para su uso cuando se requiere
Tolerancia a fallos: Es la capacidad del producto software para mantener un nivel especificado de funcionamiento en caso de errores del software o de incumplimiento de su interfaz especificada
Recuperabilidad: Es la capacidad del producto software para reestablecer un nivel especificado de funcionamiento y recuperar los datos afectados directamente en el caso de una falla