September 6, 2022 | Author: Anonymous | Category: N/A
Método de las 6`D Modelamiento - Algoritmo - Progr Programación. amación. Tomo I. Enfoque orientado a las estructuras lógicas Autores: Juan José Flores Cueto y Carmen Bertolo Zuñiga
© Derechos de autor registrados: Empresa Editora Macro EIRL
© Derechos de edición, arte gráfico y diagramación reservados: Empresa Editora Macro EIRL Corrección de eslo: Mónica Barrera Velasco Milton A. Gonzales M. Coordinación de arte y diseño: Alejandro Marcas León Diagramación: Lizbeth Eufracio Quispe Sebasan Alvarez Sanchez Edición a cargo de: © Empresa Editora Macro EIRL Av. Paseo de la República N.° 5613 , Miraflores, Lima, Perú Teléfono: (511) 748 0560
E-mail: proyecto@editorialm
[email protected] acro.com Página web: www.ed www.editorialmacro.com itorialmacro.com
Primera edición: seembre de 2014 Tiraje: 1000 ejemplares
Impresión Talleres gráficos de la Empresa E mpresa Editora Macro EIRL Jr. San Agusn N.° 612-624, Surquillo, Lima, Perú ISBN N.° 978-612-304-218-9 Hecho el depósito legal en la Biblioteca Nacional del Perú Nº 2014-12577 Prohibida la reproducción parcial o total, por cualquier medio o método, de este libro sin previa autorización de la Empresa Editora Macro EIRL.
Juan José Flores Cueto Ingeniero de Computación y Sistemas, magister en Administración con mención en Gerencia Estratégica de Organización; doctor en Educación por la Universidad de San Mar n de Porres (USMP). Además, obtuvo el tulo tulo de Especialista y el Diploma de Estudios Avanzados (DEA) en Integración de las Tecnologías de la Información en las Organizaciones (ITIO), por la Universidad Politécnica de Valencia (UPV), España. Actualmente, es doctorando del Programa ITIO de la UPV. Se ha desempeñado profesionalmente en diversas empresas nacionales, ocupando las funciones de desarrollador de so ware ware, analista de sistemas, auditor de sistemas y jefe de proyectos. Desde mayo del 2009 ocupa el cargo de director de la USMP Virtual, donde además ejerce la docencia. También se desempeña como catedráco en la Facultad de Ingeniería y Arquitectura (FIA) de la Universidad de San Mar n de Porres (USMP), y en la Universidad Nacional José Fausno Sánchez Carrión (UNJFSC). Es autor de diversos libros, como guías y manuales, los cuales se u lizan para la enseñanza universitaria. También ha colaborado con ar culos culos para revistas nacionales e internacionales, y ha par cipado en diversos congresos. La página personal del autor es: hp://jjflorescueto.googlepages.com/. Y sus publicaciones se pueden encontrar en: hp://www.lulu.com/spotlight/jj florescueto, y en la red: hp://www.reddolac.org
Carmen Bertolo Zuñiga Ingeniera de Computación y Sistemas, egresada de la Universidad de San Mar n de Porres (USMP). Con estudios finalizados en la maestría en Educación con mención en Informá ca y Tecnología, en la USMP. Se desempeña como docente contratada en la Facultad de Ingeniería y Arquitectura (FIA), de la USMP, así como en otras ins tuciones educavas. Es autora del libro Método de las 6’D. Modelamiento - Algoritmo - Programación. (Enfoque orientado a las estructuras lógicas). 2da. ed. Lima: Fondo Editorial Editor ial USMP, USMP, 2008. T También ambién ha esc escrito rito diversos ar culos culos en el bole n electrónico InfoFIA de la FIA USMP; además, es autora de guías y manuales ulizados en el quehacer universitario. Ha laborado en diversas empresas del sector privado, desempeñándose como ingeniera de desarrollo y jefe de sistemas.
Dedicatoria A nuestros hijos, Danae y el pequeño Rodrigo
Índice Capítulo 1 Método y herramientas .............. ............................. .............................. .............................. .............................. .............................. .............................. .............................. .................. ... 13 1.1
Método de las 6’D ............. .......................... ......................... ......................... .......................... ......................... ......................... ......................... .................. ......15 15
1.1.1 Etapas y pasos ............ ......................... ......................... ......................... .......................... ......................... ......................... ......................... .................. ......16 16 1.1.2 Resumen de método........................ ..................................... ......................... ......................... .......................... ......................... .....................23 .........23 1.1.3 Resultado de las eta etapas pas del méto método do ............ ......................... ......................... ......................... .......................... ......................24 .........24 1.2
Marco de trabajo ............. .......................... ......................... ......................... ......................... ......................... .......................... ......................... ....................25 ........25
1.3
Modelamiento ............ ......................... ......................... ......................... .......................... ......................... ......................... .......................... .........................26 ............26
1.3.1 Paquete ........ ..................... ......................... ......................... .......................... ......................... ......................... ......................... ...............................26 ...................26 1.3.2 Clase ........... ........................ .......................... ......................... ......................... ......................... ......................... .......................... ..................................26 .....................26 1.3.3 Objeto ............. ......................... ......................... .......................... ......................... ......................... ......................... ......................... ..............................27 .................27 1.3.4 Diagrama de paque paquetes tes .......................... ...................................... ......................... ......................... ......................... .......................... .................28 ....28 1.4 Algoritmo ............ ......................... ......................... ......................... .......................... ......................... ......................... .......................... ..................................29 .....................29 1.4.1 Caracteríscas ............ ......................... .......................... ......................... ......................... .......................... ......................... ......................... ..................29 .....29 1.4.2 Herramient Herramientas as .............. ......................... .......................... ......................... ......................... .......................... ......................... ......................... .................. .....30 30 1.5 Programación ........................ ..................................... ......................... ......................... ......................... ......................... .......................... ...........................39 ..............39 1.5.1 Tipos de lenguajes de programació programación n ... ............... ......................... .......................... ......................... ......................... ..................40 .....40
Capítulo 2 Estructuras lógicas de secuencia y estructura de datos variable ......... ................... .................... .................... .................... ....................41 ..........41 2.1 Estructuras ló lógicas gicas de secuenci secuencia a ............... ......................... ......................... .......................... ......................... ......................... .....................45 ........45 2.1.1
Definición ............ ......................... ......................... ......................... .......................... ......................... ......................... .......................... .........................45 ............45
2.2 Método de las 6 6´D ´D - Desarroll Desarrollo o de soluciones ccon on un paquete ............. ......................... ......................... ..............46 .46 2.3 Estructuras ló lógicas gicas de secuenci secuencia: a: Mostrar informaci información ón ............. .......................... ......................... ........................47 ............47 2.3.1
Definición ............ ......................... ......................... ......................... .......................... ......................... ......................... .......................... .........................47 ............47
2.3.2 Represen Representación tación ............. ......................... ......................... ......................... ......................... .......................... ......................... ......................... ................ ... 47 2.3.3 Consideracio Consideraciones nes adicionales para los llenguajes enguajes de pro programación gramación C++ y Jav Java a .........49 2.4 Estructura de datos: Vari Variable able ........ .................... ......................... .......................... ......................... ......................... .......................... ................... ......60 60 2.4.1
Definición ............ ......................... ......................... ......................... .......................... ......................... ......................... .......................... .........................60 ............60
2.4.2 Declaració Declaración n ... ................ ......................... ......................... .......................... ......................... ......................... .......................... ......................... .................. ......60 60 2.4.3 Nombre ........... ........................ ......................... ......................... .......................... ......................... ......................... ......................... .............................60 .................60 2.4.4 Inicializac Inicialización ión ............ ......................... .......................... ......................... ......................... ......................... ......................... .......................... .....................61 ........61 2.4.5 Almacenamient Almacenamiento ooa asignación signación de datos ............. ......................... ......................... .......................... ......................... ...............61 ...61 2.4.6 Constant Constantes es .... ................. ......................... ......................... .......................... ......................... ......................... ......................... ......................... ................... ......62 62 2.5 Tipos de dato ............ ........................ ......................... .......................... ......................... ......................... ......................... ......................... ............................62 ...............62 2.5.1
Definición ............ ......................... ......................... ......................... .......................... ......................... ......................... .......................... .........................62 ............62
2.5.2 En pseudocódigo y diagrama de flujo ............. .......................... ......................... ......................... ......................... ...................63 .......63 2.5.3 En lenguaje C++............ ......................... .......................... ......................... ......................... ......................... ......................... .......................... ................ ... 64 2.5.4 En lenguaje Jav Java a ............ ........................ ......................... ......................... ......................... .......................... ......................... ......................... ................ ... 65
2.6 Uso de comentarios............ ........................ ......................... .......................... ......................... ......................... ......................... ......................... .................. .....75 75 2.7 Estructura lógica de secuencia: Ingresar datos datos............ ......................... ......................... ......................... ......................... ..............80 ..80 2.7.1
Definición ............. ......................... ......................... ......................... ......................... .......................... ......................... ......................... .........................80 ............80
2.7.2 Represent Representación ación ............. .......................... ......................... ......................... ......................... ......................... .......................... ......................... ............... ... 80 2.8 Estructura lógica de secuencia: Procesar datos............ ......................... ......................... ......................... ......................... ..............91 ..91 2.8.1
Definición ............. ......................... ......................... ......................... ......................... .......................... ......................... ......................... .........................91 ............91
2.8.2 Tipos........... ........................ .......................... ......................... ......................... .......................... ......................... ......................... ..................................91 .....................91 2.9 Método de las 6 6`D `D - Desarroll Desarrollo o de soluciones co con n dos paquetes............ ......................... ........................100 ...........100 2.10
Desarrollo de Aplicacion Aplicaciones es Java, ulizando Java Developm Development ent Kit (JDK ) ... ................ ...................126 ......126
2.10.1 Edición............. .......................... ......................... ......................... .......................... ......................... ......................... ......................... ...........................126 ...............126 2.10.2 Compilación ........... ........................ ......................... ......................... .......................... ......................... ......................... ......................... .................... ........126 126 2.10.3 Ejecución ............ ........................ ......................... .......................... ......................... ......................... ......................... ......................... .........................126 ............126 2.11 Soluciones ulizando cuadros de diálogo............. ......................... ......................... ......................... ......................... ....................128 .......128 2.11.1 Uso de la clase LE codificada en Java ..................... .................................. ......................... ......................... .......................128 ..........128 2.11.2 Método de las 6´D - U Uso so de cuadro cuadross de diálogo ............. .......................... ......................... ......................... ..............129 .129
Capítulo 3 Estructuras Estructur as lógicas de decisión o selección .......... .................... .................... .................... .................... .................... .................... .................... .................... ............ .. 143 3.1 Desarrollo de solucione solucioness con un paquete .............. ......................... .......................... ......................... ......................... ....................147 .......147 3.2 Estructuras lógic lógicas as de decisión............ ......................... .......................... ......................... ......................... .......................... .........................147 ............147 3.2.1
Definición ............. ......................... ......................... ......................... ......................... .......................... ......................... ......................... .........................147 ............147
3.2.2 Estructura lógic lógica a de decisión simple ......................... ...................................... ......................... ......................... ......................148 .........148 3.2.3 Estructura llógica ógica de decisión do doble ble ... ............... ......................... .......................... ......................... ......................... ....................167 .......167 3.2.4 Estructura lógica de decisión múlple: “CUANDO” ............. .......................... ......................... .......................184 ...........184 3.2.5 Estructura lógica de decisión múlple: “SI ANIDADOS” ............. ......................... ......................... .................208 ....208 3.3 Uso combinado de las e estructuras structuras lógicas de de decisión cisión............. ......................... ......................... .......................... ..............237 .237 3.4 Uso anidado de las e estructuras structuras lógicas de decisión decisión............. .......................... ......................... ......................... ...................237 ......237 3.5
Desarrollo de aplicaciones Java, ulizando Integrated Integrated Development Environment (IDE) .. 257
3.6 Método de las 6 6´D ´D - Uso de cuadros de diálogo............ ........................ ......................... ......................... .........................259 .............259
Capítulo 4 Estructuras Estructur as lógicas de control o repeción .......... .................... .................... .................... .................... .................... .................... .................... .................... ............ .. 281 4.1 Método de las 6 6’D ’D - Desarrollo de solucio soluciones nes con dos paquete paquetess ............ ........................ .......................285 ...........285 4.2 Estructuras lógicas de repeción ............ ......................... .......................... ......................... ......................... ......................... ......................286 ..........286 4.2.1 Otros usos de las variables............ ........................ ......................... .......................... ......................... ......................... .........................287 ............287 4.2.2 Estructura lógica de repeción: “HACER” ............ ........................ ......................... .......................... ......................... ..............287 ..287 4.2.4 Estructura lógica de repeción: “MIENTRAS “MIENTRAS”” ............. ......................... ......................... .......................... ....................348 .......348 4.2.5 Estructura lógica de repeción: “DESDE” o “PARA” .................................................378 4.3 Empaquetar aplicacion aplicaciones es Java ulizando Java ARchives ( JAR ) ............ ......................... ......................... ..............409 ..409 4.3.1 Creación de un JAR......................... ...................................... ......................... ......................... .......................... ......................... .......................409 ...........409
4.3.2 Ejecución de un JAR ......................... ...................................... ......................... ......................... .......................... ......................... .....................411 .........411 4.3.3 Visualizar un JAR ......................... ...................................... .......................... ......................... ......................... ......................... ..........................412 ..............412 4.3.4 Extracción de un JJAR AR ........... ........................ ......................... ......................... .......................... ......................... ......................... ......................413 .........413 4.4
So ware ware para decompilar aplicaciones java ......................... ..................................... ......................... .......................... .................415 ....415
4.4.1 Uso de jav javap ap del JDK ............ ........................ ......................... .......................... ......................... ......................... ......................... .....................415 .........415 4.4.2
ware ............ Uso de otros so ware ......................... .......................... ......................... ......................... ......................... ......................... ...................416 ......416
4.5 Método de las 6 6´D ´D - Uso de cuadros de diálogo........... ........................ .......................... ......................... .........................418 .............418
Capítulo 5 Estructuras Estructur as lógicas combinadas ............................... ............... ............................... .............................. .............................. .............................. .............................. ................... .... 435 5.1 Uso co combinado mbinado de las estructuras lógicas ........... ....................... ......................... ......................... ......................... ......................439 .........439 5.2 Manejo de ex excepciones cepciones en el lenguaj lenguaje e de programac programación ión Java......................... ...................................... ...............522 ..522 5.3 Desarrollo de las capaci capacidades dades lógicas............ ........................ ......................... ......................... ......................... .......................... ................530 ...530 5.4 Desarrollo de miniaplicacio miniaplicaciones nes Java (Applet) ulizando Java Development Development Kit ( JDK ) ...557 5.5 Métodos de las 6´D – Uso de cuadros de diálogo .. ............... ......................... ......................... .......................... ...................559 ......559
Capítulo 6 Introducción Introducc ión al desarrollo de soluciones orientadas a objetos y al uso de Interfaz Gráfica de Usuario ............................. .............. ............................... ............................... .............................. .............................. .............................. .............................. ..................... ..................... ...................... ....... 583 6.1 Conceptos bási básicos cos ............ ........................ ......................... .......................... ......................... ......................... .......................... ......................... ................... .......588 588 6.1.1 Clase ............ ........................ ......................... ......................... ......................... .......................... ......................... ......................... ..................................588 .....................588 6.1.2 Objeto (Modelos de en entes tes de dell mundo mundo)) ............ ........................ ......................... .......................... ......................... .................589 .....589 6.1.3 Atributo ........... ........................ ......................... ......................... .......................... ......................... ......................... ......................... .............................590 .................590 6.1.4 Método ........... ........................ ......................... ......................... .......................... ......................... ......................... ......................... .............................595 .................595 6.2
Método de las 6’D: Redefinición de pasos ............. ......................... ......................... .......................... ......................... ...................608 .......608
6.2.1 Ajuste de los pasos definidos para las etapas del método............ ........................ ......................... ...............608 ..608 6.3
So ware ware para generar ejecutables en MS-Windows MS-Windows basado en aplicaciones Java ........615
ware ........... 6.3.1 Uso de so ware ........................ ......................... ......................... .......................... ......................... ......................... .......................... ...............615 ..615
6.4 Introducció Introducción n a las soluciones ulizando Interfaz Gráfica de Usuario (GUI) ...... ................... ...............618 ..618 6.4.1 Introducción............. ......................... ......................... .......................... ......................... ......................... .......................... ......................... .................... ........618 618 6.4.2
Definición ............ ......................... .......................... ......................... ......................... .......................... ......................... ......................... .........................618 ............618
6.4.3 Etapas para el desarrol desarrollo lo de GUI ............ ........................ ......................... .......................... ......................... ......................... ................618 ...618 6.4.4 Contenedor Contenedores es y ccomponentes omponentes de la GU GUI......... I...................... .......................... ......................... ......................... ...................619 ......619 6.4.5 Administrado Administradores res de diseño de la GUI............ ........................ ......................... ......................... ......................... ......................620 .........620 6.4.6 Manejadores de event evento o de lla a GUI ... ................ ......................... ......................... ......................... ........................ ......................620 ..........620 6.5 Método de las 6´D – D Desarrollo esarrollo de soluciones co con n GUI ..... ................. ......................... .......................... ....................621 .......621
Bibliogra a .............................. ............... .............................. ............................... ............................... .............................. .............................. .............................. .................... ..................... ................ 631
Apéndice * Clases creadas e incorporadas en Java .............. ............................. .............................. .............................. .............................. .............................. ......................... .......... 633 Clases incorporadas en el lenguaje Java ........... ........................ .......................... ......................... ......................... ......................... ....................635 ........635 Clase Lectura............. Lectura.......................... ......................... ......................... ......................... ......................... .......................... ......................... ...............................635 ...................635 Clase LE (versión 2.2) ...................... .................................. ......................... .......................... ......................... ......................... ......................... ......................636 ..........636 El paquete del lenguaje Java............ ........................ ......................... .......................... ......................... ......................... ......................... .....................643 .........643 Conversión de datos............ Conversión ......................... .......................... ......................... ......................... .......................... ......................... ......................... .........................645 ............645 Conversión Conver sión implícita de datos en Java ........ ..................... ......................... ......................... .......................... ......................... ......................646 ..........646 Conversión explícita de datos en Java (casng) ............. ......................... ......................... .......................... ......................... ................648 ....648 Envoltorios de los pos de datos primivos: clases wrappers.............. wrappers.......................... ......................... ...................649 ......649 Funciones matemácas: clase Math ............. .......................... ......................... ......................... .......................... ......................... ........................659 ............659 Introducción ............. ......................... ......................... ......................... ......................... .......................... ......................... ......................... ................................659 ...................659 Métodos ............ ......................... ......................... ......................... .......................... ......................... ......................... ......................... ......................... ..........................660 .............660 Manejo de cadenas: clase String .... ................ ......................... ......................... ......................... .......................... ......................... ......................... ...............7 ..703 03 Introducción ............. ......................... ......................... ......................... ......................... .......................... ......................... ......................... ................................703 ...................703 Métodos ............ ......................... ......................... ......................... ......................... ......................... .......................... ......................... ......................... ..........................704 .............704 Manejo de format formatos: os: clase Decimalf Decimalformat ormat ...... .................. ......................... .......................... ......................... ......................... ......................754 .........754 Manejo de fechas: clase Calendar............ ......................... .......................... ......................... ......................... ......................... ......................... .................759 ....759 Manejo de fechas: clase Gregoriancal Gregoriancalendar endar ................... ............................... ......................... .......................... ......................... ...................764 .......764 Manejo de fechas: clase Simpledate Simpledateformat format ......... ...................... ......................... ......................... ......................... ......................... ..................766 .....766
* El presente apéndice solo se encuentra disponible en la página web de la editorial: www.editorialmacro.com
Introducción En este libro se trata en forma detallada y dinámica los conceptos y temas fundamentales necesarios para el desarrollo de soluciones u lizando el Método de las 6’D, y el empleo de sus capacidades lógicas. Se explican los conceptos fundamentales sobre el modelamiento y el UML, profundizando en el tema de algoritmos y su diseño u lizando diagramas de flujo y pseudocódigo. Se presenta también el diagrama de acvidades como una herramient herramienta a adicional para diseñar algoritmos, y se desarrollan conceptos sobre programación y codi ficación ulizando los lenguajes de programación orientados a objetos C++ y Java. Se tratan las Estructuras Lógicas de Secuencia (ELS), las variables, las Estructuras Lógicas de Decisión (ELD), las Estructuras Lógicas de Repe ción (ELR) y las Estructuras Lógicas Combinadas (ELC). También se tratan las estructuras de bifurcación y el manejo de excepciones en Java (try, catch), y se finaliza con una introducción al desarrollo de soluciones orientadas orientada s a objetos y al uso de Interfaz Gráfica de Usuario (GUI) en los programas Java. La estructura de los capítulos y su relación directa con los problemas propuestos al final de cada uno de ellos, y la gran candad de soluciones desarrolladas (250 en total), en las cuales se incluyen 75 pseudocódigos, 59 diagramas de Flujo, 6 diagramas de ac vidad, 76 programas en C++, 217 problemas en Java ulizando la consola y 23 programas en Java ulizando cuadros de diálogo, garanzan un aprendizaje progresivo y adecuado de cada uno de los temas tratados. Finalmente, se incluye una sección llamada PUNTO A PARTE, que permirá al lector conocer nuevas herramientas de soware gratuitas que complementarán sus conocimientos y le ayudarán a desarrollar mejores aplicaciones en Java. Los temas incluidos son:
Desarrollo de aplicaciones Java ulizando Java Development Kit ( JDK )
Desarrollo de aplicaciones Java ulizando Integrated Development Environment ( IDE )
Empaquetar aplicaciones Java ulizando Java ARchives ( JAR )
Soware para decompilar aplicaciones Java
Desarrollo de miniaplicaciones Java (Applet) u lizando Java Development Kit ( JDK )
Soware para generar ejecutables en MS-Windows basado en aplicaciones Java
C AP.
éét ot oddoo y yhheer r a M r ammi ei ennt at as s
1
CAP. 1: MÉTODO Y HERRAMIENTAS
15
Durante el transcurso de nuestra vida nos enfrentamos a diversos problemas. Algunos de ellos podemos solucionarlos fácilmente, mientras que otros se complican de tal forma que nos afectan de una manera muy profunda. Por su naturaleza, algunos problemas pueden ser resueltos u lizando una computadora. Generalmente son de po estructurado; es decir, que enen una solución determinada y pueden llegar a ser muy sencillos o extremadamente complejos. Para resolver estos problemas estructurados u lizando una computadora, es importante aplicar un método fácil de comprender y que guíe paso a paso hasta la solución del problema. El método propuesto y u lizado en el presente texto es el Método de las 6’D. Está compuesto de seis etapas, cada una de las cuales consta de una serie de pasos que se van modificando o ajustando, dependiendo del grado de complejidad del problema y las herramientas que se u licen para su solución. Con la finalidad de recordar el método, se ha establecido que el nombre de cada una de sus seis etapas comience con la letra “D”.
1.1 MÉTODO DE LAS 6’D En la siguiente figura se muestra el Método de las 6’D con sus respecvas etapas.
Etapa 01 Descripción del problema
Etapa 02 Definición Solución
n veces
Ingeniería reversa
Etapa 03 Diseño Solución
Etapa 04 Desarrollo Solución
MODEL MIENTO MODELAMIENTO ALGORITMO LGORITMO
Etapa 05 Depuración Pruebas
Etapa 06
CODIFICACIÓN Documento
16
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
1.1.1 1.1 .1 Etapas y pasos A. Descripción de la Etapa 01 – Descripción del problema
Etapa 01 Descripción del problema
Lo primero que se debe hacer en esta etapa es idenficar cuál es el problema que se desea resolver resolver.. Esto que parece algo sumamente sencillo, muchas veces resulta una tarea agotadora, ya que existen muchas opiniones acerca de cuál es el problema central. Idenficarlo es una de las tareas más importantes que los analistas deben afrontar. Una vez idenficado el problema, es necesario comprenderlo en su totalidad, es decir, entender qué es exactamente lo que se desea resolver. Finalmente, se debe escribir un enunciado claro, concreto y conciso del problema a resolver.
Pasos: Idenficación del problema.
Descripción general del problema.
Enunciado claro y preciso del problema.
ENUNCIADO
El resultado obtenido en esta etapa es un enunciado claro del problema que se desea solucionar.
CAP. 1: MÉTODO Y HERRAMIENTAS
17
B. Descripción de la Etapa 02 – Definición de la solución
Etapa 02 Definición de la solución
En esta etapa es necesario estudiar a fondo el problema para poder solucionarlo, saber exactamente en qué consiste y descomponerlo en cada una de sus partes, facilitando su comprensión y posterior solución. Esta es una regla que siempre debe ser aplicada, se u lice o no una computadora en la solución de un problema. Una vez entendido el problema se está en condiciones de estudiarlo a fondo y plantear diversas alternavas que permitan solucionarlo, aplicando siempre la más adecuada.
Pasos: Definir el resultado deseado.
Determinar los datos que se deben ingresar o generar para obtener el resultado deseado.
Determinar la forma en que los datos serán procesados para transformarlos en información.
ESPECIFICACIONES
En esta etapa se ob enen las especificaciones, que determinan lo que se debe hacer para solucionar el problema.
18
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
C. Descripción de la Etapa 03 – Definición de la solución
Etapa 03 Diseño de la solución
Una vez definida la solución se procederá a diseñar la lógica, modelando y desarrollando algoritmos. Para el modelado de la solución del problema se ulizará el Lenguaje Unificado de Modelado (Unified Modeling Language , UML), que es una herramienta usada para describir clases, objetos y sus relaciones. Para el desarrollo de algoritmos se ulizarán Pseudocódigos o Diagramas de Flujo (DF), que son herramientas ulizadas para diseñar algoritmos de los diferentes métodos de una clase. Finalizado el desarrollo de los algoritmos es necesario verificar si se han incluido soluciones para todas las formas en que se presenta el problema. A este po de prueba se le denomina “Prueba de escritorio”.
Pasos:
MODEL MIENTO MODELAMIENTO ALGORITMO LGORITMO
Definir un nombre para el proyecto.
Definición de diagramas, relaciones y clases.
Desarrollo de algoritmos.
DIAGRAMAS Y ALGORITMOS
El resultado obtenido en esta etapa son los diagramas y los algoritmos, que especifican cómo se debe hacer para solucionar el problema.
CAP. 1: MÉTODO Y HERRAMIENTAS
19
D. Descripción de la Etapa 04 – Desarrollo de la solución
Etapa 04 Desarrollo de la solución
Una vez previstas todas las posibilidades y alternavas que puedan presentarse y que pasen sin inconvenientes por la clase y los algoritmos, se procederá a la codificación del problema en algún lenguaje de programació programación. n. La codificación involucra traducir los diagramas, las especificaciones de las clases (expresadas en notación UML), y los pasos del algoritmo de cada método (expresado en DF o pseudocódigo), en sentencias de un lenguaje de programación determinado. Estas sentencias son almacenadas en un proyecto (o archivo) lógico, y constuyen lo que la computadora podrá ejecutar.
Pasos:
CODIFIC CIÓN CODIFICACIÓN
Codificar el proyecto.
Desarrollar comentarios internos en los programas de computadora.
Desarrollar copias de seguridad de los programas de computadora.
PROGRAMAS
El resultado obtenido en esta etapa son los programas y/o clases codificados en un lenguaje de programación, programaci ón, que permiten solucionar el problema.
20
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
E. Descripción de la Etapa 05 – Depuración y pruebas
Etapa 05 Depuración y pruebas
Luego que se codifiquen los programas y/o clases, deberán ser probados mediante su ejecución (esta acción se conoce como corrida del programa). Al realizarse pueden surgir diferentes pos de errores, siendo los de lógica y sintaxis los más comunes. Hay que corregir el programa, anular, modificar o crear nuevas sentencias, volver a probar el programa y connuar con la corrección y pruebas hasta conseguir el resultado deseado.
Pasos: Realizar la depuración y verificar la correcta escritura de los programas.
Realizar Realiz ar pruebas de sintaxis.
Realizar Realiz ar pruebas de lógica.
PRUEBAS
El resultado obtenido en esta etapa son las pruebas, que registran el adecuado funcionamiento de la solución del problema.
CAP. 1: MÉTODO Y HERRAMIENTAS
21
F. Descripción de la Etapa 06 – Documentación
Etapa 06 Documentación
En esta etapa se recopila toda la documentación generada en las etapas anteriores, la cual servirá como base para la elaboración del manual técnico. El empo dedicado a esta etapa será de mucha ayuda para desarrollar buenos hábitos, necesarios cuando se desarrolle el so ware ware en forma profesional. El manual técnico debe incluir, como mínimo: Descripción del problema.
Resultados esperados y datos necesarios para generar dichos resultados.
Diagramas UML, DF y/o pseudocódigo.
Pruebas desarrolladas.
Listado de programas con comentarios internos.
Pasos: Recopilar el material generado en cada una de las etapas anteriores.
Generar el manual del programa.
Generar el manual del usuario.
MANUALES
El resultado obtenido en esta etapa son los manuales, que permiten un adecuado manejo de la solución desarrollada.
22
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
Adicionalmente, es posible realizar ingeniería reversa entre las etapas 03, 04 y 05.
La ingeniería reversa permite crear o actualizar el modelo preliminar realizado en
Ingeniería reversa
n veces
la 03del “Diseño de la solución”, a Etapa par r delEtapa código programa realizado en la 04 “Desarrollo de la solución”, y corregido en la Etapa 05 “Depuración y pruebas”.
Etapa 03 Es decir, a través de la ingeniería reversa es posible programar o codificar algunas partes (hasta su correcto funcionamiento) que no estén especificadas en la Etapa 03 “Diseño de la solución”. A parr de esta solución, se actualizan los diagramas de la Etapa 03 y se connúa con el proceso hasta llegar a la solución deseada.
Diseño Solución
Etapa 04 Desarrollo Solución
Pasos:
Etapa 05 Exportar proyecto (archivos class o Java) al disco de la PC, si está trabajando con un IDE.
Depuración y pruebas
Importar proyecto (archivos class o Java) a una herramienta CASE y realizar la ingeniería rever reversa. sa.
MODEL MIENTO MODELAMIENTO ALG A LGOR LGORITMO OR I TM O
Organizar el modelo obtenido en la herramienta CASE.
CODIFIC CIÓN CODIFICACIÓN DIAGRAMAS ACTUALIZADOS
CAP. 1: MÉTODO Y HERRAMIENTAS
1.1.2 1.1 .2 Resumen de método Resumen de las etapas y los pasos del método.
6 0 a p a t E
o t n e m u c o D
l . l o s a a s a d l u e u a r n r e o n . a a a e d i l n a r m m . t m i e g e n e a e o r r n l u e r l a l a r g r a l a a i i d s r a o r a u s p r a a e r p e u o e c p n l n l c t a e e e e e a n t R m e e G d G d
n 5 ó s 0 i c a b a a r e p u u a p r t e P E D
s s a a s b b o l e e . u . u e s n r s r . a d a a ó t l p i p a i r a a c r c c e r m r x r i c a a a fi r u a a t a g r i z z z t r n r i i i l u r o i r g l i l ó a p e c c o a s a l v r e e e e e e a s e p R d R d R d y l
4 0 a p a t E
o l l n ó o i r r c u a l s o e S D
n o ó ñ i e c u s i l D o S
n n ó i ó c i i c n l u fi e o D S
t E
n a ó i c m e p l i r b c o s r e D P
. r s n s n a o a e á o ó r l l i l e s r c e o u r e r s r e s r a a n q s o a e g r e d l o . a . n n a s m d n m a t l e d o i u n t o i e o a r r i r b q d r d t o s a o m n e o u a r m i t a r s e e a a e f s f n l e e s e n c d a a o e i u m n n fi s t t b e r s t o r r s r g r a n e s e e e a e a e a l o l o p p r D e t e r d D d d o p e d D f
1 0 a p a
l e e e a r d . y d , a s o s n p . n s l o a e l o ó u e t i n o m . r m r c a o s r c i i b i r t i e r r n n c e a y g o s s fi m fi a a l l g a e l e o o r e i e D n p D d r c D a
2 0 a p a t E
s e . . e a o a l s r r d d l o n s o r o s d i e . r a a d e r d a a l e r o l l a s a l d a a t a t o t m t o d o m c c r r u u n i a a s fi e r e n r p r a r s r p i y a r g a i u l o g e d o s m t m s p o m o r e o n o r o e o g e e r o C p D c i p c D c s d p c
3 0 a p a t E
o r . a l n a l ó e i m n l . c d . c e ó e o a d o a a l i d c c b p l m a s m i e fi o i a e i c c l r r r l p r b n s n e e b o o u e l e n e c e r n p r d I d D g p E y p
23
24
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
1.1.3 1.1 .3 Resultado de las etapas del método
6 0 a p a t E
o t n e m u c o D
5 0 a p a t E
n ó i s c a b a r e u u p r e P D
4 o l n 0 l o ó i a r c p r u a l s a t e o E D S
s e l a u n a M
s a b e u r P
s a m a r g o r P
n o ó ñ i e c u s i l D o S
s s a o m m t i a r r g o g a i l D a y
2 0 a p a t E
n n ó i ó c i i c n u fi l e o D S
s e n o i c a c fi i c e p s E
1 0 a p a t E
n a ó i c m e p l i r b c o s r e P D
o d a i c n u n E
3 0 a p a t E
CAP. 1: MÉTODO Y HERRAMIENTAS
25
1.2 MARCO DE TRABAJO Este libro busca dar solución a problemas sencillos ulizando el Método de las 6’D. La solución de los problemas se iniciará con el enunciado del problema, para luego desarrollar la etapa 02 (“De finición de la solución”), etapa 03 (“Diseño de la solución”) y etapa 04 (“Desarrollo de la solución”); es decir, solo se desarrollarán las tres etapas del método que son posibles especi ficar en el presente texto. La etapa 05 (“Depuración y pruebas”) se desarrollará directamente en un lenguaje de programació programación, n, y la etapa 06 (“Documentación”) (“Documentación”) es la recopilació recopilación n del material y la elaboración de los manuales respecvos.
Etapa 01
MARCO DE TRABAJO
Descripción del problema
ENUNCIADO
Etapa 02 Definición Solución
Etapa 03 Diseño Solución
Etapa 04
MODEL MIENTO MODELAMIENTO ALG A LGO LGORITMO O RI TM O
Desarrollo Solución
CODIFIC CIÓN CODIFICACIÓN Para solucionar problemas sencillos u lizando el Método de las 6’D, es necesario conocer los conceptos fundamentales de modelamiento, algoritmo y programación, y dominar el uso de las estructuras lógicas, instrucciones o sentencias de bifurcación y las estructuras de datos conocidas como variables. Este po de soluciones son el objevo del presente texto. También es posible plantear soluciones más complejas u lizando el Método de las 6’D. Para ello se deben dominar algunos conceptos claves como Objetos, Métodos, Encapsulamiento, Herencia, Polimorfismo, Interfaces gráficas, Conexión a base de datos y Servlets, entre otros. Es importante mencionar que, dependiendo de la complejidad del problema, los pasos especi ficados en cada una de las etapas del método se pueden redefinir o modificar car.. Esto signi s ignifica que, dependiendo de la complejidad del problema y de su solución, se puede plantear nuevos pasos y eliminar los ya existentes en las diferentes etapas del método. Conforme se avance con el desarrollo de las soluciones, se podrá observar cómo se redefinen los pasos de las etapas del método.
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
26
1.3 MODELAMIENTO Se llama modelamiento a la forma en la que se representa la solución de un problema del mundo real en términos de un modelo. Esta es una representación gráfica o simbólica de algún aspecto del mundo que se encuentra bajo observación o estudio. Para representar un modelo se u liza el UML (Unified Modeling Language). El Lenguaje Unificado de Modelado (UML) es un lenguaje gráfico que permite: Visualizar un modelo.
Especificar un modelo (construir modelos precisos, no ambiguos). Construir un modelo en un lenguaje de programaci programación ón (se establecen correspo correspondencias ndencias con lenguajes orientados a objetos, como Java, C++, Visual Basic.
Documentar los componentes de un sistema de so ware ware (arquitectura, requisitos, diseño, pruebas, versiones, planificación).
Describir el ciclo de vida completo del desarrollo orientado a objetos.
Para desarrollar un modelo y representarlo en UML es necesario conocer todos los conceptos relacionados con el desarrollo de so ware ware orientado a objetos. Para dicho propósito, se detallarán algunos conceptos básicos que serán u lizados en las soluciones que plantea este libro.
1.3.1 Paquete Los paquetes permiten organizar las clases de un modelo. Un paquete con ene clases cuyas funciones similares. En UML, un paquete se representa de la siguiente forma:
NombrePaquete
Nombre del paquete
1.3.2 Clase Una clase es un modelo que se u liza para describir uno o más objetos del mismo po. En su forma más sencilla, una clase es un conjunto de atributos y métodos; es una abstracción y no representa a ningún objeto en parcular. En UML, una clase se representa de la siguiente forma:
NombreClase (NombrePaquete al que pertenece)
Nombre de la clase y del paquete al cual pertenece la clase
Atributos
Lista de atributos de la clase
Métodos
Lista de métodos de la clase
CAP. 1: MÉTODO Y HERRAMIENTAS
27
1.3.3 Objeto Es cualquier cosa real o abstracta de la que se almacenan datos, y los métodos controlan y manipulan dichos datos. Un objeto se crea o instancia a parr de una clase. En UML, un objeto se representa de la siguiente forma:
Nombre de la clase a la cual pertenece el objeto y el nombre del objeto. Ambos nombres deben estar separados por dos puntos.
NombreClase : nombreObjeto
UML incorpora nueve diagramas que permiten representar repres entar un modelo desde diferentes perspecvas. Estos se muestran a connuación:
Diagramas de Casos de Uso Diagramas de Clase Paquete
Diagramas de Secuencia
Diagramas de Colaboración
Diagramas de Objeto
MODELO
Diagramas de Estado
Diagramas de Componentes
Diagramas de Acvidad
Diagramas de Distribución
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
28
A connuación, se detalla el diagrama de paquetes que será u lizado en las soluciones planteadas en el presente texto.
1.3.4 Diagrama de paquetes Este permite especificar y visualizar las relaciones de dependencia existentes entre los paquetes que forman parte de una solución. Una relación de dependencia entre dos o más paquetes se establece cuando las clases que pertenecen a un paquete pueden tener acceso a todas o algunas de las clases que pertenecen a otro paquete (dependencia unidireccional). También se puede establecer una relación de dependencia bidireccional, bidireccional, cuando las clases que pertenecen a un paquete pueden tener acceso a todas o algunas de las clases que pertenecen a otro paquete, y viceversa. En UML, una relación de dependencia unidireccional entre dos paquetes se gra fica de la siguiente manera:
dominioDeLaAplicacion
Biblioteca
Relación de dependencia unidireccional
En este caso, dependencia significa que todas las clases pertenecientes al paquete “dominioDeLaAplicacion” podrán tener acceso a todas o algunas de las clases que pertenecen al paquete “Biblioteca” . (Observe el sendo de la flecha que marca la dependencia unidireccional). En
el Método de las 6’D, el modelamiento de una solución se desarrolla durante la Etapa 03 - Diseño de la solución.
Etapa 03 Definición Solución
MODEL MIENTO MODELAMIENTO Se desarrollan los siguientes pasos:
Definir un nombre para el proyecto. Este paso permirá agrupar todos los elementos que serán
parte de la solución del problema ulizando el método planteado. El nombre del proyecto comenzará con las letras “Proy” (abreviatura de proyecto), seguido de un nombre que idenfique al proyecto. Este nombre debe ser seleccionado adecuadamente.
Definición de diagramas, relaciones y clases. En este paso se desarrollará el diagrama de paquetes y se especificará la relación de dependencia entre estos, ulizando UML. En las soluciones, primero se creará un paquete y luego todos los demás. Fundamentalmente, se desarrollarán soluciones con dos paquetes donde uno de ellos se llamará “dominioDeLaAplicación” y el otro “Biblioteca” , estableciendo una relación de dependencia unidireccional del primero hacia el segundo.
CAP. 1: MÉTODO Y HERRAMIENTAS
29
En el paquete “dominioDeLaAplicacion” se definirá la clase que va a permir solucionar el problema planteado ulizando UML. El nombre de la clase que define el método principal comienza con las letras “Prg” (abreviatura de programa), seguido de un nombre que idenfique a la clase. Este nombre deberá ser seleccionado adecuadamente. Dicha clase por lo general no tendrá atributos definidos. En el paquete “Biblioteca” se se tendrán clases reulizables, tales como la clase Lectura1 y la clase LE2, que facilitarán el ingreso de los datos a la computadora.
Regla general para especificar los nombres de los paquetes, clases, atributos y métodos: El nombre de las clases debe clases debe comenzar con una letra mayúscula y el resto en minúscula. Si el nombre es compuesto, todas las primeras letras de los nombres simples que forman el nombre de la clase o paquete deberán comenzar con mayúscula. El nombre de los paquetes, el nombre de los atributos y el nombre el nombre de los métodos métodos se se escriben en letra minúscula. En caso que el nombr nombre e sea compuesto compuesto,, a parr de la segunda palabra se escribirá la primera letra en mayúscula. Los métodos constructores son una excepción a esta regla y enen el mismo nombre que su clase (por lo que su nombre comienz comienza a con letra mayúscula).
1.4 ALGORITMO En su forma más simple, una clase está constuida por atributos y métodos. Los métodos represent representan an pequeños subprogramas encapsulados encapsulados dentro de las clases y contribuyen a definir el comportamiento pico pico de los objetos. Los algoritmos se desarrollan para especi ficar cuáles son los pasos desarrollados en un determinado método y cuáles son los datos que manejan dichos pasos. Un algoritmo constuye una lista completa de los pasos y una descripción de los datos que son necesarios para resolver un determinado problema en el ámbito de un método. De esto se deriva que un algoritmo se desarrolla para un determinado método y que su de finición ene dos partes esenciales: Una lista de pasos que deben ser ejecutados.
Una descripción de los datos que son manipulados por estos pasos.
1.4.1
Características
Descripción de los pasos que deben ser ejecutados (estructura (estructurass lógicas).
Descripción de los datos que son manipulados por estos pasos (estructuras de datos).
Un algoritmo debe ser preciso, indicando el orden de realización de cada paso.
Todo algoritmo debe ser finito. Si se sigue un algoritmo, este debe terminar en algún momento.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado.
1
La clase Lectura se uliza en todos los capítulos. La clase Lectura se especifica en el apéndice. 2 La clase LE se trata en la parte final de cada capítulo, y con mayor intensidad en el capítulo final. La clase LE se especifica en el apéndice.
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
30
Un algoritmo puede o no tener datos de entrada.
Un algoritmo producirá uno o más datos de salida.
Los datos de entrada y salida deben almacenarse en estructuras de datos.
El resultado que se obtenga debe sasfacer los requerimientos de la persona interesada (efecvidad).
Debe ser estructurado. Es decir, debe ser fácil de leer, entender, usar y cambiar si es preciso.
En conclusión, los algoritmos permiten especi ficar la lógica de desarrollo de los métodos que conforman confo rman una clase; por lo tanto, se debe entender la importancia de estudiar los algoritmos para comprender cómo se está solucionando un determinado problema. Se dispone de diversas herramientas para desarrollar los algoritmos en los métodos de las clases. Entre estas herramientas herramientas se puede mencionar al pseudocódigo y al diagrama de flujo.
Herramientas
1.4.2
A. Pseudocódigo B. Diagrama de flujo C. Diagrama de acvidad
A. Pseudocódigo
Permite expresar un algoritmo con palabras en castellano que son semejantes a las sentencias de un lenguaje de programaci programación. ón.
a. Pautas básicas: Todo algoritmo debe tener un nombre que empiece con una letra mayúscula. Si es un nombre compuesto,, la primera letra de cada palabra simple deberá estar en mayúscula. No se permiten compuesto los espacios en blanco en el nombre del algoritmo (generalmente se u lizará el nombre de la clase y el nombre del método para referirse a un determinado algoritmo).
Es necesario que se determinen los datos de entrada y la información información de salida.
Para declarar declarar una variable “x” se deberá determinar qué po de dato se almacenará. Por ejemplo, si se desea declarar una variable de po texto se realizará de la siguiente manera: TEXTO x.
Para asignar un valor a una variable “x” se ulizará el signo igual. Por ejemplo, si se desea asignar 5 a la variable “x” se realizará de la siguiente manera: x = 5. Para indicar que la computadora lea un valor desde un disposi vo externo y lo almacene en la variable “z”, se uliza: LEER z.
Para indicar que la computadora escriba hacia un disposivo externo:
Para escribir un mensaje (observe que el mensaje está entre comillas) se uliza: ESCRIBIR “hola”.
Para escribir el valor de una variable (observe que la variable no está entre comillas) se u liza: ESCRIBIR x.
Para escribir el resultado de una expresión (observe que la expresión no está entre comillas) se uliza: ESCRIBIR x + 2.
CAP. 1: MÉTODO Y HERRAMIENTAS
31
b. Estructura básica de un pseudocódigo: Algoritmo NombreClase – nombreMetodo( ) ENTRADA:
En Entrada y Salida se especi fi can can las variables que se usarán en el
SALIDA:
desarrollo del algoritmo.
INICIO:
... ...
FIN:
Este es el cuerpo del algoritmo expresado en pseudocódigo. Las instrucciones se colocan entre INICIO... FIN
...
c. Reglas o pautas Con la finalidad de comprender mejor el diseño de los algoritmos desarrollados en pseudocódigo y diagrama de flujo, se han clasificado en seis grupos las reglas definidas.
REGLA
FORMATO
DESCRIPCIÓN
GRUPO 1 Utilizada para el ingreso de datos. L EE R
L E ER x
El dato ingresado se almacena en la variable especificada.
ESCRIBIR “Hola” ESCRIBIR
ESCRIBIR x ESCRIBIR x + z
Utilizada
para
la
salida
de
información. Se puede visualizar una cadena, el contenido de una variable o el resultado de una operación matemática. Utilizada para realizar comentarios
COME NTARI O
CO ME NTA RIO “ Var i ab l e s”
internos en los algoritmos de las soluciones.
NUMERO
N U M ER O x
T E X TO
T E X TO m e n s a j e
C A R AC T E R
C A R A C T ER l et ra
L OG I C O
L O GI C O a p ro b ad o
VE R D A D ER O
a p ro b ad o = VE R D A D ER O
FA L SO
a p ro b ad o = FA L SO
Permite declarar una variable de tipo numérico. Permite declarar una variable de tipo texto o cadena. Permite declarar declarar a una va variable riable d de e tipo texto o cadena de una sola letra. Permite declarar una variable de tipo lógico
Permite asignar el valor VERDADERO a una variable lógica.
Permite asignar el v alor FALSO a una variable lógica.
32
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
REGLA
FORMATO
DESCRIPCIÓN
GRUPO 2 SI (condición) ENTONCES SI
instrucciones...
Permite especificar una estructura de decisión simple “SI... FINSI”.
FINSI SI (condición) ENTONCES SI / SINO
instrucciones...
SINO
instrucciones...
Permite especificar una estructura de decisión doble “SI... SINO... FINSI”.
FINSI CUANDO (variable) SEA
CASO valor 1 : instrucciones...
CUANDO
CASO valor 2 :
instrucciones... CASO valor n :
instrucciones...
Permite especificar una estructura de
decisión
múltiple
“CUANDO...
FINCUANDO”.
OTROS
instrucciones…
FINCUANDO DESDE i = valorInicial
HASTA valorFi nal instrucción 1
DESDE
.
. .
instrucción n
Permite especificar una estructura de repetición “DESDE... FINDESDE”. Esta estructura es equivalente a PARA.
FINDESDE PARA ( i = valorInicial ;
condición ; valor ) instrucción 1
PARA
.
Permite especificar una estructura de
. .
repetición “PARA... FINPARA”. Esta estructura es equivalente a DESDE.
instrucción n
FINPARA MIENTRAS (condición)
MIENTRAS
instrucción 1
.
.
.
instrucción n
Permite especificar una estructura de
repetición
“MIENTRAS...
FINMIENTRAS”.
FINMIENTRAS HACER instrucción 1 HACER
. .
.
instrucción n
MIENTRAS (condición
Permite especificar una estructura de repetición “HACER... MIENTRAS”.
CAP. 1: MÉTODO Y HERRAMIENTAS
TE RMINA R
Permite terminar la ejecución de una
TE RMINA R
estructura lógica de repetición.
Permite CO NTINUA R
volver
a
ejecutar
una
estructura lógica de repetición, sin
C ON T I N U A
finalizar todas las instrucciones que forman parte de la misma.
REGLA
FORMATO
DESCRIPCIÓN
GRUPO 3
Permite obtener el coseno del valor COSENO
almacenado en la variable “n”. El x = COSENO n
resultado se almacena en la variable “x”.
Permite obtener el seno del valor almacenado en la variable “n”. El S EN O
x = S EN O n
resultado se almacena en la variable “x”.
Permite obtener la longitud de la cadena almacenada en la variable L ON GI T U D
x = L ON G I T U D n
“n” o la longitud del vector “n”. El resultado se almacena en la variable “x”.
Permite obtener el número de filas F I LA
x = FILA n
de una matriz “n”. El resultado se almacena en la variable “x”.
Permite CO LUMNA
x = C O LU M N A n
obtener
columnas de
el
una
número
de
matriz “n”. El
resultado se almacena en la variable “x”.
Permite MAYUSCULA
x = MAYUSCULA n
cambiar
a
mayúscula
la
cadena almacenada en la variable “n”. El resultado se almacena en la variable “x”.
Permite M I N U SC U L A
x = MINUS CUL A n
cambiar
a
minúscula
la
cadena almacenada en la variable “n”. El resultado se almacena en la variable “x”.
33
34
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
REGLA
FORMATO
DESCRIPCIÓN
GRUPO 4 Permite obtener el resto de la división R E S TO
x = z R E S TO n
entre las variables “z” y “n”. El resultado se almacena en la variable “x”.
Permite obtener la parte entera de la DIV IDIR
x = z DIV IDI R n
división de las variables “z” y “n”. El resultado se almacena en la variable “x”.
Permite obtener la raíz “n” del número RA IZ
x = z RA IZ n
“z”. El resultado se almacena en la variable “x”.
Permite obtener la potencia “n” del PO T E N C I A
x = z P OT E N C I A n
número “z”. El resultado se almacena en la variable “x”.
Permite obtener el número mayor entre el valor almacenado en la M AX I M O
x = z M A XI M O n
variable “n” y la variable “z”. El resultado se almacena en la variable “x”.
Permite obtener el número mayor entre los valores almacenados en las MAYO R
x = MAYO R n 1, n 2, n3 …
variables “n1”, “n2”, “n3”… El resultado se almacena en la variable “x”.
Permite obtener el número menor entre los valores almacenados en las M EN OR
x = M EN O R n 1, n 2, n 3…
variables “n1”, “n2”, “n3”… El resultado se almacena en la variable “x”.
Permite obtener el número menor entre el valor almacenado en la MINIMO
x = z MINI MO n
variable “n” y la variable “z”. El resultado se almacena en la variable “x”.
Permite obtener el promedio entre los PR OM E D I O
x = PR O M ED I O n1 , n 2 , n 3 …
valores almacenados en las variables “n1”, “n2”, “n3”… El resultado se almacena en la variable “x”
CAP. 1: MÉTODO Y HERRAMIENTAS
Permite obtener el carácter ubicado C A R A C T ER
x = z C AR A C T E R n
en la posición “n” de la cadena “z”. El resultado se almacena en la variable “x”. Permite obtener un número cualquiera
ALEATOR IO
x = z ALE ATORIO n
(aleatorio) entre los valores de “z” y “n”. El resultado se almacena en la variable “x”. Permite redondear un número “z” al
R E D O N D EA R
x = z R ED O N D EA R n
número de decimales especificado en “n” El resultado se almacena en la variable “x”.
REGLA
FORMATO
DESCRIPCIÓN
GRUPO 5 Permite
obtener
una
subcadena
comprendida entre las posiciones S U B C AD E N A
x = z S U B C AD E N A n1 , n 2
especificadas por “n1” y “n2” de la cadena “z”. El resultado se almacena en la variable “x”. Permite
ELIMINAESPACIO
x = z ELIMINAESPACIO n1, n2
eliminar
los
espacios
existentes en una cadena entre las posiciones especificadas por “n1” y “n2”. El resultado se almacena en la variable “x”.
REGLA
FORMATO
DESCRIPCIÓN
GRUPO 6 Utilizada CREAR vector[n] CREAR
para
crear
arreglos
previamente declarados. Un arreglo permite almacenar más de un dato
CREAR matriz[n1][n2]
del mismo tipo.
C L A SE
C L AS E Pr g Ej e m pl o
U t i li z a d a pa r a es p e c i f i c a r un a c l as e.
CREAR
C R E AR o bj e t o
E JE CUTA R
E JECUTAR
PA RA METRO
PA RAME TRO l ist aVa r i ab l es
R E TO R N A R
R E TO R N A R v a r i a b l e
a l go r i t m o
Permite crear un objeto de una determinada clase.
Pe r m it e ej e c ut ar o t r o a lg o ri t m o.
Permite especificar si un algoritmo recibe datos o valores.
Permite especificar si un algoritmo retorna una respuesta.
35
36
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
B. Diagrama de flujo
Permite ilustrar la secuencia de pasos de un algoritmo por medio de símbolos especializados y líneas de flujo. La combinación de símbolos especializados y líneas de flujo describe la lógica para la solución del problema (algoritmo). Entonces, se puede a firmar que el Diagrama de Flujo es la representación gráfica de un algoritmo.
DIAGRAMA DE FLUJO FLUJO Porque muestra la secuencia de lo que se ene que realizar.
DIAGRAMA Por el hecho de ser dibujo que no requiere estar a escala.
Elementos o símbolos básicos:
PROCESO Ulizado para asignar valores a variables y resultados de operaciones matemácas.
ENTRADA / SALIDA Ulizado para ingresar datos y visualizar la información que resulta del procesamiento.
INICIO / FIN Este símbolo permite marcar el inicio y el final del algoritmo.
CONECTOR Este símbolo permite que no se crucen los flujos (líneas) en un diagrama.
FLUJOS (LÍNEAS) Líneas que permiten unir los diagramas y mostrar la secuencia lógica a la solución del problema.
CAP. 1: MÉTODO Y HERRAMIENTAS
37
Estructura básica de un diagrama de flujo:
Algoritmo NombreClase – nombreMetodo()
INICIO
Instrucciones…
Este es el cuerpo del algoritmo expresado en diagrama de flujo. Las instrucciones se colocan entre INICIO… FIN.
FIN
C. Diagrama de acvidades
Son parte del lenguaje unificado de modelado (UML) y se u lizan comúnmente en dos formas:
1.- Es el modelado de flujos de trabajo, haciendo hincapié en las ac vidades tal y como son vistas por los actores que colaboran con el sistema, esto es, modelando procesos de negocio.
2.- Es el modelado de una operación, ulizando los diagramas de acvidad como diagramas de flujo para amostrar detalles de un algoritmo, haciendo amplio uso de las condiciones de procesos concurrentes. Los diagramas de acvidad están compuestos por símbolos de propósito especial, tales como los símbolos de estado de acción, diamantes, pequeños círculos y barras de sincronización. Estos símbolos están conectados mediante flechas de transición, las cuales representan el flujo de acvidad. Cada estado de acción representa la realización de una o varias tareas. Se representa por un rectángulo de sus lados izquierdo y derecho reemplazados con arcos hacia fuera. Cada ac vidad conene una expresión de acción que especifica una acción parcular a realizar. Las acciones pueden incluir cálculos aritmécos, lógicos u operaciones de entrada y salida. La expresión de acción puede especificarse en lenguaje natural o ulizando pseudocódigo. Las flechas en el Diagrama de Acvidad se llaman flechas de transición. Estas flechas representan transiciones, las cuales indican el orden en el que ocurren las acciones representadas por los estados de acción. El círculo sólido en la parte superior del diagrama de ac vidad representa el estado inicial de la acvidad, es decir dec ir,, el inicio de flujo de trabajo antes de que el programa realice las tareas modeladas. El círculo sólido rodeado por una circunferencia que aparece en la parte inferior del diagrama de acvidad representa el estado final, es decir deci r, el final del flujo de trabajo después de que el programa realiza todas las tareas. Un diamante o rombo permite representar caminos alterna vos según se cumpla alguna condición.
38
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS Las barras de sincronización permiten mostrar ac vidades concurrentes, es decir, acvidades que pueden realizarse en paralelo. Sin embargo, en la realidad puede ser que no se ejecuten simultáneamente. La idea es indicar qué acvidades se pueden realizar en paralelo, sin que ello signifique que deba forzosamente realizarse así. Puede realizarse en cualquier orden, lo importante es dar la idea de que se pueden ejecutar al mismo empo. Las barras de sincroniz sincronización ación son líneas connuas gruesas y pueden ser vercales u horizontales.
En Diagrama de vidad, comoque en cualquier UML, incluir notas. Las notas sonun comentarios conAcexplicaciones describen diagrama el propósito depuede los símbolos del diagrama de Acvidad. Las notas son símbolos representados por rectángulos con la esquina superior derecha doblada. Una línea punteada permite conectar cada nota con el elemento que describe dicha nota. Generalmente, las notas pueden ulizarse para describir como se relacionan los diagramas con un lenguaje de programación en par cular. Al igual que los Pseudocódigo y los Diagramas de Flujo, los Diagramas de Ac vidades ayudan a los programadores programador es a desarrollar y representar los algoritmos, aunque muchos programadores prefieren ulizar Pseudocódigo o Diagramas de Flujo. Los Diagramas de Ac vidad claramente muestran cómo operan las estructuras lógicas y pueden ser usados para diseñar algoritmos.
Elementos o símbolos básicos: ESTADO INICIAL Este símbolo permite marcar el inicio del algoritmo.
ESTADO DE ACCIÓN O ACTIVIDAD Representa la realización de una o varias tareas.
DECISIÓN Permite representar caminos alternavos en base a una condición.
ESTADO FINAL Este símbolo permite marcar el final del algoritmo.
FLECHAS DE TRANSICIÓN Líneas que indican el orden en que ocurren las acciones.
BARRAS DE SINCRONIZACIÓN Líneas que permiten mostrar ac vidades concurrentes. concurrentes.
NOTAS Comentarios que permiten describir el propósito de los diagramas.
CAP. 1: MÉTODO Y HERRAMIENTAS
39
En
el Método de las 6`D, el algoritmo de una solución se desarrolla después del modelamiento, durante la Etapa 03 – “Diseño de la Solución”.
Etapa 03 Diseño Solución
MODEL MIENTO MODELAMIENTO ALG A LGO LGORITMO O RI TM O
Se desarrollará el siguiente paso:
Desarrollo de algoritmos. En este paso, se desarrollará el algoritmo para el método especificado en
la clase, la cual forma parte del paquete “dominioDeLaAplicación” . Para el desarrollo del algoritmo se ulizará Pseudocódigo y/o Diagrama de Flujo. También, en algunos casos, a modo de introducción se ulizarán los diagramas de acvidades.
1.5 PROGRAMACIÓN La programación es la traducción del modelamiento y los algoritmos en sentencias que la computadora puede comprender y ejecutar. Es decir, que la programación es la acción de escribir programas para una computadora, ulizando alguno de los lenguajes de programación existentes. Dicha acción se conoce como codificación. Las personas que escriben los programas son conocidas como programadores, los cuales están divididos en categorías según su experiencia y dominio de diferentes lenguajes de programación. Entonces, un lenguaje de programación es aquel que ulizan los programadores, que son comprendidos y ejecutados en una computador computadora. a.
Nos “comunicamos” con las computadoras a través de los programas desarrollados en un lenguaje de programación en parcular cular.. Existen diferentes lenguajes de programación, la mayor parte de los cuales enen un conjunto de reglas o sentencias muy especializadas. La forma de programación ha variado con el paso de los años. Al inicio, se desarrolló la programación lineal, luego de la programación modular, después la programación estructurada y ahora la programación orientada a objetos. Entre los lenguajes de programación orientados a objetos podemos destacar a C++ y Java.
MÉTODO DE LAS 6’D - ENFOQUE ORIENTADO A LAS ESTRUCTURAS LÓGICAS
40
1.5.1 Tipos de lenguajes de programación A. C++
C++ es un lenguaje de programació programación, n, diseñado a mediados de los años 1980 por Bjame Stroudstrup, como extensión del lenguaje de programación C. Actualmente, existe un estándar denominado ISO C++, al que se han adherido la mayoría de los fabricantes fabrican tes de compilador compiladores es más modernos. Existen también algunos intérpretes como ROOT (enlace externo). Las principales caracterís cas del C++ son el soporte para programació programación n orientada a objetos y el soporte de plan llas o programación genérica (templates). Se puede decir que C++ es un lenguaje que abarca tres paradigmas de la programación: programaci ón: la programació programación n estructurada, la programación programación genérica y la programación programación orientada a objetos. C++ está considerado considerado po porr muchos progr programadores amadores co como mo uno de los mejores lenguajes de programación, programaci ón, debido a que permite trabajar tanto a alto como a bajo nivel; sin embargo es a su vez uno de los que menos automazaciones ene (obliga a hacerlo casi todo manualmente al igual que C) lo que genera más empo para su aprendizaje aprendizaje.. B. Java
Java es un lenguaje de programación orientado a objetos, desarrollado por Sun MicroSystems, una compañía reconocida reconocida por sus estaciones de trabajo UNIX de alta calidad. Fundamentado en el lenguaje de programación C++, el lenguaje Java se diseñó para ser pequeño, sencillo y portál a través de plataformas y sistemas operavos, tanto a nivel de código fuente como binario, lo que significa que los programas Java ( applets, aplicaciones y servlests), pueden ejecutarse en cualquier computadora que tenga instalada una máquina virtual de Java. En la actualidad, la Programación Estructurada (PE) y la Programación Orientada a Objetos (POO) son las formas de programación ulizadas por la mayoría de los programadores, siendo la POO la más reciente y la que asegura solucionar la mayoría de los problemas de la PE, incorporando nuevas caracterís cas y nuevos conceptos. Una caracterísca importante de la POO es que uliza conceptos ópmos de la PE y de las otras formas de programación. En
el Método de las 6´D, la programación de una solución se desarrolla durante la Etapa 04 – “Desarrollo de la Solución”.
Etapa 04 Desarrollo Solución
CODIFIC CIÓN CODIFICACIÓN Se desarrollará solo el primer paso. Codificar el proyecto. En este paso, se desarrollará la codi ficación del proyecto; es decir, ulizando el lenguaje de programación Java y/o C++, se traducirá lo especificado en el modelamiento y en los algoritmos en sentencias que la computadora pueda comprender y ejecutar.