dam entornos de desarrollo unidad 1
TRANSCRIPT
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
1/138
UNIDAD 1: DESARROLLO DEL SOFTWARE
1.1.- Concepto de programa informático.1.2.- Relación entre el software y el hardwarede un equipo informático.
1.3.- Código fuente, código objeto y códigoejecutable, máquinas virtuales.1.4.- Tipos de lenguaje de programación.Clasificaciones.1.5.- Características de los lenguajes másdifundidos.1.6.- Procesos de obtención de códigoejecutable a partir de código fuente:compilación, linkado, herramientas implicadas.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
2/138
1.7.- Aplicaciones informáticas. Definición. Clasificación.
1.8.- Fases del desarrollo de una aplicación, pruebas,
documentación, explotación y mantenimiento entreotros.
1.9.- Lenguajes de propósito general para el modeladoUML. Diagramas.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
3/138
1.1.- Concepto de programa informático
Definiciones de programa informático:
• Es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una
computadora. Sin programas, estas máquinas no pueden funcionar. Al conjunto general de
programas, se le denomina software, que más genéricamente se refiere al equipamiento lógico osoporte lógico de una computadora digital.
• Es algo necesario para el funcionamiento de una computadora. Puede ser tanto un programa
ejecutable como su código fuente, que es escrito por los programadores. Por otra parte, según
sus funciones, un programa puede ser clasificado como un software de sistema o un software de
aplicación.
• Es a una serie de comandos que son realizados por un equipo de computación. • Es todo el conjunto intangible de datos y programas de la computadora.
• Es un conjunto de instrucciones u ordenes basadas en un lenguaje de programación que una
computadora interpreta para resolver un problema o una función especifica.
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Softwarehttp://localhost/var/www/apps/conversion/tmp/scratch_4/hwPal818557677.hwShow(event,%20this,%20%22computadora%22);%20this.style.cursor=%22hand%22;%20this.style.textDecoration=%22underline%22;%20this.style.borderBottom=%22solid%22;http://localhost/var/www/apps/conversion/tmp/scratch_4/hwPal818557677.hwShow(event,%20this,%20%22computadora%22);%20this.style.cursor=%22hand%22;%20this.style.textDecoration=%22underline%22;%20this.style.borderBottom=%22solid%22;http://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
4/138
1.1.- Concepto de programa informático
¿Para que sirve un programa informático?• Permitir a un usuario realizar uno o diversos tipos de trabajo. Esto lo diferencia principalmente de otros tipos de
programas como los sistemas operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas
de mantenimiento o de uso general), y los lenguajes de programación (para crear los programas informáticos).
• Suele resultar una solución informática para la automatización de ciertas tareas complicadas como pueden ser la
contabilidad, la redacción de documentos, o la gestión de un almacén. Algunos ejemplos de programas de
aplicación son los procesadores de textos, hojas de cálculo, y base de datos.• Ciertas aplicaciones desarrolladas «a medida» suelen ofrecer una gran potencia ya que están exclusivamente
diseñadas para resolver un problema específico. Otros, llamados paquetes integrados de software, ofrecen
menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de
cálculo y de base de datos.
• Otros ejemplos de programas de aplicación pueden ser: programas de comunicación de datos, Multimedia,
presentaciones, diseño gráfico, cálculo, finanzas, correo electrónico, compresión de archivos, presupuestos de
obras, gestión de empresas, etc.
• Algunas compañías agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados
suites o suite ofimática) que sean satisfactorios para las necesidades más apremiantes del usuario. Todos y cada
uno de ellos sirven para ahorrar tiempo y dinero al usuario, al permitirle hacer cosas útiles con el ordenador (o
computadora); algunos con ciertas prestaciones, otros con un determinado diseño; unos son más amigables o
fáciles de usar que otros, pero bajo el mismo principio.
http://es.wikipedia.org/wiki/Sistema_operativohttp://es.wikipedia.org/wiki/Utilidad_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Automatizaci%C3%B3nhttp://es.wikipedia.org/wiki/Contabilidadhttp://es.wikipedia.org/wiki/Procesadores_de_textoshttp://es.wikipedia.org/wiki/Hojas_de_c%C3%A1lculohttp://es.wikipedia.org/wiki/Base_de_datoshttp://es.wikipedia.org/wiki/Multimediahttp://es.wikipedia.org/wiki/Dise%C3%B1o_gr%C3%A1ficohttp://es.wikipedia.org/wiki/Finanzashttp://es.wikipedia.org/wiki/Correo_electr%C3%B3nicohttp://es.wikipedia.org/wiki/Suite_ofim%C3%A1ticahttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Suite_ofim%C3%A1ticahttp://es.wikipedia.org/wiki/Correo_electr%C3%B3nicohttp://es.wikipedia.org/wiki/Finanzashttp://es.wikipedia.org/wiki/Dise%C3%B1o_gr%C3%A1ficohttp://es.wikipedia.org/wiki/Multimediahttp://es.wikipedia.org/wiki/Base_de_datoshttp://es.wikipedia.org/wiki/Hojas_de_c%C3%A1lculohttp://es.wikipedia.org/wiki/Procesadores_de_textoshttp://es.wikipedia.org/wiki/Contabilidadhttp://es.wikipedia.org/wiki/Automatizaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Utilidad_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Sistema_operativo
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
5/138
1.1.- Concepto de programa informático
¿Para qué sirve un sistema informático?
• Satisfacen las necesidades de personas, empresas uorganizaciones, con esta satisfacción de necesidadesnos referimos a automatizar industrias, realizar procesosmás rápidos y más efectivos y poder sacar informes deforma más ordenada y más exacta
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
6/138
1.1.- Concepto de programa informático
Tipos de programas informáticos:
Se pueden clasificar dentro de trescategorías principales:
• Software de aplicación.
• Software del sistema.• Software de red.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
7/138
1.1.- Concepto de programa informático
• DE APLICACIÓN: Conjunto de instrucciones decomputadora escritas con un lenguaje deprogramación, las cuales dirigen al hardwarepara que efectúe actividades específicas deprocesamiento de datos y de información queproporcionan funcionalidad al usuario. Estapuede ser amplia: procesamiento general depalabras o limitada como la nómina. Los
programas de aplicación satisfacen unanecesidad como incrementar la productividad omejorar decisiones del nivel de inventarios.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
8/138
1.1.- Concepto de programa informático
• DE SISTEMAS: Actúa como intermediario entreel hardware de cómputo y los programas deaplicación. Realiza importantes funcionesautorreguladoras como por ejemplo: cargarsepor sí sola cuando la computadora se activa por1ª vez como Windows 7, proporcionar unconjunto de instrucciones utilizadas para todaslas aplicaciones. La programación de sistemas
se refiere a la creación o bien a la modificacióndel software de sistemas.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
9/138
1.1.- Concepto de programa informático
¿Quién construye un programa informático?
• A la persona que desarrolla un programa se le llama programador , y no tiene queser, necesariamente, la misma que la quehace uso de dicho programa. A estasegunda persona se le denomina usuario.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
10/138
1.1.- Concepto de programa informático
¿Quién construye un programa?Para desarrollar un proyecto hay que formar un equipo, el equipoprobablemente contara con especialistas de las siguientes categorías:
• Analista funcional.• Analista orgánico.
• Analista / programador.
• Programador
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
11/138
1.1.- Concepto de programa informáticoEL JEFE DE PROYECTO:
• En la relación anterior falta la figura encargada de coordinar, dirigir, controlar y responsabilizarse en
último término de la ejecución del proyecto. Esta es la figura del jefe o director de proyecto.
• Esta persona debe tener una autoridad real, una capacidad para tomar decisiones sobre la realización del
proyecto siempre respetando los objetivos del proyecto. La falta de autoridad o el exceso de
independencia de algunas áreas informáticas son la causa de muchas dificultades en los proyectos.
• La misión del jefe de proyecto tiene dos vertientes, por un lado la técnica, ha de concretar objetivos,
adecuar el proyecto a las posibilidades de la empresa, gestionar los recursos, cambiar los métodos, etc.,
y por otro lado la de gestión de recursos humanos, materiales y de relación con otros departamentos y
con el usuario o receptor del proyecto informático.
• En definitiva y como resumen las funciones del jefe de proyecto podrían resumiese como tres:
• Planificar, que es la única forma de asegurar la finalización del proyecto en el plazo adecuado sin dejarlo
en manos de la improvisación.
• Coordinar, para que todas las acciones de los implicados en el proyecto tanto propios (componentes del
equipo de proyecto) como externos (usuarios u otros departamentos o empresas), sean eficaces y no den
lugar a conflictos.
• Controlar, para asegurar que se cumple lo planificado y se obtiene la calidad requerida.
http://www.monografias.com/trabajos7/gepla/gepla.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos14/propiedadmateriales/propiedadmateriales.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos55/conflictos/conflictos.shtmlhttp://www.monografias.com/trabajos55/conflictos/conflictos.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos14/propiedadmateriales/propiedadmateriales.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos7/gepla/gepla.shtml
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
12/138
1.1.- Concepto de programa informático
EL EQUIPO DE PROYECTO:• El equipo estará formado por un conjunto de técnicos en tareas informáticas, al mando
directo del jefe del proyecto. Eventualmente puede ser necesaria también la intervención
de personal ajeno al equipo de proyecto para la realización de tareas concretas
• El usuario, como conocedor de las funciones y necesidades a cubrir por el proyecto, debe
también ser involucrado en el mismo.• Debe contarse también desde el principio con la participación del personal técnico de
otros departamentos, como sistemas, seguridad, control de calidad o explotación, etc.
• Es especialmente importante que todos los componentes del equipo técnico conozcan
con la suficiente antelación la planificación del proyecto, para que dispongan de tiempo
suficiente para cumplir los plazos
• Vista la función del jefe de proyecto, cabe considerar la composición y funcionalidad del
resto del equipo. No vamos a tener en cuenta el numero de componentes, que variará de
un proyecto a otro, de hecho la funcionalidad de los componentes tampoco es estricta y
puede variar o incluso no ser necesaria la participación de alguno de ellos.
http://www.monografias.com/trabajos11/fuper/fuper.shtmlhttp://www.monografias.com/trabajos11/fuper/fuper.shtml
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
13/138
LAS FUNCIONES PROPIAS DE LOS COMPONENTES DEL PROYECTO SON LAS DE ANÁLISIS Y
PROGRAMACIÓN:
• Análisis o Diseño:
Funcional o externo
Orgánico o interno (también, técnico)
• Programación:
Lógica del programa (estructura)
Codificación
Pruebas (unitarias y de conjunto)
Estas funciones dan lugar a los puestos de trabajo: Analista funcional, Analista orgánico y Programador.
Exista un puesto eslabón entre el de analista y el programador, es el analista-programador. Este puesto surge
debido a la débil separación que existe entre los puestos anteriores, especialmente en proyectos pequeños.
Por otra parte también es interesante que el programador tenga algo de conocimiento de análisis técnico, ya
que al final esto implica una disminución de los costes.
Por lo general dentro de un proyecto el numero de programadores puros es mucho mayor que el de analistas,sin embargo esto tiende a cambiar, lo ideal seria que el análisis y diseño pudiesen ser introducidos
directamente en programas que de manera automática generasen el código, eliminando la tediosa tarea de
codificación y dejándole al técnico tan solo la tarea de diseño funcional y técnico. En la actualidad aun es
necesaria una gran cantidad de programadores que realicen estas tareas
http://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos15/todorov/todorov.shtmlhttp://www.monografias.com/trabajos/epistemologia2/epistemologia2.shtmlhttp://www.monografias.com/trabajos12/eticaplic/eticaplic.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos12/eticaplic/eticaplic.shtmlhttp://www.monografias.com/trabajos/epistemologia2/epistemologia2.shtmlhttp://www.monografias.com/trabajos15/todorov/todorov.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtml
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
14/138
Funciones del Analista funcional:
Es el encargado de la fase análisis del proyecto, tiene una visión mas general del
proyecto que los demás componentes. Sus funciones son:
• Estudio de la situación actual• Estudio de los objetivos
• Estudio de viabilidad
• Estudio del impacto hardware / software
(Estos estudios han de realizarlos en colaboración con el jefe de proyecto)
• Definición de los requisitos del proyecto
• Identificación de necesidades de información e intercambio
• Identificación de procesos
• Elaboración de la documentación funcional
• Diseño del modelo de entidades
• Diseño del flujo de datos
• Diseño lógico de ficheros y tablas Diseño de conversaciones
(Las funciones de diseño se realizan en colaboración con el analista orgánico)
http://www.monografias.com/Computacion/Hardware/http://www.monografias.com/trabajos11/ladocont/ladocont.shtmlhttp://www.monografias.com/trabajos/adolmodin/adolmodin.shtmlhttp://www.monografias.com/trabajos/adolmodin/adolmodin.shtmlhttp://www.monografias.com/trabajos11/ladocont/ladocont.shtmlhttp://www.monografias.com/Computacion/Hardware/
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
15/138
Funciones del analista orgánico o técnico:
Es el encargado de la parte de diseño del proyecto. Sus funciones son:
• Diseño técnico de transacciones y tareas en general.
• Descomposición y diseño de cadenas de explotación
• Diseño de procedimientos de recuperación y control
• Diseño físico de ficheros y tablas
• Diseño de prototipos y de pruebas de conjunto
• Evaluación y control de pruebas unitarias y de conjunto
• Puesta en producción de la aplicación
• Elaboración de documentación técnica
• Elaboración de cuadernos de carga
http://www.monografias.com/trabajos13/mapro/mapro.shtmlhttp://www.monografias.com/trabajos12/romandos/romandos.shtmlhttp://www.monografias.com/trabajos12/romandos/romandos.shtmlhttp://www.monografias.com/trabajos13/mapro/mapro.shtml
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
16/138
Funciones del programador:
• Estructuración lógica del programa
• Codificación • Pruebas unitarias
• Colaboración en pruebas de conjunto
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
17/138
En un entorno informático estable, la decisión de iniciar un proyecto viene dada por las necesidades de:
mantenimiento, modificación, mejoramiento, reemplazo o capacidad.
• El Mantenimiento del programa; es una consecuencia de una omisión realizada en la etapa del diseño del
sistema e involucra solucionar fallas menores del sistema, que obligará a la realización de cambios en el
programa; como por ejemplo el descuido de no considerar que puedan ocurrir en el sistema, ciertas
condiciones extraordinarias; como sería el caso de un aumento no previsto del 60 %, en la emisión de
órdenes de compra. Las fallas también pueden provenir de otros factores, como ser en el caso de que
existan cambios en las expectativas de los usuarios.
• La Modificación del programa; involucra algo más que un simple cambio en el programa; involucra un
cambio estructural de una entidad Por ejemplo, un cambio en el número de dígitos del código postal, oen el código de zona telefónica. La diferencia con el Mantenimiento es el grado de importancia.
• El Mejoramiento del sistema; es el agregado de capacidades que no formaron parte del sistema de
información original; por ejemplo cuando en una división se implementó un sistema de inventarios, este
sistema no incluía un modulo para calcular la futura demanda de bienes y partes. La inclusión de este
sofisticado módulo de cálculo es considerado un mejoramiento del sistema.
• El Reemplazo del sistema; ocurre cuando los sistemas de información se tornan físicamente,
tecnológicamente o competitivamente obsoletos. Como es el caso de la utilización del láser , en el
reconocimiento óptico de caracteres para la lectura del código de barras, remplazando a la entrada por
teclado.
• La Nueva Capacidad del sistema; son sistemas de información para los cuales no es necesario el uso de
la automatización. Están dados por la capacidad de poder modelizar la aplicabilidad de nuevos sistemas.
Un ejemplo de ello, es la aplicación de los sistemas expertos.
http://www.monografias.com/trabajos15/mantenimiento-industrial/mantenimiento-industrial.shtmlhttp://www.monografias.com/trabajos11/conin/conin.shtmlhttp://www.monografias.com/trabajos/ofertaydemanda/ofertaydemanda.shtmlhttp://www.monografias.com/trabajos16/configuraciones-productivas/configuraciones-productivas.shtmlhttp://www.monografias.com/trabajos7/caes/caes.shtmlhttp://www.monografias.com/trabajos/laser/laser.shtmlhttp://www.monografias.com/trabajos16/metodo-lecto-escritura/metodo-lecto-escritura.shtmlhttp://www.monografias.com/trabajos5/sisope/sisope2.shtmlhttp://www.monografias.com/trabajos6/auti/auti.shtmlhttp://www.monografias.com/trabajos6/auti/auti.shtmlhttp://www.monografias.com/trabajos5/sisope/sisope2.shtmlhttp://www.monografias.com/trabajos16/metodo-lecto-escritura/metodo-lecto-escritura.shtmlhttp://www.monografias.com/trabajos/laser/laser.shtmlhttp://www.monografias.com/trabajos7/caes/caes.shtmlhttp://www.monografias.com/trabajos16/configuraciones-productivas/configuraciones-productivas.shtmlhttp://www.monografias.com/trabajos/ofertaydemanda/ofertaydemanda.shtmlhttp://www.monografias.com/trabajos11/conin/conin.shtmlhttp://www.monografias.com/trabajos15/mantenimiento-industrial/mantenimiento-industrial.shtml
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
18/138
LA ELABORACIÓN DE UN PROYECTO INFORMÁTICO
• Un Proyecto Informático lo componen un conjunto de tareas independientes cuyo objeto es la realización
de un software que automatice el sistema de Información requerido por el usuario.
• Un proyecto nace a partir del momento en que se formulan sus necesidades. La persona que se vaya a
encargar de su dirección tiene el deber de estudiarlas con los usuarios (clientes) y hacer el estudio deviabilidad en sus dos principales vertientes:
Técnica
Económica
• Se debe llevar a cabo una previsión para realizar la determinada aplicación de software en una fecha
prevista y ponerlo en marcha con recursos limitados tales como materiales, programas y personas que
no posean necesariamente ni el mismo lenguaje ni los mismos objetivos laborales.
• Las razones del fracaso de un proyecto informático, aparte de las citadas en las archifamosas leyes de
Murphy, son:
Ausencia del estudio de viabilidad para ajustarse a unas necesidades claramente explicitadas y
comprendidas.
Especificaciones vagas, incompletas o incluso cambiantes.
Falta de utilización de herramientas adecuadas para poder validar el comportamiento del sistema en el
futuro, donde es necesario disponer de una buena herramienta de simulación.
Mala estimación de costes.
Reparto inadecuado de las tareas entre los miembros del equipo.
Ausencia o mal seguimiento que se llevan a cabo en momentos inoportunos o que no se ajustan a la
realidad
http://www.monografias.com/trabajos35/concepto-de-lenguaje/concepto-de-lenguaje.shtmlhttp://www.monografias.com/trabajos4/leyes/leyes.shtmlhttp://www.monografias.com/trabajos16/comportamiento-humano/comportamiento-humano.shtmlhttp://www.monografias.com/trabajos6/sipro/sipro.shtmlhttp://www.monografias.com/trabajos6/sipro/sipro.shtmlhttp://www.monografias.com/trabajos16/comportamiento-humano/comportamiento-humano.shtmlhttp://www.monografias.com/trabajos4/leyes/leyes.shtmlhttp://www.monografias.com/trabajos35/concepto-de-lenguaje/concepto-de-lenguaje.shtml
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
19/138
1.2.- Relación entre el software y el hardware de un equipo informático.
El software es un elemento del sistema que es lógico, en lugar
de físico. Por eso tiene unas características muy diferentes a lasdel hardware. Ambas actividades requieren la construcción deun «producto», pero los métodos son diferentes.
Diferencias:
• El software se desarrolla no se fabrica en un sentido clásico.• Los costos del software se encuentran en la ingeniería.• Los proyectos de software no se pueden gestionar como si fueran
proyectos de fabricación.
• El software no se «estropea».• La mayoría del software se construye a medida, en vez de ensamblar
componentes existentes.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
20/138
El mejor modo para comprender cómo unprograma interactúa con un sistema es revisando
la funcionalidad básica y el programa básico, irnosdirectamente al concepto de programa y desistema en su mínima expresión. Para ello, vamosa revisar el funcionamiento de una única
instrucción dentro del conocido simulador VonNeumann.
En ella el procesador ejecutará las instrucciones una auna. Para cada instrucción realizará una serie demicroinstrucciones para llevarla a cabo.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
21/138
Vamos a realizar el recorrido que efectúa unainstrucción de un modo conceptual, nada
técnico, profundizando más y más dentro de lainterpretación que hace el sistema de nuestroprograma. Imaginemos que tenemos unprograma extremadamente sencillo que pide por
teclado dos números y los suma. La instrucciónque realizará la operación de nuestro programase podría corresponder con la siguiente línea:
c = a + b;
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
22/138
El ordenador tendrá reservada unacantidad de posiciones de memoriadefinidas por el tipo de variable que secorresponden con las variables denuestra instrucción. Es decir, nuestrasvariables “a”, “b” y “c” tendrán unasposiciones de memoria definidas quees donde el sistema almacenará los
valores de las variables.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
23/138
No obstante, el procesador no puedeejecutar esa instrucción por sencillaque sea de un solo golpe, la AL U
( Aritmetic Logic Unit ) tiene unnúmero muy limitado de operacionesque puede realizar, usualmente
SUMAR y RESTAR .
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
24/138
Además, para nuestra demostración
deberemos tener en cuenta una serie dereglas intrínsecas del sistema:
• La ALU solo puede realizar unaoperación a la vez.
• El registro temporal de la ALU, el bus y
los registros solo pueden almacenar undato a la vez.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
25/138
Si definimos (para simplificar el modelo) que lasposiciones de memoria de “a”, “b” y “c” se
corresponden con los registros R1, R2 y R3, lasmicroinstrucciones que tendría que realizar nuestramáquina serían las siguientes:
R1 – Bus ;Bus – ALU-Temp ;
R2 – Bus ; ALU-SUMAR ;
ALU – Bus ;Bus – R3;
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
26/138
Hoy en día, con los microprocesadores
modernos, el funcionamiento, aunque muysimilar en esencia, de cómo son interpretadaslas instrucciones de nuestro programa por elsistema puede variar, sobre todo en lo que
las reglas se refiere.
Sin embargo, hay cosas que no cambian, elprograma se sigue almacenando en una
memoria no volátil y se sigue ejecutando en lamemoria de acceso aleatorio, al igual que todaslas variables utilizadas.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
27/138
La interacción con el sistema no es siempre unarelación directa, no todos los programas tienen accesolibre y directo al hardware, es por ello que se definenlos programas en dos clasificaciones generales:software de sistema y software de aplicación.
Es el software de sistema el que se encarga de
controlar y gestionar el hardware, así como degestionar el software de aplicación, de hecho, en unsoftware de sistema, como el sistema operativo, esen donde se ejecuta realmente el software deaplicación.
Será el software de aplicación el que incorpore(gracias al compilador) las librerías necesarias paraentenderse con el sistema operativo, y éste a su vez
sería el que se comunicase con el hardware.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
28/138
1.3.- Código fuente, código objeto ycódigo ejecutable, máquinas virtuales
Q é l ódi f t ?
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
29/138
¿Qué es el código fuente?
• El término código tiene diferentes usos ysignificados. Se trata, por ejemplo, de unacombinación de signos que, dentro de unsistema establecido, tiene un determinado
valor: “El programador tendrá que corregir elcódigo del software para que funcione demanera correcta” .
• En el caso de la informática, se conoce comocódigo fuente al texto desarrollado en unlenguaje de programación y que debe sercompilado o interpretado para poder ejecutarseen una computador
http://definicion.de/signos/http://definicion.de/sistemahttp://definicion.de/informaticahttp://definicion.de/computadorahttp://definicion.de/computadorahttp://definicion.de/informaticahttp://definicion.de/sistemahttp://definicion.de/signos/
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
30/138
¿Qué es el código fuente?
• Texto escrito en un lenguaje deprogramación específico y que puede serleído por un programador . Debe traducirse
a lenguaje máquina para que pueda serejecutado por la computadora o abytecode para que pueda ser ejecutadopor un intérprete. Este proceso se
denomina compilación.
http://www.alegsa.com.ar/Dic/lenguaje%20de%20programacion.phphttp://www.alegsa.com.ar/Dic/lenguaje%20de%20programacion.phphttp://www.alegsa.com.ar/Dic/programador.phphttp://www.alegsa.com.ar/Dic/compilacion.phphttp://www.alegsa.com.ar/Dic/compilacion.phphttp://www.alegsa.com.ar/Dic/programador.phphttp://www.alegsa.com.ar/Dic/lenguaje%20de%20programacion.phphttp://www.alegsa.com.ar/Dic/lenguaje%20de%20programacion.php
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
31/138
¿Qué es el código fuente?
• Acceder al código fuente de un programasignifica acceder a los algoritmos desarrollados por sus creadores. Es la
única manera de modificar eficaz yeficientemente un programa.
http://www.alegsa.com.ar/Dic/algoritmo.phphttp://www.alegsa.com.ar/Dic/algoritmo.php
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
32/138
¿Qué es el código fuente?
• Liberar un código fuente significa compartir esetexto con cualquier persona que lo desee, estoimplica que cualquiera puede analizarlo,copiarlo o modificarlo. Las aplicaciones que
liberan sus códigos suelen ser gratuitas bajolicencia GNU. La liberación de un código de unprograma implica ciertos riesgos en cuanto a laseguridad del mismo, pues su funcionamientoexacto queda expuesto. El código fuente no
suele liberarse para las aplicacionescomerciales y no puede obtenerse el códigofuente original a través de los programas yacompilados.
http://www.alegsa.com.ar/Dic/gnu.phphttp://www.alegsa.com.ar/Dic/gnu.php
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
33/138
¿Qué es el código fuente?
• El código fuente de un programa informático (o software) es un conjuntode líneas de texto que son las instrucciones que debe seguir lacomputadora para ejecutar dicho programa. Por tanto, en el código fuentede un programa está descrito por completo su funcionamiento.
• El código fuente de un programa está escrito por un programador en algúnlenguaje de programación, pero en este primer estado no es directamenteejecutable por la computadora, sino que debe ser traducido a otro lenguaje(el lenguaje máquina o código objeto) que sí pueda ser ejecutado por elhardware de la computadora. Para esta traducción se usan los llamadoscompiladores, ensambladores, intérpretes y otros sistemas de traducción.
• El término código fuente también se usa para hacer referencia al códigofuente de otros elementos del software, como por ejemplo el código fuentede una página web que está escrito en el lenguaje de marcado HTML o enJavascript u otros lenguajes de programación web y que es posteriormenteejecutado por el navegador web para visualizar dicha página cuando esvisitada.
• El área de la informática que se dedica a la creación de programas y, portanto a la creación de su código fuente, es la programación.
http://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quinahttp://es.wikipedia.org/wiki/C%C3%B3digo_objetohttp://es.wikipedia.org/wiki/Hardwarehttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Ensambladorhttp://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)http://es.wikipedia.org/wiki/P%C3%A1gina_webhttp://es.wikipedia.org/wiki/Lenguaje_de_marcadohttp://es.wikipedia.org/wiki/HTMLhttp://es.wikipedia.org/wiki/Javascripthttp://es.wikipedia.org/wiki/Navegador_webhttp://es.wikipedia.org/wiki/Inform%C3%A1ticahttp://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Inform%C3%A1ticahttp://es.wikipedia.org/wiki/Navegador_webhttp://es.wikipedia.org/wiki/Javascripthttp://es.wikipedia.org/wiki/HTMLhttp://es.wikipedia.org/wiki/Lenguaje_de_marcadohttp://es.wikipedia.org/wiki/P%C3%A1gina_webhttp://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Ensambladorhttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Hardwarehttp://es.wikipedia.org/wiki/C%C3%B3digo_objetohttp://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quinahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Programa_inform%C3%A1tico
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
34/138
CÓDIGO FUENTE
• Cada lenguaje de programación tiene unsu propio código fuente.
• A continuación veremos ejemplos decódigos fuente que pertenecen a distintoslenguajes de programación.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
35/138
Ejemplo Código Fuente de Java
// Applet HolaMundo de ejemplo
import java.awt.Graphics;
import java.applet.Applet;public class HolaMundo extends Applet {public void paint( Graphics g ) {g.drawString( "Hola Mundo!",25,25 ) ; }
}
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
36/138
Ejemplo Código Fuente Java
class Radio { private String r = new String("Radio:"); public void agrega(String a) { r += a; } publicvoid imprimir() { System.out.println(r); } public void
frecuencia() { agrega(" frecuencia() "); } public voidvolumen() { agrega(" volumen() "); } public voidmodelo() { agrega(" modelo() "); } public static voidmain(String[] args) { Radio x = new Radio();
x.frecuencia() ; x.volumen(); x.modelo();x.imprimir(); } }
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
37/138
Ejemplo Código Fuente Pascal
procedure estrella(x,y,n,r,rMin,color:integer; reduc,alfa:real);vari,x2,y2:integer;inc:real;
procedure rama(x,y:integer; r,alfa:real);var
i,x2,y2:integer;inc:real;
begininc:=alfa;for i:=1 to n-1 dobeginx2:=round(x+r*cos(inc));
y2:=round(y+r*sin(inc));draw(x,y,x2,y2,color);if r>rMin then rama(x2,y2,r*reduc,inc-(n-2)/n*pi);inc:=inc+2*pi/n;
end;end;
begininc:=alfa;
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
38/138
inc:=alfa;for i:=1 to n dobeginx2:=round(x+r*cos(inc));y2:=round(y+r*sin(inc));draw(x,y,x2,y2,color);
rama(x2,y2,r*reduc,inc-(n-2)/n*pi);inc:=inc+2*pi/n;end;
end;
constreduc:array[3..6] of real=(0.63,0.5,0.38,0.32);rMin:array[3..6] of byte=(1,2,1,1);
vari:integer;tecla:char;
BEGINfor i:=3 to 6 dobegin
graphColorMode;palette(2);estrella(160,100,i,45,rMin[i],3,reduc[i],0.1);read(kbd,tecla);
end;textMode;
END.
Ó
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
39/138
EJEMPLO CÓDIGO FUENTEDELPHI
public constructor create(AOwner :TComponent); override; destructor destroy;override;
constructor TComponent.Create(AOwner :TComponent); begin inherited
Create(AOwner); ... end; destructorTComponent.Destroy; begin ... inheriteddestroy; end;
Ó
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
40/138
EJEMPLO CÓDIGO FUENTEDELPHI
constructor TBlinkLabel.Create(AOwner :TComponent); begin inherited Create(AOwner);{Llama al constructor original (heredado)} FTimer:= TTimer.Create(Self); {Creamos el timer}
FVelocidad := 400; {Frecuencia (velocidad) pordefecto} FTimer.Enabled:=True; {Activamos eltimer} FTimer.OnTimer:=parpadea; {Asiganamosel método parpadea} FTimer.Interval:=FVelocidad;
{Asignamos el intervalo del timer = frecuenciaparpadeo} end;
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
41/138
Ejemplo de Código fuente C++
/* Programa que calcula la letra del DNI (español) a partir del número */
#include main() {
int a, b=0, l;
char cifra;
char letras[]="TRWAGMYFPDXBNJZSQVHLCKE\0";printf("Introduzca n§ DNI(8 car) ");
for (a=0; a
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
42/138
EJEMPLO CÓDIGO FUENTE C++
Ejemplo: Hola mundo
/* Inclusión de archivos */
#include /* Función principal */
int main (int argc,char **argv)
{ /* Impresión por pantalla y salida delprograma*/
printf("Hola mundo\n"); return 0; }
Ó
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
43/138
EJEMPLO CÓDIGO FUENTECOBOL
DATA DIVISION.WORKING-STORAGE SECTION.1 OK PIC X.PROCEDURE DIVISION.
PARRAFO.DISPLAY "Esta es una prueba en RM-COBOL"
LINE 1 POSITION 1 ERASE"Oprime una tecla" LINE 23 POSITION
40 BLINK ACCEPT OKSTOP RUN.
Ó
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
44/138
EJEMPLO DE CÓDIGO FUENTEHTML
Primer ejemplo en HTML Mi colección de discosHorslips
Este grupo irlandés nació en 1970, y en sus diez añosde existencia, hasta su separación en 1980, recorrieron Europa y Américatocando en directo. Aunque su música evolucionó sensiblemente en esetiempo, siempre se caracterizó por imprimir de manera única las raíces celtas yel sonido del rock. Horslips, sin haber llegado a ser un fenómeno de masas, haescrito algunas de las páginas más brillantes de la música irlandesa
reciente.
"Happy To Meet, Sorry To Part", 1972 "TheTáin", 1973 Etcétera, no los pongo todos. GwendalGwendal es probablemente uno de los grupos demúsica celta más conocidos en España. No en vano, su único disco en directofue grabado en España. Este grupo bretón, da a los temas tradicionalesirlandeses un estilo único, mezclando delicadeza, virtuosismo y energía demanera magistral.
"Gwendal", 1974 "Gwendal 2",
1975 Etcétera, tampoco los pongo todos
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
45/138
EJEMPLO CÓDIGO FUENTE CSS
.centrado{text-align:center;}
Texto centrado
EJEMPLO CÓDIGO FUENTE
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
46/138
EJEMPLO CÓDIGO FUENTEFORTRAN
character[(len=)][,][::][=]
real(kind=4)::x=1.e0real(kind=8)::y=-2.d-5real(kind=16)::qx=-3.q-100
integer, parameter::np=8real(kind=np)::r=1.e-10_np
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
47/138
Código objeto
• En programación, se llama código objeto alcódigo que resulta de la compilación del códigofuente.
• Consiste en lenguaje máquina o bytecode y sedistribuye en varios archivos que correspondena cada código fuente compilado. Para obtenerun programa ejecutable se han de enlazar todos
los archivos de código objeto con un programallamado enlazador (linker ).
http://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Compilaci%C3%B3nhttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quinahttp://es.wikipedia.org/wiki/Bytecodehttp://es.wikipedia.org/wiki/Ejecutablehttp://es.wikipedia.org/wiki/Enlazadorhttp://es.wikipedia.org/wiki/Enlazadorhttp://es.wikipedia.org/wiki/Ejecutablehttp://es.wikipedia.org/wiki/Bytecodehttp://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quinahttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Compilaci%C3%B3nhttp://es.wikipedia.org/wiki/Programaci%C3%B3n
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
48/138
Código Objeto
• En programación, cuando se desarrolla unprograma, en la fase de codificación elcompilador traducirá el codigo fuente a
codigo máquina, también llamado códigoobjeto, siempre y cuando, el propiocompilador no detecte ningún error en
dicho código fuente.
http://www.carlospes.com/minidiccionario/programa.phphttp://www.carlospes.com/minidiccionario/codificacion.phphttp://www.carlospes.com/minidiccionario/codigo_fuente.phphttp://www.carlospes.com/minidiccionario/codigo_maquina.phphttp://www.carlospes.com/minidiccionario/codigo_maquina.phphttp://www.carlospes.com/minidiccionario/codigo_fuente.phphttp://www.carlospes.com/minidiccionario/codificacion.phphttp://www.carlospes.com/minidiccionario/programa.php
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
49/138
Código objeto
• Término genérico para nombrar lasinstrucciones del programa, utilizadas en dossentidos generales. El primero se refiere al
código fuente, legible a simple vista, que son lasinstrucciones escritas por el programador en unlenguaje de programación. El segundo se refiereal código máquina ejecutable, que son las
instrucciones convertidas de código fuente ainstrucciones que el ordenador o computadorapuede comprender.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
50/138
Código Objeto
• En informática, código generado por uncompilador o un ensamblador, traducido apartir del código fuente de un programa.
Casi siempre este término se refiere alcódigo máquina que puede ejecutarsedirectamente en la unidad central deproceso (CPU) del sistema, pero también
puede ser código fuente de lenguajeensamblador o una variante de códigomáquina.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
51/138
Código Ejecutable
• Código ejecutable: resultado de enlazaruno o varios fragmentos de código objeto.Constituye un archivo binario con un
formato tal que el sistema operativo escapaz de cargarlo en la memoria de unacomputadora, y proceder a su ejecución.El código ejecutable es directamente
inteligible por el procesador.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
52/138
Código Ejecutable
• Código (programa) ejecutable: listo paraser ejecutado en el computador.
• Puede contener errores lógicos(programa no bien diseñado).
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
53/138
Código Ejecutable
• Código ejecutable corresponde a las unidades deprogramas, donde el ordenador puede realizar lasinstrucciones compiladas mediante el compilador y elenlazador de librerías.
• Generalmente se confunde con el código objeto, ya que
al leer su estructura se comprende como símbolos. Peroen realidad, este código se encuentra empaquetado ylisto para ser ejecutado en cualquier computadora.Generalmente vienen con la extensión EXE o COM, silos han de ejecutar computadoras con Sistema
Operativo de Windows o con bits de marca que traeLinux para ser ejecutable.• El beneficio que esto trae es que al tener el código
ejecutable, podemos saber que la compilación fuerealizada correctamente y que el programa, si no tieneerrores de manejo, puede funcionar correctamente, yaque esta libre de errores de variables, signos y demás.
http://www.tecnologia.us/http://www.tecnologia.us/
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
54/138
Máquinas Virtuales
• En informática una máquina virtual es unsoftware que emula a una computadora ypuede ejecutar programas como si fuese
una computadora real. Este software enun principio fue definido como "unduplicado eficiente y aislado de unamáquina física". La acepción del término
actualmente incluye a máquinas virtualesque no tienen ninguna equivalenciadirecta con ningún hardware real.
http://es.wikipedia.org/wiki/Inform%C3%A1ticahttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Inform%C3%A1tica
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
55/138
Máquina Virtual
• Una máquina virtual es simplemente unacomputadora abstracta, una computadorao máquina emulada a partir de software.
Una idea para nada nueva y cuyo términoacuño IBM en 1959.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
56/138
Máquinas Virtuales
• Una máquina virtual es como una capa intermedia entreel hardware de la computadora y algún software y puedeencargarse de funciones como traducir instrucciones osimular el funcionamiento de una computadora concreta.
• Hay desde las más complejas que emulan unacomputadora en su totalidad (Incluyendo tarjetas devideo, discos duros, etc.), hasta otras más sencillas yespecializadas que brindan solo una capa de
abstracción entre plataformas de hardware y softwaremuy concretas.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
57/138
Máquinas Virtuales
• Una característica esencial de lasmáquinas virtuales es que los procesosque ejecutan están limitados por los
recursos y abstraccionesproporcionados por ellas. Estosprocesos no pueden escaparse de esta
"computadora virtual".
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
58/138
Máquinas Virtuales
• Uno de los usos domésticos más extendidos delas máquinas virtuales es ejecutar sistemasoperativos para "probarlos". De esta forma
podemos ejecutar un sistema operativo quequeramos probar (GNU/Linux, por ejemplo)desde nuestro sistema operativo habitual (MacOS X por ejemplo) sin necesidad de instalarlo
directamente en nuestra computadora y sinmiedo a que se desconfigure el sistemaoperativo primario.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
59/138
Máquinas Virtuales
Una MV se puede definir sencillamente como unacapa de abstracción que separa el funcionamientode un ordenador de su hardware. Además, las MVse dividen en abstractas o teóricas, como sería lamáquina de Turing (el primer ejemplo de una MV)
y modelos como el cálculo de π o lambda, yconcretas o prácticas (a las que se quierenormalmente se hace referencia al hablar de MV).En esta sección se tratarán las MV concretas que,como se verá, son capas de software que juegan
un papel relevante tanto en el funcionamiento delos lenguajes compilados como interpretados.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
60/138
Máquinas Virtuales
Las MV se construyeron para simplificar elproceso del control del hardware de un ordenadorporque extienden y enmascaran la funcionalidaddel hardware a través de procedimientos ydatos abstractos. Se pueden identificar dos tiposde MV concretas: las que juegan un papel en lapreparación de un programa para su ejecución
(tiempo de compilación) y las que permiten laejecución de dicho programa.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
61/138
Máquinas Virtuales
Las MV se distinguen entre sí según trescriterios:• La concepción de las MV que tiene el
desarrollador basada en la definición dellenguaje.• Las facilidades disponibles en el hardware
del ordenador.• Las decisiones de implementación
tomadas por los desarrolladores.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
62/138
Clasificación Máquinas Virtuales
Se clasifican en dos grandes categoríassegún su funcionalidad y su grado deequivalencia a una verdadera máquina.
• Máquinas virtuales de sistema (eninglés System Virtual Machine)
• Máquinas virtuales de proceso (en
inglés Process Virtual Machine)
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
63/138
Máquinas Virtuales de Sistema
• Las máquinas virtuales de sistema, tambiénllamadas máquinas virtuales de hardware,permiten a la máquina física subyacentemultiplicarse entre varias máquinas virtuales,
cada una ejecutando su propio sistemaoperativo. A la capa de software que permite lavirtualización se la llama monitor de máquinavirtual o "hypervisor". Un monitor de máquina
virtual puede ejecutarse o bien directamentesobre el hardware o bien sobre un sistemaoperativo ("host operating system").
Apliación de las máquinas virtuales
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
64/138
Apliación de las máquinas virtualesde sistema
• Varios sistemas operativos distintos pueden coexistir sobre la mismacomputadora, en sólido aislamiento el uno del otro, por ejemplo para probarun sistema operativo nuevo sin necesidad de instalarlo directamente.
• La máquina virtual puede proporcionar una arquitectura de instrucciones (ISA) que sea algo distinta de la verdadera máquina. Es decir, podemossimular hardware.
• Varias máquinas virtuales (cada una con su propio sistema operativollamado sistema operativo «invitado» o «guest»), pueden ser utilizadaspara consolidar servidores. Esto permite que servicios que normalmentese tengan que ejecutar en computadoras distintas para evitar interferencias,se puedan ejecutar en la misma máquina de manera completamenteaislada y compartiendo los recursos de una única computadora. Laconsolidación de servidores a menudo contribuye a reducir el coste total delas instalaciones necesarias para mantener los servicios, dado que
permiten ahorrar en hardware.• La virtualización es una excelente opción hoy día, ya que las máquinas
actuales (Laptops, desktops, servidores) en la mayoría de los casos estánsiendo "sub-utilizados" (gran capacidad de disco duro, memoria RAM, etc.),llegando a un uso de entre 30% a 60% de su capacidad. Al virtualizar, lanecesidad de nuevas máquinas en una ya existente permite un ahorroconsiderable de los costes asociados (energía, mantenimiento, espacio,
etc).
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
65/138
Máquinas Virtuales de Proceso• Una máquina virtual de proceso, a veces llamada
"máquina virtual de aplicación", se ejecuta como unproceso normal dentro de un sistema operativo ysoporta un solo proceso. La máquina se iniciaautomáticamente cuando se lanza el proceso que sedesea ejecutar y se detiene para cuando éste finaliza.Su objetivo es el de proporcionar un entorno deejecución independiente de la plataforma dehardware y del sistema operativo, que oculte losdetalles de la plataforma subyacente y permita que unprograma se ejecute siempre de la misma forma sobrecualquier plataforma.
• El ejemplo más conocido actualmente de este tipo demáquina virtual es la máquina virtual de Java. Otramáquina virtual muy conocida es la del entorno .Net deMicrosoft que se llama "Common Language Runtime".
Inconvenientes de las máquinas
http://es.wikipedia.org/wiki/M%C3%A1quina_virtual_de_Javahttp://es.wikipedia.org/wiki/.Nethttp://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/Common_Language_Runtimehttp://es.wikipedia.org/wiki/Common_Language_Runtimehttp://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/.Nethttp://es.wikipedia.org/wiki/M%C3%A1quina_virtual_de_Java
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
66/138
Inconvenientes de las máquinasvirtuales
• Uno de los inconvenientes de las máquinasvirtuales es que agregan gran complejidad alsistema en tiempo de ejecución. Esto tienecomo efecto la ralentización del sistema, es
decir, el programa no alcanzará la mismavelocidad de ejecución que si se instalasedirectamente en el sistema operativo "anfitrión"(host) o directamente sobre la plataforma de
hardware. Sin embargo, a menudo la flexibilidadque ofrecen compensa esta pérdida deeficiencia.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
67/138
Utilidad de las máquinas virtuales
• Como ves, con las máquinas virtuales podemostener varios sistemas operativos sin necesidadde crear particiones o tener más discos duros,esto nos permitirá poder tener sistemas
operativos para pruebas.Por ejemplo, que sale una versión beta y noqueremos instalarla en nuestro sistema operativode trabajo, ya que las betas son eso, "pruebas" ypuede que nos deje el sistema operativo inestable,algo que no querremos con nuestro equipo detrabajo.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
68/138
Utilidad Máquinas Virtuales
• De esta forma siempre tendremos laoportunidad de probar esos programasbeta sin que afecte a las cosas que
tenemos instaladas ni que nos obligue aformatear y volver a instalar de nuevo todolo que tenemos.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
69/138
Ejemplos de Máquinas Virtuales
• VMWare.
• VirtualPC.
• VirtualBox.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
70/138
1.4.-TIPOS DE LENGUAJESDE PROGRAMACIÓN.
CLASIFICACIÓN.
TIPOS DE LENGUAJE DE
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
71/138
TIPOS DE LENGUAJE DEPROGRAMACIÓN
Un lenguaje de programación es un idioma artificial diseñado para
expresar operaciones que pueden ser llevadas a cabo por máquinas
como las computadoras. Pueden usarse para crear programas que
controlen el comportamiento físico y lógico de una máquina, paraexpresar algoritmos con precisión, o como modo de comunicación
humana.
Está formado por un conjunto de símbolos y reglas sintácticas y
semánticas que definen su estructura y el significado de sus elementos
y expresiones. Al proceso por el cual se escribe, se prueba, se depura,
se compila y se mantiene el código fuente de un programa informático
se le llama programación.
http://es.wikipedia.org/wiki/Lengua_construidahttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Sintaxishttp://es.wikipedia.org/wiki/Sem%C3%A1nticahttp://es.wikipedia.org/wiki/Beta_testerhttp://es.wikipedia.org/wiki/Depuradorhttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Depuradorhttp://es.wikipedia.org/wiki/Beta_testerhttp://es.wikipedia.org/wiki/Sem%C3%A1nticahttp://es.wikipedia.org/wiki/Sintaxishttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Lengua_construida
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
72/138
• Un lenguaje de programación" es un lenguaje diseñado para
describir el conjunto de acciones consecutivas que un equipo debe
ejecutar. Por lo tanto, un lenguaje de programación es un modopráctico para que los seres humanos puedan dar instrucciones a un
equipo.
• Por otro lado, el término "lenguaje natural" define un medio de
comunicación compartido por un grupo de personas (por ejemplo:
inglés o francés).
• Los lenguajes que los equipos usan para comunicarse entre ellos
no tienen nada que ver con los lenguajes de programación; se losconoce como protocolos de comunicación. Se trata de dos
conceptos totalmente diferentes. Un lenguaje de programación es
muy estricto:
TIPOS DE LENGUAJES DE
http://es.kioskea.net/contents/internet/protocol.php3http://es.kioskea.net/contents/internet/protocol.php3
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
73/138
TIPOS DE LENGUAJES DEPROGRAMACIÓN
• El ordenador sólo entiende un lenguajeconocido como código binario o códigomáquina, consistente en ceros y unos. Es
decir, sólo utiliza 0 y 1 para codificarcualquier acción.
TIPOS DE LENGUAJE DE
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
74/138
TIPOS DE LENGUAJE DEPROGRAMACIÓN
Existen tres tipos de lenguajes :
*Los lenguajes de bajo nivel.
*Los lenguajes de medio nivel.
*Los lenguajes de alto nivel.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
75/138
Lenguajes de bajo nivel
• Son lenguajes totalmente dependientes de lamáquina, es decir que el programa que serealiza con este tipo de lenguajes no se puedenmigrar o utilizar en otras maquinas.
Al estar prácticamente diseñados a medida delhardware, aprovechan al máximo las
características del mismo.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
76/138
• A los lenguajes de bajo nivel también seles conoce como lenguajes de primerageneración.
• Sólo hay un lenguaje de primerageneración: el lenguaje máquina.
• El lenguaje máquina ordena a la máquina las
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
77/138
• El lenguaje máquina ordena a la máquina las
operaciones fundamentales para su funcionamiento.
Consiste en la combinación de 0's y 1's para formar
las ordenes entendibles por el hardware de la
maquina.Este lenguaje es mucho más rápido que los
lenguajes de medio o alto nivel.
La desventaja es que son bastantes difíciles de
manejar y usar, además de tener códigos fuente
enormes donde encontrar un fallo es casi imposible.
G ÁQ
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
78/138
LENGUAJE MÁQUINA
• El lenguaje máquina, por lo tanto, no escomprensible para los seres humanos,razón por la cual se han desarrollado
lenguajes intermediarios comprensiblespara el hombre. El código escrito en estoslenguajes intermediarios se transforma en
código máquina para que el procesadorpueda procesarlo.
LENGUAJE ENSAMBLADOR
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
79/138
LENGUAJE ENSAMBLADOR
• El lenguaje ensamblador es un derivado del lenguaje
maquina y esta formado por abreviaturas de letras y
números llamadas mnemotécnicos.• Con la aparición de este lenguaje se crearon los
programas traductores para poder pasar los programas
escritos en lenguaje ensamblador a lenguaje máquina.
S t j t l ódi
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
80/138
• Su ventaja con respecto al código
máquina es que los códigos fuentes eran
más cortos y los programas creados
ocupaban menos memoria.
• Las desventajas de este lenguaje siguensiendo prácticamente las mismas que las
del lenguaje máquina, añadiendo la
dificultad de tener que aprender un nuevo
lenguaje difícil de probar y mantener.
• El ensamblador fue el primer lenguaje de programación utilizado
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
81/138
El ensamblador fue el primer lenguaje de programación utilizado.
Es muy similar al lenguaje máquina, pero los desarrolladores
pueden comprenderlo. No obstante, este lenguaje se parece tanto
al lenguaje máquina que depende estrictamente del tipo de
procesador utilizado (cada tipo de procesador puede tener su propio
lenguaje máquina). Así, un programa desarrollado para un equipo
no puede ser portado a otro tipo de equipo.
• El término "portabilidad" describe la capacidad de usar un
programa de software en diferentes tipos de equipos. Para poder
utilizar un programa de software escrito en un código ensamblador
en otro tipo de equipo, ¡a veces será necesario volver a escribir todo
el programa!
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
82/138
• El lenguaje ensambladores un lenguaje de medionivel.
• Los lenguajes de medionivel son lenguajes desegunda generación.
LENGUAJES DE ALTO NIVEL
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
83/138
LENGUAJES DE ALTO NIVEL
• Son aquellos que se encuentran más cercanos allenguaje natural que al lenguaje máquina.
Están dirigidos a solucionar problemas mediante el uso
de Estructuras Dinámicas de Datos, algo muyutilizado en todos los lenguajes de programación. Son
estructuras que pueden cambiar de tamaño durante la
ejecución del programa. Nos permiten crear estructurasde datos que se adapten a las necesidades reales de un
programa.
• Se tratan de lenguajes independientes de la arquitectura del
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
84/138
ordenador. Por lo que, en principio, un programa escrito en un
lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin
ningún tipo de problema.
Estos lenguajes permiten al programador olvidarse por completo del
funcionamiento interno de la maquina/s para la que están
diseñando el programa. Tan solo necesitan un traductor que
entiendan el código fuente como las características de la maquina.
Suelen usar tipos de datos para la programación y hay lenguajes de
propósito general (cualquier tipo de aplicación) y de propósito
especifico (como FORTRAN para trabajos científicos).
EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
85/138
Se puede dividir en 5 etapas o generaciones.
• Primera generación: Cadenas interminables de secuencias de 1s y
0s que conforman operaciones que la máquina puede entender sin
interpretación alguna. El lenguaje maquina.
• Segunda generación: los lenguajes de segunda generación tienen
definidas unas instrucciones para realizar operaciones sencillas con
datos simples o posiciones de memoria. El lenguaje clave de la
segunda generación es sin duda el lenguaje ensamblador .
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
86/138
Tercera generación: la gran mayoría de los lenguajes
de programación que se utilizan hoy en día pertenecen a
este nivel de abstracción, en su mayoría, los lenguajes
del paradigma de programación orientada a objetos, son
lenguajes de propósito general que permiten un alto
nivel de abstracción y una forma de programar mucho
más entendible e intuitiva, donde algunas instrucciones
parecen ser una traducción directa del lenguaje humano.
Ejemplos: C, Pascal, Cobol, Java, C++,…
C arta generación l j d ó it
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
87/138
Cuarta generación. son lenguajes creados con un propósito
específico, al ser un lenguaje tan específico permite reducir la
cantidad de líneas de código que tendríamos que hacer conotros lenguajes de tercera generación mediante
procedimientos específicos. Por ejemplo, si tuviésemos que
resolver una ecuación en un lenguaje de tercera generación,
tendríamos que crear diversos y complejos métodos para
poder resolverla, mientras que un lenguaje de cuarta
generación dedicado a este tipo de problemas ya tiene esas
rutinas incluidas en el propio lenguaje, con lo que solotendríamos que invocar la instrucción que realiza la operación
que necesitamos. Ejemplos: PL/SQL, Natural, …
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
88/138
Quinta generación: también llamados lenguajes
naturales, pretenden abstraer más aún el lenguaje
utilizando un lenguaje natural con una base de
conocimientos que produce un sistema basado en el
conocimiento. Pueden establecer el problema que hay
que resolver y las premisas y condiciones que hay que
reunir para que la máquina lo resuelva. Este tipo de
lenguajes los podemos encontrar frecuentemente en
inteligencia artificial y lógica. Ejemplo: LISP.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
89/138
1.5.-CARACTERÍSTICAS DELOS LENGUAJES MÁS
DIFUNDIDOS.
C
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
90/138
C
• Es un lenguaje de propósito general, de alto nivel, (aunque controla
perfectamente las operaciones de bajo nivel), y estructurado.
• Es altamente portable de unos sistemas a otros, siendo ese el motivo
de su creación e implantación. Esta se hizo fundamentalmente para
desarrollar el sistema operativo UNIX.• Se caracteriza por su gran optimización entre el programa fuente y el
compilado, lo que le proporciona una gran rapidez de ejecución, es decir
hay una gran semejanza entre el código en bajo nivel que genera una
rutina en C, y el código que podría escribirse en lenguaje máquina.
• Es Case Sensitive (distingue las mayúsculas de las minúsculas). Esto
quiere decir que considera como diferentes la variables hola, HOLA y
Hola.
C++
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
91/138
C
• Fue creado como un puente entre el lenguaje C y la programación
orientada a objetos.
• Se puede usar en combinación con C. Cualquier sentencia en C es correcta
en C++.
• Es un lenguaje de propósito general.• Es un lenguaje de alto nivel orientado a objetos.
• Reutilización del código en forma de librerías de usuario.
• Como C, genera programas rápidos.
• El código es transportable, es decir, un programa ANSI en C o C++ podrá
ejecutarse en cualquier máquina y bajo cualquier sistema operativo.
• Como C, proporciona un acceso a bajo nivel de hardware sólo igualado por
el ensamblador.
JAVA
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
92/138
JAVA
• Es un lenguaje de programación orientado a objetos.
• De propósito general.
• El uso de la máquina virtual JVM (Java Virtual Machine) garantiza
la independencia de la plataforma en Java. Si disponemos de una
máquina virtual para nuestra plataforma, podremos ejecutar elmismo programa escrito en Java sin necesidad de volverlo a
compilar.
• En el proceso de compilación de un programa en Java, se genera un
código intermedio, llamado bytecode, que la máquina virtual
interpreta y traduce a llamadas nativas del sistema sobre el que se
ejecuta la máquina virtual.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
93/138
• Seguridad desde el punto de vista del programador:
a. Comprobación estricta de tipos.
b. Gestión de excepciones.
c. No existen punteros.
d. Recolector de basura.
• Seguridad desde el punto de vista del usuario de aplicaciones:
a. Los programas se ejecutan sobre una máquina virtual.
• Soporta programación concurrente de modo nativo.
• Los tipos de datos están estandarizados.
• Sólo se admite herencia simple.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
94/138
1.6.- Procesos de obtención decódigo ejecutable a partir de
código fuente: compilación,linkado, herramientas
implicadas.
U té it l l j d
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
95/138
• Un programa, esté escrito en el lenguaje de
programación en el que esté, necesita ser traducido
para ser ejecutado.
• Los distintos tipos de código por los que pasará
nuestro programa son:
a. Código fuente
b. Código objeto
c. Código ejecutable
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
96/138
• Código fuente: el código fuente de un programa informático es un
conjunto de instrucciones escritas en un lenguaje de programación
determinado. Es decir, es el código en el que nosotros escribimosnuestro programa.
• Código objeto: el código objeto es el código resultante de compilar el
código fuente. Si se trata de un lenguaje de programación compilado, el
código objeto será código máquina.
• Código ejecutable: el código ejecutable es el resultado obtenido de
enlazar nuestro código objeto con las librerías. Este código ya es
nuestro programa ejecutable, programa que se ejecutará directamente
en nuestro sistema o sobre una máquina virtual.
COMPILACIÓN
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
97/138
Aunque el proceso de obtener nuestro código ejecutable
pase tanto por un compilador como por un enlazador, se
suele llamar al proceso completo “compilación”.
Todo este proceso se lleva a cabo mediante dos
programas: el compilador y el enlazador . Mientras que el
enlazador solamente une el código objeto con las
librerías, el trabajo del compilador es mucho más
completo.
COMPILACIÓN
Fases de la compilación:
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
98/138
• Análisis lexicográfico: se leen de manera secuencial todos los
caracteres de nuestro código fuente, buscando palabras
reservadas, operaciones, caracteres de puntuación y
agrupándolos todos en cadenas de caracteres que se denominan
lexemas.
• Análisis sintáctico-semántico: agrupa todos los componentes
léxicos estudiados en el análisis anterior en forma de frases
gramaticales. Con el resultado del proceso del análisis sintáctico,
se revisa la coherencia de las frases gramaticales, si su
“significado” es correcto, si los tipos de datos son correctos,.., y
así consecutivamente con todas las reglas semánticas de
nuestro lenguaje.
• Generación de código intermedio: una vez finalizado el análisis se genera
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
99/138
• Generación de código intermedio: una vez finalizado el análisis, se genera
una representación intermedia a modo de pseudoensamblador con el
objetivo de facilitar la tarea de traducir al código objeto.• Optimización de código: revisa el código pseudoensamblador generado en
el paso anterior optimizándolo para que el código resultante sea más fácil y
rápido de interpretar por la máquina.
• Generación de código: genera el código objeto de nuestro programa en un
código de lenguaje máquina relocalizable, con diversas posiciones de
memoria sin establecer, ya que no sabemos en qué parte de la memoria
volátil se va a ejecutar nuestro programa.• Enlazador de librerías: como se ha comentado anteriormente, se enlaza
nuestro código objeto con las librerías necesarias, produciendo en último
término nuestro código final o código ejecutable.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
100/138
1.7.- Aplicaciones informáticas. Definición. Clasificación.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
101/138
Concepto de aplicación
Una aplicación es un tipo de programa informático diseñado
como herramienta para permitir a un usuario realizar tareas. Estolo diferencia principalmente de otros tipos de programas como los
sistemas operativos (que hacen funcionar al ordenador) y las
utilidades (que realizan tareas de mantenimiento o de usogeneral).
Ejemplos de programas de aplicación pueden ser: programas
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
102/138
de comunicación de datos, multimedia, presentaciones,
diseño gráfico, cálculo, finanzas, correo electrónico,navegador web, compresión de archivos, presupuestos de
obras, gestión de empresas, etc.
Ciertas aplicaciones desarrolladas «a medida» suelen ofrecer
una gran potencia ya que están exclusivamente diseñadas para
resolver un problema específico. Otros, llamados paquetes
integrados de software, ofrecen menos potencia pero a cambio
incluyen varias aplicaciones, como un programa procesador de
textos, de hoja de cálculo y de base de datos.
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
103/138
TIPOS DE APLICACIONES:
•Aplicaciones verticales: de finalidad específica para
un tipo muy delimitado de usuarios (médicos,
abogados, arquitectos…),…Ejemplo: AUTOCAD.
•Aplicaciones horizontales: de utilidad para una
amplísima gama de usuarios de cualquier tipo. Ejemplo:
paquete Office.
1.8.- Fases del desarrollo de una
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
104/138
aplicación, pruebas, documentación,explotación y mantenimiento entre otros.
CONCEPTOS PREVIOS
• Sistema: Es un conjunto de elementos que interaccionan entre
sí, orientados a la consecución de un objetivo común. Estásituado en un entorno o ambiente con el que interactúa, recibe
entradas y produce salidas. Un sistema puede formar parte de
otro más general, que sería su entorno, y/o estar formado por
otros sistemas, que en este caso lo tendrían a él como entornocomún, denominándose subsistemas. Ejemplos: una escuela, unbanco, un hospital,…
• Entidades: Las entidades o componentes de un
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
105/138
Entidades: Las entidades o componentes de unsistema son aquellas unidades que, por suscaracterísticas y relaciones, determinan la estructura y
la conducta del sistema. Es aquel objeto, real oabstracto, acerca del cual se desea almacenarinformación. Pueden ser tangibles como unamaquinaria, una persona, un edificio o intangibles como
los costos, la rentabilidad, etc.
• Atributos: Características asociadas a las entidades.Por ejemplo, a la entidad persona se le puede asociar elatributo edad.
• Relaciones: Es una asociación o correspondenciaexistente entre una o varias entidades. Por ejemplo: laentidad alumno establece una relación con la entidad
asignatura que se llama matrícula
• Medio ambiente: El medio ambiente es el conjunto de entidades(sistemas) donde se encuentra inmerso el sistema objeto de estudio
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
106/138
(sistemas) donde se encuentra inmerso el sistema objeto de estudio .• Contexto: El contexto es la parte del medio ambiente que se relaciona e
interactúa directamente con el sistema en cuestión.
Ejemplo: un sistema de COMERCIALIZACION esta inserto en un contextode MERCADO donde interactúan otros sistemas como la COMPETENCIA yel CONSUMIDOR. Pero este MERCADO esta inserto en la ECONOMIANACIONAL. Para el sistema de COMERCIALIZACION la ECONOMIA
NACIONAL es el medio ambiente donde se halla inmerso el contextollamado MERCADO.
• Entradas y salidas: El sistema interactúa con el
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
107/138
ycontexto, de esta interacción se producen las entradasdel contexto (energía, materias primas, dinero,información, etc.) y las salidas (productos, etc.) haciaéste.
• Retroalimentación: Existen, en los sistemas,determinados controles que se realizan sobre unaporción de las salidas del sistema, dichos controlesgeneran entradas que producen acciones sobre el
mismo sistema.
• Objetivos: Todo sistema para mantenerse enequilibrio debe plantearse metas u objetivos, pero
estos no deben ser vistos como al o estático a ue
CLASIFICACIÓN DE SISTEMAS
a) Por su naturaleza:
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
108/138
a) Por su naturaleza:• Naturales: sistemas creados en los que el hombre no
interviene en su creación.• Artificiales: sistemas creados por el hombre.
b) Por su relación con el Medio Ambiente:• Abierto: sistemas que interactúan con el contexto,
intercambiando elementos, sin esta interacción no podríanexistir.
• Cerrado: sistemas aislados, no interaccionan con elcontexto.
c) Por su dependencia del Medio Ambiente:• Adaptable(dinámico): sistemas que ante un cambio en el
contexto reaccionan en forma adecuada, teniendo encuenta la finalidad para la que fueron creados.
•
• Proceso: Es el componente que transforma el estado original de las
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
109/138
Proceso: Es el componente que transforma el estado original de las
entradas en salidas. La transformación es una serie de operaciones,
reglas, procedimientos, que responden a una lógica y orden.
• Sistemas de información: tienen como misión asegurar que la
información necesaria fluya de unos subsistemas a otros dentro del
sistema. Los elementos de un sistema de información son muy variados;pueden agruparse en recursos físicos, recursos humanos,
documentación y una serie de normas, reglas y procedimientos que
determinan los flujos de información tanto internos como hacia y desde
el exterior, así como el uso y administración de los recursos.
• Sistemas de Información Automatizado: Un sistema de información
automatizado en forma parcial o total, utiliza ordenadores para
almacenar los datos de una organización y ponerlos a disposición del
Un ejemplo sería el de la figura: Los datos de las notas de pedidos
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
110/138
Un ejemplo sería el de la figura: Los datos de las notas de pedidos
(datos o transacciones iniciales) son cargados por una persona, luego
los programas generan una serie de listados que sirven para otras
tareas.
• Requerimientos: Este término se utiliza cuando un usuario tiene una
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
111/138
necesidad, lo cual generalmente surge de un problema. En general, los
problemas que originan requerimientos son:
El sistema de información es manual y maneja un gran volumen de
transacciones diarias, lo que dificulta su acceso, clasificación, consulta,
control y proceso.
El sistema de información esta parcialmente o totalmente automatizado pero
debe modificarse porque han cambiado los requerimientos.
El sistema de información esta parcialmente o totalmente automatizado y es
necesario agregarle más funciones.
El término Ingeniería de Software se utiliza para referirse a un método
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
112/138
g p
disciplinario de desarrollo de programas de computadoras a través de
todas las actividades del ciclo de vida de un software.
La tendencia del software es crecer en tamaño, complejidad y cambiar,
por ello el desarrollo debe apoyarse en un método disciplinario de
diseño, producción y mantenimiento de programas de computadoras
que se desarrollan bajo estimaciones de tiempo y de costo, utilizando
herramientas de ayuda a la gestión del tamaño y complejidad de los
productos de software resultantes.
La Ingeniería de Software se compone de tres elementos:
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
113/138
1. Métodos: Los métodos indican “como” construir técnicamente
el software. Los métodos abarcan un amplio espectro de
tareas que incluyen: planificación y estimación de proyectos,
análisis de los requisitos, diseño de datos y programas,
codificación, prueba, instalación y mantenimiento.
2. Herramientas: Las herramientas suministran un soporte
automático o semiautomático para los métodos. Algunas de
las herramientas disponibles por sus características reciben el
nombre de CASE (Ingeniería de Software Asistida por
3. Procedimientos: Los procedimientos juntan los métodos con las
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
114/138
3. Procedimientos: Los procedimientos juntan los métodos con las
herramientas y facilita un desarrollo racional y oportuno del
software de computadoras. Los procedimientos definen la secuencia
en la que se aplican los métodos, las entregas (documentos
informes, formas, etc.) que se requieren, los controles que ayudan a
asegurar la calidad y coordinar los cambios y las directrices que
ayudan a los gestores a evaluar el progreso.
La Ingeniería de Software esta compuesta por una serie de pasos que
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
115/138
abarcan los métodos, las herramientas y los procedimientos antes
mencionados. Estos pasos se denominan frecuentemente paradigmas
de la Ingeniería de Software.
La elección de un paradigma para la Ingeniería de Software se lleva a
cabo de acuerdo a la naturaleza del proyecto y de la aplicación, los
métodos y herramientas a usar y los controles y entregas requeridos.
Se puede hacer una analogía entre paradigma y metodología, hay
varios paradigmas o metodologías. De ellos, vamos a ver el modelo
en cascada.
MODELO EN CASCADA
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
116/138
ESTUDIO DE FACTIBILIDAD
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
117/138
Consiste en una visión general, de alto nivel, de todo el
proyecto, destinado a contestar a un númerodeterminado de preguntas:
• ¿Cuál es el problema?
• ¿Existe una solución viable para el problema?
• ¿Cuánto tiempo llevará?• ¿Cuál es el coste?
• El estudio de factibilidad debe ser relativamente corto
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
118/138
• El estudio de factibilidad debe ser relativamente corto,
pues la tarea no consiste en resolver el problema, sino
en obtener una idea de su complejidad y tamaño.
• El estudio de factibilidad comienza con la aclaración de
la definición del problema. Se definen el alcance y los
objetivos iniciales y se identifican las restricciones y
limitaciones del sistema.
Se preparan varios alternativas de solución. Para cada
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
119/138
una de ellas se analiza:
• Factibilidad Técnica: ¿Puede el software
implementarse empleando la tecnología actual ydisponible?
• Factibilidad Economía: ¿Superan los beneficios los
costes?
• Factibilidad Operativa: ¿Puede el software
desarrollarse y ejecutarse en esta organización? Se descartan las alternativas que no cumplen con las tres factibilidades y se prepara un
informe al usuario - cliente, que tiene la siguiente forma:
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
120/138
1. Definición del problema.
2. Alcance.
3. Objetivos.
4. Restricciones.
5. Limitaciones.6. Alternativas de solución. Para cada una:
6.1. Factibilidad Económica (Análisis costo/beneficios)
6.2. Factibilidad Operativa
6.3. Factibilidad Técnica
6.4. Duración estimada del proyecto
6.5. Inversión estimada del proyecto
ANÁLISIS
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
121/138
• La fase de análisis define los requisitos del software que hay
que desarrollar.
Inicialmente, esta etapa comienza con una entrevista al cliente,
que establecerá lo que quiere o lo que cree que necesita, locual nos dará una buena idea global de lo que necesita, pero no
necesariamente del todo acertada. Aunque el cliente crea que
sabe lo que el softwaretiene que hacer, es necesaria una buena habilidad y experiencia
para reconocer requisitos incompletos, ambiguos,
contradictorios o incluso necesarios
En esta fase el analista se familiariza con la operación del sistema,
para ello utiliza una serie de técnicas y herramientas. En esta fase se
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
122/138
p y
obtiene un modelo del sistema existente, que representa lo que hace
y cómo lo hace. Este modelo describe las funciones del sistema, los
datos, el control, etc.
Para ello se crea un informe ERS (Especificación de Requisitos del
Sistema) acompañado del diagrama de clases o de Entidad/Relación.
Ejemplo de diagrama de clases
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
123/138
Ejemplo de diagrama E/R (Entidad/Relación)
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
124/138
DISEÑO
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
125/138
• En esta etapa se pretende determinar el funcionamiento
de una forma global y general, sin entrar en detalles. Unode los objetivos principales es establecer las
consideraciones de los recursos del sistema, tanto físicos
como lógicos.
• Se define por tanto el entorno que requerirá el sistema,
aunque también se puede establecer en sentido contrario,
es decir, diseñar el sistema en función de los recursos de
los que se dispone.
• En la fase de diseño se crearán los diagramas de casos
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
126/138
• En la fase de diseño se crearán los diagramas de casos
de uso y de secuencia para definir la funcionalidad del
sistema.
• Se especificará también el formato de la información
de entrada y salida, las estructuras de datos y la
división modular. Con todos esos diagramas e
información se obtendrá el cuaderno de carga.
Ejemplo de diagrama de Casos de Uso
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
127/138
Ejemplo de diagrama de secuencia
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
128/138
CODIFICACIÓN
-
8/18/2019 DAM Entornos de Desarrollo Unidad 1
129/138
•Una vez definido el software hay que programarlo.
• Gracias a las etapas anteriores, el programador contará con un
análisis completo del sistema que hay que codificar y con una
especificación de la estructura básica que se necesitará, por lo que enun principio solo habría que traducir el cuaderno de carga en el
lenguaje deseado para culminar la etapa de codificación.
• Nunca está exento de necesitar un reanálisis o un rediseño alencontrar un problema al programar el software.
PRUEBAS
• Con una doble funcionalidad: las pruebas buscan confirmar que la codificación ha