Anda di halaman 1dari 20

UD1.

DESARROLLO DE SOFTWARE
1. SOFTWARE Y PROGRAMAS. TIPOS DE SOFTWARE.
2. RELACIN HARDWARE-SOFTWARE.
3. DESARROLLO DE SOFTWARE.
4. LENGUAJES DE PROGRAMACIN.
5. FASES EN EL DESAROLLO Y EJECUCIN DEL
SOFTWARE.

1. SOFTWARE Y PROGRAMAS. TIPOS DE


SOFTWARE.
Software:
Tipos de software:
Sistemas Operativos.
Software de programacin
Aplicaciones.
Software de programacin: Herramientas para desarrollar programas
informticos.
Aplicaciones: Programas que tienen una finalidad concreta.
UD1: Como desarrollar las aplicaciones informaticas y las fases por las que
necesitamos pasar.

2. RELACION ENTRE HARDWARE Y


SOFTWARE.

Relacion hardware-software.

Arquitectura de Von Neumann.

Puntos de vista de la relacin hardware-software:

Del SO: Coordina al harware durante el funcionamiento del ordenador y


acta de intermediario.

Toda aplicacin necesita recursos hardware durante su ejecucin. El SO


gestiona de forma oculta los componentes hardware para sus aplicaciones.

De las aplicaciones: Una aplicacin es un conjunto de programas, escritos en


un lenguaje de programacin que el hardware interpreta y ejecuta.

Un programador mediante un lenguaje de programacin escribe un programa y


con un proceso de traduccin de ese cdigo a lenguaje mquina, entienden lo
escrito en ese lenguaje ejecutando ese conjunto de instrucciones.

3. DESARROLLO DE SOFTWARE.

Proceso desde que se concibe una idea hasta que un programa se


implementa y funciona en el equipo.
El proceso de desarrollo consta de una serie de pasos obligados
garantizando as programas eficientes, flexibles y seguros que
responden a los requisitos planteados por los usuarios.

Etapas en el desarrollo del software: segn el orden y la forma en


que se llevan a cabo las etapas se habla de diferentes ciclos de vida.
Construccin de software: Es un proceso complejo que exige
coordinacin y disciplina del grupo de trabajo desarrollador.

3.1. CICLOS DE VIDA DEL SOFTWARE.

Serie de pasos a seguir para desarrollar un programa.


Siempre se debe aplicar un modelo de ciclo de vida al desarrollo de cualquier
proyecto software.
Ciclos de vida ms conocidos y utilizados:

Modelo en cascada: Modelo de vida clsico. Su uso es inaplicable, difcilmente


se conocen todos los requisitos del sistema de antemano. Aplicable a pequeos
desarrollos.

Modelo en cascada con realimentacin: Siguiendo el mdel anterior se


introduce realimentacin entre etapas, pudiendo volver atrs en cualquier
momento para corregir, modificar o depurar tareas. D: No es un modelo optimo
para proyectos con muchos cambios.

Modelos evolutivos: Aceptan cambios y evoluciones.

Iterativo incremental: Basado en el modelo en cascada con realimentacin,


donde las fases se repiten y refinan y propagan sus mejoras a las fases
siguientes.

3.2. HERRAMIENTAS DE APOYO AL DESARROLLO DEL SOFTWARE

Para realizar las etapas anteriores contamos con herramientas informticas,


cuyo fin es automatizar las tareas y ganar fiabilidad y tiempo.
Herramientas CASE: Son aplicaciones utilizadas en el desarrollo de software
con el objetivo de reducir costes y tiempo de proceso, mejorando la
productividad.
Herramientas RAD (Desarrollo Rpido de Aplicaciones): Proceso de
desarrollo de software que comprende el desarrollo iterativo, la
construccion de prototipos y el uso de utilidades CASE. Hoy nos referimos al
Desarrollo Rpido de Interfaces Grficas de usuario o entornos de
desarrollo integrado completos.
La tecnologa CASE permite:

Mejora en la planificacin, agilidad en el proceso, reutilizacin de


mdulos, estandarizacin de las aplicaciones, mejora en el
mantenimiento, etc.

4. LENGUAJES DE PROGRAMACIN (L.P.)

Lenguaje de programacin: Idioma artificial, formado por un conjunto de


smbolos y reglas que se aplican sobre un dispositivo para obtener un cdigo,
que el hardware pueda entender y ejecutar.
Un LP es una herramienta cuya funcin es conseguir que el ordenador
realice las tareas que necesitamos.
La eleccin de un LP a utilizar en un proyecto es muy importante, ya que
cada lenguaje est enfocado a la programacin de tareas determinadas.

Caracteristicas de lo LP:

Lenguaje mquina. Lenguaje que entiende directamente el ordenador.

Lenguaje ensamblador. Se programa utilizando mnemotecnicos.

Lenguaje de alto nivel. Se utilizan sentencias y ordenes derivadas del


ingls.

Lenguajes visuales. Se programa grficamente diseando directamente

4.1. CONCEPTO Y CARACTERISTICAS

Los LP evolucionan hacia una mayor usabildiad de estos, es decir, hacia un


mayor numero posible de usuarios que lo usen y exploten.
Un LP est compuesto de:
Un alfabeto.
Una sintaxis.
Una semntica.
Caractersticas (tenemos 2 clasificaciones):
Segn la cercana al lenguaje humano:

Lenguajes de bajo nivel: Lenguaje maquina y ensamblador.

Lenguajes de alto nivel: Los prximos al razonamiento humano.


Segn la tcnica de programacin utilizada.

Estructurados: Usa la programacin estructurada: C, Pascal, etc.

Orientados a objetos: POO como Java, C++, Ada, Delphi, etc.

Visuales: Programan grficamente generando de forma automtica


el cdigo. Visual Basic Net, Borland Delphi, etc.

4.2. LENGUAJES DE PROGRAMACIN ESTRUCTURADOS

Programacin estructurada: Tecnicas de los lenguajes de programacin que


permiten solo el uso de 3 tipos de sentencias o estructuras de control.
Secuenciales:
Selectivas o condicionales.
Repetitivas o bucles o iterativas.
La programacin estructurada fue sustituida por la programacin modular
que permita dividir los programas en partes ms pequeas y
posteriormente se impusieron los lenguajes orientados a objetos y
finalmente la programacin visual.
Ventajas de la P estructurada:
Programas sencillos, fciles de leer y rpidos.
Fcil mantenimiento.
Estructura del programa sencilla y clara.
Desventajas:
Todo programa se concreta en un solo bloque.
No permite reutilizacin eficaz del cdigo.

4.3. LENGUAJES DE POO

Programacin Orientada a Objetos: Trata los programas como un conjunto


de objetos que colaboran entre si para realizar acciones (60%).
En POO:
Los programas se componen de objetos independientes entre si que
colaboran para realizar acciones.

Se reutilizan los objetos para futuros proyectos.


Desventajas: Es poco intuitiva como ocurre con la estructurada.

Caractersticas de la POO:

Los objetos del programa poseen unos atributos que los diferencian
unos de otros.

Una clase es una coleccin de objetos con caractersticas similares.

Los objetos se comunican a travs de lo mtodos con otros


producindose un cambio de estado de los mismos.

Los objetos son unidades individuales e indivisibles que forman la base

5. FASES EN EL DESARROLLO Y EJECUCIN DEL SOFTWARE

Debemos elegir el modelo de ciclo de vida para el desarrollo del software.


Todo modelo o ciclo de vida sigue las siguientes etapas (para construir un
software fiable y de calidad):

1. ANLISIS DE REQUISITOS. Se especifican los requisitos funcionales y no


funcionales del sistema.
2. DISEO. Se divide el sistema en partes y se determina la funcin de cada
una.
3. CODIFICACIN. Se elige un Lenguajes de Programacin y se codifican los
programas.
4. PRUEBAS. Se prueban los programas para detectar errores y se depuran.
5. DOCUMENTACIN. De todas las etapas, se documenta y guarda toda la
informacin.
6. EXPLOTACIN. Instalamos, configuramos y probamos la aplicacin en los
equipos del cliente.

5.1. ANALISIS DE REQUISITOS

Fase de mayor importancia en el desarrollo del proyecto. Tambin es la mas


complicada, ya que no esta automatizada y depende en gran medida del analista
que la realice.
Que se hace? Se especifican y analizan los requisitos funcionales y no funcionales
del sistema.

Requisitos funcionales: Qu funciones tendr que realizar la aplicacin. Qu


respuesta dar la aplicacin ante todas las entradas. Cmo se comportar la
aplicacin en situaciones inesperadas.

Requisitos no funcionales: Tiempos de respuesta del programa, legislacin


aplicable, tratamiento ante la simultaneidad de peticiones, etc.

Se plasma el documento ERS (Especificacin de Requisitos Funcionales)

La planificacin de las reuniones que van a tener lugar.

Relacin de los objetivos del usuario cliente y del sistema.

Relacin de los requisitos funcionales y no funcionales del sistema.

5.2. DISEO.

Se divide el sistema en partes y se establecen las relaciones entras esas partes. Se


decide que har cada parte.
Se crea un modelo funcional-estructural de los requerimientos del sistemas global,
para poder dividirlo y afrontar las partes por separado.
En el diseo se deciden tareas como:

Entidades y relaciones de las bases de datos.

Seleccin del lenguaje de programacin que se va a utilizar.

Seleccin del Sistema Gestor de Base de Datos.

Etc.

5.3. CODIFICACIN. TIPO DE CDIGO

Se realiza el proceso de programacin.


Se decide el lenguaje de programacin a utilizar, se codifica toda la informacin
anterior y se traslada a cdigo fuente.
La codificacin la realiza el programador, cumpliendo exhaustivamente don todos
los datos impuestos en el anlisis y en diseo de la aplicacin.
Caractersticas deseables del cdigo:

Modularidad, correctitud, eficiencia, portabilidad y fcil lectura.

Fases por las que pasa el cdigo:

Cdigo fuente: Cdigo escrito en un lenguaje de alto nivel con un conjunto de


instrucciones necesarias para que funcione.

Cdigo objeto: Cdigo binario que se obtiene al compilar o interpretar el


cdigo fuente.

Cdigo ejecutable: Cdigo binario que resulta de enlazar los archivos del
cdigo objetos con bibliotecas y rutinas.

5.4. FASES EN LA OBTENCIN DE CDIGO

5.4.1. CDIGO FUENTE.

Conjunto de instrucciones que el ordenador debe realizar, escritas en un lenguaje


de alto nivel. Este cdigo debe ser traducido a l. maquina par que pueda ser
ejecutado.
Se empieza elaborando un algoritmo conjunto de pasos a seguir ara obtener la
solucin del problema- en pseudocdigo y posteriormente se pasa a un lenguaje
de programacin determinado.

Pasos para obtener el cdigo fuente de una aplicacin:

Se debe partir de las etapas anteriores de anlisis y diseo.

Se disea un algoritmo que realice los pasos a seguir para la resolucin del
problema.

Se elije un LP de alto nivel adecuado para las caractersticas del software que
se quiere codificar.

Se procede a la codificacin del algoritmo antes diseado.

5.4.2. CDIGO OBJETO

Es un cdigo intermedio resultado de traducir el cdigo fuente a un cdigo


equivalente formado por ceros y unos no interpretable directamente por la
mquina.

Consiste en un bytecode (cdigo binario) distribuido en varios archivos,


cada uno de los cuales corresponde a cada programa fuente compilado.
El cdigo objeto solo se genera una vez que el cdigo fuente est libre de
errores sintacticos y semanticos.

La traduccin de c. fuente a c. objeto se puede realizar de 2 formas:


Compilacin: El proceso de traduccin se realiza sobre todo el cdigo
fuente, en un solo paso.

Interpretacin: El proceso de traduccin del cdigo fuente se realiza


lnea a lnea y se ejecuta simultneamente.

El cdigo objeto es un cdigo binario, pero no se puede ejecutar


directamente por la computadora.

5.4.3. CDIGO EJECUTABLE

Es el resultado de enlazar los archivos de cdigo objeto y esta formado


por solo archivo ejecutable por el equipo. No necesita ninguna aplicacin
externa. Este archivo es ejecutado y controlado por el sistema operativo.
Para obtener un slo archivo ejecutable, se enlazan todos los archivos de
cdigo objeto, a travs de un software llamado linker (enlazador) y obtener
as un nico archivo que ya s es ejecutable directamente por el equipo.
En Java (lenguaje de alto nivel) el cdigo fuente se compila obteniendo
cdigo objeto o bycode y a travs de una mquina virtual, pasa a cdigo
mquina, directamente ejecutable por el equipo.

5.5. MQUINAS VIRTUALES

Software cuyo fin es separar el funcionamiento del equipo de los componentes hardware
instalados.

El uso de mquinas virtuales permite desarrollar y ejecutar una aplicacin sobre cualquier
equipo, independientemente de las caractersticas hardware, garantizando la portabilidad de
las aplicaciones.
Las funciones principales de una mquina virtual son las siguientes:

Conseguir que las aplicaciones sean portables.

Reservar memoria para los objetos que se crean y liberar la memoria no utilizada.

Comunicarse con el sistema huesped (donde se instala la aplicacin), para el control de


los dispositivos hardware implicados en los procesos.

Cumplimiento de las normas de seguridad de las aplicaciones


Caractersticas de la mquina virtual:

Cuando el cdigo fuente se compila se obtiene cdigo objeto (bytecode o cdigo


intermedio).

Para ejecutarlo en cualquier equipo se requiere independencia respecto al hardware


concreto a usar. Para ello, la mquina virtual asla la aplicacin de los detalles fsicos del
equipo en cuestin.

5.5.1. FRAMEWORKS

Un framework es una estructura que permite al programador desarrollar proyectos sin partir desde
cero.
Se trata de una plataforma software donde estn definidos programas soporte, bibliotecas, lenguaje
interpretado, etc., que ayuda a desarrollar y unir los diferentes mdulos o partes de un proyecto
(podemos pasar ms tiempo con el anlisis los requerimientos y las especificaciones tcnicas de
nuestra aplicacin).
Ventajas:

Desarrollo rpido de software.

Reutilizacin de partes de cdigo para otras aplicaciones.

Diseo uniforme del software.

Portabilidad de aplicaciones de un computador a otro, ya que los bytecodes que se


generan a partir del lenguaje fuente podrn ser ejecutados sobre cualquier mquina virtual.

Desventajas:

Dependencia del cdigo respecto al framework utilizado (sin cambiamos de framework, habr
que reescribir gran parte de la aplicacin).

La instalacin e implementacin del framework en nuestro equipo consume muchos recursos del
sistema.

Ejemplos:

X.NET es un framework para desarrollar aplicaciones sobre Windows. Ofrece el "Visual Studio

5.2.2. ENTORNOS DE EJECUCIN.

Servicio de mquina virtual que sirve como base software para la


ejecucin de programas. En ocasiones pertenece al propio sistema
operativo, pero tambin se puede instalar como software
independiente que funcionar por debajo de la aplicacin.
Es decir, es un conjunto de utilidades que permiten la ejecucin de
programas.