C iera N. C. Jaspan
Institute for Software Research Email: *****@***.***
Carnegie Mellon University Website: http://www.cs.cmu.edu/~cchristo
**** ****** *** ***********: United States
Pittsburgh, PA 15213 (412) 894 - 8226
Research Interests
Software Engineering, Software Frameworks, Static Analysis, Quality Assurance, Software Design,
Developer Productivity, Software Engineering Education
Education
Carnegie Mellon University Pittsburgh, PA 2005-Present
Software Engineering Ph.D. student
Advisor: Dr. Jonathan Aldrich
Expected graduation date: Spring 2011
Thesis title: Proper Plugin Protocols: Cost-effective Verification of Framework Clients
California Polytechnic State University San Luis Obispo, CA 2000-2005
B.S. in Software Engineering
Major GPA: 3.82
Honors and Awards
1st place SPLASH ACM Student Research Competition. 2010
Awarded by ACM SIGPLAN at SPLASH 2010. Given for individual graduate research in
programming languages and software engineering.
Los Alamos National Lab Fellowship. 2008-Present
Awarded by Los Alamos National Laboratory, Institute for Reliable High Performance Information
Technology. Given for research in high-performance software frameworks.
John Vlissides Award. 2008
Awarded by ACM SIGPLAN at OOPSLA 2008. Given to an outstanding doctoral student showing
significant promise in applied software research.
J.L. Moore Fellowship. 2005
Awarded by the Computer Science Department, Cal Poly. Given for academic achievement to pursue a
Ph.D. in computer science.
Outstanding Graduating Senior for Academic Excellence. 2005
Awarded by the College of Engineering, Cal Poly. Given for academic achievement in the College of
Engineering.
Accenture Outstanding Junior in Computer Science. 2002
Awarded by the C omputer Science Department, C al Poly. Given for academic achievement in
computer science.
Competitive Edge Scholarship. 2000-2005
Awarded by the Walmart Foundation. Given for academic achievement and community leadership to
pursue a career in computer science.
California 4-H Diamond Star (State Ambassador). 1999-2000
Awarded by California State 4-H Program. Given for proven leadership at the state and regional level.
Publications
Journals and Conferences
Ciera Jaspan, Michael Keeling, Larry Maccharone, Gabriel L. Zenarosa, and Mary Shaw, Software
Mythbusters Explore Formal Methods, IEEE Software, vol. 26, no. 6, pp. 60-63,
November/December 2009.
Ciera Jaspan and Jonathan Aldrich, Checking Framework Interactions with Relationships, in
Proceedings of the European Conference on Object-Oriented Programming (ECOOP 09), Genova, Italy, July 2009.
(Acceptance rate: 21%)
Ciera Jaspan, Trisha Quan, and Jonathan Aldrich, Error Reporting Logic, in Proceedings of the Conference
on Automated Software Engineering (ASE 08), L Aquila, Italy, July 2008. (Acceptance rate: 12%)
Symposia, Workshops, and Experience Reports
Ciera Jaspan, Verifying Configuration Files, in the SPLASH Student Research Competition, Reno, USA,
October 2010. Received 1st place in the ACM Student Research Competition at SPLASH.
Leigh Ann Sudol and Ciera Jaspan, Analyzing the Strength of Undergraduate Misconceptions about
Software Engineering, in Proceedings of International Computing Education Research (ICER 10), rhus,
Denmark, July 2010.
Ciera Jaspan and Jonathan Aldrich, Retrieving Relationships in Declarative Files, in Proceedings of the
Workshop on Relationships and Associations in Object-Oriented Languages (RAOOL 09), Genova, Italy, July
2009.
Ciera Jaspan, Checking Framework Interactions with Relationships, in the OOPSLA Doctoral
Symposium, Nashville, USA, October 2008. Received the ACM SIGPLAN John Vlissides Award.
Ciera Jaspan and Jonathan Aldrich, Checking Semantic Usage of Frameworks, in Proceedings of the
Symposium on Library Centric Software Design (LCSD 07), Montreal, Canada, October 2007.
Ciera Jaspan, I-Chin Chen, and Anoop Sharma, Understanding the Value of Program Analysis Tools,
practitioner s report in Companion to the Conference on Object-Oriented Programming, Systems, Languages, and
Applications (OOPSLA 07 Companion), Montreal, Canada, October 2007.
Technical Reports
Ciera Jaspan and Jonathan Aldrich, Checking Framework Interactions with Relationships: Extended,
Institute for Software Research, Carnegie Mellon University, Technical report CMU-ISR-08-140,
December 2008.
Ciera Jaspan and Jonathan Aldrich, Checking Temporal Relations between Multiple Objects,
Institute for Software Research, Carnegie Mellon University, Technical report CMU-ISR-08-119, June
2008, originally written December 2007.
Teaching Experience
Lecturer Carnegie Mellon Spring 2009
15-313, Foundations for Software Engineering
Co-taught with Dr. William Scherlis
Gave 60% of the lectures for the course
Redesigned instructional units on software design, software architecture, and measurement and
metrics, including in-class exercises
Added four overarching themes to the course to connect units together
Designed and graded exam questions
Teaching Assistant Carnegie Mellon Spring 2008
17-654, Analysis of Software Artifacts
Dr. Jonathan Aldrich
Assisted students in weekly office hours
Designed and graded exam questions and several of the assignments
Teaching Assistant Carnegie Mellon Spring 2007
15-313, Foundations for Software Engineering
Dr. William Scherlis and Dr. Jonathan Aldrich
Assisted with the overall curriculum for this new course offering
Designed and graded six of the assignments for the course
Gave half of the presentations in the weekly recitation and one lecture in class
Designed and graded exam questions
Teaching Assistant California Polytechnic Fall 2002 and Fall 2001
CPE 109, Accelerated Intro to Computer Science
Dr. Clint Staley
Assisted students in weekly office hours, both online and in-office
Designed and graded exam questions
Additional Educational Training
Took Introduction to CS Education. Final project was a unit on software process for undergraduate
students.
Attended several seminars with the Eberle Education Center, including Student Cognition and a lecture
practice course.
Research Projects
Analysis of Framework Constraints Fall 2005 - Present
Ongoing work towards a Ph.D. thesis; supervised by Jonathan Aldrich
Created a specification language to describe framework constraints across multiple types of files,
including Java and XML
Implemented a static analysis to analyze plugins for conformance to specified framework
constraints
Designed entire system to be adoptable and cost-effective for industry use
Comparing the difference between three variants of the analysis: a sound variant, a complete
variant, and a hybrid variant
Validating that it detects defects when using industry frameworks such as Spring, Eclipse, and
ASP.NET
http://code.google.com/p/fusion
Inferring and Checking Multi-object Protocols Spring 2010 - Present
International collaboration with researchers at ETH Z rich
Combining a dynamic analysis that infers correct finite state machines from program traces with
my static checker
Defined a translation of the finite state machines into the Fusion specification language
Currently running the combined system on the 1.5 MLOC DaCapo suite to find misuses of the
Java SDK
Modern Software Frameworks Summer 2009 - Present
Distributed collaboration effort with seven researchers
Investigating the properties of modern software frameworks in several languages
Creating a taxonomy of frameworks to improve research in frameworks and current designs
Worked on an NSF grant proposal on an architectural perspective to understand frameworks
Student Perceptions of Software Engineering Summer 2009 - Summer 2010
Co-investigator with Leigh Ann Sudol in CS Education
Designed a survey to determine computer science undergraduate perceptions and misconceptions
of software engineering
Analyzed data and compared to data from industry professionals
Results will be used to improve the software engineering curriculum at Carnegie Mellon
Crystal Static Analysis Framework Fall 2007 - Summer 2009
Developer and lead for redesign effort on a team of four; advised by Jonathan Aldrich
On-going development of a pedagogical static analysis framework for Java
Analyses built as an Eclipse plugin and are defined using concepts from abstract interpretation
Crystal framework builds in support for branch-sensitive analyses, three-address code, Java 5
annotations, concurrent analyses, and a control flow graph with exception paths
Used for several years in the master s level analysis course to teach program analysis
Supporting five research-level analyses, all of these have been published
http://code.google.com/p/crystalsaf
Error Reporting Logic Fall 2006 - Spring 2008
Primary investigator of the work; co-advised undergraduate Trisha Quan with Jonathan Aldrich
Automatically generates human-readable error messages from f ailing first-order predicate logic
specifications
Uses a heuristic to determine which object is at the cause of the error
Currently being used by ACMEStudio, a checker for software architecture specifications
http://code.google.com/p/erl
Professional Experience
Static Analysis Engineer eBay May 2006 Aug. 2006
Static analysis engineer for eBay Marketplaces
Ran a cost-benefit analysis of static analysis tools, including Fortify, Klocwork, Daikon, FindBugs,
and Fluid
Created a process for managing static analysis tools within eBay s intricate and tightly controlled
software lifecycle
Implemented the tool management process by integrating FindBugs into the eBay development
and quality assurance cycles
Team Lead/Developer Vizolutions, Inc. Aug. 2004 June 2005
Team lead and developer on a content management system (CMS) for Web Associates
Ported Web Associates s CMS from EJB to .NET
Architected the database layer and wrote key utilities and modules on the web layer
Created a process that allowed our 10 person team to separate core functionality from vendor
specific functionality
Program Manager Microsoft June 2003 Aug. 2003
Intern Program Manager on Visual Studio Tools for Office (VSTO)
Wrote full specifications for two new features
Carried out a usability study, reported the data, and presented suggestions to improve VSTO
Wrote three mini-specs for controversial features and gained team consensus on solutions
Project Lead/Developer Vizolutions, Inc. May 2001 May 2003
Project lead of a Java Swing project that surveys oil wells for Applied Technology Associates
Filtered, merged, and prioritized feature requests from three user classes
Organized releases and decided if patches should be sent out
Developer on a Java Swing project
Designed and implemented over 30,000 lines of safety critical code in a 100,000 line application
Tested teammate s code through code reviews, automated test scaffolds, and black-box testing
Received bugs from a world-wide field and debugged them using software and hardware log files
Developer on a mature MFC project
Developed functionality that computed user-defined algebraic functions on generic data sets
Maintained a drag and drop dialog that assisted a user in creating an oil drill-string
Tutorials and Talks
Designing Frameworks for High Performance Computing. Invited talk, Los Alamos National Labs.
June 2010.
Proper Plugin Protocols. Demonstration, Dagstuhl seminar on Relationships, Objects, Roles, and
Queries in Modern Programming Languages. April 2010.
Proper Plugin Protocols. Invited talk, Ecole Polytechnique Ferderale de Lausanne. April 2010.
Crystal-izing Sophisticated Code Analyses. Tutorial, European Conference on Object-Oriented
Programming (ECOOP). July 2009.
Understanding Software Frameworks with Static Analysis. Invited talk, California Polytechnic State
University, San Luis Obispo. January 2007.
Service and Societies
Student Volunteer Chair for SPLASH 2010
Student Volunteer Captain for OOPSLA 2009
Co-reviewer for ECOOP 2006, ECOOP 2007, FOOL 2008, OOPSLA 2008, and PLDI 2010
Member of the Association for Computing Machinery and SIGSOFT, SIGPLAN, and SIGCSE
Member of Upsilon Pi Epsilon, Computer Science Honor Society
Volunteer for Dec/5, Inc., computer science graduate student organization
Member of the Association for Computational Heresy and SIGBOVIK
Additional Projects
Educational Tools Project Fall 2004 Spring 2005
Wrote a module that randomly generated test questions for an online testing tool for the
Algorithms Analysis course
Created and implemented an algorithm that, given a graph, would find a breadth first tree that
could not have been generated by a breadth first search (non-BFS BFT)
Created and implemented an algorithm to randomly create a graph with a particular set of
parameters, including a probability that the graph contains a non-BFS BFT
Work completed under the supervision of Dr. Clint Staley
Senior Project: Hold Interaction Manager Fall 2003 - Spring 2004
Part of a three person team that created software to manage a rock climbing wall
Evaluated three AI algorithms for creating new climbing routes with a specified difficulty level and
rating the difficulty of existing climbing routes
Implemented the AI component using a greedy bi-directional ordering algorithm and a k-nearest
neighbor algorithm
Wrote the user interface in Swing and worked with a MySQL backend
Work completed under the supervision of Dr. Gene Fisher
Upper Division Software Engineering Series Fall 2002 Spring 2003
Worked on a year long project for Brocade to test their Common Information Object Model
Manager implementation
Managed four upperclassmen during the requirements phase
Lead five lowerclassmen through development and testing
Taught the lowerclassmen software engineering processes, tools, and design
References
Dr. Jonathan Aldrich Dr. Gary Leavens
Associate Professor (Advisor) Professor and Interim Chair
Carnegie Mellon University University of Central Florida
*******@**.***.*** *******@****.***.***
Dr. Mary Shaw Dr. William Scherlis
Alan J. Perlis Professor of Computer Science Professor and Director
Carnegie Mellon University Carnegie Mellon University
****@**.***.*** ********@**.***.***
Dr. Thomas Gross
Professor
ETH Z rich
******.*****@***.****.**