Herramientas Personales
Usted está aquí: Inicio Cursos PUCV OCW Arquitectura de Sistemas de Software Programa

Programa

Acciones de Documento

Esta asignatura aborda principios, herramientas y técnicas utilizadas en arquitecturas de software que involucran lenguajes orientado a objetos, diseño de sistemas de bases de datos relacionales, e implementación de aplicaciones cliente/servidor en ambiente Web.

DESCRIPCIÓN DEL CURSO

 Esta asignatura aborda principios, herramientas y técnicas utilizadas en arquitecturas de software que involucran lenguajes orientado a objetos, diseño de sistemas de bases de datos relacionales, e implementación de aplicaciones cliente/servidor en ambiente Web. 

La asignatura se realiza siguiendo la metodología de Aprendizaje Basado en Proyectos (ABP). Esto contribuye, además del logro de los aprendizajes disciplinares, al fortalecimiento de habilidades de autoaprendizaje, de liderazgo y trabajo en equipos, y de comunicación.

Como prerrequisito para la asignatura se requiere que el estudiante sepa implementar programas orientados a objetos en Java.

Objetivos

OBJETIVO  GENERAL 

El objetivo de la asignatura es lograr que el alumno sea capaz de diseñar e implementar arquitecturas sencillas de sistemas que involucren aplicaciones stand-alone desarrolladas en lenguaje de programación orientado a objetos, sistemas de administración de bases de datos, y aplicaciones cliente/servidor en ambiente Web.

Asimismo, la asignatura contribuye a la formación de las competencias de autoaprendizaje, liderazgo y trabajo en equipo, y comunicación.   

OBJETIVOS ESPECÍFICOS

  • En materia disciplinar, los alumnos aprenderán a:
  • Interpretar y construir modelos de diseño expresados como diagramas de clases, y diagramas de objetos de UML (Unified Modeling Language).
  • Aplicar principios de diseño orientado a objetos en el diseño de arquitecturas de software. 
  • Implementar en un lenguaje de programación orientado a objetos estructuras de datos dinámicas más comunes empleadas para la manipulación de datos en memoria principal.
  • Diseñar e implementar bases de datos relacionales y manipularlas mediante SQL (Structured Query Language).
  • Desarrollar aplicaciones simples de tres capas, en ambiente Web, programadas en PHP.

En materia de desarrollo de competencias actitudinales, se espera que la asignatura contribuya a desarrollar en los estudiantes:

  • La habilidad de autoaprendizaje.
  • La habilidad de liderar y trabajar en equipos.
  • La habilidad de comunicar.

CONTENIDOS

Módulo 1: Programación Orientada a Objetos y estructuras dinámicas

En este módulo los estudiantes aprenden a representar modelos de software orientados a objetos mediante diagramas de clases. También aprenden a aplicar principios de programación orientada a objetos, entre los que se cuentan el principio de encapsulación, el principio de sustitución  de Liskov y el principio abierto-cerrado. En cuanto a estructuras de datos, profundizan en la gestión de estructuras dinámicas para operaciones de datos en RAM. 

Módulo 2: Sistemas de bases de datos relacionales

En este módulo los estudiantes aprenden a diseñar e implementar bases de datos relacionales expresadas en tercera forma normal. También aprenden SQL (Structured Query Language) como lenguaje de definición y de manipulación de datos) y lo aplican en la interacción con una aplicación en Java.

Módulo 3: Aplicaciones sobre Web

En este módulo los estudiantes aprenden a desarrollar aplicaciones para Web, implementadas en PHP con interacción con bases de datos relacionales mediante SQL.

METODOLOGÍAS

  • La asignatura utiliza la metodología de Aprendizaje Basado en Proyectos (ABP), esto es, el docente asigna a los alumnos, al inicio del curso, un proyecto que debe ser abordado en grupos de 3 ó 4 personas. El proyecto consiste en la implementación de un producto de software compuesto por tres subsistemas: (1) un subsistema en Java; (2) un subsistema de base de datos relacional; y (3) un subsistema en Web desarrollado en PHP.
  • Bajo la metodología ABP, la necesidad de atender los requerimientos planteados en el proyecto, induce a los estudiantes el logro, por cuenta propia, de los aprendizajes disciplinares. Lo anterior, unido a La modalidad de trabajo grupal, contribuye además al desarrollo de las competencias actitudinales descritas en los objetivos. La figura 1 resume las relaciones entre objetivos, proyecto y competencias. 

 

Figura 1: Metodología de la asignatura

 

El proyecto comienza con la entrega a los estudiantes del documento “Bases del Proyecto Semestral”. A partir de lo indicado en el referido documento, los estudiantes deben conformar grupos de desarrollo, e inscribirse presentando una propuesta de trabajo. 

 Luego, el proyecto se divide en tres etapas principales, coincidentes con los subsistemas a desarrollar. Al final de cada etapa, cada grupo debe producir un entregable que es evaluado. El desarrollo de cada etapa requiere la aplicación de conocimientos asociados a cada uno de los grandes módulos de aprendizaje disciplinar del curso. 

 De esta forma, las etapas del proyecto son:

  •  Etapa 0: Formulación del proyecto: En esta etapa se constituirán los grupos de trabajo, los que deberán formular su propuesta de desarrollo y presentarla mediante el formulario de presentación de “Propuesta de Participación”(Tiempo: 2 semanas)
  •  Etapa 1: Desarrollo subsistema en Java, en versión preliminar: en esta etapa se desarrolla el subsistema en Java cuyas salidas se generarán como archivos de texto o datos (Tiempo: 4 semanas)
  • Etapa 2: Desarrollo de subsistema de bases de datos: en esta etapa se modela e implementa la base de datos relacional que permite almacenar los datos con los que operan los otros dos subsistemas. La base de datos se implementará sobre el DBMS MySQL. En esta etapa adapta el subsistema en Java para actuar integrado al DBMS (Tiempo: 4 semanas).
  •  Etapa 3: Desarrollo de subsistema Web: en esta etapa se diseña e implementa el subsistema que operará sobre plataforma Web, interconectado con el DBMS (Tiempo: 4 semanas).

Durante el semestre se realiza un conjunto muy limitado de sesiones expositivas por parte del docente, al inicio de cada módulo. Durante el desarrollo de cada módulo, los grupos de trabajo deben sostener reuniones semanales con el docente y/o los ayudantes de la asignatura, a objeto de monitorear el avance del proyecto.

 Al final de cada etapa los estudiantes deben rendir una evaluación individual que dé cuenta de los aprendizajes individuales logrados.

 

BIBLIOGRAFÍA

  • Batini, C., Ceri S. & Navathe S. Diseño conceptual de bases de datos: un enfoque de entidades-interrelaciones. Addison-Wesley Iberoamericana, 1994.
  • Boss S. & Krauss J. Reinventing Project-Based Learning, International Society for Technology in Education. Oregon, 2007.
  • Collins W. Data Structures and the Java Collections Framework, John Wiley and Sons, 2011.
  • Date C. An Introduction to Database Systems. Addison-Wesley, 2003. 
  • Lewis J. & Chase J. Estructuras de datos con Java: Diseño de estructuras y algoritmos, Segunda Edición. Pearson Educación. Madrid, 2006.
  • Forbes A. The Joy of PHP: A Beginner's Guide to Programming Interactive Web Applications with PHP and mySQL, Alan Forbes, 2013.
  • Gamma E., Helm R., Johnson R & Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software, Pearson Education, Indianapolis 2005.
  • George J., Batra D., Valacich J. & Hoffer J. Object Oriented Systems Analysis and Design, Second Edition, Pearson Education. Upper Saddle River,  2007
  • Gomaa H. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, Cambridge University Press, 2011
  • Martin R. UML para Programadores Java. Pearson Educación Madrid 2004.
  • Markham, T. Project Based Learning: design and coaching guide. HeartIQ Press, California, 2012.
  • Metsker S. Design Patterns Java Workbook. Pearson Education, Indianapolis, 2002.
  • Nixon R. Learning PHP, MySQL, JavaScript, and CSS: A Step-by-Step Guide to Creating Dynamic Websites. O’Reilly Media, 2012.
  • Shalloway A. & Trott J. Design Patterns Explained: A new perspective on Object-Oriented Design, Pearson Education, Boston, 2005.
  • Podeswa H. UML For The IT Business Analyst. Cengage Learning, Boston 2010.

 

WEBLIOGRAFÍA

  •  Example Depot - Useful Code Samples: http://exampledepot.8waytrips.com
  •  W3schools.com: http://www.w3schools.com
  •  Object Oriented Design Ooodesign.com: http://www.oodesign.com
  •  Sitio personal del docente:

 http://eii.pucv.cl/pers/guidi/cursos/estructuras.htm

 

Copyright 2009, Autores y colaboradores. Reconocer autoría/Citar obra. Programa. (2014, April 14). Retrieved July 25, 2017, from PUCV OPENCOURSEWARE Web site: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-de-software/programa. Todos los derechos reservados