Академический Документы
Профессиональный Документы
Культура Документы
1.3
Anlisis de problemas
Algoritmos Computacionales
MC Sergio Fuenlabrada Velzquez MSI Edna Martha Miranda Chvez
Contenido
A continuacin se presentan dos enfoques que establecen lo pasos para dar solucin a problemas computacionales.
Estos enfoques no establecen de forma exhaustiva todos los pasos, sin embargo establecen una buena idea de las actividades que hay que desarrollar.
3.
4. 5. 6. 7.
8.
9.
Estudio de Costo-Beneficio
Presentacin de la propuesta de solucin. Y autorizacin de su desarrollo.
5
El enfoque anterior muestra los pasos para la concepcin y evaluacin de la solucin a un problema(generacin de un anteproyecto ). Se presenta esta informacin con la idea de que el lector observe que cuando la solucin al problema requiere de grandes esfuerzos y gastos se tiene que determinar antes de entrar al proceso de construccin si la solucin es pertinente y factible desde el punto de vista financiero (costo / beneficio) No se detallan los pasos 6,7,8,y 9 debido a que se encuentran fuera del alcance del objetivo de esta asignatura. Solo se detallan aquellos pasos que servirn para comprender de una forma ms clara la concepcin de la solucin a travs de algoritmos computacionales.
Detectar y analizar toda la informacin que existente y relacionada con el problema. Estudio de la organizacin Anlisis del entorno Identificacin y definicin del problema Identificacin de necesidades Detectar si existen soluciones previas al problema y analizar la razn por la cual no son optimas Definicin los requerimientos Recibir (si es el caso) comentarios de los directivos de la empresa, (ideas, propuestas de solucin, adecuaciones, etc.). Identificar recomendaciones y solicitudes de los usuarios Analizar las recomendaciones, ideas y propuestas recibidas y determinar si son factibles desde el punto de vista computacional y permitiran la generacin de una solucin optima. En caso de ser necesario indicarle a los directivos y/o usuarios la razn por la cual no es factible implementar su recomendacin y/o solicitud
7
El alcance de un objetivo - Es el grado de satisfaccin que va a otorgar la solucin cuando se logre, cuantas mejoras se obtendrn, que porcentaje del problema quedara resuelto, cuantos clientes estarn satisfechos, etc. Las limitaciones - Determina hasta donde abarcaran los beneficios de la solucin. Describe claramente hasta donde llega su influencia. Si se cuentan con un objetivo general y varios particulares cada uno tendr sus propios alcances y limitaciones.
3.
Para tener mayor probabilidad de contar con la propuesta ideal se debe contar con al menos dos alternativas de solucin.
10
5.- Anlisis comparativo entre alternativas de solucin, eleccin de la mejor alternativa Para solucionar un problema existen varias formas, unas soluciones son ms eficientes y eficaces que otras. El objetivo es analizar las alternativas de solucin y elegir a desarrollar la que sea mas eficiente y eficaz
11
12
Paso 4 .- Se deben listar los pasos a generar para dar solucin al problema o cumplir con los requerimientos.
Paso 5.- Diseo de la solucin, especificacin de datos de entrada, procesos y salidas. Generacin del algoritmo Paso 6.- Codificacin del programa Paso 7.- Pruebas del programa
13
14
Paso 1
La narrativa debe incluir: La situacin que presenta el rea de la organizacin (opcional) Los requerimientos del rea (datos de salida y procesos requeridos para generarlos) Los datos de entrada. Si la narrativa del problema no describe detalladamente todos los datos de entrada Usted debe de deducirlos. Definicin y delimitacin del problema a solucionar El problema a resolver puede ser muy grande, para solucionarlo es necesario el dividirlo en partes y resolver cada parte de forma particular. Cada elemento del problema, ser en si un problema a resolver (ver el tema de modularidad y la tcnica heurstica divide y vencers.
15
Si el problema a resolver es muy grande o complejo se debe dividir en partes con base en requerimientos. Cada requerimiento ser un problema a resolver
Paso 3
Se deben enlistar (hacer una lista) los datos que se solicita genere el algoritmo (datos de salida / requerimientos)
Paso 4
Se deben listar los pasos a generar o efectuar para dar solucin al problema o cumplir con los requerimientos. Establecer un orden lgico a esos pasos lo cual va a ir conformado la solucin al problema. Ejemplo: Listar las operaciones en trminos generales requeridas que realice el algoritmo Definir las variables y constates requeridas Definir las salidas Etc.
16
Paso 2
Paso 5
Diseo de la solucin Especificacin de datos de entrada, procesos y salidas. Se disea el proceso (se disea el algoritmo) identificando los procesos o mtodos requeridos, las clases y/o datos de entrada y de salida. El diseo puede efectuarse utilizando: Pseudocdigo
Diagramas
Texto Formulas Etc. (Pseudocodigo - Se recomienda que se detalle la parte del algoritmo que sea crucial para el logro del objetivo o no se tenga claro como resolverlo, ya que en el momento de generar el Psudocodigo se efecta un proceso de anlisis y diseo. Los pasos o actividades que son dominados por el programador solamente lstelos o descrbalos en trminos generales para evitar el omitirlos en el momento de crear el cdigo) .
17
Nota: La prueba de escritorio ayuda a que el programador sea mas eficaz y eficiente en su labor
Paso 5 (continuacin)
Prueba de escritorio
La prueba de escritorio tiene la finalidad de comprobar que es eficaz y eficiente la solucin al problema. Comprobar que es correcto el orden lgico de las instrucciones. Es el realizar un seguimiento manual del algoritmo escrito. Es simular manualmente la ejecucin del algoritmo, realizar manualmente la inicializacin e incremento de sus variables. Es simular las actividades que debe realizar el computador al ejecutar el algoritmo diseado. Es el comprobar manualmente que el algoritmo es correcto. Las pruebas de escritorio ayudan a que el programador sea mas eficiente y permiten que entregue con mayor rapidez un eficaz algoritmo. Si el programa tiene errores de lgica son mas fciles el descubrirlos con una prueba de escritorio que con n ejecuciones en el computador .
18
estructura del algoritmo (todos los componentes) se codifica,.Al algoritmo codificado y capturado se le llama programa o mtodo. La codificacin del programa puede ser en cualquier lenguaje de programacin que usted desee o requiera. Codificacin significa el escribir instrucciones o enunciados en un lenguaje de programacin el cual comprenda la computadora. La digitacin es capturar en el editor del lenguaje de programacin el algoritmo a ejecutar.
Compilacin y/o Interpretacin de acuerdo a si el lenguaje de programacin utiliza un compilador y/o un interprete. Una vez capturado el programa se compila o interpreta, esta funcin consiste en convertir lo escrito en lenguaje de programacin llamado Cdigo Fuente en un lenguaje que entienda el microprograma del computador llamado Cdigo Objeto.
19
Paso 6
Paso 6 (continuacin)
El proceso de convertir cdigo fuente en objeto consiste en efectuar un anlisis lxico, sintctico y semntico de cada una de las instrucciones o comandos de cdigo fuente y si son correctas la convierte a lenguaje ensamblador o a cdigo maquina, ya que este puede ser interpretado por el microprograma cdigo maquina. En caso de existir error en la instruccin o comando, enva un mensaje describiendo la razn por la cual no pudo convertir la instruccin en cdigo objeto. La compilacin Una vez que no hay errores en el cdigo fuente, guarda el cdigo objeto generado en un segundo archivo para ser llamado todas las veces que se quiera ejecutar el programa. Etapas bsicas del anlisis de problemas
20
Paso 6 (continuacin)
El interprete todas las veces que se ejecuta el programa genera el cdigo objeto. Al concluir la ejecucin borra el cdigo objeto generado. Ejemplo de compilador e interprete: o El lenguaje de programacin C, cuenta con un compilador. o El lenguaje de programacin Visual Basic 6.0 cuenta con interprete o El lenguaje de programacin Java cuenta con un interprete y con un compilador. El interprete ayuda a corregir errores en el momento de la digitacin o captura del programa, y en el momento que no tiene errores se genera el archivo con el cdigo objeto. Etapas bsicas del anlisis de problemas
21
22
Paso 6 (continuacin)
Paso 7
Pruebas.
Se debe generar un plan de pruebas el cual incluyan pruebas unitarias, de integracin y con el usuario.
Las pruebas unitarias. Engloban las pruebas relacionadas con el programa. Se prueba que el programa cumpla con todas las funciones definidas para dar solucin al problema, que almacene y maneje adecuadamente los datos, que utilice eficientemente los recursos, etc.
Evaluacin de resultados. Las pruebas permiten evaluar si el programa cumple con los requerimientos especificados, si logra los resultados deseados. En caso contrario se detecta las fallas y sus causas, se modifica el programa y se repiten las pruebas hasta comprobar que los resultados son los esperados.
23
Paso 7
Pruebas.
Las pruebas de integracin. El programa que se desarrollo resuelve una parte del problema, por lo que se tienen que integrar todos los programas que dan solucin a todos los componentes que conforman el problema y determinar si todos los programas en conjunto operan de forma coordinada, secuencial y generan una solucin integral o completa al problema planteado. Si todos los algoritmos almacenan y manejan adecuadamente los datos, si utilizan eficientemente los recursos, etc. Se evaluacin los resultados y en caso de detectar fallas, se modifican el(os) programa(s) que ocasionan la falla y se repiten las pruebas hasta comprobar que los resultados son los esperados.
Paso 7 (continuacin)
Etapas bsicas del anlisis de problemas
25
Pruebas con el usuario. Una vez que se efectuaron las pruebas de integracin, la siguiente fase es solicitar al usuario efectu pruebas (vulgarmente se dice solicitarle al usuario que haga tronar al programa o sistema) con la recomendacin de que el usuario registre los datos de entrada y el proceso que efecta, ya que si el programa presenta fallas (tuena), el usuario pueda indicar al programador la situacin que provoco el error. Esto es muy importante para ayudar al programador a corregir dicho error.
Paso 8
Se presenta como producto terminado el programa o sistema al usuario y se entrega dicho programa o sistema con una carta llamada carta u oficio de liberacin.
Paso 9
Evaluacin de resultados. Una vez que el programa o sistema se encuentra en operacin y ha pasado el tiempo (1, 3 o 6 meses dependiendo el tipo de problema) la siguiente fase es evaluar si el programa o el sistema es una solucin eficiente para el problema que se planteo al inicio. En caso de que se detecten errores, se deber modificar el programa para que cumpla con lo establecido. Esta modificacin forma parte del mantenimiento al programa o sistema.
26
Mantenimiento
Los sistemas son dinmicos, estn influenciados por los cambios del medio ambiente. La teora del cambio establece que un sistema que no se adopta a los cambios del medio ambiente muere. El mantenimiento es la accin de mejorar o adecuar la funcionalidad, seguridad, productividad, imagen, etc. de un programa o sistema.
El mantenimiento no cambia la estructura del programa o sistema, solamente adecua las actividades que efectua el programa
Mantenimiento preventivo Tiene como propsito el adelantarse y prevenir situaciones de problemas o fallas que se pueden presentar en un futuro. Es el revisar, detectar y corregir situaciones que en un futuro puedan convertirse en problemas o fallas.
Mantenimiento correctivo Tiene como propsito el corregir o solucionar problemas o fallas presentes.
27
. Varios de los libros que tocan este tema, definen a la reingeniera como el iniciar de nuevo, comenzar de cero.
Cuando se realiza una reingeniera en un programa o sistema normalmente se cambia la estructura del mismo. La reingeniera incluye el cambio a la estructura de los datos (archivos, bases de datos).
Esta palabra engloba un cambio profundo en el programa y/o sistema. Se debe tener cuidado de que si los cambios son tan drsticos que menos del 50% de lo existente se reutiliza, se evale el costo de modificar contra el costo de crear todo nuevamente. Esto es, cuanto cuesta adaptar contra crear nuevo. En estos casos en ocasiones es menos costo crear un nuevo programa o sistema.
28
Reingeniera
1.3.2 Marco conceptual para el anlisis de problemas con base en la Teora de Sistemas.
29
La teora general de sistemas es una doctrina filosfica que describe a los sistemas como organizaciones abstractas independientes de la sustancia, tipo, tiempo y espacio.
Sistema
Es un conjunto de elementos interactuando dinmicamente, organizados para cumplir un propsito especifico
Organizacin.- Puede ser natural o de ingeniera, esta organizacin es internamente. Propsito.- Un conjunto de procesos o eventos que hacen que se cumpla una meta.
31
Sistemas Cerrados: posee fronteras bien definidas y selladas, esta aislado de su entorno.
Sistemas Abiertos: Posee fronteras difusas, que algunas veces son difciles de definir, son turbulentas y se extienden hasta el limite del universo. Tiene relacin permanente con su entorno, lo que permite su evolucin
32
El entorno se puede concebir como un sistema abierto. El cambio en un sistema (entidad objeto) siempre esta provocado de alguna forma por su entorno (entidad sujeto).
33
Inputs (entradas, insumos) son aceptados en el sistema Outputs (salidas, productos) se producen a travs de los procesos dentro del sistema Tambin pueden existir almacenaje intermedio y control sobre el funcionamiento del sistema
Modelo de sistemas
Control
Input
Output
Proceso
Almacenaje
34
El modelo de sistemas
En todos los sistemas se debe identificar clara y detalladamente su(s) objetivo(s) Una vez que los objetivos del sistema son claros, existe una forma de medir su desempeo con el fin de saber el grado de cumplimiento de sus objetivos, ha este proceso se le denomina la evaluacin.
35
Los inputs de un sistema provienen de su entorno, mientras que sus outputs se transfieren hacia l
El entorno de un sistema se define como aquel que est fuera de sus fronteras, pero que interacta con el sistema mismo
37
Subsistemas
Los sistemas estn conformados por subsistemas que a su vez se encuentran interrelacionados unos con los otros por medio de sus inputs y outputs El conjunto de susbstemas establece la estructura interna El conjunto de susbsistemas operando establece la estructura de operacin del sistema Cada subsistema es en si mismo puede ser visto como un sistema
38
El propsito de la descomposicin es dividir un sistema grande en sus partes constituyentes Este proceso continua hasta que los subsistemas resultantes sean de tamao manejable en el sentido de su entendimiento y operacin
39
Sistemas= Arquitectura de los sistemas + Dinmica de los estados + Dinmica estructural + Epistemologa del sistema
Entonces: Visin completa de los sistemas y como stos evolucionan (crecen cambio, se transforman) o involucionan (mueren - se hacen mas pequeos)
La estructura del sistema (arquitectura) y cmo cambia con el tiempo (dinmica estructural). La forma en que los estados del sistema cambian con el tiempo (dinmica de los estados). El conocimiento de cmo el sistema esta organizado (epistemologa) tanto interna como externamente acorde a su entorno.
40
Estructura de un sistema
Un sistema de informacin esta esta conformado por procesos o procedimientos.
Los procesos estn conformados por uno o mas programas que en conjunto ofrecen una solucin a un problema Los programas a su vez estn conformados o estructurados por uno o varios algoritmos computacionales, a los que tambin se les denomina rutinas, subrutinas, funciones, bloques o subprogramas. Un programa tambin se le denomina hilo o hebra
41
Sistemas Estticos
Sistemas Dinmicos Se ejecutan diferentes procesos /hebras y un nuemero diferente dependiendo de los datos de entrada (solicitud)
42
Cambio
incluye
SISTEMA
Los sistemas nunca alcanzaran la homeostasis, solo podrn mantenerse
Resultado un sistema que se ha adaptado a los cambios dentro de La meseta homocintica Similar a la homeostasis
Sistema
en homeostasis (equilibrio dinmico)
43
Teora de control
Control y realimentacin (feedback)
Los sistemas tienen objetivos Con el fin de asegurar que los objetivos de los sistemas se cumplan es necesario que exista un control que opere sobre su funcionamiento Los controles a menudo trabajan sobre los inputs y outputs del sistema. Comparan estos con los objetivos del sistema, y toman medidas correctivas si es necesario
44
ENTORNO
SISTEMA CONTROLADOR
SISTEMA
CONTROL INFLUENCIA AGENTES GENERADORES DEL CAMBIO
Teora de control
SISTEMA CONTROLADO
ENTORNO SISTEMA
45
Teora de control
El mecanismo de control se emplea para comprobar el buen funcionamiento de los sistemas y para adaptar su comportamiento a circunstancias variables, ya sea en su entorno o dentro de ellos As, el propsito principal de los controladores es asegurar que un sistema est funcionando de un modo uniforme, esto implica la prevencin de la ocurrencia de problemas
La Homeostasis (equilibrio dinmico) slo se puede originar cuando existen una gran variedad de controles
Se deben aplicar controles al sistema para mantenerlos dentro de los limites de estabilidad y tener cuidado en que demasiado o poco control lleva a la inestabilidad
47
VARIEDAD
organizacin o de un sistema depende de unos pocos factores crticos, estos factores crticos son las restricciones o los puntos de apoyo del sistema,
llamados tambin de puntos de apoyo de Arqumedes
48
Factores negativos Tambin existen factores negativos que ponen en riesgo las fortalezas de la organizacin o del sistema, tales como:
La incertidumbre Los riesgos Las amenazas
El objetivo es tratar de disminuir estos factores negativos para lograr el equilibrio dinmico de la organizacin o sistema.
49
Incertidumbre
Se define como la falta de conocimiento seguro y claro de una cosa.
50
51
Amenaza
Situacin fortuita, o delito consistente en la provocacin de un mal grave a la organizacin
La Seguridad de la Informacin, protege a sta de una amplia gama de amenazas, tanto de orden fortuito como destruccin, incendio o inundaciones, como de orden deliberado, tal como fraude, espionaje, sabotaje, vandalismo, etc.
52
53
Los controles aseguran que los procesos se lleven a cabo como fueron definidos
54
Se evala a la organizacin y/o sistema en trminos de sus efectos en el rengln de utilidades y rentabilidad Debe haber un puente que relacione las acciones con la utilidad del negocio
El menor costo de produccin
Costo estndar del producto?
Sisa Alberto Jaime, Estructura de datos y algoritmos, con nfasis en programacin orientada a objetos, Editorial Prentice Hall, Mxico 2002, pgs. 310, ISBN 958-699-044-3.
56
BIBLIOGRAFA