1. Principios que Guían la Práctica
Prof. Ramiro Estigarribia
Link a la presentación
2. Conocimiento en Software
➔ Muchos piensan que el conocimiento de software consiste
exclusivamente en tecnologías: Android, IOS, Java, HTML5, etc.
➔ Es frecuente escuchar:"el conocimiento tiene una vida de 3 años",
o sea: "Lo que es necesario saber hoy, será obsoleto en 3 años".
➔ Para el conocimiento relacionado con tecnología es probable que
eso se cumpla.
➔ Pero hay otra clase de conocimiento, que no tiene una vida de 3
años.
Dichos principios sirven toda la vida.
3. ¿Qué es el Núcleo Estable?
➔ Consiste en un conjunto de principios que ayudan en el proceso y
ejecución de los métodos de Ingeniería de Sistemas.
➔ El autor McConnell plantea que el conocimiento de software ha
evolucionado para convertirse en un "núcleo estable" que
representa cerca del "75% del conocimiento necesario para
desarrollar un sistema complejo".
4. Principios Fundamentales
➔ La práctica de la I.S. está guiada por un conjunto de principios
que ayudan en la aplicación y en la ejecución de métodos
eficaces.
Los principios fundamentales son reglas que sirven de guía cuando:
1. Se analiza un problema.
2. Se diseña una solución.
3. Se implementa y prueba.
4. Se entrega el producto terminado.
5. Principios que Guían el Proceso
1. Ser ágil: Mantener el enfoque técnico tan sencillo como sea posible.
2. En cada etapa, centrarse en la calidad: La condición de salida para
toda actividad, acción y tarea del proceso debe centrarse en la calidad.
3. Estar listo para adaptar. Adaptarte a las restricciones impuestas por
el problema, la gente y el proyecto.
4. Formar un equipo eficaz. El proceso y práctica son importantes,
pero el objetivo son las personas.
5. Comunicación y coordinación: Cooperar para crear un producto
exitoso.
6. 1. Divide y vencerás: Dicho en forma más técnica, el análisis debe
enfatizar la separación de módulos.
2.Utilizar la abstracción: La abstracción permite explicar de forma
simple los procesos complejos.
3. Buscar la facilidad de uso: Utilizar imágenes y sonidos que ayuden
a utilizar la aplicación.
4.Representar el problema desde varias perspectivas diferentes:
Así se tendrá una mejor visión.
5. Tener en mente que alguien dará mantenimiento:
Facilitar el trabajo futuro.
Principios que Guían la Práctica
7. Principios de Comunicación
La comunicación efectiva (entre colegas técnicos, con el cliente y
otros participantes) se encuentra entre las actividades más difíciles
que deben enfrentarse.
1. Escuchar: Centrarse en las palabras del hablante en lugar de
formular su respuesta. Si algo no está claro, pregunte para aclararlo.
2. Antes de comunicarse, prepararse:
Si es necesario, haga investigaciones para entender el vocabulario
propio del negocio.
8. Principios de Comunicación
3. Alguien debe facilitar la actividad:
Toda reunión debe tener un facilitador que:
➔ Mantenga la conversación en una dirección positiva.
➔ Sea un mediador en cualquier conflicto.
4. Tomar notas y documentar las decisiones:
Alguien debe anotar las decisiones importantes.
5. Permanecer centrado:
Entre más personas participen, más probable es que la conversación
salte de un tema a otro.
9. Principios de Comunicación
6. Si algo no está claro, hacer un diagrama:
La comunicación verbal tiene sus límites.
Con frecuencia, un esquema o dibujo arroja claridad.
7. Una vez que se acuerde algo, avanzar:
Si no es posible ponerse de acuerdo en algo, avanzar.
8. La negociación no es un juego de 1 sólo ganador:
Funciona mejor cuando las dos partes ganan.
Hay muchas circunstancias en las que usted y otros participantes deben
negociar prioridades y fechas de entrega.
10. Diferencia entre Cliente y Usuario Final
➔ En algunos casos pueden ser la misma persona.
➔ En la mayoría son personas distintas:
1. El cliente es quien solicitó la construcción del Sistema, define los
objetivos y requerimientos.
Puede ser el dueño de la compañía, o el gerente del departamento
de informática.
2. El usuario final, es la persona que utilizará el sistema.
Este aporta detalles operacionales.
11. Si bien es imposible predecir con exactitud un proyecto de
software, la planeación permite que el equipo defina un mapa
mientras avanza:
1. Entender el alcance del proyecto.
2. Involucrar a todos los participantes.
3. Reconocer que la planeación es iterativa. Mientras avanza el
proyecto es probable que las cosas cambien.
4. Estimar esfuerzos, costos y plazos.
Principios de Planeación
12. ¿Qué son los Modelos?
➔ Son elementos que permiten entender mejor lo que se va a
construir.
➔ Cuando es algo físico (un edificio o un avión): se construye un
modelo a escala.
➔ Sin embargo, cuando se va a construir es software, no siempre es
posible.
★ Se busca representar el software, la arquitectura y las funciones.
13. Principios del Modelado
1. El objetivo es elaborar software, no crear modelos.
2. Crear modelos simples que describan el problema.
3. Construir modelos capaces de evolucionar.
4. Para cada modelo, pregúntese por qué lo hace. Si no encuentra
una razón sólida para la existencia del modelo, no pierda tiempo
en él.
5. No ser perfeccionista respecto de la sintaxis del modelo.
Si se tiene éxito para comunicar la representación es secundaria.
15. Principios de Construcción
La actividad de construcción incluye un conjunto de
tareas de codificación y pruebas que lleva a un software
operativo y listo para entregar al cliente.
16. Principios de Construcción
1. Las pruebas deben poder rastrearse hasta los requerimientos del
cliente.
2. Las pruebas deben planearse mucho antes de que den comienzo
al desarrollo.
3. El principio de Pareto: el 80% de los errores están en un 20% del
código del sistema.
4. Las pruebas deben comenzar "en lo pequeño" y avanzar hacia "lo
grande".
5. No siempre es posible probar todas las combinaciones
de un sistema.
17. Resumen y Conclusiones
➔ La práctica de la ingeniería de software incluye principios,
conceptos, métodos y herramientas que los ingenieros de
software aplican en todo el proceso de desarrollo.
➔ Todo proyecto de ingeniería de software es diferente.
No obstante, existe un conjunto de principios generales que
se aplican al proceso como un todo y a cada actividad
estructural, sin importar cuál sea el proyecto o el producto.