Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1:
Panorámica General de Ingeniería de Software 1.1. Ingeniería de Software
¿Qué es un modelo de proceso de software? ¿Qué son los costos en Ingeniería de Software?
Es una representación simplificada de un proceso de software Aproximadamente el 70% de los costos son costos de desarrollo y
presentado desde una perspectiva concreta. el 30% son costos de pruebas (testeo).
Las perspectivas del proceso son: Para software a medida, los costos de mantenimiento (evolutivos)
- Perspectiva de flujo de trabajo (workflow) - secuencia de actividades. a menudo sobre pasan los costos de desarrollo.
- Perspectiva de flujo de datos (data-flow) - flujo de información
- Perspectiva rol/acción – Quién hace Qué Los costos varían dependiendo del tipo de sistema a desarrollar y
de los requisitos particulares del sistema tales como rendimiento,
Modelos de procesos genéricos: fiabilidad, etc.
- Modelo en cascada
- Desarrollo evolutivos La distribución de los costos también depende del modelo de
-… proceso de desarrollo que se utilice.
Recomendaciones:
- consejos para la práctica del buen diseño.
Guía en el proceso:
- que secuencia de actividades seguir.
¿Cuáles son los grandes retos a los que se enfrenta la 1.3. Principios de la Ingeniería de Software
Ingeniería de software?
Estos principios tienen que ver con el tanto con el proceso de
ingeniería de software, como con el producto final.
Hacer frente a los sistemas heredados (legacy systems), hacer
frente a la creciente diversidad y hacer frente a las demandas de En realidad se tratan de afirmaciones abstractas que describen
entrega con tiempos cada vez más reducidos. propiedades deseables de los procesos y productos software. Pero,
para aplicar principios, el ingeniero de software debería estar
Los sistemas heredados,
heredados sistemas antiguos pero valiosos, deben equipado con métodos y técnicas específicas que ayuden a incorporar
ser mantenidos y actualizados. las propiedades deseadas en los procesos y productos.
Los métodos son guías generales que gobiernas la ejecución de alguna
Heterogeneidad,
Heterogeneidad consiste en que los sistemas son distribuidos e actividad; son aproximaciones rigurosas, sistemáticas y disciplinadas.
incluyen una mezcla de diferentes hardware y software
(interoperatividad). Las técnicas son algo más mecánicas que los métodos, a menudo
tienen una aplicabilidad más restringida.
Plazos de entrega,
entrega actualmente hay una creciente presión para que A veces, los métodos y técnicas son encapsulados en conjunto para
los sistemas software sean entregados con rapidez. dar vida a una metodología.
El propósito de una metodología es promover una aproximación en la
solución de problemas, preseleccionando los métodos y técnicas a
usar.
Las herramientas, a su vez, son desarrolladas para apoyar la
aplicación de técnicas, métodos y metodologías.
© Ing. Christian Araujo González. T1-
T1-11 © Ing. Christian Araujo González. T1-
T1-12
Rigor y Formalidad
De aquí es que se puede afirmar que la elección de principios y
técnicas está determinada por las metas de calidad del software. • El desarrollo de software es una actividad creativa. Por otra parte el Rigor es un
complemento necesario a la creatividad en toda actividad de ingeniería: es sólo a
Los principios:
- Rigor y formalidad través de la aproximación rigurosa que podremos producir productos mas confiables,
- Separación de intereses controlar sus costos y aumentar nuestras aspiraciones respecto de su confiabilidad.
- Modularidad • El rigor no necesita restringir la creatividad. En lugar de eso, mejora la creatividad
- Abstracción
- Anticipación al cambio mejorando la confianza del ingeniero en los resultados creativos, una vez que ellos
- Generalidad son críticamente analizados a la luz de una planificación rigurosa.
- Incrementalidad • El grado mas alto de rigurosidad es lo que llamamos Formalidad. Así, la formalidad
es un requerimiento más restrictivo que el rigor, requiere que el proceso de software
sea dirigido y evaluado por intermedio de leyes matemáticas.
• El ingeniero debe ser capaz de entender el nivel de rigurosidad y formalidad que
debe alcanzarse, dependiendo de la dificultad conceptual de la tarea y de su
criticidad. Incluso estos niveles pueden variar entre partes de un mismo sistema.
• La ventaja de la formalidad sobre el rigor es que la formalidad puede llegar a ser la
base para la mecanización o automatización del proceso.
2000
. Auge de aplicación de arquitectura en tres capas (DCOM,
CORBA,etc).
. Desarrollo sobre WEB.
. Consolidación de UML.
. Proceso Unificado de Desarrollo
Futuro
. Metodologías ágiles.
© Ing. Christian Araujo González. T1-
T1-19 © Ing. Christian Araujo González. T1-
T1-20