Ciclo de vida de un sistema semiestructurado


UNIDAD 1

Introducción a los sistemas

¿Qué es un sistema?

Iniciamos el recorrido introduciendo los conceptos básicos relacionados con sistemas, sistemas informáticos y software.
Esta unidad nos servirá para unificar las definiciones que debemos conocer antes de comenzar a programar. 

Seguramente el término “sistema” lo habrán conocido cuando cursaban su escuela secundaria, en la asignatura Biología. 

También, en la vida cotidiana utilizamos este concepto para hablar del sistema ferroviario, sistema de salud, sistema inmunológico, por nombrar algunos.

Entonces…

¿Cómo definimos un sistema?

Te contamos que el concepto de sistema surge del denominado enfoque sistémico, basado en la Teoría General de los Sistemas formulada a mediados del Siglo XX.

Inicialmente, esta teoría estaba basada en el estudio de los organismos como sistemas biológicos, pero luego se generalizó su alcance a todo tipo de sistemas. De tal manera que hoy se utiliza el término sistema en todas las áreas del conocimiento humano.

Los sistemas de información están formados por hardware (elementos físicos) y software (elementos lógicos que se llaman programas). En este curso nos ocuparemos del desarrollo del software, estudiando distintas técnicas de programación para la construcción de los programas.

¿Qué es un software?

Hoy en día, gracias a la utilización de la tecnología y de los sistemas en la gran parte de las actividades, el término software se usa constantemente, pero no siempre queda bien claro a qué se refiere. El software en un sistema corresponde a todos los elementos lógicos, intangibles.


Ahora bien, las computadoras, los cables, los celulares, los dispositivos en donde guardamos información, ¿son Software?

Seguramente estarás pensando que no, todos estos elementos son tangibles.
Es por eso que podemos ponernos de acuerdo en definir que:

¿Qué es un software?
Para la construcción de software se debe seguir un determinado procedimiento que garantice que el resultado sea un producto de calidad. Hay varios modelos o procedimientos a seguir, lo que se traducirá en distintas metodologías de desarrollo, algunas de las cuales veremos más adelante.

Ciclo de vida de software

Todo programa está formado por un conjunto de módulos o subprogramas que interactúan entre sí. En muchos casos, durante todo el proceso de desarrollo, intervienen distintas personas con diferentes responsabilidades. Es por eso que los programas atraviesan diferentes etapas durante su proceso de construcción, y es lo que se conoce como «ciclo de vida«.

El desarrollo de un sistema se realiza durante todo el ciclo de vida, que es el período de tiempo que se extiende desde la idea original del problema a resolver hasta el mantenimiento y desarrollo de las mejoras.

Independientemente de las metodologías de desarrollo que se utilicen, podemos identificar las siguientes etapas o momentos en el desarrollo del software:

En esta etapa se debe determinar cuál es el problema a resolver y los límites y alcances que tendrá el software que lo resolverá. Es el momento de reunirse con quien nos solicita el programa para saber cuáles son los requerimientos.
En este momento los profesionales de sistemas se encargan de definir las entradas y las salidas del software, y qué restricciones tendrán los datos. También se describen los componentes que se deberán desarrollar, qué carácterísticas y comportamiento tendrán y cómo estarán relacionados.
Corresponde al proceso de construcción de software propiamente dicho. Es en donde los programadores escriben el código fuente utilizando algún lenguaje de programación.
Una vez que el software está desarrollado se debe probar para verificar que responde a las definiciones y no tiene errores.
Todo sistema debería tener mantenimiento ya que siempre habrá que realizar alguna modificación, agregando nueva funcionalidad o bien cambiando alguna carácterística porque se ha modificado alguna especificación.

El siguiente esquema nos presenta una visualización del ciclo de vida del software:
 ciclodevida%20%286%29

Metodologías de desarrollo de sistemas

Como definimos anteriormente, las etapas del ciclo de vida del software son los procesos generales que suele tener todo desarrollo. Ahora bien, a lo largo de las últimas décadas se han estudiado estos procesos para buscar cuál es el método óptimo. Como resultados de esos trabajos se han desarrollado diferentes metodologías de desarrollo de sistemas. Cada una de ellas presenta ventajas y desventajas, y no hay una que sea mejor que las otras en todos los casos. 

Dependiendo del proyecto, la cantidad de personas que intervengan y hasta los plazos de desarrollo y entrega del producto, algunas metodologías serán mucho más eficientes que otras. Por eso es importante conocer cuáles son las principales metodologías, para poder tomar tus propias decisiones.

Entonces nos preguntamos…

¿Cómo definimos una metodología?
La metodología define una representación que facilita la manipulación de modelos, junto con la comunicación e intercambio de información entre todas las personas involucradas en el desarrollo del sistema. 

Les presentaremos a continuación los principales modelos de desarrollo:

  1. Modelo de cascada, 
  2. Modelo espiral,
  3. Modelos de desarrollo iterativo e incremental, 
  4. Modelo de desarrollo ágil.

1. Modelo de cascada

El modelo cascada define las siguientes etapas que deben cumplirse de forma sucesiva:




Este modelo es el denominado modelo clásico de software, ya que está relacionado con las etapas del ciclo de vida.


2. Modelo espiral

En el modelo espiral, durante cada ciclo se realizarán cuatro actividades:

 Modelo%20espiral-01

3. Modelos de desarrollo iterativo e incremental

En estos modelos también se realiza un desarrollo por ciclos.

Si estamos realizando un desarrollo iterativo, en cada ciclo o iteración, se revisa y mejora el producto desarrollado. Es importante señalar que este ciclo no implica añadir funcionalidades en el producto, pero si la revisión y la mejora.

Si estamos realizando un desarrollo incremental, en cada ciclo iremos liberando partes del software (que se llaman prototipos) periódicamente, en cada iteración, y cada nueva versión, normalmente, aumenta la funcionalidad y mejora en calidad respecto a la anterior.

4. Modelo de desarrollo ágil

El modelo de desarrollo ágil se basa en los modelos iterativos e incrementales, en donde los ciclos son muy cortos (en general una o dos semanas) y con la distinción que dentro de ellos no se encuentran etapas en cascada.

Lenguajes de programación

Para que una computadora pueda realizar un proceso es necesario que se le brinde una lista de instrucciones que sea capaz de comprender y de ejecutar. Como vimos anteriormente, un programa o software es ese conjunto de instrucciones. Esos programas se escriben utilizando un lenguaje de programación.

Entonces:

¿Qué es un lenguaje de programación?

Ahora te presentaremos los principales tipos de lenguajes de programación utilizados en la actualidad:

Lenguaje de máquina

Este lenguaje es el que entiende directamente una computadora. Está formado por instrucciones binarias (dígitos 0 y 1) que especifican operaciones y las direcciones de memoria implicadas en dichas operaciones.

El código máquina es el denominado código binario. Estas instrucciones dependen del hardware de la computadora, y por lo tanto, varían de una en otra.
Este lenguaje al ser entendible por computadoras es muy poco legible y claro para los programadores, es por eso que se han desarrollado otros lenguajes de programación más cercanos a los idiomas para que sea mucho más fácil programar. Estos lenguajes se dividen en lenguajes de bajo y de alto nivel.

Lenguaje de bajo nivel

Es más simple de utilizar que el lenguaje máquina, pero también depende del hardware en donde se esté ejecutando.
El principal lenguaje de bajo nivel es el ensamblador.

Lenguajes de alto nivel

Estos lenguajes son los más utilizados por los programadores, ya que están diseñados para que las personas lo pueden entender de manera mucho más fácil que los lenguajes de bajo nivel.
Otra ventaja que tiene es que un programa escrito en este tipo de lenguaje es independiente del hardware en donde se va a ejecutar.

Los principales lenguajes de alto nivel son C, C++, Pascal, Java, VisualBasic.
Los programas fuente escritos en estos lenguajes tiene que ser traducidos al lenguaje máquina. Para eso se utiliza un programa traductor que es un intérprete o un compilador.

En la siguiente sección te presentaremos los programas traductores utilizados por los lenguajes de alto nivel.

Lenguajes interpretados y compilados

Como hemos visto, un programa escrito en un lenguaje de alto nivel es entendible solo por una persona, es decir, el programador. Por lo tanto, para que pueda ser entendible y ejecutado por una computadora debe ser traducido al lenguaje máquina, por medio de un intérprete o un compilador.
De esta manera tenemos lenguajes interpretados o compilados.

¿Qué es un lenguaje interpretado?
Un intérprete es un traductor que toma el código fuente, lo traduce y luego lo ejecuta.
Un lenguaje interpretado clásico es el «Basic» que hoy, prácticamente no se utiliza.

Por otro lado, los lenguajes compilados son aquellos que necesitan un compilador para poder ejecutarse.

¿Qué es un compilador?

En general, el programa objeto es la traducción al código máquina, y que depende de cada modelo de computadora. Por lo tanto, el compilador debe ser específico para el modelo de computadora que va a ejecutar el programa.

El proceso de compilación abarca las siguientes etapas:

  1. Compilación del programa fuente.
  2. Verificación de errores de compilación.
  3. Obtención del programa objeto.
  4. Enlace del programa objeto con todos los programas necesarios del sistema operativo.
  5. Ejecución del programa.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *