20
PREGUNTAS GENERADORAS UNIDAD 1º AUTOR: JUAN SEBASTIAN CORDOBA GONZALEZ 1

Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

Embed Size (px)

Citation preview

Page 1: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

PREGUNTAS GENERADORAS UNIDAD 1º

AUTOR:JUAN SEBASTIAN CORDOBA GONZALEZ

CORPORACIÓN UNIVERSITARIA MINUTO DE DIOSCERES – APULO

INGENIERÍA DE SISTEMAS IV SEMESTRE2013

1

Page 2: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

PREGUNTAS GENERADORAS UNIDAD 1º

AUTOR:JUAN SEBASTIAN CORDOBA GONZALEZ

TUTOR:ING. SERGIO ALEJANDRO CAMACHO

CORPORACIÓN UNIVERSITARIA MINUTO DE DIOSCERES – APULO

INGENIERÍA DE SISTEMAS IV SEMESTRE2013

2

Page 3: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

Tabla de contenido1. INTRODUCCION.......................................................................................................................................4

2. OBJETIVOS................................................................................................................................................5

3. PREGUNTA 1.............................................................................................................................................6

4. PREGUNTA 2.............................................................................................................................................7

5. PREGUNTA 3.............................................................................................................................................7

7. PREGUNTA 5. 6.......................................................................................................................................12

8. CONCLUCIONES....................................................................................................................................15

9. BIBLIOGRAFIA.......................................................................................................................................16

3

Page 4: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

1. INTRODUCCION

Este trabajo se realiza con el fin echo, de abarcar todo lo relacionado, con la programacion estrcutura y programacion orientada hacia los objetos, resaltando la previa participacion, de la evolucion, con el fin proposito, de conocer todo sobre la maravillosa area de la programacion.

4

Page 5: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

2. OBJETIVOS

- Resaltar la evolucion de la programacion estructurada.- Sintetizar los avances logrados.- Observar las metodologias que usa esta programacion- Detallar el previo funcionamiento.

5

Page 6: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

3. PREGUNTA 1

La Programación Orientación a Objetos (P.O.O.) surge en Noruega en 1967 con un lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en el centro de cálculo noruego.Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y subclases (conceptos muy similares a los lenguajes Orientados a Objetos de hoy en día). Uno de los problemas de inicio de los años setentas era que pocos sistemas lograban terminarse, pocos se terminaban con los requisitos iniciales y no todos los que se terminaban cumpliendo con los requerimientos se usaban según lo planificado. El problema consistía en cómo adaptar el software a nuevos requerimientos imposibles de haber sido planificados inicialmente. En los 70’s científicos del centro de investigación en Palo Alto Xerox (Xerox park) inventaron el lenguaje Small talk que dio respuesta al problema anterior (investigar no planificar). En los años 80’s Bjarne Stroustrup de AT&T Labs., amplió el lenguaje C para crear C++ que soporta la programación Orientada a Objetos. En esta misma década se desarrollaron otros lenguajes Orientados a Objetos como Objective C, Common Lisp Object System (CIOS), object Pascal, Ada y otros. En el inicio de los 90’s se consolida la Orientación a Objetos como una de las mejores maneras para resolver problemas. Aumenta la necesidad de generar prototipos más rápidamente (concepto RAD Rapid Aplication Developments). Sin esperar a que los requerimientos iniciales estén totalmente precisos. En 1997-98 se desarrollan herramientas ‘CASE’ orientadas a objetos (como el diseño asistido por computadora). Del 98 a la fecha se desarrolla la arquitectura de objetos distribuidos RMI, Corba, COM, DCOM.

6

Page 7: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

4. PREGUNTA 2

A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su mejor comprensión, no sólo proveyendo ventajas durante la fase de desarrollo, sino también posibilitando una más sencilla modificación posterior.

El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:

Secuencia Instrucción condicional. Iteración (bucle de instrucciones) con condición al principio.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas citadas.

A finales del siglo XX casi todos los científicos están convencidos de que es útil aprender y aplicar los conceptos de programación estructurada. Los lenguajes de programación de alto nivel que originalmente carecían de estructuras de programación, como FORTRAN, COBOL y BASIC, ahora las tienen.

5. PREGUNTA 3

Las técnicas de desarrollo y diseño de programas que se utilizan en la programación convencional tienen inconvenientes, sobre todo la hora de verificar y modificar algún programa. En la actualidad están adquiriendo gran importancia las técnicas de programación, cuyo objetivo principal es el de facilitar la comprensión del programa, y además permiten, de forma rápida, las ampliaciones y modificaciones que surjan en la fase de explotación del ciclo de vida de un programa o una ampliación informática. DEFINICIÓN DE LAS 3 ESTRUCTURAS BÁSICAS

1. Estructura Secuencial: Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra, ambas con una sola entrada y una única salida.

7

Page 8: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo o programa completo, siempre y cuando éstos también sean programas apropiados.

2. Estructura Selectiva: También conocida como la estructura si verdadero - falso, plantea la selección entre dos alternativas con base en el resultado de la evaluación de una condición; equivale a la instrucción IF de todos los lenguajes de programación y se representa gráficamente de la siguiente manera:

En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se ejecuta cuando la evaluación de esta condición resulta verdadera y B es la acción ejecutada cuando el resultado de la evaluación indica falso. La estructura también tiene una sola entrada y una sola salida; y las funciones A y B también pueden ser cualquier estructura básica o conjunto de estructuras.

3. Estructura Repetitiva (Iterativa): También llamada la estructura hacer – mientras - que, corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición. El diagrama de flujo para esta estructura es el

8

Page 9: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

siguiente:

Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta. También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura básica o conjunto de estructuras.

- Estructura para (FOR) 

- Estructura mientras (WHILE) 

- Estructura hasta (UNTIL) 

- Estructura iterar (LOOP) 

♦ Estructura PARA (FOR) 

En esta estructura se repite una acción un número fijo de veces representado normalmente por N. Es necesario para el control de la repetición utilizar una variable de control Vc y los valores que asignaremos a la misma inicialmente Vi y su correspondiente valor final Vf. El incremento de la variable de control Vc es normalmente 1, pero puede tomar otros valores positivos y negativos, en cuyos casos es necesario indicarlo por medio de In. El número de repeticiones N esta dado por la formula 

N=parte entera Vf – Vi + 1 InSi N = O se obtiene un valor negativo, se dice que el bucle es inactivo y no se repite ninguna vez.

En este tipo de estructuras existen una serie de normas de obligado cumplimiento, como son: 

9

Page 10: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

- El In no puede ser 0 (bucle infinito). 

- Vc no puede modificarse en el rango del bucle (acción A). 

♦ Estructura MIENTRAS (WHILE) 

En esta estructura se repite una acción mientras se cumpla la condición que controla el bucle. La característica principal de esta estructura es la de que la condición es evaluada siempre antes de cada repetición. El número de repeticiones oscilaentre 0 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos una vez, deberían modificarse dentro del bucle, pues de no ser así el número de repeticiones seria infinito y nos encontraremos en un bucle sin salida.

♦ Estructura HASTA (UNTIL) 

En esta estructura se repite una acción hasta que se cumpla la condición que controla el bucle, la cual se evalúa después de cada ejecución del mismo. El número de repeticiones oscila entre 1 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos dos veces, deberán modificarse dentro del bucle, pues de no ser así el número de repeticiones será infinito y nos encontraremos en un bucle sin salida. 

♦ Estructura ITERAR (LOOP)

En esta estructura se repiten alternativamente dos acciones, evaluando la condición de salida entre ambas. El número de repeticiones oscila, por la acción A, entre 1 e infinito, y para la acción B, entre 0 e infinito, cumpliéndose que siempre se repite A una vez más que B. Los bucles anteriores son casos particulares de éste.

6. PREGUNTA 4

10

Page 11: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

Ventajas de la programación estructurada

Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica.

La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.

Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a su estructura más sencilla y comprensible, por lo que los errores se pueden detectar y corregir más fácilmente.

Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.

Los programas son más sencillos y más rápidos de confeccionar. Se incrementa el rendimiento de los programadores, comparado con la forma

anterior que utiliza GOTO.

11

Page 12: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

7. PREGUNTA 5. 6.

Actualmente se están produciendo cambios de gran alcance en la forma en que se desarrolla el "software" para los equipos informáticos. Entre las causas de estos cambios se incluyen las siguientes:

El coste creciente de los desarrollos La insatisfacción de los usuarios con la adecuación y calidad La complejidad y tamaño creciente de los programas La creciente dependencia de muchas organizaciones de sus sistemas

informáticos, sin posibilidad de abandonarlos El avance hacia los ordenadores de quinta generación con características

"software" muy diferentes de los actuales.

Estas y otras presiones están provocando una reorganización de los métodos empleados en el desarrollo de los programas para los ordenadores. Lo que se necesita son técnicas para la elaboración de productos software muy largos y complejos, que satisfagan estándares muy estrictos de calidad y prestaciones, de acuerdo con una planificación, control y presupuestos adecuados. 

Los métodos de trabajo que se han desarrollado para responder a estas necesidades constituyen lo que se ha dado en llamar "Ingeniería del Software". La Ingeniería del Software es una tarea de equipo, al comenzar un proyecto de desarrollo, se constituyen una serie de equipos con una estructura paralela a la del programa en sí. Se establece un calendario para el proyecto y se asignan costes a cada una de las partes y etapas del proyecto. Cada equipo tiene un responsable, cuya tarea es la de comprobar que la programación desarrollada por el equipo sea correcta, está estructurado con propiedad, dispone de las interfaces para conectar con los programas desarrolladas por otros equipos y se desarrolla de acuerdo a las previsiones de tiempo y coste.

La Ingeniería del Software se ocupa del ciclo de vida completo de un producto software, diseño, desarrollo, uso y mantenimiento. El trabajo se hace buscando el

12

Page 13: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

mayor grado posible de estandarización y los menores costes durante la totalidad del ciclo de vida de los programas.

La Ingeniería del Software implica que un programa bien estructurado satisfaga las siguientes condiciones:

El programa ha de tener una estructura general en forma de módulos, que a su vez estarán formados por procedimientos o segmentos.

Debe existir un interfaz claramente definido entre los diversos módulos Cada módulo debe de ser una combinación sencilla de construcciones

elementales de un lenguaje de programación Debe existir una fuerte correspondencia entre la estructura de los módulos

y la de los datos sobre los que operan Cada módulo debe dejar las estructuras de datos sobre las que opera en un

estado consistente con su definición Un módulo no debe tener efectos secundarios

Por lo que respecta a las técnicas de diseño de programas, el método más simple y uno de los más populares es el conocido como de "Refinamiento Progresivo". Se fundamenta en el uso de algoritmos que se escriben en un lenguaje intermedio entre el castellano y un lenguaje de programación como el Pascal, este lenguaje se denomina seudocódigo. El proceso se puede describir en términos de un lenguaje de esta naturaleza:

Establecer todos los pasos del programa en un algoritmo breve de alto nivel Repetir: Expandir cada sentencia del algoritmo en detalle, especificando los pasos

necesarios Hasta que las tareas hayan sido especificadas con el detalle suficiente

como para que pueda generarse el código del programa.

Existen otras metodologías más depuradas como por ejemplo la conocida como "Descomposición Funcional". A diferencia de la anterior en cada etapa se especifican las propiedades esenciales de las estructuras de datos, y cada algoritmo se expresa como una función matemática que transforma esta estructura de datos.

Una vez desarrollado un programa como es lógico se ha de comprobar su buen funcionamiento. Actualmente en la mayoría de los casos se prueban con cualquier tipo de datos que pueden presentarse en la realidad. Sin embargo este proceso

13

Page 14: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

nunca puede establecer si un programa es o no correcto, sin importar cuantos conjuntos de datos de usen. Si un programa es de importancia crítica, como ocurre en el presente con muchas aplicaciones comerciales, industriales o militares, es necesario tomar todas las precauciones posibles para asegurar que están libres de errores. Se están empezando a utilizar técnicas para asegurar que los módulos (y los algoritmos) son correctos, que los consideran como teoremas matemáticos y entonces se emplean los mismos métodos que se utilizan para demostrar los teoremas. Esta tarea es muy compleja y no siempre aplicable.

14

Page 15: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

8. CONCLUCIONES.

Se concluye que la evolucion de los diversos campos de la programacion, cada vez ha tenido mas fuerza ya que, algunos lenguajes se complementan de lo otros, cuyo fin proposito es facilitar la revision de algun programa, basados en 3 estructuras basicas.

15

Page 16: Cómo ha sido el proceso evolutivo de la tecnología orientada a estructuras

9. BIBLIOGRAFIA.

Informatica aplicada (2005) lenguajes de programacion, crative commons. Disponible en:http://www.um.es/docencia/barzana/IATS/Iats06.htmlPolilibro, (2000), Programacion estructurada. mexico. Disponible en:http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unidad_III/Unidad%20III_8.htm

16