Este documento presenta una introducción a la ingeniería de software. Explica que la ingeniería de software se encarga de construir y mantener software como producto a largo plazo. Detalla la evolución del software desde las primeras décadas enfocadas en el desarrollo de hardware hasta la actualidad, donde el objetivo es mejorar la calidad de las soluciones de software. También describe algunos de los principales problemas que surgen en el desarrollo de software como la insatisfacción del cliente, la baja productividad y la dificultad de mantener el software
Una introducción al por qué de la Ingeniería de Software. Imágenes tomadas de http://t2.gstatic.com/images?q=tbn:ANd9GcQJUO_05Q57LXI5R9UrJl28dX9GTPSmSPgrHWlncZsQm-nx9oRD.
Información del texto: Ingeniería de Software de Ian Sommerville
Una introducción al por qué de la Ingeniería de Software. Imágenes tomadas de http://t2.gstatic.com/images?q=tbn:ANd9GcQJUO_05Q57LXI5R9UrJl28dX9GTPSmSPgrHWlncZsQm-nx9oRD.
Información del texto: Ingeniería de Software de Ian Sommerville
Las diferentes estrategias de desarrollo efectuadas y alternativas para lograr una mayor efectividad y sostenibilidad en la transformación de servicios de calidad que se implementaron en las municipalidades no fueron las más adecuadas en el periodo de estudio.
La falta de interés y compromiso del gobierno municipal y de los servidores públicos, trajo como consecuencia la falta de confianza y compromiso de sus vecinos y organizaciones vecinales.
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo.
Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
La Ingeniería de Software es el establecimiento y uso de principios robustos de la ingeniería a fin de obtener económicamente software que sea fiable y que funcione eficientemente sobre máquinas reales.
Las diferentes estrategias de desarrollo efectuadas y alternativas para lograr una mayor efectividad y sostenibilidad en la transformación de servicios de calidad que se implementaron en las municipalidades no fueron las más adecuadas en el periodo de estudio.
La falta de interés y compromiso del gobierno municipal y de los servidores públicos, trajo como consecuencia la falta de confianza y compromiso de sus vecinos y organizaciones vecinales.
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo.
Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
La Ingeniería de Software es el establecimiento y uso de principios robustos de la ingeniería a fin de obtener económicamente software que sea fiable y que funcione eficientemente sobre máquinas reales.
1. Sesión I: Introducción.
¿Qué es ingeniería de software?
Ing. Luis Alfredo Fernández Vizcarra
lfernandez@speedy.com.pe
lfernandez@coesi.com.pe
2. Vistazo rápido: Software
¿Qué es?
• Producto que los ingenieros de software
construyen y lo mantienen a largo plazo.
• Se encuentran del computador de
cualquier tamaño y arquitectura.
¿Quién lo hace?
• Los ingenieros de software lo construyen
y lo custodian.
• Es usado directa o indirectamente por
casi todo el mundo industrializado.
¿Por qué es importante?
• Afecta de forma cercana a los aspectos de
nuestras vidas.
• Omnipresente en el comercio, la cultura,
y las actividades cotidianas.
¿Cuáles son los pasos?
• Se aplica el enfoque de ingeniería de
software.
• Se construye como cualquier producto de
éxito.
• Proceso que conduzca a un resultado de
alta calidad y que satisfaga la necesidad
de la gente que usará el producto.
¿Cuál es el producto
obtenido?
• Perspectiva del Ing. de software:
producto, programas, contenido (datos) y
documentos.
• Perspectiva del usuario: El producto
obtenido es la información resultante que
mejore el mundo del usuario.
¿Cómo puedo estar seguro
de que lo he hecho
correctamente?
• Seleccionar las ideas aplicables a un
software específico.
3. – Primeras décadas:
• Desarrollar el hardware
• Reducir costes de procesamiento y almacenamiento
– Década de los ochenta:
• Desarrollo de la microelectrónica
• Mayor potencia de cálculo y reducción de costes
– Objetivo actual: mejorar la calidad de las soluciones software.
Orientación
por lotes
Distribución
limitada
Software a
medida
Multiusuario
Tiempo real
Bases de datos
Software como
producto
Mayores gastos
de mantenimiento
Sistemas distribuidos
Inteligencia Artificial
Hardware de bajo
coste
Impacto en el
consumo
Redes area local
y global
Gran demanda
Potentes sistemas
de sobremesa
Tecnología de objetos
Sistemas expertos
Redes neuronales
Cliente/servidor
Tecnologías de
Internet.
1959 - 1965 1965 - 1975 1975 - 1989 1989 -
AUMENTAN los problemas del desarrollo de software:
Subexplotación del potencial del hardware.
Incapacidad de atender a la demanda.
Incapacidad de mantener el software existente.
Características y evolución del software
4. El software desde una perspectiva industrial
– El valor del software: de “elemento añadido” a principal elemento de
coste
– El desarrollo del software:
– Algunas preguntas:
• ¿Por qué se tarda tanto? (y casi siempre más de lo previsto)
• ¿Por qué la productividad es tan baja?
• ¿Por qué cuesta tanto?
• ¿Por qué siempre quedan errores sin localizar?
Características y evolución del software
5. El software como elemento lógico.
1. Se desarrolla, no se fabrica:
• Calidad del diseño.
• Costes más importantes en la ingeniería
• Gestión especial de los proyectos
2. Se “deteriora” con el mantenimiento y no se “desgasta”.
3. Desarrollo a medida (ausencia de componentes)
La “crisis” del software: problemas que aparecen en el desarrollo del
software al desarrollar, mantener y atender la demanda de nuevas
aplicaciones.
Insatisfacción del cliente
Planificación y estimaciones
imprecisas
Calidad
Sin tiempo para recoger
datos históricos
Baja productividad
Dificultad de mantener
el software existente
Naturaleza y problemas del desarrollo del
software
6. Conforme grupos de 03 integrantes y sitúese en un escenario donde se solicita
elaborar un software para automatizar un proceso de productivo o servicio.
Baetjer puntualiza: “El proceso ofrece una interacción entre usuarios y diseñadores,
entre usuarios y herramientas en evolución, entre diseñadores y herramientas en
evolución [tecnología]”.
Hágase cinco (05) preguntas respecto a…
a) … lo que los diseñadores deben preguntar a los usuarios.
b) … los usuarios deben de preguntar a los diseñadores.
c) … lo que los usuarios deben de preguntarse a sí mismos sobre el producto de
software que se construirá.
d) … lo que los diseñadores deben de preguntarse a sí mismos sobre el producto de
software que se construirá y el proceso que se utilizará para hacerlo.
Caso práctico
7. Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de
Software, cap. 1
Pressman, R.S., Ingeniería del Software. Un enfoque práctico, cap. 1 y 2
Sommerville, I., Ingeniería de Software, cap. 1, 2 y 3
Referencias