Está en la página 1de 14

INSTITUTO TECNOLOGICO SUPERIOR

DE ALVARADO

INGENIERÍA INDUSTRIAL

Materia:
Algoritmo y lenguaje de progamacion

Semestre-Grupo:
4

Producto Académico:
INVESTIGACION

Tema:
METODOLOGIA PARA EL DESARROLLO DE
SOFTWARE MODULAR

Presenta:
CRISTIAN DOMINGUEZ ROMAN

Docente:
CRISTHIAN VILLEGAS GARCIA

N.DE CONTROL:

166z0761

FECHA DE ENTREGA
20 de febrero del 2018
INTRODUCCION
Dado un problema a resolver, en primer lugar hay que estudiar la posibilidad de
dividirlo en otros más pequeños, llamados subproblemas (este método es
conocido como "divide y vencerás"). Cada uno de ellos puede tratarse de
manera aislada; por tanto, la complejidad global del problema disminuirá
considerablemente. Del mismo modo, si los subproblemas obtenidos siguen
siendo demasiado complicados, también puede ser conveniente fragmentarlos. Y
así sucesivamente, hasta llegar a subproblemas realmente sencillos.

A cada subproblema se le considera parte o módulo del problema global, y cada


uno de ellos se resolverá por medio de un programa o subprograma.

Dependiendo de las características de cada problema y subproblemas derivados,


se alcanzará un nivel de descomposición diferente. A la persona que realice el
análisis, dichas características le servirán para abstraer lo máximo posible el
problema y subproblemas a resolver. La abstracción permite considerar por
separado cada subproblema asilándolo de los demás.

Los módulos se interrelacionan entre sí, ya que, cada uno de ellos tendrá un
comportamiento que afectará al que esté por encima o por debajo de él. Sin
embargo, la manera en que cada uno de los módulos realice sus tareas no será
visible al resto de los módulos, a esto se le conoce como encapsulación.

En resumen, la solución a un problema suele venir dada por un programa


representado por un módulo principal, el cual se descompone
en subprogramas (submódulos), los cuales, a su vez, también se pueden
fraccionar, y así sucesivamente, es decir, el problema se resuelve de arriba hacia
abajo. A este método se le denomina diseño modular o descendente (top-down)
Desarrollo
El Diseño de Sistemas se define como el proceso de aplicar ciertas técnicas y
principios con el propósito de definir un dispositivo, un proceso o un Sistema, con
suficientes detalles como para permitir su interpretación y realización física.
La etapa del Diseño del Sistema encierra cuatro etapas:
 El diseño de los datos. Trasforma el modelo de dominio de la información,
creado durante el análisis, en las estructuras de datos necesarios para
implementar el Software.
 El Diseño Arquitectónico. Define la relación entre cada uno de los elementos
estructurales del programa.
 El Diseño de la Interfaz. Describe como se comunica el Software consigo
mismo, con los sistemas que operan junto con él y con los operadores y
usuarios que lo emplean.
 El Diseño de procedimientos. Transforma elementos estructurales de la
arquitectura del programa. La importancia del Diseño del Software se puede
definir en una sola palabra Calidad, dentro del diseño es donde se fomenta
la calidad del Proyecto. El Diseño es la única manera de materializar con
precisión los requerimientos del cliente.

El Diseño del Software es un proceso y un modelado a la vez. El proceso de Diseño


es un conjunto de pasos repetitivos que permiten al diseñador describir todos los
aspectos del Sistema a construir. A lo largo del diseño se evalúa la calidad del
desarrollo del proyecto con un conjunto de revisiones técnicas:
 El diseño debe implementar todos los requisitos explícitos contenidos en el
modelo de análisis y debe acumular todos los requisitos implícitos que desea
el cliente.
 Debe ser una guía que puedan leer y entender los que construyan el código
y los que prueban y mantienen el Software.
 El Diseño 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 Implementación.
Para evaluar la calidad de una presentación del diseño, se deben establecer
criterios técnicos para un buen diseño como son:
 Un diseño debe presentar una organización jerárquica que haga un uso
inteligente del control entre los componentes del software. El diseño debe ser
modular, es decir, se debe hacer una partición lógica del Software en
elementos que realicen funciones y subfunciones específicas.
 Un diseño debe contener abstracciones de datos y procedimientos.
 Debe producir módulos que presenten características de funcionamiento
independiente.
 Debe conducir a interfaces que reduzcan la complejidad de las conexiones
entre los módulos y el entorno exterior.
 Debe producir un diseño usando un método que pudiera repetirse según la
información obtenida durante el análisis de requisitos de Software. Estos
criterios no se consiguen por casualidad. El proceso de Diseño del Software
exige buena calidad a través de la aplicación de principios fundamentales de
Diseño, Metodología sistemática y una revisión exhaustiva.

Cuando se va a diseñar un Sistema de Computadoras se debe tener presente que


el proceso de un diseño incluye, concebir y planear algo en la mente, así como
hacer un dibujo o modelo o croquis.

Top Down
La programación descendente o “Top - Down” es el proceso mediante el cual un
problema se descompone en una serie de niveles o pasos sucesivos de
refinamiento (stepwise). La metodología descendente consiste en efectuar una
relación entre las sucesivas etapas de estructuración de modo que exista una
relación entre ellas mediante entradas y salidas de información. El problema se
descompone en varias estructuras jerárquicas, de forma que se pueda considerar
cada estructura desde dos puntos de vista: ¿qué hace? y ¿cómo lo hace?
Bottom Up
El diseño ascendente se refiere a la identificación de aquellos procesos que
necesitan computarizarse conforme vayan apareciendo, su análisis como sistema y
su codificación, o bien, la adquisición de paquetes de software para satisfacer el
problema inmediato. Cuando la programación se realiza internamente y haciendo
un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de
que el desempeño global, sea fluido. Los problemas de integración entre los
subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta
que la programación alcanza la fecha límite para la integración 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 duplicación de esfuerzos para acceder el software y más aún al
introducir los datos. Otro es, que se introducen al sistema muchos datos carentes
de valor. Un tercero y tal vez el más serio inconveniente del enfoque ascendente,
es que los objetivos globales de la organización no fueron considerados y en
consecuencia no se satisfacen.

Modular
Programación modular es uno de los métodos de diseño más flexibles y potentes
para mejorar la productividad de un programa. En programación modular el
programa se divide en módulos (partes independientes), cada una de las cuales
ejecuta una única actividad o tarea y se codifican independientemente de otros
módulos. Cada uno de estos módulos se analiza, codifican por separado.
Cada programa contiene un módulo denominado programa principal, que controla
todo lo que sucede, se transfiere el control a submódulos (posteriormente se
denominan subprogramas), de modo que ellos puedan ejecutar sus funciones; sin
embargo, cada submódulo devuelve el control al módulo principal cuando termina
su tarea. Si la tarea asignada a cada submódulo es demasiado compleja, éste
deberá dividirse en otros módulos más pequeños. El proceso sucesivo de
subdivisión de módulos continúa hasta que cada módulo tenga solamente una tarea
específica que ejecutar.

Programación Estructurada
Es una forma de escribir programas de computadora de manera clara. Para ello
utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo
innecesario el uso de la instrucción o instrucciones de transferencia incondicional
(GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las
necesidades de programación existentes en los años 1960, principalmente debido
a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no
son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la
programación orientada a objetos y el desarrollo de entornos de programación que
facilitan la programación de grandes aplicaciones.

Algoritmo
Es un Método para resolver un problema mediante una serie de pasos precisos,
definidos y finitos. Un algoritmo es una serie de operaciones detalladas, en otras
palabras, un algoritmo es un conjunto de pasos para resolver una cierta clase de
problemas y se puede formular de muchas formas con el cuidado de que no exista
ambigüedad.

Características
 Preciso (debe indicar el orden de realización en cada paso y no puede tener
ambigüedad).
 Definido (si se sigue dos veces, obtiene el mismo resultado cada vez)
 Finito (tiene fin; un número determinado de pasos).
 Debe ser Sencillo, Legible.
 Modular.
 Eficiente y Efectivo.
 Se ha de desarrollar en el menor tiempo posible.
 Correcto.
 Todo Algoritmo debe tener cero o más entradas.
 Debe tener al menos una salida y ésta debe ser tangible.
DIAGRAMA DE FLUJO

1.-Definición.-
Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas
simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las
unidades involucradas y los responsables de su ejecución, es decir, viene a ser la
representación simbólica o pictórica de un procedimiento administrativo.
Luego, un diagrama de flujo es una representación gráfica que desglosa un proceso
en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de
servicios y en sus departamentos, secciones u áreas de su estructura organizativa.
Son de gran importancia ya que ayudan a designar cualquier representación gráfica
de un procedimiento o parte de este. En la actualidad los diagramas de flujo son
considerados en la mayoría de las empresas como uno de los principales
instrumentos en la realización de cualquier método o sistema.
A continuación se incluyen dos representación power point, del procedimiento para
organizar el evento de una boda, como ejemplo práctico de la utilización de los
diagramas de flujo en cualquier proceso

2.-Objetivo.-
Representar gráficamente las distintas etapas de un proceso y sus interacciones,
para facilitar la comprensión de su funcionamiento. Es útil para analizar el proceso
actual, proponer mejoras, conocer los clientes y proveedores de cada fase,
representar los controles, etc.

3.-Ventajas.-
Podemos citar como ventajas que se pueden obtener con la utilización de los
diagramas de flujo, las siguientes:
Ayudan a las personas que trabajan en el proceso a entender el mismo, con lo que
facilitaran su incorporación a la organización e incluso, su colaboración en la
búsqueda de mejoras del proceso y sus deficiencias.
Al presentarse el proceso d una manera objetiva, se permite con mayor facilidad la
identificación de forma clara de las mejoras a proponer.
Permite que cada persona de la empresa se sitúe dentro del proceso, lo que
conlleva a poder identificar perfectamente quien es su cliente y proveedor interno
dentro del proceso y su cadena de relaciones, por lo que se mejora
considerablemente la comunicación entre los departamentos y personas de la
organización.
Normalmente sucede que las personas que participan en la elaboración del
diagrama de flujo se suelen volver entusiastas partidarias del mismo, por lo que
continuamente proponen ideas para mejorarlo.
Es obvio que los diagramas de flujo son herramientas muy valiosas para la
formación y entrenamiento del nuevo personal que se incorpore a la empresa.
Lo más reseñable es que realmente se consigue que todas las personas que están
participando en el proceso lo entenderán de la misma manera, con lo que será más
fácil lograr motivarlas a conseguir procesos más económicos en tiempo y costes y
mejorar las relaciones internas entre los cliente-proveedor del proceso.

4.-Elaboración.-
El desarrollo de un diagrama de flujo es una buena herramienta para ser realizada
con un trabajo en equipo, para lo cual se deberán seguir los pasos que a
continuación se exponen:
1. Se nominan los miembros del grupo de trabajo que deberán elaborar el
correspondiente diagrama de flujo del proceso en estudio. Se elegirán dichas
personas entre aquellas que estén participando en las tareas del proceso, junto a
sus proveedores y clientes internos, además de una persona ajena del proceso que,
por tanto, sea independiente del proceso. El objeto de incluir esta persona
independiente se debe a la necesidad de las siguientes premisas:
Que haga desaparecer la influencia decisiva de algún miembro del grupo en el
resultado.
Que obtenga la participación de todos los miembros del grupo de trabajo y resuelva
los conflictos que pudiera haber, actuando como moderador.
Que ayude al grupo a discriminar la información imprescindible de la que no lo es,
con objeto de aprovechar mejor el tiempo
2. Se realizan una serie de reuniones para ir realizando la elaboración de una
representación gráfica del proceso en cuestión. Es importante realizar varias
sesiones de trabajo, ya que así los participantes tendrán más tiempo para obtener
más información acerca del proceso.
3. Para realizar el diagrama, los datos son obtenidos a través de un continuo
planteamiento de preguntas a los miembros del grupo que se irán repitiendo a lo
largo de todo el proceso construcción del diagrama de flujo, como son:

¿Qué paso es el primero?


¿Qué paso es el siguiente?
Además se deberán utilizar otra serie de preguntas que pueden ayudar a construir
el diagrama en determinadas fases del proceso, a saber:

¿De dónde viene el servicio o el material?


¿Cómo entra el servicio o material al proceso’
¿Quién toma la decisión’
¿Que pasa si la decisión es afirmativa SI?
¿Que pasa si la decisión es negativa NO?
¿Hay algo más que se deba hacer en este momento del proceso?
¿Dónde va el producto o servicio de esta operación?
¿Que pruebas se realizan al producto en cada fase del proceso?
¿Que pruebas se realizan al proceso?
¿Qué pasa si el producto/servicio no cumple con lo especificado?
4. Todos los datos que se obtengan de las respuestas a las preguntas mencionadas
deberán siendo representadas en hojas del tipo post-It, que se dejaran bien visibles
para todo el grupo de trabajo durante la realización de la confección del diagrama,
componiendo una especie de mapa mental que ayuda a tomar decisiones.
5. Se deberá confeccionar una tabla de símbolos estándar que vayan a ser
utilizados normalmente en el diagrama de flujo a construir. Como ejemplo de los
mismos incorporamos una representación power point con una relación de los
mismos.

ELEMENTOS QUE LO CONFORMAN:

Procesos
Un proceso es representado por un rectángulo. Éste se refiere a una acción en un
proceso de negocios y debe describirse de forma clara y concisa. Un proceso
puede ser descrito usando una frase única del tipo verbo-sustantivo, por ejemplo
"Ordenar material de oficina". Este mismo nivel de detalle debe mantenerse en los
procesos de un diagrama de flujo.

Subprocesos
Un subproceso está representado por un rectángulo con líneas dobles en cada
lado. Un subproceso es un proceso importante que puede descomponerse en
procesos más simples que pueden desarrollarse en otro diagrama de flujo.

Decisión
Una decisión está representada por un diamante. Un proceso que puede
responder a una decisión de "sí" o "no" requiere un cuadro de decisión.

Conector
Un conector está representado por un pequeño círculo o un cuadro conector y se
etiqueta usando letras. Un diagrama de flujo escrito en una sola página es más
claro que un diagrama en varias páginas. Un conector asegura que los procesos
estén conectados de forma lógica y correcta en varias páginas.

Líneas de flecha
Las líneas de flecha dibujadas en una dirección, de preferencia de arriba hacia
abajo, mantienen la claridad de un diagrama de flujo. Evita líneas de flecha que se
ciclen debido a que esto puede indicar redundancia en el proceso de negocios. Si
los ciclos son necesarios extiende las líneas de flecha hacia arriba y a la izquierda
para mayor claridad.
Conclusión
Con todo lo anterior en esta investigación nos podemos dar cuenta que las distintas
metodologías tienen ciertas características en la metodología de Top Down nos
podemos dar cuenta que, para el análisis del problema es necesario descomponerlo
en ciertas partes que desde luego estos mismos necesariamente deben tener
relación con las entradas y salidas que emanan del proceso.
Por su parte el método Bottom Up, trata de identificar ciertos procesos que necesitan
registrarse a medida que estos empiecen a surgir, lo que más resalta en esta es su
análisis que como sistema tal cual va codificando. Lo complicado en este entonces
es tratar de integrar todos los elementos que tal vez lo más interesante son los
costos que son elevados y como todo en muchas ocasiones estos mismos no
funcionan como los esperamos, la paciencia también juega un papel muy importante
debido a que se le dedica mucho tiempo en el análisis y la comprensión de la
estructura que se necesita.

Bibliografía
 http://es.slideshare.net/Adark/metodologa-para-el-diseo-de-software
 http://moodle2.unid.edu.mx/dts_cursos_mdl/lic/IC/EA/AM/06/Metodolo
gia_para_la_solucion_de_problemas.pdf
 https://algoritmos-
lenguajes.wikispaces.com/Unidad+2+Materiales?responseToken=5cac
4605c00292f5ece5d9d0a88654ab

También podría gustarte