Please enable JavaScript.
Coggle requires JavaScript to display documents.
Desarrollo de proyecto de software - Coggle Diagram
Desarrollo de proyecto de software
Diseño del sistema
Arquitectura
Una arquitectura de software define la estructura general de un sistema y varía de acuerdo con el tipo de sistema a desarrollarse.
Prototipos
Es una versión preliminar, intencionalmente incompleta o reducida de un sistema.
Prototipos de diseño. Estos prototipos permiten explorar y comprender la arquitectura particular del sistema, para poder evaluar aspectos como cuellos de botella (rendimiento y uso de memoria) o inconsistencias en el diseño.
Prototipos verticales. Un prototipo vertical ayuda a comprender parte de un problema y desarrollar su solución completa. Ésto se hace generalmente cuando los conceptos básicos no están bien comprendidos; por ejemplo, el seguimiento de cierta metodología.
Prototipos de análisis. Un prototipo de análisis hace posible generar rápidamente una arquitectura general que considere las características principales del sistema de acuerdo a la especificación de requisitos.
Prototipos de factibilidad. Un prototipo de factibilidad demuestra si es posible lograr ciertos objetivos del proyecto; por ejemplo, aplicar una arquitectura particular, conectarse a una base de datos bajo ciertas restricciones de rendimiento, aprender a programar en un lenguaje en un tiempo determinado o predecir los costos de desarrollo de un proyecto.
Prototipos de requisitos. Un prototipo de requisitos permite que los usuarios perciban la funcionalidad del producto final a través del diseño de interfaces o pantallas del sistema. El objetivo es ayudar a aclarar los requisitos y solicitar nuevas ideas.
Planificación
Definición del proyecto
Requerimientos
Se especifican las necesidades del sistema a desarrollar.
Tiene como meta definir y delimitar la funcionalidad del sistema de software.
Análisis de viabilidad
Se busca comprender los requisitos del sistema con el propósito de estructurar la arquitectura del sistema.
Costos
Costo indirecto
Para utilizar el software incluye aspectos como la capacitación, instalación, soporte técnico, así como otros costos que por lo general se pueden conocer de antemano.
Costo oculto
Ocasionado principalmente por las fallas del software. Los costos ocultos por definición son difíciles de prever.
Costo directo
Para adquirir el software, el cual incluye el software "empacado".
Implementación
Codificación
toma el resultado del modelo de diseño para generar el código final del sistema. Esta traducción debe ser relativamente sencilla y directa, ya que todas las decisiones importantes han sido hechas en las etapas previas.
Integración
El modelo de integración es un aspecto importante del desarrollo de software. En todo diseño es deseable mantener una buena modularidad en el sistema, de manera que el desarrollo actual, junto con las futuras extensiones, puedan hacerse con base en componentes independientes y no en la totalidad del sistema.
Pruebas
Es el responsable de revisar la calidad del sistema. Este modelo consiste en la validación del sistema o prueba de especificación y la verificación o prueba de resultado.
Verificación
Se prueba si se está construyendo el sistema “correctamente”.
Validación
Se prueba si la funcionalidad del sistema corresponde a la especificación del cliente.
Mantenimiento
es la continuación del ciclo de vida, luego de haber completado, una primera versión de éste.
Aunque parte del objetivo involucra resolver problemas, durante el mantenimiento se deben considerar las extensiones del sistema de acuerdo con las nuevas necesidades.
Métodos y Metodologías
Los métodos definen las reglas para las transformaciones internas de las actividades, mientras que las metodologías definen el conjunto de métodos.
Integración: Los métodos deben ofrecer entradas y salidas bien definidas que permitan la integración de varios métodos, incluso pertenecientes a distintas metodologías.
Notaciones: Es muy importante contar con una notación estandarizada para representar los modelos desarrollados, los cuales deben incluir elementos gráficos, de texto o alguna combinación de ambos.
Modelos generados: Los métodos deben permitir la generación de modelos a partir de la información recopilada por el método.
Escalabilidad: Los métodos y herramientas correspondientes deben ser apropiados para el tamaño del problema a resolver.
Confianza: Se debe tener confianza en los métodos y las herramientas correspondientes; para lo cual, se debe contemplar que éstos se mantendrán en el mercado y, que cuenten con capacitación y apoyo técnico.
Ciclo de vida: Los métodos deben ajustarse al ciclo de vida del proceso, apoyando las distintas actividades, incluyendo la documentación.
Extensibilidad: Los métodos deben apoyar su propia extensibilidad, identificando qué aspectos del método pueden ser modificados por el desarro-llador para adaptarlo a sus necesidades particulares; por ejemplo, formato de la documentación.
Manejo de consistencia: Los métodos deben apoyar la integridad de los modelos generados, verificando y evitando errores de consistencia, además de incluir técnicas para detectar problemas.
Información recopilada: Los métodos deben proveer técnicas para recopilar información de acuerdo con el proceso de desarrollo.
Dominio de aplicabilidad: Los métodos deben apoyar conceptos básicos que se consideren significativos para resolver el problema.
Entornos de programación orientados a objetos
IntelliJ IDEA (Java)
Interfaz de Usuario: Editor de código, vista de estructura del proyecto, herramientas de depuración avanzadas.
Elementos Clave: Autocompletado de código, soporte para frameworks, análisis estático de código.
PyCharm (Python)
Interfaz de Usuario: Editor de código, vista de proyectos, consola interactiva.
Elementos Clave: Soporte para frameworks como Django y Flask, herramientas de análisis de código, integración con bases de datos.
Eclipse (Java)
Elementos Clave: Gestión de proyectos Java, herramientas de refactorización, integración con sistemas de control de versiones.
Interfaz de Usuario: Editor de código, explorador de proyectos, consola de depuración.
Visual Studio (C++, C#)
Interfaz de Usuario: Editor de código, diseñador de interfaz gráfica, depurador.
Elementos Clave: Gestión de proyectos, depuración gráfica, integración con Azure DevOps.