Está en la página 1de 10

INGENIERÍA DEL SOFTWARE.....................................................................................................

1
1. LOS SISTEMAS INFORMÁTICOS.........................................................................................1
2. INTRODUCCIÓN A INGENIERÍA DEL SOFTWARE...............................................................3
3. CICLO DE VIDA DEL SOFTWARE........................................................................................5
3.1. MODELOS CLÁSICOS.................................................................................................5
3.1.1. El modelo en cascada.......................................................................................6
3.1.2. El modelo en V..................................................................................................7
3.2. PROTOTIPOS.............................................................................................................8

INGENIERÍA DEL SOFTWARE

1. LOS SISTEMAS INFORMÁTICOS


Los Sistemas informáticos realizan tareas de tratamiento de la
información. Estas tareas consisten fundamentalmente en
almacenamiento, elaboración y presentación de datos.

Cuando se concibe un sistema informático para automatizar


determinadas acciones, se presentan varias posibilidades, para la
realización de cada operación concreta de tratamiento de información:

1. La operación puede ser realizada directamente por algún


elemento físico (hardwarea) del sistema.

2. La operación puede ser programada, desarrollando el


programa (softwareb) apropiado.

3. La operación se realiza manualmente por el usuario del


sistema.

De lo anterior se observa que los elementos que forman un


sistema informático son el hardware, software y los usuarios humanos.
Este último elemento a principio resulta chocante, ya que las
personas no son algo artificiales, como si lo es un sistema informático. Sin
embargo, la visión de sistema requiere incluir la actividad humana de los
usuarios, ya que en la concepción del sistema informático no sólo se
decide el trabajo a realizar por el computador, sino también cómo ha de
ser usado por las personas que operan dicho sistema.

La concepción de un sistema informático en forma global, que es


la actividad de la ingeniería de sistemas basados en computadores,
consiste, por tanto, en decidir qué elementos hardware se utilizarán, qué
elementos software han de ser adquiridos o desarrollados, y qué
personas se necesitan para operar el sistema y, al mismo tiempo, repartir
y asignar las actividades de tratamiento de información entre estos
diferentes elementos.

Características del software

Tradicionalmente se vienen clasificando los elementos


componentes de un sistema informático en dos grandes grupos: el
hardware y el software. Los componentes hardware, o equipos físicos, se
identifican con relativa facilidad. El software, sin embargo es más difícil de
caracterizar, y a veces se define por exclusión: es software todo lo que no
es hardware. El software incluye, por supuesto, los programas que
gobiernan el funcionamiento del computador, pero también incluye otros
elementos tales como documentos, bases de datos, o incluso algo tan
inmaterial como son los procedimientos de operación o de mantenimiento
periódico.

Pensemos en la ingeniería de automóviles, se obtienen copias


sucesivas de un automóvil, esta operación de fabricación es costosa,
conlleva un consumo significativo de energía, materiales y mano de obra.
La operación de diseño previo del producto también es costosa, pero su
costo repercute sólo parcialmente en cada unidad de producto fabricado.
Además existe un proceso de desgaste o envejecimiento que exige
reparaciones ocasionales o periódicas para garantizar un servicio
aceptable.

La ingeniería del hardware es parecida a la ingeniería de


automóviles en cuanto a sus características, sin embargo, la ingeniería
del software presenta características especiales. En el software, el
proceso de fabricación, consistente en obtener copias sucesivas del
producto, es trivial y se realizan con un costo muy bajo. La labor
importante es la de desarrollo inicial, de manera que el costo total de
fabricar miles de unidades de un producto software es similar al de
fabricar una sola. Además el software no se desgasta. Un programa
funcionará al cabo de los años con la misma corrección con que lo hizo el
primer día sin necesidad de modificación alguna. Las tareas de
mantenimiento de software son en realidad tareas adicionales de
desarrollo, realizadas durante la vida útil del producto para mejorarlo.

2. INTRODUCCIÓN A INGENIERÍA DEL


SOFTWARE

El termino Ingeniería del Software aparece utilizado por primera


vez en un congreso cde la OTAN a finales de los años 60.

La ingeniería de software amplía la visión del desarrollo de


software como una actividad esencialmente de programación,
contemplando además otras actividades de análisis y diseño previos, y de
integración y verificación posteriores. El conjunto de estas actividades es
lo que se conoce cdon el nombre de “ciclo de vida” del software.
Perspectiva histórica

1. En las décadas iniciales, la labor de desarrollo de software


se planteaba como una actividad artesanal, basada en la labor de
personas habilidosas y más o menos creativas, que actuaban en forma
individual y poco disciplinada. Se usan sólo herramientas de
programación (compilador, depurador, etc.)

2. Al aumentar la capacidad de los computadores, aumenta


también la complejidad de las aplicaciones a programar, y se aprecia la
necesidad de una mejor organización, basada en el trabajo en equipo,
con la consiguiente división y organización del trabajo. Esta organización
da lugar a la aparición de metodologías de desarrollo específicas.

Estas metodologías se desarrollan a lo largo de los años 70, pero


sólo empiezan a aplicarse ampliamente en los años 80, gracias a la
aparición de herramientas de soporte apropiadas, denominadas en
general herramientas CASE (Computer Aided Software Engineering). Las
herramientas CASE apoyan a las herramientas tradicionales de
programación.

3. En los años 90 aparecen herramientas nuevas que


soportan todo el ciclo de desarrollo del software, se designan con las
siglas IPSE (Integrated Project Support Environment) o más
recientemente ICASE (Integrated CASE).

La crisis del software

Una situación de crisis representa un punto importante de


evolución. Una crisis, se resuelve, para bien o para mal, mediante fuertes
cambios.

Ya hemos visto que el software ha evolucionado a través de dos


crisis, pasando de la codificación, a herramientas CASE, y a herramientas
ICASE. Sin embargo, la evolución del hardware continúa a un fuerte
ritmo, forzando un incremento continuo en la complejidad de las
aplicaciones software. Con ello se mantiene la situación de crisis que se
había producido, y que continúa hasta nuestros días. Nos encontramos,
más que en una crisis, en una situación de evolución permanente.

Mitos del software

La continua evolución del software hace difícil obtener una visión


justa de la ingeniería del software, provocando que se mantengan
opiniones infundadas sobre la importancia del software. Algunas de estas
opiniones, están generalizadas, resultan mitos difíciles de erradicar. Por
ejemplo:

- El hardware es mucho más importante que el software:


falso. Ya que al usar un computador nuestra interacción es
fundamentalmente con el software, y sólo de una manera muy limitada el
usuario accede directamente a elementos hardware.

- El software es fácil de desarrollar. Falso, de hecho el


desarrollo de software exige una mayor proporción de mano de obra,
frente al empleo de maquinaria. Además el progresivo aumento del costo
de mano hace que aumente mucho el coste de los productos software.

- El software consiste exclusivamente en programas


ejecutables. Falso, hay que pensar en los procedimientos que deben usar
las personas para interaccionar con el programa, se deben considerar
elementos software. También es software toda la documentación del
programa: instalación, manuales.

3. CICLO DE VIDA DEL SOFTWARE


3.1. MODELOS CLÁSICOS
Los modelos clásicos de ciclo de vida plantean el desarrollo y
explotación de una aplicación software como una secuencia de
actividades sucesivas y diferentes que se van realizando una tras otra.
Dos formas de plantear el proceso de desarrollo son:

- El modelo en cascada.

- El modelo en V.

Ambos modelos identifican actividades similares, y prácticamente


sólo se diferencian en la forma de presentarlas.

3.1.1. El modelo en cascada


Se identifican distintas fases, de forma que el resultado de una de
estas fases es el elemento de entrada para la fase siguiente.

• Análisis: Consiste en determinar qué debe hacer el sistema


a desarrollar, y escribir una especificación precisa de dicho sistema.
Como salida de esta fase se redacta el “Documento de Requisitos del
software” que sirve de entrada para la siguiente fase.

• Diseño: Consiste en descomponer y organizar el sistema


en elementos componentes que puedan ser desarrollados por separado.
El resultado del diseño es la colección de especificaciones de cada
elemento componente. Estas especificaciones se redactan en el
“Documento de Diseño del software”.

• Codificación: Se programa cada elemento componente por


separado, es decir, se escribe el código fuente de cada uno. El código
fuente incluirá todos los comentarios necesarios.

• Integración: Combina todos los elementos componentes del


sistema, y prueba el sistema completo. Habrá que realizar exhaustivas
pruebas para comprobar el buen funcionamiento del software. Como
salida se tiene el producto software completo con toda la documentación.
También se debe documentar las pruebas realizadas al sistema completo.
• Mantenimiento: Durante la explotación del sistema software
en necesario realizar cambios, bien para corregir errores no detectados, o
bien para introducir mejoras. Cada vez que hay una modificación se
redacta el “Documento de cambio” que recopila información del problema
detectado, descripción de la solución adoptada, y las modificaciones
realizadas.

Las fases sucesivas pueden ser realizadas por grupos de


personas diferentes, facilitando la especialización por profesiones; de esta
manera encontramos, analistas o programadores, en sus distintos niveles.

Los errores producidos en una fase son muy costosos de corregir,


si se detectan errores en una fase anterior, será necesario rehacer parte
del trabajo volviendo a la fase donde se encontró el error.

3.1.2. El modelo en V
Se basa en una secuencia de fase análoga a la del modelo de
cascada, pero se da especial importancia a la visión jerarquizada. En la
figura, el eje horizontal representa avance en el desarrollo y el eje vertical
corresponde al nivel de abstracción con que se trabaja en cada fase.

En el diagrama en V, se expresa que el resultado de una fase no


sólo sirve para la fase siguiente, sino que también se debe utilizar en
fases posteriores para comprobar que el desarrollo es correcto:

- Verificación: Comprobar que cada parte del programa,


cumple con su especificación.

- Validación: Comprobar que el sistema total cumple con su


especificación.
3.2. PROTOTIPOS
Los modelos clásicos tienen el inconveniente, de que no
contemplan de manera organizada, las vueltas atrás necesarias al
detectar un error. Hay situaciones, en las que no es posible garantizar si
el resultado final de una fase es correcto. Por ejemplo en sistemas
innovadores, dónde no se dispone de experiencia previa.

Un prototipo es un sistema auxiliar que permite probar ciertas


soluciones parciales.

El objetivo es probar el sistema, y cómo hay dudas sobre la


solución a tomar, se desarrolla un prototipo con coste de desarrollo menor
que el del sistema total.

Para obtener el prototipo con coste menor, hay varias opciones:

- Se limitan algunas funciones.

- Se limita la capacidad de datos.

- Se limita su eficiencia.

Hay dos clases de prototipos: rápidos y evolutivos.

• Rápidos: Aquellos cuya finalidad es sólo adquirir


experiencia; se denominan prototipos de usar y tirar. Su funcionalidad es
muy limitada. Estos prototipos se aprovechan dentro de las fases de
análisis y/o diseño. El sistema final se codifica partiendo de cero, es decir,
sin aprovechar el código del prototipo.

Evolutivos: Tratan de aprovechar su código. El prototipo inicial se


construye tras unas fases parciales de análisis y diseño; la
experimentación con el prototipo permitirá avanzar en esas fases
parciales, y a continuación ampliar el prototipo inicial para convertirlo en el
sistema final mediante adiciones sucesivas. Asimismo, los documentos
de especificación, diseño, etc. se van desarrollando progresivamente.
Este modelo se puede considerar como un proceso iterativo en bucle
sobre el modelo en cascada.

análisis, 3, 8, 9 INGENIERÍA, 1, 3
diseño, 3, 6, 8, 9 MODELO, 6
a
Lo que más gusta al alumno de informática.
b
Lo que más le gusta a Paco
c
Da el número 3.
d

También podría gustarte