ENSAYOS FRAMEWORKS
Enviado por iblancob • 29 de Octubre de 2013 • 2.583 Palabras (11 Páginas) • 244 Visitas
En la actualidad, las organizaciones han dado suma importancia al uso de sistemas de información computacionales para la realización de sus actividades en forma rápida y eficiente, aprovechando los beneficios que estos les otorgan en el procesamiento de la información en forma rápida y confiable, en la ayuda a tomar decisiones a gerentes y ejecutivos o como sistemas expertos en la solución de problemas de alto grado de especialización en diversas áreas. Esta situación ha provocado que la industria de software haya tenido un gran crecimiento, pero si consideramos como ha surgido este crecimiento podremos entender mejor las condiciones actuales de la industria. En los años 50 nadie podría haber predicho que el software se convertiría en una tecnología en los negocios, la ciencia y la ingeniería; tampoco que permitiría la creación de tecnologías nuevas (por ejemplo la ingeniería genética) y la expansión de tecnologías existentes (por ejemplo las comunicaciones); tampoco que sería la fuerza conductora detrás de la revolución de las computadoras personales o que una gran red de software llamada Internet cubriría y cambiaría todo, desde la investigación bibliográfica hasta los hábitos diarios de las personas, de la misma manera nadie podría haber predicho que millones de programas de computadora tendrían que corregirse, adaptarse y mejorarse conforme pasara el tiempo y que la labor de de desarrollar estas actividades de “mantenimiento” absorbería más gente y recursos que todo el trabajo aplicado para desarrollar software nuevo (Roger S. Pressman, 2005).
Desde que el desarrollo de programas comenzó a tener gran importancia en diversas áreas se definieron procesos para el desarrollo de software, mismos que han ido evolucionando con el paso del tiempo, el aprendizaje generado y las tecnologías que van surgiendo han creado la necesidad de que exista una disciplina que estudie dichos procesos, esta disciplina es la ingeniería de software, misma que tiene por objetivo el definir mecanismos mediante los cuales se puedan desarrollar software mantenible, confiable y fácil de utilizar (Ian Sommerville, 2005). No obstante a pesar de buscar desarrollar aplicaciones con estas características, en la realidad las presiones por los tiempos de desarrollo aunados a la inexperiencia de muchos desarrolladores y a la falta de definición de los requerimientos, da como resultado que estos objetivos no se cumplan y que los procesos de desarrollo de software no se sigan.
Las etapas del proceso de desarrollo de software que define la ingeniería de software son las siguientes (Ian Sommerville, 2005):
1. Especificación del software, también conocida como análisis de requerimientos. En esta etapa se debe definir el software a producir y las reglas de su operación.
2. Desarrollo del software, que normalmente se compone de algunas sub-etapas como: diseño del sistema, codificación, pruebas unitarias, integración del sistema, puesta en producción. En estas etapas se desarrolla en sí el software e idealmente debería ser el punto donde se emplea la mayor parte del tiempo y por ende el costo de la aplicación, pero muchas veces esto no sucede.
3. Validación del software. En esta etapa se debe verificar que el software desarrollado cumpla con lo especificado en el momento en que se definieron los requerimientos y sus reglas de operación.
4. Evolución del software, también conocido como operación y mantenimiento, en esta etapa se incorporan nuevos requerimientos y ajustes que van surgiendo con la operación del sistema, esta etapa muchas veces puede durar años, con lo cual resulta ser la más costosa de todo el proceso de desarrollo de software.
Estas etapas están contenidas en numerosas metodologías que definen la manera en que se deben llevar a cabo; sin embargo, debido a la falta de conocimiento sobre las necesidades que debe cubrir el software y con el fin de cumplir fechas de entrega rígidas que plantean al inicio del desarrollo, las etapas de especificación y validación no son concretadas satisfactoriamente lo que se traduce a que la etapa llamada evolución del software se convierte en una larga etapa de cambios y mantenimiento que van deteriorando el software mismo, por ello esta etapa ha sido motivo de análisis e investigación para la ingeniería de software.
A diferencia del hardware, el software es inmune a los males ambientales por lo que no se desgasta pero si se deteriora, esto sucede debido a que durante su vida va teniendo cambios. Conforme estos ocurren se presenta la posibilidad de introducir errores, lo que ocasiona que la curva de errores tenga un pico como se muestra en la figura 1 y antes de que pueda alcanzar su estado original con una tasa de fallas estable, se requiere otro cambio, lo que ocasiona que la curva tenga otro pico. De esta manera el nivel de fallas mínimo se comienza a elevar; por lo tanto el software se deteriora debido a los cambios y estos cambios pueden surgir incluso antes de que se entregue la primera versión de las aplicaciones desarrolladas (Roger S. Pressman, 2005).
Figura No. 1 Curva de fallas en el software
El software evoluciona a través del tiempo, sin importar su propósito, tamaño o complejidad. El cambio (que normalmente se le conoce como mantenimiento) conduce este proceso, y se presenta cuando se corrigen errores, cuando el software se adapta a un nuevo ambiente o cuando el cliente solicita características o funciones nuevas (Roger S. Pressman, 2005); por lo tanto al diseñar aplicaciones se debe considerar la naturaleza evolutiva de la misma con el fin de que al incorporar dichos cambios, la aplicación sea afectada lo menos posible y de esta manera se puedan mitigar los fallos y se logre un menor deterioro de la misma.
Podemos decir que el surgimiento de los sistemas y aplicaciones basados en Web ha sido el suceso más significativo en la historia de la computación ya que son sofisticadas herramientas de computación que se han integrado con bases de datos corporativas y aplicaciones de negocios y adicionalmente tienen la ventaja de que no necesitan ser instaladas en un cliente, es decir están disponibles en la red para cualquiera que disponga de un navegador.
Las aplicaciones Web son diferentes a otras categorías de software informático ya que contienen algunas características adicionales tales como:
• Intensidad de la red. Se refiere a que una aplicación Web debe satisfacer las necesidades de una variada comunidad de clientes ya que puede colocarse en Internet, una manera de abordar ese tema es colocando la aplicación en una Intranet y de esta manera se puede tener un mayor control sobre la comunidad de clientes que usarán la aplicación pero esto dependerá de las necesidades de cada empresa.
• Concurrencia. Un gran número
...