Sie sind auf Seite 1von 5

Introduccion a la Ingeniera de Software

Torres German
germanfntorres@gmail.com
Ingeniera de Software
UNdeC

31 de marzo de 2015
Resumen
En este trabajo se da una introducci
on a la ingeniera de software, definiciones y conceptos basicos
que mas adelante se van a trabajar con mas exactitud y una sintesis de los articulos Softwares Chronics
Crisis[1] y No Silver Bullets[2], proporcionando un marco para entender el las siguientes unidades y
comprendiendo la importancia de la ingeniera de software y su significado.

1.

Introducci
on

En la actualidad los sistemas inform


aticos estan en casi todo el entorno que nos rodea, sistemas que
manejan grandes insfraestructuras, productos electronicos que funcionan con sistemas de software de
control, etc. Lo cual hace que el desarrollo de software es esencial para la economa.
La ingeniera de software es una disciplina que tiene como meta desarrollar software. Este es abstracto
e intangible y no esta regido por leyes fisicas o por procesos de manufactura, lo cual de alguna manera
esto simplifica la ingenieria de software ya que no existen limitaciones fsicas, sin embargo esto lo puede
hacer completamente complejo y dificil de entender.
La ingeniera de software fue propuesta en el a
no 1968 donde en ese tiempo se discutia la crisis del
software llamada asi por los incovenientes que se tenia en el desarrollo, costos elevados, dificil de mantener, desempe
no pobre, el desarrollo estaba en crisis, por lo que se necesitaban urgente nuevas tecnicas
y metodos para controlar la complejidad de los sistemas.
Con el pasar del tiempo se a mejorado en el desarrollo de esta ingeniera y ah mejorado considerablemente el software. Se han desarrollado metodos efectivos de especificaci
on, dise
no e implementaci
on de
software. Sabemos que no hay un enfoque ideal en la ingeniera del software. La amplia diversidad de
tipos de sistemas y las organizaciones que utilizan estos sistemas significa que necesitamos una diversidad
de enfoques al desarrollo de software.

1.1.

Qu
e es Software?

Basicamente es un programa de computadora incluyendo su documentaci


on y configuraci
on correspondiente para que estos se operen de manera correcta. Existen dos tipos de producto de software, uno es
Productos gen
ericos, se venden al mercado abierto. Y Productos personalizados, que son sistemas
requeridos por un cliente particular.

1.2.

Qu
e es la Ingeniera de Software?

Es una disciplina de ingeniera que comprende todos los aspectos del desarrollo de software, desde las
etapas iniciales de la especificaci
on del sistema, hasta el mantenimiento de este despues que se utiliza.

Esta definici
on compreden frases claves, disciplina de la ingenieria: Los ingenieros hacen que las cosas
funcionen. Aplican metodos y herramientas donde sea conveniente, las utilizan de una forma selectiva y
siempre tratando de descubrir soluciones a los problemas, aun cuando no existan teorias o metodos para
resolverlas.
Todos los aspectos de la producci
on de software: La ingeniera de software no solo comprende los
aspectos tecnicos de desarrollo de software, sino actividades como la gesti
on de proyectos de software y
el desarrollo de herramientas, metodos, teoras de apoyo para la construcci
on de software.

1.3. Cu
al es la diferencia entre ingenieria de software y la ciencia de
la computaci
on
Esencialmente la ciencia de la computaci
on se refiere a las teorias y metodos subyacentes a las computadoras y los sistemas de software, mientras que la ingenieria de software se refiere a los problemas
pr
acticos de producir software.

1.4. Cu
al es la diferencia entre ingenieria en sistema e ingenieria de
software?
La ingeniera de sistemas se refiere a todos los aspectos del desarrollo y de la evoluci
on de sistemas complejos donde el software desempe
na un papel principal. Por lo tanto la ingeniera de sistemas
comprende el desarrollo hardware, polticas y proceso de dise
no y distribuci
on de sistemas, asi como la
ingeniera de software. La ingeniera de sistemas es m
as antigua que la del software. Por m
as de 100
a
nos, las personas han especificado y construido sistemas industriales complejos, como aviones y plantas
qumicas.

1.5.

Qu
e es un proceso del software?

Un proceso de software es un conjunto de actividades y resultados asociados que producen un producto


de software. Estas actividades son llevadas a cabo por ingenieros de software. Existen cuatro actividades
fundamentales de procesos que son comunes para todos los procesos del software. Estas actividades son:
1. Especificaci
on del software donde los clientes e ingenieros definen el software a producir y las
restricciones sobre su operaci
on.
2. Desarrollo del software donde el software se dise
na y se programa.
3. Validaci
on del software donde el software se valida para asegurar que es lo que el cliente requiere.
4. Evoluci
on del software donde le software se modifica para adaptarlo a los cambios requeridos
por el cliente y el mercado.
Diferentes tipos de sistemas necesitan distintos procesos de desarrollo.

1.6.

Qu
e es un modelo de proceso de software?

Un modelo de procesos de software es una descripcion simplificada de un proceso del software que
presenta una vision del proceso. Estos modelos pueden incluir actividades que son parte de los procesos
y productos de software y el papel de las personas involucradas en la ingeniera del software. Algunos
ejemplos de estos tipos:
1. Un modelo de flujo de trabajo. Muestra la secuencia de actividades en el proceso junto con las
entradas, salidas y dependencias. Las actividades en este modelo representan actividades humanas.
2. Un flujo de modelo de flujos de datos o de actividad. Representa el proceso como un
conjunto de actividades, cada una de las cuales realiza alguna transformaci
on en los datos.
3. Un modelo de rol / acci
on. Representa los roles de las personas involucradas en el proceso del
software y actividades de las que son responsables.

La mayor parte de los modelos de proceso de software se basan en uno de los tres modelos generales o
paradigmas de desarrollo de software:
1. El enfoque en cascada. Considera las actividades anteriores y las representa como fases de
procesos separados, tales como la especificaci
on de requerimientos, el dise
no de software, la implementaci
on, las pruebas, etc.
2. El desarrollo iterativo. Este enfoque entrelaza las actividades de especificaci
on, desarrollo y
validaci
on. Un sistema incial se desarrolla r
apidamente a partir de especificaciones muy abstractas.
Esto se refina basandose en las peticiones del cliente para producir un sistema que satisfaga las
necesidades de dicho cliente.
3. Ingeniera del software basada en componentes (CBSE) Esta tecnica supone que las partes
del sistema existen. El proceso de desarrollo de sistema se enfoca en la integraci
on de esas partes
m
as que desarrollarlas del principio.

1.7.

Cu
ales son los costos de la ingeniera del software

No existe una respuesta sencilla a esta pregunta ya que la distribuci


on de costos a traves de las
diferentes actividades en el proceso del software depende del proceso utilizado y del tipo de software que
se vaya a desarrollar. Por ejemplo, el software de tiempo real normalmente requiere una validaci
on y
pruebas m
as extensas que los sistemas basados en web. Sin embargo, cada uno de los diferentes enfoques
genericos al desarrollo del software tiene un perfil de distribuci
on de costos diferente a traves de las
actividades del proceso del software. Si se considera que el costo total del desarrollo de un sistema de
software complejo es de 100 unidades de costo, la Figura 1 muestra c
omo se gastan estas en las diferentes
actividades del proceso.

Figura 1: Costo de software.

1.8.

Qu
e son los m
etodos de la ingeniera del software

Un metodo de ingeniera del software es un enfoque estructurado para el desarrollo de software cuyo
prop
osito es facilitar la producci
on de software de alta calidad de una forma costeable. Metodos como
An
alisis Estructurado [3] y JSD [4] fueron los primeros desarrollados en los a
nos 70. Estos metodos
intentaron identificar los componentes funcionales b
asicos de un sistema, de tal forma que los metodos
orientados a funciones a
un se utilizan ampliamente. En los a
nos 80 y 90, estos metodos orieniados a
funciones fueron complementados por metodos orientados a objetos, como los propuestos por Booch
(1994) y Rumbaugh. Estos diferentes enfoques se han integrado en un solo enfoque unificado basado en
el Lenguaje de Modelado Unificado (UML) [5]

1.9.

Qu
e es CASE?

CASE (Ingeniera del Software Asistida por Computadora) comprende un amplio abanico de diferentes
tipos de programas que se utilizan para ayudar a las actividades del proceso del software, como el
an
alisis de requerimientos, el modelado de sistemas, la depuraci
on y las pruebas. En la actualidad, todos
los metodos vienen con tecnologa CASE asociada, como los editores para las notaciones utilizadas en el
metodo, m
odulos de an
alisis que verifican el modelo del sistema seg
un las reglas del metodo y generadores
de informes que ayudan a crear la documentaci
on del sistema.

1.10. Cu
ales son los retos fundamentales que afronta la ingeniera del
software?
En el siglo xxi, la ingeniera del software afronta tres retos fundamentales:
1. El reto de la heterogeneidad. Cada vez m
as, se requiere que los sistemas operen como sistemas
distribuidos en redes que incluyen diferentes tipos de computadoras y con diferentes clases de
sistemas de soporte.
2. El reto de la entrega.Muchas tecnicas tradicionales de ingeniera del software consumen tiempo.
El tiempo que estas consumen es para producir un software de calidad. Sin embargo, los negocios de
hoy en da deben tener una gran capacidad de respuesta y cambiar con mucha rapidez. Su software
de soporte tambien debe cambiar con la misma rapidez. El reto de la entrega es reducir los tiempos
de entrega para sistemas grandes y complejos sin comprometer la calidad del sistema.
3. El reto de la confianza. Puesto que el software tiene relaci
on con todos los aspectos de nuestra
vida, es esencial que podamos confiar en el. Esto es especialmente importante en sistemas remotos
de software a los que se accede a traves de p
aginas web o de interfaces de servicios web, El reto de
la confianza es desarrollar tecnicas que demuestren que los usuarios pueden confiar en el software.

1.11.

Softwares Chronics Crisis

El desarrollo de este paper basicamento lo que nos muestra son historias de proyectos y emprendimientos de de software que a pesar de tener buenas predispociciones fallaron devido a los problemas
imprevistos que se tienen en la ingeniera y a medida que pasaba el tiempo este problema se iba mejorando gracias a las medidas cualitativas. Los fundamentos matem
aticos de la programaci
on se est
an
consolidando merced a la investigaci
on de metodos para la expresi
on algebraica de los dise
nos de programas, lo que ayuda a evitar la comisi
on de errores graves. Los proyectos de desarrollo de software de
tama
no medio suelen consumir vez y media el tiempo previsto, situaci
on que empeora en los grandes. Y
alrededor de tres cuartas partes de todos los sistemas de gran tama
no son fracasos operativos, que no
funcionan como se quera o no se utilizan para nada.

1.12.

No Silver Bullets

Este documento ampliamente discutido sobre ingeniera del software escrito por Fred Brooks en 1986.1
Brooks argumenta que no hay un simple desarrollo en tecnologa o tecnica de gesti
on, que por s solo

prometa incluso una mejora en la productividad, fiabilidad, simplicidad, en un orden de magnitud [por
diez] dentro de una decada. Tambien afirma que, en el desarrollo de software, no podemos esperar
siquiera ver una ganancia del doble cada dos a
nos, como la que hay en el desarrollo del hardware.
Brooks hace una distinci
on entre la complejidad accidental y la complejidad esencial y afirma que
la mayora de lo que ahora hacen los ingenieros de software est
a dedicado a lo esencial, as que reducir
todas las actividades accidentales a cero no dar
a una mejora de un orden de magnitud. Brooks aboga por
abordar las partes esenciales del proceso de software. Mientras que Brooks insiste que no hay ninguna
bala de plata, el cree una serie de innovaciones atacando la complejidad esencial podra conducir a
importantes mejoras (tal vez mayor que diez veces en un perodo de diez a
nos).

1.13.

Conclusi
on

Con las lecturas recomendadas y el capitulo uno de libro [6] tenemos un pantallaso b
asico de lo que
tenemos que afrontar en el desarrollo de software, si durante el proyecto ocurren dificultades hay acciones
a tomar para solucionar el problema tratando de utilizar las metodologias y herramientas que hay en la
actualidad que mejoran satisfactoriamente el proceso y hay que hacer un buen uso de estas.

Referencias
[1] Gibbs, W. Wayt. Softwares chronic crisis.Scientific American 271.3 (1994): 72-81.
[2] Brooks, Frederik P., and No Silver Bullet. .Essence and accidents of software engineering.IEEE
computer 20.4 (1987): 10-19.
[3] de Marco, (1978)
[4] Jackson, (1983)
[5] booch et al., Rumbaug et aL, (1999)
[6] Sommervile, Ingeniera de Software, Prestince Hall, (2005), Ed. 7

Das könnte Ihnen auch gefallen