home | | publications | teaching | Nicolas Lopez-Giraldo
Nicolas Lopez-Giraldo
About Me
I am a Ph.D. candidate working for the Software Design and Collaboration Laboratory at the University of California, Irvine in the Donald Bren School of Information and Computer Science with a concentration on Informatics - Software Engineering Track. I have been awarded a Fulbright Scholarship and an ICS Fellowship to pursue my Ph.D. Degree. My advisor is André van der Hoek and my research areas are Software Engineering and Software Design. I have experience working as software engineer at Google and IBM, building infrastructure for world-class applications including Google Analytics and IBM Rational Jazz.

Before I started my PhD I was Instructor (Junior Faculty) at University of Los Andes in Bogota, Colombia as part of the Software Construction group. I also was in charge of leading small development groups implementing support tools for several development and learning processes during this 4 year period.

Research
Software engineering; development tools; program comprehension; mining software repositories; concern-oriented software engineering; topic modeling for understanding software evolution.
Awards and Honors
2011 Awarded a Miguel Velez Fellowship for Winter 2011, University of California Office of the President
2009 Awarded a 3 year ICS Fellowship from the Donald Bren School of Information and Computer Sciences at UC Irvine
2008 Awarded Fulbright Scholarship to pursue a Ph.D. in Software Engineering- Fulbright-Colciencias-DNP program
News
Summer 2013: I will be working during the summer as Sotware Research Intern at Google Irvine.
Spring 2013: I have been invited to participate in the Fulbright Colombia academic evaluation committee! I will be providing feedback on the selection of candidates for this year's Fulbright Colombia scholarship program.
Spring 2013: I attended ICSE 2013 in San Francisco.
Spring 2013: My paper "Using topic models to understand the evolution of a software ecosystem" has been accepted for presentation at the FSE Doctoral Symposium
Summer 2012: I'm working during the summer as Sotware Research Intern at Google Irvine.
Spring 2012: Advanced to candidacy. I presented a survey on Concern Oriented Software Development. Check out the unpublished paper and the presentation.
Fall 2011: I am now moderating and adminstrating the SEWORLD mailing list with my colleagues at the SDCL. The SDCL is now in charge of the ACM SIGSOFT SEWORLD mailing list. The mailing list, started over 15 years ago at the University of Colorado at Boulder, serves the Software Engineering community through the dissemination of time-sensitive information relevant to the field of software engineering research (http://www.sigsoft.org/seworld/). We are very exited to be able to support the Software Engineering community in this role!
Summer 2011: I'm working during the summer as Software Research Intern at Google Irvine.
Spring 2011: I will be helping as session chair for the Software Engineering in Practice (SIEP) Track: Software Metrics at ICSE 2011
Spring 2011: I will be attending ICSE 2011! See you in Hawaii!!
Winter 2011: My paper "The Code Orb - Supporting Contextualized Coding via At-a-Glance Views (NIER Track)" was accepted for ICSE 2011 (New Ideas and Emerging Results Track)
Winter 2011: I participated as student volunteer for AOSD 2011
Winter 2011: I am co-author of the Modularity Visions Keynote paper at AOSD 2011
Winter 2011: I am PC member for two ICSE workshops: ICSE 2011 Workshop on Flexible Modeling Tools and PESOS 2011 - 3rd International Workshop on Principles of Engineering Service-Oriented Systems
Winter 2011: I have been awarded a Miguel Velez Fellowship!
Winter 2011: This quarter I'm lecturer of the Software Design II class for undergraduate students here at UCI!
Fall 2010: I presented our paper "An Agenda for Concern-Oriented Software Engineering" at the FSE/SDP workshop on Future of software engineering research. I also participated as student volunteer at FSE 18 in NM, USA, Nov. 2010.
Fall 2010: I participated as chair of session 1 at SPLASH 2010 Workshop on Flexible Modeling Tools
Fall 2010: Our paper "An Agenda for Concern-Oriented Software Engineering" was accepted for the FSE/SDP Workshop on the Future of Software Engineering Research
Summer 2010: I have been selected as student volutneer for the 18th International symposium on Foundations of Software Engineering - FSE 2010, Santa Fe, NM. November 7-8 2010
Summer 2010:I'm working during the summer as Research Intern at the IBM TJ Watson Research Center with Harold Ossher.
March 2010:I passed my phase 2 exam!! One step closer to candidacy.
Contact
  • Phone: (949) 291 1243 (USA)
  • Address: 4747 Hazelbrook ave, Long Beach, CA 90808
  • Address (in COLOMBIA):
    Carrera 18 No 92 - 22 APT 402 Bogota, (Colombia)
Teaching
Winter 2011: Lecturer for INF 122 - Software Design II
Fall 2009: I was Reader for INF 153 - Computer Supported Collaborative Work this quarter. Course webpage
Fall 2005-Spring 2009: I was Junior Faculty (A.K.A Instructor) at University of Los Andes in Bogota Colombia. I was lecturer for the Software Architecture course for undergraduate students 7 semesters, lecturer for the Software Engineering course for undergraduate students 3 semesters and lecturer for the basic programming course (Algorithmics and Object Oriented Programming) 4 semesters. For more info on my previous work see my old webpage .
Classes
Spring 2011: INF 223: Applied Software Design Techniques - A. van der Hoek
Winter 2010: INF 205: QUANT RSCH MTHDS - G. Olson, INF 231B : Human-Computer Interaction - G. Hayes, INF 221: Software Architecture - R. Taylor
Fall 2009: INF 201 - G. Hayes , INF 211 - J. Jones , ICS 398A - D. Kay
Research/Industrial Projects (brief summaries)
Code topics: Using topic models to understand the evolution of a software ecosystem: Sept 2012 - present:The development of a software system is now ever more frequently a part of a larger development effort, including multiple software systems that co-exist in the same environment: a software ecosystem. Though most studies of the evolution of software have focused on a single software system, there is much that we can learn from the analysis of a set of interrelated systems. Topic modeling techniques show promise for mining the data stored in software repositories to understand the evolution of a system. In my research I seek to explore how topic modeling techniques can aid in understanding the evolution of a software ecosystem. The results of this research have the potential to improve how topic modeling techniques are used to predict, plan, and understand the evolution of software, and will inform the design of tools that support software engineering activities such as feature location, expertise identification, and bug detection.
Google Software Research Intern: June 2012 - Sept 2012Worked as developer in the Google Analytics Management API project. In charge of designing and implementing the write API for GA management entities.
Survey of Concern oriented development: Sept 2011 - June 2012: Concern-oriented development has been of significant interest to the software engineering community since the early formulation of its importance by Dijkstra and Parnas. Many different approaches have emerged since then, and continue to emerge, which support developers when they need to reason about and make changes to code in terms of the concerns that govern the system. While initially much work focused on modularization of concerns, relying on programmatic constructs to encapsulate concerns in modules, new types of approaches have more recently emerged that address the problem from quite different directions and lead to quite different forms of support. I have been working on a survey that is inclusive of the breadth of approaches to date. Its main contributions are a set of definitions of concerns that precisely delineate the field, an evaluation framework that characterizes a set of capabilities that any approach to concern-oriented development ideally should offer, an articulation of how four, previously disparate categories of approaches closely relate, and a set of nine observations that take stock of the field as it stands today and provide guidance as to where it should head in the future.
Google Software Research Intern: June 2011 - Sept 2011Worked with the TvAds group at the Google Irvine office. Designed and built support infrastructure for a web based application. Improved client-side, web caching mechanisms to deliver better performance.
Contextualized Coding: Sept 2010 - June 2011:The Contextualized coding project aims to improve development by providing richer contextual cues to developers mined from process support tools and code analysis. The Code Orb is the first prototype view which shows developers fine-grained information related to code volatility. The Code Orb is implemented as a series of plug-ins to the Eclipse IDE.
IBM research intern: June 2010 - Sept 2010Worked in a development co-op with the Ottawa software group in the Jazz - Rational Team Concert (RTC) – Versioning system group. My development effort had as objective improving the integration of the versioning features of Jazz / RTC with other versioning systems such as GIT and Subversion. Concretely, I implemented extensions to export and synchronize files maintained in Jazz / RTC with Subversion. Scalability and performance was a critical issue of this integration. Frameworks/Languages used: Eclipse plug-ins, Java, SVNKit.
Calico: 2009-2010Calico is a free hand rapid design tool for the initial creative and typically informal stages of software design. Calico is designed to support the informal phases of design, with features that are designed to amplify good creative design practices. I worked as developer extending the functionalities of the tool and afterward I performed usability evaluations of some of the newer functionalities of the tool and drafting research results from these experiences. Calico is a Java stand-alone application.
Change Based PLAs and CM: 2008-2009I was lead developer for a research project were we integrated change-based SCM tool implemented in JEE technology and a Product Line Architecture definition environment. The integration maps the product architecture defined in xADL, EASEL and ArchStudio to a concrete implementation in Java and maintains the consistency of the implementation with its architectural definition in a change-based SCM. Frameworks/Languages used: Java, code generation with Velocity, Eclipse plug-ins.
Management Game: 2007-2009In June 2007 we initiated a project to develop a support environment for the "Management Game" course taken by undergraduate students in the last semester of the Business Program at University of Los Andes. My role in the project was as lead Software Architect in charge of defining and specifying the system global design, technological platform and architectural restrictions. Additionally I assisted the project leader in the implementation and testing phases of the project. Frameworks/Languages used: JEE, code generation with MDA (EMF + ATLs) DSLs (XML, XSL), Java, Java Server Faces, Hibernate.
Testing in a Global Environment: 2004-2006This research project that had as main objective the definition of an appropriate testing and software defect correction process in a global software development environment and the development of process support tools and an integration platform that fulfills the requirements of an appropriate infrastructure for Internet-scale integration. My role was as designer and lead developer of an event based messaging infrastructure. Frameworks/Languages used: J2EE, Java, code generation using XMI and XSL.
QualDev development Group: 2005-2009I was the leader of a development group made up mainly of undergraduate students in a capstone project course. This group is a software engineering laboratory where students learn how to use software processes, methodologies and applications as tools to produce high quality software. The group works as a laboratory to experiment with software processes and technologies. The group develops tools in the broad domain of software development process support and some of these are successfully used in real contexts. Frameworks/Languages used: J2EE, JEE, Java, PHP, JME, XML, Jena, Velocity, Hibernate, Spoon, JSF, Struts, amongst many others.