You are on page 1of 31
#Misién TIC 2022 Presentacion curricular Ciclo 2 Ruta de aprendizaje 2 MINTIC Ciclo 2: Programacién basica en Java ANO 2022 SETS NS see ke #Mision TIC 2022 Introduccién presente documento se ho elaborado en el marco del proyecto MisiénTIC 2022 convenio de asoclaciin No, 76 del 2021 como insumo para el desarrollo de Ia ruta de aprenclzale No. 2 Este documento y Is informacisn contenida en él san desarcloe excusivas para el proyecto y Ia iemplementacisn de a ruta de aprendizaje No.2 MisioaTIC 2022. La Universidad Sergio Arboleda LS UNIVERSIDAD SERGIO ARBOLEDA e: una Institucién de educacién superior de caréterprivado, sin dnimo de lucto, con Personeria Juridica reconocida mediante las Resoluciones Nos. 16377 de ‘octubre de 1984, emanadas del Ministerio de Educacién Nacional: orientada a formar profesionales en os cistintos campos de la cultura, con proyectién hacia la comunidad nacional e internacional con sede en las cudades de Bogots D.C, Santa Marta y Barranquilla, ya nivel internacional, el Centro Internacional de Excelencia internacional ubieado en la cudad de Macrid Espa y ena ciudad de Miami-USA.. Actualmente cuenta con Acteditacién Insitucional de Alta Caliged Mult-campus otorzada mediante Resolucin 3659 del § de abril de 2018, oferta ciento treina y tes (133), programe, msde evarenta yun (1) programas de pregrada, cuatro (1) programas de tecnologia, sesenta (60) programas de espedalizacién,veitsite (27) maestas, un (1) doctorado, y mss de ‘len (100) programas de educacion continuada, Durante mas de 35 af a Universidad Sergio Arboleda ha partcipado activamente en procesos de Investigacion y consultoria tanto en entidades privadas como publica, en el dmbito nacional € internacional generando en sus alados, importantes impactos a nivel de cambio ytransferencia de conocimientos a través de la educacié, Con base en os Estatutos de la Universidad Sergio Arboled (aprobados por Ia Resolucion 6423 del 5 de agosto de 2011 del Minsterio de Educacin Naclonal, dentro de ls objetivos dela misma se encuentra". Adelantar yfomentor programas de investigacion y extensin en as dreas de su especialiad y propencer por su efectivo aprovechamiento y dvulgacién (.)" Aicionalmente, de conformidad con a naturalezaacadémica dea Universidad, para el cumplimlento de sus obletvos Yeldesarrolla deus funciones, “pods crear, digi adminisrar en tados los nveles, madalidades ¥ metodologas, toda las actividades ocadémicas, ocentes, ivestigatives y de extensiéno servicio conducentes 0 a produccsn, desarrolley transmisin del conocimiento y dela cultura en todos fos compos" be acuerda con la Ley 20 de 1992, “La extensiin commrende los programas de educacién ‘permanente, cursos, seminaros y demas programas destinados ofa dfusén de fos conocimientos, alinercambio de experiences, sl comes actividades de servile tendientes a procurarelbienestar ‘generl de lo comunidad y la satisaccin de los necesidades dela socedo? wate, NOSE — > —_______________e #Mision TIC 2022 Asilas cosas, la Extensién en la Universidad Sergio Arboleda busca, en conjunto con os otros pilares de a Institucién (Decencia, Investigacén e Innovacién),aportar la proyeccion social através de servicios, tales como canvenios de cencia,teenologae innavacén, Con base en lo anterior a Universidad ha dirigido sus esfuerzos a complementarse tniendo en cuenta las necesidades actuales del pais. en las reas de Investigacion e innovacién que aportan conocimiontoefectivo alas diferentes rgiones de Colombia: logrando obtener resultados que han contrbuido con el mejoramiento de a sociedad En elrecorrido de mas de 35 af, fa Universiéae Sera Arboleda, se hacaracterizad por un sOlido compromiso con el quehacer de su misién,liderando un proyecto de formacién integral que descansa en cuatro pares fundamentales: Humsnismo, Excelencia Aeadémia,Internacionalizacién ¥ Emprendimientoe innovacién, Desde ls aulas se han venide forindo individuas can profundos conacimiento en la dversae ‘lencias de saber, con un bagefe cultural que les permitaideniicr sus races, velar por los valores ancestraesy ser cultores del arte yas letras; aptos par participar en procesos de desarrollo aqui Y més alli de las fronteras, y preparados para crear, emprender e Innovar, condones indispensables en os profesionales actuals. [Mo tras afo la Universidad se ha sometido a un riguroso proceso de actualiacion del proyecto eueatvo institucional de manera que responda a las tendencias y necesidades del mundo contemporéneo. Asi lo evidencia su historia, las accionespresentesy las proyecclones al futuro, Estrategias pedagégicas de la ruta de aprendizaje No.2 en coherencia con las herramientas tecnoldégicas Las estratogas pedagégicas planteadas pore programa de formacion de la ruta deaprendlzaje No.2 se enmarcan en el quehacer de as aeciones pedagéglcas ydiddcticas, que facitan la aprensién de conacimiento y el desrrollo de competencias digales y de programacién, de manera dindrica, innovadora y creatva integrando las herramientas tecnalgicas y el desarolo cuticular ala formacion de os estudiantes que hacen parte del programa académico. El programa promueve diferentes estrategias en la planificacén y desarrollo que permitan promover el cambio la innovaeié en los metodos de enseRango bajo criterias tales come: ‘© Trabajo colaboratvo en amibientes mulicuturaleseInterdisciplinares 1+ Aplcacion de herramientas tecnologias en pro dea mejora ye aprenazale SBT Nase — =p > #Mision TIC 2022 Come soporte al desarello pedagégjco se cuenta con las siguientes teenolégicas ‘+ LMS (Learning Management System - sistema para la gestién del aprendizaje) + herramientas integradas:plataforma en la que se implementard con el fin de hacer mas robusta y eficente Las comunicaciones Lasinteracciones académicas, sincrnicas como asincrnica, La publicacion de los materiales y las Guas de Estuo, La partcigaciony evaluacién en cada une de los madulos de aprendizae rs ‘+ Herramientas anti-plaglo: Pueden ser usada con fines de revisién 0 evaluacién de productos académicos. ‘+ Inspeccién semiautomética de cago: permite verificr las replas de buena calidad que debe tener un programa orientado por objetos como encapsulamiento, desacoplamiento, Presencia de cécigo duplicado y uns buena estructura de los algritmes. ‘+ Herramientas para videoconferencias:cisponible para ainteraccén, en tiempo real, entre estudiantes y profesarespermitiendo la utzacién de auas presenciales en un esquema sincrénico por comunicacién con vor, vdeo y chat ‘Aula Virtual: E1 Aula Vitual contaré con el apoyo de Mastertech, como LMS (Learning Manogement System - sitoma para la gestion del aprendizaje) Ciclo 2. Programacién basica en Java Justificaci6n El segundo ciclo de formacién, programacién bésica en Java, tiene come objetivo presentar alos estudiantes el paradigma de programacién orientada por objeto, los fundamentos de las bases de datos relacionales y el patrén arquitecténico MVC como estrategias para ‘modelar, disefar implementar soluciones de software a problemas reales. La programacién orientada por objetos es un paradigma que permite expresar soluciones len un lenguaje més cercano al contexto del problema. Es una forms de razonamiento que facilta la abstraccién de los conceptos y permite independizaros y relacionarlos de una ‘manera simple, siendo uno de los paradigmas de programacién mas utiizados en el campo de la ingenieria de software. La programacién orientada por abjetos se complementa con la utilizacisn de las bases de datos relacionales, las cuales proporcionan una forma intutiva de madelar y manipular Informacion representada en tablas que se relacionan ent si ste tipo de bases de datos permiten representar grandes volimenes de informacion a través de uns estructura légica que facilta el acceso y la manipulacién de los datos a través del lenguaje de consulta estrueturado (SA). Las bases de datos relacionales son usadas por organizaciones de todo waste, NOSE — ae» —_________________e ke #Mision TIC 2022 tipo y tamafo convirtiéndose una herramienta poderosa para satisfacer la necesidad de administrar y controlar diferentes fuentes informacion, Finalmente, el patrén MVC nos permite definir una arquitectura para las aplicaciones que esacopla los componentes de la interfaz gréfica, a légica de negocio y la capa de persistencia, El patron MVC facta la definicion de las responsabilidades de los diferentes, componentes,factando la escalabilidad y la mantenibilidad de la aplicacién. El uso de del patrén MVC tiene como propésito presentar los conceptas basicas de arquitectura de software y la importancia de estos conceptos enla etapa de disefo. En este curso, los estudiantes resolveran diferentes retos de programacién combinando el paradigma de programacién orientada par objetos, el uso de bases de datos relaciones y el patrén MVC que les permitiran adquirir las competencias necesarias en el area de la Ingenieria de software. Objetivo general Desarrollar en los estudiantes habilidades en programacién mediante estudio del paradigma de programacién orientado por objetos, las bases de datos relaciones y la arquitectura MVC como parte de su formacién como desarrolladores Full Stack. Competencias por desarrollar 1. Modela e implementa soluciones de software utlizando el paradigma de programacién corientada por objetos. 2. Representa un disefo orientado por objetos mediante el lenguaje UML Captura requisites funcionales a través de diagrama de casos de uso ¢ historias de Disefa yejecuta un conjunto de pruebas unitarias Disefa y manipula bases de datos relaciones a través del lenguaje SQL Utiiza la arquitectura MVC para desacoplar la ldgica de negocio y la interfaxgréfica Utiizalibreriasy Frameworks para el desarrollo de aplicaciones Resultados esperados de aprendizaje 1.1, implementa correctamente atributos, métodos y constructores en un programa otientado por objetos, 1.2. Aplica correctamente los conceptos de encapsulamiento,interfaz yherencia en un programa orientado por objetos 1.3, Utlizacolecciones y atreglos de datos en la solucién de problemas B.s-M&idn REEL. TIC2022—— ]om —_____________________» ke #Mision TIC 2022 2.1. Utliza diagramas de clases para representar el disefo de un programa orientado por cobjetos 2.2. Reconoce las relaciones de dependencia, asociacién y composicién entre clases 2.1. Ident alos diferentes componentes de un digrama de casos de usa 3.2. Reconace las felaciones > y <> en un diagrama de casos de uso 3.3, Identifica los componentes de una historia de usuario 214, Reconace el papel de ls criterias de aceptacién en una historia de usuario 44.4. Diseha pruebas unitarias caracterizando la salida de una funcién 4.2. implementa pruebas unitaras para que sean ejecutadas de forma automstica 5.1. Modela un conjunto de datos através de diagrama E/R 5.2. Convierte un modelo F/R @ un modelo relacional 5.3, Utliza ellengusje SOL para realizar las consutas CRUD a una base de datos 6.1. Reconoce las responsabildades de cada componente en una arquitectura MVC 6.2. Implementa carractamente la comunieacién entre los diferentes componentes de una arquitectura MVC 6.3, Disefa y desarolla interfaces de usuario utiizando el lenguale JAVA, 7.2 Utilza el Framework Spring Data -JDBC para el desarrollo de aplicaciones con arguitectura MVC Contenido programatico contenido cel curso estéorganizado en los siguientes meédulos IMédulo 1. Introduecin a Java Sesiones 12a "Médulo 2. Programacién oriantada por objeto: Sesiones 6 ala 10 IMédulo 3 ntrfas gia con Swing: Sesiones 12a 15. [Médula 4, Gases de datos relacionales con MySQU: Sesiones 16 la 20 IMédulo 5. Arqultectura MVC: Sesiones 21 ala 25, [A continuacén, se presentan los temas ycontenidos para cada una de las 25 sesiones wate, NOSE — > —_______________e étilo] Seibe Tere Coneride i Iroc nrc jo saan NetBeans, Tpos de dts Fijos deena ys Motion [7 Conconalesy funds Ts Sitch y unos Innoduccéna [= Estas de epeticin Fer, Wile, De Whle wa [e ‘Arey adeas de carats Operadores etrecadena edara6nymipltion dears; Go Foren Peparacn to Prepaacn to € gal Declan de cases MEtodos y arbues; tances ceacen y manpiladbn, Pasd de ments fncapslrieno ee lea Here porespedlzaddny genralzaddn, Polinofisna por manajeyherenciCases abaacas € nefaces (oeconesyprebasntriscon Knit rls, ash, reba wits on nit Tiarara cass dew, itor de sua, Diarra de dass compos apregpean,gereralandch, ae efi d atbutos 0 Preparcineto? Preparation eto 2 rn _ Tnvoducion 2 Shing, Diolo de ‘tefaces—medante’ Wrefranes — balarig eae rane y Pane opiates generals Layout = te cones custrosce dog, elec, cams ses de eo, et leas (Conaonetes UL Boones cuss edu, se 0s eas de eto, Inet grea | © Naeode evetas Gapturade eventos Utes cone Tie Inet rica usando Netbeans ise deiner ric utendo Drag & rp Netbeans 7 elerosemana3 Preparation to3 % Inradcin astaves deta raion | Iteduecin 8 earl, 2 Relacnaes vs NSQL ntalcn MYO stow | Meloy modo ean Moca: Dagrara f/f, Nala etacna aes eda Vg roduin aL Pare real ehminacio, modcacidn alas pibake rosin a SOL-Parte ean eimai, modcacién deta conmpat [2 Invoduin a sa Pate? (RUD const simples-SOL 7 Prepac eto | Preparasn eto i prqutecura ve Arqutectura de software Patrén NVC; sparc de esponaiidaes VON Ga NvCcon ping Data D8C- Pate Framewoik de dsar Seng Boot aaa, Cone con MySQL tos wautecura |? MvCcon Spins D8C- Pate Desrale dela sta yl eanrldor aan pcan MVC mic 7 Prepac eto 5 Parte Preparation eto 7 Preparation eto 5 Parte? Preparation eto Metodologia Clase Magistrate! docente hard induccién alos temas, desarrolard ejemplos y ejercicios complementarios para los estudiantes sobre los temas expuestos. Recursos en plataforma: el estudiante complementaré la informacién vista en clase, orienténdola hacia el desarrollo de ejercicios en Java disponibles en la plataforma ‘Mastertech y material complementario como: videos, documentos yeferciios resueltos, Desarrollo de tutorias: el estudiante tendré a su disposicién tutores que resolver las ddudas en sesiones sincrénicas; estas tutorias se enfocan en el desarrollo de ejemplos y ejerccios que ayuden a afianzar los conceptos vistos en clases magistrales. Desarrollo de retos: cada médulo estaré acompatiado por un reto dsefiado para probar las habilidades adquiridasalolargo del ciclo. Estos retos se desarrollarin de forma incremental de acuerdo alos contenidos vistos en cada médulo. Actividades de aprendizaje 50 horas de sesiones sincrénicas acompafiadas por un formador especfico, cada sesién de {os horas de duracion Las tematicas asociadas a cada una de las sesiones se presentaron la seccién contenido programético. 120 horas de trabajo independiente de programacion entre las cuales podran solicitar el acompafamiento de un tutor especitico, realizar ejerccios propuestos extra clase yavanzar en el desarrollo de los retos pedagdsicos propuestos. Evaluacion Ls evaluacién de! ciclo 2: programacién bésica en Java corresponde a la evaluacién de los cinco (5) retos académicas y ala evaluacién de! curso de inglés Las evaluaciones se hacen en la escala de 0.0 al 5.0, donde cero (0.0) es la minima nota y cinco (5.0) la maxima nota, la nota minima aprobatoria del ciclo es de tres (3.0), La distribucién del porcentaje de la nota final se hara de la siguiente manera: Reto 1: 10% Reto 2: 10% Reto 3: 20% ‘Ez #Mision TIC 2022 Reto 4: 20% Reto 5: 20% Inglés: 1036 Curso habilidades personales: 10% Recursos LMS Mastertech Es una plataforma LMS (Learning Management System, sistema de gestién de aprendizale) {ue oftece cursos con contenids actualzads, construidos por expertos y certiicados por la Universidad Sergio Arboleda en convenio con lideres de cada sector. La plataforma ofrece cursos 10086 virtuales, de manera que el estudiante pueda ira su ritmo y siempre contard con el apoyo de toda la comunidad 0 de expertos (Formadores y tutores) para apoyar el proceso y asegurar que los estudiantes logren sus objetivos de aprendizaje, Referencias Bibliograficas Head First Java, 2" Eltion sien K, Bates, 8 (2013). Head first java. OReilly Mesa, Ine Clean code: a handbook of agile software craftsmanship. Martin, R (2008). Clean code: a handbook of ale software craftsmanship, Pearson Education, Software Engin ring Sommerville | (2026), Software Engineering GE, Pearson Australia Py Limited Bases de datos: disefo, implementacién y administracién Coronel, C., Merts, 5, & Reb, P (2011). 8ases de dates: diseRo,implementacion y adminstracién, Cengage Learning Etores LUML@ classroom: An introduction to object-oriented mod Seidl, M., Schole, M., Huemer, C8 Kappel, 6 (2015). UMLE classroom: An introduction to object: vented modeling, Springer Plataforma MasterTech Curso lava para todos. Enlace: ttps://mastertech.usergioarboleda.edu.co/ ‘Mision SEE. T1C2022—— ao» #Mision TIC 2022 Retos académicos propuestos para el ciclo No.2 Dentro de a propuesta curricular Gel ciclo académico se cantemplé el desarrollo de 5 retos de programacién que cuentan on un contesto real, Todos los rates estén enmarcados dentro de la rmetodologia de aprencizje basado en proyectos. Debido a esto los que los retos 2,3, 4y S harén referencia # una misme problemstcs EI objetivo es en cada reo abordar uno de les componentes {el patron arquitecténico MVC deforma independiente, Oe esta forma, en el eto 2v3se enfocarin fen el desarala la légiea de negocio 2 través de un paradigms de programacion orientado por objetes. El reto 4 abordard el diseio e implementacién de une base datos relacional para la aplcacén, Finalmente, e eto, integraé todos los componentes en una Unica apliccién con una arquitectura MVC, A continusién, se presentan uns desripcin de os contexts para cad uno de los retos Reto No.1 indice de masa corporal (IMC) objetivo de este reto es evaluar el uso bisico de java: entrada y salida de datos, operadores aritméticos, condcionales estructuras de repeticin, mango de funciones yarregos de datos ste reto busca evaluarel domino de las estructura bésicas de programecién en Jove Reto 1. indice de masa corporal (IMC) ‘Andrés, unestudiante de primer semestre de Mecleina quiere caiculr el rivel de riesgo que tiene sus femllares de sufrir problemas del corea6n. Una persona puede estar en rlesgo de sufrr estas enfermedades dependiendo de su edad y sv indice de masa corporal (IMC). La siguiente tabla presenta los diferentes niveles de riesgo Edad < 45 Edad 245 wie 22 Bajo Medio ac = 22 Medio Ate Para caleular el indice de masa corporal (IMC) caleulamos el cociente entre el peso del indviduo en los yelcuadraco de su altura en metros. Debido 2 que se requiere analzar la informacion de varias personas, la mejor aternatva es construe un programa que realce los caeulos de forma automstica. Camo le pide ayuda @ $0 herman que es ingeniera de software y entre ambos logran definir los requerimiantos del programa utiiando ls siguientes historias de usuario, BW misidn SEE. T1C2022—— ao» #Mision TIC 2022 Wtoria de wsuaiol | Tuo: Tngresar valores de mass, altura y ro. edad COMO: | Usuario Descrincién CQUIERO; | ingresar los valores de masa, ara yedad PARA: | Poder cacular elIMC ‘riterios de] + Losvalores de masa deben ingresarve en Klogrames ‘aceptacién Los valores de altura deben ingresarse en nieeos 4 Los valores de edad daben ingresarse en aos. Los valores de peso, altura y ead deben ingresase en una sola linea separada por un espacio Wisteria de usuar Tila: ne 2 Caleular IMC yel nivel de riesgo COMO: | Usuario ‘QUIERO: | Poder calcula el IC de los valores de peso, altura y edad eee disponibies PARA: | Poder conocer el riesgo de una persona “riterios de) + ELING debe imprimirse con un aimero devinal ‘aceptacién Los valores de masa permitidosestin entre OY 150 Los valores de altura permitidos estin etre 0.1 y2.$ Los valores de aos permitidosestn entre Oy 110 Si algore de los valores est fuere del rango permitido se debe fmprimir un mensaje de er, Usted es contratado por camilo para consrur un programa en Java que cumpla as funcionalidades requeridse par Camilo tenienda como referencia las historae de uruario presentadas praviamente, Entrada ‘Cada caso de prucba estardYormado por una lnea Tormada por 3 valores separados por un espacio: la masa dela persone en klogramos La akura de la persona en metros La edad de a persona en os Salida El programa morimirs una lines con os valores 1 EIMCealeulade con un ndmera dacioal 1 Elnivel de reego actual En caso de ingresar algin valor de masa, altura o edad fuera de los rangos permitdes se debe imprimir a palabra “ERROR ‘Mision aku. T1C2022—— 2s] o> —____________________» S SEE. T1C2022—— ao» Reto No.2. Sistema de inventario para la cafeteria de la Sergio Arboleda Reto 2. Una aplicacién para la cafeteria de la Sergio Arboleda na de las cafeterias de a Sergio Arboleda vende frutas, ulcesy algunas bebidas. Con el aropésto «de mejorar el control sobre las ventas y el inventario dela tienda, la universidad decide constuir luna apleacidn en Java que le permita almacena a informacion de los productos y cleular algunas estadsticas sobre einventaro. Con el propésitodetener una especficacin més cara sobrelo que deberiahacer la aplicacin el grinistrador dela ienda canctruyen el siguiente ciagrama de cazos de uso yc C=) Usted es contrtade por la universidad para desarrllar el sistema de inventario con las funcionalidades presentadas en el diagrama de casos de uso en el lenguaje de programaci Java, Debido a que esta es una etapa iia en el desaroo de la aplcacion, la base de datos sera representada temporalmente mediante un MashiMop lamado 33 ue tended por lave el ©5531 del producto por valor una istancia de Ia clase Poco que tend como atributos ° La Table 1 presenta ls productos disponibles al fecha enla cafeteria. ‘eédigo| nombre | precio |inventario ‘Mision #Mision TIC 2022 #Mision TIC 2022 3000. 2300.0 [15 2700.0] 33 3300.0 [5 Tonates [2100.0 | 42 4100.0 | 3 7 #500.0 | 40 7 500.0] 8 5 3500.0 [80 T5000.0 [10 Tabla I: Productos dsponiblesenla end Nota: observe que los nombres de ls productos no Hlevan tildes. Esto se hace a propésite y tiene aque ver con el proceso de caficacion automética, Evite coloar tides en los nombres de los productos en su coco. ‘Su mision es implerentar todas las funcionalidades presentadas en el dagrama de casos de uso, Para esto es necesario construir 3 métodes que representen las operaciones de agzezar~ = y eliminar. Estas funciones deben mplementarse en una dase con el nombre caProduct Adicionalmente, el duefo del aimacén desea generar un informe que contenga el valor total del Inventaio 3 a fecha, Este se obtene multipicando el precio de cada producto por el inventario disponible y luego sumando todos os resultados. Este método debe lamarse genezazIngozm ce implementarse ena clase Ba2eDatosProductos. Por elemplo, al generar el informe con los datos disponibles ena Tabla 1 obtendriamos: ‘© Valor del inventatio: 1014100.0 ara evtarerrores 3 Is hora de agregar, actualizary borrar producto, se debe impementar un método llamado vari fi castici stencia que permitrécomprobersiel producto existe 0n0 en la base de datos. ste método debe implementarse ena clase Ba seuatosProduc: ‘Cada uno de Tos ass de procba estaré compuesto por dos linea. * La primera linen estad formada por una cadena de texto que identifica la operacibn a realizar. En este caso, las operaciones vilidas son: © ACTUALIZAR 2 BORRAR ie, NEB — ape Entrada #Mision TIC 2022 > AGREGAR + Lasegunda linea estar formada por 4 valores » nombre, precio, inventario) que representan el producto sobre el cual se quiere realizar la operacion, En el caso de la operacion ACTUALIZAR la segunda linea debe contener el eddigo y los nuevos valores del prodveto + En el caso de la operacidn BORRAR se deben espevificar todos los aiributos del producto a eliminar {a sala estaré representada por una Unica line formada por un Gnico valor: © Valor del inventario + Este valor debe imprimitse después de realizar las operaciones solicitadas en la entrada de datos, ' El valor del inventario debe imprimirse con vn nimera decimal + En caso de solicitar ACIUALIZAR 0 BORRAR un producto que no existe (es decir, que el codigo del producto no se encuentra en Ia base de datos), se debe imprimir “ERROR” + Encaso de solcitar AGREGAR um producto cuyo cidigo ya existe en la base de datos se debe imprimir “ERROR” Salida Reto No.3. Estadisticas para nuestra tienda Reto 3: Estadisticas para nuestra tienda En este reto continuaremos trabajando con la apicaién de inventario para la tenda de la Sergio Jrboleda desarrollada en el Reto 2. A continuacén, se presenta nuevamente al contexto del problema, ‘na de las cafeterias de a Sergio Arboleda vende futas, ulcesv algunas bebidas. Con el pronosto «de mejorar el control sobre las ventas y el inventaria de la tienda. La universdad decide construir tuna aplieacén en Java que le permita almacena la informacién de los productos y caleular algunas estadsticas sobre el inventario, La Tabla 1 presenta los productos csponioles a la fecha en el almacén. eédigo Precio | inventario 2300. 2700. Temate= | 2100.0 @ Fresas [4100.0 7 Helade 7500.0 t Galletas [500-0 [8 BW misidn SEE. T1C2022—— ao» #Mision TIC 2022 T= TO Ghacalates | 3500. Tai T5000 Tabla I: Productos disponibles ena lenda Nota: observe que los nombres de los productos no levan tildes. Esto se hace a propésitoy tiene que ver con al proceso de califcacién automética. Evite colocar tides en los nombres de los productos en su cédige. Debido a alunos cambios en el modelo de negocio, la gerenciasolita mosificareinforme {enerado con la informacion de los productas. En este cas, se requiere actualizar la funcion nose desarallads en el eto anterior nara que muestre ‘+ Elnombre de producto con el precio mayor ‘+ Elnombre del producto con el precio menar ‘+ Elpromedio de los precios des productos or ejemplo, al generar el informe con las datos disponibles ena Tabla 1 obtendriamos: © Producto preciomayor: Jamon. '¢ Producto preciomenor: Ga + Promediode precios: 4900.0 Para evtarerrores ala hora de agregar, actuaizary borrar productos, se debe implementar un métoco llamado ver: & que permitirécomprobar sel praduct enste ono en Ia base de datos. Este método debe implementarse ena clase Ba sea tosPreductas ta Cai no de Tos casos de prueba evar compuesto por dos linea. "La primera linea estar formada por una cadena de texto que identifica li operacin a realizar. En este caso, las operaciones Vilidas so: 5 ACTUALIZAR 2 BORRAR 2 AGREGAR Entrada | + La segunda lines estar formada por 4 valores (cécigo, nombre, precio, inventario) que representan el producto sobre el cual se quiere realizar la operacion, + En el caso de [a operacion ACTUALIZAR la segunda linea debe contener el codigo y los nevas valores del proxiacto + Enel caso de la operacion BORRAR se deben espeeifiear todos los stributos del producto a eliminar TB salida estard representada por una dnica linea formada por tres valores separados por un espacio: (© Nombre del producto con el precio mayor Salida © Nombre del producto con el precio menor 2 Promedio de precios 1+ Estos 3 valores dehen imprimirse después de realizar las operaciones wana nto ne ‘Mision ee TIC 2022-239» —_________________e #Mision TIC 2022 + Los valoves numévicos deben imprimirse com un nlmero decimal + Eneaso de solictar ACTUALIZAR 0 BORRAR ua producto que no existe (es deci, que el edizo del producto no se encuentra ela base de datos), se debe imprimir “ERROR”. En caso de soliitar AGREGAR un prosducto cuyo eddigo ya existe en la base de datos se debe imprimir "ERROR™ Reto No.4. Consulta a nuestra base de datos Reto 4: Realizando consultas a nuestra base de datos En este reto continuaremos trabajando con el sistema de inventario para la tends de viveres desartollado en el Reto 2 y 3, Nuestro objetiva es realizar consults SQL @ una base datos que contiene la informacién de los productos disponibles en ls cafeteria, A continuacin, se presents ruevamente el contexto del problema, na de as cafetrias de a Sergio Arboleds vende frutae dulcesy algunas bebidas. Con el aropésto de mejorar el control sobre las ventas y el inventor de latin, la universidad decide constuir tuna aplicacén en Java que le permita almacena a informacion dels productos y cleular algunas estalsticas sobre elinventaro. En este momento la aplicaci tlene una base de datos que cuenta con una tabla llamada Products. Lainformacién disponible en la tabla se presenta acontinuscicn ‘Table: Productos eédigo precio |inventario z 2300.0 [15 3 2700. 3300.0 Z100- H00. 3500.0 [80 15000.0) 10 Tabla i: productes Cone finde vertical correcto funcionariento de a base de datos, usted debe construrconsultas SOL para obtener la siguiente informacién, (NOTA: Para este caso solo se ulizar consltas de tipo seLecT) 4 Obtener e! nombre y el nventario de os productos con un precio mayor oval #9000 en orden ascerdente por nombre BW. Msidn SEE. T1C2022—— ao» =a SEE. T1C2022—— ao» 2. Obtener el promedio de precios de todos los productos en la tabla. Utlice el alia "promedio” pars la reauestaobteni¢a 3. Obtener el nombre y el precio de todos os productos que comienzan con orden ascendente ocon ">" en 4. Obtener el numero total de productos cuyos precios estén entre 3000 y 10000. Utice el alias “total” para la respuesta abtenida '. Obtener valor total del inventri, Este valor se btiene multiplicando el precio de cada producto por el iventario disponible y luego sumando todos os resultados. Utliceel alls otal_inventaio” para la respuesta obtenida Reto No.5. Aplicaci6n MVC para nuestra tienda Reto 5: Sistema de inventario usando el patrén MVC y Spring Data JDBC En este reto continuaremos trabajando con e sistema de inventaro para latlenda desarrollado en el Reto2 yreto 3. Nuestro objetivo es lograrimplementar de forma completala apliacinutilzando ol patién MVC y el Framework Spring Data IDBC. A continuacién, se presenta nuevamente contento del problema, na de las cafeterias de a Sergio Arboleda vende futas, ulcesv algunas bebidas. Con el proposto de mejorar el control sobre las ventas y el iventaro de Is tienda, la universidad decide construir tuna aplieacén en Java que le permitaalmacena a informacién de los productos y caleular algunas estaisticas sobre el inventaro. Con el propésitodetener una especfcaciin m6s clara sobre le que . Este repesitorio nas permits utizar las funciones CRUD sin ‘singunaimplementacién sicional 4+ Emel Paquete controlador, declare una dase llamada ControladorPreducto, Esta case tend ‘como atrbuto una inetanca de RepositeroProduct. 1+ Ena case ControladorProductoimplemente los métodos CRUD para la tabla Productos y un rmétedo informe que obtenga el nombre del producto con el precio mayer; el nombre del producto con el precio menor; el promedio de precios de todos ls productos yelvalor total del Inventario# Io fecha. Este ultimo se abtiene multiplieando el precio de cada producto por el Inventario disponible y iuego sumando todos los resultados, 4+ Verfigue el correcta funcionamienta de ls métedos implementados Parte 3: Implementando la Vista con Swing Lego de implementar el medelo y el controlador con la ayuda de Spring Data JDBC, el duero del almacén le entrega el siguiente disefio de la iterfaz réfea (ver figura 2) Enel disero se inctuyen las ventanas emergentes que surgen como resutada de realizar algunas valdaciones. Esta interfaz la misma construida en roto 3, El eddigo debe alojarse en el paquete vict= declarado anteriormente (Esta interfaz es a misma desartollads en el eto 3) BW. Msidn aku. T1C2022—— 2s] o> —____________________» #Mision TIC 2022 frre Figura 1: Diseho ini intrfa gratia or ejemplo, sse trata de agregar un producto y existe algun campo vacio, se deberd generar una ventana emergente que informe que tedos les campos son obiigatries. Cundo se agrega, se borra 0 2e actualiza un producto se debe generar una ventana informando que el proceso fue estore. A presionar el botdn “Actualizar Producto” se generaré una ventana emergente con los ‘campos a actuallarv presentando la Informacion del producto que se encuentra seleclonado en la tabla. Cada que se realice una operacion sobre los datos de la tabla, esta debe actualzarse rnuevamente de manera automstica Por otro lado, el botén llamado "inform " genera una ventana emergente con los datos obtenidos al evaluar el método generar informe. Para cumoli con el patién MVC debemos atantzar que los eventos sean capturedos or el controlador yno drectamente por la vista Finalmente, pra faitar el desarollo de ia aplcacién, el duefo del almacén le entrega una sta de vetificaion con todas las uneionaldadse que se ezpera desarclar. Comprobando las funcionalidades Descripcién de 1a Funcionalidad Compietado Tear Base de datos en WYSGE T Bia 1 en a Base de 7 [impienentar controlador Teoaucts en Teplenentar controlador ebreducto an €1 ‘Mision —_$________________ #Mision TIC 2022 del programa (Entradas 9 un algortmo) o en u defecto parimetrosdefinides una func, También, el motor de pruebas de MasterTech soportalaevaluacin de diferentes funciones con sus respectivespardmetrasen un tiico rete. ¥ de acuerdo, ala definicién de plantas de cdg se puede evalua princpios de Programacién Orientada a objeto. 5. Para el desarrollo del reto. MasterTech presenta al estudiante un editor de céigo fuente. Dicho editor es una versién simplifeada del editor Monaco provsto por Microsoft (bitpsdllthub com/microsot/manace-editer 6. Para cada reto et estudiante debe ("un archive de soporte car el cdg Fuente en el editor, as mismo debe Enla siguiente figura se presenta la interfa rdfica que visualza un estudante a ahora de a solucion de un cet. Tews ‘Mision sie. T1C2022—— 2a] o> —___________________e #Mision TIC 2022 7. El motor de pruebas eal I evaluacion y muestra los resultados, indicando ls Fuentes de error. Si a solveién de con todos los casos de prusbas se presenta los resultados yl califieair Misi SEE (ra #Mision TIC 2022 8. Enaso de que se tengan erores de sintai se presentan la fuentes de error 9. Adicionalmente, sa solucén es incorrecta se le especiia ls resultados errados, “Misidn ca SEER, — TIC 2022 —— 30> —_$________________ #Mision TIC 2022 Definide lo anterior y con el fin de hacer el proceso de integracién con Jobe Engine desde IMasterTech se construyé una librera de integracién alineado con los fundamentos del motor Especticamente: 1 Para cada retoycatos de prueba, el motor de plants de MasterTech fusionala respuesta enviads por el estudiante con una plantila de pregunta definida que incuye a invocacisn de los casos de prueba, El resultado es un programa ejecutable 2. El programa ejecutabe se envis a encode Jobe Server (Un servicio desplegado sobre la infraestructura de Google Cloud conf posibldad de escalar horizontalmente| 3. Lasalida de eleccion de programa electable es tomada y comparada con os resultados esperads en cada caso de prueba. Tomando en consideracion criterios de coincidencia 4. Apartirde los resultados obtenidcs se realza el proceso de calficacié. 5. Se presenta la respuesta al estudiante indicando los pardmetros, la salida esperada y la salida obtenida,Indicando con color verde los casos enitoros y con rojo os cates no aprobades. Téenicamente, en MesterTech cado reto se parametrze tomando en consideracién los siguientes, elementos BW. sMidn REEL. T1C2022 om» #Mision TIC 2022 Parametrizacion del Reto cada Reto se puede adapta al método de evaluacion (tipo de entradas input ofuncion y especificar las pruebas unitarias con su respectivs solucon, Pardmetros: 1 Enunclado: Enunciado del ret. 1 Lenguaje: Lenguaje de programacion sobre el cual debe ser resueltoy evaluada el reo, 1 Puntaje Requeride: Nimero de 1 3 100, deseribe el puntaje minimo para dar como solucionede elreto © Plantila: Pantila del elercicio, se usara para evaluar el reto, reemplazando *eoadignestudiante_" por la slucisn del ertuciante y"_eodigatest_” porlae rucbas unitavias requeridas ‘© ExlsteFuncion: Boolean que describe sen la solucén del estudlante debe existir una funcicn principal, se vers reflejada en Ia forma an la que se evan la solucn, de cer false se crea una funcién interna para evalua el cédigo del estudiante, 1 funciones: el reto puede contenercstintesfunciones a evaluar. Debeexistr por lo menas 1. Cad funclén tiene sus propos pardmetrosy casos de prueba, (© expresién: nombre que toma Funeién (© ponderacién: nimero de 1 2 100, describe el porcentaje de importancis y ‘evaluacion que se le da ala funcién, nota a suma de las ponderaciones del total dels funciones debe dar 200, © orden: numero, orden de evaluacién, (© retoma: boolesno, se usa para valdar sila funcién retorna la respuesta, o la imorime durante su proceso, se vers reflejado en Ia forma en fa que se evalia la solucién, (© easosPrueba: se pueden tener multiples casos de prueba, pertenecerén una unica funcisn, cada caso de prueba contiene sus props parémetros ‘= salidagsperada: valor de Ia solucion del cazo de prueba, lo salids de la solucién deberd ser igual a este pardmett. ‘orden: numero, orden de evluacion Visible: boolean, se usar para mostrar al estudante, de ser verdadero, los resultades del caso de prueba, en el caso contrarian se les mostraré el resultago. 1» parametros: cada caso de prueba puede tener multiples parsmetros de ‘entrada, contiene sus proplos pardmetros de configuracén, ‘© nombre: romre del parsmetro, ‘© typeParametro: tipo ce parimetro'strng, ‘integer, oa) “+ typeParametrofntrada: tio de entrada (input, ‘paramFuncion) ‘¢ VelorEntrada: valor de entrada ie, NEB — ape #Mision TIC 2022 Deteccién de Copia Con elf de realizar las tareas de valldacion de similtud de c6dlgo se realz6 a integracién con la herramienta soe (Copy/paste detector for programming source code) disponible en a ireccién electronica: bitos/ethub, com /kucherenko/iscpd ‘sepa permite encontrar bloques duplicados en multiples documentos, incuyendo programas construidos on diferentes lenguajes de programacién tales coma python, ja, et. Jsepd permite parte de un ands de cédigo detectarsimlitudes, a partir de la configuracién del ‘minim nimere de token, misimo nlmero de tokens, minimo nero de lineas y nimero maximo rimero de lines 4 Min Tokens: Tamafe de bloque minim de céigo en tokens a cansderar nara considerar copia de cio, ‘© Min Lines: tamaho minima de ineas para considera copia de cdo. Eesquema de funcionamiento desde MasterTech se describe acontinuacién 1 Los usuarios al solctar Ia valéacion de cédgo, MasterTech almacena fa informacion de codigo fuente en la base de datos 2. Guanda se cerreun eto, el dacenteinvoca la valdacin de copia de cdo, 3,_ EI Motor de validacion toma los codigo fuente de ls estudlantes para cada curso y hace la verifcacién de acuerdo alos parsmetrs configurades. 4. Jscpd crea unarregio (clones) que contienen la detecciéndesimiltudes en desdocumentos {stintes, duplication y dunlication®, con el fragmento copiad, ines de nici fn 5. Un servicio toma la sada entrega por Jscpd y almacena la informacion para que posteriorment, ol estudlante pueda consulta Si clestulante ne he realizado copia. MasterTech presenta l siguiente informacién (Mision REEL. T1C2022 om» #Mision TIC 2022 Indiando que no se ha presentado copia ene ebdgo entregado. Sin embargo, sielestudante ha realizado copia. Se present la informacién detallsda de la copia relizads, Indicando c6dgo fuente, poscin de copa (lines, columns), BW Méidn 5 aku. T1C2022—— 2s] o> —____________________» ‘Ez #Mision TIC 2022 Esta informacién también estaré disponible para que el dacente pueda tomar las medidas Pertinentes de acuerdo con ls reas de juego definidas desde el inicio del curso. Inspeccién semiautomatica de cédigo Con el fin de relia ls tareas de validacion de buenas précticas de java se reali la integracion con la herramienta “PMD Source Code Analyzer Project” disponible en la drecién electronica: https://pmd github fo/latest/index html PMD permite analizar el cédigo fuente estitico,principalmente de engusiejava y Apex pero admite seis lenguajes mis, encontrando malas précticas de progremacién comunes; PMO presenta comprobacionesintegradas (reas) bien documentadas y flesible para configura, elimina y agregar nuevas regas de veificacin, MD es configurable através de un archivo xml, en el cual se especifican el conjunto de reglas de buenas que van ahacer parte dela validacien de un dacumento, come par ejemplo Todas las especiicaciones de reglas pueden ser encontradas en la direccén electric hiepsi/pmi github oatestpmd_cules jave_bestractices.hun BW. Msidn SEE. T1C2022—— ao» #Mision TIC 2022 Posterior ala ejecucién deel servicio de valdacién podemes indicate yexplical al estudiante las buenas practeas que deben ser mejor: ‘ egintine”: 3.0, vegincolunn": 24.0, erdtine": 28.0, erdcolumn”: 1.8, descrsption": “ALL nethocs are static. Coneider using a utility class instexd. & sternatively, you could aad a pravate constructor or make the class abstract to silence t has warning “rule: “useueaistyctass", ruleset": “Design, priority": 3.0, extarralinfouel: *https://pnd.github-to/pnd 6.32.0/nd_rules_java_design.ntalruseuttlityelass" , Elesquema de funcionamiento desde MasterTech se describe acontinuacién 1. Los usuarios al soicitar la validaci de e6¢igo, MasterTech almacena la informacion de dig fuente en La base de datos. 2. ELMotor de vaidacionrealiza el proceso de verificacion de prucbas unitaras. 53. EL Motor e vaidacin consume el serviio de veificacoa de buenas prctcas (ava) &. guacda codigo a analizat en nuevo documento ,_jecurarandlisis PMD sobre el documento ©. elimingr documento creado 44 ratora resultado sobre el snlise 4, ELMotor de validacién guard I informaei6n que retorna el servicio para que posterionnente, Lestciante pueda constr, Anexos Anexo No.1: Presentacones soporte del Cito No.2 En este anexo se adjuntan las presentaciones de soporte para cada una dela sesionessincrénicas ‘Anexo No.2: itécora eerticios adiconales Ciclo No.2 En este anexo se incluyen ejericos adiconales extra-case que el estudiante pods realzar adiconales 2 los retos académicos y que permiten afiancar sus habildades y competencias en programacién, AAnexo No.3: Recursos adiconales de cancuita en el pracesa de formacién Ciclo No.2 En este anexo se incluyen los cecursos adicionales de consulta para el proceso de desorallo. curricular del ila No.2 a

You might also like