miércoles, 4 de julio de 2012

Conceptos Básicos y Metodología de las 6'D


TEMA I         “Conceptos Básicos y Metodología de las 6'D.”


1.1 Introducción.

Los problemas que se plantean diariamente en el interior de una empresa, ya sean de gestión, técnicos, matemáticos, etc. suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual de las personas. Diremos entonces que el problema ha sido resuelto en forma manual.

Al utilizar la computadora para la resolución de problemas se emplea la forma automática, la cual aporta grandes ventajas como: la rapidez de ejecución y la fiabilidad en los resultados obtenidos.

Un gran número de problemas conllevan complicados cálculos, así como el manejo de grandes cantidades de datos.

Si se trata de resolver el problema de una forma manual, en el primer caso, el riesgo de equivocarse es grande, y en el segundo, el trabajo se convierte en pesado y rutinario.

Sin embargo empleando la forma automática se eliminan los inconvenientes que surgen al hacerlo de forma manual, ya que la capacidad de la computadora se basa en las características: rapidez, memoria y precisión.

No obstante, la computadora por sí sola no podría resolver ni el más sencillo problema que se nos pueda ocurrir. Es preciso describirle con detalle y en su lenguaje todos los pasos que debe desarrollar para encontrar la solución de un problema.

Esta descripción detallada es conocida con el nombre de Programa de computadora y es el que dirigirá el funcionamiento de la misma, pero antes de escribir ese programa se debe desarrollar un algoritmo que encuentre la solución al problema y que posteriormente pueda ser transformado a ese programa de computadora.


1.2 ¿Qué es un algoritmo?

Por Algoritmo, entenderemos la secuencia lógica de pasos que trata un conjunto de datos para resolver un problema (de forma particular o general) y obtener un resultado (información).

Por la naturaleza de los datos que presenta un problema y el objetivo que se pretende lograr, los algoritmos pueden ser clasificados en tres tipos.

 Tipos de Algoritmos:

  • Numéricos.
  • No Numéricos.
  • Cotidianos.

Los Algoritmos Numéricos, están orientados a la solución de problemas que requieren la capacidad de hacer cálculos, a través de la computadora.

Los Algoritmos No Numéricos, están orientados a la solución de problemas, en donde se requiere la capacidad de la toma de decisiones de la computadora más que de sus características (rapidez, memoria y precisión).

Los Algoritmos Cotidianos, son aquellos que se desarrollan dentro de la vida diaria de todo ser humano y que los hemos aprendido de una forma empírica, es decir, sin darnos cuenta de ello.

Características de algoritmos:

1.  Debe ser preciso.
2.  Debe estar definido.
3.  Debe ser finito.


1.3 Estructura de un algoritmo.

Si un algoritmo consiste en una secuencia lógica de pasos que tratan un conjunto de datos con la finalidad de obtener resultados.

Desde el punto de vista funcional la estructura de un algoritmo se compone de:

  • Entrada (datos)
  • Proceso (operaciones aritméticas y lógicas)
  • Salida (información).

La Entrada, está formada por el conjunto de pasos que toman los datos de un dispositivo externo y los depositan en la memoria central, ya depurados y validados.

El Proceso, es el conjunto de pasos que resuelven el problema aplicando operaciones aritméticas y lógica a los datos de entrada, dejando los resultados (información) en la memoria central.

Y la Salida, la integran los pasos que hacen que la información sea presentada a través de un dispositivo externo (un monitor, una impresora, etc.).


1.4 Conceptos básicos del modelo orientado a objetos.

Un Clase, es el nombre que se le asigna a un conjunto de elementos (objetos) que contienen las mismas características y comportamiento (atributos y métodos) y se distinguen entre ellos por su estado específico.

Un Objeto, es considerado un elemento tangible o intangible que existe en el mundo real y se crea a partir de una clase, por lo que forma parte de ella y cuenta con sus atributos y métodos.

Un Método, define el comportamiento que tienen los objetos, es decir lo que los objetos pueden hacer y es parte de una clase.

Un Atributo, es una característica o identificador que ayuda a describir un objeto y es parte de una clase.

Tanto los métodos como los atributos son parte de un objeto y tienen un tipo de acceso, lo que permite la comunicación con otros objetos, dichos tipos de acceso pueden ser: privados (private -), protegidos (protected #) y públicos (public +).


Ejercicios propuestos:


Objetos:          bicicleta, auto, camino, avión y motocicleta.

            Clase:
            Atributos:
            Métodos:

Objetos:          triangulo, rectángulo, cuadrado y círculo.

            Clase:
            Atributos:
            Métodos:

Objetos:          tienda, casa, edificio y bodega.

            Clase:
            Atributos:
            Métodos:

Clase:  Países.

            Atributos:
            Métodos:
            Objetos:

Clase:  Persona.

            Atributos:
            Métodos:
            Objetos:

Clase:  Operaciones.

            Atributos:
            Métodos:
            Objetos:


1.5 Metodología de las 6’D para la solución de problemas.

La metodología de las 6’D, consta de 6 etapas en donde cada una de ella tiene su nombre que comienza con la letra “D”, dichas etapas son:

-       Descripción del problema.
-       Definición de la solución.
-       Diseño de la solución.
-       Desarrollo de la solución.
-       Depuración de la solución.
-       Documentación.

La primera etapa, Descripción del problema, consiste en identificar claramente cuál es el problema que se quiere resolver, obtener una descripción general del mismo y llegar a un enunciado claro y preciso del problema.

La segunda etapa, Definición de la solución, su objetivo es encontrar las especificaciones que ayuden en la solución del problema, definiendo el resultado concreto que se quiere alcanzar, los datos que se deben ingresar o generar para obtener el resultado y la forma en que los datos serán procesados para transformarlos en información.

La tercera etapa, Diseño de la solución, busca encontrar el diagrama y algoritmos que resuelvan el problema, para lo cual debe usar un lenguaje de modelado como UML y definir el nombre del proyecto y los diagramas, relaciones y clases que nos ayuden a llegar al desarrollo de los algoritmos. Esta etapa se puede repetir en el caso de que el algoritmo no encuentre la solución al problema encontrado en la etapa uno.

La cuarta etapa, Desarrollo de la solución, el objetivo de esta etapa es obtener un programa, codificando el algoritmo desarrollado en la etapa anterior, utilizando un lenguaje de programación y su serie de instrucciones que nos ayuden a transformar los diagramas y algoritmos en programas de computadora, cada programa desarrollado debe tener comentario que ayuden a entender mejor su desarrollo y hacer copias de seguridad cada vez que se pretenda desarrollar una prueba.

La quinta etapa, Depuración de la solución, una vez codificadas las clases y programas deben ser puestas a prueba con la finalidad de corregir los errores de sintaxis y de lógica que sean detectados con el fin de conseguir el resultado deseado.

La sexta etapa, Documentación, busca obtener la serie de manuales necesarios para el uso del programa, dichos manuales son: manual técnico, manual de programación y manual del usuario. En el manual técnico se debe incluir: la definición del problema, resultados esperados y datos necesarios, diagramas UML y diagramas de flujo o pseudocódigo, pruebas desarrolladas y lista de programas con sus comentarios internos.



1.6 Principios de la programación orientada a objetos.

Los principios de la programación orientada a objetos son una serie de elementos que nos ayudan a que un software orientado a objetos tenga un mejor desempeño, un buen estilo de programación y que ayude a que su desarrollo sea más fácil, dichos principios son:

-       Abstracción.
-       Encapsulamiento.
-       Modularidad.
-       Jerarquía y Herencia.
-       Polimorfismo.

La Abstracción, es la descripción exterior de un objeto, que sirva para separar su comportamiento esencial del no esencial, es decir el ¿qué hace? pero no el ¿cómo lo hace?, y poder utilizar esa descripción en el momento de su programación.

El Encapsulamiento, oculta los datos internos del funcionamiento de un objeto y solo permite el acceso a esos datos por medio de sus interfaces públicas (métodos), es decir restringe el acceso a los datos de la clase y con ello evitar que el objeto se comporte de manera distinta a la esperada.

La Modularidad, es la propiedad que permite dividir una aplicación en partes más pequeñas llamadas módulos, que son fáciles de resolver, cada modulo debe ser tan independiente como sea posible de los demás y debe tener la capacidad de comunicarse con los demás módulos por medio de su interfaz.

La Jerarquía y Herencia. La jerarquía es la dependencia que tiene una clase con respecto otra u otras clases, con la finalidad de formar la estructura jerárquica de clases que manejan los lenguajes de programación orientados a objetos. Los tipos de jerarquía más importantes en la abstracción de un problema son:

-       Estructura de clases, conocida también como jerarquía de generalización/especialización (es un).
-       Estructura de objetos, conocida también como jerarquía de agregación (parte de ó tiene un).

Por otra parte la herencia, permite que un objeto sea construido a partir de otro ya existente, con el fin de reutilizar sus atributos y comportamiento visible, evitando la duplicación de código previamente desarrollado. La herencia supone una clase base y una jerarquía de clases llamadas derivadas, en donde las clases derivadas heredan las características y comportamiento de las clases base que sean visibles (acceso público).

El Polimorfismo, es la propiedad que le permite a un objeto (referencia) tener acceso a múltiples clases y comportarse de manera diferente ante un mismo mensaje, generando una apariencia de que se usa el mismo código pero su respuesta es diferente en cada momento o situación.

No hay comentarios:

Publicar un comentario