Sergei Kojarski
 

I am a PhD student at College of Computer and Information Science, Northeastern University, Boston, MA, working under the supervision of Prof. David H. Lorenz. I'm specializing in aspect-oriented software development (AOSD). Specifically, I'm working on the problem of composing aspect extensions. My other research interests include Object-Oriented languages, Software Design, Web development.

 
Education
 
Sep 2002 - current PhD Student
  College of Computer and Information Science,
Northeastern University,
Boston, MA, USA.
www.ccs.neu.edu
Thesis topic: "Third-Party Composition of
Multiple AOP Mechanisms"

Advisor: Prof. David H. Lorenz.
Current GPA: 3.97/4
Sep 2005 - Sep 2007 Visiting Graduate Student
  Department of Computer Science,
University of Virginia,
Charlottesville, VA, USA.
www.cs.virginia.edu
Advisor: Prof. David H. Lorenz.
Sep 2002 - May 2004 MS Degree in Computer Science
  College of Computer and Information Science,
Northeastern University,
Boston, MA, USA.
www.ccs.neu.edu
GPA: 3.90/4
Sep 1996 - June 2001 Specialist Degree in Computer Science
  Department of Electrical Engineering,
Perm State Technical University,
Perm, Russia
GPA: 5.0/5
  Diploma Thesis
  "Design and Implementation of
the Electronic DocFlow System
for the Energy Department of
the "Lukoil-PNOS" Enterprise.
Advisor: Prof. Vadim Vinokur.
 
 
Principal Publications
 

"Awesome: an Aspect Co-weaving System for Composing Multiple Aspect-oriented Extensions"
Sergei Kojarski and David H. Lorenz, OOPSLA 2007, October 21-25, Montreal, Quebec, Canada.
 
"Identifying Feature Interactions in Multi-Language Aspect-Oriented Frameworks"
Sergei Kojarski and David H. Lorenz, ICSE 2007, May 20-26, Minneapolis, MN.
 
"Modeling Aspect Mechanisms: a Top-Down Approach"
Sergei Kojarski and David H. Lorenz, ICSE 2006, May 20-28, Shanghai, China.
 
"Pluggable AOP - Designing Aspect Mechanisms for Third-party Composition "
Sergei Kojarski and David H. Lorenz, OOPSLA 2005, October 16-20, San Diego, CA.
 
"Domain-Driven Web Development with WebJinn"
Sergei Kojarski and David H. Lorenz, OOPSLA 2003 Special Track on Domain-Driven Development, 53--65, Anaheim, CA.

 
 
Other publications
 

"Comparing White-box, Black-box, and Glass-box Composition of Aspect Mechanisms"
Sergei Kojarski and David H. Lorenz, ICSR 2006, June 11-15, Torino, Italy.
 
"Parallel Composition of Aspect Mechanisms"
Sergei Kojarski and David H. Lorenz, AOSD 2006, Open Aspect Languages Workshop, March 20, Bonn, Germany.
 
"Feature Interaction in AspectJ 5"
Sergei Kojarski and David H. Lorenz, AOSD 2006, SPLAT Workshop, March 21, Bonn, Germany.
 
"Evolution of AOP Models"
Sergei Kojarski and David H. Lorenz, AOSD 2006, AIT Workshop, March 21, Bonn, Germany.
 
"A Top-Down Model of an AOP Weaving Process"
Sergei Kojarski and David H. Lorenz, AOSD 2005 SPLAT Workshop, March 14, Chicago, IL.
 
"Program Comprehension Using Aspects"
Darren Ng and David Kaeli and Sergei Kojarski and David H. Lorenz, ICSE 2004 Workshop on Directions in Software Engineering Environments (WoDiSEE'2004)
 
"Aspectual Reflection"
Sergei Kojarski and Karl Lieberherr and David H. Lorenz and Robert Hirschfeld , AOSD 2003 SPLAT Workshop, 17-21, March 18, Boston, MA.
 
"Unplugging Components using Aspects"
Sergei Kojarski and David H. Lorenz, ECOOP 2003 Eighth International Workshop on Component-Oriented Programming

 
 
Abstracts and Poster Sessions
 

"AOP as a First Class Reflective Mechanism"
Sergei Kojarski and David H. Lorenz, OOPSLA'04 Companion, 216-217, Oct 2004, Vancouver, BC, Canada.
 
"Web Development with WebJinn"
Sergei Kojarski and David H. Lorenz, NEU Tech Expo and Research Scholarship, May 15, 2003, Boston, MA

 
 
Professional Experience
 

Oct 2007 - current Software Engineer
  Amazon.com, Seattle, WA.
Design and evolution of information systems.
Sep 2005 - Sep 2007 Research Assistant
  Department of Computer Science,
University of Virginia, Charlottesville, VA.
Advisor: Prof. Lorenz.
Research in aspect-oriented languages, web development, programming in Java and Scheme.
Dec 2002 - Sep 2005 Research Assistant
  College of Computer and Information Science,
Northeastern University, Boston, MA.
Advisor: Prof. Lorenz.
Research in aspect-oriented software development, OOP, component-based architectures.
Sep 2002 - Dec 2002 Teaching Assistant
  College of Computer and Information Science,
Northeastern University, Boston, MA.
Advisor: Prof. Lieberherr
Course: "Computer Organization and Design" (COM 1130).
Jun 2001 - Aug 2002 Software Engineer
  Department of Electrical Engineering,
Perm State Technical University.
Design and implementation of the Electronic DocFlow System.
Jun 1999 - Aug 2002 Web Developer
  "Saturn-R" Internet service provider.
Web site development, HTTP server administration.

 
 
Awards
 
May 2004 Graduate Outstanding Research Award
  College of Computer and Information Science,
Northeastern University, Boston, MA, USA.
Oct 2000 Potanin Fond Stipend
  Perm State Technical University, Perm, Russia.
 
 
Projects
 
Pairwise Verification Builder

The pairwise verification builder is a JavaBeans component builder tool that allows efficient verification of an assembled component system. This tool is be based on the JavaBeans Development Kit (BDK), software that is used for component design. Verification is done using the Spin model checker.

Languages, technologies and tools: JavaBeans, SPIN, BDK, Promela, Java, Pairwise Verification, Ant

 
BSecurity: Business Relationships for Security

The Bsecurity project is conducted in collaboration with NewAspects, a company that helps enterprises leverage aspect-oriented technology to build secure systems. At the heart of the project is a library that exposes business relationship data from Hibernate for use with aspects. An example of such data is semantic information about object-to-object relations and their cardinality. Descriptive information about the object graph (whole-part associations) beyond what is available via standard reflection is useful for specifying security policies.

Languages, technologies and tools: Java, Hibernate, Eclipse, AspectJ

 
WebJinn (Web AOP)

Evolutionary path of web application development technologies goes through CGI scripts, dynamic (active) pages to Model-View-Controller (MVC) based development frameworks. However, even the latest state-of-the-art tools (i.e., Apache Struts) do not provide support for modularizing an essential web application concern we call schema concern. The concern intermingles with other web application concerns resulting in scattering of schema code accross multiple application components (i.e., presentation views and functionality classes). Since changes in schema concern is usual requirement during development and maintenance stages, this problem severely affects development productivity.

The WebJinn project recognizes the problem of crosscutting schema concern and proposes a novel Extension Point (XP) model to address it. The project includes WebJinn framework, that instantiates the model on top of the JSP and Servlet technologies. The framework was used to create commercial web applications on a number of sites. It can be used along with the MVC frameworks to complete separation of the web application concerns. To go to the project home click here

Languages, technologies and tools: Java, Java Server Pages, Servlets, HTML, XML, XSLT, Ant, AspectJ

 
Content Management System (CMS)

If a web site has more than just few pages, constructing and maintaining a menu interface, that connects the pages is tedious and time-consuming: even simplest changes in menu interface affect multiple web pages. Page inclusion directives (i.e., include SSI or JSP tags) help, but do not solve the problem.

The CMS project facilitates construction and maintenance of a web site interface menus. CMS separates logical structure (menu tree) of the site from its physical reincarnation (HTML content files). The CMS system provides functionality for creating and maintaining interface menu trees. This functionality is made accessible to end user through web interface.

The main purpose of the CMS project is to occasionally keep me from getting bored. Besides that, I also use it for maintaining this site (and few others).

To go to the project home click here

Languages, technologies and tools: Java, Java Server Pages, Servlets, HTML, XML, Ant

 
Other Projects

List of other projects includes: (1) Interpreter for Object-Oriented Java-like language; (2) Interpreter Plugins for AspectJ-like, AspectWerkz-like, and Hyper/J-like aspect extensions; (3) Demeter/J Eclipse plugin; (4) Several commercial and non-commercial web sites; (5) Commercial DocFlow system design (incl. database design) and development; (6) Web server setup and administration; (7) Conference submission system administrator; (8) Multiple in-class projects

Languages, technologies and tools: Java, Scheme, Perl, C/C++, Delphi, AspectJ, DemeterJ, Hyper/J, XML, HTML, Servlets, JSP, Interbase, MS SQL Server, MySQL, Apache Tomcat, Apache HTTP Server, Cyberchair, Ant, Eclipse