Fundamentos Esenciales de Programación Orientada a Objetos e Ingeniería de Software
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,97 KB
Introducción a Conceptos Clave de Software
Compilación
Proceso de transformar el código fuente de un programa a lenguaje máquina, haciéndolo ejecutable.
Objeto
En el contexto de la programación orientada a objetos, un objeto es una entidad lógica que representa algo del mundo real o un concepto abstracto. Es la instancia concreta de una clase.
Clase
Una clase es la definición abstracta o el plano para crear objetos. Describe las propiedades (atributos) y comportamientos (métodos) que tendrán los objetos de ese tipo.
Instancia
Una instancia es un objeto concreto creado a partir de una clase. Al ser instanciado, el objeto adquiere los atributos y métodos definidos en su clase.
Atributo
Los atributos son las características o propiedades que definen el estado de un objeto.
Método
Los métodos son las funciones o acciones que un objeto puede realizar, definiendo su comportamiento.
Principios Fundamentales de la Programación Orientada a Objetos (POO)
Objeto: Propiedades Esenciales
- Estado: Definido por sus atributos, y cambia con el tiempo.
- Comportamiento: Definido por sus métodos y permite la interacción con otros objetos.
- Identidad: Propiedad intrínseca de un objeto que permite diferenciarlo de cualquier otro.
Herencia
La herencia es un mecanismo que permite a una clase (subclase) adquirir las propiedades (atributos y métodos) de otra clase ya existente (superclase), promoviendo la reutilización de código.
Abstracción
La abstracción es el proceso de identificar y representar solo las características y funcionalidades esenciales de un objeto o sistema, ocultando los detalles irrelevantes.
Modularidad
La modularidad es la propiedad que permite dividir un sistema complejo en componentes más pequeños e independientes (módulos), facilitando su desarrollo, compilación, mantenimiento y reutilización.
Jerarquía
La jerarquía es un principio de organización que permite estructurar las abstracciones en niveles, estableciendo relaciones de orden (por ejemplo, de general a específico).
Encapsulamiento
El encapsulamiento es el mecanismo que agrupa los datos (atributos) y las funciones (métodos) que operan sobre esos datos dentro de una única unidad (el objeto), controlando el acceso externo a ellos y ocultando la complejidad interna.
Polimorfismo
El polimorfismo es la capacidad de diferentes objetos de responder de manera distinta al mismo mensaje o llamada a método, dependiendo de su tipo específico.
Ventajas y Características de la Programación Orientada a Objetos (POO)
- Reutilización de código mediante herencia.
- Mayor confiabilidad del software.
- Facilita la creación de objetos a partir de estructuras existentes.
- Promueve el uso de clases y la organización jerárquica.
- Simplifica el desarrollo de aplicaciones.
- Se basa en principios clave como Abstracción, Encapsulamiento, Polimorfismo y Herencia.
Ingeniería de Software: Fundamentos
Propósito de la Ingeniería de Software
La Ingeniería de Software surge para estandarizar y sistematizar el desarrollo de software, proporcionando metodologías y herramientas para su creación.
Metodología Central: El Ciclo de Vida del Software
El Ciclo de Vida del Software es la metodología fundamental que guía el proceso de desarrollo de un sistema de software.
Complejidad del Software
Factores de Complejidad
La complejidad del software se refiere a qué tan comprensible y manejable es un programa para el usuario y para los desarrolladores. Los factores que influyen incluyen:
- La complejidad de los requerimientos del problema.
- Los costos y tiempos asociados al desarrollo.
- La flexibilidad del software y su facilidad de adaptación.
- La simplicidad del ambiente de usuario.
Tipos de Sistemas
- Sistemas Discretos
- Sistemas Continuos
Tipos de Jerarquías
Las jerarquías permiten organizar elementos en niveles, como:
- Jerarquía de composición (Parte de): Por ejemplo, una planta se compone de raíz, tallo y hojas.
- Jerarquía de clasificación (Tipo de): Por ejemplo, tipos de computadoras como PC, miniordenadores o laptops.
Ciclo de Vida del Desarrollo de Software (CVDS)
Origen y Propósito
El Ciclo de Vida del Software (también conocido como Metodología de Desarrollo) surge como una respuesta a la complejidad de la programación, especialmente la estructurada. Se refiere al conjunto de fases que se emplean en el desarrollo de un sistema de software.
Fases del Ciclo de Vida del Software
- Identificación del Problema: Definición clara de la necesidad a resolver.
- Obtención de la Información: Recopilación de datos mediante entrevistas, encuestas, etc.
- Análisis y Determinación de Requerimientos: ¿Qué? Se definen las funcionalidades y restricciones del sistema.
- Diseño: ¿Cómo? Se planifica la arquitectura y los componentes del software.
- Programación: Implementación del código.
- Pruebas y Detección de Errores: Verificación del funcionamiento y corrección de fallos.
- Implantación y Mantenimiento: Despliegue del software y soporte continuo.
Documentación en las Etapas del CVDS
Cada etapa del Ciclo de Vida del Software consta de tareas específicas y genera documentación. Generalmente, una entrada a una etapa produce uno o varios documentos de salida, siguiendo el flujo: Entrada → Etapa → Salida.