Zusammenfassung der Ressource
Principios que guían la práctica
- Conocimiento de la
ingeniería de software
- Principios fundamentales
- Ayudan en la aplicación del proceso y en la ejecución
de métodos eficaces de ingeniería de software
- Conjunto de principios generales que amplían el
proceso y práctica de la ingeniería de software
- Agregar valor para los usuarios finales
- Mantenerlo sencillo
- Fijar la visión (del producto
y el proyecto)
- Reconocer que otros consumen (y
deben entender) lo que usted produce
- Abrirse al futuro
- Planear la reutilización
- ¡Pensar!
- En el nivel de la práctica, definen un conjunto
de valores y reglas que sirven como guía cuando
Se analiza un problema
- Se diseña una solución
- Se implementa y prueba
- Se entrega el software a la
comunidad de usuarios
- Principios que guían el proceso
- Los siguientes principios fundamentales se aplican a la
estructura y, por extensión, a todo proceso de software
- Ser ágil
- Todo aspecto del trabajo se debe poner
el énfasis en la economía de acción
- Mantener el enfoque técnico tan
sencillo como sea posible
- En cada etapa, centrarse
en la calidad
- Estar listo para adaptar
- Cuando sea necesario, adapte su enfoque a las
restricciones impuestas por el problema, la
gente y el proyecto en sí
- Formar un equipo eficaz
- Establecer mecanismos para la
comunicación y coordinación
- Es importante coordinan los esfuerzos para
tener un producto final exitoso
- Administrar el cambio
- Evaluar el riesgo
- Es esencial establecer planes
de contingencia
- Crear productos del trabajo
que agreguen valor para otros
- Generar productos del trabajo que agreguen
valor para otras actividades, acciones o tareas
del proceso
- Establecer mecanismos para administrar los cambios que
se solicitan, evalúan, aprueban e implementan
- Forme un equipo con organización
propia en el que haya confianza y
respeto mutuos
- Centrarse en la calidad
del producto
- Principios que guían la practica
- Entregar a tiempo software operativo de alta calidad
que contenga funciones y características que
satisfagan las necesidades de todos los participantes
- Divide y vencerás
- El análisis y el diseño siempre deben
enfatizar la separación de entidades
- Entender el uso de la
abstracción
- Es una simplificación de algún elemento complejo de un
sistema usado para comunicar un significado en una frase
- Buscar la coherencia
- Un contexto familiar hace que un software sea más fácil de usar
- Centrarse en la transferencia
de información
- Administra las transferencias de información
- De una base de datos a un usuario, de un sistema
heredado a una waapp, etc
- Construir software que tenga
modularidad eficaz
- Cualquier sistema complejo puede dividirse
en módulos (componentes)
- Los módulos deben centrarse en un aspecto
bien delimitado del sistema
- Deben estar interconectados en forma
relativamente sencilla
- Buscar patrones
- Crear un cúmulo (multitud de elementos) de bibliografías que
ayuden en la resolución del problema
- Cuando sea posible, representar el
problema y su solución desde varias
perspectivas diferentes
- De esta forma es más probable que se tenga una mayor
visión, detección de errores y omisiones
- Tener en mente que alguien dará
mantenimiento al software
- Sera corregido a largo plazo cuando se descubran sus defectos, se adapte
a los cambios de su ambiente y se mejore en el momento en el que los
participantes pidan más capacidades
- Principios que guían toda
actividad estructural
- Tienen relevancia para el éxito de cada actividad estructural genérica, definida como
parte del proceso de software, planteados en un nivel más bajo de abstracción
- Principios de comunicación
- Comunicación efectiva entre técnicos, clientes y otros
participantes, son las actividades más complicadas a realizar
- Escuchar
- Centrado en las palabras del hablante en lugar de formular
respuestas apresuradas (si algo no está claro preguntar,
evitando interrupciones constantes)
- Antes de comunicarse, prepararse
- Tomar tiempo para deducir el problema antes de realizar
reuniones (entender el vocabulario de negocio)
- Alguien debe facilitar la actividad
- Consta de un líder que
- Mantenga una conversación positiva
- Sea mediador
- Garantice el seguimiento de los principios
- Es mejor la comunicación cara a cara
- Representar la información de varias
maneras para su entendimiento
- Tomar notas y documentar
las decisiones
- Contar con un secretario que tome notas de los
temas y decisiones realizadas
- Perseguir la colaboración
- El conocimiento colectivo de los miembros del equipo
utilizado para describir funciones del producto
- Permanecer centrado; hacer
módulos con la discusión
- Cambiar de tema solo cuando este ya se ha resuelto
- Si algo no está claro,
hacer un dibujo
- Los esquemas ayudan a un mejor
enfoque de la información
- a) Una vez que se acuerde algo, avanzar, b) Si no es posible ponerse de
acuerdo en algo, avanzar, c) Si una característica o función no está clara o
no puede aclararse en el momento, avanzar
- Reconocer los temas más importantes que requieren análisis, avanzar
es a veces la mejor forma de agilitar la comunicación
- La negociación no es un concurso o un juego. Funciona
mejor cuando las dos partes ganan
- Procurar que ambas partes se beneficien (negociar
características, prioridades fechas de entrega.)
- Principios de planeación
- Conjunto de prácticas administrativas y
técnicas que definen un mapa mientras
avanza el proyecto (desarrollo de un
proyecto software)
- Entender el alcance del proyecto
- Definir el alcance da un destino al equipo de software
- Involucrar en la actividad de planeación a los
participantes del software
- Definir las prioridades y establecen las restricciones del
proyecto (negociar entregas, plazos, mejoras, etc.)
- Reconocer que la planeación es iterativa
- El plan del proyecto puede cambiar a lo largo del tiempo
- Estimar con base en lo que se sabe
- Obtener un índice del esfuerzo, costo
y duración de las tareas
- Al definir el plan, tomar en cuenta los riesgos
- Identificar los riesgos que influirán en gran
proporción al proyecto, mediante la elaboración de
planes de contingencia
- Ser realista
- No se trabaja al 100%, los ingenieros también se equivocan,
considerar todos calamidades al establecer un proyecto
- Ajustar la granularidad
cuando se defina el plan
- Es el nivel de detalle que se adopta cuando se desarrolla un plan,
esta va de poca a mucha conforme el tiempo avanza
- Definir cómo se trata de
asegurar la calidad
- Identificar la forma en la que el equipo software
busca asegurar la calidad
- Describir cómo se busca
manejar el cambio
- Aun la mejor planeación puede ser anulada por el
cambio si no existe control alguno
- Dar seguimiento al plan con frecuencia y
hacer los ajustes que se requieran
- Evaluación diaria del avance para identificar problemas que no
estén apegados al avance real, cuando se detectan desviaciones
se debe ajustar el plan en consecuencias
- Principios de modelado
- Creación de modelos para entender mejor lo que se va a construir.
Representar la información que el software transforma (entender
las funciones que este realiza)
- El equipo de software tiene como objetivo principal
elaborar software, no crear modelos
- Agilidad representa entregar el software lo antes
posible, evitando modelos que retrasen al producto
- Viajar ligero, no crear más
modelos de los necesarios
- Crear modelos que aceleren y faciliten la
construcción del producto
- Tratar de producir el modelo más sencillo que
describa al problema o al software
- Mantener sencillos los modelos,
para que el software resultante
también lo sea, los modelos son
más facilites de entender
- Construir modelos susceptibles al cambio
- Ser capaz de enunciar un propósito explícito
para cada modelo que se cree
- Cada vez que cree un modelo,
pregúntese por qué lo hace
- Adaptar los modelos que se desarrollan
al sistema en cuestión
- Adaptar una notación del modelo o las reglas
- Tratar de construir modelos útiles, pero olvidarse de
elaborar modelos perfectos
- No ser dogmático respecto de la sintaxis del
modelo. Si se tiene éxito para comunicar
contenido, la representación es secundaria
- Si su instinto dice que un modelo no es el correcto a
pesar de que se vea bien en el papel, hay razones para
estar preocupado
- Obtener retroalimentación tan
pronto como sea posible
- Todo modelo debe ser revisado por los miembros del
equipo, para corregir errores de modelado
- Confíe en su instinto. El trabajo de software enseña muchas
lecciones, algunas en el nivel del inconsciente
- Comunicar información que permita la
realización de la siguiente tarea de ingeniería
- El modelado debe hacerse con la mirada puesta en las
siguientes etapas de la ingeniería de software
- Construcción de modelos cuyas
características puedan variar a lo
largo de su vida
- El cuerpo de conocimientos de la ingeniería
de software representa cerca del 75% del
conocimiento necesario para desarrollar un
sistema complejo
- Concepto de los principios fundamentales
- Ideas elementales que guían a los ingenieros de software en el
trabajo que realizan Dan ahora un fundamento a partir del cual
pueden aplicarse y evaluarse los modelos, métodos y
herramientas de ingeniería
- aaaaaaaaaaaaaaa