Beruflich Dokumente
Kultur Dokumente
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
1.1.
Qu
e es Software?
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?
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
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.
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