Difference between revisions of "Applied Research Notes (July-August 2011)"

From CDOT Wiki
Jump to: navigation, search
(Mining NexJ Concepts From the Practical Experience of Research Students)
(Peter Liu's Applied Research Proposal (July - August 2011))
Line 2: Line 2:
 
The goal of my research activity is to create a '''knowledge base''' at CDOT-Seneca such that new research students can go through a shorter learning curve in working with the huge code base of NexJ Model Server Express. The knowledge base will also benefit the open source community of developers who want to make contributions to the NexJ code base. UML modelling is the foundation of the NexJ approach to model-driven engineering [http://en.wikipedia.org/wiki/Model-driven_engineering] and UML diagrams are concept maps [http://en.wikipedia.org/wiki/Concept_map ]. Thus the focus of my research is to develop a '''conceptual understanding''' of the huge code base of NexJ Model Server Express. It is envisioned that some concept maps will be constructed to visualize the architectural aspect of the NexJ code base.
 
The goal of my research activity is to create a '''knowledge base''' at CDOT-Seneca such that new research students can go through a shorter learning curve in working with the huge code base of NexJ Model Server Express. The knowledge base will also benefit the open source community of developers who want to make contributions to the NexJ code base. UML modelling is the foundation of the NexJ approach to model-driven engineering [http://en.wikipedia.org/wiki/Model-driven_engineering] and UML diagrams are concept maps [http://en.wikipedia.org/wiki/Concept_map ]. Thus the focus of my research is to develop a '''conceptual understanding''' of the huge code base of NexJ Model Server Express. It is envisioned that some concept maps will be constructed to visualize the architectural aspect of the NexJ code base.
  
During the process of creating the knowledge base, I would like to build '''an Eclipse tool''' to mine useful concepts from the NexJ code base. I will begin with the '''Eclipse Diver''' tool as presented at EclipseCon 2011.
+
During the process of creating the knowledge base, I would like to build '''an Eclipse tool''' to mine useful concepts from the NexJ code base. I will begin with the '''Eclipse Diver''' tool as presented at EclipseCon 2011. [http://www.eclipsecon.org/2011/sessions/?page=sessions&id=2099]
  
 
== Documents Provided by NexJ ==
 
== Documents Provided by NexJ ==

Revision as of 13:42, 30 July 2011

Peter Liu's Applied Research Proposal (July - August 2011)

The goal of my research activity is to create a knowledge base at CDOT-Seneca such that new research students can go through a shorter learning curve in working with the huge code base of NexJ Model Server Express. The knowledge base will also benefit the open source community of developers who want to make contributions to the NexJ code base. UML modelling is the foundation of the NexJ approach to model-driven engineering [1] and UML diagrams are concept maps [2]. Thus the focus of my research is to develop a conceptual understanding of the huge code base of NexJ Model Server Express. It is envisioned that some concept maps will be constructed to visualize the architectural aspect of the NexJ code base.

During the process of creating the knowledge base, I would like to build an Eclipse tool to mine useful concepts from the NexJ code base. I will begin with the Eclipse Diver tool as presented at EclipseCon 2011. [3]

Documents Provided by NexJ

  • Introduction To NexJ Studio Express (open sourced, available on Open Health Tools Platform)
  • NexJ Studio Fundamentals (confidential and proprietary)
  • Working with NexJ Express Source Code (open sourced, available on Open Health Tools Platform)
  • NexJ Studio - Integration Fundamentals (confidential and proprietary)

Current Findings

Question: Where should one start if one wants to get a conceptual understanding of the code base of NexJ Model Server Express?

One can download Introduction To NexJ Studio Express from the Open Health Tools Platform. It's useful for getting familiar with NexJ Studio Express. However, one must read NexJ Studio Fundamentals and identify the concepts as a result. Presently this document in not open sourced.

This document has useful clues for one to understand how the Persistence engine and the Integration engine are organized in the NexJ Framework (at the source code level).

  • In particular, one should understand how Class Persistence Mapping is done with the NexJ Studio Express.
  • Also one must learn the NexJ-Scheme language.

As for understanding the concepts implemented by the Integration Engine, one must read NexJ Studio - Integration Fundamentals. Presently this piece of document is not open sourced.

Mining NexJ Concepts From the NexJ Training Tutorial Dcouments

Mining NexJ Concepts From the Practical Experience of Research Students

  • use of qualitative research technique as adopted in software engineering research [4] [5]
  • Brian Lim (JSON Integration Adapter)
  • Grace Batumbya (JSON RPC Adapter, PostgreSQL Adapter)

Conceptual Comprehension of the Code Base

  • Goal: Understand the architecture design of NexJ Framework, especially the Persistence Engine and the Integration Engine.
  • Research Question: What concepts have been implemented in the code base?

References

Concept Maps and Software Engineering

  • Concept Map Based Software Engineering (2007) [6] [7]
  • Research on the Application of the Concept Map to Software Engineering Teaching (2009) [8]
  • Using Concept Mapping to Facilitate Students Understanding Software Testing [9]
  • Are concept-mapping tools useful for software analysis and design? [10]
  • Mind Mapping and the Software Development Life Cycle (2006) [11]
  • Using concept mapping for maintainability assessments (2009) [12]
  • The concept maps method as a tool to evaluate the usability of APIs (2011) [13]
  • Representing concerns in source code (2007) [14]
  • Architectural Element Matching Using Concept Analysis (1999) [15]
  • Automatic extraction of framework-specific models from framework-based application code 92007) [16]
  • Program representation and behavioural matching for localizing similar code fragments (1993) [17]
  • TOWARDS AUTOMATIC ESTABLISHMENT OF MODEL DEPENDENCIES USING FORMAL CONCEPT ANALYSIS (University of Waterloo) [18]
  • AN ONTOLOGY-BASED PROGRAM COMPREHENSION MODEL (Concordia University 2007) [19]

Reverse Engineering

  • Reverse Engineering: A Roadmap (2000) [20]
  • Rerverse Engineering: From Artifacts to Concepts (2005) [21]
  • Code understanding, reverse engineering, best concepts and tools. Java [22]
  • A Comparison of Graphs of Concept for Reverse Engineering [23]
  • A Unified Meta-Model for Concept-Based Reverse Engineering [24]
  • View-Based Reverse Engineering Approach for Enhancing Model Interoperability and Reusability in Process-Driven SOAs [25]
  • Reverse Engineering Domain Models from Source Code [26]

Open Source Tools for Reverse Engineering

  • Put It In Reverse: Using Eclipse to Understand Code that has Already Been Written (EclipseCon 2011) [27]
  • Eclipse plugin or a Open source tool to reverse engineer java code for sequence diagram [28]