
1. Definición
1.1. Conjunto de instrucciones concretas y finitas que se deben seguir para el desarrollo de software.
1.1.1. Employee
1.1.2. Employee
1.2. Permite producir programas con una directriz específica, tales como: estructura modular, fuerte cohesión, alta rentabilidad, etc.
1.3. Existen tres categorías de paradigmas de programación:
1.3.1. Técnicas de programación de bajo nivel: Copia de ficheros frente estructuras de datos compartidos)
1.3.2. Métodos de diseño de algoritmos (ejemplo: divide y vencerás, programación dinámica, etc.)
1.3.3. Soluciones de programación de alto nivel. Se agrupan en tres categorías de acuerdo a la solución que aportan para resolver problema:
1.3.3.1. Solución procedimental u operacional. Describe etapa a etapa el modo de construir la solución. Es decir señala la forma de obtener la solución.
1.3.3.1.1. Solución demostrativa. Varia de la procedimental. Especifica la solución describiendo ejemplos y permitiendo que el sistema generalice la solución de estos ejemplos para otros casos.
2. El Enfoque Estructurado
2.1. Diagrama de flujo de datos (DFD)
2.1.1. Representación gráfica de los procesos que se realizan con los datos en su organización.
2.1.2. Con cuatro símbolos, se puede crear una descripción grafica de los procesos que, con el tiempo, contribuirán a desarrollar una sólida documentación del sistema.
2.1.2.1. Ventajas
2.1.2.1.1. Representación gráfica de los procesos que se realizan con los datos en su organización.
3. El enfoque orientado a objetos
3.1. El análisis orientado a objetos (AOO) y el diseño orientado a objetos (DOO) constituyen un enfoque distinto de desarrollo de sistemas. Estas técnicas se basan en los conceptos de la programación orientada a objetos, que han sido codificados en UML (Lenguaje Unificado de Modelación), un lenguaje estandarizado de modelación en el cual los objetos generados no solo incluyen código referente a los datos sino también instrucciones acerca de las operaciones que se realizaran sobre los datos.
3.1.1. EL Paradigma Orientado a Objetos es una disciplina de ingeniería de desarrollo y modelado de software que permite construir más fácilmente sistemas complejos a partir de componentes individuales.
3.2. Características:
3.2.1. ◉ Objeto: es una unidad de código compuesto de variables y métodos relacionados. Un objeto encapsula datos, operaciones, otros objetos, constantes y otra información relacionada. Pueden ser: Entidades externas, ocurrencias o eventos, papeles o roles, unidades organizacionales, lugares, estructuras.
3.2.2. ◉ Clase : Es un modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase. Una clase es una descripción generalizada que describe una colección de objetos con características similares. Todos los objetos que existen dentro de una heredan sus atributos y las operaciones disponibles para la manipulación de los atributos.
3.2.3. ◉ Atributos: Están asociados a clases y objetos, ellos describen la clase y el objeto de alguna manera. Pueden tomar un valor definido por un dominio enumerado. En la mayoría de los casos, un dominio es simplemente un conjunto de valores específicos. En situaciones más complejas el dominio puede ser un conjunto de clases.
3.2.3.1. ◉ Mensajes: Los mensajes son el medio a través del cual los objetos intercambian información. Un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor. El comportamiento se realiza cuando se ejecuta una operación.
3.2.3.1.1. ◉ Encapsulamiento: Significa que toda la información de un objeto se encuentra empaquetada bajo un nombre y puede reutilizarse como una especificación o componente de un programa. Consiste en unir en la clase las características y comportamientos, esto es, las variables y métodos. Es decir tener todo esto es una sola entidad.
3.2.3.1.2. ◉ Herencia: Una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de herencia.
3.2.3.1.3. ◉ Polimorfismo: Permite que un número de operaciones diferentes tengan el mismo nombre. Esto reduce el acoplamiento entre objetos, haciendo a cada uno más independiente.