TC3003
Diseño y arquitectura de software Software Design and Architecture
CIP: 110101  Ciencias Computacionales/de Información   CL-L-U-CA-UDC:  3-2-8-3-5.8       

Disciplina asociada:  

Tecnologías Computacionales

Escuela:  

Ingeniería y Ciencias

Departamento Académico:   

Computación

Programas académicos:   

Requisitos:  

(Haber Cursado TC2004 o Haber Cursado SI00854)

Equivalencia:  

CB00894

Intención del curso en el contexto general del plan de estudios:  

Es un curso de nivel avanzado en el campo de estudio del diseño y la arquitectura de software, por lo que considera que los estudiantes ya conocen el ciclo de desarrollo de software, y tienen experiencia en Java y los conceptos fundamentales de la ingeniería de software. Como producto del aprendizaje de este curso se espera que los estudiantes a partir de una necesidad o problema identificado a ser resuelto por medio de un sistema, apliquen los conceptos de diseño y arquitectura, para la construcción exitosa del proyecto. Como resultado de aprendizaje en este curso el alumno identificará y solucionará problemas, tomará decisiones, analizará problemas, definirá objetos para un proyecto considerando restricciones, analizar y sintetizar información y analizar las implicaciones éticas, sociales, legales y económicas en la solución de un problema.

Objetivo general de la Unidad de Formación:  

Al concluir el curso, el estudiante será capaz de: diseñar y construir sistemas de software de alta calidad; aplicar técnicas de refactorización para mejorar la calidad de código existente; diseñar, utilizar y aplicar de manera adecuada frameworks y patrones de software para resolver problemas recurrentes en la arquitectura, diseño y construcción de software; utilizar programación orientada a aspectos (POA) como mecanismo para lograr una adecuada separación de responsabilidades en sistemas de software no triviales.

Técnica didáctica sugerida:  

Aprendizaje orientado a proyectos

Bibliografía sugerida:  

LIBROS DE TEXTO:
* Gorton, Ian., Essential software architecture / Ian Gorton., Germany, West : Berlin ; New York : Springer, c2006., c2006., eng,  3540287132 (encuadernado), 9783540287131 (encuadernado)
* Jazayeri, Mehdi, Software architecture for product families : principles and practice / Mehdi Jazayeri, Alexander Ran, Frank van der Linden, Reading, MA : Addison-Wesley, 2000, eng,  201699672
* Kuchana, Partha., Software architecture design patterns in Java / Partha Kuchana., Florida : Boca Raton, FL : Auerbach Publications, 2004., 2004, eng,  0849321425 (alk. paper)
* Bass, Len., Software architecture in practice / Len Bass, Paul Clements, Rick Kazman., 2nd ed., Massachusetts : Boston : México: Addison-Wesley, 2003., 2002, eng,  0321154959 (papel alcalino)

LIBROS DE CONSULTA:
* Braude, Eric J., Software design : from programming to architecture / Eric J. Braude., New Jersey : Hoboken, NJ : J. Wiley, c2004., eng,  0471204595 (cloth)
* Shalloway, Alan., Design patterns explained : a new perspective on object-oriented design / Alan Shalloway, James R. Trott., 2nd ed., Massachusetts : Boston, MA : Addison-Wesley, 2005., 2003, eng,  0321247140
* Wake, William C., 1960-, Refactoring workbook / William C. Wake., Massachusetts : Boston, MA : Addison-Wesley Professional, 2004., 2005., eng,  0321109295 (pbk.)
* Szyperski, Clemens., Component software : beyond object-oriented programming, 2nd ed., England : London ; Boston, MA : Addison-Wesley, 1999, eng,  0201745720 (papel alcalino)
* Documenting software architectures : views and beyond / Paul Clements ... [et al]., Massachusetts : Boston : Addison-Wesley, c2003., 2000, eng,  0201703726
* , Design patterns : elements of reusable object-oriented software / Erich Gamma ... [et al.].,  , Reading, MA : Addison-Wesley, 1995., c2003.,  ,  0201633612
* Bloch, Joshua, Effective Java : programming language guide / Joshua Bloch ; [foreword by Guy Steele], Massachusetts : Boston : Addison-Wesley, c2001, (printing 2004), eng,  0201310058
* Alur, Deepak, Core J2EE patterns: Best practices and design strategies 2nd, 2003, Prentice Hall/Sun Microsystems Press, 2006., 

Perfil del Profesor:  

(110101)Maestría en Ciencias Computacionales/de Información ; (110101)Doctorado en Ciencias Computacionales/de Información ; (110701)Maestría en Ciencias Computacionales ; (110103)Maestría en Tecnología de la Información/Informática/Sistemas Computacionales ; (110102)Maestría en Inteligencia Artificial /Robótica ; (111002)Maestría en Administración de las Telecomunicaciones ; (110701)Doctorado en Ciencias Computacionales ; (110103)Doctorado en Tecnología de la Información/Informática/Sistemas Computacionales ; (110102)Doctorado en Inteligencia Artificial /Robótica ; (111002)Doctorado en Administración de las Telecomunicaciones
CIP: 110101, 110701, 110103, 110102, 111002

Experiencia recomendada:  

Profesor con grado de maestría en ciencias computacionales o sistemas de información o áreas afines

Idioma en que se imparte la materia:  


Español
CIP: 110101  Computer and Information Sciences, General.   CL-L-U-CA-UDC:  3-2-8-3-5.8       

Discipline:  

Computer Technologies

School:   

Engineering and Sciences

Academic Department:   

Computing

Programs:   

Prerequisites:  

( TC2004 or SI00854)

Equivalences:  

CB00894

Course intention within the general study plan context:  

It is an advanced level course in the field design and software architecture, which considers that  students already know the cycle of software development, and have experience in Java and basic concepts of software engineering. The learning outcome of this course expects students to identify a need or problem to be solved through a system, and to implement the concepts of design and architecture to the successful construction of the project. Also, students will identify and solve problems, make decisions, analyze problems, define objects to a project considering restrictions, analyze and synthesize information and analyze the ethical, social, legal and economic implications of problem solving.

Course objective:  

At the end of this course, students should be able to: Design and build high quality software systems. Apply refactoring techniques in order to improve the quality of existing code. Design, use, and apply adequately frameworks and software patterns in order to solve recurring problems in software architecture, design, and construction. Utilize aspect oriented programming (AOP) as mechanism for achieving an adequate separation of concerns in nontrivial software systems

Teaching and learning tecniques:  

Learning-oriented projects

Suggested Bibliography:  

TEXT BOOKS:
* Gorton, Ian., Essential software architecture / Ian Gorton., Germany, West : Berlin ; New York : Springer, c2006., c2006., eng,  3540287132 (encuadernado), 9783540287131 (encuadernado)
* Jazayeri, Mehdi, Software architecture for product families : principles and practice / Mehdi Jazayeri, Alexander Ran, Frank van der Linden, Reading, MA : Addison-Wesley, 2000, eng,  201699672
* Kuchana, Partha., Software architecture design patterns in Java / Partha Kuchana., Florida : Boca Raton, FL : Auerbach Publications, 2004., 2004, eng,  0849321425 (alk. paper)
* Bass, Len., Software architecture in practice / Len Bass, Paul Clements, Rick Kazman., 2nd ed., Massachusetts : Boston : México: Addison-Wesley, 2003., 2002, eng,  0321154959 (papel alcalino)

BOOKS FOR CONSULTATION:
* Braude, Eric J., Software design : from programming to architecture / Eric J. Braude., New Jersey : Hoboken, NJ : J. Wiley, c2004., eng,  0471204595 (cloth)
* Shalloway, Alan., Design patterns explained : a new perspective on object-oriented design / Alan Shalloway, James R. Trott., 2nd ed., Massachusetts : Boston, MA : Addison-Wesley, 2005., 2003, eng,  0321247140
* Wake, William C., 1960-, Refactoring workbook / William C. Wake., Massachusetts : Boston, MA : Addison-Wesley Professional, 2004., 2005., eng,  0321109295 (pbk.)
* Szyperski, Clemens., Component software : beyond object-oriented programming, 2nd ed., England : London ; Boston, MA : Addison-Wesley, 1999, eng,  0201745720 (papel alcalino)
* Documenting software architectures : views and beyond / Paul Clements ... [et al]., Massachusetts : Boston : Addison-Wesley, c2003., 2000, eng,  0201703726
* , Design patterns : elements of reusable object-oriented software / Erich Gamma ... [et al.].,  , Reading, MA : Addison-Wesley, 1995., c2003.,  ,  0201633612
* Bloch, Joshua, Effective Java : programming language guide / Joshua Bloch ; [foreword by Guy Steele], Massachusetts : Boston : Addison-Wesley, c2001, (printing 2004), eng,  0201310058
* Alur, Deepak, Core J2EE patterns: Best practices and design strategies 2nd, 2003, Prentice Hall/Sun Microsystems Press, 2006., 

Academic credentials required to teach the course:  

(110101)Master Degree in Computer/Information Sciences and (110101)Doctoral Degree in Computer/Information Sciences and (110701)Master Degree in Computational Sciences and (110103)Master Degree in Information Technology. and (110102)Master Degree in Artificial Intelligence/Robotics and (111002)Master Degree in Telecommunication Management and (110701)Doctoral Degree in Computational Sciences and (110103)Doctoral Degree in Information Technology. and (110102)Doctoral Degree in Artificial Intelligence/Robotics and (111002)Doctoral Degree in Telecommunication Management
CIP: 110101, 110701, 110103, 110102, 111002

Recommended Experience:  

Teacher with a master's degree in computer science or information systems or related fields.

Language of Instruction:  


Spanish