Está en la página 1de 10

Instituto Tecnolgico Superior de Calkini En el estado de Campeche.

ALGORITMOS Y LENGUAJESD DE PROGRAMACION MAESTRO: L.I MARIO IVAN CRUZ CHIN

Trabajo:
Documental.-METODOLOGIA PARA DISEOS DE SOFTWARE .

Alumno:
Jos Rigoberto Chable Pech. 2723

CUARTO

SEMESTRE

Calkini, Camp. A 16 de marzo de 2012

METADOLOGIA PARA EL DISEO DE SOFTWARE

El Diseo de Sistemas se define el proceso de aplicar ciertas tcnicas y principios con el propsito de definir un dispositivo, un proceso o un Sistema, con suficientes detalles como para permitir su interpretacin y realizacin fsica. La etapa del Diseo del Sistema encierra cuatro etapas: El diseo de los datos. Trasforma el modelo de dominio de la informacin, creado durante el anlisis, en las estructuras de datos necesarios para implementar el Software. El Diseo Arquitectnico. Define la relacin entre cada uno de los elementos estructurales del programa. El Diseo de la Interfaz. Describe como se comunica el Software consigo mismo, con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean. El Diseo de procedimientos. Transforma elementos estructurales de la arquitectura del programa. La importancia del Diseo del Software se puede definir en una sola palabra Calidad, dentro del diseo es donde se fomenta la calidad del Proyecto. El Diseo es la nica manera de materializar con precisin los requerimientos del cliente. El Diseo del Software es un proceso y un modelado a la vez. El proceso de Diseo es un conjunto de pasos repetitivos que permiten al diseador describir todos los aspectos del Sistema a construir. A lo largo del diseo se evala la calidad del desarrollo del proyecto con un conjunto de revisiones tcnicas: El diseo debe implementar todos los requisitos explcitos contenidos en el modelo de anlisis y debe acumular todos los requisitos implcitos que desea el cliente. Debe ser una gua que puedan leer y entender los que construyan el cdigo y los que prueban y mantienen el Software. El Diseo debe proporcionar una completa idea de lo que es el Software, enfocando los dominios de datos, funcional y comportamiento desde el punto de vista de la Implementacin.

Para evaluar la calidad de una presentacin del diseo, se deben establecer criterios tcnicos para un buen diseo como son: Un diseo debe presentar una organizacin jerrquica que haga un uso inteligente del control entre los componentes del software. El diseo debe ser modular, es decir, se debe hacer una particin lgica del Software en elementos que realicen funciones y subfunciones especificas. Un diseo debe contener abstracciones de datos y procedimientos. Debe producir mdulos que presenten caractersticas de funcionamiento independiente. Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los mdulos y el entorno exterior. Debe producir un diseo usando un mtodo que pudiera repetirse segn la informacin obtenida durante el anlisis de requisitos de Software. Estos criterios no se consiguen por casualidad. El proceso de Diseo del Software exige buena calidad a travs de la aplicacin de principios fundamentales de Diseo, Metodologa sistemtica y una revisin exhaustiva. Cuando se va a disear un Sistema de Computadoras se debe tener presente que el proceso de un diseo incluye, concebir y planear algo en la mente, as como hacer un dibujo o modelo o croquis.

http://www.mitecnologico.com/Main/MetodologiaParaElDise%F1oDeSoftware

Diseo Top-Down El diseo Top-Down fue promovido en la dcada de 1970 por el investigador de IBM Harlan Mills y Nickaus Wirth. Mills desarroll conceptos de programacin estructurada para utilizarlos y probarlos en un proyecto de 1969 que tena como objetivo automatizar algunos procedimientos del peridico New York Times. El desarrollo de este proyecto hizo que se dispersara y se ampliara la idea de hacer los programas con esta filosofa de trabajo al resto de los desarrolladores de IBM, as como al resto de la industria del software. Por su parte, Nicklaus Wirth, desarroll entre otros lenguajes, el lenguaje de programacin Pascal, escribi un artculo muy importante acerca del Desarrollo de programas por medio de refinamiento de pasos. Esta idea de disear programas permaneci como principal corriente de desarrollo hasta fines de la dcada de 1980, cuando fue desplazada por la programacin orientada a objetos, sin embargo contina siendo una muy importante ayuda para el desarrollo de los mtodos en los la programacin orientada a objetos El diseo top-down es una herramienta que presenta en primer lugar una solucin a un problema general utilizando tres o cuatro pasos solamente. Cada uno de esos pasos en la primera solucin se dividen en otros subpasos. Este proceso se repite varias veces, en cada iteracin se produce una solucin ms

detallada al problema original. Cuando los pasos ya no se pueden subdividir, el algoritmo ha terminado. El diseo top-down tambin se conoce como descomposicin funcional o refinamiento de pasos.

Ejemplo del diseo tpo-down

Programacin estructurada PROGRAMACIN ESTRUCTURADA La programacin estructurada es un estilo con el cual el se busca que el Programador elabore programas sencillos y fciles de entender. Para ello, la programacin estructurada hace uso de tres estructuras bsicas de control. stas son: Estructura Secuencial Estructura Selectiva Estructura Repetitiva ( Iterativa) La programacin estructurada se basa un teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando nicamente las tres estructuras bsicas (secuencia,seleccin, iteracin). DEFINICIN DE LAS TRES ESTRUCTURAS BSICAS Estructura Secuencial

Indica que las instrucciones de un programa se ejecutan una despus de la otra, en el mismo orden en el cual aparecen en el programa. Se representa grficamente como una caja despus de otra, ambas con una sola entrada y una nica salida. Las cajas A y B pueden ser definidas para ejecutar desde una simple instruccinhasta un mdulo o programa completo, siempre y cuando stos tambin sean programas apropiados. Estructura Selectiva Tambin conocida como la estructura SI-VERDADERO-FALSO, plantea la seleccin entre dos alternativas con base en el resultado de la evaluacin de una condicin; equivale a la instruccin IF de todos los lenguajes de programacin y se representa grficamente de la siguiente manera: En el diagrama de flujo anterior, C es una condicin que se evala; A es la accin que se ejecuta cuando la evaluacin de esta condicin resulta verdadera y B es la accin ejecutada cuando el resultado de la evaluacin indica falso. La estructura tambin tiene una sola entrada y una sola salida; y las funciones A y B tambin pueden ser cualquier estructura bsica o conjunto de estructuras. Estructura Repetitiva (Iterativa) Tambin llamada la estructura HACER-MIENTRAS-QUE, corresponde a la ejecucin repetida de una instruccin mientras que se cumple una determinada condicin. El diagrama de flujo para esta estructura es el siguiente: Aqu el bloque A se ejecuta repetidamente mientras que la condicin C se cumpla o sea cierta. Tambin tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura bsica o conjunto de estructuras. Ventajas de la Programacin Estructurada Con la programacin estructurada, elaborar programas de computadora sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: 1. Los programas son ms fciles de entender. Un programa estructurado puede ser ledo en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lgica, lo cual es tpico de otros estilos de programacin. 2. Se logra una reduccin del esfuerzo en las pruebas. El seguimiento de las fallas o depuracin (debugging) se facilita debido a la lgica ms visible, de tal forma que los errores se pueden detectar y corregir ms fcilmente. 3. Se crean programas ms sencillos y ms rpidos La programacin estructurada es una tcnica para escribir programas (programacin de computadora) de manera clara. Para ello se utilizan nicamente tres estructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de la instruccin o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o mltiples RETURN). Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin existentes en los aos 1960, principalmente debido a las aplicaciones grficas, por lo que las tcnicas de programacin estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas tcnicas, tales como la

programacin orientada a objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones. Programacin Estructuradas Metodologas Orientadas a Datos Jerrquicos La estructura de control del programa debe ser jerrquica y se debe derivar de la estructura de datos del programa El proceso de diseo consiste en definir primero las estructuras de los datos de entrada y salida, mezclarlas todas en una estructura jerrquica de programa y despus ordenar detalladamente la lgica procedimental para que se ajuste a esta estructura El diseo lgico debe preceder y estar separado del diseo fsico

Metodologas Estructuradas (vi) Metodologas Orientadas a Datos No Jerrquicos Metodologa Ingeniera de la Informacin Planificacin: construir una arquitectura de la Informacin y una estrategia que soporte los objetivos de la organizacin Anlisis: comprender las reas del negocio y determinar los requisitos del sistema Diseo: establecer el comportamiento del sistema deseado por el usuario y que sea alcanzable por la tecnologa Construccin: construir sistemas que cumplan los tres niveles anteriores

Ventajas de la programacin estructurada 1. Los programas son ms fciles de entender, pueden ser ledos de forma secuencial, no hay necesidad de hacer engorrosos seguimientos en saltos de lnea (GOTO) dentro de los bloques de cdigo para intentar entender la lgica. 2. La estructura de los programas es clara, puesto que las instrucciones estn ms ligadas o relacionadas entre s. 3. Reduccin del esfuerzo en las pruebas y depuracin. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a su estructura ms sencilla y comprensible, por lo que los errores se pueden detectar y corregir ms fcilmente. 4. Reduccin de los costos de mantenimiento. Anlogamente a la depuracin, durante la fase de mantenimiento, modificar o extender los programas resulta ms fcil.

5. Programas son ms sencillos y ms rpidos de confeccionar (y se facilita su optimizacin). 6. Los bloques de cdigo son casi auto-explicativos, lo que reduce y facilita la documentacin. 7. Las instrucciones de salto, GOTO, quedan reservadas para construir las instrucciones bsicas, si fuera realmente imprescindible. Aunque no se usan de forma directa, por estar prohibida su utilizacin, estn incluidas implcitamente en las instrucciones de seleccin e iteracin. 8. Un programa escrito de acuerdo a los principios de programacin estructurada no solamente tendr una mejor estructura sino tambin una excelente presentacin. 9. Se incrementa el rendimiento de los programadores, comparada con la forma tradicional que utiliza GOTO. La programacin estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, esencialmente, una tarea de dedicacin, esfuerzo y creatividad; programar es casi un arte. Bibliografa 1. Garca-Bermejo Giner, Jos Rafael (2 de 2008) (en espaol). Programacin estructurada en C (1 edicin). Pearson Prentice Hall. ISBN 978-84-8322423-6.

PROGRAMACION DE DISEO BOTTOM UP El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su anlisis como sistema y su codificacin, o bien, la adquisicin de paquetes de software para satisfacer el problema inmediato. Cuando la programacin se realiza internamente y haciendo un enfoque ascendente, es difcil llegar a integrar los subsistemas al grado tal de que el desempeo global, sea fluido. Los problemas de integracin entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programacin alcanza la fecha lmite para la integracin total del sistema.

En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es la duplicacin de esfuerzos para acceder el software y mas aun al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el mas serio inconveniente del enfoque ascendente, es que los objetivos globales de la organizacin no fueron considerados y en consecuencia no se satisfacen. En contraste, en el diseo Bottom-up las partes individuales se disean con detalle y luego se enlazan para formar componentes ms grandes, que a su vez se enlazan hasta que se forma el sistema completo. Las estrategias basadas en el flujo de informacin "bottom-up" se antojan potencialmente necesarias y suficientes porque se basan en el conocimiento de todas las variables que pueden afectar los elementos del sistema."

Una empresa bottom-up slo tiene definido sus objetivos y sus puntos clave (el ADN), cmo llevarlo a cabo en diferentes lugares es algo que depende de los empleados en cada localidad y no de la cabeza de la empresa. De la misma manera que una programacin bottom-up, una empresa bottom-up tiene a sus partes trabajando incluso de forma diferente pero alcanzando un objetivo comn. En una empresa bottom-up la negociacin con ellos es rpida y cercana a la realidad que se vive en ese entorno. La persona con la que hablamos tiene capacidad de decisin en lo concerniente a su realidad y puede tomar decisiones de una forma rpida. Se trata, sin embargo, de negociaciones que slo incumben a cierto mbito local.Todas las empresas tienen cierto grado de funcionamiento top-down y bottom-up. La clave es encontrar el balance ideal para su sector.McDonalds, por ejemplo, es una empresa que combina ambas tcnicas. Por un lado se trata de una empresa top-down ya que ofrece el mismo producto y de la misma forma en todas sus tiendas, sin embargo tiene un empuje bottom-up a la hora de aadir productos extra en sus cartas.

Programacin modular
Qu es programacin modular? Uno de los mtodos ms conocidos para resolver un problema es dividirlo en problemas ms pequeos, llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras ms sencillas y a partir de ellas llegamos a la solucin. Esta tcnica se usa mucho en programacin ya que programar no es ms que resolver problemas, y se le suele llamar diseo descendente, metodologa del divide y vencers o programacin top-down. Es evidente que si esta metodologa nos lleva a tratar con subproblemas, entonces tambin tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar mdulos, de ah viene el nombre de programacin modular. En Pascal disponemos de dos tipos de mdulos: los procedimientos y las funciones. Veamos un ejemplo de cmo emplear el diseo descendente para resolver un problema. Supongamos que un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas segn distintas calificaciones, etc. A continuacin ties un esquema que representa una de las posibles divisiones del problema en mdulos. La programacin modular es un paradigma de programacin que consiste en dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable. Se presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin ms grandes y complejos de lo que sta puede resolver. Al aplicar la programacin modular, un problema complejo debe ser dividido en varios su problemas ms simples, y estos a su vez en otros su problemas ms simples. Esto debe hacerse hasta obtener sus problemas lo suficientemente simples como para poder ser resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers anlisis descendente (Top-Down). Un mdulo es cada una de las partes de un programa que resuelve uno de los su problemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida y algunos necesitan de otros para poder

operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida. Si bien un mdulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la prctica se los suele tomar como sinnimos de procedimientos y funciones. Pero no necesaria ni estrictamente un mdulo es una funcin o un procedimiento, ya que el mismo puede contener muchos de ellos, no debe confundirse el trmino "modulo" (en el sentido de programacin modular) con trminos como "funcin" o "procedimiento", propios del lenguaje que lo soporte. EJEMPLO:

http://teleformacion.edu.aytolacoruna.es/PASCAL/document/modular.htm

También podría gustarte