2. Contenido de la materia
El software y la Ingeniería de Software
La determinación de requerimientos
Diseño del sistema
Diseño orientado a objetos
Escribiendo programas
Prueba de programas
Prueba de sistema
La entrega del sistema
Mantenimiento del sistema
Evaluación de productos, procesos y recursos
2
3. “
”
El software y la Ingeniería de
Software
Introducción
Cap. 1 – Ingenieríade software, un enfoque práctico – R.s. Pressman
3
4. ¿Qué es el software?
Es el producto que construyen los programadores y al que después
le dan mantenimiento.
Incluye a los programas que se ejecutan en una computadora de
cualquier tamaño o arquitectura.
La ingeniería de software está formada por un proceso, un conjunto
de métodos y un arreglo de herramientas que permite a los
profesionales elaborar software de calidad.
4
5. ¿Por qué es importante?
El software es importante porque afectaa casi todos los aspectos de
nuestras vidas, han invadido nuestro comercio, cultura y actividades
cotidianas.
El software distribuye el producto más importante de nuestro tiempo:
información.
Transformalos datos personales (por ejemplo, las transacciones bancarias
de un individuo) de modo que puedan ser más útiles en un contexto local
y global.
La ingeniería de software es importante porque nos permite construir
programas complejos en un tiempo razonable y con calidad.
5
6. ¿Cuáles son los pasos?
Se construye con una aplicación de
pasos en un proceso ágil y
adaptable para obtener un
resultado que satisfaga las
necesidades de las personas que lo
usarán.
En estos pasos es que se enfoca la
ingeniería de software.
6
7. ¿Cuál es el producto final?
Desde el punto de vista de un
ingeniero de software:
El producto final es el conjunto de
programas, contenidos (datos) y otros
productos terminados que
construyen el software.
Desde el punto de vista del usuario
El producto final es la información
resultante que de algún modo hace
mejor al mundo en que vive.
7
8. Dominios de aplicación del software
Software de sistemas
Software de aplicaciones
Software de ingeniería y ciencias
Software incrustado
Software de línea de producto
Aplicaciones web
Software de ingeniería artificial
8
9. Software heredado
Son programas antiguos
Que han sido modificados de manera continua
Resultan costosos mantenerlos y riesgosos evaluarlos.
Pero… continúan siendo apoyo para las funciones básicas del negocio.
¿Qué hago si encuentro un sistemaheredadode malacalidad?
Hacer nada, al menos que el sistema heredado tenga un cambio significativo.
¿Qué tipos de cambios se hacen a los sistema heredados?
Adaptaciones a nuevas tecnologías.
Nuevos requerimientos del negocio
Operables con otros sistemas o base de datos
Rediseñarse para un nuevo ambiente de redes.
9
10. Ingeniería de Software
Algunas realidades que se debe
enfrentar el desarrollador de software:
El software se ha incrustado en casi todos
los aspectos de nuestra vida.
Los requerimientos de las tecnologías se
hacen más complejos cada año.
Los individuos cada vez más dependen
del software para la toma de decisiones.
A medida que una aplicación se utilice
más, se necesita mayor mantenimiento.
10
11. Definición 1 de Ingeniería de Software
“La Ingeniería de Software es el establecimiento y uso de
principios fundamentales de la ingeniería con objeto de
desarrollar en forma económica software que sea confiable y
que trabaje con eficiencia en máquinas reales”.
Esta definición dice poco de:
Aspectos técnicos de calidad de software
No habladirectamente de la necesidad de satisfacer a los consumidores.
No establece la importancia de un proceso eficaz.
11
12. Definición 2 : (IEEE93a)
“ La Ingeniería de software es:
1) La aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación y mantenimiento de
software.
2) El estudio de enfoques según el punto 1.
12
14. El Proceso de software
Un proceso es un conjunto de actividades, acciones y tareas que se
ejecutan cuando va a crearse algún producto del trabajo.
Una actividad buscalograr un objetivo amplio ( por ejemplo,
comunicación con los participantes)
Una acción es un conjunto de tareas que producen un producto ( por
ejemplo un modelo de diseño de arquitectura)
Una tarea se centra en un objetivo pequeño pero bien definido ( por
ejemplo, realizar una prueba unitaria) que produce un resultado tangible.
14
16. Actividades “sombrillas”
Seguimiento y control del proyecto de software.
Administración del riesgo.
Aseguramiento de la calidad del software
Revisiones técnicas
Medición.
Administración de la configuración del software.
Administración de la reutilización.
Preparación y producción del producto del trabajo.
16
17. La Práctica de la Ingeniería de
Software -La esencia de la práctica
Entender el problema
¿Quiénes son los participantes de la solución el problema?
¿Cuáles son los datos, funciones y características que son requeridos para solucionar el problema?
¿Puede fraccionarse el problema?
¿Es posible representar gráficamente el problema?
Plantear la solución
¿He visto problemas similares?
¿Existen soluciones para problemas más pequeños?
¿Es posible una implementación más eficaz?
Ejecutar el plan
¿Se ajusta la solución al plan?
¿Se han hecho todas las correcciones que fueron solicitadas?
Examinar el resultado
¿Se han implementado una estrategia de pruebas razonable?
¿Se ha validado contra los requerimientos de los usuarios
17
18. La Práctica de la Ingeniería de
Software – Principios Generales
1º principio: La razón de que exista todo.
2º principio: MSE
3º principio: Mantener la visión.
4º principio: Otros consumen lo que usted produce.
5º principio: Abrase al futuro.
6º principio: Plantee por anticipado la reutilización.
7º principio: ¡Piense!
18
19. La Práctica de la Ingeniería de
Software - Mitos
Mitos de la administración
¿Este software no le dará a mi personaltodo lo que necesitasaber?
Si nos atrasamos, podemos agregarmás programadores y ponernos al día.
Si deseo subcontratara un tercero elproyectode software, puedo descansary dejar que esa
compañíalo elabore.
Mitos del cliente
Con el enunciado generales suficiente, podemos entraren detalle más adelante.
Los requerimientoscambian continuamente, pero el cambio es sencillo ya que el software es
flexible.
Mitos del profesional
Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.
Hasta que no corra el programa, no hay manera de evaluarsu calidad.
El único producto que se entregaen un proyectoexitosoes el programaque funciones.
La ingeniería de software hará que generemos documentaciónvoluminosae innecesaria
19