Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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:
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