Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap 1
Cap 1
Software
Preguntas frecuentes acerca de la Ingeniería
de Software.
Responsabilidad ética y profesional.
La computación comprende teorías y
fundamentos de cualquier sistema de cómputo;
a la Ingeniería de Software le concierne los
aspectos prácticos del desarrollo y entrega de
software útil.
Las teorías de la computación aún son
insuficientes para respaldar completamente a
la Ingeniería de Software (indistintamente a,
ejemplo, la física y la ingeniería eléctrica).
A la ingeniería de sistemas le competen todos los
aspectos de desarrollo de sistemas basados en
cómputos, incluyendo hardware, software y
procesos de ingeniería. La Ingeniería de Software
es parte de este proceso, haciendo referencia al
desarrollo de la infraestructura del software,
aplicaciones y bases de datos en el sistema.
Los ingenieros de sistemas están involucrados con
la especificación del sistema, diseño
arquitectónico, integración y despliegue del mismo.
Rigurosamente, 60% de los costos son de
desarrollo, 40% son costos de prueba. Para
software hecho a medida, los costos de evolución
a menudo exceden los costos de desarrollo.
Varían acorde al tipo de sistema a desarrollar y a
los requerimientos con respecto a los atributos
del mismo, como ser el funcionamiento y la
confiabilidad del sistema.
La distribución de los costos depende del modelo
empleado para el desarrollo del software
Iterative development
0 25 50 75 1 00
0 25 50 75 1 00
Sistemas de software cuya finalidad es la de proveer
soporte automatizado para actividades de proceso o
desarrollo de software.
Los sistemas CASE son usados con frecuencia como
soporte dentro de la metodología de desarrollo.
Herramientas CASE tempranas o Superiores
• Herramientas para soportar las actividades tempranas de
requerimientos y diseño dentro del proceso de software;
Herramientas CASE tardías o Inferiores
• Herramientas para soportar actividades posteriores como ser
la programación, depuración y prueba o testeo.
El software debe entregar la funcionalidad y el
funcionamiento requeridos por el usuario al él mismo, y
debe ser mantenible, confiable y aceptable.
Mantenibilidad
• El software debe evolucionar para cubrir necesidades
cambiantes;
Confiabilidad
• El software debe ser confiable;
Eficiencia
• El software no debería hacer mal uso de los recursos del
sistema;
Aceptabilidad
• El software debe aceptar las necesidades de los usuarios
para los cuales fue diseñado. Esto significa que debe ser
entendible, de utilidad y compatible con otros sistemas.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 19
Cuáles son los desafíos primordiales frente a la
Ingeniería de Software?
Heterogeneidad, entrega y confianza.
Heterogeneidad
• Técnicas de desarrollo para la construcción de software que
puedan encararse con plataformas heterogéneas y
ambientes de ejecución apropiados;
Entrega
• Técnicas de desarrollo que lleven a una entrega de software
más rápida;
Confianza
• Técnicas de desarrollo que demuestren que el software es
de confianza para con sus usuarios.