1. Proceso
1.1. Es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo.
1.1.1. En el contexto de la Ingeniería de Software, es un enfoque adaptable que permite que las personas busquen y elijan el conjunto apropiado de acciones y tareas para el trabajo. Una estructura de proceso general para la ingeniería de software consta de cinco actividades:
1.1.1.1. Comunicación: Se busca entender los objetivos de los participantes respecto del proyecto, y reunir los requerimientosdque ayuden a definir las características y funciones del software
1.1.1.2. Planeación: Define el trabajo de ingeniería de software al describir las tareas técnicas por realizar, los riesgos probables, los recursos que se requieren, los productos que se obtendrán y una programación de las actividades.
1.1.1.3. Modelado: De manera análoga a cómo un arquitecto crea bosquejos del proyecto a fin de entender el problema general, un ingeniero de software hace los mismo al crear modelos a fin de entender mejor los requerimientos del software y el diseño que los satisfará.
1.1.1.4. Construcción: Esta actividad combina la generación de código y las pruebas que se requieren para descubrir errores en éste.
1.1.1.5. Despliegue: El software se entrega al consumidor que lo evalúa y que le da retroalimentación, misma que se basa en dicha evaluación.
2. Práctica
2.1. Esencia de la práctica de la ingeniería de software:
2.1.1. Entender el problema: Es conveniente dedicar un poco de tiempo a responder unas preguntas.
2.1.1.1. ¿Quiénes tienen que ver con la solución del problema?
2.1.1.2. ¿Cuáles son las incognitas?
2.1.1.3. ¿Puede fraccionarse el problema?
2.1.1.3.1. Ejecutar el plan: ¿Se ajusta la solución al plan?, ¿Es probable que cada parte componente de la solución sea correcta?
2.1.1.4. ¿Es posible representar gráficamente el problema?
3. Principios
3.1. David Hooker propuso siete principios que se centran en la práctica de la ingeniería de software como un todo:
3.1.1. La razón de que exista todo: Un sistema de software existe por una razón: dar valor a los usuarios.
3.1.2. MSE (mantenlo sencillo, estúpido...): Todo diseño debe ser tan simple como sea posible, pero no más.
3.1.3. Mantener la visión: Una visión clara es esencial para el éxito de un proyecto de software.
3.1.4. Otros consumiran lo que usted produce: Siempre establezca especificaciones, diseñe e implemente con la seguridad de que alguien más tendrá que entender lo que usted haga.
3.1.5. Ábrase al futuro: Un sistema con larga vida útil tiene más valor, los sistemas deben ser fáciles de adaptar a los cambios.
3.1.6. Planee por anticipado la reutilización: La planeación anticipada en busca de la reutilización disminuye el costo e incrementa el valor.
3.1.7. Piense: Pensar en todo con claridad antes de emprender la acción casi siempre produce mejores resultados