REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN
UNIVERSITARIA, CIENCIA Y TECNOLOGÍA
UNIVERSIDAD EXPERIMENTAL DE LA GRAN CARACAS
PROGRAMA NACIONAL DE FORMACIÓN EN INFORMÁTICA
CATEDRA: PROGRAMACIÓN I
MONOGRAFÍA
Tutora: Estudiante:
Jesús Reina Erismar Paz Castillo V-31321291
Caracas, 20 de mayo de 2025
i
INDICE GENERAL
GLOSARIO DE TÉRMINOS.......................................................................iv
INTRODUCCIÓN.......................................................................................v
1. Análisis y Diseño Orientado a Objetos (ADOO)...................................vi
Definición.........................................................................................................vi
Características................................................................................................ vi
2. Ciclo de vida de un sistema de información......................................vii
Definición........................................................................................................vii
Características................................................................................................vii
3. Proceso Unificado (RUP).....................................................................ix
Definición.........................................................................................................ix
Características................................................................................................ ix
4. Programación Orientada a Objetos (POO)...........................................x
Definición de objeto.........................................................................................x
Herencia...........................................................................................................xi
Polimorfismo.................................................................................................. xii
5. Lenguaje de Modelado Unificado (UML).............................................xii
Definición........................................................................................................xii
Características...............................................................................................xiii
Artefactos para el diseño de sistemas de información en UML...............xiii
6. Metodologías Ágiles de Programación...............................................xv
Definición........................................................................................................xv
ii
Características............................................................................................... xv
7. Arquitectura de desarrollo de software: Modelo-Vista-Controlador (MVC)
........................................................................................................xvii
Definición......................................................................................................xvii
Componentes de MVC.................................................................................xvii
Modelo (Model).........................................................................................xvii
Vista (View)..............................................................................................xviii
Controlador (Controller).........................................................................xviii
CONCLUSIÓN........................................................................................xxi
BIBLIOGRAFÍA......................................................................................xxii
iii
GLOSARIO DE TÉRMINOS
Abstracción: Ocultar complejidad mostrando solo lo esencial.
Actores: Entidades externas que interactúan con un sistema
en UML. Atributos: Características o propiedades de un objeto.
Casos de Uso: Descripción de una interacción entre un usuario y un sistema.
Clase: Plantilla para crear objetos, define atributos y métodos.
Componente: Parte modular y reemplazable de un sistema de
software. Controlador: Maneja la interacción del usuario en el
patrón MVC.
Desacoplamiento: Reducción de las dependencias entre módulos de software.
Diseño: Fase donde se especifica cómo el sistema resolverá los
requisitos. Encapsulamiento: Agrupación de datos y métodos que
operan sobre ellos. Herencia: Mecanismo de reutilización de código
entre clases.
Iteración: Ciclo corto de desarrollo en metodologías ágiles y RUP.
Manifiesto Ágil: Declaración de principios para el desarrollo de
software. Métodos: Acciones o comportamientos que un objeto
puede realizar.
Modelo: Representa los datos y la lógica de negocio en el patrón
MVC. Objeto: Instancia de una clase, con estado, comportamiento e
identidad. Paradigma: Conjunto de ideas o principios que guían el
desarrollo.
iv
Polimorfismo: Capacidad de objetos de responder al mismo mensaje de
diferentes maneras.
Requisitos: Necesidades que el sistema debe satisfacer.
Vista: Capa de presentación que muestra los datos al usuario en MVC.
v
INTRODUCCIÓN
En el dinámico campo del desarrollo de software, la creación de
sistemas eficientes, robustos y adaptables es un desafío constante. Para
abordar esta complejidad, han surgido diversas metodologías, paradigmas y
arquitecturas que buscan organizar el proceso de desarrollo, mejorar la
calidad del producto final y optimizar la colaboración entre los equipos.
Desde los enfoques estructurados del Ciclo de Vida de un Sistema de
Información hasta la flexibilidad de las Metodologías Ágiles, pasando por la
potencia conceptual del Análisis y Diseño Orientado a Objetos y las
directrices del Proceso Unificado (RUP), cada herramienta ofrece una
perspectiva única para enfrentar los retos del desarrollo de software
moderno.
vi
1.Análisis y Diseño Orientado a Objetos (ADOO)
Definición
El Análisis y Diseño Orientado a Objetos (ADOO) es un paradigma de
ingeniería de software que modela un sistema como un grupo de objetos que
interactúan entre sí. Se centra en la identificación de clases de objetos, sus
atributos, comportamientos (métodos) y las relaciones entre ellos. La meta
es crear un modelo conceptual del mundo real que sea fácil de entender,
mantener y reutilizar.
Características
Abstracción: Se enfoca en los aspectos esenciales de los objetos,
ocultando los detalles irrelevantes. Permite crear modelos que representan
la realidad de forma simplificada pero significativa.
Encapsulamiento: Agrupa los datos (atributos) y el código (métodos)
que operan sobre esos datos dentro de una sola unidad, el objeto. Esto
protege los datos de accesos externos no autorificados y garantiza la
integridad.
Modularidad: Permite descomponer un sistema complejo en
componentes más pequeños e independientes (objetos), facilitando el
desarrollo, prueba y mantenimiento.
Jerarquía (Herencia): Permite organizar las clases en una estructura
jerárquica donde una clase (subclase) puede heredar atributos y métodos de
otra clase (superclase), promoviendo la reutilización de código.
Asociación: Define las relaciones entre objetos, como la composición
(un objeto es parte de otro) o la agregación (un objeto contiene a otros).
Polimorfismo: Permite que objetos de diferentes clases respondan al
mismo mensaje de diferentes maneras, lo que hace el código más flexible y
extensible.
vii
Referencia General
viii
Libros de referencia: "Análisis y Diseño Orientado a Objetos" de Grady
Booch, James Rumbaugh e Ivar Jacobson (generalmente conocidos por el
UML original), o cualquier libro de texto introductorio sobre ingeniería de
software con un enfoque en ADOO.
2.Ciclo de vida de un sistema de información
Definición
El ciclo de vida de un sistema de información (CVSI) es un marco que
describe las fases por las que pasa un sistema de información desde su
concepción inicial hasta su retiro. Proporciona una estructura para la gestión,
el control y la entrega de un proyecto de software.
Características
Estructurado: Define etapas claras y secuencia de actividades.
Iterativo o Secuencial: Puede ser un proceso lineal (cascada) o permitir
ciclos de retroalimentación y refinamiento (iterativo).
Enfocado en Fases: Divide el proyecto en etapas manejables, cada una
con objetivos específicos.
Documentación: Enfatiza la creación de documentos en cada fase para
asegurar la comprensión y la trazabilidad.
Control de Calidad: Incorpora actividades de verificación y validación a
lo largo de las fases.
Etapas del Ciclo de Vida (Modelo en Cascada como ejemplo)
Aunque existen varios modelos de CVSI, el modelo en cascada es
fundamental para entender las etapas básicas.
ix
Planificación (o Investigación Preliminar): Se identifican las
necesidades del negocio, se define el alcance del proyecto, se evalúa la
viabilidad técnica y económica, y se elabora un plan de proyecto.
Análisis de Requisitos: Se recopilan, documentan y validan los
requisitos funcionales y no funcionales del sistema con los usuarios y
stakeholders. El objetivo es entender qué debe hacer el sistema.
Diseño: Se especifica cómo el sistema va a cumplir con los requisitos.
Esto incluye el diseño de la arquitectura del sistema, la base de datos, la
interfaz de usuario y los componentes de software.
Implementación (o Codificación): Se escribe el código del software de
acuerdo con las especificaciones de diseño.
Pruebas: Se verifica que el sistema funcione correctamente y cumpla
con los requisitos. Se realizan pruebas unitarias, de integración, de sistema y
de aceptación.
Despliegue (o Puesta en Producción): El sistema se instala y configura
en el entorno de producción, y los usuarios finales comienzan a utilizarlo.
Mantenimiento: Se realizan actividades para asegurar que el sistema
siga funcionando eficientemente a lo largo del tiempo, incluyendo corrección
de errores, mejoras, adaptaciones y soporte técnico.
Referencia General
Libros de referencia: "Sistemas de Información Gerencial" de Kenneth
C. Laudon y Jane P. Laudon, "Análisis y Diseño de Sistemas" de Kendall &
Kendall, o cualquier libro de texto sobre ingeniería de software o sistemas de
información.
x
3.Proceso Unificado (RUP)
Definición
El Proceso Unificado (RUP, por sus siglas en inglés, Rational Unified
Process) es una metodología de desarrollo de software iterativa e
incremental. Es un marco adaptable que proporciona disciplina y estructura
para el desarrollo de sistemas de software basados en objetos. Se basa en el
Lenguaje de Modelado Unificado (UML) y se organiza en fases y disciplinas.
Características
Iterativo e Incremental: El desarrollo se realiza a través de iteraciones
cortas, cada una de las cuales produce un incremento ejecutable del
sistema. Esto permite retroalimentación temprana y adaptación a los
cambios.
Dirigido por Casos de Uso: Los casos de uso son la principal técnica
para capturar los requisitos funcionales y guiar el diseño y la
implementación.
Centrado en la Arquitectura: Se pone un énfasis significativo en la
definición y evolución de una arquitectura robusta y extensible desde las
primeras etapas.
Enfocado en el Riesgo: Los riesgos se identifican y gestionan
proactivamente a lo largo de todo el ciclo de vida.
Guiado por Modelos (UML): Utiliza extensivamente el UML para
visualizar, especificar, construir y documentar los artefactos del software.
Adaptable: Es un marco de trabajo que se puede adaptar a las
necesidades específicas de un proyecto y organización.
Colaborativo: Fomenta la comunicación y colaboración entre los
diferentes roles del equipo de desarrollo.
xi
Etapas (Fases) del Proceso Unificado
xii
El RUP define cuatro fases principales, que contienen múltiples
iteraciones:
Incepción (Inception): El objetivo principal es definir el alcance del
proyecto, identificar los requisitos clave, evaluar la viabilidad técnica y
económica, y obtener la aprobación del proyecto. Se crea un modelo de
dominio inicial y una arquitectura preliminar.
Elaboración (Elaboration): Se define la arquitectura base del sistema.
Se identifican la mayoría de los casos de uso, se elaboran los más críticos, y
se mitigan los riesgos técnicos principales. Se produce un prototipo
arquitectónico ejecutable.
Construcción (Construction): Es la fase más larga, donde la mayor
parte del código es escrito. Se desarrollan las funcionalidades restantes, se
realizan pruebas exhaustivas y se integra el sistema. Cada iteración produce
un incremento ejecutable que está más cerca de ser un producto final.
Transición (Transition): El objetivo es entregar el sistema a los usuarios
finales. Incluye actividades como pruebas de aceptación del usuario,
despliegue, capacitación de usuarios, migración de datos y soporte inicial.
Referencia General
Libros de referencia: "El Proceso Unificado de Desarrollo de Software"
de Ivar Jacobson, Grady Booch y James Rumbaugh, o libros especializados en
el Proceso Unificado.
4.Programación Orientada a Objetos (POO)
Definición de objeto
En la Programación Orientada a Objetos (POO), un objeto es una
instancia de una clase. Es una entidad que tiene:
xiii
Estado (atributos): Un conjunto de propiedades o características que
describen el objeto. Estos son los datos que el objeto almacena. Por ejemplo,
para un objeto "coche", los atributos podrían ser "color", "marca", "velocidad
actual".
Comportamiento (métodos): Acciones que el objeto puede realizar o
acciones que se pueden realizar sobre el objeto. Son las funciones o
procedimientos asociados al objeto. Para un objeto "coche", los métodos
podrían ser "acelerar ()", "frenar ()", "girar ()".
Identidad: Una forma única de distinguir un objeto de otro, incluso si
tienen el mismo estado.
Un objeto es la unidad fundamental de encapsulamiento y modularidad
en la POO, combinando datos y las operaciones sobre esos datos.
Herencia
La herencia es un mecanismo fundamental de la POO que permite que
una nueva clase (llamada subclase o clase derivada) herede propiedades
(atributos) y comportamientos (métodos) de una clase existente (llamada
superclase o clase base).
Propósito: La herencia promueve la reutilización de código y la
creación de una jerarquía de clases que modela relaciones "es un tipo de"
(is-a-kind-of). Por ejemplo, un "Coche" es un tipo de "Vehículo", o un "Perro"
es un tipo de "Animal".
Beneficios: Reduce la redundancia de código, facilita el mantenimiento
y mejora la organización del software.
Tipos: Puede ser simple (una subclase hereda de una superclase) o
múltiple (una subclase hereda de varias superclases, aunque no todos los
lenguajes la soportan directamente).
xiv
Polimorfismo
El polimorfismo (del griego "muchas formas") es la capacidad de
objetos de diferentes clases para responder al mismo mensaje o método de
diferentes maneras. Significa que un solo nombre de método puede invocar
diferentes implementaciones según el tipo de objeto que lo reciba.
Polimorfismo por Sobrecarga (Overloading): Permite definir múltiples
métodos con el mismo nombre en la misma clase, siempre y cuando tengan
diferentes firmas (número o tipo de parámetros). El compilador determina
qué método llamar basándose en los argumentos pasados.
Polimorfismo por Sobreescritura (Overriding): Permite que una
subclase proporcione una implementación específica de un método que ya
está definido en su superclase. Cuando se llama al método en un objeto de
la subclase, se ejecuta la implementación de la subclase.
Polimorfismo por Interfaz (Interface Polymorphism): Se logra a través
de interfaces (en lenguajes como Java) o clases abstractas, donde diferentes
clases pueden implementar la misma interfaz o heredar de la misma clase
abstracta, garantizando que todos los objetos de esas clases respondan a un
conjunto común de métodos.
Referencia General
Libros de referencia: "Fundamentos de Programación Orientada a
Objetos" de Bruce Eckel (Thinking in Java/C++), "Programación Orientada a
Objetos en C++" de Robert Lafore, o cualquier libro de texto sobre
programación con un enfoque en POO.
5.Lenguaje de Modelado Unificado (UML)
Definición
El Lenguaje de Modelado Unificado (UML, por sus siglas en inglés,
Unified Modeling Language) es un lenguaje estándar de la industria para
xv
visualizar, especificar, construir y documentar los artefactos de un sistema
de software. No es un lenguaje de programación, sino un lenguaje de
modelado gráfico que permite representar sistemas
xvi
desde diversas perspectivas, facilitando la comunicación y la comprensión
entre los miembros del equipo y los stakeholders.
Características
Estándar: Es un estándar de la Object Management Group (OMG), lo
que garantiza su reconocimiento y compatibilidad entre diferentes
herramientas y profesionales.
Visual: Utiliza una notación gráfica para representar conceptos
complejos de manera intuitiva y fácil de entender.
Orientado a Objetos: Fue diseñado para modelar sistemas orientados a
objetos, pero su aplicabilidad se ha extendido a otros paradigmas.
Extensible: Permite agregar nuevos elementos y estereotipos para
adaptar el lenguaje a necesidades específicas (mecanismos de extensión).
Preciso: Ofrece una sintaxis y semántica bien definidas para evitar
ambigüedades en los modelos.
Versátil: Permite modelar diferentes aspectos de un sistema, desde los
requisitos del negocio hasta el despliegue del software.
Completo: Ofrece una amplia gama de diagramas para cubrir todas las
fases del ciclo de vida del software.
Artefactos para el diseño de sistemas de información en UML
UML 2.x define 14 tipos de diagramas, que se agrupan en dos
categorías principales:
Diagramas Estructurales (Structural Diagrams):
Representan los elementos estáticos del sistema.
Diagrama de Clases (Class Diagram): Muestra las clases, sus atributos
y operaciones, y las relaciones entre ellas (asociación, herencia,
composición, agregación). Es fundamental para el diseño conceptual y lógico
xvii
del sistema.
xvii
i
Diagrama de Objetos (Object Diagram): Muestra instancias de clases
en un momento específico, representando un estado concreto del sistema.
Diagrama de Componentes (Component Diagram): Muestra la
organización y las dependencias entre los componentes físicos de un sistema
(ejecutables, librerías, bases de datos).
Diagrama de Despliegue (Deployment Diagram): Muestra la
arquitectura física del sistema, incluyendo los nodos (hardware) y los
artefactos (software) que se despliegan en ellos.
Diagrama de Perfil (Profile Diagram): Se utiliza para extender UML para
dominios específicos o plataformas.
Diagrama de Estructura Compuesta (Composite Structure Diagram):
Muestra la estructura interna de una clase o componente, incluyendo sus
partes y puertos.
Diagramas de Comportamiento (Behavioral Diagrams): Representan la
dinámica y el comportamiento de los sistemas.
Diagrama de Casos de Uso (Use Case Diagram): Muestra los casos de
uso (funcionalidades del sistema) y los actores (usuarios o sistemas
externos) que interactúan con ellos. Es fundamental para capturar requisitos.
Diagrama de Actividad (Activity Diagram): Muestra el flujo de control o
de datos entre actividades, similar a un diagrama de flujo. Utilizado para
modelar procesos de negocio o algoritmos.
Diagrama de Máquina de Estados (State Machine Diagram): Muestra
los posibles estados de un objeto o sistema, y las transiciones entre ellos en
respuesta a eventos.
Diagrama de Secuencia (Sequence Diagram): Muestra la interacción de
los objetos en una secuencia temporal, detallando el orden en que se envían
y reciben los mensajes.
xix
Diagrama de Comunicación (Communication Diagram): Muestra la
interacción entre objetos enfocándose en las relaciones entre ellos, similar a
un diagrama de secuencia, pero sin el énfasis en la línea de tiempo. (Antes
conocido como Diagrama de Colaboración).
Diagrama de Tiempos (Timing Diagram): Muestra los cambios de
estado de un objeto o interacción a lo largo del tiempo, útil para sistemas en
tiempo real.
Diagrama de Interacción General (Interaction Overview Diagram):
Combina elementos de diagramas de actividad y diagramas de secuencia
para proporcionar una vista de alto nivel de las interacciones.
Referencia General
Libros de referencia: "El Lenguaje Unificado de Modelado: Guía del
Usuario" de Grady Booch, James Rumbaugh e Ivar Jacobson, o cualquier libro
de texto sobre UML y diseño de software.
6.Metodologías Ágiles de Programación
Definición
Las metodologías ágiles de programación son un conjunto de enfoques
para el desarrollo de software que se basan en un Manifiesto Ágil y en
principios que promueven la entrega incremental y temprana de software
funcional, la colaboración cercana con el cliente, la adaptación al cambio y la
autoorganización de los equipos. Priorizan a las personas y las interacciones
sobre los procesos y herramientas.
Características
Desarrollo Iterativo e Incremental: El software se construye en
pequeñas iteraciones (sprints o ciclos), donde cada iteración produce un
incremento de software funcional.
xx
Entrega Temprana y Continua: Se busca entregar valor al cliente de
forma frecuente y temprana, permitiendo retroalimentación constante.
Colaboración con el Cliente: El cliente (o su representante) es parte
integral del equipo y participa activamente en el proceso de desarrollo.
Adaptación al Cambio: Aceptan y acogen los cambios en los requisitos,
incluso en etapas avanzadas del desarrollo.
Personas e Interacciones: Valorizan la comunicación directa y el
trabajo en equipo sobre los procesos rígidos.
Software Funcional sobre Documentación Exhaustiva: Aunque la
documentación es importante, se prioriza el software que funciona sobre la
creación de documentación excesiva.
Equipos Autoorganizados: Los equipos tienen autonomía para decidir
cómo organizarse y realizar su trabajo.
Retrospectivas y Mejora Continua: Los equipos reflexionan
regularmente sobre su proceso y buscan formas de mejorar.
Ejemplos de Metodologías Ágiles
Scrum: Un marco de trabajo ligero para la gestión de proyectos de
desarrollo ágil.
Kanban: Un método visual para gestionar el flujo de trabajo, centrado en
la mejora continua.
eXtreme Programming (XP): Una metodología ágil que enfatiza las
prácticas de ingeniería de software (programación en parejas, desarrollo
guiado por pruebas).
Lean Software Development: Adaptación de los principios Lean de
manufactura al desarrollo de software.
Referencia General
xxi
Libros de referencia: "Scrum Guide" de Ken Schwaber y Jeff Sutherland,
"Extreme Programming Explained" de Kent Beck, "Agile Software
Development: Principles, Patterns, and Practices" de Robert C. Martin, o
cualquier libro sobre metodologías ágiles o el Manifiesto Ágil.
7.Arquitectura de desarrollo de software:
Modelo-Vista- Controlador (MVC)
Definición
El Modelo-Vista-Controlador (MVC) es un patrón de arquitectura de
software que separa una aplicación en tres componentes lógicos
interconectados: el Modelo, la Vista y el Controlador. El objetivo principal de
MVC es desacoplar la lógica de negocio, la presentación de datos y la
interacción del usuario, lo que facilita el desarrollo, el modularidad y el
mantenimiento de las aplicaciones.
Componentes de MVC
Modelo (Model)
Propósito: Representa los datos y la lógica de negocio de la aplicación.
Es el cerebro de la aplicación.
Función:
Almacena, gestiona y manipula los datos.
Implementa las reglas de negocio y las
validaciones.
No tiene conocimiento directo sobre la interfaz de usuario (Vista) ni
sobre cómo se presenta la información.
Notifica a la Vista (o al Controlador, que a su vez actualiza la Vista)
cuando los datos han cambiado.
xxii
Ejemplo: En una aplicación de e-commerce, el Modelo podría ser una
clase Producto con atributos como nombre, precio, stock, y métodos para
actualizarStock() o calcularPrecioConDescuento().
Vista (View)
Propósito: Es la capa de presentación de la aplicación. Muestra los
datos del Modelo al usuario y permite la interacción del usuario.
Función:
Responsable de la interfaz de usuario (UI).
Recibe los datos del Modelo y los renderiza de una forma legible para
el usuario (ej. una página web HTML, una ventana de una aplicación de
escritorio).
No contiene lógica de negocio ni manipula directamente los datos.
Reacciona a los cambios en el Modelo para actualizar su
presentación.
Ejemplo: Una página HTML que muestra la información de un
producto, un formulario para editar un producto, o una tabla con una lista de
productos.
Controlador (Controller)
Propósito: Actúa como intermediario entre el Modelo y la Vista. Maneja
las interacciones del usuario y las traduce en acciones para el Modelo y la
Vista.
Función:
Recibe las entradas del usuario (ej. clics de botón, datos de
formulario). Procesa estas entradas y las valida.
Decide qué acción debe realizarse en el Modelo (ej. llamar a un
xxii
i
método para actualizar datos).
Selecciona la Vista apropiada para mostrar la respuesta.
Coordina el flujo de la aplicación.
xxi
v
Ejemplo: En una aplicación web, un controlador podría recibir una
solicitud HTTP, invocar un método en el Modelo para obtener datos, y luego
pasar esos datos a una Vista para que los renderice.
Flujo de Interacción Típico en MVC
El usuario interactúa con la Vista (ej. hace clic en un
botón). La Vista notifica al Controlador sobre la
interacción.
El Controlador procesa la interacción del usuario. Si es necesario,
invoca un método en el Modelo para actualizar datos o realizar una
operación de negocio.
El Modelo realiza la operación de negocio y, si sus datos cambian,
notifica a los suscriptores (que pueden ser el Controlador o directamente la
Vista, dependiendo de la implementación específica de MVC, a menudo se
usa el patrón Observador).
El Controlador recibe la notificación del Modelo (o directamente de la
Vista, si la Vista es quien observa al Modelo) y selecciona la Vista adecuada
para mostrar la información actualizada.
La Vista obtiene los datos actualizados del Modelo y se actualiza para
reflejar los cambios.
Beneficios
Separación de Intereses (Separation of Concerns): Cada componente
tiene una responsabilidad única, lo que facilita el desarrollo concurrente y el
mantenimiento.
Reusabilidad: El Modelo y la lógica de negocio pueden ser reutilizados
con diferentes Vistas.
Facilidad de Mantenimiento: Los cambios en la interfaz de usuario no
xx
v
afectan la lógica de negocio y viceversa.
Flexibilidad: Permite la creación de múltiples Vistas para el mismo
Modelo. Testabilidad: Cada componente puede ser probado de forma
independiente.
xx
vi
Referencia General
Libros de referencia: Cualquier libro de texto sobre patrones de diseño
de software, arquitectura de software, o desarrollo web/móvil que utilice el
patrón MVC (ej. libros sobre frameworks como Ruby on Rails, Django, Spring
MVC, ASP.NET MVC). "Patrones de Diseño: Elementos de Software
Reutilizables Orientados a Objetos" de la "Gang of Four" (GoF) menciona
conceptos relacionados, aunque MVC es un patrón arquitectónico.
xx
vii
CONCLUSIÓN.
El análisis y diseño de sistemas de información es un campo en
constante evolución, impulsado por la necesidad de construir software cada
vez más complejo y adaptativo. A lo largo de este recorrido, hemos
explorado los fundamentos que sustentan esta disciplina: desde la estructura
de un Ciclo de Vida del Sistema de Información y la disciplina del Proceso
Unificado (RUP), hasta los principios que rigen el Análisis y Diseño Orientado
a Objetos (ADOO) y las ventajas que ofrecen las Metodologías Ágiles. La
Programación Orientada a Objetos (POO), con sus conceptos de objeto,
herencia y polimorfismo, se ha establecido como un paradigma dominante,
facilitando la creación de sistemas modulares y reutilizables.
Complementariamente, el Lenguaje de Modelado Unificado (UML) se erige
como la herramienta visual indispensable para representar y comunicar la
arquitectura y el comportamiento de estos sistemas. Finalmente, patrones
arquitectónicos como Modelo-Vista-Controlador (MVC) demuestran cómo la
organización lógica del software puede mejorar su mantenibilidad y
desacoplamiento. La comprensión e integración de estos conocimientos son
esenciales para cualquier profesional que aspire a desarrollar soluciones de
software eficientes y de alta calidad en el entorno tecnológico actual.
xx
viii
BIBLIOGRAFÍA
Booch, G., Rumbaugh, J., & Jacobson, I. (2005). The Unified Modeling
Language User Guide. Addison-Wesley Professional.
Eckel, B. (2002). Thinking in Java (3rd ed.). Prentice Hall.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design
Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
Jacobson, I., Booch, G., & Rumbaugh, J. (1999). The Unified
Software Development Process. Addison-Wesley Professional.
Kendall, K. E., & Kendall, J. E. (última edición disponible). Análisis y Diseño
de Sistemas. Pearson Educación.
Lafore, R. (2002). Object-Oriented Programming in C++ (4th ed.).
Sams Publishing.
Laudon, K. C., & Laudon, J. P. (última edición disponible). Sistemas
de Información Gerencial. Pearson Educación.
Martin, R. C. (2002). Agile Software Development: Principles, Patterns,
and Practices. Prentice Hall.
Sutherland, J., & Schwaber, K. (última versión disponible). The Scrum
Guide.
Scrum.org.
xxi
x
xx
x