Introducción
Para la solución de problemas que se generan en la industria del software es necesario que el ingeniero de software se apoye en diferentes herramientas, las cuales contribuyen en su proceso, la metodología y las capas del desarrollo; esto conocido como métodos de desarrollo o paradigmas de la Ingeniería de Software.
Dichas herramientas permiten visualizar, de manera simplificada, los diferentes escenarios implicados en cada uno de los procesos. Incluyen un conjunto amplio de tareas, como lo son la comunicación, el análisis de los requerimientos, modelación del diseño, construcción del programa, pruebas y apoyo. (Pressman, R., 2005, p.12)
Propósitos de aprendizaje
Propósito general
Presentarle al estudiante los diferentes tipos de modelos existentes para el proceso de desarrollo de software de modo tradicional, evolutivo y basado en componentes, permitiendo establecer las fortalezas, características y estrategias de trabajo con cada uno de ellos.
Propósitos específicos
- Conocer los modelos de procesos existentes para la generación de proyectos de ingeniería de software.
- Clasificar los modelos de procesos implementados en la ingeniería de software.
- Diferenciar la aplicación de cada modelo de los procesos del software disponible, identificando sus fortalezas y características.
- Demostrar soluciones lógicas de problemas reales a partir de la implementación de modelos de procesos de software.
Diseño de software
La Ingeniería de Software es una disciplina que abarca el desarrollo de proyectos informáticos. A su vez, involucra en el contexto muchas más áreas de aplicación, de las cuales es importante identificar las diferentes metodologías del desarrollo junto con las métricas utilizadas para el diseño de software, insumo de la fase de desarrollo de un sistema.
![]() |
En el proceso de diseño, se deben realizar ciertas revisiones. A continuación se presentan las razones de esta evaluación y recomendaciones para la fase de diseño. |
Diseño de software
Procesos del diseño de software
Los procesos de diseño de software son una estructura que se aplica al momento de construir un sistema de información.
Dichas actividades van acompañadas de los diferentes modelos por los cuales desarrollamos el software. Los modelos son diferentes entre sí y se pueden implementar dependiendo de la necesidad al momento de realizar el desarrollo del software. En la anterior interactividad se explican los modelos de metodología tradicional.
![]() |
Un buen diseño es sinónimo de calidad de software. A continuación se presentan las metodologías ágiles en este proceso. |
Diseño de software
Principios del diseño de software
Los principios básicos de diseño de software se definen como la ruta de navegación de la ingeniería de software.
El diseño de software es el conjunto de conceptos y prácticas. Los conceptos apoyan a el ingeniero, diseñador o desarrollador de software para crear una estructura necesaria y para realizar la tarea correctamente.
![]() |
En el siguiente video encontrarás una breve explicación de la concepción del diseño de software. |
El software con orientación a objetos
Para entender aún más el término orientación a objetos, debemos aclarar qué es un objeto. De acuerdo a la programación, existe un modelo definido como POO Programación Orientada a Objetos. Esta técnica es utilizada para desarrollar software, que nos permite, desde un perspectiva abstracta, identificar, definir y construir objetos que adicionalmente involucra nuevos elementos, como los son:
- Clases.
- Objetos.
- Método.
- Evento.
- Propiedades.
- Atributos.
- Herencia.
- Polimorfismo.
- Encapsulamiento.
- Modularidad.
El software con orientación a objetos
RUP
Es definida como la metodología Rational Unified Process - Proceso Unificado Racional, el cual es un proceso propietario de la ingeniería de software creado por Rational Software. Esta metodología fue adquirida por IBM, ganando un nuevo nombre IRUP que ahora es una abreviatura Rational Unified Process y lo que es una marca en el área de software, proporcionando técnicas que deben seguir los miembros del equipo de desarrollo de software con el fin de aumentar su productividad en el proceso de desarrollo. (Metodoss, s.f.).
La metodología RUP utiliza el enfoque de la orientación a objetos en su diseño y se encuentra construido, diseñado y documentado para el uso de la notación UML (Unified Modeling Language) para ilustrar los procesos en acción. (Metodoss, s.f.).
El software con orientación a objetos
Arquitectura de software
La definición de arquitectura desoftware, según IEEE 1471-2002, es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución.
Según Roger S. Pressman (2005), “es la estructura de organización de los componentes de un programa (módulos), la forma en la que ellos interactúan y la estructura que utilizan”. (p.190)
Lenguaje de Modelamiento Unificado - UML
UML (Lenguaje de Modelado Unificado) es una especificación de notación orientada a objetos, el cual se compone de diferentes diagramas, los cuales representan las diferentes etapas del desarrollo del proyecto. (Canchala, A.,s.f.).
En lo práctico, UML es un estándar internacional que nos ayuda, por medio de diagramas, a representar el esquema del software en estructura como en comportamiento. Propiamente dicho, UML no es un lenguaje de programación pero aún así es utilizado con mucha frecuencia por ingenieros, analistas y programadores de software.
Lenguaje de Modelamiento Unificado - UML
Diagramas estructurales
En esta gran clasificación, se encuentran los siguientes diagramas:
- Diagrama de clases: Muestra las relaciones entre las clases involucradas en el sistema.
- Diagrama de componentes: Muestra los componentes que hacen parte de un sistema con un nivel de abstracción mas elevado que el diagrama de clases.
- Diagrama de estructura compuesta: Muestra la relación interna de clases, interfaces o componentes para describir una funcionalidad.
- Diagrama de despliegue: Presenta cómo y dónde se desplegará el sistema.
- Diagrama de objetos: Describe los objetos instanciados de una clase.
- Diagrama de paquetes: Permite agrupar elementos de UML.
![]() |
Con el objetivo de profundizar más en cada uno de estos diagramas, estudia la siguiente interactividad. |
Lenguaje de Modelamiento Unificado - UML
Diagramas de comportamiento
En esta clasificación se encuentran los siguientes diagramas:
- Diagrama de caso de uso: es conocido como la representación de los requisitos funcionales del sistema.
- Diagramas de actividades: modela el comportamiento su relación global con el sistema.
- Diagrama de comunicación: presenta las interacciones entre los elementos en el momento de ejecución.
- Diagrama de panorama de interacciones: presentan el flujo de control de manera global de los elementos que lo componen.
- Diagrama de secuencia: muestra el comportamiento con pasos secuenciales.
- Diagrama de máquina de estados: muestra cómo un elemento de una clase, se puede mover entre estados.
- Diagrama de tiempos: presenta el comportamiento de los elementos en un lapso de tiempo.
![]() |
Profundiza en cada uno de los diagramas, estudiando la siguiente interactividad y leyendo el material de apoyo. |
Lenguaje de Modelamiento Unificado - UML
Modelo de datos
Los datos son los elementos responsables de conducir a una mejor estructura de programa, a una modularidad efectiva y a una complejidad procedimental reducida y principalmente orientada a bases de datos. Por lo cual hay que tener en cuenta: las estructuras de datos, las restricciones de integridad de los datos y las operaciones que manipulan los datos. A continuación, se presentan los principios para el diseño de datos.
A su vez el modelo de datos permite describir los elementos reales que intervienen en el problema y la forma en la que se relaciona entre sí. Estos modelos se pueden clasificar, dependiendo el nivel de abstracción, en:
- Modelos de datos conceptuales.
- Modelos de datos lógicos.
- Modelos de datos físicos.
Lenguaje de Modelamiento Unificado - UML
Diseño con patrones
Según Pressman (2005), el objetivo de cada patrón de diseño es proporcionar una descripción que permita al diseñador determinar:
- Si el patrón es aplicable al trabajo en cuestión.
- Si puede volverse a usar para ahorrar tiempo en el diseño.
- Si nos sirve como guía para desarrollar un patrón distinto
Estos patrones se pueden clasificar en: creacionales, estructurales y de comportamiento.
![]() |
Los patrones de diseño establecen un lenguaje común entre todos los miembros de un equipo. |
Lenguaje de Modelamiento Unificado - UML
Diseño para webapps
Para hablar de webapps tenemos que tener en cuenta sus dos enfoques: el enfoque artístico y el enfoque desarrollador. El primero busca una experiencia visual más placentera y el segundo, una solución a un problema de un cliente.
Según jacyntho et al (s.f), las aplicaciones deben construirse con el empleo de capas que tomen en cuenta distintas preocupaciones; en particular, deben separarse los datos de la aplicación de los contenidos de esta (modo navegación), y estos a su vez, deben separarse con toda claridad del aspecto y la sensación de la interfaz. (Pressman, R., 2005, p.328).
Se propone entonces desacoplar al mínimo, en tres capas, una de aplicación, dos de interfaz y la tercera de navegación, lo cual permitiría una mejora continua en el software. Uno de los patrones sugeridos para la infraestructura de webapps es de controlador de la vista de modelos.
Actividad de aprendizaje
![]() |
De acuerdo con todo lo estudiado hasta este punto, juega y fortalece tus conocimientos respondiendo falso o verdadero. |
Resumen
A partir de una idea generalizada de la unidad, tenemos en cuenta que la implementación de métodos de desarrollo de software, apoyan al diseñador, programador e ingeniero de software, en la medida que es posible diseñar he implementar sistemas complejos con una abstracción adecuada, con el fin de que aquellos que trabajan sobre los sistemas entiendan de manera sencilla los procesos, elementos e iteraciones necesarias para el desarrollo de software; además de las herramientas, técnicas y habilidades que se puedan usar para crear sistemas complejos, que a su vez pueden ser visualizados.
Caso de estudio
![]() |
Continuando con el caso de estudio de la unidad 1, modela y diseña el sistema de gestión de inventarios de la empresa. Recuerda siempre presentar los resultados a tu docente de clase. |
Bibliografía ()
- Amo, F. A., Martínez Normand, L. y Segovia Pérez, F. J. (2005). Introducción a la Ingeniería del Software. Modelos de desarrollo de programas. España: Delta Publicaciones.
- Braude, E. (2003). Ingeniería del Software: una perspectiva orientada a objetos. RA-MA Editorial.
- Jacobson, I. (1992) Object Oriented Software Engineering. A Use Case Driven Approach. Estados Unidos: Addison Wesley.
- James, S. (2001). Análisis y diseño de sistemas de información. (2da ed.) México: Mc Graw Hill.
- Kendall, K. y Kendall, J. (2005). Análisis y Diseño de Sistemas. (6ta ed.) México: Pearson Educación.
- Pressman, R. S. (2002). Ingeniería del Software: un enfoque práctico. (5ta ed.) McGraw Hill.
- Pressman, R. S. (2005). Ingeniería del Software. (6ta ed.) México: McGraw Hill.
- Pressman, R. S. (2010). Ingeniería del Software. (7ma ed.) México: McGraw Hill.
- Shaw, M. y Garlan, D. (1996) Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall
- Sommerville, I. (2005). Ingeniería del Software.(7ma ed.) Madrid, España: Pearson Educación S.A.
- Weitzenfeld, A. (2004). Ingeniería del Software orientada a objetos con UML, Java e Internet. México: Thomson Learning.
Referencias Web
- Bahamón, J.H. (s.f.) Control de calidad en el software. [pdf] Universidad ICESI. Recuperado de: https://repository.icesi.edu.co/biblioteca_digital/bitstream/item/4008/1/Control_calidad_software.pdf
- Canchala, A. (s.f.) UML, ejemplo sencillo sobre Modelado de un Proyecto. Microsoft. Recuperado de: https://msdn.microsoft.com/es-es/library/bb972214.aspx
- EcuRed (s.f.) UML. [online] Recuperado de: https://www.ecured.cu/UML
- Fundamentos del diseño de software (s.f.) Biblioteca Virtual. Recuperado de: http://biblioteca.inu.edu.sv/?wpfb_dl=234
- Solus S.A. (2007.) Guía de Usuario de Enterprise Architect 7.0. [online] Enterprise Architect de Sparx Systems. Recuperado de: http://www.sparxsystems.com.ar/download/ayuda/index.html?communicationdiagram.htm
- García Peñalvo, F.J., Conde González, M.A. y Bravo Martín, S. (16 de octubre de 2008) Ingeniería del software. [PowerPoint slides] Universidad de Salamanca. Recuperado de: http://www.academia.edu/9321319/Ingenier%C3%ADa_del_Software_Tema_5_Principios_del_dise%C3%B1o_del_software
- Lucidchart (s.f.) Qué es el lenguaje unificado de modelado (UML). Recuperado de: https://www.lucidchart.com/pages/es/qu%C3%A9-es-el-lenguaje-unificado-de-modelado-uml
- Metodoss (s.f.) Metodología RUP [online] Recuperado de https://metodoss.com/metodologia-rup/
- Mundo Karmer (2011) Principios de diseño. [blog] Recuperado de: https://mundokramer.wordpress.com/2011/05/19/principios-de-diseno/













