Вы находитесь на странице: 1из 20

F A C U L T A D

D E

C I E N C I A S
Y
M A T E M T I C A S

F S I C A S

ESCUELA PROFESIONAL
ING. EN COMPUTACIN E INFORMTICA

TRABAJO:

Evolucin de la Ingeniera De Software

DOCENTE:

Ing. Denny Fuentes Adrianzen.


INTEGRANTES:

lvarez Vsquez, Hugo


Custodio Garnique, Roberto
Delgado Tello, Roberto
Odar Millones, Kevin
Velsquez iquen, Pedro
PRESENTACIN:

Enero del 2015


LAMBAYEQUE PER

NDICE
I.

Introduccin _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

II.

03
Ttulo del Tema _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

III.

03
Objetivos _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

IV.

03
Contenido del Tema _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
04
a. Retos de la Ingeniera del Software _ _ _ _ _ _ _ _
04
b. Evolucin del Software: Crisis y Mitos _ _ _ _ _ _ _
04
c. Crisis del Software _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
07
d. Mitos del Software _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
10
e. Sistemas Heredados _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
13
f. Principios de la ingeniera de Software _ _ _ _ _ _

V.

15
Conclusiones _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
19

VI.

Bibliografa _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

VII.

19
Linkografia _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
20

_________________________________________________
___

I.

INTRODUCCIN:
El Software representa la vida interna de un computador, el manejo y
aprovechamiento del mismo y todas las ventajas que se brindan el mundo de las
computadoras, depende del software, facilitando a los usuarios el desarrollo de
programas que contribuyen con tareas diarias tanto personales como generales,
empresariales y organizacionales el software en sus diferentes tipos es el
elemento esencial como interfaz entre usuario - computador, su historia desde un
principio se muestra con poca atencin pero con el paso del tiempo se ha
tornado importante para los programadores y creadores de sistemas tanto de
aplicacin como operativos, todo lo que se ve digitalizado en un computador
representa el software clasificado de alguna forma, las herramientas del men
inicio y todas aquellas que se despliegan al encendido del CPU, el desarrollo de
esta herramienta ha permitido innovar en cuanto a la robtica he inteligencia
artificial facilitando el trabajo en determinadas reas laborales y agilizando las
mismas por ejemplo en la fabricacin de vehculos mediante software de
programacin se disean estructuras robticas inmensas y fuertes que realizan
tareas que al brazo humano le tomaran ms tiempo.

II.

TITULO:
EVOLUCIN DE LA INGENIERA DE SOFTWARE

III.

OBJETIVOS:

El uso eficiente del hardware.


3

Facilidad para usar los recursos.


Mejorar la calidad de los productos de software.
Facilitar el control del proceso de desarrollo de software.
Brindar mayor exactitud en los costos de proyectos y tiempo de desarrollo de los
mismos.

IV.

CONTENIDO DEL TEMA:


RETOS DE LA INGENIERIA DEL SOFTWARE

En el siglo XXI, la ingeniera del software afronta tres retos fundamentales:


1.-El reto de la heterogeneidad: cada vez ms, 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. A menudo es necesario integrar software nuevo
con sistemas heredados ms viejos escritos en diferentes lenguajes de programacin. El
reto de la heterogeneidad es desarrollar tcnicas para construir software confiable que
sea lo suficientemente flexible para adecuarse a esta heterogeneidad.
2.-El reto de la entrega: muchas tcnicas tradicionales de ingeniera del software
consumen tiempo. El tiempo que stas 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 tambin 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 relacin con todos los aspectos de
nuestra vida, es esencial que podamos confiar en l. Esto es especialmente importante en
sistemas remotos de software a los que se accede a travs de pginas web o de
interfaces de servicios web. El reto de la confianza es desarrollar tcnicas que
demuestren que los usuarios pueden confiar en el software.
Por supuesto, estos no son independientes. Por ejemplo, es necesario hacer cambios
rpidos a los sistemas heredados para proveerlos de una interfaz de servicio web. Para

tratar estos retos, necesitaremos nuevas herramientas y tcnicas, as como formas


innovadoras de combinacin y uso de mtodos de ingeniera del software existentes.

EVOLUCIN DEL SOFTWARE: CRISIS Y MITOS

Evolucin del software


Durante los primeros aos de la era de la computadora, el software se contemplaba como
un aadido. La programacin de computadoras era un <<arte de andar por casa>> para el
que existan pocos mtodos sistemticos. El desarrollo del software se realizaba
virtualmente sin ninguna planificacin, hasta que los planes comenzaron a descalabrarse
y los costos a crecer. Los programadores trataban de hacer las cosas bien, y con un
esfuerzo heroico, a menudo salan con xito.

1ra ERA

Durante los primeros aos lo normal era que el hardware fuera de propsito general. Por
otra parte, el software se diseaba a medida para cada aplicacin y tena una distribucin
relativamente pequea. El software como producto (es decir, programas desarrollados
para ser vendidos a uno o ms clientes) estaba en su infancia. La mayora del software se
desarrollaba y era utilizado por la misma persona u organizacin. La misma persona lo
escriba, lo ejecutaba y, si fallaba, lo depuraba. Debido a que la movilidad en el trabajo era
baja, los ejecutivos estaban seguros de que esa persona estar all cuando se encontrara
algn error. Debido a este entorno personalizado del software, el diseo era un proceso
implcito, realizado en la mente de alguien, y la documentacin normalmente no exista.

2da ERA

La segunda era en la evolucin de los sistemas de computadora se extiende desde la


mitad de la dcada de los sesenta hasta finales de los setenta. La multiprogramacin y los
sistemas multiusuario introdujeron nuevos conceptos de interaccin hombre-mquina. Las
tcnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de
sofisticacin del hardware y del software. Los sistemas de tiempo real podan recoger,
analizar y transformar datos de mltiples fuentes, controlando as los procesos y
produciendo salidas en milisegundos en lugar de en minutos. Los avances en los
dispositivos de almacenamiento en lnea condujeron a la primera generacin de sistemas
de gestin de bases de datos.
La segunda era se caracteriz tambin por el establecimiento del software como producto
y la llegada de las <<casas de software>>. El software ya se desarrollaba para tener una
amplia distribucin en un mercado multidisciplinar. Los programas se distribuan para
computadoras grandes y para minicomputadoras, a cientos e incluso a miles de usuarios.

Conforme creca el nmero de sistemas informticos, comenzaron a extenderse las


bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que se
producan programas de decenas de miles de sentencias fuente. Los productos de
software comprados al exterior incorporaban cientos de miles de nuevas sentencias. Una
nube negra apareci en el horizonte. Todos esos programas, todas esas sentencias
fuente tenan que ser corregidas cuando se detectaban fallas, modificadas cuando
cambiaban los requisitos de los usuarios o adaptadas a nuevos dispositivos hardware que
se hubieran adquirido. Estas actividades se llamaron colectivamente mantenimiento del
software. El esfuerzo gastado en el mantenimiento del software comenz a absorber
recursos en una medida alarmante.
An peor, la naturaleza personalizada de muchos programas los haca virtualmente
imposible de mantener. Haba comenzado una crisis del <<software>>.

3ra ERA

La tercera era en la evolucin de los sistemas de computadora comenz a mediados de


los aos setenta y continu ms all de una dcada. El sistema distribuido, mltiples
computadoras, cada una ejecutando funciones concurrentemente y comunicndose con
alguna otra, increment notablemente la complejidad de los sistemas informticos. Las
redes de rea local y de rea global, las comunicaciones digitales de alto ancho de banda
y la creciente demanda de acceso <<instantneo>> a los datos, supusieron una fuerte
presin sobre los desarrolladores del software. An ms, los sistemas y el software que lo
permitan continuaron residiendo dentro de la industria y de la academia. El uso personal
era extrao.
La conclusin de la tercera era se caracteriz por la llegada y amplio uso de los
microprocesadores. El microprocesador ha producido un extenso grupo de productos
inteligentes, desde automviles hasta hornos de microondas, desde robots industriales a
equipos de diagnsticos de suero sanguneo, pero ninguno ha sido ms importante que la
computadora personal.

4ta ERA

La cuarta era de la evolucin de sistemas informticos se aleja de las computadoras


individuales y de los programas de computadoras, dirigindose al impacto colectivo de las
computadoras y del software. Potentes mquinas personales controladas por sistemas
operativos sofisticados, en redes globales y locales, acompaadas por aplicaciones de
software avanzadas se han convertido en la norma. Las arquitecturas informticas estn
cambiando de entornos centralizados de grandes computadoras a entornos
descentralizados cliente/servidor. Las redes de informacin en todo el mundo
proporcionan una infraestructura que iguala a expertos y polticos en pensar sobre una
<<superautopista de informacin>> y una <<conexin del ciberespacio>>. De hecho
6

Internet se puede observar como un <<software>> al que pueden acceder usuarios


individuales.
La industria del software ya es la cuna de la economa del mundo. Las decisiones
tomadas por gigantes de la industria tales como Microsoft arriesgan billones de dlares. A
medida que la cuarta generacin progresa, han comenzado a surgir nuevas tecnologas.
Las tecnologas orientadas a objetos estn desplazando rpidamente los enfoques de
desarrollo de software ms convencionales en muchas reas de aplicaciones. Los
sistemas expertos y el software de inteligencia artificial han salido del laboratorio para
entrar en aplicaciones prcticas de una gran variedad de problemas del mundo real. El
software de redes neuronales artificiales junto con la aplicacin de lgica difusa han
abierto posibilidades excitantes para el reconocimiento de patrones y habilidades de
procesamiento de informacin de carcter humano.

La programacin de realidad virtual y los sistemas multimedia ofrecen formas


radicalmente diferentes de comunicar informacin al usuario final. <<Los algoritmos
genticos>> ofrecen el potencial para el software que reside dentro de las computadoras
biolgicas masivamente en paralelo.

CRISIS DEL SOFTWARE

La crisis del software se fundament en el tiempo de creacin de software, ya que en la


creacin del mismo no se obtenan los resultados deseados, adems de un gran costo y
poca flexibilidad.
Es un trmino informtico acuado en 1968, en la primera conferencia organizada por la
OTAN sobre desarrollo de software, de la cual naci formalmente la rama de la ingeniera
del software. El trmino se adjudica a F.L.Bauer, aunque previamente haba sido utilizado
por Edsger dijkstra, en su obra The Humble Programmer.

Bsicamente, la crisis del software se refiere a la dificultad en escribir programas libres de


defectos, fcilmente comprensibles, y que sean verificables. Las causas son, entre otras,
la complejidad que supone la tarea de programar, y los cambios a los que se tiene que ver
sometido un programa para ser continuamente adaptado a las necesidades de los
usuarios.
Adems, no existen todava herramientas que permitan estimar de una manera exacta,
antes de comenzar el proyecto, cul es el esfuerzo que se necesitar para desarrollar un
programa. Este hecho provoca que la mayora de las veces no sea posible estimar cunto
tiempo llevar un proyecto, ni cunto personal ser necesario. Cuando se fijan plazos
normalmente no se cumplen por este hecho. Del mismo modo, en muchas ocasiones el
personal asignado a un proyecto se incrementa con la esperanza de disminuir el plazo de
ejecucin.
Por ltimo, las aplicaciones de hoy en da son programas muy complejos, inabordables
por una sola persona. En sus comienzos se valor como causa tambin la inmadurez de
la ingeniera de software, aunque todava hoy en da no es posible realizar estimaciones
precisas del coste y tiempo que necesitar un proyecto de software.
Englob a una serie de sucesos que se venan observando en los proyectos de desarrollo
de software:

Los proyectos no terminaban en plazo.


Los proyectos no se ajustaban al presupuesto inicial.
Baja calidad del software generado.
Software que no cumpla las especificaciones.
Cdigo inmantenible que dificultaba la gestin y evolucin del proyecto.

Aunque se han propuesto diversas metodologas para intentar subsanar los problemas
mencionados, lo cierto es que todava hoy no existe ningn mtodo que haya permitido
estimar de manera fiable el coste y duracin de un proyecto antes de sus comienzos.
Factores que afectan:

Aumento del poder computacional.


Reduccin del costo del hardware.
Rpida obsolescencia de hardware y software.
Aceptacin de la computarizacin en las empresas.
Incremento en el nmero de usuarios de los sistemas de software.
Tipo de usuario no homogneo aun en sistemas hechos a la medida.
Personal de desarrollado y mantenimiento diferente.
La magnitud del proyecto impacta en:
Tiempo costo y nmero de desarrolladores,
Control administrativo y detalles tcnicos
Aumento en el conocimiento del problema.

En un trabajo de investigacin me toc exponer sobre "La crisis del Software" y quise
compartir parte de la recopilacin que hice.
La crisis del software es el hecho de que el software que se construye no solamente no
satisface los requerimientos ni las necesidades pedidos por el cliente, sino que adems
excede los presupuestos y los horarios de tiempos. La industria del software no ha podido
satisfacer la demanda, la complejidad del software producido y demandado se incrementa
constantemente, el software es solicitado para ejecutar las tareas demandantes de hoy y
est presente en todos los sistemas que van desde los ms sencillos hasta los de misin
crtica. Las aplicaciones de software son complejas porque modelan la complejidad del
mundo real. En estos das, las aplicaciones tpicas son muy grandes y complejas para que
un individuo las entienda y, por ello, lleva gran tiempo implementar software.

Sntomas
Uno de los principales problemas en el desarrollo de software de hoy en da es que
muchos proyectos empiezan la programacin tan pronto se definen y concentran mucho
de su esfuerzo en la escritura de cdigo. ltimamente el desarrollo de software se
ralentizado. El estudio de este fenmeno es importante porque la existencia de software
cientfico libre facilita que cualquier laboratorio del mundo pueda desarrollar ciencia libre
usando este software como herramienta de trabajo.
Algunos "sntomas" que indican que el software se encuentra en un periodo de crisis son:

Baja Calidad del Software.

Tiempo y Presupuesto Excedido.

Confiabilidad Cuestionable.

Altos Requerimientos de Personal para desarrollo y mantenimiento.

Factores de influencia
Para poder llevar el estado del proceso de software como un estado de crisis, los crticos
han destacado ciertas caractersticas que han permitido esta postura del software
respecto a otras etapas de su corta historia. Algunos de esos factores son:

Aumento del poder computacional


Reduccin del costo del hardware.
Rpida obsolescencia de hardware y software.
Aceptacin de la computarizacin en las empresas.
Incremento en el nmero de usuarios de los sistemas de software.
Tipo de usuario no homogneo aun en sistemas hechos a la medida.
Personal de desarrollado y mantenimiento diferente.

La magnitud del proyecto impacta en:


Tiempo costo y nmero de desarrolladores,
Control administrativo y detalles tcnicos
Aumento en el conocimiento del problema.

Cambios en el entorno

Tecnolgicos(Internet, redes, ERP, CRM, SCM)


Econmicos (crisis econmicas, globalizacin, etctera).
Sociales (nuevas necesidades, costumbres nuevas, etctera).

Posibles causas de la crisis del software


Hay varias razones que pueden ser propuestas como causa de la crisis. No son
mutuamente excluyentes; de hecho, es posible que la verdadera causa sea una mezcla
de todas ellas. Sin embargo, todas tienen en comn que son causadas por el mtodo de
valorar los avances cientficos y el mecanismo actual de financiacin de la actividad
cientfica. Las causas de la crisis del software fueron vinculadas a la complejidad en
general del proceso de software y a la relativa inmadurez de la ingeniera de software
como una profesin. La crisis se manifest a s misma en varias maneras:

Proyectos gestionados con un sobre-presupuesto.


Proyectos gestionados con sobre tiempo.
Software de baja calidad.
El software a menudo no satisfaca los requerimientos deseados.
Los proyectos fueron inmanejables, con un cdigo difcil de mantener.

MITOS DEL SOFTWARE


Qu son los mitos?
Los mitos son creencias que se tienen sobre el software, tanto los desarrolladores
como los que los emplean; poseen la caracterstica de repetirse a lo largo del
tiempo y pueden ser rastreados a los inicios de la computacin. Una de las
razones por las cuales estos mitos son tan populares radica en que parecen
lgicos y en ocasiones son empleados por expertos en el tema.
Tipos de mitos
Se tienen identificados 3 categoras de mitos asociados al software.
Mitos de la Administracin

10

Mitos del Cliente


Mitos del Desarrollador

Mitos de la Administracin.

Los administradores de proyectos de software normalmente deben preocuparse


por garantizar que se cumplan los itinerarios, que se mantengan los costos y que
todo funcione como fue planeado. Lo anterior genera una serie de presin que
muchas veces provoca que ellos se aferren a mitos a manera de salvavidas
liberador de estas situaciones estresantes.
MITO 1: Se tiene un libro con estndares y procedimientos para el
desarrollo de software. Esto proporcionar todo el conocimiento
necesario a mi personal
REALIDAD: Se puede tener el libro, pero se est empleando?,
Los desarrolladores conocen su existencia?, El libro est
actualizado?, Es claro?, Est orientado al alcance de la calidad?
MITO 2: Si se tiene un retraso en el itinerario es factible contratar ms
programadores para terminar a tiempo
REALIDAD: El desarrollo de software no es un proceso mecnico
que permita adicionar ms personas para acelerar su desarrollo. De
hecho es posible que vincular nuevo personal al proyecto provoque
mayores contratiempos y retrasos, considerando el tiempo de
capacitacin y el acople al equipo del personal nuevo.
MITO 3: Si dejo el desarrollo del proyecto de software a un tercero
(subcontrato), puedo relajarme y dejar que esa compaa lo construya?
REALIDAD: No se puede descuidar el proyecto aunque se
subcontrate, si una compaa no comprende cmo administrar y
controlar sus proyectos de software de forma interna, sin lugar a
dudas se presentaran problemas cuando trate de efectuar una
subcontratacin.

Mitos del Cliente

Los clientes pueden llegar de cualquier lugar y tienen caractersticas muy


diferentes, llegan con creencias predefinidas y mitos arraigados que en muchas
oportunidades se explica por el poco esfuerzo de los profesionales del software
por corregir esta desinformacin. La presencia de estos mitos en el cliente produce
falsas expectativas e insatisfaccin con el trabajo del desarrollador.
MITO 1: Una descripcin general de los objetivos es suficiente para
iniciar los trabajos de construccin del software, los detalles se afinaran
ms adelante.

11

REALIDAD: No siempre se tendr claridad con los objetivos, si


estos presentan una ambigedad producirn todo un desastre. La
comunicacin constante y efectiva entre el cliente y el desarrollador
son la mejor manera de identificar los requerimientos del software.
MITO 2: Los requerimientos de un software cambian constantemente,
pero esto no se considerar un problema y se ajustarn rpidamente
porque el software es flexible.
REALIDAD: Es verdad que los requerimientos del software
cambian, pero el impacto de estos cambios depende mucho del
momento en que ellos ocurran. En etapas tempranas el costo de
asimilar los cambios no son tan altos, pero a medida que las etapas
estn ms adelantadas el cambio en los requerimientos puedo
involucrar el adicionar ms recursos y tiempos, incluso cambiar todo
el software.

Mitos del Desarrollador

Los diferentes mitos que acompaan a los programadores se han mantenido


durante muchos aos. El desprenderse de estos mitos se hace difcil pues se
vuelven un elemento de costumbre en los programadores.

MITO 1: Cuando el programa ha sido escrito y se coloc a funcionar, el


trabajo qued terminado.
REALIDAD: Entre el 60 y 80 % del trabajo se realiza posterior a la
entrega al cliente (de acuerdo a estudios).

MITO 2: Mientras el programa no se est ejecutando no hay forma de


evaluar su calidad.
REALIDAD: El software se debe probar en cada una de sus etapas,
esto con el fin de garantizar su calidad. Incluso desde el inicio del
proyecto con las revisiones tcnicas formales y la verificacin de los
requisitos dados por los clientes.
MITO 3: El nico producto que debe entregarse para considerar un
proyecto de software exitoso es el programa funcionando.
REALIDAD: El programa funcionando es solo una parte. La
documentacin del software permite garantizar su calidad, realizarle
mantenimiento y transformarse en una gua para nuevos
desarrolladores.

12

MITO 4: La ingeniera del software obliga a realizar documentacin


voluminosa he innecesaria, teniendo como resultado un proceso ms
lento.
REALIDAD: La ingeniera del software no es realizar
documentacin, es la bsqueda de calidad y con la calidad se
reducen los trabajos redundantes lo que permite un proceso ms
gil. Con ello el cliente no solo recibe a tiempo un producto si no
tiene la garanta que el mismo es de calidad.

SISTEMAS HEREDADOS

Un sistema heredado (o sistema legacy) es un sistema informtico (equipos informticos


o aplicaciones) que ha quedado anticuado pero contina siendo utilizado por el usuario
(tpicamente una organizacin o empresa) y no se quiere o no se puede reemplazar o
actualizar de forma sencilla.
Los sistemas heredados no son slo sistemas de software de aplicacin. Son sistemas
socio-tcnicos, por lo que incluyen procesos de negocio, software de aplicacin, software
de apoyo y sistema hardware.
Muchos sistemas heredados todava se utilizan porque solucionan bien el problema y
reemplazarlos sera demasiado costoso.
Las compaas gastan mucho dinero en sistemas informticos y, para obtener un
beneficio de esa inversin, el software o el hardware debe utilizarse varios aos. El tiempo
de vida de los sistemas informticos es muy variable, pero muchos sistemas grandes se
pueden llegar a utilizar hasta ms de 20 aos. Muchos de estos sistemas antiguos an
son importantes para sus respectivos negocios, es decir, las empresas cuentan con los
servicios suministrados por estos sistemas y cualquier fallo en estos servicios tendra un
efecto serio en el funcionamiento de la organizacin. Estos sistemas antiguos reciben el
nombre de sistemas heredados.
PARTES LOGICAS DE UN SISTEMA HEREDADO Y SUS RELACIONES
1.1 Sistema Hardware: en muchos casos, los sistemas heredados se crearon
para hardware mainframe que ya no est disponible, es costoso de mantener y

13

no est compatible
organizacionales.

con

las

actuales

polticas

de

compras

de

IT

1.2 Software de Apoyo: los sistemas heredados cuentan con una gran variedad
de software de apoyo que va desde sistemas operativos y utilidades
suministradas por el fabricante de hardware hasta los compiladores utilizados
para el desarrollo de sistemas. De nuevo, estos pueden ser obsoletos o ya no
recibir soporte de sus proveedores originales.
1.3 Software de aplicacin: el sistema de aplicacin que proporciona los
servicios de negocio por lo general est compuesto de varios programas
independientes desarrollados en momentos diferentes, algunas veces, el
trmino sistema heredado significa este software de aplicacin en lugar del
sistema completo.
1.4 Datos de aplicacin: son los datos procesos por el sistema de aplicacin. En
muchos sistemas heredados, se ha acumulado un inmenso volumen de datos
a lo largo del tiempo de vida del sistema. Estos datos pueden ser
incongruentes y estar duplicados en varios archivos.
1.5 Procesos de Negocio: son los procesos utilizados en los negocios para lograr
algn objetivo del negocio. Un ejemplo de un proceso de negocio en una
compaa de seguros seria emitir una poltica de seguros; en una fbrica, un
proceso de negocio seria aceptar un pedido para los productos y estipular el
proceso de fabricacin asociado. Los procesos de negocio pueden ser
diseados alrededor de un sistema heredado y restringirlos por la funcionalidad
que este proporciona.
1.6 Polticas y reglas de negocio: son las definiciones de cmo llevar a cabo los
negocios y las restricciones sobre estos. La utilizacin del sistema de
aplicacin heredado est contenida en estas polticas y reglas.

2. Riesgos de un sistema heredado

14

Los sistemas heredados son considerados potencialmente problemticos por numerosos


ingenieros de software por diversos motivos. Dichos sistemas a menudo operan en
ordenadores obsoletos y lentos, cuyo mantenimiento tiene elevados costes y son difciles
de actualizar por falta de componentes adecuados o de mantenimiento.
3. Costes de mantenimiento de un sistema heredado
Seguir utilizando los sistemas heredados evita los mencionados riesgos del reemplazo,
pero hacer cambios al sistema existente en vez de cambiarlo por uno ms moderno
puede ser ms costoso puesto que ste es cada vez ms viejo.
4. Alternativas
Los negocios que tienen sistemas informticos anticuados se enfrentan a un dilema
fundamental. Si continan utilizando los sistemas heredados y realizan los cambios
requeridos, sus costos se incrementarn de forma inevitable. Si deciden reemplazar sus
sistemas heredados con nuevos sistemas, esto tendr un coste y puede ocurrir que los
nuevos sistemas no provean apoyo efectivo al negocio como lo hacen los sistemas
heredados.
5. Mantener el sistema heredado
Muchos negocios estn buscando tcnicas de ingeniera de software que prolonguen el
tiempo de vida de los sistemas heredados y que reduzcan los costos de seguir utilizando
estos sistemas
Los sistemas heredados son considerados por las organizaciones de TI como elementos
destacados dentro del nuevo concepto de empresa. Los usuarios ya no preguntan cmo
librarse de sus sistemas heredados, sino que buscan formas para aprovechar el valor de
negocio de estos sistemas heredados.

PRINCIPIOS DE INGENIERA DE SOFTWARE

Apuntan al proceso de ingeniera y el producto final: el proceso correcto ayudar a


obtener el producto correcto. Asimismo, el producto afectar la eleccin de qu proceso
usar.
Los principios son afirmaciones abstractas que describen propiedades deseables del
proceso y del producto. Para aplicarlas, los ingenieros deben contar con mtodos y
tcnicas que incorporen dichos principios.
Mtodos: guas para la ejecucin de alguna actividad, aproximaciones rigurosas,
sistemticas y disciplinadas.

15

Tcnicas: son ms mecnicas que los mtodos y tienen aplicabilidad ms


restringida.

Rigor y formalidad.
El rigor es un complemento de la creatividad en la ingeniera. Con la aproximacin
rigurosa podremos tener productos ms confiables y mejores controles (de tiempo,
costos, etc.). El rigor mejora la creatividad, optimizando la confianza en los resultados
creativos, una vez analizados en base a una planificacin rigurosa.
Hay varios grados de rigurosidad. El ms alto es la formalidad, que es un requerimiento
ms restrictivo que el rigor, que exige que el proceso de software sea dirigido y evaluado
con leyes matemticas. La formalidad implica rigor, pero uno puede ser riguroso e
informal.
En ingeniera, el proceso de diseo son pasos bien definidos y con bases slidas. En
cada paso el ingeniero sigue algn mtodo o tcnica basados en resultados tericos de
un modelado formal de la realidad o en ajustes empricos de fenmenos no considerados
por el modelo, o en reglas heursticas que dependen de la experiencia. Todo est resuelto
en una aplicacin rigurosa y sistemtica (metodologa), fcilmente explicada y aplicada
una y otra vez.
El ingeniero debe saber cmo y cundo ser formal, adems de entender el nivel de
rigurosidad y formalidad a alcanzar, dependiendo de la dificultad de la tarea y su criticidad.
Ej.: podemos ser muy formales para las partes crticas de un problema y para las partes
estandarizadas aplicar una aproximacin ms simple.
El rigor y la formalidad benefician tambin la mantenibilidad, reusabilidad, portabilidad,
comprensin e interoperabilidad del software. Ej.: la documentacin nos permite prever la
evolucin del proyecto, los recursos a usar, etc., as como nos ayuda a mantener el
producto, al usarla para cualquier modificacin que se requiera; y por ltimo nos permite
monitorear el software en forma precisa, para garantizar el cumplimiento de los puntos de
control y mejorar la productividad.

Separacin de intereses.
Es involucrarse con distintos aspectos de un problema para concentrarse en ellos
separadamente. En cada proyecto debemos separar aspectos: primero, aislar los factores
relacionados ms dbilmente y luego considerar los factores en la medida en que
impactan el anlisis.

Separacin en base al tiempo: permite planificar las actividades de manera


precisa.
Separacin en trminos de calidades: manejar separadamente la eficiencia y la
correccin de un programa, diseando software cuidadoso y

16

estructuradamente, tal que su correccin est garantizada a priori y luego


reestructurada para mejorar su eficiencia.
Separacin por vistas: separar los datos que fluyen de una actividad a otra en
el flujo de control que gobierna la sincronizacin de las actividades.

La separacin implica separacin de responsabilidades para tratar los distintos aspectos.


Es la base para la asignacin del trabajo en asignaciones especficas para distintas
personas con distintas habilidades.

Modularidad.
Divisin de un sistema en partes ms simples (mdulos). Esto nos permite separar los
contextos en fases: cuando relacionamos cada mdulo aislado y cuando relacionamos
todos los mdulos globalmente, analizando sus conexiones e integracin.
Objetivos de la modularidad:

Capacidad de descomposicin de un sistema complejo: divisin del problema


original en subproblemas y luego dividir cada subproblema.
Composicin de un sistema a partir de componentes existentes: partir de
componentes elementales hasta llegar al sistema terminado. Cuando un
componente falla, se reemplaza por uno nuevo. Podemos usar mdulos de una
biblioteca, que al ser reutilizables, aceleran el proceso de construccin.
Comprensin del sistema mirndolo en partes: Nos facilita la reparacin y
modificacin, al buscar los errores en un componente en particular.

Para lograr los tres objetivos, los mdulos deben tener:

Alta cohesin: sus elementos internos estn muy relacionados y


agrupados por razones lgicas.
Bajo acoplamiento: es la relacin entre mdulos y mide la
interdependencia entre 2 mdulos. La idea es lograr que los mdulos
tengan un nivel bajo.

Las estructuras que cumplan esto nos permiten ver los mdulos como cajas negras
cuando describimos la estructura total y verlos separadamente cuando analizamos la
funcionalidad de cada uno.

Abstraccin.
Es identificar los aspectos importantes de un fenmeno e ignorar los detalles. Esto
depende de cada persona o de cada enfoque o propsito que se le d a un problema.
Los modelos que construimos son abstracciones de la realidad, vlidas tambin para
modelos de software. Los lenguajes de programacin son abstracciones que nos permiten
construir sin preocuparnos por los detalles de hardware.

17

Este principio es importante para aplicarlo a productos y procesos software. Cuando la


documentacin de un programa o procedimiento se analiza, se supone que suministra
toda la informacin necesaria para entender las otras partes del programa que usan ese
procedimiento.

Anticipacin al cambio.
Se refiere a la mantenibilidad. Es poder predecir los cambios y trabajar para que los
cambios futuros sean fciles de aplicar. Esto es importante en el software, ya que los
productos estn en ambientes donde permanentemente surgen nuevos requerimientos.
La reusabilidad tambin se ve afectada por esto. Un componente es reusable si se puede
emplear para generar un nuevo producto o si solo requiere pequeos cambios para ello.
La reusabilidad es la capacidad de evolucionar que tienen los componentes. Para
anticiparse al cambio debemos contar con herramientas de administracin de versiones y
revisiones de software. Debemos poder almacenar y recuperar informacin, mdulos
fuente y objetos, todo desde una base de datos central.
Asimismo se afecta al proceso de software, al considerar el mantenimiento de una
aplicacin y asignando estructura y costos para apoyar la evolucin del software.

Generalidad.
Poder descubrir un problema ms general en la resolucin de un primer problema. Este
puede ser menos complejo y proveer soluciones reutilizables. Puede surgir de un paquete
ya existente o lo podemos crear nosotros.
Sin embargo, puede ser ms costoso en trminos de velocidad de ejecucin,
requerimientos de memoria o tiempos de desarrollo. Este principio es fundamental si se
busca desarrollar herramientas software para uso amplio en el mercado.
Si el problema puntual se puede reformular como una instancia de un problema general,
es conveniente adoptar el paquete en vez de una solucin especfica.

Incrementalidad.
Desarrollar paso a paso con incrementos, logrando aproximaciones sucesivas. Esto nos
da un proceso evolutivo.
Debemos identificar subconjuntos primarios tiles para desarrollar y distribuir a los
clientes, de manera de obtener realimentacin temprana. Esto nos permite que la
aplicacin evolucione de manera controlada, en casos donde los requerimientos iniciales
no se comprendieron bien.
Las etapas intermedias son prototipos del producto final, lo cual beneficia el entendimiento
de los requerimientos y permite usar un modelo de desarrollo iterativo ms flexible.

18

Debemos tener mucho cuidado en la manipulacin de documentos, programas, datos de


prueba y todo lo que usemos en las distintas versiones. Cada paso incremental
significativo debe ser registrado.

V.

CONCLUSIONES
El software se ha convertido en el elemento clave de la evolucin de
los sistemas y productos informticos.
En las pasadas cuatro dcadas, el software ha pasado de ser una
resolucin de problemas especializadas y una herramienta de anlisis
de informacin, a ser una industria por s misma. Pero la temprana
cultura e historia de la programacin ha creado un conjunto de
problemas que persisten todava.
El software se ha convertido en un factor que limita la evolucin de los
sistemas informticos.
El software se compone de programas, datos y documentos. Cada uno
de estos elementos componen una configuracin que se crea como
parte del proceso de la Ingeniera del Software. El intento de la
Ingeniera del Software es proporcionar un marco de trabajo para
construir software con mayor calidad.

VI.

BIBLIOGRAFA

PRESSMAN, ROGER S., Ingeniera de software, un enfoque prctico,

sexta edicin. Editorial McGrawHill, Mxico, ao 2006 (Libro de texto).


Requirements Engineering: From System Goals to UML Models to
Software Specifications
o Axel van Lamsweerde Wiley, 2009

19

Piattini et al., 2007. Anlisis y diseo de Aplicaciones Informticas de


Gestin. Una perspectiva de Ingeniera del Software. Ra-Ma. Junio
2007.

VII.

LINKOGRAFA

http://www.monografias.com/trabajos73/evolucion-software/evolucion-

software.shtml
http://es.slideshare.net/josefabiandiazs/mitos-del-software-30680129
http://es.slideshare.net/marfonline/evolucion-de-la-ingenieria-de-software
http://acis.org.co/ingesoftware/?p=1
https://books.google.com.pe/books?
id=gQWd49zSut4C&pg=PA35&dq=sistemas+heredados+de+la+ingenieria+de+soft
ware&hl=es419&sa=X&ei=vP2qVOLqKMm_ggSs2oPQBw&redir_esc=y#v=onepag
e&q=sistemas%20heredados%20de%20la%20ingenieria%20de
%20software&f=false

20

Вам также может понравиться