View
76
Download
2
Embed Size (px)
Citation preview
NOMBRE: FRANCISCO JAVIER PRIEGO BRITO
FACILITADORA: SUSANA SALGADO SEGOVIA
MATERIA: FUNDAMENTOS DE LA PROGRAMACION
CARRERA: DESARROLLO DE SOFTWARE
TEMA: REFLEXION
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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