Intranet Mapa del sitio Contáctenos
Mapa --> Home / Ambiente de Ingeniería  
Software Factory
Calidad de Software
Metodología de Proyectos
Tecnologías






Quebrada de Humahuaca 
Jujuy - Argentina 


En un enfoque de ingeniería clásico se define claramente el problema a resolver y se desarrollan herramientas estándar y técnicas para resolverlo. Las disciplinas ingenieriles clásicas son las herramientas y madurez matemática para especificar propiedades del producto.

La meta de cualquier actividad de ingeniería es construir algo, un producto. El producto de la ingeniería de software es una "aplicación de software". No es un producto tan tangible como el resultante de otras ingenierías, pero no deja de ser un producto y cumple una función.

El Software es un producto que por su naturaleza, tiene características propias:

Es un producto de creación intensivamente humana. Requiere ingeniería más que fabricación. La fabricación es un proceso trivial de duplicación

El costo del desarrollo de software se concentra en las tareas de Ingeniería, mientras que en la fabricación clásica el costo se acentúa más en las tareas de fabricación

Es de existencia inmaterial, esto implica no poder hablar de su deterioro, que sin embargo se produce en el soporte físico que lo contiene.

Es maleable. Se puede modificar el producto, pero es difícil de validar, y casi todo tipo de modificación afecta a la definición del producto.

El mantenimiento del software es mucho más complejo que el mantenimiento del hardware. Cuando un componente del hardware se deteriora se sustituye por una pieza de repuesto, pero cada fallo en el software implica un error en el diseño o en la implementación.

Un cambio por actualización en el software debe considerarse como un cambio principalmente en el diseño, y como consecuencia de ésto, producirá un cambio en el código. Hay que enfrentar esos cambios con disciplina.

Es dependiente del hardware y del entorno software en el que se ejecuta, lo que implica una importante complejidad en su funcionamiento.

Cualquiera sea el producto, se espera que satisfaga alguna necesidad y cumpla con los estándares que definen las propiedades que debe poseer.

Tiene un concepto de fiabilidad diferente al del material ya que no existe deterioro físico de sus componentes, los errores se derivan de su definición y según las condiciones de explotación puede variar el resultado obtenido.

La Ingeniería de Software es "La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del software, es decir la aplicación de ingeniería al software".

Para el éxito en el desarrollo de software, hay que aplicar ciertos principios tanto en los procesos de ingeniería de software como en el producto final. Para aplicar estos principios, es necesario contar con métodos y técnicas específicas que ayuden a incorporar las propiedades deseadas en los procesos y los productos.

Se considera que los Métodos son guías generales para la ejecución de alguna actividad, debiendo ser rigurosos, sistemáticos y disciplinados. Las Técnicas son de aplicabilidad más restringida, de carácter más técnico y mecánico. Las Metodologías son métodos y técnicas asociados para promover cierta aproximación a la resolución de un problema. Las Herramientas soportan la aplicación de métodos, técnicas y metodologías.

Una metodología debe ser rigurosa y sistemática para poder ser explicada fácilmente y aplicada una y otra vez.

En consecuencia, para cumplir con los objetivos de calidad, debe encararse el desarrollo de software con un criterio ingenieril clásico, adoptando sus principios en la Ingeniería de Software: 

Rigor: es el complemento necesario a la creatividad en cada actividad ingenieril. Permite: desarrollar productos más confiables, controlar los costos, aumentar la credibilidad de los resultados

Formalidad: requiere que el proceso de software sea conducido y evaluado por leyes matemáticas. La formalidad debe ser la base de mecanización del proceso. El uso de formalidad en la implementación tiende a aumentar efectivamente la confiabilidad y verificabilidad de los productos de software.

Separación de Responsabilidades: permite asignar roles o especialidades para tratar diferentes aspectos de un problema, concentrándose separadamente en cada uno.

Modularidad: un sistema complejo puede ser dividido en partes más sencillas denominadas módulos, para tratarlos separadamente, y luego integrarlos en un sistema coherente. El tratamiento de los módulos puede ser: por descomposición (top down) o por composición (bottom up). Los módulos deben tener alta cohesión y bajo acoplamiento.

Abstracción: es el proceso por el cual se identifican los aspectos importantes de problema y se ignoran aquellos que no son relevantes para su comprensión.

Anticipación al cambio: es el proceso por el cual se identifican las necesidades de reparación o evolución de una aplicación, en la medida que surjan nuevos requerimientos o se modifiquen los anteriores. Surgen diferentes versiones y revisiones de la aplicación en una forma controlada.

Generalización: es el proceso por el cual se descubre un aspecto más general al analizar los componentes de un problema.

Incrementación: es el proceso por el cual se identifican los aspectos de una aplicación a desarrollar, para entregarle una posible solución al usuario y obtener de él una pronta realimentación. Los productos intermedios serán prototipos del producto final.

Revisión: El proceso de revisión se aplica a través del proceso de desarrollo y durante la evolución de la aplicación.

 


ADA Software Factory,  Otamendi 48, Piso 5º, 1405 Buenos Aires, Argentina · Tel.: +54 (11) 15-5042-9597 
  
Copyright © 2008 ADA Software Factory. Todos los derechos reservados.