Você está na página 1de 29

PROCESO DE DESARROLLO DE SOTFWARE

( Prepararse para una gran variedad de situaciones )


Programacin: Es una actividad de resolucin de problemas Top-Down Design Diseo Descendente: Descomponer un problema en sus subproblemas principales y resolver estos subproblemas Abstraccin: El proceso de modelar un problema extrayendo las variables esenciales y sus relaciones Top-Down Design Se centra sobre las tareas que sern realizadas El problema es dividido en subproblemas; el proceso es aplicado a cada subproblema

Stepwise-Refinement Desarrollo de una lista de pasos detallada que resuelve un paso particular en el algoritmo original

Prueba de Escritorio La simulacin a mano paso por paso de la ejecucin del algoritmo por la computadora

Stepwise-Refinement Es una metodologa Top-Down en la que se progresa desde lo general a lo especfico.

Programa de Computadora Es una solucin, pero que es implementada en una computadora

Seudocdigo: Se utiliza para expresar un algoritmo

Algoritmo:
1.- Obtenga los datos 2.- Realice los clculos 3.- Muestre los resultados PASO ABSTRACTO: Un paso algortmico que contiene detalles no especificados

MODULO: Colleccin de pasos, que resuelve un subproblema

PASO CONCRETO: Un paso algortmico en el cual todos los detalles son especificados

A well designed computer program must be:


correct and accurate easy to understand easy to maintain and update efficient reliable flexible

1. Basic types, variables, expressions, assignment and operators 2. Control Structures (sequence, selection, iteration, goto, break, and continue) 3. Data Structures (arrays (uni and bi ) and structs) 4. Functional Abstraction (functions and parameter passing ( byval, byref ), local and global variables )

APRENDER A PROGRAMAR

Caractersticas lenguaje programacin

Diseo de programas

Comprensin del programa

DESARROLLO DE PROGRAMAS

Resuelva el problema

Descubra el algoritmo

Represente el algoritmo como un programa

DESARROLLO DE PROGRAMAS

Identifique las entradas y salidas en la especificacin del problema

Planee un algoritmo usando seudocdigo y diagramas de flujo de datos

Realice la prueba-escritorio al algoritmo

DESARROLLO DE PROGRAMAS

Analizar el problema: Objetivo

Planear:Algoritmo

Ejecute: La prueba de escritorio

PROGRAMACIN

Estilo de programacin

Documentacin(comentarios) Codificacin

PROCESO DE DESARROLLO DE SOFTWARE: Es un conjunto de etapas seguidas por un programador o grupo de programadores para disear, implementar, y vender un producto de software. PROCESO DE DESARROLLO DE SOFTWARE: Refinamiento sucesivo de requerimientos abstractos al cdigo ejecutable.

DEFINICIN DE ENTRADA: Son los datos que sern transformados por el algoritmo para crear las salida deseada. La entrada debe estar en un formato que la computadora pueda acceder y manipular. Debe especificar el tipo, monto o cantidad, y forma de los datos. DEFINICIN DE SALIDA: Es el resultado de los clculos. La salida debe estar especificada en un formato que la computadora pueda expresar ( tales como en la pantalla , o con audio ).

ALGORITMOS: Muchos algoritmos comienzan introduciendo datos ( los datos de entrada ), seguido por el
procesamiento de datos ( usualmente se realizan algunos clculos ), despus se muestran, imprimen, o almacenan los datos ( los datos de salida ).

CLCULOS: Las instrucciones de clculo deben especificar ambos lo que es calculado y cmo se har dicho
clculo.

DATO DE PROCESAMIENTO: Un valor intermedio que un algoritmo utiliza cuando se transforma la entrada en
la salida.

La abstraccin es importante porque nos permite centrarnos en solo unos cuantos conceptos a la vez. Es usar la analoga de la resolucin de imagen la cual puede ser usada para describir la abstraccin. Es como ir retocando una fotografa que se ve difusa, hasta que quede completamente bien Una imagen de baja-resolucin tiene menos detalles y es ms abstracta que una imagen de alta-resolucin. La abstraccin en este caso nos permite bajar la resolucin de la imagen y as ahorrar espacio en disco ( por ejemplo, ocultar detalles ) a menos de que sean absolutamente necesarios. Tambin la idea de la abstraccin es til en los juegos de video-3d en la que el juego oculta los detalles de los objetos que estn todava lejos del personaje y se hacen visibles conforme el personaje se acerca a ellos. Esto ayuda a acelerar la velocidad del juego y le permite al jugador centrarse en los objetos importantes que estn cerca.

DIVIDE Y CONQUISTA

DISEO TOP-DOWN

1.- ANALICE EL PROBLEMA: El primer paso es encontrar ms detalles acerca del problema. En este proceso el estudiante trata de ver cul es el problema principal y descomponerlo en pequeos problemas. 2.- ENCONTRAR UNA IDEA PARA SOLUCIONARLO En este proceso el estudiante tiene que ser creativo y debe proponer ideas, cmo podra ser resuelto el problema. Si ya tienen pequeos problemas, puede empezar a buscar ideas para esos problemas. Evala cul idea puede ser ms acertada o ms eficiente. 3.- FORMULE UN ALGORITMO En este paso la meta es escribir las ideas con claridad, formularlas precisamente para dar con la solucin al problema. Vea si puede encapsular su idea como un mtodo sistemtico paso por paso.

4.- JUEGUE CON SU ALGORITMO Implemente a mano su algoritmo y vea si trabaja bien y si realiza el trabajo que debera hacer. Lo importante aqu es ver qu est errneo y ver la forma de corregirlo. 5.- MEJORE EL ALGORITMO El propsito de esta fase es mejorar la solucin. Pregntese si es rpido o lento, realiza acciones innecesarias.

PROCESO DE RESOLUCIN DE PROBLEMAS


1.- REESTABLEZCA LOS PRINCIPALES ASPECTOS DEL PROBLEMA A SER RESUELTO 2.- DESCRIBA LAS ESTRATEGIAS QUE VA A USAR PARA RESOLVER EL PROBLEMA 3.- IDENTIFIQUE LOS PROCEDIMIENTOS QUE VAN A SER REQUERIDOS Y LA SECUENCIA DE ACCIONES DE CADA PROCEDIMIENTO 4.- REFINE LAS ACCIONES 5.- PRUEBE EL PLAN 6.- IMPLEMENTACIN DE CDIGO 7.- REALICE LA PRUEBA DE ESCRITORIO 8. PRUEBE Y DOCUMENTE LOS RESULTADOS

METODOLOGA # 1

DIANE ZAK

Introduction to programming with C++

31892_

STEP 1: ANALICE EL PROBLEMA


Usted no puede resolver un problema a menos de que lo entienda, y usted no puede entender un problema a menos de que lo analice, en otras palabras, a menos de que usted identifique sus componentes importantes. Los dos ms importantes componentes de cualquier problema son las entradas y salidas del problema Salida: La salida es la meta o objetivo a lograr en el problema. Entrada: Son los ingredientes necesarios para lograr la meta. Cuando analiza un problema, primero busca cul ser la salida y luego entonces busca las entradas.

EJEMPLO: Treyson Mobley quiere un programa que calcule y muestre el monto que se debe de dar de propina al mesero en un restaurante. El programa debe restar el monto del vino consumido de la cuenta a pagar y entonces calcular la propina ( usando un porcentaje ) sobre el resto de la cuenta total.

ANALIZANDO CUL ES LA SALIDA


Una forma til para identificar la salida es buscar en la especificacin del problema una respuesta a las siguientes preguntas: Qu es lo que el usuario quiere ver en la pantalla, impreso en un papel, o almacenado en un archivo? Cmo deben verse mis salidas? Cuntas veces el proceso va a ser repetido?

La respuesta a esta pregunta comnmente es establecida como sustantivos y adjetivos en la especificacin del problema. Para este problema la respuesta es que Treyson ( el usuario del programa ) quiere ver el monto de la propina del mesero mostrado en la pantalla, por lo tanto la salida es la propina, en este contexto, la palabra tip es un sustantivo.

ANALIZANDO CUL ES LA ENTRADA


Despus de que haya identificado la salida, a continuacin debe determinar las entradas. Una forma til para identificar las entradas es buscar en la especificacin del problema una pregunta a las siguientes preguntas:

Qu informacin necesitar saber la computadora para mostrar, imprimir, o almacenar datos de salida? Qu es lo que tengo para trabajar? A qu se parecen los datos? Cules son mis datos? Cmo sabr cuando he procesado todos los datos?

Al igual que con las salidas, la entrada tpicamente es establecida como sustantivos y adjetivos en la especificacin del problema. En este caso para determinar la propina, ambos usted y la computadora necesitan saber el monto de la cuenta a pagar, el costo del vino, y el porcentaje de la propina, de esta forma, estos datos son las entradas. En este contexto, total, vino, y propina son adjetivos, mientras cuenta, costo y porcentaje son sustantivos. Esto completa el paso del anlisis para el problema de Treyson Mobley. Algunos programadores usan un IPO chart para organizar y resumir los resultados del paso del anlisis ,. IPO es un acrnimo para Input, Processing, y Output.

TIPS PARA ANALIZAR PROBLEMAS


Desafortunadamente, analizar problemas del mundo real no ser tan fcil como analizar los problemas encontrados en este libro. El paso del anlisis ser la parte ms difcil del proceso de resolucin de problemas, y requerir gran parte de su tiempo, mucha paciencia, y esfuerzo. Si est teniendo problemas al analizar un problema, trate de leer varias veces las especificaciones del problema, es fcil perder informacin durante las primeras lecturas. Si el problema todava no est claro para usted, no se intimide al preguntar al usuario para ms informacin. Cuando lea la especificacin de un problema, es til que utilice un lpiz para subrayar la informacin que usted crea que no es importante para la solucin del problema. Al hacer esto, reduce el monto de informacin necesario para que usted haga su anlisis. Para saber si un dato de informacin ser importante para resolver el problema, hgase estas preguntas: Si yo no conociera esta informacin, todava podra resolver el problema? Si la respuesta es s, entonces la informacin es superflua y puede ignorarla. Pero si despus encuentra que la informacin es importante, puede considerarla.

EJEMPLO: Treyson Mobley quiere un programa que calcule y muestre el monto que el debe dar de propina al mesero en un restaurante. El programa debe restar el monto del vino consumido de la cuenta a pagar y entonces calcular la propina ( usando un porcentaje ) sobre el resto de la cuenta total.
Especificacin del problema con informacin sin importancia subrayada.

Como programador, es importante distinguir entre informacin que verdaderamente est perdida en la especificacin del problema y la informacin que est implicada.

EJEMPLO: Caroline Casey quiere un programa que calcule y muestre el rea de cualquier rectngulo.
Especificacin de un problema en la que la entrada no est explcitamente especificada

En este ejemplo, para resolver el problema, necesita calcular el rea de un rectngulo; para hacer esto multiplica el ancho por la longitud. De esta forma el rea es la salida, y la longitud y el ancho son las entradas. Note adems que las palabras longitud y anchura no aparecen en la especificacin del problema. Aunque ambos datos no estn establecidos explcitamente en la especificacin del problema, ninguno es considerado informacin perdida. Esto es porque la frmula para calcular el rea de un rectngulo es un conocimiento comn. Con prctica, usted ser capaz de llenar los vacos en la especificacin de un problema.

STEP 2: PLANE EL ALGORITMO

El segundo paso en el proceso de resolucin de problemas es planear el algoritmo que transformar la entrada en la salida deseada. Usted registra el algoritmo en la columna de procesamiento del IPO chart. Cada instruccin en el algoritmo describir la accin que la computadora necesitar tomar. As, cada instruccin debe empezar con un verbo. Muchos algoritmos comienzas sus instrucciones para obtener sus datos de entrada en la computadora. A continuacin, describe las instrucciones que procesarn los datos de entrada para lograr la salida del problema. El procesamiento tpicamente involucrar realizar uno o ms clculos usando los datos de entrada. Muchos algoritmos finalizan con instrucciones que muestran, imprimen, o almacenan los datos. Mostrar, imprimir, y almacenar, se refieren a la pantalla de la computadora, la impresora, y a un archivo de disco respectivamente. La figura 2-9 muestra la especificacin del problema y el IPO chart para el problema Treyson Mobley. El algoritmo comienza solicitando los datos de entrada. Luego usa estos datos para calcular la salida deseada. Note que el algoritmo establece ambos qu va a ser calculado y cmo va a ser calculado. En este caso, la propina es calculada restando el costo del vino de la cuenta a pagar y entonces multiplicar el resto por el porcentaje de la propina. La ltima instruccin en el algoritmo muestra el monto de la propina.

El algoritmo en la figura 2-9 est compuesto de palabras cortas del Ingls, llamado seudocdigo. La palabra seudocdigo significa cdigo falso. Es llamado falso porque, aunque nos recuerda a las instrucciones de un lenguaje de programacin, el seudocdigo no puede ser entendido por una computadora. Los programadores usan el seudocdigo para ayudarlos mientras estn planeando un algoritmo. Les permite anotar sus ideas sin tener que centrarse en una sintaxis especfica de un lenguaje de programacin

STEP 3: PRUEBA DE ESCRITORIO DEL ALGORITMO


Cmo se hace realmente una prueba de escritorio? Muy sencillo usted va a tener dos elementos que manejar en una prueba de escritorio: El primero es la memoria en donde se van a manejar las variables que intervengan en el programa y el segundo es la pantalla ( o unidad de salida cualquiera que sta sea ) por donde usted va a obtener los resultados de su algoritmo. Entonces desarrolla paso a paso lo que diga el algoritmo utilizando las variables que el mismo le indique y colocando en pantalla los ttulos que l mismo algoritmo le diga. Sencillamente suponga que usted es el computador. Cuando llegue al Fin del algoritmo todo lo que tiene que hacer es mirar en la pantalla ( o unidad de salida que usted haya representado ) y ver si lo que dice all coincide con el objetivo que inicialmente se haba propuesto. De ser as su algoritmo estar bien. Si no es as el algoritmo estar mal y usted tendr que corregirlo para volver a realizarle una prueba de escritorio.

Despus de analizar el problema y de planear el algoritmo, sigue la prueba de escritorio ( desk-checking )del algoritmo. El trmino prueba de escritorio se refiere al hecho de que el programador revisa el algoritmo mientras est sentado en su escritorio y no enfrente de la computadora. La prueba de escritorio es tambin llamada hand-tracing ( seguimiento a mano ). Porque el programador usa lpiz y papel para seguir cada una de las instrucciones del algoritmo a mano. La prueba de escritorio sirve para verificar que ninguna instruccin falta y que las instrucciones existentes estn correctas y en el orden apropiado. Antes de que comience la prueba de escritorio, elige un conjunto de datos de entrada, y los usar para calcular manualmente y obtener el resultado de salida deseado. La primera instruccin en el algoritmo es introducir los datos de entrada. Usted registra los resultados de esta instruccin escribiendo 45, 10 y 0.2. En las columnas que les corresponden estos valores. Vea la figura 2-14.

La segunda instruccin en el algoritmo es calcular la cuenta total.

La tercera instruccin en el algoritmo es calcular la propina.

La ltima instruccin en el algoritmo es mostrar la propina.

EJEMPLO #2 EL PROBLEMA DE RENDIMIENTO DE GASOLINA

METODOLOGA # 2

KOFFMAN

Problem_Solving_and_Pr

MTODO DE DESARROLLO DE SOFTWARE


1.- Especifique los requerimientos del problema 2.- Analice el problema 3.- Disee el algoritmo que resolver el problema 4.- Implemente el algoritmo 5.- Pruebe y depure el programa 6.- Mantenga y actualice el programa

1.- ESPECIFIQUE LOS REQUERIMIENTOS DEL PROBLEMA PROBLEMA: Especificar los requerimientos del problema lo fuerza a usted a establecer el problema claramente y sin ambigedad para que de esta forma obtenga un claro entendimiento de los que es requerido para su solucin. El objetivo primario es eliminar aspectos sin importancia que hay en el problema. Lea cuidadosamente la sentencia del problema, con el fin de obtener una idea clara de lo que el problema es, y segundo, determinar las entradas y salidas. Por ejemplo, puede ser til subrayar las frases que encuentre en su problema y que puedan ser entradas y salidas en su programa. EJEMPLO: Calcule y muestre el costo total de manzanas dado el nmero de onzas de manzanas compradas y el costo por onza de las manzanas.

A continuacin, resuma la informacin contenida en las frases subrayadas, ya sea en una tabla o cuadro informativo. Entradas en el problema Cantidad de manzanas compradas ( en onzas ) Costo por onza de las manzanas ( en dlares por onza ) Salidas en el problema Costo total de las manzanas ( en dlares ) Ya que sabe las entradas y salidas del problema, desarrolle una lista de pasos a seguir o algoritmo que especifique las relaciones que hay entre ellas. En este problema nos valdremos de la frmula general que dice: Costo total = Costo unitario X Nmero de unidades Sustituyendo las variables para nuestro problema particular, la frmula queda as: Costo total de manzanas = Costo por onza X Onzas de manzanas En algunas situaciones, tendr que hacer ciertas suposiciones o simplificaciones para derivar estas relaciones. Este proceso de modelar un problema extrayendo las variables esenciales y sus relaciones es llamado abstraccin

2.- ANALICE EL PROBLEMA ANLISIS: Analizar el problema involucra identificar en el problema (a) entradas, es decir, los datos con los que trabajar su algoritmo, (b) salidas, los resultados que se espera produzca el algoritmo, (c) y cualquier otro requerimiento o restriccin sobre la solucin. En esta etapa, debe determinar el formato requerido en el cual los datos sern mostrados, por ejemplo, como una tabla con cabeceras. Si los pasos 1 y 2 no son hechos apropiadamente, el problema no podr ser resuelto.

3.- DISEE EL ALGORITMO QUE RESUELVE EL PROBLEMA Disear el algoritmo que resolver el problema requiere que usted desarrolle una lista de pasos lgicos el cual se pueda implementar fcilmente y verificar que realmente resuelve el problema. Escribir el algoritmo es algunas veces la parte ms difcil del proceso de resolucin de problemas. No intente resolver cada detalle del problema al comienzo; en vez, trate mejor de usar la tcnica del diseo descendente ( top-down design )

En el diseo descendente, usted lista los pasos principales o subproblemas que necesitan ser resueltos. De esta forma usted resuelve el problema original resolviendo sus subproblemas. Muchos algoritmos de computadora consisten de al menos los siguientes subproblemas: 1.- Obtenga los datos 2.- Realice los clculos 3.- Muestre los resultados Ya que ha identificado los subproblemas, puede resolverlos individualmente. Por ejemplo, para realizar o efectuar los clculos puede que usted necesite descomponerlo en una lista ms detallada de pasos, a este proceso se le llama refinamiento sucesivo ( stepwise refinement ) Usted puede estar familiarizado con el diseo descendente ( top-down design ) usted los usa cuando va a escribir un artculo o borrador. Su primer paso es crear un borrador de los temas principales a tratar, luego usted desarrolla cada tema principal individualmente con sus subtemas principales. Ya que estos subtemas estn completos, empieza a escribir el artculo completo. Prueba de Escritorio ( desk check ) La prueba de escritorio es un paso importante en el diseo del algoritmo que algunas veces es pasado por alto. En la prueba de escritorio cuidadosamente lleva a cabo a mano cada uno de los pasos de su algoritmo. Si al ejecutarlo le lleva a los resultados deseados, entonces su algoritmo estar listo para convertirse en un programa de computadora. Adems el realizar esta tarea le ahorrar tiempo y esfuerzo en localizar errores en su algoritmo. Los Casos de Estudio, comenzarn con una sentencia del problema. Como parte del anlisis del problema, identificaremos los requerimientos de datos para el problema, indicando las entradas que tendr el problema y las salidas deseadas. Luego, disearemos y refinaremos el algoritmo inicial. Finalmente, implementaremos el algoritmo en un lenguaje de programacin.

4.- IMPLEMENTE EL ALGORITMO Aqu es donde su algoritmo se convierte en un programa de computadora. Esta tarea incluye elegir el lenguaje de programacin adecuado y traducir los pasos de su algoritmo en las expresiones adecuadas del lenguaje de programacin.

5.- PRUEBE Y DEPURE EL PROGRAMA Este paso consta de verificar si realmente el programa trabaja como se desea. Utilice muchos datos de prueba para asegurarse de que trabaja adecuadamente para cada situacin.

6.- MANTENGA Y ACTUALICE EL PROGRAMA Ya en este punto del proceso de desarrollo de software, involucra modificar el programa para remover errores previamente detectados y mantener el programa al da conforme las polticas de la compaa cambien. Un enfoque disciplanado es requerido de su parte para crear programas fciles de leer, entender y mantener. Debe de seguir guas de estilo de programacin y evitar usar trucos para salir al paso en los problemas que se presentan. Adhirase a las reglas o convenios que hay entre los programadores.

PROCESO DE DESARROLLO DE SOFTWARE PARA EL PRINCIPIANTE


1.- ANALICE EL PROBLEMA 2.- DISEE UNA SOLUCIN AL PROBLEMA 3.- CODIFIQUE LA SOLUCIN

4.- PRUEBE Y DEPURE LA SOLUCIN

LOS 7 PASOS DE LA PROGRAMACIN

PASO 1: DEFINA LOS OBJETIVOS DEL PROGRAMA


Debe establecer con claridad que es lo que el programa va a hacer. Piense en trminos de la informacin que su programa necesitar, los tipos de clculos y manipulaciones que el programa realizar, la informacin que reportar el programa. En este nivel de planeacin, debe de pensar en trminos generales, no en trminos de algn lenguaje de programacin especfico.

PASO 2: DISEE EL PROGRAMA


Despus de que obtenga una imagen conceptual de lo que el programa har, ahora debe decidir cmo lo har.

LOS 5 PASOS DEL DESARROLLO DE SOFTWARE


1) ESPECIFICACIN Determine el alcance de su problema y qu es lo que su programa har. 2) DISEO Determine las estructuras y el algoritmo necesario ( cmo ) que resolver el problema en un nivel de abstraccin de alto-nivel.

1.- ANALICE EL PROBLEMA:


El primer paso es analizar el problema. Aqu es donde usted lee el problema cuidadosamente y trata de entender cada detalle. Su misin es identificar informacin importante en el problema. Listar esa informacin importante o representarle mediante un diagrama lo cual le ayudar a obtener una visin ms amplia sobre el problema que trata de resolver. Tambin determine las partes del problema que necesitan ms informacin que tiene que investigar. Finalmente si usted reconoce caractersticas del problema que ya ha resuelto antes, utilcelas para resolver este problema.

2.- DISEE UNA SOLUCIN:


Aqu es donde se crea la solucin al problema. Primero desarrolle un mapa mental de cmo la solucin se ejecutar si fuera un programa de computadora. Segundo, usted crea un plan para programar la solucin. Para crear su solucin usted se ayudar de herramientas grficas que requieren slo lpiz y papel. Puede usar diagramas de flujo de datos, diagramas de jerarqua o seudocdigo. Las fases de anlisis y diseo pueden ser las partes ms desafiantes porque en ellas hay una combinacin de arte, experiencia y pensamiento organizado.

3.- CODIFIQUE LA SOLUCIN:


Codificar la solucin es donde usted usa la computadora y escribe el algoritmo de solucin en un lenguaje de programacin adecuado. En esta fase es donde usted ve como sus ideas toman forma y se transforman en su software.

4.- PRUEBE Y DEPURE LA SOLUCIN:


Durante esta fase, las partes de su programa estn listas para ser examinadas o todo el programa est listo para ser probado. Las pruebas es donde usted ejecuta el programa y acta como un usuario de su programa. Le proporciona datos para ver como se comporta bajo diferentes tipos de entradas de datos.

La depuracin de un programa en donde el programador trata de localizar los errores encontrados en la fase de pruebas.

CMO DESARROLLAR UN ALGORITMO


1.- ANALICE EL PROBLEMA
Este paso requiere que usted lea el problema y cuidadosamente haga algunas observaciones acerca del problema. Es recomendable que primero visualice su algoritmo como una caja negra, como se muestra en la siguiente figura.

Visualizar es una herramienta que algunas veces usan los programadores para hacer abstracciones sobre sus diseos en software. Abstraccin oculta los detalles de la forma de cmo algo es construido, pero proporciona suficiente informacin para entender su propsito. El trmino caja-negra trae consigo la idea de que uno no puede ver los detalles de cmo se ha hecho el algoritmo, as como la abstraccin oculta los detalles. Esta Visualizacin para un algoritmo es usada en el inicio del desarrollo del algoritmo la cual nos ayudar a centrarnos sobre las preguntas que surjan en el anlisis en vez de tratar de determinar cmo la solucin trabajar.

Você também pode gostar