GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Mindmap

Desarrollo de un proyecto de software con POO

Ronal Floriano Spanisch

Mapa mental sobre el desarrollo de un proyecto de software con POO: Requisitos, Análisis, Diseño y Implementación

Mapa mental: Desarrollo de un proyecto de software con POO

Inhalt der Mindmap

Desarrollo de un proyecto de software con POO

  1. 1-Requisitos

    • El modelo de requisitos es un acuerdo entre la persona que va a hacer un programa (el desarrollador) y la persona que lo va a usar (el cliente). Su propósito es definir claramente qué es lo que debe hacer el programa, asegurándose de que ambos, desarrollador y cliente, entiendan y estén de acuerdo con lo que el programa va a ofrecer desde el punto de vista de quien lo usa.
      • Descripción del problema
        • Es una primera idea que da el cliente sobre lo que necesita, pero sin entrar en detalles técnicos de cómo solucionarlo.
      • Modelo de casos de uso
        • El modelo de casos de uso es una forma de describir cómo se va a usar un sistema, mostrando diferentes situaciones llamadas "casos de uso". Cada caso de uso es una historia que comienza cuando un usuario hace algo con el sistema.
          • Casos de uso
            • Secuencia de eventos que inicia el usuario.
          • Actores
            • Los actores en el mundo de la programación son roles o funciones específicas que alguien puede tener al usar un sistema.
      • Modelo de interfaces
        • El modelo de interfaces es sobre cómo se verá y se sentirá la comunicación entre los usuarios (o actores) y el sistema. Se enfoca en diseñar y planificar la apariencia de las pantallas y cómo interactuarán los usuarios con el sistema durante los diferentes casos de uso.
      • Modelo del dominio del problema
        • El modelo del dominio del problema es un mapa que muestra todos los elementos importantes que se van a usar en el sistema, de una manera que tanto quienes construyen el sistema (analistas) como quienes lo van a usar (clientes) puedan entender.
          • Una forma de hacer que este modelo sea realmente útil es pedir a los clientes que dibujen cómo imaginan el sistema, lo que ayuda a aclarar sus ideas y a asegurarse de que todos entiendan lo mismo.
  2. 2-Análisis

    • Una vez que el modelo de requisitos está listo y acordado, se comienza a trabajar en el modelo de análisis. El propósito de este modelo es entender mejor y crear una estructura de objetos para el sistema, basándose en lo que se definió en los requisitos. Durante esta fase, no se piensa aún en cómo se implementará técnicamente el sistema (es decir, no se preocupan por las herramientas o plataformas de programación específicas); en lugar de eso, se imagina el sistema en un escenario ideal.
      • Identificación de Requisitos
        • En esta fase, se trabaja para entender sus necesidades y expectativas con respecto al sistema que se va a desarrollar.
        • Se identifican los requisitos funcionales y no funcionales del sistema.
      • Modelado de Dominio
        • Se crea un modelo del dominio del problema, que representa las entidades y sus relaciones en el contexto del negocio o aplicación.
        • Diagramas como el diagrama de clases y diagramas de actividades pueden ser utilizados para visualizar las clases y las interacciones entre ellas.
      • Análisis de Casos de Uso
        • Los casos de uso se utilizan para describir las diferentes interacciones entre el sistema y sus usuarios o entre los componentes internos del sistema.
        • Ayuda a comprender cómo los usuarios interactúan con el sistema y cómo se llevan a cabo las funcionalidades clave.
      • Identificación de Objetos
        • Se identifican las entidades relevantes en el dominio del problema que se convertirán en objetos en el diseño del sistema.
        • Estos objetos encapsulan datos y comportamientos asociados.
      • Definición de Comportamiento
        • Se especifica el comportamiento de los objetos y cómo interactúan entre sí para cumplir con los requisitos del sistema.
        • Pueden utilizarse diagramas de secuencia para representar la interacción entre objetos a lo largo del tiempo.
  3. 3-Diseño

    • El diseño es necesario ya que el modelo de análisis no es lo suficientemente formal para la generación de código fuente. Durante el diseño, se refinan los objetos, considerando operaciones y atributos, y se adapta el sistema al entorno de implementación real, que puede cambiar a lo largo del ciclo de vida del sistema.
      • Estrategias de Diseño
        • Es esencial tomar decisiones generales sobre las estrategias de diseño a seguir. Estas decisiones abarcan aspectos cruciales como la arquitectura del sistema, su robustez, la posibilidad de reutilización y su capacidad de extensión.
          • Arquitectura
            • El concepto de arquitectura en este contexto se refiere a la disposición organizativa de las clases dentro del sistema, en la etapa de diseño, esta arquitectura se detalla aún más, permitiendo ajustes en aspectos inicialmente considerados, como la funcionalidad asignada a cada clase, e incluso la inclusión o modificación de las propias clases.
          • Robustez
            • La robustez es un objetivo clave en el diseño de un sistema, buscando protegerlo contra errores y proporcionar diagnósticos para identificar fallas, especialmente las que pueden ser críticas. En el proceso de desarrollo, se recomienda la inserción temporal de instrucciones internas en el código para detectar fallas, incluso si se eliminan en la producción final.
          • Reusó
            • El reúso es esencial en el diseño, ya que la capacidad de reutilizar código contribuye significativamente a la robustez del sistema.
          • Extensibilidad
            • La capacidad del sistema para adaptarse y crecer fácilmente para incorporar nuevas funcionalidades o modificaciones sin afectar las partes existentes del código
      • Diseño de Objetos
        • El proceso de diseño de objetos implica agregar especificaciones concretas al análisis y realizar decisiones simultáneas con la planificación del sistema.
      • Diseño de Sistema
        • En la etapa actual del diseño de objetos, se ha creado un diseño detallado utilizando la arquitectura previamente definida en el análisis. Estos detalles de diseño se han establecido sin tener en cuenta específicamente el entorno de implementación.
          • Interfaz Grafica
            • Las interfaces gráficas tienen como objetivo principal gestionar la interacción con el usuario a través de elementos visuales como botones, menús y textos. En aplicaciones interactivas, donde el control del ratón y el teclado juegan un papel clave, se denominan sistemas controlados o dirigidos por eventos.
          • Bases de Datos
            • Las bases de datos son fundamentales en los sistemas de información, y la decisión estratégica clave es elegir entre bases de datos relacionales u orientadas a objetos. Debido a su amplia adopción, se optará por una base de datos relacional en el desarrollo, utilizando un lenguaje como SQL para la interacción.
          • Archivos
            • Quizás trabajar con bases de datos es más eficaz, en algunos casos, como lo requiera la especificación del sistema, se puede optar por utilizar archivos. En este contexto, se aprovechará para ampliar la gestión de bases de datos y demostrar cómo se puede lograr un objetivo similar utilizando archivos.
          • Lenguajes de Programación Orientados a Objetos
            • No es necesario usar un lenguaje de programación orientado a objetos para implementar desarrollo orientado a objetos, pero es más natural y conveniente hacerlo así. En los lenguajes orientados a objetos, se encuentran herramientas directas para conceptos clave como encapsulamiento, clasificación, generalización y polimorfismo.
              • Java
                • Lenguaje fundado en 1995, creado por James Gosling y equipo en Sun Microsystems, trabaja con IDEs (Entornos de desarrollo integrado) como Eclipse, IntelliJ IDEA, NetBeans.
                  • Eclipse
                    • Ampliamente utilizado y personalizable, soporte para múltiples lenguajes, extensibilidad mediante plugins.
                  • IntelliJ IDEA
                    • Interfaz de usuario intuitiva, potentes funciones de refactorización y sugerencias inteligentes
                  • NetBeans
                    • Integración fluida con Java, soporte para varias tecnologías, facilidad de uso y desarrollo rápido.
              • C#
                • Lenguaje fundado en el 2000, por Microsoft Corporation, liderado por Anders Hejlsberg., trabaja con el IDE Visual Studio.
                  • Visual Studio
                    • Potente y completo, depuración avanzada, herramientas de diseño de interfaz gráfica, integración con Azure y soporte para múltiples plataformas.
              • Python
                • Lenguaje fundado en 1991 por Guido van Rossum, trabaja con el IDE PyCharm.
                  • PyCharm
                    • Excelente soporte para Python, análisis estático, refactorización y depuración.
              • C++
                • Fundado en 1983 por Bjarne Stroustrup en Bell Labs, se puede trabajar con IDEs como Visual Studio, Code::Blocks y CLion.
                  • Visual Studio
                    • Herramientas avanzadas, depuración visual, amplio soporte para C++.
                  • Code::Blocks
                    • Ligero, multiplataforma, fácil de configurar y usar.
                  • CLion
                    • Especializado en C++ con funciones avanzadas de análisis y refactorización.
              • Swift
                • Lenguaje fundado en 2014 por Chris Lattner y otros ingenieros de Apple, trabaja con el IDE Xcode.
                  • Xcode
                    • Integración completa con Swift y Objective-C, potentes herramientas de diseño de interfaz, emuladores para pruebas, fácil distribución de aplicaciones iOS/macOS.
  4. 4-Implementación

    • El modelo de implementación convierte el diseño del sistema en código final. Este proceso sigue las responsabilidades definidas en el diseño y se ajusta al lenguaje de programación y la base de datos. Aunque el diseño de objetos es independiente del lenguaje, las particularidades del mismo deben considerarse durante la implementación. La elección del lenguaje afecta al diseño, pero este no debe depender de los detalles del lenguaje.
      • Desarrollo de código
        • El código se crea a partir del diseño previamente establecido. Este proceso implica traducir las decisiones de diseño en instrucciones específicas que una computadora pueda entender.
        • Los desarrolladores escriben el código fuente utilizando el lenguaje de programación elegido. Durante esta fase, se adaptan las estructuras de datos y lógica de control de acuerdo con las propiedades del lenguaje de programación y las especificaciones del diseño.
        • Es esencial seguir las prácticas de codificación establecidas, como convenciones de nombres, estilo de programación y documentación. Aunque hay herramientas que pueden automatizar parte del proceso de generación de código,
          • Documentación
            • La documentación del código se refiere a la práctica de describir y explicar el código fuente de un programa de software. Su objetivo es facilitar la comprensión, mantenimiento y colaboración en el proyecto. La documentación puede incluir comentarios en el código, archivos README, manuales de usuario, guías de estilo de codificación, entre otros.
              • Durante la implementación
                • Se agregan comentarios en el código para explicar su lógica y funcionamiento.
                • Se documentan funciones y métodos, especificando sus parámetros, resultados y propósito.
              • Después de la implementación
                • Se crean archivos README que proporcionan una visión general del proyecto, instrucciones de instalación y otros detalles importantes.
                • Se elaboran manuales de usuario para ayudar a los usuarios finales a comprender y utilizar el software.
              • Mantenimiento continuo
                • A medida que se realizan cambios y actualizaciones en el código, se actualiza la documentación correspondiente para reflejar los nuevos cambios.
        • La programación no debe comenzar prematuramente; es crucial completar la planificación del sistema durante la etapa de diseño antes de iniciar la implementación.
        • se deben seguir las guías de programación existentes o crear nuevas si es necesario para mantener la coherencia y la calidad en el código.
      • Diagrama de Clases
        • Se genera los diagramas de clases para el sistema completo, que sirven como apoyo visual al proceso de programación.
  5. 5-Pruebas

    • Se aplican diversos tipos de pruebas a lo largo del proceso de desarrollo, y su planificación debe hacerse de manera integral junto con la construcción del sistema. No se deben considerar las pruebas como la última etapa, sino realizarlas de manera simultánea al desarrollo para lograr software de alta calidad.
      • Conceptos
        • Error
          • Un error es provocado por un factor humano, y da lugar a una falta (fault)
            • Falta (fault)
              • Sucede en el código cuando es defectuoso y por consecuente, provoca una falla (failure).
                • Falla (failure)
                  • Una falla en un programa ocurre cuando no se comporta adecuadamente.
      • Tipos de pruebas
        • Técnicas de pruebas
          • Prueba de regresión
          • Pruebas de operación
          • Prueba de escala completa
          • Prueba de rendimiento
          • Prueba de sobrecarga
          • Prueba negativa
          • Prueba de casos de uso
          • Pruebas ergonómicas
          • Pruebas de validaciòn
        • Nivel de pruebas
          • Prueba de unidad
            • Con esta prueba, se evalúa individualmente una unidad, que puede ser una clase, un paquete de servicio o un subsistema.
          • Prueba de integración
            • En esta etapa, se asegura que las unidades funcionen en conjunto de manera adecuada. Ambas verificaciones pueden llevarse a cabo mediante casos de prueba de uso, que son aplicables tanto a clases, paquetes de servicios, subsistemas como al sistema completo.
          • Prueba de sistema
            • Examina el sistema en su totalidad o la aplicación en su conjunto. Se adopta la perspectiva del usuario final, y los casos de prueba de uso simulan acciones típicas realizadas por el usuario.

Informationen

Beschreibung
Mindmap am Desarrollo de un proyecto de software con POO, erstellt von Ronal Floriano am 21/02/2024.
Erstellt von
Ronal Floriano
Aufrufe
4
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck