Overview of OpenOME

The official web site of the tool is at http://www.cs.toronto.edu/km/openome.

Members

Prof. Eric S.K. Yu
Dr. Yijun Yu
Prof. Lin Liu
Prof. John Mylopoulos
Prof. Julio C.S.P Leite
Prof. Jianguo Lu
Sotirios Liaskos
Alexei Lapouchnian
Yiqiao Wang
Neil Ernst
Xiaoxue Deng
Jennifer Horkoff
ChangeLogs

Stakeholder goals

The OpenOME is an assistant to a requirements engineer using a goal-oriented and agent-oriented modeling language: stakeholder requirements are modelled as the strategic dependencies and rationale. Business analysts can model the business requirements into the stategic model. In software business, potential users can express their early requirements into a concise form; software developers can verify the design alternatives against the early requirements using the explicit design rationale to detect faults at a very early stage; Software testers and quality analysts can validate the end-product against the early requirements to see whether it can be released with good-enough quality. Researchers on requirements engineering can share their understanding of functional and non-functional requirements and publish the results in high quality that are accessible by the peer reviewers.

System requirements

Hardware requirements:
   A desktop or laptop workstation
Software requirements:
   Operating system: Windows 2000/XP, Linux
   Programming language: Java runtime 1.5x

Features to support the stakeholders goals

Graph editing and visualization  => ++ requirements engineer::graphical modeling
   Graph manipulations
   		Select 
   		Move 
   		Insert 
   		Delete 
   		Copy 
   		Paste
   Search
   Anti-alias display
   Layout
   Zoomin/out
   2D Scrolling
   Undo/Redo
Graph querying                    => + peer::review
   Ontology generation
   Ontology query
Graph sharing                     => ++ peer::review
   Web services wrapper
Graph publishing                  => ++ researcher::presentation
   Scalable vector graphics (SVG)
   Portable network graph (PNG)      
Goal-oriented/Agent-oriented Modeling languages => ++ requirements engineer::modeling
   Telos (vgraph, i*, GRL), OTelos (SML), text (Q7), etc.
Goal satisfiability reasoning       => ++ developers::tradeoff
   Bottom-up label propagation
	  Qualitative logic 
	  Quantitative probabilistic network  => ++ tester::monitor quality achievements
   Top-down satisfiability
Quality requirements analysis       => ++ tester::monitor quality achievements
   Non-functional requirements
   Quality metrics
Early Aspects elicitation         => ++ modeler::separate crosscutting concerns
   Goal aspect separation
   Pointcuts Definition
   Weaving
Forward engineering               => ++ software engineer::provide traceability of rationale
   Feature model generation
   Statecharts generation
   Component/Connector view generation 
Reverse engineering               => ++ reverse engineer::find programmers intentions
   Statechart refactoring
   Refactoring to goal model
Eclipse integration				  => ++ ease of installation, upgrading and tool extensibility
   Plugin update site
   Rich client platform

Architecture

Modules interconnection

  update.ome4eclipse
      |
  ome4eclipse.feature
      |
  ome4eclipse
      |
  OpenOME
      |
   ------------------------------------------------------------------------------------------------------------------------------------------------
   |      |        |         |      |          |            |                    |              |               |            |                    |
  png    GR-tool  querytab   q7     OME*       |       AST refactoring       statecharts       BPEL           feature      OmniGraphEditor    QoS monitoring
  batik  SAT4J    protege  aspectX  telos   graphviz      JDT             ABO statecharts     WBI modeler     FMT          AXIS web services  Webservice composition
  100%   100%     100%      90%     100%      100%         20%               20%               20%             50%          60%                 40%
                             ^                             ^                 ^                  ^              ^             ^                   ^
                        goal2aspect                     AST-q7            q7-statechart      q7-bpel      q7-feature        ECE450              WIRI
 									 	      literate programming-q7
* OME was reengineered (componentized) into three packages following the model-view-controller design pattern.
^ These are things to do in the near future, the percentage shows how much work has been done.

Components supports the features

Graph editing and visualization  <= ++ OME
   Graph manipulations
   		Select               
   		Move 
   		Insert 
   		Delete 
   		Copy 
   		Paste
   Search 
   Anti-alias display
   Layout					     <= ++ graphviz
   Zoomin/out
   2D Scrolling
   Undo/Redo
Graph querying                   <= ++ protege
   Ontology generation              <= ++ ome::ometab
   Ontology query                   <= ++ ome::query_tab
Graph sharing                    
   Web services wrapper			  <= + OmniGraphEditor
Graph publishing                  <= ++ OME
   Scalable vector graphics (SVG)   <= +batik
   Portable network graph (PNG)     <= +png  
Goal-oriented/Agent-oriented Modeling languages <= ++ telos, q7
   Telos (vgraph, i*, GRL), OTelos (SML), text (Q7), etc.
Goal satisfiability reasoning      
   Bottom-up label propagation      <= ++ GR-tool
	  Qualitative logic 
	  Quantitative probabilistic network 
   Top-down satisfiability          <= ++ SAT4J
Quality requirements analysis
   Non-functional requirements      
   Quality metrics					<= + metrics
Early Aspects elicitation         <= ++ q7
   Goal aspect separation
   Pointcuts Definition
   Weaving							<= ++ "q7 -> i* generation"
Forward engineering               <= + q7
   Feature model generation           <= ++ q7 - feature
   Statecharts generation             <= ++ q7 - ABO statecharts
   Component/Connector view generation  <= ++ q7 - koala
Reverse engineering               <= + q7
   Statechart refactoring            <= ++ Eclipse2q7
   Refactoring to goal model         <= ast2q7
Eclipse integration				  <= ++ ome4eclipse
   Plugin development				<= ++ ome4eclipse, ome4protege
   Feature development				<= ++ ome4eclipse.feature
   Plugin update site               <= ++ update.ome4eclipse
   Rich client platform				<= ++ ome4eclipse/openome.product