Diseño de Un Programa Software.

download Diseño de Un Programa Software.

of 13

Transcript of Diseño de Un Programa Software.

  • 7/23/2019 Diseo de Un Programa Software.

    1/13

    Diseo de un programa

    Equipo #6

    qwertyuiopasdfghjklzxcvb

    mqwertyuiopasdfghjklzxcv

    bnmqwertyuiopasdfghjklzx

    cvbnmqwertyuiopasdfghjkzxcvbnmqwertyuiopasdfgh

    klzxcvbnmqwertyuiopasdf

    hjklzxcvbnmqwertyuiopasdghjklzxcvbnmqwertyuiopa

    sdfghjklzxcvbnmqwertyuio

    pasdfghjklzxcvbnmqwerty

    opasdfghjklzxcvbnmqwert

    yuiopasdfghjklzxcvbnmqw

    rtyuiopasdfghjklzxcvbnmq

    wertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcv

    bnmqwertyuiopasdfghjklzx

    cvbnmqwertyuiopasdfghjk

  • 7/23/2019 Diseo de Un Programa Software.

    2/13

    DISEO DE UN PROGRAMA

    Un programa es un conjunto de lneas de cdigo escritas en un lenguaje de

    programacin determinado. Pero el cdigo escrito en un lenguaje de alto nivel nopuede ser entendido por el ordenador, por lo que es necesaria la traduccin acdigo mquina. En este proceso tienen lugar dos fases. En la primera fase(compilacin) el compilador traduce cada uno de las partes del programa y creamdulos ojeto, que posteriormente sern unidos por el lin!er (enla"ado), creandoel mdulo ejecutale .e#e. $omo la compilacin y el enla"ado son dos procesosdependientes, a menudo se suele denominar a todo el proceso compilacin.

    En el dise%o de un programa tenemos diferentes pasos&

    'nlisis del prolema. Este paso es fundamental. a correcta resolucin de unprolema viene determinada en gran medida por el planteamiento inicial. Unplanteamiento correcto nos evitar perder tiempo en la implementacin dealgoritmos que posteriormente nos demos cuenta que son incorrectos. En estepaso nos deemos acer tres preguntas& *+u entradas se nos ofrece-, *+usalida deemos generar- y *$ul es el mtodo que deemos usar para llegaracia la solucin deseada-

    ise%o del algoritmo. /i en el anlisis determinamos qu ace el programa aqu

    determinamos cmo lo ace. Para ello se divide el prolema en variossuprolemas que se solucionan de forma independiente (divide y vencers), loque se denomina dise%o modular. En este paso puede ser conveniente lautili"acin de diagramas de flujo o pseudocdigo.

    $odificacin. Es la escritura del cdigo seg0n el algoritmo decidido en las etapasanteriores.

    $ompilacin y ejecucin. Una ve" escrito el cdigo, se compila. /i el cdigocontiene errores el compilador nos los mostrar& son los llamados errores decompilacin, que suelen estar relacionados con incoerencias en la sinta#is,

    conversin incorrecta de tipos, etc. Una ve" solucionados estos errores, se crearel programa ejecutale.

    1erificacin. 'l ejecutar el programa puede ocurrir que realice lo que queramos oque, por el contrario, produ"ca un resultado indeseado. 2os encontramos aqu condos tipos de errores&

  • 7/23/2019 Diseo de Un Programa Software.

    3/13

    3 Errores de ejecucin& /e producen cuando el programa llega a un punto en elque el ordenador no puede reali"ar la operacin que se le solicita& divisin porcero, desordamiento, etc.

    3 Errores del algoritmo& /on los ms difciles de detectar, se producen cuando elalgoritmo est mal implementado. 2os conduce al siguiente paso.

    epuracin. Esta es una parte importante. /e utili"an las erramientas dedepuracin del compilador que usamos, lo que en gran medida determina si elcompilador es mejor o peor. En general, todos los compiladores incluyen entre suserramientas de depuracin las siguientes&

    3 Ejecucin paso a paso& En lugar de ejecutar todo el programa asta sufinali"acin, se ejecuta lnea a lnea, lo que permite oservar el comportamientodel programa en cada momento.

    3 4atces (inspecciones)& permiten seguir el valor de una variale y comproar

    que camia su valor en su momento y modo deseado.3 eug 5nspector& similar a las 6atces pero especialmente 0til para lavisuali"acin de arrays, listas, etc.

    3 7rea!points& si la ejecucin es demasiado larga, podemos definir un rea!point(punto de ruptura) en una o varias lneas. El programa se ejecutar normalmenteasta que llegue a una de esas lneas. En ese momento la ejecucin se detendry podremos consultar valores de variales o ejecutar paso a paso desde esepunto.

    3 Evaluar8modificar& permite otener el valor de una variale en un punto en el que

    la ejecucin del programa se a pausado. /e puede modificar el valor de dicavariale para comproar, por ejemplo, que si tuviera otro valor el comportamientotamin sera el esperado.

    Diseo del programa:

    El dise%o del programaconsiste en la definicin de las operaciones a reali"ar y susecuencia. Es decir, se crea la solucin o algoritmo que pueda resolver elprolema. En general, se utili"an erramientas o tcnicas para la programacin.

    Diseo Modular:

    $uando se ala de diseomodular se ace referencia a un enfoque que sesudivide el sistema en partes ms peque%as (mdulos) que pueden ser creadosde forma independiente y luego se utili"an en los diferentes sistemas paraconducir m0ltiples funcionalidades9 el cual se descompone

  • 7/23/2019 Diseo de Un Programa Software.

    4/13

    ensuprogramas(sumdulos), los cuales, a su ve", tamin se puedenfraccionar, y as sucesivamente, es decir, el prolema se resuelve de arria aciaaajo. ' este mtodo se le denomina diseo modularo descendente(top3do6n).

    Descomposicin Modular

    El diseomodular propone dividir el sistema en partes diferenciadas y definir susinterfaces. sus ventajas& claridad, reduccin de costos y reutili"acion

    os pasos a seguir son&

    :. 5dentificar los mdulos

    ;. escriir cada mdulo

  • 7/23/2019 Diseo de Un Programa Software.

    5/13

    3 e datos, viene dado por los datos que intercamian los mdulos. Es el mejor.

    3 /in acoplamiento directo , es el acoplamiento que no e#iste

    c $o%esin

    Un mdulo coerente ejecuta una tarea sencilla en un procedimiento de pocainteraccin con procedimientos que se ejecutan en otras partes de un programa.podemos decir que un mdulo coerente es aquel que intenta reali"ar solamenteuna cosa..

    d $omprensi"ilidad

    Para facilitar los camios, el mantenimiento y la reutili"acin de mdulos esnecesario que cada uno sea comprensile de forma aislada.

    e Adap#a"ilidad

    a adaptacin de un sistema resulta ms difcil cuando no ay independenciafuncional, es decir, con alto acoplamiento y aja coesin, y cuando el dise%o espoco comprensile.

    Prue"a & depuracin

    os errores umanos dentro de la programacin de computadoras son mucos yaumentan consideralemente con la complejidad del prolema. El proceso deidentificar y eliminar errores, para dar paso a una solucin sin errores se le llamaepuracin.

    a epuracin o pruea resulta una tarea tan creativa como el mismo desarrollode la solucin, por ello se dee considerar con el mismo inters y entusiasmo.

    Aesulta conveniente oservar los siguientes principios al reali"ar una depuracin,ya que de este traajo depende el #ito de nuestra solucin.

    a) Brate de iniciar la pruea de un programa con una mentalidad saoteadora,casi disfrutando la tarea de encontrar alg0n error.

    ) /ospece de todos los resultados que le arroje la solucin, con lo cualdeer verificar todos.

  • 7/23/2019 Diseo de Un Programa Software.

    6/13

    c) $onsiderar todas las situaciones posiles normales y a0n algunas de lasanormales.

    $odi!icacin'

    a codificacin es la operacin de escriir la solucin del prolema (de acuerdo ala lgica del diagrama de flujo o pseudocdigo), en una serie de instruccionesdetalladas en un cdigo reconocile por la computadora, la serie de instruccionesdetalladas se le conoce como programa fuente, el cual se escrie en un lenguajede programacin o lenguaje alto nivel.

    E#isten diversos tipos de lenguaje de alto nivel, de acuerdo al tipo de prolema

    que se desea resolver, clasificndose en prolemas& matemticos, cientficos,administrativos o comerciales.

    Documen#acin'

    Es la gua o comunicacin escrita en sus variadas formas, ya sean en enunciados,procedimientos, diujos o diagramas. ' menudo un programa escrito por unapersona, es usado por mucas otras. Por ello la documentacin sirve para ayudar

    a comprender o usar un programa o para facilitar futuras modificaciones(mantenimiento).

    a documentacin dee presentarse en tres formas, e#terna, interna y al usuariofinal. a primera dee estar integrada por los siguientes elementos&

    a) escripcin del prolema.

    ) 2omre del autor.

    c) iagrama de flujo y8o pseudocdigo.

    d) ista de variales y constantes.

  • 7/23/2019 Diseo de Un Programa Software.

    7/13

    e) $odificacin del programa.

    En lo referente a la documentacin interna, sta lo constituyen los comentarios omensajes que agregan al cdigo, para acer ms claro el entendimiento delproceso. ' la documentacin para el usuario se le conoce como manual delusuario. En este manual no e#iste informacin de tipo tcnico, sino la descripcindel funcionamiento del programa.

    Documen#acin de un programa

    DO$UMEN(A$I)N PARA E* USUARIO

    a documentacin para el usuario constituye un elemento de consulta para todaaquella persona que va a usar el programa por primera ve" o que trata de saer siel programa servir a sus ojetivos. 5gualmente es 0til para usuarios que yareali"an un manejo sico y quieren profundi"ar acia un conocimiento avan"ado.

    *+u es la documentacin de un programa-

    Para que el mantenimiento de una aplicacin informtica sea lo ms fcil posile,es conveniente disponer de toda su documen#acin, esto es, de todos losdocumentos que se an ido generando en todas las etapas anteriores& ERS,algoritmos, cdigos fuentes, manuales de usuario, etc. ' todo este tipo dedocumentacin se le considera e#terna. 'dems, e#iste otro tipo dedocumentacin llamada interna.

    a documen#acin in#erna de un programason los comentarios que elprogramadorpuede escriir en el cdigo fuente de un programa y que elcompilador no tendr en cuenta, ya que, no son instrucciones. os comentarios de

    un programa son e#plicaciones o aclaraciones que ayudarn al programador en unfuturo, cuando quiera revisar o modificar el cdigo fuente de dico programa, ytodava sern de ms ayuda si la modificacin la tiene que reali"ar unprogramador distinto al que escrii el cdigo fuente en un primer momento.

  • 7/23/2019 Diseo de Un Programa Software.

    8/13

    Aeferencia

    http://www.aprenderaprogramar.com/index.php?

    option=com_content&iew=artic!e&id="$:documentacion%de%

    programas%inormaticos%documentacion%para%e!%usuario%'%para%

    mantenimiento%cu$$()$a&catid="6:curso%q*ases%de%!a%programacion%

    nie!%iiq&+temid=6$

    http://www.car!ospes.com/curso_de_ingenieria_de!_sotware/$6_$(_documentacion_de_un_programa.php

    a documentacin para el usuario constituye un elemento de consulta para todaaquella persona que va a usar el programa por primera ve" o que trata de saer siel programa servir a sus ojetivos. 5gualmente es 0til para usuarios que yareali"an un manejo sico y quieren profundi"ar acia un conocimiento avan"ado.Una documentacin completa contendra&

    http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.carlospes.com/curso_de_ingenieria_del_software/06_02_documentacion_de_un_programa.phphttp://www.carlospes.com/curso_de_ingenieria_del_software/06_02_documentacion_de_un_programa.phphttp://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=390:documentacion-de-programas-informaticos-documentacion-para-el-usuario-y-para-mantenimiento-cu00250a&catid=36:curso-qbases-de-la-programacion-nivel-iiq&Itemid=60http://www.carlospes.com/curso_de_ingenieria_del_software/06_02_documentacion_de_un_programa.phphttp://www.carlospes.com/curso_de_ingenieria_del_software/06_02_documentacion_de_un_programa.php
  • 7/23/2019 Diseo de Un Programa Software.

    9/13

    C Portada con el nomre del programa, versin y autor o autores.

    C Dndice.

    C escripcin muy reve de las funciones y posiilidades del programa.

    C escripcin reve del mtodo de clculo principal.C E#plicacin reve de cmo dee usarse el programa y de los datos de entrada,opciones y resultados.

    C Ejemplos paso a paso de uso del programa en n0mero suficiente paracomprender las posiilidades que se rindan.

    C iagrama de flujo del programa de carcter sinttico y descriptivo.

    C Especificacin detallada de todas las opciones contenidas en men0s.

    C Especificacin detallada de todos los clculos, principales y secundarios.

    a e#tensin de la documentacin para el usuario ser variale en funcin de lacomplejidad y caractersticas del programa& puede ir desde un prrafo paraprogramas muy sencillos y de fcil uso asta centenares de pginas paraprogramas comerciales complejos. os puntos contenidos en la documentacintamin son variales, siendo los enumerados anteriormente una orientacin.Para programas sencillos puede reducirse a un ttulo, una e#plicacin reve delfuncionamiento, entradas y salidas y un ejemplo de uso.

    MAN(ENIMIEN(O' DO$UMEN(A$I)N PARA MAN(ENIMIEN(O'

    a documentacin para mantenimiento constituye el elemento de referencia parael programador que aya de reali"ar camios o ampliaciones del programa en elfuturo. a necesidad de mantenimiento deriva de&

    C efectos del programa no detectados y que es necesario corregir.

    C $amios e#ternos de ndole poltica, tcnica, social, etc. que afectan alprograma& normativa, moneda, novedades de un sistema operativo, etc.

    C /olicitudes de los clientes o usuarios.

    El mantenimiento de un programa puede afectar a su esqueleto o dise%o sico, afunciones importantes pero desligadas del n0cleo del programa o a cuestionesmeramente estticas. e cualquier forma, el mantenimiento dee considerarse

  • 7/23/2019 Diseo de Un Programa Software.

    10/13

    como programacin en todos sus sentidos, deiendo partir del conocimiento delprolema y avan"ar con detenimiento siguiendo las normas para unaprogramacin slida. Es ideal un mantenimiento que respete la filosofa y el estilodel programa que se mantiene, de modo que un auditor no pudiera detectar quparte del programa corresponde al cdigo original y qu parte a la ampliacin o

    correccin.Por desgracia esto mucas veces no se cumple, por descuido o porquesimplemente reali"ar un mantenimiento de calidad puede ser muy costoso frente auna opcin rpida y que funciona. El prolema surge cundo diversas operacionesde mantenimiento con distintas formas de construccin y filosofa empie"an aafectar a la lgica e interconectividad entre las distintas partes del programa.

    1eamos un smil grfico&

  • 7/23/2019 Diseo de Un Programa Software.

    11/13

    2o ace falta decir que si no se parte de un programa ien estructurado ycomentado el mantenimiento se complica enormemente.

    En ocasiones se renuncia a un mantenimiento de calidad comen"ando un procesode reparaciones puntuales rpidas. $ada reparacin introduce un poquito dedesorden y dificultad de seguimiento al programa asta que se llega a un punto enque el mantenimiento es imposile o demasiado costoso. Es el punto en que senos caeF la estructura que emos ido cogiendo con alfileres y en el que nos vemos

  • 7/23/2019 Diseo de Un Programa Software.

    12/13

    oligados a desistir. Es el momento de acer una reestructuracin total o inclusode olvidarnos del cdigo de que disponemos y empe"ar una nueva construccin.

    2o podemos decir que reali"ar un mantenimiento de calidad sea lo ms adecuado&ay ocasiones en que puede interesar un mantenimiento rpido. El programadorar de valorar varios factores, entre otros el tiempo disponile, las perspectivasde futuro del programa, etc.

    as casas de soft6are dedican ingentes cantidades de recursos al mantenimientode programas. ' veces firman contratos con grandes clientes y les ofertan unmantenimiento adaptado a sus necesidades. En un a%o el programa puedeavan"ar de versin G.

  • 7/23/2019 Diseo de Un Programa Software.

    13/13

    para programas comerciales puede requerir cientos de pginas repartidas envarios tomos.

    Man#enimien#o & ac#uali+aciones

    a garanta de que su inversin no caduca

    El concepto de mantenimiento de soft6are tiene el propsito de proteger lainversin del cliente, ya que con el tiempo pueden aparecer nuevos requerimientosdel mercado por cuestiones legislativas, o ien por camios en la forma de acer ogestionar los negocios. En este sentido, las rpidas actuali"aciones del soft6arede Unit=, unidas a su agilidad post3implementacin, contriuyen al #ito de laempresa'

    esde Unit= entendemos que el cliente necesita tener la tranquilidad de que laaplicacin que implante evolucionar en consecuencia. 's, cuando se ala de

    soft6are de Unit=, el concepto de mantenimiento se refiere a conferir al cliente eldereco a e#tender la cesin del soft6are estndar cuya licencia de uso adquirien su da a un nivel de versin determinado, para tener dereco a&

    Aeciir las correcciones de errores y prolemas que se detecten en laversin del soft6are por la que se a adquirido la licencia de uso. Enocasiones, los errores se ven corregidos en forma de nueva versin delsoft6are.

    El acceso a las mejoras funcionales y tecnolgicas que se realicen en laaplicacin Unit=. En este caso, los rpidos upgrades (con el menor coste de

    propiedad del mercado) permiten que su empresa se adapte con facilidad alos camios futuros que se produ"can a nivel funcional, legal y tecnolgico.