Está en la página 1de 3

Resumen ED 01

¿Qué es el software? Es el conjunto de programas que actúan sobre el hardware para ejecutar lo
que el usuario desea.
Podemos dividirlo en distintos tipos, por un lado los sistemas operativos que se encargan de
coordinar el hardware, el software de programación que son las herramientas para desarrollar
programas y las aplicaciones informáticas que son los programas con una finalidad más o menos
concreta.
Un programa es un conjunto de instrucciones escritas en un lenguaje de programación y hay que
tener en cuenta que como el hardware solo interpreta señales eléctricas, ceros y unos, siempre deben
ser traducidos.
Los lenguajes de programación son idiomas creados de forma artificial formados por símbolos y
normas sobre un alfabeto para obtener un código que el hardware pueda ejecutar. Están formados
por un alfabeto, una sintaxis y una semántica,
Podemos dividirlos en lenguajes de alto nivel y de bajo nivel. Los de bajo nivel son: el lenguaje
máquina que está formado por ceros y unos, no es portable y es bastante difícil de entender por el
ser humano por eso se empezó a usar el otro, ensamblador, en el que en vez de ceros y unos usamos
nmemotécnicos que apuntan a direcciones de memoria, como contrapartida necesita traducción a
lenguaje máquina y sigue siendo difícil de utilizar por lo que se empezaron a usar los lenguajes de
alto nivel entre ellos están los basados en código, que usan sentencias derivadas del inglés y son
mucho más cercanos al razonamiento humano pero necesitan traducción a lenguaje máquina y los
lenguajes visuales en los que aunque se sigue necesitando traducción a lenguaje máquina se
programa gráficamente.
También podemos clasificarlos por su programación y hablaríamos de lenguajes estructurados,
como C en los que la programación es sencilla pero no permiten reutilización de código por lo que
fue sustituida por la programación modular que sí lo permite. Luego están los orientados a objetos
como C++ o Java en los que el programa es un conjunto de objetos, es reutilizable y son más fáciles
de depurar, como contrapartida la programación es poco intuitiva. Después están los lenguajes
visuales como Visual Basic o .NET.
El desarrollo de software es el proceso desde que se concibe la idea hasta que el programa está
funcionando en el ordenador. De esta manera existe un ciclo de vida del software que es la serie de
pasos para desarrollar un programa.
Este ciclo de vida se adapta a unos modelos, entre ellos está el modelo en cascada que es un modelo
idílico, ya que se presupone que no habrá errores ni variaciones en el proceso por lo que las etapas
pueden cumplirse una tras otra.
Derivado de este modelo está el modelo en cascada con retroalimentacion que es igual que el
anterior pero permite volver atrás en cualquier momento. Es válido para proyectos con pocos
cambios y requisitos claros, de otra manera deberíamos usar un modelo de tipo evolutivo.
Entre los modelos evolutivos tenemos el iterativo incremental en el que se divide el problema en
otros más pequeños para realizar con ellos versiones. Así la versión 2 tendrá las funcionalidades de
la versión 1 además de las de la versión 2. Para cada versión se aplica un modelo completo de
cascada con retroalimentacion. También tenemos el modelo en espiral qué es una combinación del
iterativo incremental con el modelo en cascada añadiendo una medición de riesgos. Es un modelo
complejo y bastante costoso.
Desarrollando podemos ayudarnos de aplicaciones para el desarrollo del software. Estas
aplicaciones se llaman herramientas CASE.
Las herramientas CASE se pueden dividir según en la fase en la que las usemos, por ejemplo las U-
CASE son las que usamos en la fase de planificación y análisis de requisitos, las M-CASE las que
usamos en la fase de análisis y diseño y las L-CASE las que usamos en la fase de programación,
pruebas y documentación. Cuando usamos estas herramientas hablamos de que estamos haciendo
desarrollo rápido de aplicaciones con herramientas CASE también llamado RAD.
El proceso de desarrollo de software se puede descomponer en distintas fases, estas son:
Fase de análisis, en la que analizaremos los requisitos funcionales (que tiene que hacer nuestro
programa) y los requisitos no funcionales (como tendrá que hacerlo, por ejemplo tiempos de
respuesta o legislación a la que debe adaptarse), en esta fase se implementa el documento ERS
(Especificación de requisitos de software) en el que deben aparecer la planificación de reuniones
con el cliente, los objetivos que este tiene, los requisitos de la aplicación y una temporización
incluyendo los objetivos prioritarios.
Fase de diseño en la que deberemos dividir el sistema en partes y establecer sus relaciones.
Haremos un modelo funcional-estructural y elegiremos las herramientas que vamos a usar, como el
lenguaje de programación, el sistema gestor de bases de datos y además implementaremos las
entidades y relaciones de las bases de datos.
Fase de codificación en la que empieza el propio proceso de programación en el que tendremos
unas características deseadas que son: modularidad, corrección, eficiencia, portabilidad y facilidad
de lectura.
Lo primero que haremos será crear algoritmos, en pseudocodigo, con diagramas de flujo o ambos. A
partir de estos algoritmos escribiremos el código fuente que según su licencia puede ser de código
abierto, si queremos que el código sea público o de código cerrado, y empezaremos el proceso de
traducción, La traducción a código máquina se puede hacer mediante dos procesos: el de
compilación o el de interpretación.
En el proceso de compilación usaremos un compilador para traducir el código en un solo bloque, así
conseguiremos un código objeto que será un código binario no legible ni para humanos ni para
máquinas, si queremos un código legible para las máquinas deberemos pasarlo por un linker, en
donde se conseguirá el enlazado de todas las partes de la aplicación además de las bibliotecas
externas. Así conseguiremos un código ejecutable, o código máquina, legible para el ordenador.
Por otro lado con un interprete el código será traducido línea a línea lo que hace que sea algo más
lento, sin embargo tiene algunas ventajas, cómo es una mejor detección de errores durante la
codificación.
Durante la codificación tendremos que usar diversos softwares, algunos de ellos son:
La máquina virtual, sirve para separar el funcionamiento del conjunto del ordenador de los
componentes hardware instalados. La maquina virtual garantiza la portabilidad, reserva y libera
memoria para los objetos del programa, se comunica con el sistema para el control de los
componentes hardware y asegura el cumplimiento de las normas de seguridad de la aplicación.
Funciona como una capa de software de bajo nivel y actúa como puente entre el bytecode y los
dispositivos físicos.
También podemos usar un framework que es una plataforma software con programas soporte,
bibliotecas, lenguaje interpretado, etc. Las ventajas de usar un framework son: se consigue un
desarrollo más rápido, un diseño uniforme y portabilidad sin embargo tiene algunas desventajas
como son la dependencia respecto al framework y que el propio framework consume recursos.
Ejemplos son. net o spring
También podemos usar un entorno de ejecución que es un servicio de máquina virtual para la
ejecución de la aplicación. Sus funciones son: configurar la memoria principal, enlazar los archivos
o depurar el programa.
El entorno de ejecución está formado por una máquina virtual y por las API´s del lenguaje que son
las bibliotecas estándar.
Hay que tener en cuenta que un entorno de ejecución no es válido para desarrollar solo para
ejecutar. Para desarrollar deberemos usar el entorno de desarrollo.
Un ejemplo de entorno de ejecución es el JRE de Java que incorpora la máquina virtual de Java
(JVM) y el API de Java.
Fase de pruebas. Empezaremos por las pruebas unitarias donde se prueba una a una cada parte del
software. Un ejemplo es JUnit en Java. Después pasaremos a las pruebas de integración donde se
prueba el funcionamiento del sistema completo y finalmente haremos las pruebas finales o beta test
ya en el entorno de producción.
Fase de documentación. La documentación es necesaria para realizar las revisiones y para mostrar
al cliente cómo funciona la aplicación. En nuestra documentación siempre debe haber tres
documentos que son: Guía Técnica, Guía de Uso y Guía de Instalación.
Fase de explotación es cuando los usuarios finales empiezan a utilizar la aplicación. Es ahora
cuando se lleva a cabo la instalación, puesta a punto y funcionamiento en el equipo del cliente y
también es en este momento en el que se lleva a cabo las pruebas Beta Test.
La última y más larga fase es la de mantenimiento en la que se hace el proceso de control, mejora
y optimización del software.
En esta fase se llevan a cabo cambios que según su naturaleza pueden ser: perfectivos, cuando se
realizan mejoras, evolutivos, si añadimos expansiones, adaptativos, cuando realizamos
modificaciones por cambios en las condiciones (un ejemplo es un cambio de hardware o una nueva
normativa vigente) y finalmente, correctivos, cuando corrigen errores.

También podría gustarte