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