Sie sind auf Seite 1von 9

1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo

Unidad 1: Desarrollo de Software Entornos


P

g
i
n
a
1

EL PROGRAMA INFORMTICO
Un programa informtico es un conjunto de instrucciones que se ejecutan de manera
secuencial con el objetivo de realizar una o varias tareas en un sistema.
Un programa informtico interacta con el sistema ejecutando las diferentes instrucciones del
programa en la ALU, mediante instrucciones que sea capaz de entender.
Cada instruccin se divide en instrucciones ms pequeas que se ejecutarn individual y
secuencialmente en cada ciclo del procesador. A estas instrucciones ms pequeas se las
conoce con el nombre de microinstrucciones.
Para comprender como un programa interacta con un sistema revisamos su funcionalidad
bsica, es decir, reducimos su comportamiento a la mnima expresin. El procesador ejecuta
las instrucciones una a una, pero no solo eso, para cada instruccin realizar una serie de
microinstrucciones para poder llevarla a cabo:
Si solicitramos al sistema la ejecucin de la instruccin c=a+b:
- Tendramos reservadas posiciones de memoria para ubicar las variables a, b y c.
- A travs de los buses pasara los valores de a y b a los registros R1 y R2.
- La ALU realizara la suma depositando el resultado en R3.
- A travs de los buses se grabara el valor de R3 en memoria.
Hoy en da los microprocesadores modernos son mucho ms sofisticados, pero no cambian
mucho en esencia. Lo que s que no cambia es que el programa se sigue almacenndose en
memoria no voltil y ejecutndose en la memoria de acceso aleatorio, al igual que todas las
variables utilizadas.
LENGUAJES DE PROGRAMACIN
Un lenguaje de programacin es un conjunto de instrucciones, operadores y reglas de sintaxis
y semnticas, que ponen a disposicin del programador para que este pueda comunicarse con
los dispositivos de hardware y software existentes.
El sistema slo es capaz de entender cdigo escrito en cdigo mquina (1s y 0s), programar
directamente en cdigo mquina es una tarea ardua y tediosa.
El uso de un lenguaje de programacin tiene el objetivo de facilitar la tarea a los
programadores permitiendo escribir programas utilizando un mayor nivel de abstraccin en el
cdigo.
LOS NIVELES DE ABSTRACCIN
El nivel de abstraccin de un lenguaje implica cuan alejado est del cdigo mquina, cuanto
ms parecido sea a nuestro lenguaje y menos al cdigo mquina, de mayor nivel ser el
lenguaje.
Lenguajes de bajo nivel
- Slo hay un lenguaje de bajo nivel cdigo mquina.

1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
2

Tambin se les denomina Primera Generacin, consisten en cadenas interminables de 1s y 0s
que conforman operaciones que la mquina puede entender sin interpretacin alguna.
Lenguajes de medio nivel
- Tienen definidas una serie de instrucciones sencillas para trabajar con datos
simples y posiciones de memoria. El lenguaje clave de ste nivel es el lenguaje
ensamblador.
A este nivel tenemos que hablar de una Segunda Generacin en el que claramente se engloba
el lenguaje ensamblador. Hay quienes aaden a esta generacin lenguajes procedimentales
como el C, sin embargo, este lenguaje es mayoritariamente considerado de Tercer nivel.
Lenguajes de alto nivel
- La mayora de los lenguajes que se utilizan hoy en da para programar aplicaciones
son de alto nivel. Son muy cercanos a nuestro propio lenguaje y permiten la
realizacin de patrones de diseo complejos como Java o C#. Tambin nos
encontramos en este nivel de abstraccin a los lenguajes destinados a un
propsito especfico, como podra ser el SQL.
Tercera generacin: la gran mayora de los lenguajes de programacin que se utilizan hoy en
da pertenecen a este nivel de abstraccin, donde sus expresiones se parecen a nuestro
lenguaje (C, Fortran, Smalltalk, Ada, C++, C#, Cobol, Delphi, Java).
Cuarta generacin: son lenguajes creados con un propsito especfico; al ser tan especficos,
permiten reducir la cantidad de lneas de cdigo que tendramos que escribir para conseguir
un propsito (SQL).
Quinta generacin: tambin llamados lenguajes naturales, pretenden abstraer ms an el
lenguaje. Son sistemas basados en el conocimiento (Prolog, OPS5, Mercury).
FORMA DE EJECUCIN
- Compilados: un programa traductor (compilador) convierte el cdigo fuente en
cdigo objeto para crear un programa ejecutable.
- Interpretados: ejecutan las instrucciones directamente, sin generar cdigo objeto.
La propia mquina se encargar de interpretarlo instruccin a instruccin.*
- Virtuales: con un comportamiento similar al de los lenguajes compilados con una
peculiaridad, el compilador no genera cdigo objeto sino cdigo bytecode. Una
mquina virtual se encargar de interpretar el bytecode para ejecutarlo en el
sistema.
*Un lenguaje interpretado es un lenguaje de programacin que est diseado para ser
ejecutado por medio de un intrprete, en contraste con los lenguajes compilados.
Tericamente, cualquier lenguaje puede ser compilado o ser interpretado, as que esta
designacin es aplicada puramente debido a la prctica de implementacin comn y no a
alguna caracterstica subyacente de un lenguaje en particular. Sin embargo, hay lenguajes que
son diseados para ser intrnsecamente interpretativos, por lo tanto un compilador causar
una carencia de la eficacia. Muchos autores rechazan la clasificacin de lenguajes de
programacin entre interpretados y compilados, considerando que el modo de ejecucin (por

1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
3

medio de intrprete o compilador) del programa escrito en el lenguaje es independiente del
propio lenguaje. A ciertos lenguajes interpretados tambin se les conoce como lenguajes de
script.
PARADIGMAS DE PROGRAMACIN
Un paradigma de programacin provee (y determina) la visin y mtodos de un programador
en la construccin de un programa o subprograma. Si se aplican diferentes paradigmas
obtenemos diferentes estilos de programacin y diferentes formas de pensar la solucin de
problemas (con la solucin de mltiples problemas se construye una aplicacin).
Los lenguajes de programacin se basan en uno o ms paradigmas. Por ejemplo: Smalltalk y
Java son lenguajes basados en el paradigma orientado a objetos. En cambio Python, soporta
mltiples paradigmas.
Imperativo
En la programacin imperativa se describen sentencias que modifican el estado de un
programa. En muchos sentidos la programacin imperativa es la programacin natural para las
CPUs que se basan en ese paradigma al nivel ms bsico. En este paradigma se expresa como
debe solucionarse un problema especificando una secuencia de acciones a realizar a travs de
uno o ms procedimientos denominados subrutinas o funciones (Basic, Pascal).
Declarativo
A la programacin imperativa se le contrapone la programacin declarativa en la que se
describe la lgica de computacin necesaria para resolver un problema sin describir un flujo de
control de ningn tipo. Efectivamente, en la programacin declarativa no es necesario definir
algoritmos puesto que se detalla la solucin del problema en lugar de como llegar a esa
solucin (SQL).
Procedimental
El programa se divide en partes ms pequeas, llamadas funciones y procedimientos que
pueden comunicarse entre s. Permite reutilizar cdigo ya programado (C).
Orientado a objetos
Encapsula el estado y las operaciones en objetos, creando una estructura de clases y objetos
que emula un modelo del mundo real, donde los objetos realizan acciones e interactan con
otros objetos (Java).
Funcional
Evala el problema realizando funciones de manera recursiva, evita declarar datos haciendo
hincapi en la composicin de las funciones y en las interacciones entre ellas (Haskell).
Lgico
Define un conjunto de reglas lgicas para ser interpretadas mediante inferencias lgicas.
Permite responder preguntas planteadas al sistema para resolver problemas (Prolog).


1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
4


OBTENCIN DE CDIGO EJECUTABLE
Cdigo fuente
El cdigo fuente de un programa informtico es un conjunto de instrucciones escritas en un
lenguaje de programacin determinado. Es decir: es el cdigo en el que nosotros escribimos
nuestro programa.
Cdigo objeto
El cdigo objeto es el cdigo resultante de compilar el cdigo fuente. Si se trata de un lenguaje
de programacin compilado, el cdigo objeto ser cdigo mquina, mientras que si se trata de
un lenguaje de programacin virtual ser cdigo bytecode.
Cdigo ejecutable
El cdigo ejecutable es el resultado obtenido de enlazar nuestro cdigo objeto con las libreras.
Este cdigo ya es nuestro programa ejecutable, programa que se ejecutara directamente en
nuestro sistema o sobre una mquina virtual en el caso de los lenguajes de programacin
virtuales.


1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
5

PROCESOS DE DESARROLLO
MODELO TRADICIONAL. DESARROLLO EN CASCADA
1. Anlisis
La fase de anlisis define los requisitos del software que hay que desarrollar.
Esta fase comprendera desde la posible obtencin de unos objetivos o requisitos iniciales
para determinar la viabilidad del sistema y escrutar las distintas alternativas de solucin,
pasando por la elaboracin del catlogo de requisitos, hasta la realizacin de casos de uso,
prototipado de pantallas e informes, como una primera especificacin del plan de pruebas.
2. Diseo
El anlisis describe el sistema sin entrar en caractersticas propias de la implementacin, es
en esta fase donde se adapta ese anlisis generalista a la solucin concreta que se quiere llevar
a cabo, definindose la arquitectura general del sistema de informacin, su divisin en
subsistemas de diseo, el modelo de datos lgico, el modelo de clases (en caso de un diseo
orientado a objetos), la especificacin detallada del plan de pruebas
3. Codificacin
La fase ms obvia en el proceso de desarrollo de software es sin duda la codificacin. Es ms
que evidente que una vez definido el software que hay que crear haya que programarlo. En
esta fase se realiza la construccin del sistema de informacin y las pruebas relacionadas con
dicho proceso, como son las unitarias, integracin y de sistema, as como otras actividades
propias de las etapas finales de un desarrollo como es la realizacin de la carga inicial de datos
(si bien en muchos casos se deja esto para cuando el producto est en produccin) y/o la
construccin del procedimiento de migracin.
4. Pruebas
En esta etapa se realizara la instalacin del sistema en un entorno de pruebas lo ms parecido
posible al de produccin (entorno de preproduccin) donde se realizaran las pruebas de
implantacin (que verifican principalmente aspectos no funcionales) y las de aceptacin,
donde los usuarios validan que el sistema hace lo que realmente esperaban (sin que se deba
olvidar que los limites los establecen los modelos realizados previamente y que han debido ser
validados). Por ltimo se realizara la implantacin del sistema en el entorno de produccin.
5. Documentacin
Debe mostrar una informacin completa y de calidad que ilustre mediante los recursos ms
adecuados como manejar la aplicacin. Tambin se debe realizar una documentacin tcnica
destinada a ser leda por los dems desarrolladores que trabajen en la aplicacin.
6. Explotacin
Una vez que tenemos nuestro software, hay que prepararlo para su distribucin. Para ello se
implementa el software en el sistema elegido o se prepara para que se implemente por s solo
de manera automtica.

1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
6

7. Mantenimiento
Una vez que el sistema se encuentra en produccin, se realizarn sobre el mismo diversas
tareas de mantenimiento, que en funcin de su naturaleza se clasifican en correctivos,
evolutivos, adaptativos y perfectivos. Estas tareas de mantenimiento sern consecuencia de
incidencias y peticiones reportadas por los usuarios y los directores usuarios.
OTROS MODELOS
Modelo de prototipo.
Modelo en espiral.
Desarrollo por etapas.
Desarrollo iterativo y creciente o Iterativo e Incremental.
RAD (Rapid Application Development)
Desarrollo concurrente
Proceso Unificado (Basado en UML)

ROLES QUE INTERACTAN EN EL DESARROLLO
Analista de sistemas
Su objetivo consiste en realizar un estudio del sistema para dirigir el proyecto en una direccin
que garantice las expectativas del cliente determinando el comportamiento del software.
Participa en la etapa de anlisis.
Diseador de software
Nace como una evolucin del analista y realiza, en funcin de anlisis de un software, el diseo
de la solucin que hay que desarrollar. Participa en la etapa de diseo.
Analista programador
Aporta una visin general del proyecto ms detallada diseando una solucin ms amigable
para la codificacin y participando activamente en ella. Participa en las etapas de diseo y
codificacin.
Programador
Escribe el cdigo fuente en funcin al estudio realizado por analistas y diseadores. Participa
en la etapa de codificacin.
Arquitecto de software
Conoce e investiga los frameworks y tecnologas revisando que todo el procedimiento se lleva
a cabo de la mejor forma y con los recursos ms apropiados. Participa en las etapas de anlisis,
diseo, documentacin y explotacin.


1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
7

ARQUITECTURA DE SOFTWARE
PATRONES DE DISEO
Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en
el desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces.
Un patrn de diseo resulta ser una solucin a un problema de diseo. Para que una solucin
sea considerada un patrn debe poseer ciertas caractersticas. Una de ellas es que debe haber
comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es
que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseo en
distintas circunstancias.
PROGRAMACION POR CAPAS
La programacin por capas es una arquitectura cliente-servidor en el que el objetivo primordial
es la separacin de la lgica de negocios de la lgica de diseo; un ejemplo bsico de esto
consiste en separar la capa de datos de la capa de presentacin al usuario.
La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles
y, en caso de que sobrevenga algn cambio, solo se ataca al nivel requerido sin tener que
revisar entre cdigo mezclado. Un buen ejemplo de este mtodo de programacin sera el
modelo de interconexin de sistemas abiertos.
Adems permite distribuir el trabajo de creacin de una aplicacin por niveles: de este modo,
cada grupo de trabajo est totalmente abstrado del resto de niveles, de forma que basta con
conocer la API que existe entre niveles.
En el diseo de sistemas informticos actual se suelen usar las arquitecturas multinivel o
Programacin por capas. En dichas arquitecturas a cada nivel se le confa una misin simple,
por lo que permite el diseo de arquitecturas escalables (que pueden ampliarse con facilidad
en caso de que las necesidades aumenten). El diseo ms utilizado actualmente es el diseo en
tres niveles (o en tres capas).
Capa de presentacin
Es la que ve el usuario (tambin se la denomina capa de
usuario), presenta el sistema al usuario le comunica la
informacin y captura la informacin del usuario en un
mnimo de proceso (realiza un filtrado previo para comprobar
que no hay errores de formato). Tambin es conocida como
interfaz grfica y debe tener la caracterstica de ser
"amigable" (entendible y fcil de usar) para el usuario. Esta
capa se comunica nicamente con la capa de negocio.
Capa de negocio
Es donde residen los programas que se ejecutan, se reciben
las peticiones del usuario y se envan las respuestas tras el
proceso. Se denomina capa de negocio (e incluso de lgica del
negocio) porque es aqu donde se establecen todas las reglas

1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
8

que deben cumplirse. Esta capa se comunica con la capa de presentacin, para recibir las
solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de
datos almacenar o recuperar datos de l. Tambin se consideran aqu los programas de
aplicacin.
Capa de datos
Es donde residen los datos y es la encargada de acceder a los mismos. Est formada por uno o
ms gestores de bases de datos que realizan todo el almacenamiento de datos, reciben
solicitudes de almacenamiento o recuperacin de informacin desde la capa de negocio.
Todas estas capas pueden residir en un nico ordenador, si bien lo ms usual es que haya una
multitud de ordenadores en donde reside la capa de presentacin (son los clientes de la
arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo
ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o ms
ordenadores. As, si el tamao o complejidad de la base de datos aumenta, se puede separar
en varios ordenadores los cuales recibirn las peticiones del ordenador en que resida la capa
de negocio.
Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la separacin,
esta capa de negocio podra residir en uno o ms ordenadores que realizaran solicitudes a una
nica base de datos. En sistemas muy complejos se llega a tener una serie de ordenadores
sobre los cuales corre la capa de negocio, y otra serie de ordenadores sobre los cuales corre la
base de datos.
En una arquitectura de tres niveles, los trminos "capas" y "niveles" no significan lo mismo ni
son similares. El trmino "capa" hace referencia a la forma como una solucin es segmentada
desde el punto de vista lgico:
- Presentacin. (Conocida como capa Web)
- Lgica de Negocio. (Conocida como capa Aplicativa)
- Datos. (Conocida como capa de Base de Datos)

En cambio, el trmino "nivel" corresponde a la forma en que las capas lgicas se encuentran
distribuidas de forma fsica. Por ejemplo:
- Una solucin de tres capas (presentacin, lgica del negocio, datos) que residen en
un solo ordenador (Presentacin+lgica+datos). Se dice que la arquitectura de la
solucin es de tres capas y un nivel.
- Una solucin de tres capas (presentacin, lgica del negocio, datos) que residen en
dos ordenadores (presentacin+lgica por un lado; lgica+datos por el otro lado).
Se dice que la arquitectura de la solucin es de tres capas y dos niveles.

1 DAW Marta Torralba Profesora: M Dolores Mayorga Campo
Unidad 1: Desarrollo de Software Entornos
P

g
i
n
a
9

RESUMEN Y CONCLUSIONES
Nos hemos introducido en el mundo del desarrollo del software con el objeto de introducirnos
en las diferentes estrategias de desarrollo del software.
Se recomienda volver a realizar una lectura de esta introduccin una vez que se hayan
consolidado los conocimientos de programacin para comprender mejor los conceptos
presentados y las tcnicas de arquitectura de software.

Das könnte Ihnen auch gefallen