Ingeniería del software

Proceso del software

Elementos

Estructura de proceso

Comunicación

Planeación

Modelado

Construcción

Despliegue

Actividades Estructurales

Seguimiento y control del proyecto de software

Permite que el equipo de software evalúe el progreso comparándolo con el plan del proyecto y tome cualquier acción necesaria para apegarse a la programación de actividades.

Administración del riesgo

Evalúa los riesgos que puedan afectar el resultado del proyecto o la calidad del producto.

Aseguramiento de la calidad del software

Define y ejecuta las actividades requeridas para garantizar la calidad del software.

Revisiones técnicas

Evalúa los productos del trabajo de la ingeniería de software a fin de descubrir y eliminar errores antes de que se propaguen a la siguiente actividad

Medición

Define y reúne mediciones del proceso, proyecto y producto para ayudar al equipo a entregar el software que satisfaga las necesidades de los participantes; puede usarse junto con todas las demás actividades estructurales y sombrilla

Administración de la configuración del software

Administra los efectos del cambio a lo largo del proceso del software

Administración de la reutilización

Define criterios para volver a usar el producto del trabajo (incluso los componentes del software) y establece mecanismos para obtener componentes reutilizables.

Preparación y producción del producto del trabajo

Agrupa las actividades requeridas para crear productos del trabajo, tales como modelos, documentos, registros, formatos y listas

Práctica de la ingeniería de software

La esencia de la práctica

Entender el problema (comunicación y análisis).

Planear la solución (modelado y diseño del software)

Ejecutar el plan (generación del código)

Examinar la exactitud del resultado (probar y asegurar la calidad)

Preguntas esenciales

Entender el problema

¿Quiénes tienen que ver con la solución del problema? Es decir, ¿quiénes son los participantes?

¿Cuáles son las incógnitas? ¿Cuáles datos, funciones y características se requieren para resolver el problema en forma apropiada?

¿Puede fraccionarse el problema? ¿Es posible representarlo con problemas más pequeños que sean más fáciles de entender?

¿Es posible representargr4ficamente el problema? ¿Puede crearse un modelo de análisis?

Planear la solución

¿Ha visto antes problemas similares? ¿Hay patrones reconocibles en una solución potencial? ¿Hay algún software existente que implemente los datos, funciones y características que se requieren?

¿Ha resuelto un problema similar? Si es así, ¿son reutilizables los elementos de la solución?

¿Pueden definirse problemas más pequeños? Si así fuera, ¿hay soluciones evidentes para éstos?

¿Es capaz de representar una solución en una forma que lleve a su implementación eficaz?
¿Es posible crear un modelo del diseño?

Ejecutar el plan

¿Se ajusta la solución al plan? ¿El código fuente puede apegarse al modelo del diseño?

¿Es probable que cada parte componente de la solución sea correcta? ¿El diseño y código se han revisado o, mejor aún, se han hecho pruebas respecto de la corrección del algoritmo?

Examinar el resultado

¿Puede probarse cada parte componente de la solución? ¿Se ha implementado una estrategia razonable para hacer pruebas?

¿La solución produce resultados que se apegan a Jos datos, funciones y caracte1islicas que se requieren? ¿El software se ha validado contra todos los requerimientos de los participantes?

Principios Generales

Séptimo principio: ¡Piense!

Tercer principio: Mantener la visión

Segundo principio: MSE (Mantenlo sencillo, estúpido ... )

Sexto principio: Planee por anticipado la reutilización

Acción

Es un conjunto de tareas que producen un producto importante del trabajo

Quinto principio: Ábrase al futuro

Primer principio: La razón de que exista todo

Cuarto principio: Otros consumirán Jo que usted pmduce

Proceso

Conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo

Actividad

Busca lograr un objetivo amplio y se desarrolla sin importar el dominio de la aplicación, tamaño del proyecto, complejidad del esfuerzo o grado de rigor con el que se usará la ingeniería de software

Tarea

Se centra en un objetivo pequeño pero bien definido que produce un resultado tangible