Unidad 2.2 Escribiendo El Programa

Click here to load reader

  • date post

    08-Jun-2015
  • Category

    Documents

  • view

    974
  • download

    0

Embed Size (px)

Transcript of Unidad 2.2 Escribiendo El Programa

  • 1. Ingeniera de Software Unidad II Escribiendo los programas Sergio Snchez Rios. Ingeniero en Informtica Licenciado en Informtica Docente Jornada Parcial Universidad Via del Mar

2. Introduccin

  • Durante la codificacin, debemos centrarnos en la implementacin de la solucin como software. Es decir, deben escribirse los programas que implementen el diseo.
  • Est tarea puede resultar intimidante:
    • Los diseadores pueden no haber tenido en cuenta las particularidades de la plataforma y del ambiente de programacin. Adems las estructuras e interrelaciones que son fciles de describir mediante diagramas y tablas no siempre resultan sencillas de escribir en forma de cdigo.
    • Es indispensable escribir el cdigo que sea comprensible no solo para el autor, sino tambin para otras personas que intervienen a medida que el sistema evoluciona en el tiempo.
    • Se debe sacar beneficio de las caractersticas del diseo, de las estructuras de datos y de las construcciones del lenguaje de programacin, creando sin embargo, cdigo que sea reutilizable.

3. Estndares de programacin y procedimientos

  • Los estndares y procedimientos de la organizacin deben conocerse antes de comenzar a escribir el cdigo.
  • Estndares para los codificadores.
  • Los estndares y procedimientos sirven para organizar los propios pensamientos y evitar errores.
  • Estos permiten:
    • Definen mtodos para documentar el cdigo de manera que resulte claro y fcil de seguir.
    • Ayudan en la conversin del diseo a cdigo. En consecuencia cambios en el diseo sern fciles de implementar en el nivel cdigo.

4. Estndares de programacin y procedimientos

  • Estndares para los dems.
  • Tan pronto como el cdigo est completo, es probable que otros participantes lo utilicen de distintas maneras. Ej.: Grupo de prueba.
  • Despus de poner el sistema en funcionamiento, todava pueden hacerse cambios, debido a la existencia de fallas o por modificaciones del cliente.
  • Es posible que el desarrollador no forme parte de los equipos de prueba o mantenimiento, por lo cul es esencial organizar,dar formato y documentar el cdigo de maneraque otros puedan comprender qu hace y cmo opera, con facilidad .

5. Estndares de programacin y procedimientos

  • Balancear diseo con la implementacin.
  • El ms critico de los estndares es la necesidad de establecer una correspondencia directa entre los componentes de diseo y los componentes de cdigo del programa.
  • El proceso completo de diseo resulta de escaso valor si la modularidad del diseo no se traslada efectivamente al cdigo.
  • Las caractersticas del diseo, como bajo acoplamiento, elevada cohesin e interfaces bien definidas, tambin debenser caractersticas del programa de modo que algoritmos, funciones, interfaces y estructuras de datos puedan ser fcilmente rastreadas del diseo al cdigo y viceversa.

6. Pautas para la programacin

  • Sin importar que lenguaje de programacin se utilice, cada componente de un programa implica al menos tres aspectos principales estructuras de control, algoritmos y estructuras de datos.
  • Estructuras de control
  • La mayora de las estructuras de control de un componente estn sugeridas por la arquitectura y el diseo, y es deseable conservarlas a medida que el diseo se convierte en cdigo.
  • Algunas pautas y estndares sugieren que el cdigo debe estar escrito de manera tal que un componente pueda leerse fcilmente desde lo general a lo particular (top-down).

7. Pautas para la programacin Estructuras de Control

  • Ejemplo de un cdigo ordenado del ms general al ms particular.

beneficio = mnimo; if (ao < 75 ) goto A; beneficio = mximo; goto C; If ( ao < 65 ) goto B; If ( ao < 55 ) goto C; A: if ( ao < 65 ) goto B; beneficio = beneficio * 1.5 + bono; goto C; B: if ( ao < 55) goto C; beneficio = beneficio * 1.5; C: siguiente paso if ( ao < 55 ){ beneficio = mnimo; } else { if ( ao < 65 ){ beneficio = mnimo + bono; } else { if ( ao < 75 ){ beneficio = mnimo * 1.5 + bono; } else { beneficio = mximo; } } } 8.

  • La modularidad es un buen atributo del diseo. Estas mismas ventajas se transfieren tambin al cdigo. Construyendo un programa a partir de bloques modulares, se ocultan los detalles de implementacin, haciendo que el sistema en su totalidad sea ms fcil de entender, probar y mantener.
  • Al escribir el cdigo es necesario tener en mente que la generalidad es una virtud y no hacer que el cdigo resulte ms especializado que lo necesario.
  • Otras caractersticas del diseo que se trasladan a los componentes del cdigo, son el acoplamiento y cohesin. Al escribir un programa, deben usarse nombres de parmetros y comentarios para exhibir el acoplamiento entre componentes.

Pautas para la programacin Estructuras de Control 9.

  • El diseo del programa a menudo especifica una clase de algoritmos a ser utilizados al codificar el componente que est escribiendo.
  • Por ejemplo: el diseo puede indicar el uso de un algoritmo Quicksort o puede proporcionar los pasos lgicos del algoritmo Quicksort.
  • Sin embargo, quien programa dispone de una gran dosis de flexibilidad, para la conversin del algoritmo a cdigo, sujeto a las restricciones del lenguaje de implementacin y del hardware.

Pautas para la programacin Algoritmos 10.

  • Uno de los aspectos que con lleva mayor prudencia es el rendimiento de la implementacin.
  • Hacer ms rpido el cdigo puede tener costos ocultos:
    • el costo de escribir cdigo ms veloz, ya que puede ser ms complejo y por lo tanto llevar ms tiempo escribirlo.
    • el costo del tiempo para probar el cdigo, cuya complejidad requiere ms casos de prueba y datos de prueba.
    • costo de tiempo para que los usuarios comprendan.
    • costo de tiempo para modificar el cdigo, si es necesario.
  • Se recomienda no sacrificar claridad y correccin en beneficio de velocidad

Pautas para la programacin Algoritmos 11. Pautas para la programacin Estructuras de Datos Al escribir programas, se deberafijar el formato y almacenar datos de modo que la gestin y manipulacin de datos sea directa. Existen varias tcnicas que utilizan las estructuras de datos para indicar como debera organizarse el programa. Mantener la simplicidad del programa El diseo del programa puede especificar alguna de las estructuras de datos a utilizar en la implementacin de las funciones. Por lo general se escogen porque promueven el ocultamiento de informacin y manejo de interfaz. La manipulacin de informacin que tiene lugar dentro de un componente puede influir en la seleccin de la estructura de datos. 12. Pautas para la programacin Estructuras de Datos

  • Mantener la simplicidad del programa
  • Ejemplo: La reestructuracin de datos puede simplificar los clculos que realiza un programa.
  • Para calcular el impuesto. Como entrada, se da el monto de la renta imponible y se dice lo siguiente:
    • Para los primeros $ 10.000 de ingreso la tasa es 10%.
    • Para los siguientes $ 10.000, por encima de 10.000, la tasa es 12%.
    • Para los siguientes $ 10.000, por encima de 20.000, la tasa es 15%.
    • Para los siguientes $ 10.000, por encima de 30.000, la tasa es 18%.
    • Para cualquier ingreso por encima de 40.000, la tasa es 20%.
  • Quien tenga un ingreso imponible de 35000 tributa el 10% de los primeros 10000, el 12% por los siguientes 10000, un 15% por los siguientes 10000 y un 18% por los 5000 restantes.

13. Pautas para la programacin Estructuras de Datos Mantener la simplicidad del programa - Ejemplo imp = 0; If ( imponible == 0) exit(0); If (imponible > 10000) imp = imp + 1000;Esle { imp = imp + 0.10 * imponible; exit(0); } If ( imponible > 20000) imp = imp + 1200; Else { imp = imp + 0.12 * (imponible 10000); exit(0);} If (imponible > 30000) imp = imp +1500; Else { imp = imp + 0.15 * (imponible -20000); exit(0);} If (imponible < 40000){ imp = imp + 0.18 * (imponible -30000); exit (0); } else imp = imp + 1800 + 0.20 * (imponible 40000); Mejorando con estructuras de datos el cdigo anterior. Considerando: for (int i = 1, level =0; i franja [i]){ level = level +1;} } Imp = base[level] + porcentaje [level] * (imponible franja [level]); 20 5500 40000 18 3700 30000 15 2200 20000 12 1000 10000 10 0 0 Porcentaje Base Franja 14. Pautas para la programacin Estructuras de Datos Determinar una estructura de programa utilizando una estructura de datos. En general, las estructuras de datos pueden influir en la organizacin y flujo de un programa. En algunos casos, las estructuras incluso pueden influir en la seleccin del lenguaje. Ejemplo: LISP:lenguaje preparado para operar con un procesador de listas. Contiene estructuras que lo hacen ms atractivo para el trabajo con listas. ADA y EIFFEL:contienen estructuras apropiadas para el manejo de excepciones. En general, es conveniente considerar cuidadosamente las estructuras de datos, en el momento de decidir qu lenguaje se usar para la implementacin del diseo. 15. Pau