22
NOMBRE: FRANCISCO JAVIER PRIEGO BRITO FACILITADORA: SUSANA SALGADO SEGOVIA MATERIA: FUNDAMENTOS DE LA PROGRAMACION CARRERA: DESARROLLO DE SOFTWARE TEMA: REFLEXION 1

Autoreflexion Unidad 1

Embed Size (px)

Citation preview

Page 1: Autoreflexion Unidad 1

NOMBRE: FRANCISCO JAVIER PRIEGO BRITO

FACILITADORA: SUSANA SALGADO SEGOVIA

MATERIA: FUNDAMENTOS DE LA PROGRAMACION

CARRERA: DESARROLLO DE SOFTWARE

TEMA: REFLEXION

1

Page 2: Autoreflexion Unidad 1

02 DE FREBRERO DEL 2013

INDICE

LOS LENGUAJES DE PROGRAMACION……………………………………………………………………………………3

LOS NIVELES DE LOS LENGUAJES……………………………………………………………………………………………4

LOS PRIMEROS LENGUAJES……………………………………………………………………………………………….……5

LA EVOLUCION…………………………………………………………………………………………………………………….….7

ADDENDUM……………………………………………………………………………………………………………………….……8

CICLO DE VIDA DEL SOFTWARE………………………………………………………………………………………………10

MODELOS DEL CICLO DE VIDA…………………………………………………………………………………………………11

MODELO CASCADA………………………………………………………………………………………………………………….13

MODELO V………………………………………………………………………………………………………………………………14

MODELO DESARROLLO INCREMENTAL…………………………………………………………………………………..15

MODELO DE DESARROLLO EVOLUTIVO…………………………………………………………………………………..16

2

Page 3: Autoreflexion Unidad 1

MODELO ESPIRAL…………………………………………………………………………………………………………………….17

LOS LENGUAJES DE PROGRAMACION

Hay avances en la historia de la humanidad que resultan más evidentes que otros

y que tienen su sitio en los grandes y generalistas libros de historia. Sin embargo,

hay otros que son más parecidos a pequeños engranajes que impulsan dichos

avances importantes. Hoy, en nuestro repaso por las diez tecnologías que

cambiaron el mundo, vamos a hablar de uno de esos engranajes: los lenguajes

de programación.

Meterse a examinar la historia de los lenguajes de programación es algo que nos

termina desembocando en un enorme laberinto de influencias e influenciadores.

Ya desde los primeros días, las innovaciones de unos eran modificadas por otros y

aplicadas en un desarrollo completamente nuevo. Pero si empezamos a seguir

sus raíces nos daremos cuenta de que ha habido ciertos desarrollos que han

contribuido en mayor medida a su avance.

Para entender bien el avance que significó la aparición y evolución de los distintos

lenguajes de programación, debemos comenzar por comprender que un

ordenador sólo entiende dos cosas: encendido y apagado; es decir, el 0 y el 1,

o código máquina.

3

Page 4: Autoreflexion Unidad 1

LOS NIVELES DE LOS LENGUAJES

La manera más directa de comunicarle órdenes a un ordenador es hablarle en su

idioma. Sin embargo, eso no significa que sea la manera más práctica ni la más

rápida para un ser humano; por lo tanto, pronto se empezaron a desarrollar

lenguajes que permitieran comunicarse con la máquina de una manera más rápida

y eficiente. El primer paso en este sentido fue el lenguaje ensamblador, un

lenguaje cuya estructura es muy parecida a la del código máquina sólo que con

letras y palabras. Tanto el ensamblador como el código máquina son

denominados lenguajes de bajo nivel.

Los lenguajes de bajo nivel son muy simples, pero con ellos resulta muy

complicado y laborioso estructurar programas. Por eso se crearon los lenguajes

de alto nivel, que es prácticamente a los que nos referimos actualmente al hablar

de “lenguajes de programación”. En resumidas cuentas, se tratan de lenguajes

pensados para ser entendidos con más facilidad por humanos.

Cuando se elabora un programa en un lenguaje de alto nivel, para poder hacerlo

funcionar debemos traducirlo al código máquina; es decir, a unos y ceros. A este

proceso se le conoce como compilación

4

Page 5: Autoreflexion Unidad 1

LOS PRIMEROS LENGUAJES

Básicamente, los lenguajes nacen y evolucionan por dos razones: para

aprovechar los avances tecnológicos y para facilitar el trabajo de los

programadores.

El que se considera en la práctica como el primer lenguaje de alto nivel es

Fortran, creado por el equipo de John W. Backus en IBM. Vio la luz a mediados

de 1954 y aunque se recibió con escepticismo entre la comunidad de

desarrolladores de entonces (que preferían seguir utilizando ensamblador), pronto

probó su utilidad y su adopción se extendió ampliamente.

Otros lenguajes como LISP y COBOL vinieron después. Pero lo que tenían todos

en común es que estaban principalmente orientados a unas ciertas tareas

específicas y su uso estaba restringido a científicos y matemáticos

Sin embargo, con la reducción del tamaño y coste de las máquinas, los

ordenadores se empezaron a popularizar en las empresas. Esto hizo surgir la

necesidad de elaborar lenguajes que fueran más sencillos y que permitiesen el

aprovechamiento de los ordenadores para tareas más generales.

El primero en aparecer con estas características fue BASIC, creado en 1964 por

John George Kemeny y Thomas Eugene Kurtz con el propósito de ser un lenguaje

fácil de usar y que pudiera utilizarse para cualquier cosa. Desde su creación,

surgieron multitud de variantes que se siguen utilizando hasta la actualidad.

5

Page 6: Autoreflexion Unidad 1

BASIC tenía en parte una cierta orientación educativa, como también lo tuvo el

lenguaje que apareció seis años más tarde: PASCAL, que fue desarrollado

principalmente para enseñar programación y luego creció hasta convertirse en una

herramienta comercial. Su creador fue Niklaus Wirth que lo publicó en 1970. Por

cierto, fue el lenguaje de alto nivel principal que se usó para el desarrollo del Apple

Lisa.

Sin embargo, el lenguaje que sin duda más impactó no sólo en esta época sino

en las siguientes fue uno con un nombre mucho más simple que todos los

anteriores: C. Desarrollado entre 1969 y 1973 por el recientemente

fallecido Dennis Ritchie, es considerado como uno de los lenguajes más

influyentes en la historia de la informática. A su vez, fue por medio de él que

Ritchie y Ken Thompson escribieron uno de los sistemas operativos también más

influyentes en su campo: Unix. En realidad, C no es considerado como un

lenguaje de alto nivel, sino de medio nivel, pues tiene algunas parte de

ensamblador.

6

Page 7: Autoreflexion Unidad 1

LA EVOLUCIÓN

Los años ochenta son una época en las que se consolidan ideas ya existentes y

se toman elementos e ideas de las décadas anteriores como bases para construir

nuevos lenguajes. En 1980 se crea uno de los lenguajes más utilizados desde

entonces: C++, una modificación de C hecha por Bjarne Stroustrup. Se le

considera el lenguaje de programación más popular de la historia y muchos de

los programas más conocidos y usados están escritos en él, como por ejemplo MS

Office o Firefox. De entre los lenguajes aparecidos en esta década, también cabe

destacar la creación por parte de Larry Wall de Perl en 1987, el cual coge

características de otros lenguajes como C o Lisp.

En los noventa hacen su aparición también un buen número de lenguajes que son

muy utilizados en la actualidad, como Python (1991), Ruby (1993) o Java (1995).

Éste último llamó mucho la atención por ser capaz de correr en diferentes equipos

y sistemas operativos a través de su máquina virtual, encargada de ejecutar el

bytecode resultante de compilar el código Java.

Aunque con la entrada en el nuevo siglo (y milenio) la aparición de nuevos

lenguajes se ha visto reducida, eso no quiere decir que no se haya producido. Por

ejemplo, tenemos C# y Visual Basic .NET(ambos de Microsoft) o, más

recientemente (en el 2009), Go, desarrollado por Google.

7

Page 8: Autoreflexion Unidad 1

ADDENDUM: LOS NOMBRES

Y es que bautizar una creación no siempre es una tarea fácil. Muchas veces

simplemente se optó por un acrónimo más o menos sonoro, o unas siglas que

sonasen bien a las que luego poner un significado. Pero en otros casos, las

decisiones son tomadas… de otra manera.

De los mencionados en este texto, podemos encontrarnos con que Fortran es una

contracción deThe IBM Mathematical Formula Translating System, quedándose

tan sólo con el For de Formula y el tran de Translating. Por su parte, COBOL es el

acrónimo de COmmon Business-Oriented Language, debido a que estaba

orientado a negocios, finanzas e instituciones gubernamentales.

C sin duda es el epítome de la simplicidad. ¿El por qué de su nombre? Porque

muchas de sus características provenían de un lenguaje anterior llamado… Sí: B.

Pura lógica.

Nombres prácticos, que reflejan lo nombrado. Pero… ¿Lo hacen también otros

como Python? Pues sí:Python proviene de Monty Python, el conocido grupo de

humoristas británicos. ¿Y que tienen que ver estos con un lenguaje para

programar? Fácil: los desarrolladores del lenguaje tenían como objetivo que usar

este lenguaje fuese divertido.

8

Page 9: Autoreflexion Unidad 1

En el caso de Perl, su creador quería un nombre de connotaciones positivas, por

lo tanto lo sacó de la parábola de la perla, del evangelio de San Mateo, que dice:

“El Reino de los Cielos es semejante a un mercader que busca perlas preciosas.

Cuando encuentra una de gran valor, va, vende todo lo que tiene y la compra”.

Pero resultó que ya había un lenguaje llamado PEARL, así que ni corto ni

perezoso simplemente alteró el nombre y terminó con el que conocemos: Perl, que

no significa absolutamente nada (por muchos acrónimos que le achaquen

después).

.

http://www.genbeta.com/genbeta/los-lenguajes-de-programacion-diez-tecnologias-que-

cambiaron-el-mundo-v

9

Page 10: Autoreflexion Unidad 1

CICLO DE VIDA DEL SOFTWARE

El término ciclo de vida del software describe el desarrollo de software, desde la

fase inicial hasta la fase final. El propósito de este programa es definir las distintas

fases intermedias que se requieren para validar el desarrollo de la aplicación, es

decir, para garantizar que el software cumpla los requisitos para la aplicación

y verificación de los procedimientos de desarrollo: se asegura de que los

métodos utilizados son apropiados.

Estos programas se originan en el hecho de que es muy costoso rectificar los

errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida

permite que los errores se detecten lo antes posible y por lo tanto, permite a los

desarrolladores concentrarse en la calidad del software, en los plazos de

implementación y en los costos asociados.

El ciclo de vida básico de un software consta de los siguientes procedimientos:

Definición de objetivos: definir el resultado del proyecto y su papel en la

estrategia global.

Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los

requisitos del cliente y examinar cualquier restricción que se pueda aplicar.

Diseño general: requisitos generales de la arquitectura de la aplicación.

Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

Programación (programación e implementación): es la implementación de un

lenguaje de programación para crear las funciones definidas durante la etapa

de diseño.

10

Page 11: Autoreflexion Unidad 1

Prueba de unidad: prueba individual de cada subconjunto de la aplicación para

garantizar que se implementaron de acuerdo con las especificaciones.

Integración: para garantizar que los diferentes módulos se integren con la

aplicación. Éste es el propósito de la prueba de integración que está

cuidadosamente documentada.

Prueba beta (o validación), para garantizar que el software cumple con las

especificaciones originales.

Documentación: sirve para documentar información necesaria para los

usuarios del software y para desarrollos futuros.

Implementación

Mantenimiento: para todos los procedimientos correctivos (mantenimiento

correctivo) y las actualizaciones secundarias del software (mantenimiento

continuo).

El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de

una aplicación dependen del tipo de modelo de ciclo de vida acordado entre el

cliente y el equipo de desarrolladores.

11

Page 12: Autoreflexion Unidad 1

MODELOS DE CICLO DE VIDA

Define el estado de las fases a través de las cuales se mueve un proyecto de

desarrollo de software.

El primer modelo de ciclo de vida del software, "Cascada", fue definido por

Winston Royce a fines del 70.

Desde 10 a 15 años atrás, este modelo fue sujeto a críticas, por ser restrictivo y

rígido.

Se ocupa en describir las fases principales del desarrollo de software, ayudando a

administrar el progreso y desarrollo, además de proveer un espacio de trabajo

detallado de la elaboración del software

Para facilitar una metodología común entre el cliente y la compañía de software,

los modelos de ciclo de vida se han actualizado para reflejar las etapas de

desarrollo involucradas y la documentación requerida, de manera que cada etapa

se valide antes de continuar con la siguiente etapa.

12

Page 13: Autoreflexion Unidad 1

MODELO EN CASCADA

El modelo de ciclo de vida en cascada comenzó a diseñarse en 1966 y se terminó

alrededor de 1970. Se define como una secuencia de fases en la que al final de

cada una de ellas se reúne la documentación para garantizar que cumple las

especificaciones y los requisitos antes de pasar a la fase siguiente:

13

Page 14: Autoreflexion Unidad 1

MODELO V

El modelo de ciclo de vida V proviene del principio que establece que los

procedimientos utilizados para probar si la aplicación cumple las especificaciones

ya deben haberse creado en la fase de diseño.

http://es.kioskea.net/contents/genie-logiciel/cycle-de-vie.php3

14

Page 15: Autoreflexion Unidad 1

MODELO DE DESARROLLO INCREMENTAL

Existen riesgos en el desarrollo de sistemas largos y complejos. La forma de

reducir los riesgos es construir una parte del sistema. 

Un sistema pequeño es siempre menos riesgoso que construir un sistema

grande.es más fácil determinar si los requerimientos para los niveles subsiguientes

son correctos.

Reduciendo el tiempo de desarrollo de un sistema decrecen las probabilidades

que esos requerimientos de usuarios puedan cambiar durante el desarrollo. Los

errores de desarrollo realizados en un incremento, pueden ser arreglados antes

del comienzo del próximo incremento.

15

Page 16: Autoreflexion Unidad 1

MODELO DE DESARROLLO EVOLUTIVO

El modelo de desarrollo evolutivo construye versiones sucesivas de un producto,

el modelo evolutivo asume que los requerimientos no son completamente

conocidos al inicio del proyecto.

Basada en esta retroalimentación, la especificación de requerimientos es

actualizada. El desarrollo de software en forma evolutiva requiere un especial

cuidado en la manipulación de documentos, programas, datos de test, etc.

desarrollados para distintas versiones del software.

Modelo de Prototipado de Requerimientos

El prototipado de requerimientos es la creación de una implementación parcial de

un sistema, para el propósito explícito de aprender sobre los requerimientos del

sistema. Un prototipo es construido de una manera rápida tal como sea posible.

16

Page 17: Autoreflexion Unidad 1

Modelo Espiral

Basada en la necesidad continúa de refinar los requerimientos y estimaciones del

proyecto.

Efectivo para proyectos pequeños donde con la

retroalimentación dada por el cliente, se aprueba

las diferentes etapas, puede ocurrir el riesgo que no

se defina bien los objetivos por el cual el desarrollo puede ser caótico.

Modelo Concurrente

El modelo concurrente provee una meta-descripción del proceso software, tiene la

capacidad de describir las múltiples actividades del software ocurriendo

simultáneamente.

Los requerimientos son denominadas "líneas de base", es decir que cuando una

mayoría de los requerimientos comienzan a ser bien entendidos, en este tiempo

se dedica un esfuerzo considerable al diseño. Sin embargo, una vez que comienza

el diseño, cambios a los requerimientos son comunes y frecuentes. 

http://www.hanantek.com/modelos-ciclo-vida-software

17