2. Conocimiento en Software
➔ Muchos piensan que el conocimiento de software
consiste exclusivamente en tecnologías:
Android, IOS, Java, HTML5, C++, Linux, etc.
➔ Es frecuente escuchar que el conocimiento tiene una
vida de 3 años, o sea: “Lo que es necesario saber hoy,
será obsoleto en tres 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.
➔ 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 definen un conjunto de
reglas que sirven como 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. Ejemplo: En aplicaciones
web usar imágenes y sonidos que ayuden a utilizar.
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 servir como “secretario” y escribir 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 dibujo. (modelo)
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.
Funciona mejor cuando las dos partes ganan.
Hay muchas circunstancias en las que usted y otros
participantes deben negociar características, 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 que
será construido.
Este aporta detalles operacionales.
11. Si bien es imposible predecir con exactitud cómo se
desarrollará 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.
Un plan nunca está grabado en piedra. Mientras avanza
el proyecto es probable que las cosas cambien.
4. Estimar con base en lo que se sabe.
Obtener un índice del 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 la información que el software
transforma, la arquitectura y las funciones que
permiten que esto ocurra.
13. Principios del Modelado
1. El objetivo es elaborar software, no crear modelos.
2. Crear el modelos simples que describan al 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 dogmático (perfeccionista) respecto de la
sintaxis del modelo. Si se tiene éxito para comunicar
contenido, la representación es secundaria.
14. 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.
15. 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 grande.
16. 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.
Preguntas