32
LA PRACTICA: UNA VISION GENERAL PRINCIPIOS, CONCEPTOS Y METODOS

La práctica en el Desarrollo de Software: Una visión general!

Embed Size (px)

Citation preview

Page 1: La práctica en el Desarrollo de Software: Una visión general!

LA PRACTICA: UNA VISION GENERALPRINCIPIOS, CONCEPTOS Y METODOS

Page 2: La práctica en el Desarrollo de Software: Una visión general!

INTRODUCCIÓN• La práctica del desarrollo se refiere a:

• Trabajar en equipo• Promover• Mediar conflictos• Desarrollar capacidades• Planificar, ejecutar y facilitar procesos participativamente

Page 3: La práctica en el Desarrollo de Software: Una visión general!

QUE ES LA PRÁCTICA?• Colección de conceptos,

principios, métodos y herramientas para la planeación y desarrollo del software.

• La práctica multiplica un modelo de proceso de software con los comos técnicos y de gestión necesarios para realizar el trabajo.

• Transforma un enfoque casual en algo más organizado, más efectivo y probablemente más exitoso.

Page 4: La práctica en el Desarrollo de Software: Una visión general!

LA ESENCIA• George Polya – How to Solve it puntualizo la esencia de la

Resolución de Problemas y en consecuencia la esencia de la Práctica de la Ingeniería de Software.

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

• Planear una solución (modelado y diseño de software).

• Llevar a cabo el plan (generación de código)

• Examinar el resultado para probar la precisión (pruebas y aseguramiento de calidad).

Page 5: La práctica en el Desarrollo de Software: Una visión general!

ENTENDER EL PROBLEMA• A quién le interesa la solución del problema?

• Qué aspectos se desconocen?

• Qué datos necesitamos para resolver el problema de manera apropiada?

• El problema puede dividirse en categorías?

• El problema puede representarse gráficamente?

Page 6: La práctica en el Desarrollo de Software: Una visión general!

PLANEAR LA SOLUCIÓN• Ha existido un problema similar

antes?

• Se ha resuelto un problema similar?

• Reutilizar la solución que se tuvo si se ha resuelto.

• Se pueden definir los subproblemas?

• Se puede representar una solución de modo que conduzca a una implementación efectiva?

Page 7: La práctica en el Desarrollo de Software: Una visión general!

LLEVAR A CABO EL PLAN• La solución marcha conforme el plan?

• Es probable que cada parte de la solución del componente sea correcta?

• Se ha revisado el diseño y el código?

• Se han aplicado pruebas de correción?

Page 8: La práctica en el Desarrollo de Software: Una visión general!

EXAMINAR EL RESULTADO• Es posible probar cada parte de la solución del

componente?

• La solución produce resultados acordes con los datos, funciones, rasgos y comportamientos que se requieren?

• El software ha sido validado contra todos los requisitos de los clientes?

Page 9: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS ESENCIALES• Principios se enfocan a la Ingeniería de Software como un

todo, actividades específicas del marco de trabajo, acciones de Ingeniería de Software.

• Ayudan a establecer un conjunto sólido de práctica de Ingeniería del Software.

• David Hooker ha propuesto siete principios esenciales, los cuales se enfocan en la practica de la Ingeniería del Software como un todo, que se reproducen enseguida.

Page 10: La práctica en el Desarrollo de Software: Una visión general!

1. LA RAZÓN POR LA QUE TODO EXISTE

• Ofrecer un valor a los usuarios

• Antes de señalar una pieza de funcionalidad del sistema, antes se debe determinar las plataformas del hardware o los procesos del desarrollo.

• Preguntarnos: Esto agregar un valor real al sistema?

Page 11: La práctica en el Desarrollo de Software: Una visión general!

2. MS (MANTENERLO SIMPLE)

• Todo el diseño debe ser tan simple como es posible, pero no mas simple.

• Las características hasta las internas deben descartarse en nombre de la simplicidad.

• El resultado buscado es un software que se mantenga y sea menos propenso al error.

Page 12: La práctica en el Desarrollo de Software: Una visión general!

3. MANTENER LA VISIÓN

• Una visión clara es esencial para el éxito en un proyecto de Software.

• Podria arriesgarse a tener más de dos diseños.

• Arriesgar la visión arquitectónica de un software debilita y al final rompe hasta un sistema bien diseñado.

Page 13: La práctica en el Desarrollo de Software: Una visión general!

4. LO QUE UNO PRODUZCA, OTROS LO CONSUMINARÁN

• Siempre debe especificarse, diseñarse e implementarse con la idea de que alguien más tendrá que entender lo que se realice.

• Se debe diseñar teniendo en mente a quienes lo implementen, asi como codificar considerando a aquellos que deben mantener y extender el sistema.

• El hecho de facilitar el trabajo a otro agrega valor al sistema.

Page 14: La práctica en el Desarrollo de Software: Una visión general!

5. ESTAR ABIERTO AL FUTURO

• Un sistema con una larga vida tiene más valor.

• Las especificaciones cambian a cada momento y plataformas de hardware son obsoletas después de algunos meses.

• Un sistema tiene éxito si están listos para adaptarse a estos y otros cambios.

Page 15: La práctica en el Desarrollo de Software: Una visión general!

6. PLANEAR PARA LA REUTILIZACIÓN

• Ahorra tiempo y esfuerzo.

• La reutilización de código y diseños ha sido proclamada como un beneficio importante de uso de tecnologías orientadas a objetos.

• La planeación adelantada para la reutilización reduce el costo e incrementa el valor de los componentes reutilizables y los sistemas en que dichos componentes se incorporan.

Page 16: La práctica en el Desarrollo de Software: Una visión general!

7. PENSAR

• Pensamiento claro y completo antes de la acción = Buenos resultados.

• Siempre se obtiene conocimiento de la manera de hacerlo bien de nuevo.

• Pensamiento claro se introduce en el sistema es cuando surge su valor real.

• Reflexión intensa de los primeros 6 principios, recompensas potenciales son enormes.

Page 17: La práctica en el Desarrollo de Software: Una visión general!
Page 18: La práctica en el Desarrollo de Software: Una visión general!

PRACTICAS DE COMUNICACIÓN• Recopilación de los requisitos del cliente se dan por

medio de una actividad de comunicacion u obtención de requisitos.

• Principio 1: Escuchar, centrar atención en las palabras de quien habla, evitar interrupciones, no se debe ser conflictiva con palabras o actitudes.

• Principio 2: Prepararse antes de comunicar, invertir tiempo en entender el problema.

• Principio 3: Se debe contar con un líder o mediador en cada reunion de comunicación.

Page 19: La práctica en el Desarrollo de Software: Una visión general!

• Principio 4: Comunicación cara a cara. Tener presente otra representación de la información relevante.

• Principio 5: Tomar notas y documentar decisiones.

• Principio 6: Buscar la colaboración.

• Principio 7: Conservar el enfoque, examinar un modulo a la vez.

• Principio 8: Si algo no esta claro, se hace un dibujo.

• Principio 9: Una vez que se llegue a un acuerdo sobre algo, se debe continuar, si no se llega a un acuerdo, si una característica o función no esta clara y no se puede clarificar se debe continuar.

• Principio 10: La negociación no es un concurso o un juego. Funciona mejor cuando ambas partes ganan – Debe ajustarse el plan para adaptarse a los cambios.

Page 20: La práctica en el Desarrollo de Software: Una visión general!

PRACTICAS DE LA PLANEACIÓN• La planeación abarca un conjunto de prácticas técnicas y

de gestión que permiten al equipo de software definir un mapa del camino mientras se viaja a través de su meta estrategica y objetivos tácticos.

• La planeación debe producirse con moderación, lo suficiente para proporcionar una guia útil para el equipo.

Page 21: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS EN LA PLANEACIÓN

1. Entender los alcances del proyecto.

2. Involucrar al cliente en la actividad de planeación.

3. Reconocer que la planeación es iterativa – Retroalimentación.

4. Estimar con base en el conocimiento disponible, proporcionar un indicio del esfuerzo, costo y duración de las tareas.

5. Considerar el riesgo cuando se define el plan. El plan debe ajustarse ante la posibilidad de que uno o más de estos riesgos se torne un problema real.

6. Ser realista.

7. Ajustar la granularidad mientras se define el plan.

8. Definir como se intentara asegurar la calidad.

9. Describir como se pretende incluir el cambio.

10. Adoptar el plan a menudo y hacer los ajustes cuando estos se requieren.

Page 22: La práctica en el Desarrollo de Software: Una visión general!

PREGUNTAS PARA DESARROLLAR UN PLAN DE PROYECTO REALISTA• Por qué está en desarrollo este sistema?

• Qué se hará?

• Cuándo se terminará?

• Quién es el responsible de una función?

• En dónde se ubican dentro de la organización?

• Como se realizara el trabajo en los sentidos técnico y de gestión?

• Cuánto se necesitará de cada recurso?

Page 23: La práctica en el Desarrollo de Software: Una visión general!

PRÁCTICA DEL MODELADO• Mejor entendimiento de la entidad real que se construirá.

• Cuando la entidad es un software, el modelo debe ser capaz de representar la información que el software transforma, la arquitectura y las funciones que permiten que ocurra la transformación, las características que desean los usuarios y el comportamiento del sistema conforme se realiza la transformación.

Page 24: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS DEL MODELADO DEL ANÁLISIS

1. El dominio de información de un problema debe representarse y entenderse.

2. Se deben definir las funciones que ejecuta el software.

3. Se debe representar el comportamiento del software.

4. Los modelos que presentan información, función y comportamiento deben partirse de forma que descubran el detalle de una manera estratificada (o jerarquica) – “Divide y ganarás”.

5. La tarea del análisis debe moverse de la información esencial hacia el detalle de la implementación.

Page 25: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS DEL MODELADO DEL DISEÑO1. El diseño debe ser rastreable hasta el modelo del análisis.

2. Siempre se debe considerar la arquitectura del sistema que se va a construir.

3. El diseño de datos es tan importante como el diseño de funciones de procesamiento.

4. Las interfaces (internas y externas) deben diseñarse con cuidado.

5. El diseño de interfaz del usuario debe ajustarse a las necesidades del usuario final.

6. El diseño a nivel de componentes debe ser independiente del modo funcional.

7. Los componentes deben estar apareados entre si en forma minima y vinculados con el ambiente enterno.

8. Las representaciones del diseño deben ser fácilmente comprensibles.

9. El diseño debe desarrollarse de manera iterativa. En cada iteración el diseñador debe buscar la mayor simplicidad.

Page 26: La práctica en el Desarrollo de Software: Una visión general!

PRÁCTICA DE LA CONSTRUCCIÓN• La actividad de construcción abarca una serie de tareas

de codificación y realización de pruebas que conducen al software operativo que esta listo para entregarlo al usuario final.

Page 27: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS Y CONCEPTOS DE CODIFICACIÓN• Principios de preparación: Antes de escribir una línea de

código se debe estar seguro de:

• Entender el problema a resolver• Entender principios y conceptos del diseño• Escoger un lenguaje de programación que satisfaga las

necesidades del software• Seleccionar un ambiente de programación que

proporcione herramientas que faciliten el trabajo.• Crear un conjunto de pruebas que seran aplicadas una

vez que se complete el componente que se va a codificar.

Page 28: La práctica en el Desarrollo de Software: Una visión general!

• Principios de codificación: Cuando se comiende a escribir el codigo se debe estar seguro de:

• Restringir los algoritmos al seguir la práctica de la programación estructurada.

• Seleccionar las estructuras de datos que satisfagan las necesidades del diseño.

• Entender la arquitectura y crear interfaces• Mantener la logica condicional tan simple como sea posible• Crear ciclos anidados, de forma que sean fáciles de

programar.• Seleccionar nombres de variables significativas.• Escribir código que tenga documentación propia.• Crear una configuración líneas: Sangrías, líneas en blanco

Page 29: La práctica en el Desarrollo de Software: Una visión general!

• Principios de validación: Después de haber completado los primeros pasos de código se debe estar seguro de:

• Conducir un ensayo de código cuando sea apropiado• Realizar pruebas de unidad y corregir los errores• Re fabricar el código

Page 30: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS DE LAS PRUEBAS

1. Todas las pruebas deben ser rastreables hasta los requisitos del cliente.

2. Las pruebas se deben planear mucho antes de que comience el proceso de prueba.

3. Principio de Pareto, aplicable a las pruebas de software

4. Las pruebas deben comenzar en lo pequeño y progresar hacia lo grande.

5. Las pruebas exhaustivas no son posibles.

Page 31: La práctica en el Desarrollo de Software: Una visión general!

PRINCIPIOS DEL DESPLIEGUE

1. Se deben administrar las expectativas que el cliente tiene del software.

2. Se debe ensamblar y probar un paquete de entrega completo.

3. Se debe establecer un regimen de soporte antes de entregar el software.

4. Se debe proporcionar material instructivo apropiado a los usuarios finales.

5. El software con errores se debe arreglar primero y entregarse después.

Page 32: La práctica en el Desarrollo de Software: Una visión general!

CONCLUSIONES• Se debe contar con una buena comunicaciones entre el

cliente, usuario final y las personas que intervienen en el desarrollo de software.

• La documentación debe constantemente actualizarse en funcion de los ajustes que hagamos en nuestra planeación.

• Aplicar constantemente pruebas a nuestro software a fin de mejorar su funcionalidad y calidad.