Upload
vicente-arturo-banda
View
40
Download
0
Embed Size (px)
Citation preview
1
IINNGGEENNIIEERRÍÍAA IINNDDUUSSTTRRIIAALL
Materia:
Algoritmos Y Lenguajes De Programacion.
Semestre - Grupo - Sistema: 4° Semestre - Grupo “B” – Semiescolarizado.
Producto Académico: Investigación Documental U3
“Metodologías Para El Diseño De Software”
Presenta: Calles Murillo Nancy
Pérez Banda Vicente Arturo. Castillo Lara Gerardo.
Alarcón Fernández Alder.
Docente: I.S.C: Gregorio Martínez Vásquez
MMEEDDEELLLLIINN DDEE BBRRAAVVOO,, VVEERR.. FFEEBB.. –– JJUUNN.. 22001133
IINNSSTTIITTUUTTOO TTEECCNNOOLLOOGGIICCOO SSUUPPEERRIIOORR
DDEE AALLVVAARRAADDOO –– CCaammppuuss MMeeddeellllíínn
2
INDICE
Índice ........................................................................................................................... 2
Objetivo del trabajo ..................................................................................................... 3
Introducción ................................................................................................................. 4
Metodologías Para El Desarrollo De Software ............................................................ 5
Tipo De Metodologías ............................................................................................. 7
Metodología Estructurada ............................................................................... 7
Metodología Orientada A Objetos ................................................................... 8
Tipos De Programación ............................................................................................... 9
Programación Modular .................................................................................... 9
Programación Estructurada ........................................................................... 10
Técnicas Principales De Diseño De Algoritmos De Programación ............................ 11
Top Down ...................................................................................................... 11
Bottom Up ..................................................................................................... 12
Diferencias Entre Top Down Y Bottom Up .................................................... 13
Conclusión................................................................................................................. 14
Bibliografías ............................................................................................................... 15
3
OBJETIVO
El presente trabajo tiene la finalidad de dar a conocer los tipos de metodologías
utilizadas frecuentemente en la estructuración de software con base a las
características que esta poseen.
Básicamente se pretende ilustrar al lector en el ámbito de algoritmos y programación,
haciendo hincapié a los elementos principales como lo son, las metodologías de
diseño, los tipos de programación, y las técnicas de diseño de algoritmos; con la
finalidad de plantear un previo conocimiento dentro de este ámbito con generalidades
diversas.
4
INTRODUCCION
Actualmente el campo de la tecnología ha tenido un crecimiento notorio en gran
variedad de ámbitos incorporados a la sociedad, pues este campo hace que las
tareas a realizar sean más fáciles de desarrollar, por lo cual hoy en día los algoritmos
y la programación juegan un rol importante en las implantaciones que se incorporan
a la solución de problemas día a día.
En el presente trabajo se podrá encontrar el como parte la programación atraves de
ciertas metodologías fundamentales las cuales tienes diversas tareas según su caso
de aplicación y en donde se toma en cuenta de manera estricta el tipo de
programación más apto para la solución del problema planteado. También se hace
mención de los tipos de técnicas de diseño de algoritmos y de cómo estas son
importantes para la programación en gran escala, así como se ara mención de la
diferencia que prevalecen entre estas.
Esperemos que esta información sea de gran utilidad y sobretodo les ayude a tener
una mejor compresión de los conceptos de programación presentes en esta
redacción.
¡ENHORABUENA Y MUCHA SUERTE!
5
METODOLOGÍAS PARA EL DESARROLLO DE SOFTWARE
Metodología de desarrollo de software se describe como el conjunto de
herramientas, técnicas, procedimientos y soporte documental para el diseño de
Sistemas de información. Es decir particularmente, una metodología se basa en una
combinación de los modelos de proceso genéricos para obtener como beneficio un
software que soluciones un problema, pues básicamente un proceso de software
detallado y completo se denomina “Metodología”.
En Ingeniería de software cuando se habla de desarrollo de software se habla de
desarrollo de programas y por lo tanto se considera como una tarea de ingeniería, en
el cuál se debe ejecutar una serie de fases, etapas para obtener un programa que
funcione de acuerdo con métodos ya establecidos en otras disciplinas de ingeniería.
Las actividades que los ingenieros de software realizan se encuentran asociadas a
un proceso de software donde intervienen diferentes elementos (fases, actividades,
producto, roles, agentes) que permiten la definición del software a producir
(producto), el desarrollo o el diseño del software, la validación del software tanto lo
interno (requerimientos específicos) como lo externo (expectativas del cliente), y la
evolución del software donde se modifica para adaptarlo a los cambios.
Con base esto se dice que adicionalmente una metodología debe definir con
precisión de los artefactos, roles y actividades, junto con prácticas, técnicas
recomendadas y guías de adaptación de la metodología al proyecto. Sin embargo, la
complejidad del proceso de creación de software es netamente dependiente de la
naturaleza del proyecto mismo, por lo que la selección de la metodología estará
acorde al nivel de aporte del proyecto, ya sea pequeño, mediano o de gran nivel.
6
Como se ha mencionado, las metodologías se basan en una combinación de los
modelos de proceso genéricos (cascada, evolutivo, incremental, espiral entre otros),
en donde habitualmente se utiliza el término “método” para referirse a técnicas,
notaciones y guías asociadas, que son aplicables a una (o algunas) actividades del
proceso de desarrollo, por ejemplo, suele hablarse de métodos de análisis y/o diseño
según el tipo de proyecto en cuestión, planteando así alternativas de solución
correspondientes.
7
TIPOS DE METODOLOGIAS
La comparación y/o clasificación de metodologías no es una tarea sencilla debido a
la diversidad de propuestas y diferencias en el grado de detalle, información
disponible y alcance de cada una de ellas. A grandes rasgos, si tomamos como
criterio las notaciones utilizadas para especificar artefactos producidos en actividades
de análisis y diseño, podemos clasificar las metodologías en dos grupos:
Metodologías Estructuradas
Metodologías Orientadas a Objetos.
METODOLOGÍAS ESTRUCTURADAS
Los métodos estructurados comenzaron a desarrollarse a fines de los 70’s con la
Programación Estructurada, para que posteriormente a mediados de los 70’s se
desarrollaran las técnicas para el diseño, como lo son el Diagrama De Estructura y
posteriormente para el análisis como lo son los Diagramas De Flujo De Datos.
Estas metodologías son particularmente apropiadas para la generación de proyectos
en donde se utilizan la implementación lenguajes de 3ra y 4ta generación ya que en
esta los programas están divididos en distintos bloques, los cuales tienen funciones
que se van confeccionado en forma de arriba-abajo, empezando desde las generales
hasta las particulares, hasta llegar a detallar cada uno de los procedimientos y su
interacción
8
METODOLOGÍAS ORIENTADAS A OBJETOS
Esta metodología se basa en la manipulación de los procesos y datos de manera
conjunta. Esta comienza a mediados de los años 80 con los lenguajes de
programación Orienta a Objetos.
La orientación a objetos empieza, como se mencionó anteriormente, con los
lenguajes de programación orientada a objetos; en los que se daba énfasis a la
abstracción de los datos para los que se adjuntaba un conjunto de operaciones.
Algunos ejemplos de este lenguaje son C++, Java.
En esta metodología el sistema se organiza como una colección de objetos que
interactúan entre sí y que contienen tanto estructuras de datos como un
comportamiento ya que comprende dividir un programa en clases, donde estas
clases estarán estructuradas por propiedades, atributos, variables, pretendiendo
simular y describir de manera conceptual a un objeto.
Esto se opone a la programación convencional (programación de los años 50s), en la
cual las estructuras de datos y el comportamiento solamente están relacionadas de
forma débil, ya que estos se enfocan principalmente a las funciones.
9
TIPOS DE PROGRAMACION
PROGRAMACION MODULAR
La 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 analizan y se codifican por separado.
Cada programa contiene un módulo denominado programa principal (denominado
también raíz), que controla todo lo que sucede y el cual 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 tareas específica que ejecutar.
Los módulos son independientes en el
sentido de que ningún módulo puede
tener acceso directo a cualquier otro
módulo excepto el módulo al que llama
y a sus propios submódulos. Sin
embrago, los resultados producidos
por un módulo pueden ser utilizados
por cualquier otro módulo cuando se
transfiera a ellos el control.
Raíz
Módulo 1 Módulo 2 Módulo 3
Módulo
11
Módulo
12
Módulo
21
Módulo
22
Módulo
31
Módulo
212
Módulo
211
RaízRaíz
Módulo 1Módulo 1 Módulo 2Módulo 2 Módulo 3Módulo 3
Módulo
11
Módulo
11
Módulo
12
Módulo
12
Módulo
21
Módulo
21
Módulo
22
Módulo
22
Módulo
31
Módulo
31
Módulo
212
Módulo
212
Módulo
211
Módulo
211
10
Dado que los módulos son independientes, diferentes programadores pueden
trabajar simultáneamente en diferentes partes del mismo programa. Esto reducirá el
tiempo del diseño del algoritmo y de la posterior codificación. Además un módulo se
puede modificar radicalmente sin afectar a otros módulos.
PROGRAMACION ESTRUCTURADA
El término programación estructurada se refiere a un conjunto de técnicas que
aumentan considerablemente la productividad del programa, reduciendo en elevado
grado el tiempo requerido para escribir, verificar, depurar y mantener los programas.
La programación estructurada utiliza un número limitado de estructuras de control
que minimizan la complejidad de los programas y, por consiguiente, reducen los
errores lo cual hace a los programas más fáciles de escribir, verificar, leer y
mantener.
En este tipo de programación, los programas están divididos en distintos bloques, los
cuales tienen funciones que se van confeccionado en forma de arriba-abajo,
empezando desde las generales hasta las particulares, hasta llegar a detallar cada
uno de los procedimientos y su interacción
Básicamente la programación estructurada significa escribir un programa de acuerdo
a las siguientes reglas:
El programa tiene un diseño modular
Los módulos son diseñados de modo descendente
Cada módulo se codifica utilizando las tres estructuras de control básicas:
secuencia, selección y repetición.
11
TÉCNICAS PRINCIPALES DE DISEÑO DE ALGORITMOS DE
PROGRAMACIÓN
TOP DOWN
También conocida como de “arriba-abajo”, esta técnica establecer una serie de
niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema.
Consiste en efectuar una relación entre las etapas de la estructuración de forma que
una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y
salidas de información.
Este diseño básicamente se refiere a una serie de descomposiciones sucesivas del
problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones
que van a formar parte del programa.
La utilización de la técnica de
diseño Top-Down tiene los
siguientes objetivos básicos:
Simplificación del
problema y de los
subprogramas de cada
descomposición.
Las diferentes partes
del problema pueden ser programadas de modo independiente e incluso por
diferentes personas.
El programa final queda estructurado en forma de bloque o módulos lo que
hace más sencilla su lectura y mantenimiento.
BOTTOM UP
12
La técnica de diseño bottom-up hace referencia a las partes individuales que se
diseñan con detalle y luego se enlazan para formar componentes más grandes, que
a su vez se enlazan hasta que se forma el sistema completo. Las estrategias
basadas en el flujo de información "bottom-up" se caracterizan potencialmente
necesarias y suficientes porque se basan en el conocimiento de todas las variables
que pueden afectar los elementos del sistema.
Básicamente 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, ya que en ese tiempo se cuenta con
muy poco tiempo, presupuesto y/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, la introducción de datos carentes
de valor al sistema y 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.
13
DIFERENCIAS ENTRE EL TOP DOWN Y EL BOTTOM UP
La diferencia entre estas dos técnicas de programación se fundamenta en el
resultado que presentan frente a un problema dado.
Por ejemplo:
Imagine una empresa, la cual se compone de varios departamentos (contabilidad,
mercadeo,), en cada uno de ellos se fueron presentando problemas a los cuales se
le dieron una solución basados en un enfoque ascendente (Bottom Up): creando
programas que satisfacían sólo el problema que se presentaba.
Cuando la empresa decidió integrar un sistema global para suplir todas las
necesidades de todos los departamentos se dio cuenta que cada una de las
soluciones presentadas no era compatible la una con la otra, no representaba una
globalidad, característica principal de los sistemas.
Como no hubo un previo análisis, diseño de una solución a nivel global en todos sus
departamentos, centralización de información, que son características propias de un
diseño descendente (Top Down) y características fundamentales de los sistemas; la
empresa no pudo satisfacer su necesidad a nivel global por lo tanto con base a esto
la creación de algoritmos es basado sobre la técnica descendente, la cual brinda el
diseño ideal para la solución de un problema.
14
CONCLUSIONES
En conclusión podemos agregar que una metodología se basa en una combinación
de los modelos de proceso genéricos para obtener como beneficio un software que
soluciona un problema determinado ya que las trascendencias de estas se ha hecho
notorias, pasando de solo programar, a establecer funciones en etapas o módulos,
así como también en objetos, agilizando así el desarrollo del software para la
disminución de los costos en estos.
En resumen las metodologías así como también los tipos de programación y las
técnicas de diseño de algoritmos, son elementos de gran importancia dentro del
ámbito de la tecnología pues su conocimiento previo hace más fácil el entendimiento
de la programación así como también nos permite tener una mejor perspectiva del
avance tecnológico ya que estos elementos informáticos son en parte, el primer paso
para la innovación tecnológica empleada a la solución de problemas.
Por tanto tener en cuenta estos conomientos, nos permitirá tener mejores opciones
para la solución de un problema pues hoy en día la aplicación de software es uno de
los métodos solución más frecuente lo que hace que su conocimiento sea escencial y
aplicable.
15
BIBLIOGRAFIA
http://procesosdesoftware.wikispaces.com/METODOLOGIAS+PARA+DESARROLLO
+DE+SOFTWARE
http://www.iesjuandelacierva.com/paginade/fupro/apuntes/ut10.htm
http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C3%ADas_para_el_desarrollo
_de_software
http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/U
nidad_III/Unidad%20III_8.htm
http://www.slideshare.net/VicenteArturoPerezBanda/savedfiles?s_title=metodologa-
para-el-diseo-de-software&user_login=Adark
http://sedici.unlp.edu.ar/bitstream/handle/10915/3835/2_-
_Metodolog%C3%ADas_de_dise%C3%B1o_de_hardware.pdf?sequence=4
http://programacionfacil.wikispaces.com/file/view/Parte_4.pdf