Resumen de Análisis y Diseño de Sistemas PDF
Document Details
Uploaded by Deleted User
Tags
Related
- Botswana Accountancy College Systems Development Lecture PDF
- SAD System Analysis & Design Handwritten Notes PDF
- Systems Analysis and Design, 13th Edition Chapter 4: Requirements Engineering PDF
- CSE2SAD Systems Analysis and Design Exam 2024 PDF
- Chapter 1: Introduction to Systems Analysis and Design PDF
- Software Engineering PDF
Summary
This document provides a summary of systems analysis and design, including systems, software categories, and methodologies. It also covers automated systems, software categories, and software development methodologies.
Full Transcript
Sistemas Es una disciplina que permite comprender y resolver problemas relacionados con sistemas informáticos mediante procesos organizados y estructurados. Se basa en la comunicación, el análisis, el diseño, la implementación y la verificación de soluciones. Sistema Un sistema es un conjunto de co...
Sistemas Es una disciplina que permite comprender y resolver problemas relacionados con sistemas informáticos mediante procesos organizados y estructurados. Se basa en la comunicación, el análisis, el diseño, la implementación y la verificación de soluciones. Sistema Un sistema es un conjunto de componentes interrelacionados que trabajan en conjunto para lograr un objetivo. Los sistemas pueden clasificarse en: ٭Naturales: Sistemas geológicos, estelares, biológicos (físicos y vivientes). ٭Hechos por el hombre: Automatizados (sistemas informáticos) y no automatizados. ¿Porqué no conviene automatizar algunos sistemas? ٭Costos. ٭Conveniencia. ٭Seguridad. ٭Facilidad de mantenimiento. ٭ Políticas. Sistemas Automatizados Los sistemas automatizados son aquellos que utilizan tecnología para realizar tareas de manera autónoma, sin intervención humana constante. Los mismos están conformados por hardware, software, personas (usuarios finales, administradores, desarrolladores, personal de mantenimiento) y datos. Categorías de los sistemas automatizados Sistemas en línea: Sistemas bancarios en línea, redes sociales, plataformas de comercio electrónico. -Disponibilidad continua (24/7). -Conexión a una red. -Dependen de la capacidad de hardware. -Procesamiento inmediato. Sistemas de tiempo real: Control de tráfico aéreo, sistemas de monitoreo médico, sistemas de seguridad. -Respuesta instantánea (reciben, procesan y devuelven datos). -Interacción con el ambiente (personas y entorno). -Monitoreo continuo y control sobre el entorno. -Gestión de errores en tiempo real. Sistemas de apoyo a decisiones: Sistemas de planificación empresarial. -Análisis de datos. -Proporcionan información relevante. -Generación de modelos predictivos y reportes. Sistemas basados en el conocimiento: Sistemas expertos en diagnóstico médico, chatbots inteligentes. -Capturan y procesan conocimiento. -Se pueden actualizar y expandir. -Emulan el razonamiento experto. 1 Software El software es un producto abstracto e intangible desarrollado por programadores, cuyo propósito es realizar tareas específicas o resolver problemas. Una vez creado, requiere mantenimiento continuo a lo largo del tiempo. Constituye una herramienta dentro de un sistema, permitiendo a los usuarios interactuar con él de manera efectiva. Categorías del software Software de sistemas: Sistemas operativos como Windows, Linux, macOS. -Da servicio a otros programas. -Interacción directa con el hardware. -Gestión de recursos del sistema. Software de aplicación: Microsoft Office, navegadores web, aplicaciones móviles. -Realiza tareas específicas que dan un beneficio al usuario final. Software de ingeniería y científico: MATLAB, AutoCAD, Simuladores científicos. -Resolución de problemas complejos (técnicos y científicos). Software empotrado: Software en microondas, relojes inteligentes, automoviles. -Controla las funciones de dispositivos específicos. -Memoria de sólo lectura. Software de línea de productos: Software de gestión para industrias. -Enfoque en un mercado específico. -Adaptación a contextos particulares. Software de inteligencia artificial: Chatbots, sistemas expertos, software de reconocimiento facial. -Emula procesos de pensamiento humano. Software de aplicaciones web: Servicios bancarios en línea, redes sociales, plataformas de streaming. -Acceso a través de un navegador web. -Arquitectura cliente-servidor. Un sitema de información es un conjunto de elementos relacionados entre sí, que se encargan de procesar manual y/o automáticamente datos, en función de determinados objetivos. La ingeniería de software surgió para abordar los desafíos de construir software escalable y confiable. Es el establecimiento y uso de principios fundamentales de la ingeniería con objeto de desarrollar software que sea confiable y que trabaje con eficiencia en máquinas reales. Metodología del desarrollo de software Comunicación y análisis (entender el problema): -Recolección de requisitos. -Estudio de viabilidad. -Análisis de riesgos. -Documentación inicial. Modelado y diseño (planear la solución): -Arquitectura del sistema. -Diseño de interfaces. 2 -Estructura de datos. -Prototipos. Generación de código (ejecutar el plan): -Codificación. -Pruebas unitarias. -Integración. -Documentación técnica. Probar y asegurar la calidad (verificar resultados): -Verificación. -Validación. -Pruebas de sistema. Estapas de un proceso de desarrollo de software: ٭Reunión con cliente. ٭Determinar los límites y el contexto del sistema. ٭Diseñar el sistema (arquitectura y prototipos). ٭Programación. ٭Pruebas unitarias. ٭Entrega del sistema. ٭Mantenimiento. Cualidades de un analista: -Arqueologo y escribano. -Innovador. -Mediador. -Jefe de proyecto. Consideraciones finales Importancia del enfoque ingenieril -Metodología estructurada. -Procesos definidos. -Herramientas adecuadas. -Control de calidad. Factores críticos de éxito -Comunicación efectiva. -Gestión de expectativas. -Control de cambios. -Documentación adecuada. Desafíos comunes -Requisitos cambiantes. -Restricciones técnicas. -Limitaciones de recursos. -Plazos ajustados. 3 Ciclos de vida Evolución histórica. Modelo “Code and fix” ٭El desarrollo de software era tarea de una sóla persona. ٭El problema a resolver era matemático. ٭No había distinción entre el programador y el usuario final (científico o ingeniero). ٭Lenguaje a bajo nivel. Metodologías de desarrollo Una metodología de desarrollo define una forma disciplinada de desarrollar software con el objetivo de hacerlo más predescible y eficiente. Facilita la comunicación y el intercmbio de información entre las personas involucradas en el desarrollo del sistema. ٭El software se desarrolla para algún cliente en particular o para un mercado en general. ٭Se aplican metodologías, modelos y técnicas para el diseño y desarrollo de software. Ciclo de vida según la ISO 12207 Marco de referencia que contiene actividades y tareas involucradas en el desarrollo, explotación y mantenimiento de software. Comprende 17 procesos agrupados en: principales (5), de apoyo (8) y de organización (4). En general los procesos fundamentales son: ٭Especificación del software: Definir funcionalidades y reestricciones. ٭Diseño e implementación: Producir software que cumpla su especificación. ٭Validación del software: Asegurar que el software hace lo que el cliente desea. ٭Evolución del software: El software debe evolucionar para cumplir los cambios en las necesidades del usuario. ¿Para qué sirve un ciclo de vida? 1. Definir las actividades a llevarse a cabo en un proyecto de desarrollo de sistemas: Esto permite organizar y estructurar el trabajo de manera clara, asegurando que todas las tareas necesarias sean identificadas y realizadas. 2. Lograr congruencia entre la multitud de proyectos de desarrollo de sistemas en una misma organización: Ayuda a mantener coherencia y estándares comunes entre diferentes proyectos, facilitando su gestión y alineación con los objetivos organizativos. 3. Proporcionar puntos de control y revisión administrativos de las decisiones sobre continuar o no con un proyecto: Permite evaluar el progreso y tomar decisiones informadas sobre continuar, modificar o detener un proyecto, reduciendo riesgos y mejorando la calidad del producto final. El ciclo de vida solo organiza la actividades, aumentando la posibilidad de que se aborden los problemas pertinentes en el momento adecuado. Ciclos de vida Cascada: -Es rígido y difícil de adaptar a los cambios en los requisitos. -Es difícil detectar errores o realizar ajustes, sobre todo en las etapas finales, ya que no se permite regresar a etapas anteriores facilmente. -El cliente obtendrá el producto al final del ciclo de vida. -Sus etapas son: Requisitos, diseño, codificación, pruebas, lanzamiento y mantenimiento. 4 Espiral: -Enfoque en la construcción de prototipos en cualquier etapa de evolución del producto. -Enfoque en gestión de riesgos (requiere habilidad para gestionar el riesgo). -Utilizados para desarrollos grandes. -Costoso y complejo. -Sus etapas son: Determinar objetivos, alternativas y restricciones, identificar y resolver riesgos, desarrollar y probar, planificar la siguiente fase. Estructurado: -9 actividades que pueden realizarse en paralelo. -Utilizado para desarrollos grandes. -Sus etapas son: Encuesta, análisis, diseño, implantación, generación de pruebas, control de calidad, descripción del procedimiento, conversión de la base de datos e instalación. Iterativo e incremental: -El software se desarrolla a través de una serie de iteraciones (las partes más importantes se construyen primero) -Los clientes pueden usar el sistema a patir del primer incremento. -No es necesario disponer de todos los requerimientos para comenzar. -Disminuye el riesgo de fracaso del proyecto. -Sus etapas son: Análisis, diseño, codificación, pruebas. Prototipos: -Construcción rápida de versión preliminar. -Prototipo inicial se descarta -Útil cuando requisitos no están completamente claros -Reduce costos y aumenta la probabilidad de éxito. -Requiere participación activa del cliente. Ágil: -El sistema se desarrolla en diferentes versiones. -Desarrollo flexible, adaptativo y colaborativo. -Iteraciones cortas -Alta colaboración con cliente 5 Procesos de negocio Un proceso es un conjunto organizado de procedimientos diseñados para cumplir objetivos específicos. En el desarrollo de software, los procesos se conocen como ciclo de vida del software. Los procesos de negocio son: -Una secuencia de actividades realizadas sobre una o más entradas para generar una salida. -Implica la colaboración e interacción de una determinada cantidad de roles, trabajando en conjunto para alcanzar una meta. -Es una colección organizada de comportamientos de negocio, diseñada para satisfacer un propósito empresarial definido. -Los procesos operacionales transforman los recursos y materiales en productos o servicios para sus clientes y consumidores finales. -La mayoría de los procesos de negocio requieren una entrada, utilizar y/o consumir recursos para dar una salida. Un modelo de negocio describe las bases sobre las cuales una empresa crea, proporciona y capta valor. La gestión de procesos de negocio (BPM) es una disciplina enfocada en mejorar el desempeño de las organizaciones mediante la optimización y automatización de sus procesos de negocio. La gestión de procesos de negocio dentro de una empresa es lo que asegurará el futuro de la misma dentro del mercado competitivo. Objetivos del BPM: -Explicitar y entender operaciones realizadas en una organización. -Identificar actividades clave y representarlas en modelos para mejorar su análisis. -Facilitar la mejora continua. -Reducir la brecha entre el modelo de proceso y su implementación en software. Modelo de procesos de negocio (BPMN): -Se describen las etapas de un proceso de negocio de principio a fin. -Permite organizar y documentar la información del proceso facilitando su comprensión. Características de un buen modelo: -Selectivo: Enfocado en lo relevante. -Exacto: Refleja fielmente la realidad. -Comprensible: Fácil de interpretar por los involucrados. ¿Para que sirve el modelo de procesos en sistemas? -Explicita las operaciones realizadas en una organización: Permite detallar, analizar y comprender cómo se llevan a cabo las actividades internas, proporcionando una visión clara de los procesos. -Identifica actividades clave: Ayuda a reconocer cuáles son las tareas esenciales para el funcionamiento del sistema, permitiendo modelarlas para analizarlas y optimizarlas. -Facilita la mejora continua: Al modelar los procesos, se identifican redundancias, ineficiencias y cuellos de botella, lo que habilita ajustes para mejorar el desempeño organizacional. 6 -Crea un puente entre el modelo y su implementación: Sirve como un intermediario entre la conceptualización de los procesos y su traducción en sistemas informáticos o software que los ejecuten. -Estandariza y comunica el funcionamiento del sistema: A través del modelado, es más fácil transmitir a diferentes partes interesadas cómo opera un sistema, evitando ambigüedades y asegurando que todos estén alineados. 7 Ingeniería de requisitos Los requisitos son las características (servicios y restricciones) establecidas con el cliente que un sistema debe cumplir. El proceso de descubrir, analizar, documentar y verificar estos servicios y restricciones se llama ingeniería de requerimientos. Problemas frecuentes: -Alcance: Definiciones poco claras sobre lo que se necesita. -Falta de claridad en los requisitos: Los clientes pueden no estar seguros de sus propias necesidades o pueden comunicar requerimientos ambiguos. -Cambios en las necesidades del cliente (volatilidad). Es importante saber diferenciar entre: -Requisitos del usuario: Su propósito es reflejar las necesidades y expectativas del usuario o cliente, sirviendo como una base de comunicación entre el cliente y el equipo de desarrollo. -Requisitos del sistema: Describen de manera precisa las funciones, servicios y restricciones que el sistema debe cumplir. Los requisitos del sistema se documentan en una especificación funcional (SRS). -Especificación del diseño del sistema: Es una descripción abstracta del diseño del software y actúa como un puente entre los requisitos del sistema y las actividades de diseño e implementación. Requisitos del cliente -Funcionales: Detallan los servicios que el sistema proporcionará, como responderá a entradas y su comportamiento en situaciones específicas. -No funcionales: Son aquellos requerimientos que no se refieren directamente a las funciones específicas del sistema, sino a las propiedades emergentes de éste. Suelen ser más críticos que los funcionales, dado que su incumplimiento puede hacer inútil el sistema. Ej: Seguridad, accesibilidad, portabilidad, mantenibilidad. Los requerimientos no funcionales se dividen en: -Requerimientos del producto: Especifican que el producto deba comportarse de cierta manera. -Requerimientos organizacionales: Requerimientos que surgen de politicas y procedimientos de la organización. -Requerimientos externos: Surgidos por factores externos al proceso de desarrollo como tal. ¿Para que sirve la documentación de los requisitos? Documentar los requisitos es crucial porque asegura que todos los involucrados comprendan las expectativas del sistema, evitando malentendidos. Proporciona una referencia clara para el desarrollo, permite rastrear cambios, y facilita pruebas y validación. Además, es esencial para la planificación del proyecto y el mantenimiento futuro del software. IEEE/ANSI 830-1993: Es una guía para crear documentos de especificación de requisitos de software. Este estándar proporciona una estructura y recomendaciones sobre cómo organizar y documentar tanto los requisitos funcionales como los no funcionales de un sistema de software de manera clara y completa. Incluye introducción, descripción general, requisitos específicos, apéndices e índice. Proceso de ingeniería de requisitos: 1. Estudio de viabilidad: Evaluación inicial para determinar si el sistema es útil y viable. 8 2. Obtención y análisis: Interacción con stakeholders para descubrir y analizar requerimientos. Se divide en cuatro etapas que son: Descubrimiento de requerimientos, clasificación y organización de requerimientos, ordenación por prioridades y negociación de requerimientos, documentación de requerimientos. 3. Especificación: Documentación formal de los requisitos. 4. Validación: Verificación para asegurar que los requisitos reflejan las verdaderas necesidades del cliente. Los tipos de verificación son: de validez, de consistencia, de completitud, de realismo y de verificabilidad. Problemas que surgen durante el proceso de ingeniería de requisitos: -Dificultad en el seguimiento de los cambios en los requerimientos. -Errores en la detección de características esperadas por el software. -Los requerimientos no son siempre obvios y provienen de fuentes diversas. -El número de requerimientos puede volverse inmanejable. Los requerimientos deberán cumplir dos características, que sean objetivos y que sean verificables. Técnicas de recopilación de requisitos: -Entrevistas (cerradas o abiertas). -Tormenta de ideas. -Juego de roles. -Introspección. -Cuestionarios. Casos de uso: -Los casos de uso se emplean para capturar el comportamiento deseado del sistema en desarrollo. -Se utiliza para que los usuarios finales, los desarrolladores y los expertos del dominio lleguen a un acuerdo común del sistema. -Son los requerimientos funcionales del sistema. Tipos de casos de uso: -Casos de Uso del Negocio: Representan procesos estratégicos de alto nivel de la empresa, como "Vender productos". Estos casos de uso se enfocan en los objetivos generales de la organización. -Casos de Uso del Sistema: Son los que describen los objetivos específicos de un usuario al interactuar con el sistema, por ejemplo, "Realizar una compra". Representan las funcionalidades que el sistema debe proporcionar directamente al usuario. 9 Análisis orientado a objetos Modelado de sistemas: Proceso para desarrollar modelos abstractos del sistema, donde cada modelo representará uan visión o perspectiva diferente de dicho sistema. Los modelos se utilizan durante el proceso de ingeniería de requerimientos, el proceso de diseño del sistema y luego de la implementación del mismo para documentar la estructura y la operación del sistema. Tipos de modelos: -Modelos funcional: Se centra en las funcionalidades del sistema y cómo los usuarios interactúan con él (diagramas de casos de uso). -Modelo de análisis de objetos: Se enfoca en la identificación y organización de los objetos semánticos dentro del dominio del problema. Se centra en las clases, sus atributos y métodos, así como en las relaciones entre ellas (diagramas de clase y de objetos). -Modelo dinámico: Este modelo aborda el comportamiento del sistema a lo largo del tiempo, mostrando cómo los objetos interactúan entre sí y responden a eventos (diagramas de secuencia y de transición de estados). El lenguaje unificado de modelado o UML: Tiene muchos diagramas: Diagrama de actividad, diagrama de casos de uso, diagrama de secuencia, diagrama de clase, diagrama de estado. El análisis orientado a objetos modela el dominio del problema mediante la identificación de objetos semánticos que interactúan según los requisitos del sistema Análisis orientado a objetos: -Permite describir el sistema en los mismos términos que el mundo real. -Se centra en la comprensión del espacio (dominio) del problema. -El objetivo es modelar la semántica del problema en términos de objetos distintos pero relacionados. -Los objetos del dominio del problema representan cosas o conceptos utilizados para describir el problema (objetos semánticos). -Los objetos del dominio del problema tienen una equivalencia directa en el entorno de la aplicación. Actividades del análisis orientado a objetos: 1. Identificación de las clases semánticas, los atributos, el comportamiento y las relaciones. 2. La especificación del comportamiento dinámico mediante paso de mensajes. 3. El emplazamiento de las clases, atributos y comportamiento. Una clase es un conjunto de objetos que comparten atributos, operaciones y relaciones. Es una abstracción de las cosas que forman parte del vocabulario del dominio donde se construirá el sistema. Un objeto es una instancia de una clase, que hereda su estructura y comportamiento. Conceptos fundamentales -Abstracción: La abstracción es el proceso de identificar y resaltar las características esenciales de un objeto. Permite simplificar la complejidad al enfocarse en los aspectos más relevantes. La abstracción se centra en las características esenciales de un objeto, en relación a la perspectiva del observador. 10 -Encapsulamiento: El encapsulamiento es el proceso de agrupar los atributos (estructura) y métodos (comportamiento) de una clase en una única entidad. Este proceso ayuda a ocultar los detalles de la implementación interna de una clase. -Jerarquía: Se refiere a la organización de las clases de un sistema en estructuras más comprensibles, facilitando la identificación de relaciones comunes entre ellas. Técnica CRC (Clase-Responsabilidad-Colaboración) Método para identificar clases, sus responsabilidades (atributos y comportamiento) y colaboraciones (relaciones) necesarias para diseñar soluciones a problemas específicos. 11 Seguridad Seguridad informática: Medidas y controles que aseguran la confidencialidad, integridad y disponibilidad de la información procesada y almacenada por una computadora. La norma ISO 27001 establece un modelo para implementar sistemas de gestión de seguridad de la información, buscando proteger los activos informáticos (equipos, usuarios e información). Seguridad de la información: Protección de la información que puede encontrarse en diferentes medios o formas, y no exclusivamente en medios informáticos. Ingeniería de Seguridad: Herramientas, técnicas y métodos para respaldar el desarrollo y mantenimiento de sistemas que pueden resistir ataques maliciosos que pretenden dañar un sistema informático o sus datos. Dimensiones de la seguridad -Confidencialidad: Asegura que la información no sea accesible a personas no autorizadas. Se utilizan mecanismos como el cifrado y el control de acceso para mantener esta confidencialidad. -Integridad: Garantiza que la información no sea alterada de forma no autorizada. Métodos como las firmas digitales son comunes para verificar la integridad de los datos. -Disponibilidad: Asegura que los sistemas y datos estén accesibles cuando se necesiten. Se implementan medidas como redundancia y planificación de continuidad del negocio. Procesos de seguridad -Auditoría: Implica el monitoreo del sistema para identificar amenazas o violaciones de seguridad. -Gestión de Incidentes: Se enfoca en preparar, detectar, responder y recuperarse de eventos de seguridad. -Educación y Concientización: La formación de usuarios es crucial para prevenir errores que comprometan la seguridad. -Políticas de seguridad: Son directrices y reglas establecidas para gestionar y proteger los activos informáticos de una organización. -Autenticación y autorización: La autenticación es el proceso mediante el cual se verifica la identidad de un usuario, sistema o entidad. La autorización determina a qué recursos y acciones puede acceder un usuario después de haber sido autenticado. Niveles de seguridad -Seguridad de la Infraestructura: Este nivel se ocupa de proteger todos los sistemas y redes que forman la base de la infraestructura tecnológica de una organización. Incluye medidas para asegurar la red, servidores, dispositivos y otros componentes que permiten el funcionamiento de los servicios compartidos (sistemas de detección de intrusos). -Seguridad de Aplicaciones: Se ocupa de la seguridad de sistemas de aplicaciones individuales o grupos de sistemas relacionados (técnicas de cifrado). -Seguridad Operativa: Se refiere a las prácticas y procedimientos que garantizan el uso seguro y efectivo de los sistemas dentro de la organización (uso de contraseñas complejas). Gestión de identidad de usuarios Identificación Autenticación Autorización La identificación es el proceso mediante el cual se recopila información de identidad de los usuarios. 12 Factores de autenticación -Autenticación por conocimiento: Algo que una persona sabe. -Autenticación por propiedad: Algo que una persona tiene. -Autenticación por características: Algo que una persona es. Clasificación de Información -Crítica: Es la información indispensable para el correcto funcionamiento de la organización y sus operaciones (datos financieros, estrategias comerciales). -Valiosa: Se refiere a la información que tiene un alto componente subjetivo y cuyo valor puede variar según la organización y su sector (datos de mercado, listas de contactos comerciales). -Sensible: Esta es información privada que pertenece a los clientes de la organización y debe ser accesible solo para personas autorizadas (números de identificación, direcciones, o información financiera de los clientes). 13